Category Archives: tech

Geek celebrity moment

My friend Chris recently got to meet Jeff Hawkins (neuroscientist, founder of Palm Computing and Handspring, inventor of the Palm Pilot and the Treo, author of On Intelligence, founder of Numenta, developer of the idea of “Hierarchical Temporary Memory”):

“Can you sign my Palm Pilot?”

Pretty nifty! Chris gets to play with Numenta’s HTM software at his job at APL (lucky bastard). But everyone else can play, too, because the software is available to everyone here: Numenta Platform for Intelligent Computing (NuPIC). Get your A.I. on!

GECCO @ Hotlanta

I’ve finally finished my crazy Zodiac cipher poster for GECCO 2008 in Atlanta next week:

Click image for biggie size, or get the PDF version. And here’s the 2-page paper if you want it.

Last year, I used PowerPoint (gasp) to create the poster. What a huge pain that was. This year, I used OmniGraffle, by far the best damned diagramming software I have ever used.

It should be a fun conference; I’m excited to hear about the results of all the competitions. Chris and I entered the “2D Packing Problem” contest; alas, our entry did not win. Still, we had a lot of fun trying out different ideas – it was a very fun problem to work on. The other contests should be fun to hear about, especially the Rubik’s Cube Solver contest. Entrants in this contest get to use a commercial grid computing platform to breed Rubik’s Cube solving algorithms.


Your computer might find them. I’ve had Seti@Home running in the BOINC distributed computing platform for a while now. My Mac Pro eight-core beast has been chewing through radio telescope data for a while now, and I recently came across a nifty website-badge that shows my progress:

Wow, I’m up to 84,155th place!! To give you an idea of how far away from 1st place I am, my “credit” score, which indicates how much computing time I’ve contributed, is currently 60,669. The top contributor has 458,338,508 credits. As of January 2008, the SETI@home project by itself has amassed 3.4 million years of computing time from its contributors. An incredible achievement!

Be sure to check out this list of BOINC-supported distributed computing projects. There’s some interesting stuff in there. Go sign up and put your lazy CPU to work while you sleep. FOR SCIENCE!

New Media Flotsam

I thought I would post a roundup of convenient links to RSS feeds for all my social media debris (blog, Flickr, YouTube, Digg,,, Twitter, LinkedIn, etc.). But FriendFeed already does it elegantly with a single simple page:

And, with a single consolidated RSS feed to go with it:

If you aren’t familiar with RSS, read this, or this, or this. My favorite RSS reader is Google Reader because I can use it anywhere; check it out here.

Twenty-first century technology enables me to bore you more efficiently than ever before!

Get your ass to Mars!

Sergey and Larry have released an important announcement:

(youtube link)

Free genetic programming book available

At the EvoStar 2008 evolutionary computation conference in Naples, Italy (man, I wish I could have gone), three scientists have released the completely free and downloadable book, “A Field Guide To Genetic Programming”.

Genetic programming (GP) is a systematic, domain-independent method for getting computers to solve problems automatically starting from a high-level statement of what needs to be done. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until high-fitness solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. GP has generated a plethora of human-competitive results and applications, including novel scientific discoveries and patentable inventions.

This unique overview of this exciting technique is written by three of the most active scientists in GP.

This is an incredibly useful and practical book for anyone interested in artificial intelligence and machine learning. It is an up-to-date guide to the subject, summarizing two decades of research.

What kind of problems are genetic programs good at solving? The book tells you what traits these problems have:

  • The interrelationships among the relevant variables is unknown or poorly understood (or where it is suspected that the current understanding may possibly be wrong).
  • Finding the size and shape of the ultimate solution is a major part of the problem.
  • Significant amounts of test data are available in computer-readable form.
  • There are good simulators to test the performance of tentative solutions to a problem, but poor methods to directly obtain good solutions.
  • Conventional mathematical analysis does not, or cannot, provide analytic solutions.
  • An approximate solution is acceptable (or is the only result that is ever likely to be obtained).
  • Small improvements in performance are routinely measured (or easily measurable) and highly prized.

Get the book here.

The joys of breeding

Last week was a good week for my strange little diversions with genetic algorithms. Two things happened that helped to validate the legitimacy (in my mind) of using genetic algorithms to solve certain problems. The first was receiving a copy of the March issue of Muse Magazine, a children’s magazine about science, art, and history. A little blurb about my evolutionary art project for last year’s GECCO conference appeared in the magazine.


I wish I had the time to continue to improve the art generated by that technique. It was a lot of fun to play with. There are many other ideas I want to try, such as adding new measurements to compare things like texture and composition, but, alas, not enough time to explore them. One day I hope to return to this.

Meanwhile, I’ve been wasting way too much free time trying to develop a genetic algorithm to attack the unsolved Zodiac killer cipher. The results have been somewhat minimal so far, but it’s a start. I’ve been playing with this stuff since March of last year, so I figured I should have something to show for all the time I’ve put into this research. I decided to write and submit a research paper to this year’s GECCO conference on evolutionary computing, and my paper was accepted as a poster presentation. W00t! I had a lot of fun at last year’s GECCO conference; I look forward to absorbing all the fascinating cutting-edge presentations this year. Here is the title and abstract from my paper:

Evolutionary Algorithm for Decryption of Monoalphabetic Homophonic Substitution Ciphers Encoded as Constraint Satisfaction Problems

A homophonic substitution cipher is a substitution cipher in which each plaintext letter maps to a set of one or more ciphertext symbols. Monoalphabetic homophonic ciphers do not allow ciphertext symbols to map to more than one plaintext letter. The selection of ciphertext symbol mappings is intended to conceal language statistics in the enciphered messages. Statistical-based attacks that are known to be quite effective on simple substitution ciphers are very difficult to apply to homophonic substitution ciphers that employ good selections of ciphertext symbol mappings. Word boundaries are often not known, increasing the difficulty of decryption. We present a dictionary-based attack using a genetic algorithm that encodes solutions as plaintext word placements subjected to constraints imposed by the cipher symbols. For a test case to develop the technique, we use a famous cipher (with a known solution) created by the Zodiac serial killer. We present several successful decryption attempts using moderate dictionary sizes of up to five hundred words. Attempts are ongoing to increase the robustness of this technique by making it work with larger dictionaries and a variety of test ciphers.

Since then, I’ve gotten the technique to work against the test cipher with dictionary sizes of 1200 words, but the algorithm is very sensitive to various parameters when it is running, so it’s not very robust yet. There is still a lot of work to do.

Maybe I should get a normal hobby.

How to hurl things at people

This week I met someone who recently got to watch the Navy’s latest railgun test firing in person.

The flames are caused purely by friction with the air, not by any kind of explosive propellant. Yikes.

The projectile was traveling at 5,600 miles per hour (Mach 7). By contrast, a round fired by an average hunting rifle only travels at about 2,000 miles per hour. The railgun projectile was traveling at Mach 5 when it hit the target. The railgun has a accuracy range of about 220 miles – conventional naval weapons have only gotten us to around a tenth of that number.

The YouTube videos of the test firing are insane:

In other hitting-stuff-with-really-fast-stuff news, here’s the military video of the Navy missile blowing up the wayward spy satellite:

Article | Article

New cipher-solving program available

Brax Cisco, Wesley Hopper, and Michael Eaton have just beta-released their wonderful “Zodiac Decrypto” program, a fun piece of software designed to attack the Zodiac ciphers as well as other substitution ciphers. It uses letter-level n-gram frequency analysis (no, not Engram analysis!) to estimate the validity of solutions generated by the software’s hillclimbing process. The software runs in Windows.

Cracktastic softwares

Give it a shot!


Project Page


I was just now looking at the Barack Obama Wikipedia article and was surprised to learn about his religion:

Obama, how could you???

I refreshed the wiki article, and the vandalism disappeared. Click here to see what it looked like when it was active.