Noise

A bit over a week to us moving (back closer to the center of Helsinki, yay) and my computer's power supply decided it had had enough. Every time I switched it on, it blew a fuse (a big thank you to whoever invented the kind of fuse where you don't have to put in a new ceramic thingy everytime it goes.) I was seriously considering just going out and buying a new computer, especially as I wasn't quite sure if it was the PSU or some other part, but decided that we're going to have quite enough other things to spend money on in the coming few weeks. So I settled on getting myself a new PSU, and oh boy, the beast lives again.

Because I wasn't quite sure what was the source of the problem and I was sort of planning on getting myself a new computer anyway in a few months, I got the cheapest power supply in the store. And you can tell. I've never been too impressed with the Antec Sonata's much-hyped quietness, but this feels like sitting next to a blow dryer.

Article page

Audio format conversion

Music management applications don't always do what you want when you convert audio, even if they do support it some way, and nautilus-audio-convert can be a bit of a PITA with all those windows popping up. AudioFormat's supposed to be a simple, definitely not in your face, way to convert audio files from Nautilus. It uses GStreamer and the audio profiles you have defined. There's still rough bits, mainly due to me starting from zero with gst, but it'll get better. You'll need PyGTK, GStreamer 0.10 and python-nautilus. Probably newish versions of the Python stuff. And there's no automatic installation yet.

Screenshots behind the AudioFormat link too.

Article page

When everything else fails, try Emacs

Even though I've defected to Eclipse for Java coding[1], and even occasionally use Vim[2], there are times when I flee back to the tender loving embrace of Emacs.

We've been doing a bit of software archaeology at work, mapping old requirements specifications to a newer code base. The chosen method was to append specially formatted comments to the end of each line participating in the implementation of a requirement, in the form of // req <requirement identifier>. How to do this in Eclipse? It doesn't have a macro facility; there are the snippets or whatever they are called, but using it for this purpose would be pretty painful. And the lines are formatted to be long enough (padded with spaces) to make it easier to read the code with the comments inserted. Which is nice and all, but with my screen I can't even see what lines have the comments which don't. Not good.

But, hey, sometimes everything isn't a nail even though you have a hammer. There's always Emacs. 50 lines of elisp later and I have it prompting me for the requirement id, inserting and removing the comments with one key press and highlighting the lines with the current requirement id. Make it truncate long lines and the only thing different from the normal display is the pink background on the lines I'm interested in. Because the Emacs manual (and function doc strings) is as good as it is, all that was stupidly easy to accomplish even though I had never played with faces and overlays before. And of course no restarts were required while I was hacking the code, trying out every change as soon as I made it. I'm still waiting for another environment that is as malleable as Emacs.

[1] So I can't live without all the searches and other magic. Its editor is still pretty weak.

[2] Vi style indentation is better than broken Emacs style indentation. Some Emacs language modes are less than perfect. Also, AA fonts[3].

[3] The good news is that the Xft-enabled emacs-unicode-2 branch has been working for me now happily for a day. Smooth Bitstream Vera is love. If only it were packaged in Ubuntu, the way the main development branch is in the emacs-snapshot package.

Article page

New job

I changed employers last week. My previous employer, Entra e-Solutions, was recently merged with TietoEnator Telecom & Media. The merger was slightly unpleasant and pushed me finally into looking for a new job. I saw an interesting sounding opening for a semantic web r&d position, applied, did a six hour programming assignment, was hired. I now work for Profium. I'm all about RDF now, baby.

Also, apologies for not responding to email, if you've sent me any recently: I've suffered from a network outage and I'm also having trouble connecting to my IMAP mailbox. Evolution only says "Loading..." where it should show my folders.

Article page

Outcry: streaming again

Some former colleagues might think I'm reinventing my own wheel here. They would be right. I didn't feel like resurrecting a Python 1.5/omniORB zombie (or did it use SOAP later on? Or maybe both? I forget the details...) that didn't do everything I needed it to do and probably was mostly horrible. Anyway.

No guarantees for it working for anyone else, or for it to be interesting for anyone else, but Outcry is a remotely controllable (via plain old XML over HTTP messages) Icecast streamer. It's written in Ruby (which I'm enjoying, a lot) and requires libshout and ruby-shout. It streams MP3, converting FLACs and Vorbis files on the fly.

It's the latest step in my ongoing quest to play music in our living room without CDs. My KiSS DP-1500 isn't really very good at playing OGGs (it crashes a lot) and even worse at FLACs (it doesn't do them). Also, it doesn't play WAVs. My computer can't convert from FLAC to MP3 quickly enough for things to work out OK when I let the KiSS box control what it's playing, so next try is moving the control to this end of the pipe. Which kind of sucks. Oh well.

I should probably release my own kissd replacement written in OCaml, too, but it's even less ready for the masses. Email if you're interested.

Article page

Tag, Milou, Tag

Tomboy meets Leaftag.

Tag note

Select tags

Find the tagged note with Deskbar

And finally, after convincing gnome-open to use Tomboy to open note:// URIs, selecting the entry in the Deskbar menu will open up the freshly-tagged note.

Yeah, it's bit of a hack, but it's a start.

You need Leaftag (the latest version from SVN plus, at least at the moment, a patch for libleaftag-gtk), .NET bindings for leaftag (no tarballs yet but a mirror of my darcs repo is available) and the Tomboy plugin (again, there's a darcs mirror.)

Article page