Skip to content

Instantly share code, notes, and snippets.

View sokrato's full-sized avatar
💭
All (not just black) Lives Matter!

Sokrato sokrato

💭
All (not just black) Lives Matter!
  • Alibaba
  • HangZhou, China
View GitHub Profile
@sokrato
sokrato / cloexec.c
Created September 18, 2015 06:11
文件描述符的O_CLOEXEC 参数
// main.c
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/socket.h>
static char buf[5];
int main(int argc, char* argv[])
{
@sokrato
sokrato / mail.py
Created July 31, 2015 08:08
Send mail with attachments in Python
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os
def sendMail(to, fro, subject, text, files=[],server="localhost"):
assert type(to)==list
@sokrato
sokrato / httpfs.go
Last active August 29, 2015 14:06
simple http server serving file sys with Go
package main
import (
"flag"
"fmt"
"net/http"
"os"
)
var addr, dir, prefix string
@sokrato
sokrato / bookmarklet.md
Last active August 29, 2015 14:05
Useful links
@sokrato
sokrato / Pytles.py
Created January 23, 2014 05:59
simple Python Template Engine
#-*- coding: utf8 -*-
from __future__ import print_function
import re
def format(tpl, **vars):
p = re.compile(r'''\{\{\s*([a-zA-Z0-9_]+?)\s*\}\}''')
ret, pos = '', 0
while True:
#-*- coding: utf8 -*-
def isPrime(num, ps):
for i in ps:
if num%i == 0:
return False
if i**2 > num:
break
return True
@sokrato
sokrato / multiple.py
Created January 15, 2014 11:48
Multiples of 3 and 5, http://projecteuler.net/problem=1, performance difference
#-*- coding:utf8 -*-
from __future__ import print_function
import sys
import time
if sys.version_info < (3,0):
range = xrange
@sokrato
sokrato / brainfuck.c
Created January 14, 2014 11:28
BrainFuck compiler
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
/*
> becomes ++p;
< becomes --p;
+ becomes ++*p;
- becomes --*p;
@sokrato
sokrato / advanced.py
Created January 14, 2014 03:31
Example advanced Python features
#-*- coding: utf8 -*-
'''
Examples of advanced Python features:
- metaclass
- descriptor
- generator/forloop
'''
from __future__ import print_function
import sys
@sokrato
sokrato / log_ana.c
Last active January 3, 2016 00:39
解析一个912M(8e6行)的日志文本文件,同样的逻辑Python用了4'05'', C程序用了14''. 性能还是有差距的啊!
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#define MAXLINE 1024
#define DATE_FORMAT "%Y-%m-%d %H:%M:%S"
#define GAP_IN_SEC 2