Skip to main content

Userscript for nicer l1sp.org search

I love the l1sp.org documentation redirection service. It is quick and easy to look stuff up there if you know the name, and it has a pretty good search if you don’t. However, the search results are not presented very nicely: They’re very close together, and the ones I’m looking for most often (mostly CLHS pages) are buried somewhere in the middle. So I wrote a userscript (for Firefox through greasemonkey or Google Chrome/Chromium) to improve things a bit: It enables keyboard navigation (j/k or cursor-down/up select the next/previous result, enter opens the page, and / focuses the input field), and searches for the closest match from the results (ranks them by section and then selects the shortest matching entry).

Visualizing the CLHS interlinking structure

Lately, I’ve been wondering what we could use the ~110k Hyperlinks in the CLHS for, other than click through the spec in a web browser. For example, given a glossary entry, how do you find out which functions refer to it? So I wrote a little program that crawls (a local copy of) the HyperSpec, and creates an RDF graph of its link structure. This graph can be used to answer these questions, or it could be the basis of a useful research overlay on top of the HyperSpec, who knows.

Vienna informal Lisp meeting 2010-02-27

Date: Saturday, 2010-02-27 Time: 12:30 Venue: In and around the Metalab, Rathausstrasse 6, Vienna (map) I’m pleased to announce the first international totally informal lisp meeting in Vienna. A bunch of Lisp hackers are coming to here on the 27th, and we will meet, talk and hack in and around the Metalab. The approximate schedule is as follows: 12:30 - Lunch at Fromme Helene. There is a table reserved for 15 persons (we’re 5 confirmed hackers at the moment).

cl-beanstalk: A queue service client

Over the weekend, I wrote a little client library to a queue server that I’ve grown very fond of over the last year, beanstalk. It’s a very simple queue server, but it comes with a nice feature (delayed jobs) that I’ve had a use for recently. The queue server is nicely engineered (written in C, works with queues a few million jobs deep), and very fast; it has guards in the protocol against worker failure, and it was a pleasure to implement: The whole thing is just 320 lines of code, including comments.

Hunchentoot gets a debugging-acceptor

Today, I submitted a patch (the first free software lisp one in months for me!) to the Hunchentoot project, and it got accepted. Yay! Some backstory: Hunchentoot’s 1.0.0 release dropped a lot of implementation-dependent features, among them functionality to invoke the debugger if an error happens while handling a request. While workarounds exist, none of them were obvious to new users or users who recently upgraded. The patch I sent should fix this, hopefully.

There are only two hard problems in Austrian family law:

Caching and naming things. Well, maybe not caching. But if two people are getting married in Austria, they do have to solve the other hard problem. That is, one partner gets to keep their name, and the other partner has to decide what to do: Take on the partner’s name (it’s expected that the female partner does this), keep one’s old name, or prepend or append one’s own name to the partner’s name.

Clojure and Art of Illusion: BFF

Two weeks ago, the rotary program dial on my dishwasher broke. Luckily, I could fix it with two Lego parts (a Cross Axle #6 and a 16-teeth gear) initially, but the program selection experience suffered from the axle’s being too thin: it’d always bend in the turning direction until the selector would too-rapidly rotate past the point I wanted to select. Ugh. Luckily for me, there’s a reprap at the Metalab.

Perfectstorm by Johann Korndoerfer

This isn’t original work, so perhaps more suited to being in my soup than this blog, but it’s so cool it just has to be on Planet Lisp. perfectstorm is: a real time strategy game study written in Common Lisp using OpenGL for graphics display and cairo for texture generation. Looks very very interesting. Google SoC students take note: this is an open source project (-: (found via neingeist)