July 27, 2005

Brendan Benson

brendan benson
Brendan Benson, close up and unobscured. Photo by Lori.

Last night Lori and I went to see Brendan Benson at the El Rey. He's a scrawny little guy. Looks very earnest, too, and to an extent he is, but his music has more than enough rocking guitar to make me happy. His backing band was a bunch of characters: The Surfer Bassist With Gray Hair, The Pale Detroit Rocker Guitarist, and The Drummer With Rhythmic Mouth Tics.

We were almost right up against the stage for the whole show, where we were surrounded by die hard fans. They were all girls (OK, there was one guy), none of which broke 4'6". I'm not a short guy, but it seems like most rock shows have a higher proportion of tall motherfuckers in the crowd than you see in the general population, so I relished this one chance to not have to keep swaying from one side to another to see past some hipster's afro.

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



The guy behind sodaplay is giving a lecture at the The Institute for Figuring's get-together this Friday.

The architect of this online world is Ed Burton, an artist and computer programmer. Burton designed his soda-software as a virtual toy based around the principles of the engineering discipline known as Control and Dynamic Systems. Each model is made up from a set of points and lines: some of the lines are simple springs and act as a kind of soft skeleton; others act like muscles and can change length. In effect, the structures may be seen as virtual tensegrities. By connecting points in various arrangements of lines, structures can be given an internal logic that causes them to move. From these simple beginnings sodaplay users have evolved ever more complex mechanisms that can now mimic such sophisticated tasks as bipedal walking and multi-wheeled rolling. In this talk Burton will discuss the evolution of the sodaplay universe and the processes by which the community of soda constructors collectively develop new styles of form and function within this software world.

I'd definitely be there if I wasn't already going to San Diego's Street Scene.

Posted by jjwiseman at 05:24 PM | Comments (0) | TrackBack

iRobot Files for IPO

new york movie

iRobot has filed for IPO [via Geoff].

Posted by jjwiseman at 04:33 PM | Comments (2) | TrackBack

July 21, 2005

Following Humans with the ER1

ER1 just wants to get close to you

Uri Kartoun is working with the Washington Hospital Center to get ER1 robots to follow people: 13 MB WMV video.

It looks like Uri is using the Task Execution Layer of the ERSP, which is the layer of the architecture I'm responsible for. It didn't quite turn out how I'd hoped, but I'm glad people are finding it useful.

In his approach people carry RFID tags that the robot homes in on. At Evolution we used to do something similar by using a laser range finder and watching for the range signature of two human legs.

Posted by jjwiseman at 12:04 PM | Comments (1) | TrackBack

Stars of Comic Con

will wright and patrick farley at the traditional big comic con dinner

Lori got to hang out with the coolest people at ComicCon this year.

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

Lisp To Dylan

The John Wiseman of a year or two ago was on his way to posting something about Peter Norvig's Common Lisp-To-Dylan converter tool when, I assume, something came along and distracted me, since I don't see that post anywhere.

...here I produce Dylan code with nice indentation, to any specified column width, just by converting Lisp to a parse-tree syntax that is equivalent to Dylan, and then writing pretty-print directives for the parse-trees.

The one time I played with Dylan I was so put off by the terrible, terrible performance of the Harlequin Dylan environment that I had to stop after half an hour. But this code of Norvig's is still kind of neat.

LTD works by first reading a Lisp s-expression with ltd-read, then converting it to an internal s-expression representation which represents a Dylan parse tree with cvt-exp, and then printing the internal representation with dpp-exp (DPP stands for Dylan Pretty-Print). For example, calling ltd-read on the fragment of source file

;; Compute sign of x
(cond ((< x 0) -1)
      ((> x 0) 1)
      (t 0))

results in the expression

#S(com :comment " Compute sign of x"
       :code (cond ((< x 0) -1)
                   ((> x 0) 1)
                   (t 0)))

which gets translated by cvt-exp to the internal form

#S(com :comment " Compute sign of x"
       :code (IF (< X 0) -1 (:ELSIF (> X 0) 1) (:ELSE 0)))

which then gets printed by dpp-exp as something like

// Compute sign of x
if (x < 0) -1; elsif (x > 0) 1; else  0; end
Posted by jjwiseman at 08:28 AM | Comments (2) | TrackBack


After finishing his poker server, Joel Reymont is now working on a real-time trading system, “Uptick” [via Chris Double]. Again, he's starting with Lisp.

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

July 20, 2005

July Grand Challenge Runs

La Mort de Faust
La Mort de Faust, from P. Christian's Histoire de la Magie

The Stanford Grand Challenge Team claims to have traversed all but three miles of last year's 144 mile long course.

CMU's Red Team traveled 200 miles... on a closed race track.

A Princeton team-member claims they “had an 12 hour stress test where we covered all of last year's course, and a little [bit] more”, but that sounds like maybe the vehicle just traveled the same distance as last year's route, not that they actually followed the desert course.

I thought the presence of an endangered turtle species required some sort of special waiver to traverse a portion of last year's course?

Posted by jjwiseman at 04:49 PM | Comments (2) | TrackBack

July 19, 2005

Plotting with Lisp


Ryan Adams is working on a Lisp interface to gnuplot: Plotting in Lisp, Part I, Part II and Part III.

Theoretically, the gnuplot.lisp module in CLOCC does this, but it has been a very frustrating experience for me because I have found it buggy and badly documented

Also see an old lemonodor post and a very old lemonodor post on a similar topic.

Update: Gary King is also working on a Lisp-to-gnuplot library, clnuplot.

Posted by jjwiseman at 03:26 PM | Comments (2) | TrackBack

July 18, 2005

Christmas Special

Henry Lenzi sends “photographic evidence of why symbolics went down,” a sales quote from 1985 for an 8 MB RAM, 474 MB disk Symbolics 3675 that comes to $129,900 (after a “Christmas discount” of $55,500).

symbolics christmas special

Posted by jjwiseman at 10:00 AM | Comments (9) | TrackBack

July 17, 2005

design ne good

JSP is a way to insert Java code into HTML pages, right? This frightening JSP code fragment (from here) contains two programming languages: the language of the Java Standard Tag Library (JSTL) and Expression Language (EL).

<c:if test='${empty sessionScope["cart"]}'>
 <c:if test='${body ne "ThankYou.jsp"}'>
  <c:redirect url="ChooseLang.jsp"/>

Neither of the programming languages used is Java. And there doesn't happen to be any HTML.

What kind of person thinks this is OK?

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

July 14, 2005

ECOOP 2005

calf attack

Look at all the people registered for the 2nd European LISP and Scheme Workshop that's coming up.

Posted by jjwiseman at 05:07 PM | Comments (0) | TrackBack

July 13, 2005

Reliving Lisp History

Paul McJones continues to add new books to the History of Lisp website of the Computer History Museum.

After seeing the “FIELD TEST ASSEMBLY OF LISP 1.5 SEPTEMBER 1961” on the site, which is the collection of punch cards containing the IBM 7090 assembler source for Lisp 1.5, Pascal Bourguignon was inspired to extract the source and will hopefully soon be running it in an emulator.

       PCC                                                              PAGE 006
* M948-508,FMS,DEBUG,20,40,20000,700              ASSEMBLE LISP 1.5     LISPHERE
*      FAP
       COUNT   13000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  
*        SHARE DIST  NO.  709 AND  741
*    ON LINE
L      HED
       ORG     -47               IO POSITION LOAD AT -42
       TCOA    1                 DELAY TILL LOADER IN
       TRA     LOAD
 LOAD  RCDA                      INITIATE NEXT CARD

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

July 09, 2005

Cells-gtk Porn

some kind of Lisp DOM/XML inspector using cells-gtk

The screenshots of apps using the cells-gtk GUI framework aren't too shabby.

Posted by jjwiseman at 03:07 PM | Comments (2) | TrackBack

July 08, 2005

ILC 2005 Slides and Audio

Christian Neukirchen noticed that slides from a bunch of the ILC 2005 presentations are up. Actually, audio for a handful of talks are up, too--and you can even make out what they're saying (if you crank the volume).

47 talks, 17 sets of slides, 4 audio recordings, 1 paper and 1 collection of code.

Posted by jjwiseman at 03:59 PM | Comments (5) | TrackBack

Movable Type Upgrade

winky tiki ooh la la

Lemonodor is now running the latest version of Movable Type, with the SpamLookup plugin.

I've enabled SpamLookup's “passphrase” comment validation, which just means that when you post a comment there will be one extra input field into which you will need to type “lisp”. If you don't do that, Lemonodor assumes you are a spammer and won't post your comment. I'm hoping this will be pretty effective, and it should be clear to most humans what is required (though I'm not sure how the Beyonce thread will fare under this new system).

If you have any trouble posting comments, please let me know at jjwiseman@yahoo.com.

Posted by jjwiseman at 03:38 PM | Comments (3) | TrackBack

July 06, 2005

Smalltalk for Lispers

oh now i remember
fashion photography by german photographer zoren gold and japanese graphic artist minori murakami

Smalltalk for Lispers.

Posted by jjwiseman at 11:12 PM | Comments (6) | TrackBack

Made for DSLs

Martin Fowler says “Lisp is probably the strongest example of expressing DSLs directly in the language itself.”

The example problem posed in that article is to read and parse some sort of log of service call records:

SVCLFOWLER         10101MS0120050313.........................
SVCLHOHPE          10201DX0320050315........................
SVCLTWO           x10301MRP220050329..............................
USGE10301TWO          x50214..7050329...............................

Rainer Joswig came up with a nice little Lisp solution, which boils down to this:

(defmapping service-call "SVCL"
  (04 18 customer-name)
  (19 23 customer-id)
  (24 27 call-type-code)
  (28 35 date-of-call-string)))
(defmapping usage "USGE"
  (04 08 customer-id)
  (09 22 customer-name)
  (30 30 cycle)
  (31 36 read-date)))

Which I think looks perfectly natural to any Lisp programmer.

You can see exactly the same sort of process at work in the Practical Common Lisp chapter on parsing MP3 files:

(define-binary-class id3-tag ()
  ((identifier     (iso-8859-1-string :length 3))
   (major-version  u1)
   (revision       u1)
   (flags          u1)
   (size           id3-tag-size)
   (frames         (id3-frames :tag-size size))))

(define-tagged-binary-class id3-frame ()
  ((id (frame-id :length 3))
   (size u3))
  (:dispatch (find-frame-class id)))

(I finally sat down and read my hardcover copy of Practical Common Lisp; I was very impressed. The design and coding is elegant, the exposition was extremely lucid, and the practical chapters are engaging. Thumbs up.)

You can see that there are some benefits to writing your DSL in your host language as opposed to in XML.

[Oops. I just saw that Bill Clementson already posted about this very same thing.]

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

Autonomous Touareg

autonomous touareg

A Volkswagen research group, the Electronics Research Laboratory, is working together with the Stanford team for this year's Grand Challenge. They believe that derivatives of the technology developed for the DARPA race will eventually make all of our cars safer.

Are there any other car makers significantly involved in the Grand Challenge?

Posted by jjwiseman at 11:26 AM | Comments (3) | TrackBack


Lemonodor needed a vacation as much as the rest of you. But now it's back, and I even have vague plans of some improvements around here. Cleaning the gutters, maybe a new deck in the back yard, that sort of thing.

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

July 01, 2005

UAV Confusion

From an editorial in Air Force Magazine:

Within 10 years, one-third of US ... deep strike aircraft will be unmanned,” said Congress’ 2001 defense bill. This claim, while shocking at the time, seems much less so in retrospect.

Indeed, unmanned aerial vehicles, in general, have advanced further and faster than had once seemed possible. Previously, the services had only a handful of UAVs; today, they operate upwards of 1,000 remotely piloted aircraft and are clamoring for more, given that many of these systems have proved their operational worth in Afghanistan and Iraq.

The article goes on to discuss problems supposedly due to lack of coordination of UAV development and operation between branches of the military, including crashes.

With so many aircraft over the battlespace, the skies are crowded, and some pilots are unhappy about sharing airspace with the drones. They have cause; there have been at least two collisions and several near misses.

An AP report claims that a crashed UAV may have been indirectly responsible for the death of a Pakistani soldier: “...officials said that the crash of the reconnaissance drone may have sown confusion which led to the skirmish.”

Posted by jjwiseman at 05:32 PM | Comments (3) | TrackBack