Skip to content

Instantly share code, notes, and snippets.

View xVir's full-sized avatar

Danil Skachkov xVir

  • Google
  • Santa Clara
View GitHub Profile
@xVir
xVir / vpn.md
Created August 29, 2016 07:16
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
xVir / updated_copy_path.md
Last active August 16, 2016 06:51
updated_copy_path

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
xVir / src.js
Created August 4, 2016 06:38
Get user id in FB API.AI bot
let apiaiRequest = apiAiService.textRequest(text,
{
sessionId: sessionIds.get(sender),
contexts: [
{
name: "generic",
parameters: {
facebook_user_id: sender
}
}
@xVir
xVir / index.js
Created August 2, 2016 10:10
Webhook for bots
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const restService = express();
restService.use(bodyParser.json());
restService.post('/webhook', (req, res) => {
@xVir
xVir / unity_multithreading.md
Last active November 18, 2015 09:36
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
xVir / script_copy_path.md
Last active August 2, 2018 22:11
Полезный скрипт для 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
xVir / unity_codegen.md
Created March 12, 2015 12:05
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:

il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldarg_1);
if (fieldInfo.FieldType.IsValueType)
 il.Emit(OpCodes.Unbox_Any, fieldInfo.FieldType);
@xVir
xVir / unity_https_problem.md
Last active April 21, 2016 05:37
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
xVir / unity_android_problem.md
Last active August 29, 2015 14:16
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/Unity.app/Contents/PlaybackEngines/iOSSupport/Tools/OSX/mono-xcompiler --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
xVir / MultipartHttpClient.cs
Created February 5, 2015 10:40
Send multipart request with HttpWebRequest
using System;
using System.Collections;
using System.Net;
using System.IO;
using System.Text;
public class MultipartHttpClient
{
private const string delimiter = "--";