Skip to content

Instantly share code, notes, and snippets.

@ls0f
ls0f / cal.py
Created June 23, 2016 08:41
cal
#coding:utf-8
'''
expr ::= term { (+|-) term }*
term ::= factor { (*|/) factor }*
factor ::= ( expr )
| NUM
@ls0f
ls0f / tail.py
Created April 19, 2016 08:46
Python tail
import os
import time
import sys
class Tail(object):
def __init__(self, file_name):
self.filename = file_name
self.pos = 0
@ls0f
ls0f / backup_mysql.sh
Last active March 1, 2016 06:49
backup mysql
#!/bin/bash
echo " = = = = = back up start @ `date` = = = = = "
BACKUP_DIR="/opt/data/backup"
DUMP_CMD="/usr/bin/mysqldump"
HOST="127.0.0.1"
PORT="3306"
USER="root"
PASSWORD="123456"
cd $BACKUP_DIR
TIMESTAMP=`date +%F-%H%M`
@ls0f
ls0f / proxy.go
Created February 26, 2016 02:54 — forked from wallrat/proxy.go
Simple GO TCP proxy
package main
import (
"net"
"fmt"
"io"
"os"
)
func main() {
if len(os.Args) != 3 {
fatal("usage: netfwd local remote")
@ls0f
ls0f / arp.py
Created February 23, 2016 05:27
arp hack
#coding:utf-8
import socket
import time
import os
import sys
from struct import pack
ARPOP_REQUEST = pack('!H', 0x0001)
ARPOP_REPLY = pack('!H', 0x0002)
@ls0f
ls0f / img2txt.js
Created January 28, 2016 08:43 — forked from justjavac/img2txt.js
img2txt:基于canvas的图片转字符画工具
var cv = document.getElementById('cv');
var c = cv.getContext('2d');
var txtDiv = document.getElementById('txt');
var fileBtn = document.getElementById("up-button");
var img = new Image();
img.src = 'a.jpg';
img.onload = init; // 图片加载完开始转换
fileBtn.onchange = getImg;
// 根据灰度生成相应字符
@ls0f
ls0f / int2bin.py
Last active January 28, 2016 02:49
int2bin
def int2bin(num):
s = ''
while num > 0:
s = ('1' if num & 1 else '0') + s
num >>= 1
return s if s else '0'
if __name__ == "__main__":
assert int2bin(12345) == bin(12345)[2:]
@ls0f
ls0f / .tmux.conf
Created January 20, 2016 07:39
tmux config
#此类配置可以在命令行模式中输入show-options -g查询
set-option -g base-index 1 #窗口的初始序号;默认为0,这里设置为1
set-option -g display-time 5000 #提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒
set-option -g repeat-time 1000 #控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒
set-option -g status-keys vi #操作状态栏时的默认键盘布局;可以设置为vi或emacs
set-option -g status-right "#(date +%H:%M' ')" #状态栏右方的内容;这里的设置将得到类似23:59的显示
set-option -g status-right-length 10 #状态栏右方的内容长度;建议把更多的空间留给状态栏左方(用于列出当前窗口)
#set-option -g status-utf8 on 开启状态栏的UTF-8支持
#此类设置可以在命令行模式中输入show-window-options -g查询
@ls0f
ls0f / phone.go
Last active December 6, 2015 03:42
phone 的go解析
package main
import (
"bytes"
"encoding/binary"
"fmt"
"io/ioutil"
"strconv"
)
@ls0f
ls0f / gevent_celery.py
Created October 19, 2015 02:30
模仿 celery 的gevent celery
#coding:utf-8
from gevent import monkey
monkey.patch_all()
import logging
import gevent
import datetime
logging.basicConfig(level=logging.DEBUG)
LOGGER = logging.getLogger("GeventCelery")