Skip to content

Instantly share code, notes, and snippets.

@kaiix
kaiix / echoserv.py
Last active August 29, 2015 14:10
coroutine rocks
import socket
from pyos import Scheduler
from pyos import NewTask
from pyos import Accept, Send, Receive
def handle_client(client, addr):
print "Connection from", addr
while True:
data = yield Receive(client, 65536)
# http://blog.hakril.net/articles/0-understanding-python-by-breaking-it.html
def get_ref(obj):
""" returns a c_size_t, which is the refcount of obj """
return ctypes.c_size_t.from_address(id(obj))
@kaiix
kaiix / mongodb.logrotate
Last active December 30, 2020 03:55
logrotate mongodb log
/var/log/mongodb/mongod.log {
hourly
missingok
rotate 5
compress
delaycompress
notifempty
create 0640 mongodb mongodb
sharedscripts
postrotate
@kaiix
kaiix / cuckoo.scptd
Last active November 26, 2015 09:42
notify time
on cuckoo()
set dateStr to time string of (current date)
set meow to POSIX path of (path to resource "meow.mp3")
display notification dateStr with title "Meow"
do shell script ("afplay " & meow)
end cuckoo
script main
cuckoo()
end script
import math
from collections import Counter
def tf(word, doc):
word_counter = Counter(doc.split())
return word_counter(word) / sum(word_counter.values())
def idf(word, corpus):
return math.log(len(corpus) / (1 + sum(1 for doc in corpus if word in doc)))
@kaiix
kaiix / EC2.md
Last active February 3, 2016 04:24 — forked from kkc/EC2.md
EC2 settings

EC2 相關設定

記憶體

  1. 設定swap(預設為60, 當系統使用到超過40% memory, 就會嘗試使用swap)

    sysctl -w vm.swappiness=0   # from 60 -> 0
    
@kaiix
kaiix / try.c
Created September 23, 2016 09:08
try/catch with setjmp
#include <unistd.h>
#include <stdio.h>
#include <setjmp.h>
#include <signal.h>
jmp_buf j;
void try()
{
printf("call try\n");
@kaiix
kaiix / Netfilter-IPTables-Diagrams.md
Created February 28, 2018 08:51 — forked from nerdalert/Netfilter-IPTables-Diagrams.md
Linux NetFilter, IP Tables and Conntrack Diagrams

Linux NetFilter, IP Tables and Conntrack Diagrams

IPTABLES TABLES and CHAINS

IPTables has the following 4 built-in tables.

1) Filter Table

Filter is default table for iptables. So, if you don’t define you own table, you’ll be using filter table. Iptables’s filter table has the following built-in chains.

import csv
import os
import plistlib
def parse_safari_reading_list_plist():
plist = plistlib.load(
open(os.path.expanduser('~/Library/Safari/Bookmarks.plist'), 'rb'))
items = []
@kaiix
kaiix / kenter.sh
Last active December 27, 2018 03:50
__kubectl_init_completion()
{
COMPREPLY=()
_get_comp_words_by_ref "$@" cur prev words cword
}
__kubectl_get_pod()
{
if declare -F _init_completion >/dev/null 2>&1; then
_init_completion -s || return