Introducing Lukutoukka

Lukutoukka is a speed reader for the GNOME desktop. Inspired by this post (or really, originally, the Eastern Standard Tribe speed reader.)

It doesn't look like much, especially not without animation, but here you go, anyway:

The idea is to push words from a text file to the screen one at a time at a quick pace. After a while it feels like your brain is melting, but you do end up reading the text far faster than you would scanning a page because your eyes and mind don't get a chance to wander. Depends on your viewpoint and the text you're reading whether that is good or bad :-)

It's also the first significant piece of code I've written in Scheme. I used Guile. It's not the fastest or the most feature-packed implementation out there (compare to MzScheme, Bigloo and Chicken) but it does have a rocking Gtk+/GNOME binding.

Oh, and to keep life exciting, I'm using Darcs for version control. And loving it.

Article page

Ctrl-Alt-Backspace aargh

I've lately acquired a habit of using ctrl-backspace when editing text. I also tend to use alt quite a bit when moving around text, especially if said text consists of sexps. And suddenly I see why the DontZap option in the X server is a pretty good idea.

Article page

Married and stuff

So we got married last Saturday. Yay! The night after, we started suffering from what appeared to be food poisoning. My mother and one of the bridesmaids had the same problem. That was not so cool. I ended up staying home sick until Wednesday, Minttu the whole week.

The honeymoon will have to wait a bit, though. We're going to Florence, and we'd rather go there when it's not freezing in northern Italy.

Article page

Python is not Java

I recently read some old stuff on Phillip J. Eby's blog, and the Python Is Not Java entry really hit home. I'm not a new Python programmer, I've been using it from around 1996 or so, about as long as Java. But every now and then I see Java-isms creep into my code. It's usually after I try some fancy approach and later on come to wonder why my code stinks. I've been especially guilty about writing completely unnecessary getters and setters and doing (or even converting module level functions to) class methods that end up being just painful to use.

The parts that are more Lisp-inspired tend to be a whole lot better. I've never yet regretted returning a function from a function. Too bad about Python's lame lexicals.

Article page

Sweet screenshots and various other things

GNOME Launch Box is looking sweet. Well, at least from the screenshots, not that I've tried it yet. I was hacking in the autumn on something a bit similar; it's called Pepper but it sits abandoned for the moment. (For anyone interested, it's written in Python and available with tla at, If the hack by the Imendio boys is any good, it can stay abandoned.

In other news, feeling that PyGTK is becoming mainstream, I seeked out a new ghetto and started hacking with λgtk and SBCL. λgtk is a bit painful to install at the moment, requiring a new core with the sbcl-af stuff for SBCL, but it looks like Brian Mastenbrook is working on it. I was thinking of using OCaml, but then decided that the type inference stuff of CMUCL/SBCL is good enough a compromise between decent typing and flexibility. If anything comes of this project, I'll probably have to take a look at the libglade bindings I pointed at previously and also bind gconf and stuff.

Also, in the category of nifty languages building on other people's VMs, yet another one I wasn't previously aware of: Nice doesn't look too bad. Also see Scala, Boo and Nemerle. For the record, I think Groovy looks like what happens when a dozen languages collide with each other and someone is picking up the pieces and trying to match them together. With little success.

Article page