Skip to content

Instantly share code, notes, and snippets.

Jiangge Zhang tonyseek

Block or report user

Report or block tonyseek

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@tonyseek
tonyseek / ietf-rfc-dl.sh
Last active Aug 9, 2019
Download IETF RFC
View ietf-rfc-dl.sh
#!/usr/bin/env bash
set -e
set -o pipefail
RFC_ID="$1"
if ! grep -qE '^[[:digit:]]+$' <<<"$RFC_ID"; then
printf >&2 'Usage: %s RFC_ID\n' "$(basename "$0")"
exit 2
fi
@tonyseek
tonyseek / treecache.py
Last active Jul 4, 2019
Use TreeCache of Kazoo to get node data.
View treecache.py
import logging
import threading
from kazoo.client import KazooClient
from kazoo.recipe.cache import TreeCache, TreeEvent
class TreeCacheListener(object):
CONNECTIVE_EVENTS = {
@tonyseek
tonyseek / instance_method_decorator.py
Last active Nov 21, 2018
The decorator on instance method as a descriptor
View instance_method_decorator.py
import functools
class Increment(object):
def __init__(self, wrapped, delta):
self.wrapped = wrapped
self.delta = delta
def __get__(self, instance, owner=None):
method = self.wrapped.__get__(instance, owner)
@tonyseek
tonyseek / clean_code_wcc
Last active Jul 21, 2018
Remove wild control characters from files which was edited by VSCode
View clean_code_wcc
#!/usr/bin/env sh
# Clean up the control characters of documents
# See also: https://wdd.js.org/vscode-control-characters-problem.html
# https://github.com/Microsoft/vscode/issues/37114
exec find . -type f -name '*.md' -exec perl -pi -e 's/[\x{0000}\x{0001}\x{0002}\x{0003}\x{0004}\x{0005}\x{0006}\x{0007}\x{0008}\x{000b}\x{000c}\x{000d}\x{000e}\x{000f}\x{0010}\x{0011}\x{0012}\x{0013}\x{0014}\x{0015}\x{0016}\x{0017}\x{0018}\x{0019}\x{001a}\x{001b}\x{001c}\x{001d}\x{001e}\x{001f}\x{001c}\x{007f}]//gm' {} +
@tonyseek
tonyseek / mysql-backup.sh
Last active May 28, 2018
Perform MySQL incremental backup with Percona XtraBackup
View mysql-backup.sh
#!/bin/sh
set -e
MYSQL_USERNAME='root'
MYSQL_PASSWORD=''
MYSQL_HOST='127.0.0.1'
MYSQL_PORT='3306'
MYSQL_DATADIR='/var/lib/mysql'
@tonyseek
tonyseek / README.md
Last active Oct 28, 2017
Downgrade Sketch documents
View README.md

Downgrade Sketch Document

Why

I don't wish to buy Sketch 3 again since I bought it from MacAppStore but lost continue upgrades and 5 devices support. A old version of Sketch will be restricted from opening documents created by the new versions of Sketch.

This is a workaround for some Sketch documents which don't depend on any

@tonyseek
tonyseek / android-captive.sh
Last active Nov 18, 2019
Overrides the captive portal settings of Android in the People's Republic China Mainland
View android-captive.sh
#!/usr/bin/env sh
adb shell settings put global captive_portal_fallback_url http://g.cn/generate_204
adb shell settings put global captive_portal_http_url http://www.google.cn/generate_204
adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204
adb shell settings put global captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204
View namedtuple.py
import operator
class Node(tuple):
path = property(operator.itemgetter(0))
data = property(operator.itemgetter(1))
stat = property(operator.itemgetter(2))
@tonyseek
tonyseek / logging-and-gevent.py
Last active Sep 8, 2016
The deadlock caused by inconsistent thread ident (RLock of logging handlers)
View logging-and-gevent.py
import logging
import itertools
import gevent.monkey
class SlowHandler(logging.Handler):
def emit(self, record):
gevent.sleep(1)
@tonyseek
tonyseek / surge_to_ssx.py
Created Aug 23, 2016
Migrate the Surge configuration to ShadowsocksX because the Surge Mac 2.0 restricts device numbers.
View surge_to_ssx.py
#!/usr/bin/env python3
"""ShadowsocksX Migration.
This script generates ShadowsocksX profiles from the Surge configuration.
"""
import os
import json
import time
You can’t perform that action at this time.