Johnicholas's sketch of a home page

A sketch of a "sqlite interpreter", with the notion that maybe one could write a quine "in sqlite" despite the nonexistence (at the moment) of a procedural extension to the sql syntax supported by sqlite.

I tried to create a tool for manually solving job-shop-scheduling problems. I hope that anyone who knows the term "job-shop-scheduling" also knows how dumb it is to manually solve them.

This was trying to create a little interpreter, for if-then-else-plus-straight-line programs. It seems like sometimes one needs to have internet protocols which allow (untrusted) remote entities to send little proxies or agents representing policies to be executed locally. Some kinds of auctions, for example.

This is a generator for a particular kind of template class, which I call the "wiring idiom". The generator takes a syntax tree and outputs a class which represents that syntax tree. I think using the wiring idiom encourages the other classes (the ones being wired together) to be more stateless and reusable. 

I worked on an extremely simple, extremely object-oriented orchestration engine (something like an extremely cut-down version of BPEL for manipulating high-latency request-response services). It uses the wiring idiom to express how the different tasks should be connected together.

In order to understand P'', I wrote a little simulator for it. It can do Bohm's decrement algorithm, but it's not particularly efficient, well-documented or pretty.

I transliterated a tiny functional program into Java's OO style, with interesting results.

At one point, I tried to write a little library for "strings with slots". You combine a template like: "Hello, $name$" with a dictionary that maps "name" to "Johnicholas", and get "Hello, Johnicholas". I haven't used it much, so it's probably buggy.

This is a doodle trying to figure out how that "select/poll-based user multithreading dataflow sockets thing" (which I've seen in a couple places, most notably sfs/sfslite) works.

Once upon a time, I intended to write something about an idiom for implementing statecharts, here.

If you download any of my stuff, and want to talk to me about it, contact me (first_name@first_name.com).