-Being-

(art by Katie Ellison)

I'm a data scientist, software engineer, physicist, game designer/artist, partner and dad. I also have my assistant beekeeper's merit badge and I sometimes dig holes to plant trees in my partner's orchard.

-Doing-

These days, most of my time is divided between doing data science for Xylem and being a dad. In what scant time remains I'm trying to pick up some physics I missed in grad school (general relativity) and to work on a few game development projects.

-Projects & Code-

  • The Death Of The Corpse Wizard is a minimalist arena/arcade roguelike written almost 100% in the programming language Scheme.
  • MEAT IS MULDER is a generative art piece which automatically reconstructs images related to 20th Century Fox's "The X Files" with fragments of images of meat, dead leaves, and snakes.
  • Clocks is a generative art project (HTML5/Canvas) which tries to make interesting images out of non-random but complex behaviors. The above image was produced by one such clock. The clocks are written in...
  • Gazelle is a Lisp-like language targeting Javascript. Gazelle has built-in support for modules, metaprogramming, and extensible pattern matching. Gazelle's pattern matching is based on...
  • Shadchen, the name of which derives from a Yiddish word for matchmaker, is an ml-ish pattern-matching library for Common Lisp. I maintain two versions of this library, one in Common Lisp and one in Emacs Lisp. The latter provides special forms which implement self-recursion without growing the stack (most Common Lisp implementations are capable of tail call elimination) and forms for doing computations inside monads (I tend to put experimental code into the Emacs Lisp version first).
  • Patty is a super-tiny pattern matcher for Picolisp.
  • For many years I was devoted to finding patterns in neural spike trains produced by grazing bifurcations. While it has been some time since I worked with that code, it is available here. Also of interest may be...
  • Parenlab, which is sort of like Gazelle for Matlab, a Lisp dialect that targets Matlab and Matlab-like languages while preserving syntactic features for making vector-based programming easier. Parenlab is a bit idiosyncratic, so if you are interested in using it, let me know and I will help you out.
  • My github hosts all sorts of other fun stuff, including a giant pile of emacs-lisp utilities, a Random Demon Name Generator (almost purely functional), some persistent data structures for Emacs Lisp and Common Lisp, a version of Parenscript that will run on Franz Lisp's Modern Mode and behave about as well as that implies, and a bunch of other cool stuff which is probably not clean enough to talk up on its own.

-Saying-

Dorophone (archive here) is my blog. I don't have nearly as much time to write as I did back in my languorous graduate student days, but I still update it periodically. A Dorophone is not a super easy to use phone which I am now dismayed to find exists, but a communication device from Ada, or Ardor which uses water to transmit sound, since electricity is taboo.

If I ever tweet, such tweets shall appear, as if by magic, here!: