Skip to content

Instantly share code, notes, and snippets.

View sublee's full-sized avatar
✔️
Hello, world!

Heungsub Lee sublee

✔️
Hello, world!
View GitHub Profile
<!--
Sublee HTML for Classeur
Author: Heungsub Lee <sub@subl.ee>
Updated at: Jan 20, 2016
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@sublee
sublee / tictactoe-nt.py
Last active December 28, 2015 06:59
페리아 연대기, 고대의 언어 파이선으로 기록한 틱태토 게임 로직 (http://youtu.be/UVRBsrXvGNg?t=5m)
# 틱택토 게임 로직
# 2013. 10.
import nt
def newBoard():
return [[0,0,0],
[0,0,0],[0,0,0],]
count = 0
@sublee
sublee / conftest.py
Last active December 24, 2015 07:48
A mark decorator "pytest.mark.boxed" to run a test in forked process.
# -*- coding: utf-8 -*-
import multiprocessing
from _pytest import runner
def pytest_runtest_protocol(item):
if 'boxed' in item.keywords:
reports = boxed_run_report(item)
for rep in reports:
@sublee
sublee / benchmark.py
Created June 18, 2013 05:25
protobuf vs. msgpack in Python
# -*- coding: utf-8 -*-
import time
import msgpack
from person_pb2 import Person
TIMES = 100000
@sublee
sublee / result
Last active December 17, 2015 21:49
Python couchbase>=0.9 doesn't work with gevent.
version=0.8.0
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 0 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
version=0.9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
>>> worker1 = Worker('Hello, world')
>>> worker2 = Worker('Hello, world')
>>> spawn(worker1.run)
>>> spawn(worker2.run)
>>> remote_obj = customer.reflect([worker1, worker2])
>>> remote_obj
<Remote 'Hello, world'>
>>> remote_obj + '!'
'Hello, world!'
>>> remote_obj.startswith('Hell')
>>> cond = True
>>> pause = Pause(lambda: cond)
>>> def p1():
... print 'before pause'
... pause.wait()
... print 'after pause'
...
>>> def p2():
... global cond, pause
... time.sleep(0.5)
@sublee
sublee / chris.py
Last active December 15, 2015 00:59
# -*- coding: utf-8 -*-
from collections import namedtuple
from ranking import Ranking
Player = namedtuple('Player', ['score', 'weight'])
players = [Player(100, 1), Player(80, 1), Player(80, 2.5), Player(80, 2.5),
Player(70, 1), Player(60, 1.5), Player(60, 1.5)]
@sublee
sublee / comedy_big_league.py
Last active December 13, 2015 20:08
Comedy Big League TrueSkill ratings
# -*- coding: utf-8 -*-
"""
<`Comedy Big League`_ Season 4> TrueSkill rating calculator
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This small code collects match results and calculate `TrueSkill`_ ratings
of the teams. The match results are provided from `Enhawiki mobile
mirror`_.
It depends on :mod:`trueskill`, :mod:`ranking`, :mod:`lxml` and
@sublee
sublee / regular_crossword.py
Last active December 12, 2015 06:19
Test suite for a regular crossword
# Question: http://www.coinheist.com/rubik/a_regular_crossword/grid.pdf
# My Answer: http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/534798_4778312810689_972807554_n.jpg
import re
assert re.match(r'.*H.*H.*', 'NHPEHAS')
assert re.match(r'(DI|NS|TH|OM)*', 'DIOMOMTH')
assert re.match(r'F.*[AO].*[AO].*', 'FOXNXAXPH')
assert re.match(r'(O|RHH|MM)*', 'MMOMMMMRHH')
assert re.match(r'.*', 'MCXNMMCRXEM')
assert re.match(r'C*MC(CCC|MM)*', 'CMCCCCMMMMMM')