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.
(Well, I guess I did link to him once before.)
Jude Nagurney sent a link to a perfectly lemonodorous painting 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.]
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.
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.
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? (inline (progn (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:
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?
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.
Here's one last Robodex Guidebook scan.
I am not sure whether I hope or fear that there is chicken involved somehow.
Update for natto burger seekers: This was unearthed:
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).
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.”
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.)
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.
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.
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).
This morning I was doing some testing of a little teleoperation application, driving a robot around my apartment from work.
The cats have seen it all before.
Petunia lured me under the dining room table, I got stuck, and that was that.
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.
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.
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.
The smart money seems to think that the Red team is the team to watch in the DARPA Grand Challenge.
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.
Reticule, an NNTP server under development by Lars Magne Ingebrigtsen and written in lisp, will eventually become the gmane server software.
You've seen bits from the DVD, now here are a few pages from the Robodex 2003 guidebook.
[Other Robodex posts: DVD stills, links to photos and videos.]
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.
[Other Robodex posts: Guide book, links to photos and videos.]
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.
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.
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” (http://www.paulgraham.com/spam.html).
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.
I dreamt about Melissa last night. Very unexpectedly; it's been over two years.
It was sad.
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.
Alexander Repenning has a new version of his OpenGL code for MCL which has a lot of new features.
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.