Sooyeon and I have been very busy for the past 7 months with our brand new baby daughter Haereen. When I get a few spare seconds I still work on my personal projects but it's been pretty slow going as of late. I'm definitely not complaining since Haereen is totally worth it. Anyway, here is a summary of some of the things I've worked on in my free time. 2.0 preview is a Korean verb conjugation algorithm that explains the contractions and exceptional rules for many tenses and levels of politeness. The current version is written in Python but there was a whole rewrite of the engine into JavaScript over two years ago to make it easier to port to Android and iOS. I've had the rewrite sitting in a branch for around a year now but it's only been a month or so since I pushed up

qc a QuickCheck implementation in Python

>>> def simple_adder(a : int, b : int) -> int:
...    return a + b
>>> from qc import check_annotations
>>> check_annotations(simple_adder)
>>> def lying_adder(a : int, b : int) -> int:
...     return 'result: %d' % (a + b,)
>>> check_annotations(lying_adder)
Traceback (most recent call last):
  File "", line 1, in 
  File "qc/", line 137, in check_annotations
    f.__name__, output, response_type, test_args))
AssertionError: Was expecting lying_adder to return <class 'int'> but got <class 'str'> with these arguments: {'a': 0, 'b': 0}