Skip to content

Instantly share code, notes, and snippets.

View ayanamist's full-sized avatar

ayanamist ayanamist

View GitHub Profile
@ayanamist
ayanamist / throttle.js
Created December 29, 2014 05:54
throttle function for node.js
/**
* 限制fn同时执行的个数,fn必须符合node函数规范,即参数最后一位是回调函数
* 如果有this绑定需求,需要提前bind好,否则this会变null。
*
* @param fn
* @param concurrency
* @returns {Function}
*/
function throttle(fn, concurrency) {
if (concurrency <= 0) {
@ayanamist
ayanamist / app.yaml
Created June 30, 2011 14:05
Google App Engine Twitter API Proxy (T Mode)
application: gtap
version: 1
runtime: python
api_version: 1
handlers:
- url: /t/.*
script: main.py
@ayanamist
ayanamist / MyEncoder.bat
Created September 3, 2011 10:25
mp4convertor
@echo off
set CurPath=%0
IF NOT "%CurPath%"=="" set CurPath=%CurPath:~0,-15%"
set PATH=%CurPath%;%PATH%
set flock="%CurPath%\converting.txt"
:START
if exist %flock% goto WAIT
echo 文件正在转换中!请勿删除此文件! > %flock%
@ayanamist
ayanamist / openvpn-reconnect.sh
Created October 27, 2011 13:02
OpenVPN reconnect Bash script
#!/bin/bash
# configuration
DEVICE="tap0"
USERNAME="twitter"
PASSWORD="twitter"
# check configuration and environment
if [ -z $DEVICE ]; then
echo You must specific DEVICE first.
@ayanamist
ayanamist / random.html
Created January 17, 2012 15:59
抽奖用页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>抽奖</title>
<style type="text/css">
body {
background: transparent url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBuRXhpZgAASUkqAAgAAAABAGmHBAABAAAAGgAAAAAAAAABAIaSAgA6AAAALAAAAAAAAABDUkVBVE9SOiBnZC1qcGVnIHYxLjAgKHVzaW5nIElKRyBKUEVHIHY2MiksIHF1YWxpdHkgPSA5MAoA/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgClgOPAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJ
@ayanamist
ayanamist / vpncwatch
Last active December 9, 2015 16:28
vpncwatch (shell version)
#!/bin/sh
log() {
logger -t vpncwatch $@
}
SH_PID="/var/run/vpncwatch.pid"
VPNC="/usr/sbin/vpnc"
VPNC_OPTS=""
VPNC_PID="/var/run/vpnc/pid"
@ayanamist
ayanamist / dnscryptwatch
Last active December 10, 2015 01:34
OpenDNS DNSCrypt Watch
#!/bin/sh
PIDFILE=/var/run/dnscryptwatch.pid
BINPATH=/usr/sbin/dnscrypt-proxy -a 127.0.0.1:40
DNSCRYPT_PIDFILE=/var/run/dnscrypt.pid
# Check whether script is running, and if running, exit directly
if [ -s $PIDFILE ] && [ -s /proc/$(cat $PIDFILE)/exe ]; then
exit 0
fi
# Fork current script to background daemon
if [ -z "$_BACKGROUNDED" ]; then
@ayanamist
ayanamist / dnsmasq_gfw.patch
Last active December 15, 2015 15:38
让dnsmasq额外支持bogus-gfw参数,过滤GFW产生的污染结果。 未测试。
52540f42e67b8bca7ea4fa087090ac6554d66d71
src/dnsmasq.h | 1 +
src/forward.c | 8 ++++++++
src/option.c | 19 +++++++++++++++++++
3 files changed, 28 insertions(+)
diff --git a/src/dnsmasq.h b/src/dnsmasq.h
index 21a309c..efc66b4 100644
--- a/src/dnsmasq.h
+++ b/src/dnsmasq.h
@ayanamist
ayanamist / min-btn.patch
Created December 6, 2013 06:21
Fix bug of xfwm4 which sometime eat minimize button. More detail please refer to https://bugzilla.xfce.org/show_bug.cgi?id=10413
Index: xfwm4-4.10.1/src/netwm.c
===================================================================
--- xfwm4-4.10.1.orig/src/netwm.c 2013-05-05 23:58:42.000000000 +0800
+++ xfwm4-4.10.1/src/netwm.c 2013-12-06 12:26:31.351436498 +0800
@@ -1325,7 +1325,6 @@
c->initial_layer = c2->win_layer;
TRACE ("Applied layer is %lu", c->initial_layer);
}
- FLAG_UNSET (c->xfwm_flags, XFWM_FLAG_HAS_HIDE);
}
@ayanamist
ayanamist / build-ffmpeg.sh
Last active April 3, 2016 13:46
Build libffmpeg.so for DicePlayer
#!/bin/bash
NDKROOT=~/android-ndk # insert android ndk path
DEVICE_TYPE="arm_neon" # insert device type(arm_neon, arm_tegra2, x86)
OS=LINUX64 # insert OS Version(LINUX64, LINUX32, WINDOWS_64, WINDOWS)
if [ $DEVICE_TYPE == "arm_neon" ];
then
TOOLCHAIN=toolchain-arm
ARCH=arm