Getting album covers working on the HTC Hero

I’ve been strugling getting album art working properly with the music player included on the HTC Hero. Covers was only working for some albums. After a bit of googling and a few different tries, since there was a lot of misinformation on google about this problem, I finally figured out how it works. The player reads covers from a tag on the files. This is apparently the only way it supports covers. The player after reading a new cover, then thumnails them and stores the thumb in the albumart directory on the flash. The first application that I tried to add the album art to the files was Easytag, sadly it has a pretty nasty bugs that leads all the covers all fucked up. That combined with the caching of the player, left me strugling trying to correct the covers after I found a tagger that actually worked. So please don’t try that at home :) My second try was Kyamo, which I can’t recommend sadly. There are simply too many things that sucks in it. Things that combined makes fixing up ~10gb music a complete pain in the ass. I finally settled with Mp3tag, it’s for Windows, but at least it works quite well and its free (as in beer). Another annoying thing about the player is that, while it supports Ogg Vorbis, it doesn’t understand covers embedded in ogg. So no cover for those albums. Ah yeah, I should probably also mention that the thumbs generated are in 320x320, so in my experience around 500x500 pixels works best. ...

September 25, 2009

Profiling multithreading applications

I’ve written about profiling before in the general case. But when it comes to multithreading, there are a few more factors to consider such as lock contention and cache invalidation that affect performance. And this is where mutrace (mutex profiler) comes into the picture. The profiler has a very low overhead compared (no perceived delay for me) to other solutions and gives quite nice results. I tested it on My Media System (C++) and Nemo (C#) and got interesting results for both. I knew more or less what the results for mms would be, but the results for Nemo was a bit suprising. The lock contention was significantly higher than for mms, even though I didn’t really use a multithreaded design for Nemo. So I guess it comes from the mono platform itself. Sadly it seems that mono programs aren’t compiled with -rdynamic, so the results that one gets are quite hard to decipher.

September 25, 2009

Andnav2, open maps for the android

As I was researching the android platform before buying a HTC Hero, one of the things that really got me excited was the mappping/gps application andnav2. It’s a frontend for openstreetmap, that uses the open routing service to provide turn-by-turn, all for free. The only thing is that it requires is a internet connection for routing, but it’s not really a problem as a route is only a few kilobytes. Maps can be preloaded onto the device also, for situations where one doesn’t have an internet connection available (like when traveling). I used the nice TrekBuddy atlas creater application to fill the device with maps of all of Denmark, London, Berlin and Europe at a decent level. ...

September 20, 2009

Fixing the HTC Hero Sync installer for non-english versions of Windows

I recently aquired a HTC Hero phone. More on that later. First I just wanted to help out other poor souls out there, who are forced to use Windows to upgrade the software on the phone. There is a bug in the installer for the HTC Sync program which leads to the drivers not being installed, in turn resulting in the inability for the computer to find the android device. Very frustrating to the say the least. The installer writes the driver to the localized program files directory (on a Danish version of Windows this is C:\Programmer), but looks for it at the hard-coded path C:\Program Files, resulting in the drivers not being installed. Fixing the problem is pretty easy: ...

September 18, 2009

+1 Ubuntu

I was flaming Ubuntu in an earlier post for their lack of quality in their releases, so I thought it would be fair to give them credit when it is due. They have a project called One Hundred Paper Cuts where they try to fix low hanging fruit, easy bugs but annoying bugs. Bugs that when stacked together really can make you go from loving a piece of software to hating it. When I look through the blog post for their round 6, I really like what they are fixing. ...

August 11, 2009

Gmail please fix your spam filter

Lately Gmail has been become increasingly frustrating to use. When I check mail in the morning I have about 5 spam mails in my inbox. Even some from Viagra. Even worse, the number of false positives (ham classified as spam) has also been increasing so that I now at least once a day have to resort to looking for legitimate mail in my spam folder. For a spam filter this is the worst case scenario. Actually it seems like Gmail has trouble categorizing spam as seen below. I hope it's only a UI bug, but something deeper down is definately rotten. ...

July 27, 2009

The OpenBSD Releases Process

Theo de Raadt talks about the OpenBSD Releases Process. It’s short but sweet little interesting talk that touches a lot of different aspects about releasing software and doing development. I hightly recommended to anyone who cares about this field, that ought to mean any people doing software. They have a different way about thinking about a lot of things, of course their focus on security is special which also shows off in their release management. What I really liked was that they import stuff into their tree and then they take ownership of it. That way, I think, they avoid a lot of the problem that plague e.g. Ubuntu, like crappy intel drivers in latest Jaunty, the thrashing hell failure, unstable tracker in Jaunty. Of course all that comes at a certain cost, they are running ancient version of some pieces of the tree, but at least they know that it works.

July 18, 2009

Running Chrome in Ubuntu

Getting Chrome running in Ubuntu is now pretty easy, simple add the following line to /etc/apt/sources.list: deb http://dl.google.com/linux/deb/ stable main Then you can install Chrome using the package manager and it will keep itself updated. Sadly the browser is quite alpha (no flash, random errors, no tabs saving on exit) but they update it every week and it runs insanely fast compared to firefox.

July 17, 2009

Making hibernate work after harddrive upgrade

I recently upgraded the harddrive in my trusty old IBM T60. I mirrored the hd using a little dd magic and everything worked fine, including the IBM rescue partition. The only thing that wasn’t working anymore was hibernation in Ubuntu. This was because it relied on wierd UUIDs instead of actual device names. Fixing it was pretty easy, once you know what the problem is. First step is to fix up /etc/fstab so that the swap partition has the right UUID. You can get the UUID of a device using something like: ...

July 17, 2009

Random Ubuntu notes

There’s an annoying problem in Ubuntu 9.04 that if you have set your machine to automatically login, but have a password on gnome keyring manager, then it will prompt you for the password before wireless is enabled. There is a bug about it here on launchpad. And as usual the Ubuntu guys doesn’t seem to want to take responsibility for the software they are providing. Reminds me of this thrashing bug reported over 3 years ago and it’s still open. It’s actiually the first result on google (out of 544.000) if you search for thrashing hell :) ...

July 17, 2009