Arnt Richard Johansen's home page

Podcasts for geeks

One of the first things I set out to do after I got my Cowon D2 was to seek out some new podcasts. Podcasts are all the rage around the internets these days, but if you have been living in a cave the past years, here is a short update:

A podcast is like a radio series, except you subscribe to it with a web feed (or equivalent) and get each new episode on your computer, which you usually then upload to your portable media player.

So, where do you find podcasts to subscribe to? Well, if you know exactly what you're looking for, you can just go to a search engine and type in something like model railroad podcast, if you're interested in model railroads. Chances are that, whatever your interests are, someone has made a show about it.

If you want to get an idea of what kinds of podcasts are out there, you can browse sites such as PodcastDirectory.

Here are some of the podcasts that I listen to on a regular basis.

Are We Alone? by the Seti Institute

This is a professionally produced 50-minute weekly program about various scientific subjects. Even though it's produced by the SETI Institute, SETI is only occasionally a subject. This is my absolute favourite; if you check out only one of the podcasts on my list, this should be it.


This monthly podcast presents some of the latest findings in neuroscience research in a popular format.

STAT! The Podcast of Neurology News and Medicine

When I first discovered this podcast in the Podcast Directory, I expected something along the lines of NeuroPod. But the two podcasts could not have been more different. Whereas NeuroPod has a pop-sci approach to the frontlines of research, STAT! is made by doctors, for doctors, and has a practical, clinical focus. The typical episode of STAT! is an in-depth discussion of subjects such as what you ahould do if a patient comes into your office with a TIA. Nevertheless, I found this podcast utterly fascinating, and if you can get over the jargon (this was probably the first time I heard the word “iatrogenic” spoken), I warmly recommend it.

Unfortunately, it seems that this podcast has been discontinued, or put on ice: the latest episode available was published on April 6th, 2008.


This is another clinical podcast, which “strives to bring you the latest information about dental technology and clinical techniques”. I find dentistry a fascinating subject, partly because almost everyone goes to the dentist once in a while, but few people know much about what they do and why they do it.

Science @ NASA

Irregularly published short news stories from NASA, about 3 to 10 minutes each. A slight degree of hum, but you only really notice it when the episode ends.

The first draft of this entry included a recommendation of Eirik Newth's science podcast Superstreng. Unfortunately, since then I received the dismaying news that it has ceased production. (Actually, it was not primarily a podcast, but a show on Radio Norge that also appeared as a podcast a couple of days letter, often with additional material. Radio Norge is apparently no longer interested in airing the show.) But if you can understand Norwegian, all 118 episodes are still available for download at the Superstreng site.

[Saturday, Sep 13, 2008 @ 23:13] | [reviews] | # | G

Cowon D2 review

After having owned the Cowon D2 portable multimedia player for about two months, I think I have had enough experience with the device to write a mostly accurate review.

The Good

One of the most important criteria when I set out looking for a portable audio player was that it has to work with the setup I already have. Specifically, it has to work with my computer, which is running Linux 99% of the time, and it has to work with my music collection, which is mostly in Ogg Vorbis.

Why Ogg Vorbis, you ask? Well, a couple of years ago I would have given you the whole speech about freedom and how important it is to have open standards, so that the market will compete on quality rather than who has the best vendor lock-in scheme. I still think that is important, but nowadays it's more a matter of convenience. I have gigabytes upon gigabytes of music that I already bought and ripped, and I do not want to rip it again, or re-encode it.

Cowon is one of the very few companies that actually takes other audio formats than MP3 seriously. That is perhaps the main reason that I chose to buy one of their products.

I was surprised to see that there was no complete manual in the box, just a quick-start guide. On further thought, I came to the conclusion that it was probably a wise decision. It saves the trees, the vast majority of the customers have a computer and access to the Internet, so they can go look it up there.

Other reviewers have mentioned this, but it bears saying again: the Cowon D2 is smaller than you think it is. It is actually about as big as a pack of cigarettes, and fits easily into any pocket I have, including front jeans pockets.

The Bad

The D2 isn't only an audio player, it's a video player as well. Yes, you can actually play videos on the tiny little 2.5" screen. I don't have much use for this feature, but one day I decided to try it out, just for fun. Boy, was I disappointed.

After becoming familiar with the D2's great audio format support, it comes as a surprise that the D2 can't play any old video file you put on it. I tried with MPEGs, AVIs, even QuickTime files, nothing worked. After some googling, I was able to dig up a post on Ubuntuforums with a link to a converter script. The script ran, it was able to convert a video so that the D2 could play it, but the whole process was impractically slow. So it does not seem that I will be using the D2 to play videos after all.

Indeed, according to the manual, “All video files must be converted using jetAudio VX. Any other video files are not supported by D2.” I may be underestimating the difficulty in decoding multiple video formats in hardware, but this seems like an unfortunate choice by a company that adheres to open standards in so many other aspects.

I wasn't planning on using the D2 as a recording device, but if dictation capabilities are important to you, you should note that in the unit I have, the internal microphone is broken. I can fix it temporarily by squeezing the front and back of the chassis near the microphone, but that is not very practical.

The Ugly

So you want to play Science@NASA? Sure, we can arrange that. Which of the two copies of the first episode do you want?
Oh, this might sound like Evils Toy, but it's really Science@NASA. Honest. The cover art? Never mind that. I know what this is. The meta-data told me so.
You want to play something else?
One of these database entries is the actual podcast episode you're looking for, and I'm not telling you which!

Occasionally, after having uploaded a lot of new tracks to the D2, some or all of the meta-data are completely wrong. Sometimes all or nearly all of the tracks have no artist/title tags (they appear as Unknown), other times you get the artist and track names of the wrong album. In addition, when the device is in this kind of state, it is prone to lock up simply by trying to play specific songs.

I tried to initialize it to factory default according to the procedure in the knowledge base, but that didn't help with restoring the broken meta-data. The only thing that worked was to re-upload all affected files to the device.

Since the D2 takes a bit longer to boot after I've uploaded data to it, I suppose it is building some kind of master index that gets easily corrupted.

Needless to say, this firmware bug is very annoying, because I usually load a lot of new tracks onto the D2 just before I'm leaving somewhere. That is when the bug is most likely to happen, and I can't fix it before I get back to the computer so I can re-upload the tracks.

I'm sorry, Cowon, but you really need to do more QA on your firmware. As it is now, I cannot recommend buying the D2.

[Saturday, Jun 28, 2008 @ 23:06] | [tech] | # | G takes to the sea

Summer has begun, and I'm fed up with the old look of my home page. Not only is black-on-white sooo 2004, but the CSS was a shoddy cut-and-paste job from a how-to web site that cared way too much about supporting bugs in legacy browsers, and way too little about liquid layout, simplicity, and portability.

So I sat down with some new tutorials, and redid the style sheet with beautiful floating boxes in as simple CSS code as I could manage. At the suggestion of Taliesin, the creator of the excellent CALS site, I used Colorhunter as an aid to select the colour scheme.

I had imagined a particular kind of steely blue sea in the header, so I typed “stormy sea” into Flickr's advanced search page, filtering for pictures licenced under Creative Commons. In less than five minutes, I had found a perfect fit — the photo by Anne Ruthmann that you see above — cropped and resized it in Gimp, and set it as the background for the H1 element. Salty!

The new layout should work in any browser, and you should be able to look at it in a maximized window on a screen width of up to 1600 pixels before the header starts to look funny. If you have Firefox or Safari, you will even see the rounded corners on the boxes, which is a preview of the border-radius feature that is slated for inclusion in CSS3. Please let me know if something looks wrong.

I have two more posts in the works, and both have to do with digital audio. After that, I may or may not go on blogging hiatus again. Until then: stay subscribed. :-)

[Friday, Jun 27, 2008 @ 23:35] | [tech/web] | # | G

Building an ALSA pipeline out of software that insists on outputting to a real MIDI port

Recently I've had a problem for which there was no readily available answer on Google. If you found this through a web search, I hope the following will be of help. I have to stress, however, that my understanding of ALSA is quite superficial, and the solution that is presented here may have worked for the wrong reasons.

What I was trying to do, was to do keyjazz on vkeybd, feed the MIDI events into QMidiArp (an arpeggiator), and use the arpeggiated sequence as input to Alsa Modular Synthesizer (Ingen seems to be more powerful and easier to use, but it has some... issues, that prevent me from running it successfully).

QMidiArp seems to be the software arpeggiator on Linux, but unfortunately, it wants to talk to ALSA MIDI interfaces. That is, it will only transmit events to /snd/seq or whatever, where an actual hardware synthesizer should be connected. Patchage shows no output streams that can be subscribed on QMidiArp, only the input (which can easily be connected to vkeyb).

It was part 10 of the Linux MIDI howto that spurred me on to a solution. There is a program called aconnectgui (available in the Debian/Ubuntu package of the same name) that, unlike Patchage, will show you the outputs that correspond to hardware devices. Just start it up (after you have started all the programs that will be in the pipeline), connect the output of vkeybd to the input of QMidiArp, connect the first output of QMidiArp (the one corresponding to ALSA port 0) to the input of ams, and there you go!

[Sunday, Mar 23, 2008 @ 14:11] | [tech] | # | G

pyBlazon announced

It's been about a year and a half since Mark Shoulson and I started trying to make a program that could compile blazons into graphics. This is not a new concept — Robert Billard wrote a quite powerful blazonry program for Windows called BLAZONS! (which no longer seems to be supported, alas). As early as 1994, Daniel V. Klein suggested blazonry as a forerunner of graphic definition languages in his USENIX talk From Blazons to Postscript.

Finally, the blazonry compiler, which we have called pyBlazon, has gotten to a state where it is not directly embarrassing to show to people. Last Sunday, Mark posted an announcement to the sca_heralds LiveJournal community, with a link to the project's makeshift homepage and online demonstrator.

Currently we are hashing out which free licence we are going to release it under, and Mark is preparing to host the project on Google Code.

Some points of note:

  • Blazonry as a formal jargon may at first glance seem completely rigid and well-defined, but in fact it is large and open-ended. None of us are artists, so a rule of thumb is: if it can be made with just a few SVG primitives, we have it; if you have to draw it in a vector drawing program, we don't. So don't expect the compiler to know what bears, reindeer or horses are. Also, there is no ISO or W3C of heraldry that tells you which charges you can or cannot use, and people invent their own freely. To make a drawing of a “winged sea centaur” (as in the arms of Stephen Coombs) without ever having seen one, you basically have to be a human or have super duper body-part exchange algorithms.
  • Also because of impatience, we are using the somewhat underpowered PLY library for parsing (a yacc/lex clone for Python) rather than doing the right thing from the beginning and using something like ANTLR. This means that some perfectly-valid blazons will not work, and have to be reworded. More details under Known Issues on the project page.
  • Some arms still look horrible, either because they are basically a special case, or because they are plain old bugs. An example of the former is ermine fretty gules; an example of the latter is azure within a bordure invected argent.
  • The SVG is very hairy. Basically, we are wrapping stuff into many layers of transforms rather than rewriting the SVG in memory, simply because that's easier and makes for rapid prototyping. The upshot of this is that not every program that claims to be able to display SVG can render the output of the blazonry compiler properly. Currently, only rsvg is guaranteed to work in all cases. Batik and Opera also does a favourable job. Mozilla Firefox? Forget it.

[Friday, Mar 07, 2008 @ 20:03] | [language] | # | G