Chess Clock Plus


I am infatuated with chess. I’ve known the basic rules for as long as I can remember, but had not gained an appreciation for the game’s nuances until recently. The game designer in me was hooked by the game’s endless complexity, and how it arises out of a set of simple rules. The software developer in me was intrigued by the game’s algorithmic nature.

A Language Odyssey (part 2)


For the first post in this series, read here.

In this post, I’ll start to get into the specifics of how to actually write a translator. I wouldn’t recommend doing the entire thing by hand. Most of the complicated and time-instensive work can be mitigated by using free tools. These types of tools are called ‘parser generators’ or ‘compiler compilers‘.

A Language Odyssey (Part 1)


As a programmer, I often find myself succumbing to the allure of algorithms. There’s nothing quite like expanding your mental horizon by learning a new concept or pattern.

Some of the most powerful and elegant algorithms are the ones used in language translation. This is the same process your compiler uses to translate a human-readable programming language into machine code. You can learn to harness these same algorithms to create your own domain-specific language.