Jonathan Springarn's Chio, a string processing library, kind of freaks me out.
An example from the Chio page:
(let* ((str " paper 16 -- stone 25 --- scissors 36 ") (word #~"\w*") (num #~"[0-9]+") (test (compile-test (:& (:&0 word) #~"\s+" (:&1 num))))) (with-test-split foo (#~"-+" test str :until (= foo-count 2) :tags (:map)) (cons (mref foo 0 :R) ; read the word as a symbol (mref foo 1 :I))))
Nick Levine has a set of good, basic lecture notes on Lisp online.
Qi is some kind of functional language with static typing, pattern matching and backtracking; implemented in lisp, with access to lisp.
Robotics Trends (“The voice for the first new industry of the 21st century”) has an interview with my CEO: “Calling All Robotic OEMs - A Conversation With Evolution Robotics' Bernard Louvat”
Check out the example documentation for Etiquette.
Phil Greenspun: Lisp diehards = Holocaust deniers:
Actually my personal preference is a much darker, uglier, and more shameful secret: Common Lisp, CLOS, plus an ML-like type inferencing compiler/error checker (with some things done in a sublanguage with Haskell semantics and Lisp syntax). Common Lisp dates from around 1982 and ML from 1984.
I try to keep this preference concealed from young people who've been raised on a diet of C, Java, C#, Perl, etc. They just wouldn't find it credible that 20-year-old systems and ideas are actually better than the latest and greatest from Microsoft and Sun.
This is not news. It's just that some people pay attention to Phil Greenspun.
Liz Phair played at the Avalon last week. It was quite a different show compared to the last time I was there (back when it was called the Palace). Besides the changes in the decor (new fancy carpet, new bars; same old helpful bathroom attendants) the crowd was moving slowly.
I wasn't in to Liz Phair until I read Camden Joy's novel The Last Rock Star Book or: Liz Phair, a Rant while traveling in Mexico. Reading it in a grungy Merida hotel room lit by dim flourescents, I wasn't sure if she were really as interesting as the book made her out to be but I wanted to find out. Afterward I didn't become a huge fan, but she was pretty good, and there were a few songs I really liked. Maybe for cheesy reasons; I can find it hard to resist geographically relevant music.
I was flying into Chicago at night
Watching the lake turn the sky into blue-green smoke
The sun was setting to the left of the plane
And the cabin was filled with an unearthly glow
In 27-D, I was behind the wing
Watching landscape roll out like credits on a screen
I used to say she was an idiot savant. By that I meant that she came up with some amazing stuff sometimes, but you couldn't count on it, and I got the feeling she didn't know how she did it.
I was apprehensive about this show. After listening to samples from her new CD I thought that a generous critic might call the best songs “dull”.
But it turned out to be OK. She hardly played any of the new stuff, and she is still a babe, which I have to admit seems to count for something. She's just no PJ Harvey, I guess is what it comes down to.
P.S. There was a little celebrity sighting action after the show. I didn't actually see Bob Saget, but my friend Joanne did, and she somehow convinced him both to get her car from the parking attendant (since he doesn't wait in lines, obviously) but also to call my cell phone. We conversed for a while, no biggie.
We are looking for a junior to medium level (in terms of experience) developer who is knowledgeable about Lisp (we still use Genera). If you are interested in working on really complex and challenging resource-allocation problems and are interested in having impact (our current focus is on aviation and our products run at Delta Airlines, Federal Express etc. :) please send me a note at sundar <at> ascent.com or to jobs <at> ascent.com. You can peruse our web site at www.ascent.com or www.smartairport.com.
Our products use Lisp, X11, Oracle, Java, Perl and Web technologies.
Is it weird that I think this is worth posting here?
Saturday night I had a party. It was to celebrate selling my condo in Chicago, and as sort of a coming out event for my apartment, which by virtue of my* finally finishing unpacking everything (I've had moving boxes lining the walls for the past year and a half) is looking presentable. Partyable, even.
It wasn't a huge party, but as Dave said, a lot of my friends are parties in themselves.
* When I say “my” unpacking, I really mean “my” sitting around while my nice obsessively organizational friend unpacked.
This example, from Edi's page, creates a little pie chart.
(with-image* (200 200) ; create 200x200 pixel image (allocate-color 68 70 85) ; background color (let ((beige (allocate-color 222 200 81)) (brown (allocate-color 206 150 75)) (green (allocate-color 104 156 84)) (red (allocate-color 163 83 84)) (white (allocate-color 255 255 255)) (two-pi (* 2 pi))) ;; move origin to center of image (with-transformation (:x1 -100 :x2 100 :y1 -100 :y2 100 :radians t) ;; draw some 'pie slices' (draw-arc 0 0 130 130 0 (* .6 two-pi) :center-connect t :filled t :color beige) (draw-arc 0 0 130 130 (* .6 two-pi) (* .8 two-pi) :center-connect t :filled t :color brown) (draw-arc 0 0 130 130 (* .8 two-pi) (* .95 two-pi) :center-connect t :filled t :color green) (draw-arc 0 0 130 130 (* .95 two-pi) two-pi :center-connect t :filled t :color red) (with-default-color (white) (with-default-font (:small) (draw-string -8 -30 "60%") (draw-string -20 40 "20%") (draw-string 20 30 "15%")) (draw-freetype-string -90 75 "Global Revenue" ;; this assumes that 'DEFAULT_FONTPATH' ;; is set correctly :font-name "verdanab")))) (write-image-to-file "chart.png" :compression-level 6 :if-exists :supersede))
CL-GD uses Kevin Rosenberg's UFFI portable FFI, so if your lisp is one of the ones supported by UFFI there's a decent chance CL-GD will work with it.
Eugene Zaikonnikov's Etiquette is an “interaction protocol construction toolkit”:
The project goal is to build a framework for rapid design of network communication code. Etiquette interaction protocols are intended to describe valid communication processes that can occur in networked applications, along with error-handling code. Etiquette provides protocol tracing and single-stepping support.
Dan Barlow wants to bring Applescript-style scripting to unix applications... Using X properties and sexps.
As many people by now have the misfortune to know, one of my pet rants about Unix as a desktop OS is the lack of decent support for scripting applications. Some apps do CORBA, some apps listen on sockets, some apps reread their config file when sent certain signals, some apps you can start twice and the second instance will communicate its command line args to the first, and some apps (e.g. GNOME, KDE stuff) use some vast framework which handles it all in a you-shouldn't-care-about-the-internals way
None of them have seen pervasive uptake, which makes me feel better about inventing yet another.
I've wanted this sort of scripting in unix for a long time. I do think it would be nice if it could work with non-X, non-GUI apps, but it's not like I know how to do that.
Joe Armstrong has a proposal for another language neutral IPC scheme he calls UBF, which includes
I think #2, describing the “set of legal conversations that can take place between a client and a server” is actually the most important. In Applescript the equivalent might be an application's scripting dictionary, which can be read and parsed by the script editor. That information is then displayed in the form of help text to the user, and used to check the syntax of the script as it's written.
(Also, Joe Armstrong: “Once upon a time I was interested in 'how to program'. I think that we now know how to do this (not perfectly, but adequately) - now I'm interested in 'fitting things togther'.” I've been starting to think the same thing in the past couple years.)
“Naturally we use continuations so we can structure the program code cleanly.” Oh man, I don't know about that “naturally”...
Luke Gorrie is working on SLIME, “The Superior Lisp Interaction Mode, Extended, for CMUCL. An Emacs mode for interacting with CMU Common Lisp, in the spirit of Ilisp, but based on a separate communication channel more akin to Hemlock.”
Friday I went with a friend to a JPL-people party that was on a 42-foot boat. It was really unfortunate that every once in a while the wind would change and the smell of some harbor sewage collection building would intrude in an unwelcome way (I kept smelling it all next day, too), but overall I could see a lot of benefits to boat living.
(You wouldn't believe how long I looked for a picture of Jack Klugman as Quincy, M.E., on the boat he lived on in LA).
Barking seals in the evenings would be nice (once you got used to them). Lots of nearby marina bars and restaurants could be a plus. It's cheaper than a house. But the best thing is that you could pull away from the dock at night, head miles out into the ocean, then turn off the engines and the lights and just drift while you lie on your back on the front deck and look up at the stars. Sure, then the pirates and SCUBA diving organ thieves come, but it's pretty cool up until that point.
In the New York Times Magazine, “The Futile Pursuit of Happiness”, talking about why the things that make us happy and the things that make us sad don't make us as happy or as sad as we think they will [via est]:
“And in the same way that our eye adapts to different levels of illumination, we're designed to kind of go back to the happiness set point. Our brains are not trying to be happy. Our brains are trying to regulate us.” In this respect, the tendency toward adaptation suggests why the impact bias is so pervasive. As Tim Wilson says: “We don't realize how quickly we will adapt to a pleasurable event and make it the backdrop of our lives. When any event occurs to us, we make it ordinary. And through becoming ordinary, we lose our pleasure.”
Apparently people do a very bad job of predicting what will make them happy and just how happy it will make them. It's also interesting that research suggests that “wealth above middle-class comfort makes little difference to our happiness, for example, or that having children does nothing to improve well-being -- even as it drives marital satisfaction dramatically down.” and “the data make it all too clear that boosting the living standards of those already comfortable, such as through lower taxes, does little to improve their levels of well-being, whereas raising the living standards of the impoverished makes an enormous difference.”
Last night, at a BBQ on the west side, Jack said there were three crucial components to being happy: The first is an optimistic perspective on life. Second, being part of a strong social network. Third... well, Jack couldn't remember the third. But I think it's slow-cooked pork ribs.
Did you know that Bertrand Russell wrote a self-help book? It's not bad.
Update: Sony has a press release, “ Sony Launches Third Generation AIBO Entertainment Robot” that mentions what they're using Evolution's technology for.
In addition to increased voice recognition capabilities, which allow the robot to understand approximately180 voice commands, the new model comes equipped with a newly developed visual pattern recognition technology so it can identify 15 credit card sized AIBO Cards that issue commands, change settings and modes. Furthermore, with this technology, the ERS-7 is able to find its Energy Station and recharge itself when its battery runs low.