May 28, 2003

Tony Pierce

If I didn't do this, which I'm told is basically the geekiest weblog in the world, I would hope I could write stuff like Tony Pierce. Tony is a genius, and it's a shame that I haven't linked to him before. I read him every night while lying in bed before I fall asleep.

[mr. shrimp scampi jr.'s catnip stupor]

(Well, I guess I did link to him once before.)

Posted by jjwiseman at 11:28 PM | Comments (2) | TrackBack

The Color of Lisp

Jude Nagurney sent a link to a perfectly lemonodorous painting by Ed Ruscha.

[Lisp, by Ed Ruscha]

I think it looks like a fancy lemon cake with a delicious ribbon of frosting. Mmm, lispcake.

[I know that lemonodor is horrifically slow right now. That's what I get for trying to serve red hot hardcore lisp machine video with residential DSL. Sorry.]

Posted by jjwiseman at 09:50 AM | Comments (3) | TrackBack

May 27, 2003

More Lisp Machine Video

If you see just one lisp machine movie this year, it should be this one (6.5 MB Quicktime MPEG4, 15 MB Quicktime non-MPEG4 which may be easier to play in linux). mirror 1: MPEG4, non-MPEG4; mirror 2: MPEG4, non-MPEG4; mirror3: MPEG4, non-MPEG4; thanks Xach, Dan Barlow and Andreas Fuchs!

Rainer Joswig has made another video (you can see his earlier video here) demonstrating what it's like to use a lisp machine. I think this one gives you a better sense of what it's like in day-to-day use, and why it was such a productive environment that people are still obsessed with these machines decades later.

[lisp machine screenshot]

Posted by jjwiseman at 04:00 PM | Comments (10) | TrackBack

May 26, 2003

Full Of It All

This weekend I went to a Shabbos dinner in a beautiful house in the hills of Silverlake with a hypnotizing view that makes me love LA more than anyplace, a cozy party in another amazing house that made me love breakdancing girls, and a jazz club in south central where everyone gets dinner on the house and everyone asks you what you play.

I'm tired, but now it's time to discharge the final, sacred duty of the holiday: eat 8 lbs. of grilled Polish sausage. If I don't return, know that I did it for you.

Posted by jjwiseman at 11:25 AM | Comments (0) | TrackBack

May 24, 2003


On the info-mcl mailing list, Pekka Tolonen demonstrates his system for viewing richly formatted documentation (with embedded procedurally generated bits) in MCL.

Hi, perhaps you get some ideas of how I solved Symbolic Composer documentation problem. The problem was that I was having thousand documents having text and lisp code, and my aim is to make them look good with the minimum amount of manual formating.


While parsing, inline directive executes Lisp as progn, and allows to draw simple graphs and show jpegs based on Alexander Repenning's jpeg code. It also shows the Lisp parse trees. Also basic buttons and interface items are supported by the inline directive.

Pekka's system takes documentation that looks like this:

gen-sin frequency amplitude samples &optional phase modulation

Returns a vector, whose length is determined by samples of a sine
wave having given frequency and amplitude and optional phase and
modulation. If omitted a zero phase is used. The modulation is a
vector pattern returned by another generator. The phase values
range from 0 to 360.

(vector-round 0 127 (gen-sin 1 0.5 64))
--> #(64 70 76 82 88 93 99 104 108 113 116 120 122 124 126 127
     127 127 126 124 122 120 116 113 108 104 99 93 88 82 76 70 64
     57 51 45 39 34 28 23 19 14 11 7 5 3 1 0 0 0 1 3 5 7 11 14 19
     23 28 34 39 45 51 57)

;;How does it look like?

    (make-graph 'draw-vector-x
      (do-quietly (vector-round 0 127 (gen-sin 1 0.5 64))))))

and renders it as something that looks like this:

[symbolic composer documentation screenshot

This reminds me a bit of Knuth's literate programming stuff and of the occasional thread on comp.lang.lisp about documentation string formatting.

Kent Pitman (in 1999):

As a rule, I consider it stylistically a modularity violation to ask for documentation of someone else's doc string and expect to use it for anything other than to dump it raw to the console as archaeology-style debugging clues. It perhaps shouldn't have gone this way, but years of divergent experience make little else feasible.

MCL does support a limited amount of markup in documentation strings (as pictured below); are there any other lisp implementations that do this?

[mcl docstring]

Posted by jjwiseman at 12:27 PM | Comments (3) | TrackBack

May 23, 2003

Standalone Executables with CMUCL

Eric Marsden has added support for standalone executables to CMUCL:

It can be useful to be able to deliver an application developed with CMUCL as a single file, that looks like a native executable and only has runtime dependencies on the platform's standard shared libraries. [though this is less useful than many newcomers to Lisp seem to think, in my opinion.]

I have implemented this capability for CMUCL on Linux and Solaris, by piggybacking the lisp image in an ELF section of the runtime. On startup, the runtime looks inside itself to see whether it has an image in its belly, and if so it extracts it to a temporary file. That file is mapped into memory as usual, and is deleted when CMUCL exits.

Posted by jjwiseman at 10:05 AM | Comments (0) | TrackBack

May 21, 2003


Here's one last Robodex Guidebook scan.

[non-natto burgerthing]

I am not sure whether I hope or fear that there is chicken involved somehow.

Update for natto burger seekers: This was unearthed:

[natto burger thing]

Posted by jjwiseman at 03:45 PM | Comments (6) | TrackBack


Kevin Rosenberg is organizing an effort to port SBCL to AMD64.

The project has raised $2200 so far, and they're looking for more funding (apparently donations are tax deductible).

Posted by jjwiseman at 09:38 AM | Comments (0) | TrackBack

May 18, 2003

JPL Open House

[jpl in the hills]

The JPL open house was pretty cool. The Jet Propulsion Lab is located in a somewhat isolated area northwest of Pasadena (northeast of LA). It was founded by Jack Parsons in 1944, which was apparently the beginning of a pretty crazy time in LA. Jack Parsons, Aleister Crowley and L. Ron Hubbard hung out together, performed sex-magick rites out in the desert, stole each others wives and money, and expanded the frontiers of rocket science. A quote from some random web page describes the “huge mansion that Parsons inherited in 1942, which he promptly filled with a cast of aspiring warlocks and science-fiction freaks. Parsons scandalised the neighbourhood with noisy love feasts and turned his bedroom into a temple.”

[jack parsons and friends blow some shit up]

This scene, in the JPL mall, is a recreation of an important test of a liquid-fueled rocket motor by Parsons and colleagues. (It took place on Halloween, 1936. Hm.)

[jpl bug robot] [jpl-modded irobot urbie] [jpl autonomous helicopter]

There were a lot of fun technology exhibits, but I was mostly there to see the robots. JPL is the NASA center in charge of unmanned space exploration, so they do a lot of robots. My favorite was the autonomous helicopter. It uses vision to look at the terrain below it and select a good landing site.

[carl sagan memorial plaque at jpl]

Overall I was quite impressed with the amount of effort NASA put into the open house. There were lots of exhibits, with scientists doing a good job of describing the projects they actually worked on in an interesting way.

Posted by jjwiseman at 09:22 PM | Comments (0) | TrackBack


Last night I saw Tsar at Spaceland, because I kept hearing they were good. They were good. Cheesy, though. I wouldn't buy their CD, but I'd see them again.

I talked to a couple guys visiting from Oxford for a few days. One of them knew Prolog (I swear I wasn't the one that brought up that topic of conversation).

Posted by jjwiseman at 12:25 PM | Comments (0) | TrackBack

May 16, 2003

A First

I just wanted to be the first to say “autonomous dildo”.

Posted by jjwiseman at 10:14 PM | Comments (3) | TrackBack

Teleoperated Cat Toy

[r3 robot awaits further orders]

This morning I was doing some testing of a little teleoperation application, driving a robot around my apartment from work.

[mr. shrimp investigates] ["ok, so it gets the hallway, we get the living room"]

The cats have seen it all before.

[petunia, a little freaked that the r3 penetrated into her best hiding spot]

Petunia lured me under the dining room table, I got stuck, and that was that.

Posted by jjwiseman at 07:57 PM | Comments (4) | TrackBack

ER1 Review

[er1 tankmod]

Slashdot has a post linking to a review of the ER1.

Posted by jjwiseman at 02:54 PM | Comments (1) | TrackBack

Stallman At My Right Elbow

Guy Steele in the Hackers & Painters/XP thread on ll1-discuss:

FWIW, the early Scheme interpreters were the result of pair programming (Sussman and I working together, and often trading places at the keyboard). The early Scheme papers were the result of pair writing, where if a paragraph wasn't flowing smoothly from one guy's fingers then the other would jump in with a reformulated sentence.

And the first TECO macro to pretty-print Lisp code for EMACS (including making decisions about line breaks, not just how much to indent each line) was the result of a ten-hour pair-programming session with me at the keyboard and Stallman at my right elbow.

Posted by jjwiseman at 09:15 AM | Comments (2) | TrackBack

May 15, 2003


On the openmcl-devel mailing list there's a discussion about how to create a nice interface to OS X's Cocoa framework from within OpenMCL, motivated primarily by the desire to make it easy to develop nice Aqua GUIs.

Objective C is interesting because there's a lot of introspection that can be done at runtime--you can determine the class of an object, the methods it supports, etc., which makes it at least seem possible to create a very general interface that doesn't have to have hardcoded support for each Objective C class and method. Such an interface has already been developed for Python, the PyObjC bridge.

Gary Byers discusses a couple approaches to bridging the gap between Objective C objects and Lisp objects:

I want to try to keep this reply high-level and abstract, but can't resist the temptation to sink into the gutter (or at least some lower- level details) for a moment. I don't know if anyone's ever looked at the function OBCJ-OBJECT-P (in “ccl:examples;apple-objc.lisp”); it does a very, very good job of heuristically determining whether or not a given MACPTR is an ObjC object (and if so, whether it's an instance, class, or metaclass object and what its class is.) One might be able to artificially construct a MACPTR that passed these heuristic tests, but such a MACPTR would have to look so much like an ObjC object that the ObjC runtime would be fooled as well; for the sake of argument, anything that OBJC-OBJECT-P says is an ObjC object pretty much -is- an ObjC object. (If anyone's skeptical about this, note that it's also possible to make OBJC-OBJECT-P more paranoid than it currently is. If we don't want to make this (as) heuristic, we can also modify the FFI to -really- distinguish between :ADDRESS (arbitrary pointer) and :ID (pointer to ObjC object, or - perhaps more generally - "pointer to runtime-typed foreign object", which might also provide a way to deal with CFObjects.)

Suppose that CLASS-OF and TYPE-OF (and a few other things) knew (via OBJC-OBJECT-P) that the result of calling

  [[(@class “NSWindow”) “alloc”] “initWithContentRect:...”]

was an instance of the NSWINDOW class (in the CLOS sense as well as the ObjC sense.) In such a world, the result of doing:

  (make-instance 'nswindow :content-rect ...)

would be the same type of object (and interchangably recognizable as an NSWINDOW/:<NSW>indow instance to both ObjC and CLOS.)


I have to admit that I find the unified approach attractive, if only because in every book or movie I've ever read or seen that involves Parallel Universes, something bad invariably happens.

Posted by jjwiseman at 10:48 AM | Comments (0) | TrackBack

May 14, 2003

On Lisp Reprint

I forgot to mention a while ago that it looks like Paul Graham's On Lisp is going to be reprinted soon (summer 2003). For those for whom the PDF version isn't good enough.

Posted by jjwiseman at 10:16 AM | Comments (6) | TrackBack

May 13, 2003

Red Team

The smart money seems to think that the Red team is the team to watch in the DARPA Grand Challenge.

Posted by jjwiseman at 11:45 PM | Comments (0) | TrackBack

ILC 2003

The 2003 International Lisp Conference website is up. The conference is taking place in midtown Manhattan, and registration is $700 for all four days (Oct. 12-15). Speakers include Larry Hunter, Gregor Kiczales and Gerald Sussman.

They're looking for papers.

Posted by jjwiseman at 09:15 AM | Comments (1) | TrackBack

May 11, 2003


Reticule, an NNTP server under development by Lars Magne Ingebrigtsen and written in lisp, will eventually become the gmane server software.

[my dad]
my dad

Posted by jjwiseman at 09:06 PM | Comments (3) | TrackBack

May 09, 2003

Robodex 2003 Guide

You've seen bits from the DVD, now here are a few pages from the Robodex 2003 guidebook.

[robodex guide book] [robodex guide bopl]

[Other Robodex posts: DVD stills, links to photos and videos.]

Posted by jjwiseman at 09:30 AM | Comments (23) | TrackBack


Kevin Rosenberg has a nice late-night post on a recent refactoring experience.

Posted by jjwiseman at 09:16 AM | Comments (0) | TrackBack

May 08, 2003

Robodex DVD

Part of the package of stuff you get for Robodex 2003 is a DVD with footage from Robodex 2002. Since many of the robots pictured are the same ones that were on display this year, I've grabbed a few stills for you.

[robodex 2002 slideshow]

[Other Robodex posts: Guide book, links to photos and videos.]

Posted by jjwiseman at 12:05 AM | Comments (5) | TrackBack

May 07, 2003

Regex Coach

The Regex Coach is Edi Weitz' application for exploring and experimenting with regular expressions (e.g., stepping through the matching process) in a graphical way. There are windows and linux versions, and it is written in lisp.

[regex coach screenshot]

Posted by jjwiseman at 01:48 PM | Comments (6) | TrackBack

May 06, 2003

Hackers and Painters

Paul Graham, “Hackers and Painters”:

In fact, of all the different types of people I've known, hackers and painters are among the most alike.


I think hackers just have to resign themselves to having a large random component in their reputations. In this they are no different from other makers. In fact, they're lucky by comparison. The influence of fashion is not nearly so great in hacking as it is in painting.


When you meet someone now who is writing a compiler or hacking a Unix kernel, at least you know they're not just doing it to pick up chicks.

Posted by jjwiseman at 09:04 AM | Comments (6) | TrackBack

May 05, 2003


David Cooper announced on c.l.l. a “CL-based email classifier”, SqueakyMail.

We at Genworks have put together an email classifier, called “Squeakymail,” based on Paul Grahams “Plan for Spam” (

You can configure it to pull mail from an existing POP3 server. It then classifies it, builds up statistical token tables in memory and saved periodically on the filesystem, and puts the good messages in /var/mail/ on the machine on which it is running. If you then want to run your own POP server on your machine, you will essentially have a spam-filtering POP proxy.


We are also starting a commercial service based on Squeakymail. It is hosted at:

At some point in the future we plan to start charging $3.33 monthly for the service. Currently, you can use and help us test the service for free.

Posted by jjwiseman at 04:32 PM | Comments (0) | TrackBack

Silverlake, LA

I went for a walk around midnight.

[silverlake at night] [silverlake at night] [silverlake at night] [silverlake at night]

Posted by jjwiseman at 01:17 AM | Comments (1) | TrackBack

May 04, 2003

You Look Okay, But Nothing Works

I dreamt about Melissa last night. Very unexpectedly; it's been over two years.

It was sad.

Posted by jjwiseman at 11:54 AM | Comments (2) | TrackBack

May 02, 2003


I saw Meshuggah last night at The Palace.


Some bits really were kind of jazz-like (if jazz musicians played brutal metal guitar), but there was definitely some real headbanging going on. The band themselves were insane, totally into it.

Posted by jjwiseman at 10:16 PM | Comments (1) | TrackBack

Alan Kay ETech Video

Lisa Rein posted her video and audio of Alan Kay's ETech (ETCon) presentation.

Posted by jjwiseman at 09:22 PM | Comments (1) | TrackBack

OpenGL For MCL in OS X

Alexander Repenning has a new version of his OpenGL code for MCL which has a lot of new features.

[opengl example]
screenshot, courtesy Rainer Joswig

  • Model Loader: load simple .obj model files.
  • New Example: Gears, an OpenGL classic
  • Multi View Animation: Run serveral animated windows or views in parallel.
  • Texture and Image Loaders: load virtually any image file format including alpha channels to make textures and images.
  • OS X Full Screen Mode: run OpenGL applications in full screen mode. Ideas for games or other highly emersive visual environments.
  • OpenGL Views: use any number of OpenGL views inside windows. Combine OpenGL-Views with other MCL dialog items into sophisticated dialog boxes.
  • Real Time Animation: implement frame rate independent real time animations, and simulations.
  • Game Engine: A simple game engine allows you to construct scenes containing agents. Agents can be nested. Agent can be animated, can react to events etc.
  • Full Scene Antialiasing: ATI Radeon video boards only.
  • Live Interface: drag and resize the window; change the camera angle... all without ever halting the animation.
Posted by jjwiseman at 10:14 AM | Comments (1) | TrackBack

May 01, 2003


Two strains of the SARS virus have been sequenced. “The studies confirm that the virus is a new variety of coronavirus and provide a first look at the molecular components of the virus.”


Apparently labs around the world have put aside their usual competitiveness and have been cooperating and sharing data to an unusual extent in order to make this happen as quickly as possible.

Posted by jjwiseman at 10:35 AM | Comments (0) | TrackBack