I am David F. Houghton. The "F." is important because there are a lot of David Houghtons. You can read more about me here.
At the moment, the chief function of this site is to provide the documentation for various open source projects I've written. All of this code is available on github. The Perl code is also available via CPAN. I have a lot more projects than I have documentation here. My intention is that this will change (by the addition of documentation), but I make no promises as to when.
A note regarding the formatting conventions on this site. There are two sorts of fixed-width (pre) blocks: those
showing code
and those
showing results



A collection of Perl debugging functions.


A command line utility for keeping track of what you've done and when.


A Perl client for the Stripe payment gateway.


A Java library providing recursive BNF-style pattern matching on character sequences with variable-length lookbehinds, parse trees, and whatnot.

Tellurium Extension

A Chrome extension (javascript) facilitating the writing of pbehave test for Tellurium.I am not the original, let alone sole, author of this code, though as of August 2014 I was the principle architect of the Chrome version of the extension. It is now in other hands.


A concise, declarative command line option parsing library for Java inspired by the innumerable getopt modules in CPAN.


A Java library for constructing “trie” regular expressions.

Stanford CFG

A Java library containing adapter classes allowing one to construct context-free grammars using the tokenization and tagging from Stanford's CoreNLP library.


A Java library for querying tree data structures. This is like XPath but more general. I ported this formalism, with considerable extensions, to Perl as TPath.



An evolution simulator I wrote together (initially) with my son Jude. The source is on github, as usual.