Hi. The short version is that I am a trained physicist,
have worked professionally as a computational
neuroscientist and data analysis type guy, and more
recently have been working in software development (games,
art, web, backend), primarily in the languages Common
Lisp, Scheme, Java and Javascript, where I am bringing
idioms and ideas from functional programming into my
company's codebase.
In addition to the raw pleasures of making bits move around
by typing symbols at machines, I am now nursing a deep
interest in the process of developing software in teams.
I've become particularly interested in what interpersonal
dynamics enable successful software development. I've
recently
enjoyed Specification
By Example, by Gojko Adzic,
and Inspired
by Marty Cagan.
I've
got good
communication skills and I am comfortable using them in
front of a large number of people. I particularly enjoy
communicating about challenging and abstract ideas. I may even
enjoy rendering ideas comprehensible more than having the
ideas in the first place.
Although professional life often intervenes, I make an
attempt to stay creative. I occasionally write non-fiction,
poetry,
and music
and recently have been working on a large series
of generative art pieces in a
Lisp dialect of my own design which targets Javascript.
Sorry humans looking for love: I'm quite happily married.
-Doing-
Of course, most of my time is spent working
for Sensus, as a data analyst/engineer. The rest of the time I get up
to:
-Projects & Code-
The Death Of The Corpse
Wizard is a minimalist roguelike arena game made with
HTML5/Javascript. Needs a modern browser to run. The
Death Of The Corpse Wizard is under active development,
and you can play an experimental
version here.
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).
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!: Tweets by @jvtoups