Play with:
Mazes WordURL Dworkin device
Web Libs Stereograms Jaiku
glog Weblogger Pattan Visual Mantras

I like to be working on a number of toys at all times. "Toys", in this context, refers to information-things, usually computer programs, that are pretty and entertaining, regardless of their immediate practical value. Of course, immediate practical value is sometimes itself pretty and entertaining.

My most famous toy is a silly litle thing I threw together over a weekend: my random likely-URL maker; source is here. Trivial as it is, it's yet another example of serendipitous exploration of big logical spaces. The reason it's famous is that it was mentioned once on, causing the hit-rate to briefly rise over one/second and threaten to overload the server. There are now pointers to it all over the place, including on Yahoo itself; see the News for 20 September 1999 and after for details.

Years and years ago as a kid, I saw a picture on the cover of Science News that showed this curving maze of paths, formed from just a couple of simple shapes stuck together at random. I made myself a set of those shapes out of cut-up graph paper, and kept them in a Tic-Tac box for idly doodling around with. The other weekend I realized it'd be trivial to do up in JavaScript, so here it is. Just to be pretensious, I call it "Visual Mantra I" (click anywhere on the image to twiddle with the pieces). Later I did a two-color version ("Visual Mantra II"), and a similar toy based on a magnetic gizmo I got for Christmas once ("Kwilt", I think it was called): "Visual Mantra III". Feel free to copy the scripts and the images if you want them, or just to play with them here. I've discovered a space of eight related toys, of which these are just three; maybe someday I'll code up all eight, and combine them into one meta-toy.

The mazes in the Visual Mantras aren't the usual "start here" / "finish here" sorts of mazes. I've fiddled with those a bit also; my page about mazes includes a Perl module that generates random rectangular mazes, and a CGI script that uses that module to deliver a maze to your browser. The mazes it generates aren't very hard; I'm not sure if there are Secrets of Writing Hard Mazes that I don't know, or if smallish rectangular mazes are just always easy.

I've been messing around with algorithmic music composition for years, although you wouldn't guess it from the current version! Here is a page about PATTAN, a tiny Perl music-composer. Some more listenable music, saved from old composers of mine written in Pascal, include this, this, and this.

I think Weblogs are really neat, and I've written a little Weblogging CGI script called "glog" (it has its own page here). My own log/journal thing doesn't use glog, but someday maybe I'll start a pure Weblog that does. You can post stuff in the glog demo Weblog yourself; see instructions on the glog page.

Jaiku is another recent weekend project; I typed a simple grammar for Haiku into Scott Scriven's "Mad Lib" grammar driver the other day, and decided that it'd be fun to do a larger version in Java (both to keep my Java skills honed, and to offload the computation to y'all clients in case we get slashdotted again!). See the Jaiku page for the result. I realize it's less than poetic! *8) I have some ideas to make it better that I might eventually code.

Another Web-related toy is the Buttoner Perl module that I wrote to produce the buttons for this site. I made one quasi-3D button by hand in Paint (I have yet to spring for any more complex drawing tools, and besides I don't trust them to do exactly what I want), and that was boring enough that the obvious thing to do was modularize it. The code is here.

RaDoSt is a Perl module for making random-dot stereograms; those "Magic Eye" things, like this. See the RaDoSt page for code and sample output.

Everyone loves Mad Libs, and it's a painfully-obvious application of CGI forms. So, cheesy and obvious as it is, I wrote a little Perl module to do it. You can play with it here. The module allows for full tailoring of the generated HTML, as semi-documented here. And here's the source for the module itself, and the tiny driver that's running it here (note the driver contains full spoilers for the Web Libs!). Information wants to be [adjective]!

Yet another website-related toy is the silly little typewriter that's part of the Dworkin Device on Theogeny. It's not modularized or anything, but it might be useful to show how simple a CGI script can be. The source is here.

SLIGE is probably too large and multifarous to quite be called a toy; it's fifteen thousand or so lines of C code by now. On the other hand, it's pretty and entertaining, and of no direct practical value. What's a good name for a big toy?

I've been interested in one-dimensional cellular automata for a long time; I have a stack of yellowing index cards in my office, begun when I was a wee IBM lad, recording my explorations in the space of 16-state radius-one one-dimensional CAs. It's a really large space, with lots of very pretty areas hidden among an unthinkably large desert of random snow. There's a little Java applet that shows off some of the pretty regions on my IBM home page; I haven't put the source anywhere yet, but if you're interested drop me a line. It's pretty obvious, really. (Oh, user interface: if the pattern gets boring, click on it to restart with a new set of transition rules.)

Silly Windows98 Tricks: This is more a hack than a toy, but I'm sure you'll forgive me. It turns out that the Windows98 options menus that you get to via "My Computer / View / Folder Options / View" are made up from a bunch of registry entries. By adding stuff to the registry, you can put anything you want into those menus. Here is a .reg file that adds an "Increase Serenity" option to the control (image). On my Win98 machine, I like to keep it checked! *8) It's silly, but it illustrates a useful hack; you can modify that .reg file to add an option to that control to toggle any two-state registry key you want.

More toys to come as I dig up, think of and/or write them. Two phrases currently circulating in my brain are "Virtual Universe Webcam" and "page-o-matic"...

top of page

This page last updated
December 18, 2001