Present Perfect


Picture Gallery
Present Perfect


Filed under: General — Thomas @ 9:35 am

9:35 am

Miguel links to Mirage, which looks cool. At least, until you read the one bit of text that Miguel didn’t quote in his blog, which is the list of dependencies. Sox ? mpg123 ? ogg123 ? faad ?

So you write a plug-in for a player that uses an excellent media framework that supports a lot more formats than just mp3, Vorbis and AAC, and you do it using 90′s single-purpose libraries ?

Here’s how Mirage could have actually been useful:

  • write a simple GStreamer element that analyzes decoded audio for this similarity information
  • write the Banshee playlist plug-in that interfaces with this GStreamer element

Now it’s just like getting a car, then buying a nice horse that you put in the trunk to increase the horse power of the car.


the author commented that he chose mpg123 for speed reasons, claiming that GStreamer is a lot slower.  Apparently for him libmad is already 4-5 times slower than mpg123.  I did a quick comparison between mpg321 (the free version of mpg123) and GStreamer with the mad decoder, and the mad decoder is actually a little bit faster.

In any case, it seems my lowly Pentium IV 1.3 GHz laptop decodes 3 minutes of mp3 in 4 seconds.  That’s about 50 times faster than realtime.  I just checked – my current Rhythmbox library is about 19446 songs, for around 58 days.  So using GStreamer, the decoding part of the analysis would take a bit more than a day.  A day or 6 hours, the difference to me is pretty much the same.  It’s not immediately usable, and it’s not an impossibly long wait either.

I’d much prefer the ability to use it from any application, and on any sound format supported by GStreamer.

I still hate yum’s default action on problem packages

Filed under: General — Thomas @ 9:29 am

9:29 am

This is one of those things where I just don’t understand the arguments for the opposite view.

Here’s what yum does that so annoys me.

If you ask it to upgrade, and there’s even one simple problem, it doesn’t upgrade anything. The problem could be “I can’t download this package I want”. It could be “there’s something wrong with my metadata”. Or it could be “I don’t know the key for this package”.

Me, I come from a belief that things will fail and you’re better off handling the failure cases if you want to make your user happy.

So today it’s biting me again and I’ve decided to just dump it on the intarweb every time it bites me and it just doesn’t make sense to me.

# yum upgrade

Setting up Upgrade Process

Resolving Dependencies

--> Running transaction check

---> Package rpm-python.i386 0: set to be updated

---> Package rpm-libs.i386 0: set to be updated

---> Package elfutils.i386 0:0.129-1.fc7 set to be updated

---> Package rpm.i386 0: set to be updated

---> Package elfutils-libs.i386 0:0.129-1.fc7 set to be updated

---> Package popt.i386 0: set to be updated

---> Package elfutils-libelf.i386 0:0.129-1.fc7 set to be updated

---> Package liboil.i386 0:0.3.12-9.fc7 set to be updated

---> Package liberation-fonts.noarch 0:0.2-1.fc7 set to be updated

---> Package rpm-build.i386 0: set to be updated

Dependencies Resolved


Package Arch Version Repository Size



elfutils i386 0.129-1.fc7 updates 203 k

elfutils-libelf i386 0.129-1.fc7 updates 54 k

elfutils-libs i386 0.129-1.fc7 updates 109 k

liberation-fonts noarch 0.2-1.fc7 updates 638 k

liboil i386 0.3.12-9.fc7 updates 156 k

popt i386 updates 70 k

rpm i386 updates 1.1 M

rpm-build i386 updates 661 k

rpm-libs i386 updates 930 k

rpm-python i386 updates 56 k

Transaction Summary


Install 0 Package(s)

Update 10 Package(s)

Remove 0 Package(s)

Total download size: 3.9 M

Is this ok [y/N]: y

Downloading Packages:

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 30c9ecf8

Public key for elfutils-0.129-1.fc7.i386.rpm is not installed

Apparently this package is signed with the rawhide key. So one broken package, no updates for anyone until this is fixed.

GNOME cookbook

Filed under: General — Thomas @ 9:54 pm

9:54 pm

Here’s my first entry for the GNOME cookbook.

(note, this is a serious entry, even though its awesome simplicity may make you believe otherwise)

 Nuke’m cheese toast

Ingredients: toastable bread, cheese slices

1. Toast a slice of bread, preferably white.

Try to avoid bread that comes out of plastic bags.

2. While the bread is toasting, trim the edge off the cheese slices. A good cheese to use is Gouda.

3. Put toasted bread on a plate and put cheese slice on top.

4. Microwave at 700W for 30 seconds. Assert that cheese has started making tiny bubbles and is melting slightly through the bread.

5. Ignore the smell and enjoy the taste.

I used to make this all the time when I wanted a quick snack to keep up the hacking when I was living in Belgium. I stopped doing it here in Spain because it’s hard to find decent bread. I made one again at Kristien’s place in Brussels last month after three years without having one, and it was so incredibly awesome I had six on the spot.

I will come up with a more elaborate recipe I like but I have some trouble picking one.

Incidentally, I think it would be better to have a longer collection period for recipes – apparently it’s being closed off in two weeks ? There aren’t enough hackers who have contributed yet, Don’t let this be a Federico-cooks-with-a-very-small-bit-of-help-from-friends book (even though every time he writes about cooking he makes my mouth water :))

Happy Cooking

Freedesktop problems

Filed under: Hacking — Thomas @ 6:15 pm

6:15 pm

Yay for Sundays. GStreamer hackers told me something was wrong with CVS – commits were going in as uid(somenumber) instead of the actual account name for the last two weeks. Also, spewage from post commit hooks indicated the same problem.

With the help of Jan, I figured out what the problem was. CVS runs inside a chroot, the chroot was still on Debian sarge while someone upgraded the hot machine to Etch. The passwd.db file got copied from host to chroot and presumably the sarge libs can’t read the etch version of that file. But it took a few hours to figure out that this was the problem. Anyway, should be fixed now.  The uid’s in the commits already made will be fixed in the future after we migrate to Subversion – I’m actually (for work) adding a feature to moap that allows you to rename authors for past revisions.

I also deleted some 33000 files from its /tmp directory left over from cvs commit rules…

It makes me think that sitewranglers, as a group, is not very effective. I wonder who did the upgrade to etch in the first place ?

Dobey also asked me to take a look at why Tango ‘s website didn’t work – MySQL had the user allowed only from the full hostname and not localhost. Fixed now too.

I’m guessing SVN will have the same problem – can anyone let me know which projects use svn and wants to take a look at it with me so I can fix it ?

Since my Thinkpad is still in limbo, and Jan has come over today to do some hacking, I am doing today’s hacking from a Mac PowerBook G3 running Ubuntu Warthy. Apparently Warthy does not even exist anymore on Ubuntu’s servers, so upgrading it was out of the question. Jan helped me set up XDMCP on my desktop in the office room, and now I’m using this paperweight machine to work remotely on my desktop. Works pretty well.

But how anyone would ever have wanted to actually buy a machine like this is beyond my comprehension. I don’ t even have a Delete button ! I can’ t delete mails in Evolution ! Well, I could go right-click and select Delete … oh no wait a minute, this is a Macintosh broken-by-design machine with ONLY ONE MOUSE BUTTON. Sigh.

Evolution filters

Filed under: Hacking — Thomas @ 12:16 pm

12:16 pm

I got annoyed again at trying to remember my manual procedure for copying Evolution filters.xml between machines, so I wrote up my understanding of how to do it in my wiki, (which I should use more to collect random info, but I digress)

It’s enough info for me to be able to remember how to easily fix the problem, while allowing me to be lazy about filing bugs, fixing bugs, or writing scripts to do it. Should do for now, let me know if you have anything to add.

Time for breakfast !

Next Page »