RogueTerm is released

RogueTerm is available right now in the app store . Get it now while supply lasts and connect to your favorite roguelike server. And don’t forget to let me know about your experience with it.


  • Works out-of-the-box for NetHack
  • Movable on-screen D-Pad with vi-keys
  • Run-support in NetHack with tap-and-hold on any D-Pad key
  • Freely configurable action bar that contains your most often used commands
  • Switch easily between different action bar configurations

RogueTerm, a dedicated Roguelike Telnet Client

I’ve used it mostly for connecting to NetHack servers, but DCSS looks playable too. The 0.9.0 seems to have some glitches due to UTF-8, but nothing preventing you from playing (and should be fixed soon). You can add and delete servers and create and edit shortcuts.

It’s an iOS 4.x universal app with retina support and should appear in the app store soon (next Wednesday if all goes as planned).

App store link to follow as soon as it’s final.

Here are some screenshots:

How to export SMS conversations from your iPhone into text

You probably know this. There are some very precious SMS conversations on your iPhone, maybe with that special someone, and you want to archive them. You know that they are backed up regularly by iTunes, but what if you want to view them on your desktop machine? Or send them to that special someone? If you don’t have your iPhone backups encrypted and know your way about sqlite it’s actually very easy.

sqlite3 "/Users/dirk/Library/Application Support/MobileSync/Backup/<UDID>/3d0d7e5fb2ce288813306e4d4636395e047a3d28"
.mode list
.separator ' '
.output <absolutefilename.txt>
select strftime('%Y-%m-%d %H:%M',date,'unixepoch'),case when flags=3
 then '<yourname>:' else '<othername>' end,text from message
 where address='<phonenumber>' order by date;

Obviously you’ve got to find out the phone number (which is called address in the SMS database) of your conversation partner first and replace it for <phonenumber>. You also have to make sure the flags are associated correctly and replace <yourname> and <othername> with the names you want t. In my database (iOS 4.3.1) it seems that all incoming texts have flags=2, and my responses have flags=3 but this might not be universally true. Your conversation will be saved to <absolutefilename.txt>, which should be absolute as the naming implies.

You might have to start from the top and drill down first a little to find out the address / phone number of your conversation partner, and whether the above assumption about flags is correct:

select date,address,flags,text from message order by date;

If you don’t know the UDID of your iPhone, plug it into iTunes and Cmd-LeftClick in the serial number field on the device summary.

Pride and Prejudice Podcast

When I was looking for an audiobook version of Pride and Prejudice, I came across a podcast in iTunes with excellent quality, for free. The problem is that the metadata is horribly mixed up (the whole thing actually starts at volume 2, and some episodes are swapped), and listening to it like an audiobook is difficult because at least on my iPod it starts with the last episode and ends with the first.

So I decided to take a look at it, with help from emacs and python. The result is a corrected version of the podcast RSS file, which features all episodes in (hopefully) correct order. Hit the download link below if classic literature is your thing.

Pride and Prejudice Podcast

iNetHack and related projects are in limbo

Back in July it really felt like a good idea, I was in the mood for it and thought I have the time, but many things have changed. I played prototypes on the iPad but I can’t get it to the point where it’s ergonomic. Hovering over the screen aggravates pretty much the same muscles that for a guy like me are already strained to the max. If you put it on the table and control everything from one or two small touch areas (so your arms can rest) you have to look down all the time. The smaller devices have their own problems if you want to push ergonomics to the max. Due to some health related issues I have to reduce my time spent before the computer (that’s probably why I started to focus on ergonomics in the first place).

To make a long story short: I currently can’t justify spending time on iHack related things. This may or may not change at any time. All the source produced so far is on github if anyone’s interested.