I updated my Firefox Grease Monkey script, sane-cliki.user.js, so that it works around the HTML entity bug in the ALU wiki as well as in CLiki. If you want to use “<” or “>” in a Cliki/Kiwi page, this will help.
The script disables the Preview button on the ALU wiki because it was too hard to preserve HTML entities correctly in a preview context.
I love the whale-like calls these Autonomous Light-Air Vehicles (blimps) make.
Notable parts used to build ALAVs include cell phone vibrators, laser-cut balsa wood and Sun SPOT wireless transducers.
My old Powerbook was a relatively rugged dream machine. The new one, sadly, has not lived up to its predecessor and has been a big pain in the ass. It often crashes when I connect or disconnect the external monitor, and audio fuckups force me to reboot at least once a day.
The weird audio looping/stuttering is particularly annoying, and I'm not the only one experiencing it. My hope that the 10.4.4 update would fix the problem was destroyed about 48 hours after I installed it. The Apple Discussions website is filled with posts about the problem (1, 2, 3), Gizmodo's posted about it, Macintouch has a special section about it—My God, even Adam Curry's podcasting is being affected. When will the madness end!?
I think Apple's only response so far has been to say “To avoid this, run only one audio application at a time.” Har har.
Powerbook Defect Info is one of those grass roots consumer activism sites where they collect a long list of names of people wronged by a big company, people who want some remedy, damn it, and don't want it to be a nail-biting experience every time their IM client chimes with an incoming message (chime-chi-chi-chi-chi-ARGH, REBOOT). So I signed up. And I dugg it.
Maybe Altemis is related to NEDO bot.
Every time I start SBCL in OS X, I get the dialog above.
This really confused me for a long time. It didn't help that the message says that SBCL “quit unexpectedly”, but I am always left with what seemed like a perfectly functioning SBCL prompt.
Poking around line 345 of runtime.c, as implicated in the backtrace, didn't help much:
|345||lose("CATS. CATS ARE NICE.");|
Nobody on #lisp seemed to be having this problem (they probably were, but they just didn't know it, as we'll see below), and since everything seemed to work I tried to forget about the mystery and not get annoyed by all the spam filling my CrashReporter logs from SBCL-based cron jobs. Building SBCL from source was quite a chore, though, as there would typically be three or four dozen crash dialogs I'd have to click through.
Jan 21 13:35:57 Johns-Powerbook crashdump: sbcl crashed
Jan 21 13:35:57 Johns-Powerbook crashdump: crash report written to: /Users/wiseman/Library/Logs/CrashReporter/sbcl.crash.log
Jan 21 13:35:59 Johns-Powerbook crashdump: sbcl crashed
Jan 21 13:35:59 Johns-Powerbook crashdump: crash report written to: /Users/wiseman/Library/Logs/CrashReporter/sbcl.crash.log
Jan 21 13:36:04 Johns-Powerbook crashdump: sbcl crashed
Jan 21 13:36:04 Johns-Powerbook crashdump: crash report written to: /Users/wiseman/Library/Logs/CrashReporter/sbcl.crash.log
Jan 21 13:36:08 Johns-Powerbook crashdump: sbcl crashed
Jan 21 13:36:08 Johns-Powerbook crashdump: crash report written to: /Users/wiseman/Library/Logs/CrashReporter/sbcl.crash.log
Jan 21 13:36:16 Johns-Powerbook crashdump: sbcl crashed
Jan 21 13:36:17 Johns-Powerbook crashdump: crash report written to: /Users/wiseman/Library/Logs/CrashReporter/sbcl.crash.log
Jan 21 13:36:23 Johns-Powerbook crashdump: sbcl crashed
Jan 21 13:36:23 Johns-Powerbook crashdump: crash report written to: /Users/wiseman/Library/Logs/CrashReporter/sbcl.crash.log
Jan 21 13:36:24 Johns-Powerbook crashdump: sbcl crashed
Jan 21 13:36:24 Johns-Powerbook crashdump: crash report written to: /Users/wiseman/Library/Logs/CrashReporter/sbcl.crash.log
It turns out that there's a bug in Apple's Crash Reporter whereby programs that generate Mach exceptions that are subsequently handled by a signal handler will cause CrashReporter to “erroneously generate a crash log for your program.” Fortunately for Apple, most programs don't expect to generate SIGSEGV signals and live; Unfortunately for Lispers, catching segfaults is part of a relatively common way of doing Lisp-style memory management (this is the same thing that prevents OpenMCL from running under Apple's Rosetta emulator)
There are two workarounds. One is to turn off Crash Reporter dialogs or logs (I'm guessing people on #lisp didn't know what I was talking about because they had CrashReporter configured to log crashes but not pop up the sort of dialogs I was seeing). This solution is not my favorite—You can't change the behavior only for SBCL; It involves changes to system-wide settings. And I like seeing the extra information when an app really does crash.
The other workaround is to implement Mach-level exception handlers as opposed to regular Unix signal handlers. This is the approach that OpenMCL and clisp take (and presumably ACL and LispWorks since I've never seen a crash dialog when using them).
One could take the position that this is a bug (documented, even) in Apple's software and SBCL shouldn't have to change anything, and people can just stop logging crashes. This, I think, would be a mistake. Do not spite your users to make a point, even if you're in the right.
The main point of this post is to document this issue so that those who come after me are less likely to think they're insane. A secondary motivation is to spur SBCL developers into adding Mach exception handlers.
I looked at trying to fix it myself, but as a first SBCL hacking project it was a little beyond me. But given what looks like a fundamental assumption in SBCL that signals are used for memory management (I wonder what the recent Windows port has to say about that assumption), it might be best to try the same strategy that OpenMCL uses (which is lucidly explained by Gary Byers in the code; search for “Mach's exception mechanism”): Install a Mach exception handler that catches exceptions, creates fake sigcontexts, and passes them to existing signal handling code. Sounds so simple! Code it up, mang!
Actually returning from the signal handler is another issue.
Bill Bradford discovers that on the new Intel-based iMac, clisp (maybe) and ABCL may be the only Lisp options. I don't think anyone has tried either ACL or MCL yet, but the odds of either working seem slim.
Gary Byers explains why OpenMCL won't run under the Rosetta emulator (with more details in this message), but says that Clozure has a contract to port OpenMCL to x86-64 Linux, which would get some of the way toward an OS X-on-Intel port.
SBCL doesn't seem to have anyone working on a port yet. I don't think either Franz or LispWorks has said anything publically about a potential port. And Digitool's situation may be somewhat dire—is their best bet (only bet?) to backport future OpenMCL work?
The Fringe Exhibitions gallery is having an opening reception tonight for some kind of SRL exhibit. Pros: It's SRL. Cons: It'll be really crowded and it's not going to be a real SRL show. Maybe I'll just go see the exhibit next week.
An RQ-8A Fire Scout rotor UAV landed on a moving Navy ship in what was apparently the first autonomous landing (as opposed to a net capture) of an unmanned aircraft on a ship.
On day one of the testing at 11:51 a.m., the green light was established as all systems were "go" on land and on sea. Under the command of the shore-based ground control station (GCS), the RQ-8A Fire Scout lifted off from the shore, and began its autonomous route to the ship. The shore-based GCS handed off control to the shipboard GCS, and after establishing telemetry data, a series of ever-closer approaches to the ship were conducted. In accordance with the test plan script, the RQ-8A Fire Scout came aboard the USS Nashville for the first autonomous landing at 2:42 p.m.
The CL Gardeners are working on “A high-level guide to the world of Common Lisp testing frameworks and tools.”
I use my own, of course, because it was easier at the time than trying to figure out which of the dozen or so available frameworks I should use.
Indeed's graph of the past year's job listings mentioning Lisp, Smalltalk, Ruby, Haskell, Python and Scheme [via Srinivasan R]. I don't think any of the Scheme listings are for the programming language.
If you throw Perl on the graph, it's about 8 times as common as Python.
Sriram Krishnan: “Lisp is Sin”
I cleaned out the 2005 folder of camera phone pictures and posted a few to Flickr.
I pretty much only take pictures with my phone these days.
Rob Myers is doing some Harold Cohen-like experimentation with OpenMCL.
Christopher Roach, O'Reilly's de facto Lisp blogger, has a micro introduction to using the LTK GUI library from Lisp.
Bill Clementson passed word from someone trying to use my CLAIM library for creating AIM clients in Lisp that it seemed to be broken. I don't use that code anymore, but a little digging seemed to indicate that AOL had changed the TOC protocol that some third party clients, including CLAIM, use to connect to their network. The new protocol, TOC2 has some improvements, though it's also completely undocumented and hasn't yet been entirely figured out by the reverse engineers.
Still, I found enough information on the protocol to update CLAIM. Even though I think Jabber via Google Talk is destined to win the IM wars, and hence cl-xmlpp is the future, AIM bots can still be useful (and look at all the attention the MAKEBot has gotten recently).
You can download CLAIM 1.2 from its little project page, or you can ASDF-INSTALL it.
I've tested CLAIM 1.2 with OpenMCL, SBCL, ACL and LispWorks. The tests have not been exhaustive—the code loads, and the gossip bot example runs.
? (gossip-bot:start-gossip-bot "myusername" "mypassword")
Testing with SBCL forced me to confront the fact that monovalent streams and code-char and char-code just weren't going to cut it with a mixed binary/text protocol, so version 1.2 of CLAIM requires Edi Weitz' FLEXI-STREAMS library. Sigh.
nxtbot.com is a Lego-sponsored blog “dedicated to providing news, interviews, features and commentary on the fast-changing world of consumer robotics.”
Lego's interest in consumer robotics has been reestablished with the release of the Mindstorms NXT at CES. The NXT has USB and Bluetooth, servo motors and sonar, which make it look like an evolutionary but significant upgrade from the Mindstorms RCX, which debuted in 1998.
Read about the NXT on Slashdot.
From the EE Times:
The proliferation of unmanned vehicle technologies used by the U.S. military has prompted an Army command to fund development of a toolkit that could be used for its entire fleet of unmanned ground vehicles.
The U.S. Army's Transportation Command (Warren, Mich.) will fund a six-month research project to develop a low-cost "robot infrastructure toolkit" that can be used for a wide range of unmanned ground vehicles (UGVs).
RE2 Inc., a Carnegie Mellon University spin-off (Pittsburgh), said Tuesday (Jan. 3) it will develop a toolkit focusing on specialized communication components and robotic manipulators with a common control interface
For a while Evo was looking at getting the ERSP selected as a standard robotics toolkit—by someone other than the U.S. Army.
pfig: “Lisp will be in 2006 what ruby was in 2005.”
I really don't think so.
Peter Seibel is offering <geographic-region>-firstname.lastname@example.org email addresses and mailing lists for any lisp user groups/drinking clubs that want them.
Andy Wingo's nice review of SLIME taught me some things.
The inspector keeps a stack of objects so you can dig down and come back up to where you were. I would kill to have this in Python
Which reminds me that as much as I miss MCL's IDE, it could be worse.