Skip to content

Instantly share code, notes, and snippets.


Danil Skachkov xVir

  • Google
View GitHub Profile
xVir /
Created Aug 29, 2016
Scripts for enabling and disabling VPN in Control Plane

This script will be usefull if you want to enable VPN automatically on coming to work and to disable it on escaping from work using great Control Plane app.

It is assumed that you use Tunnelblick to manage VPN connections.

To connect to VPN:

set q to "<your_connection_name>"
tell application "Tunnelblick"
	set configs to get name of configurations
	if q is in configs then
xVir /
Last active Aug 16, 2016

It is the updated variant of my copy path script for Automator

on run {input, parameters}
	set res to ""
	if not input = "" then
		repeat with theFile in input
			if not res = "" then
				set res to res & return
			end if
xVir / src.js
Created Aug 4, 2016
Get user id in FB API.AI bot
View src.js
let apiaiRequest = apiAiService.textRequest(text,
sessionId: sessionIds.get(sender),
contexts: [
name: "generic",
parameters: {
facebook_user_id: sender
xVir / index.js
Created Aug 2, 2016
Webhook for bots
View index.js
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const restService = express();
restService.use(bodyParser.json());'/webhook', (req, res) => {
xVir /
Last active Nov 18, 2015
Few words about Unity multithreading

While working on our API.AI Unity SDK I faced with task to make HTTP requests in the background thread. In the Unity there is c# Thread class, which runs particular code in background. But you can't interact with your game objects from background thread. So, I need some tool to execute code from our background thread in the Unity Main Thread. Another platforms solve this problem with different mechanisms, like Dispatcher. But in Unity there is no similar class for this. Quick search give me some tricks allowing to execute code in the main thread, and I describe the simpliest one here.

The main idea of the method is to create Queue of actions, and execute these actions in the Update method of MonoBehaviour class. First, suppose that we have some MonoBehaviour class.

public class TestModule : MonoBehaviour

We should add actions queue fiel

xVir /
Last active Aug 2, 2018
Полезный скрипт для automator

Как скопировать путь к файлу в Finder

Этот скрипт для Automator позволяет добавить в Finder кнопку "Скопировать текущий путь". Если в Finder выбран файл или папка, то будет скопирован путь к соответствующему объекту. Если ничего не выбрано, то будет скопирован путь к текущей папке.

tell application "Finder"
	set sel to the selection as text
	if sel = "" then
		set sel to the insertion location as text
xVir /
Created Mar 12, 2015
Unity and codegeneration

While working on Unity plugin project I need to map JSON to the C# objects. For this task I used modification of the fastJSON library. But fastJSON use codegeneration for creating special methods for reading/writing object properties. It looks like:

if (fieldInfo.FieldType.IsValueType)
    il.Emit(OpCodes.Unbox_Any, fieldInfo.FieldType);
xVir /
Last active Apr 21, 2016
Unity problem with HTTPS

Another problem I faced with while development of Unity plugin is Exception while HTTP request from the iOS platform. It produces such stacktrace:

ExecutionEngineException: Attempting to JIT compile method 'System.Reflection.MonoProperty:GetterAdapterFrame<Mono.Security.Protocol.Tls.HttpsClientStream, bool> (System.Reflection.MonoProperty/Getter`2<Mono.Security.Protocol.Tls.HttpsClientStream, bool>,object)' while running with --aot-only.

  at System.Reflection.MonoProperty.GetValue (System.Object obj, System.Object[] index) [0x00000] in <filename unknown>:0 
  at System.Net.WebConnection.Write (System.Net.HttpWebRequest request, System.Byte[] buffer, Int32 offset, Int32 size, System.String& err_msg) [0x00000] in <filename unknown>:0 
  at System.Net.WebConnectionStream.WriteHeaders () [0x00000] in <filename unknown>:0 
  at System.Net.WebConnectionStream.SetHeaders (System.Byte[] buffer) [0x00000] in <filename unknown>:0 
  at System.Net.HttpWebRequest.SendRequestHeaders (Boolean propagate_error) [0x000
xVir /
Last active Aug 29, 2015
Unity compilation and Android

Problems with Unity app compilation

While development of our API.AI Unity SDK I have faced with upset thing. When trying to build sample Unity app for iOS platform build ends with error:

Cross compilation job ApiAiSDK.Unity.dll failed.
UnityEngine.UnityException: Failed AOT cross compiler: /Applications/Unity/ --aot=full,asmonly,nodebug,static,outfile="ApiAiSDK.Unity.dll.s" "ApiAiSDK.Unity.dll" 

First I thought, that this situation is caused by external dll's, linked to the ApiAiSDK.Unity.dll library. Googling did not lead to anything useful... So I tried to check my external libraries, and run mono-xcompiler manually. mono-xcompiler compiles .NET Assembly to the native iOS code.

xVir / MultipartHttpClient.cs
Created Feb 5, 2015
Send multipart request with HttpWebRequest
View MultipartHttpClient.cs
using System;
using System.Collections;
using System.Net;
using System.IO;
using System.Text;
public class MultipartHttpClient
private const string delimiter = "--";