Skip to content

Instantly share code, notes, and snippets.

View caimaoy's full-sized avatar

Yue Chen caimaoy

View GitHub Profile

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

# -*- coding: UTF-8 -*-
'''
Last modified time: 2014-10-27 12:08:54
Edit time: 2014-12-09 15:13:19
File name: setup.py
Edit by caimaoy
'''
@caimaoy
caimaoy / log.py
Created March 3, 2015 11:56
log.py based on logger
# -*- coding: UTF-8 -*-
import os
import logging
import logging.handlers
def init_log(log_path, level=logging.DEBUG, when="D", backup=7,
format="%(levelname)s: %(asctime)s: %(filename)s:%(lineno)d * %(thread)d %(message)s",
datefmt="%m-%d %H:%M:%S"):
"""
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
# generate server.xml with the following command:
# openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
# run as follows:
# python simple-https-server.py
# then in your browser, visit:
# https://localhost:4443
import BaseHTTPServer, SimpleHTTPServer
import ssl
Binxing Fang, http://en.wikipedia.org/wiki/Fang_Binxing
方滨兴,中国工程院院士,北京邮电大学教授,中国科学院计算技术研究所网 络方向首席科学家。
Gang Xiong, http://rd.springer.com/search?facet-author=%22Gang+Xiong%22
熊刚, 高级工程师, 研究方向为信息安全。E-mail: xionggang@ict.ac.cn。
Weili Han, http://crypto.fudan.edu.cn/people/weili/
韩伟力, http://homepage.fudan.edu.cn/wlhan/en
This is just my personal gist clip.
@caimaoy
caimaoy / tmux-cheatsheet.markdown
Created October 20, 2016 02:57 — forked from MohamedAlaa/tmux-cheatsheet.markdown
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@caimaoy
caimaoy / openssl_tool.txt
Created April 19, 2017 06:03 — forked from jorben/openssl_tool.txt
RSA加解密,签名、验签文件
1) Generate RSA key:
$ openssl genrsa -out key.pem 1024
$ openssl rsa -in key.pem -text -noout
2) Save public key in pub.pem file:
$ openssl rsa -in key.pem -pubout -out pub.pem
$ openssl rsa -in pub.pem -pubin -text -noout
3) Encrypt some data:
async def main():
coroutine1 = do_some_work(1)
coroutine2 = do_some_work(2)
coroutine3 = do_some_work(4)
tasks = [
asyncio.ensure_future(coroutine1),
asyncio.ensure_future(coroutine2),
asyncio.ensure_future(coroutine3)
]
@caimaoy
caimaoy / Makefile
Created August 8, 2018 07:10 — forked from doubleyou/Makefile
grpc-gateway python example
GATEWAY_FLAGS := -I. -I/usr/local/include -I$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis -I/usr/local/include
GRPC_FLAGS := --python_out=. --grpc_python_out=.
code:
python -m grpc_tools.protoc $(GRPC_FLAGS) $(GATEWAY_FLAGS) *.proto
gw:
protoc $(GATEWAY_FLAGS) \
--go_out=Mgoogle/api/annotations.proto=github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis/google/api,plugins=grpc:. \