Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am ziyan on github.
  • I am ziyan (https://keybase.io/ziyan) on keybase.
  • I have a public key ASBdLPM_LAxG1O1kV-erVd0CtIwqBBP9nZtiS2oc897vNQo

To claim this, I am signing this object:

@ziyan
ziyan / metaclass.py
Last active March 10, 2020 23:14
Auto reload Python class
import weakref
import inspect
class MetaAutoReloader(type):
def __new__(cls, name, bases, members):
cls = super(MetaAutoReloader, cls).__new__(cls, name, bases, members)
cls.__instance_refs__ = weakref.WeakSet()
f = inspect.currentframe().f_back
for d in (f.f_locals, f.f_globals):
if name not in d:
@ziyan
ziyan / create-gpgring-package.sh
Created January 17, 2018 01:35 — forked from stbuehler/create-gpgring-package.sh
create debian apt keyrings and packages
#!/bin/bash
# syntax: $0 -p <packagename> [-a "author <email>"] [-k "my-keyring-filename.gpg"] [-d <destdir for package>] [-v <packageversion>] [--] <keyfiles...>
set -e
selfdir=$(readlink -f "$0")
selfdir=$(dirname "${selfdir}")
tmpdir=$(mktemp --tmpdir -d create-gpgring-package-XXXXXXX)
@ziyan
ziyan / ses.py
Created December 26, 2017 03:08
Generate SES credential from AWS secret
import hashlib
import hmac
import base64
secret = 'your-aws-secret'
print(base64.b64encode('\x02' + hmac.new(secret, 'SendRawEmail', digestmod=hashlib.sha256).digest()))

Keybase proof

I hereby claim:

  • I am ziyan on github.
  • I am ziyan (https://keybase.io/ziyan) on keybase.
  • I have a public key whose fingerprint is 3ACB 5CA8 E4C1 86B6 3564 ECA3 2A51 842C 0644 0E40

To claim this, I am signing this object:

@ziyan
ziyan / git-lfs-authenticate
Created February 25, 2016 03:27
Hack to use git-lfs-authenticate with gitlab
#!/bin/bash
cat << EOF
{
"header": {
"Authorization": "Basic $(echo -n 'username:password' | base64)"
}
}
EOF
@ziyan
ziyan / unattend.xml
Created August 10, 2014 08:05
Working unattend.xml
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<DiskConfiguration>
<DisableEncryptedDiskProvisioning>true</DisableEncryptedDiskProvisioning>
<WillShowUI>OnError</WillShowUI>
</DiskConfiguration>
<ImageInstall>
<OSImage>
@ziyan
ziyan / .vimrc
Created April 4, 2014 19:21
Critical vim settings.
filetype plugin on
set expandtab
set tabstop=4
set number
set foldenable
set encoding=utf-8
set fileencoding=utf-8
syntax enable
@ziyan
ziyan / tweets.py
Last active August 29, 2015 13:57
Streaming tweets into a yaml file.
import pycurl
import simplejson as json
import urllib
import oauth2
import logging
import threading
import sys
import time
import os
import yaml
CONSUMER = new Consumer 'key', 'secret'
request = (method, url, token, parameters) ->
token = token or null
request = new Request CONSUMER, token, method, url, parameters
data = request.sign()
$.ajax
type: method
url: url