Tuesday, December 16, 2003
highest form of praise

At first I thought a good title for this would be "following taillights", but then I figured that would have a bad implication. But this (from Daily Python-URL) looks so much like someone reimplementing the OS X Dock and Konfabulator, that I was surprised no one seems to have mentioned it.

Of course, it's free, and is extensible with python (rather than the Javascript that Konfabulator uses), so that's cool. I wish Konfabulator was directly programmable with python (yes, you could just call a python program from Javascript In a Konfabulator widget, but you have no access to the Konfabulator object model that way).

And of course, the OS X Dock is adapted from the NeXTStep Dock (which also lives on in WindowMaker), meaning that everyone copies from everyone else, and the cries of "But we're innovative" are usually a bit overstated. Face it folks, someone else probably thought of it as well. This is another reason that a title of "following taillights" might have been too provocative.

9:47:53 AM    comments ()  trackback []  

beyond binary automata

I've been experimenting with simple automata that use more than 2 states. Wolfram defines two parameters that control the behavior of automata - r, which is the number of neighbors to check (the "radius" of the automata), and k, which is the number of states an individual cell can have. Up until now, I've been playing with automata with an r equal to 1 and a k equal to 2.

If you play with the numbers, you'll find that if you change either of those values by just 1, the combinations get huge. If r was 2 and k was 1, there would be 2**32 possible rules. If r was 1 and k was 2, there would be 3**27 possible rules. I'm not going to be able to run every rule and inspect them by eye. So to start playing with automata using a different r and k, I need to come up with simple rules to play with.

Wolfram suggest this simple rule for r set to 1 and k variable: if the previous generation and neighbors are represented by a, b, and c, the next generation would be a + b mod k.

Sounds simple, and it is, but I've been amazed at the differences in patterns produced by just changing k.

I wrote a quicky PyObjC program to render these automata, assigning colors to states, and the results were quite interesting. Thanks to Display PDF, it only took two lines of python to write out each rendering as a PDF file.

Later today, when I get home, I'll post some examples.

9:16:04 AM    comments ()  trackback []