Archive for December, 2009

The Computer History Museum

A few weeks ago I invited Bill Gosper to meet at the Computer History Museum in Mountain View, at about noon, to talk about computers. As it turned out, the timing was perfect, and the museum was great.

At the entrance of the Computer History Museum there’s Charles Babbage’s Difference Engine  no.2. It’s absolutely humongous, filling up an entire room,and is insanely complex, even having a printing mechanism attatched. This many gears and cogs, though, only serves one purpose, to evaluate up to seventh-degree polynomials.

This is about 8 feet tall

Later in the day, we were able to see it in action, and it turns out that it has built-in n-core processing: Those rows of digits can evaluate more than 1 polynomial.

Oh, and it’s being put into Nathan Myhrvold’s (a CTO of Microsoft)

living room.

Soon, we went into the next room, dedicated to machines that played chess through the ages, which had cartoons, samples of code from the program, and the Deep Blue computer that beat Gary Kasparov.

We then went into the biggest room, Visual Storage, which was this humongous collection of computers, like a portion of the ENIAC, the PDP-1 (which used the Minsky circle algorithm that Bill Gosper and Julian Ziegler Hunts are trying to prove things about), the Utah Teapot, and even the legendary… Speak n’ Spell.

After that, we went to a pizza place across the street, where I showed Gosper some of my animations that I had put on my flash drive, and (almost) had a chocolate Italian soda. (Not carbonated chocolate milk, that tastes terrible).

We went back to the Computer History Museum just in time for a guided tour of Visual Storage, with Bill Gosper chiming in at points where he had actually used that computer, such as the PDP-1. Apparently they have a warehouse where 90% of their computers are kept, including the full ENIAC, the early army radar system, and other things that would make it a computer geek’s dream.

Overall, we had a great time, and Gosper liked the animations I showed him.


Update: the executable for Windows is now on my website and is available from the downloads page. The program even has it’s own subpage!

Recently I went on another search for free programs, which always ends in the compiler of a computer language. Last time it was Java and Context Free, this time it’s Processing.

Processing is a minimalistic computer language commonly used to make really cool simulations and art, which has a whole bunch of functions for math and cellular automata. It comes with a humongous number of examples for Penrose tiles, sinwave spheres, and so on, including a bunch of tutorials aimed at the non-programmer, which makes it really easy for someone who hasn’t programmed much to get started.

The very first program I made with it was a line that starts from the upper left-hand corner and follows your mouse. Eventually, while going through one of the tutorials where it had me make a mistake and then undo it, where the mistake was that the circles that followed the mouse wouldn’t disappear, so there would be a trail of circles following the cursor.

This immediately made me think of a paint program, and so I tried to create a simple one in Processing. It’s a fun experience to make a program, but due to the minimalisticness of Processing (here’s every single function in it), and the fact that I wasn’t using any pre-made libraries, made some parts very difficult. For example, there’s the problem of telling if the mouse has clicked a button. I had to create a special function that, given the coordinates of the button, will tell you if the mouse is clicking it or not. So far I’ve managed to get up to version 0.1 Alpha in 3 days, and the program’s very easy to use and makes some quite good stuff.

Sketches made in the program:

A simple waterfall

A simple waterfall



The program’s open source, and the source code and .exe files for Windows and Linux will appear on my website ( as soon as I can get them there.

Processing’s really fun to play around with, so I encourage anybody to download a version of it.