Present Perfect


Picture Gallery
Present Perfect


Filed under: DAD,Music,Python — Thomas @ 11:52


The last few weeks I spent most of my spare time learning a little Django and rewriting the old DAD (Digital Audio Database) code (which was written in PHP) to something a little more modern and malleable.

All these topics deserve separate posts, but for now I'm just content hooking up the various pieces of infrastructure for the overall project.

So, I was happy as a child when I was able to do a query for 'all tracks that contain a hidden track' (which I look up by doing level analysis on the files, and figuring out where there are sections with a reasonably large section of silence).

The full list for my collection is below, but it definately picked out the ones I expected, like 'All Apologies' (I can't count the times I was annoyed when a music player played it then shut up for 10 minutes), Lift To Experience's "Into the Storm", the Auteurs track, and the beautiful beautiful hidden track at the end of Placebo's first album.

Pretty soon this player will play these hidden tracks correctly, and DAD will allow you to rate tracks separately.

Here's the current list (some audio files are repeated because they contain more separate slices):

In [8]: for s in models.Slice.objects.filter(start__gt=0): print s.audiofile
Alanis Morissette - You Oughta Know (Extended).ogg
Auteurs - Home Again.ogg
Andrew Dorff - Angel Puppets.ogg
At The Close Of Every Day - Lower World.ogg
Autour De Lucie - Chanson Sans Issue (Remix).ogg
Ash - Darkside Lightside.ogg
Astrid - Say What You Mean.ogg
And You Will Know Us By The Trail Of Dead - Sigh Your Children.ogg
And You Will Know Us By The Trail Of Dead - Source Tags And Codes.ogg
Better Than Ezra - Coyote.ogg
Ben Folds Five - Evaporated.ogg
Beck - Blackhole.ogg
Blur - To The End (La Comedie).ogg
Blur - Essex Dogs.ogg
Beck - Debra.ogg
Counting Crows - St Robinson In His Cadillac Dream.ogg
Chris Whitley - Ultraglide.ogg
Cowboy Junkies - Those Final Feet.ogg
Chocolate Genius - It's All Good.ogg
Coldplay - Everything's Not Lost.ogg
Drugstore - The Funeral (But Most of All).ogg
Damien Rice - Eskimo.ogg
Damien Rice - Eskimo.ogg
Deftones - Mx.ogg
Deftones - Mx.ogg
Denis Leary - Lock 'N Load.ogg
Drugstore - Flying Down To Rio.ogg
Ed Harcourt - Like Only Lovers Can.ogg
Elvis Presley - Rip It Up.ogg
Everclear - Like A California King.ogg
Fun Lovin' Criminals - Little Song.ogg
Green Day - FOD.ogg
Gabriel Rios - Badman.ogg
Geneva - Have You Seen The Horizon Lately.ogg
Grandaddy - Lawn And So On.ogg
Janet Jackson - Special.ogg
Kyuss - Spaceship Landing.ogg
Kyuss - Spaceship Landing.ogg
Krezip - Fine.ogg
Korn - My Gift To You.ogg
K's Choice - All.ogg
Lemonheads - The Jello Fund.ogg
Lemonheads - The Jello Fund.ogg
Lemonheads - The Jello Fund.ogg
Lemonheads - The Jello Fund.ogg
Lamb - Feela.ogg
Lamb - Just Is.ogg
Lo Fidelity Allstars - Dark Is Easy.ogg
Lift To Experience - Into The Storm.ogg
Magnapop - Voice Without A Sound.ogg
Monster Magnet - Vertigo.ogg
Mansun - Dark Mavis.ogg
Manic Street Preachers - Freedom Of Speech Won't Feed My Children.ogg
Metallica - The More I See.ogg
Nirvana - Something In The Way.ogg
Nemo - The Headphone Song.ogg
Nirvana - All Apologies.ogg
Offspring - Smash.ogg
Placebo - Swallow.ogg
Poe - Fly Away.ogg
Polar - Kill My Fears.ogg
Phoenix - Alphabetical.ogg
Patti Smith - Notes To The Future (live).ogg
Placebo - Burger Queen.ogg
Pearl Jam - All Those Yesterdays.ogg
Queens Of The Stone Age - A Song For The Deaf.ogg
Robbie Williams - Suprême.ogg
Radiohead - Motion Picture Soundtrack.ogg
Robbie Williams - Beyond The Sea.ogg
Starsailor - Coming Down.ogg
Sense Field - Haunted.ogg
Smashing Pumpkins - Daydream.ogg
Sunzoo Manley - Taxidriver.ogg
Sparklehorse - Babies On The Sun.ogg
Sonic Youth - Sweet Shine.ogg
Soulwax - Acapulco Gold.ogg
Therapy - Sister.ogg
Tool - Flood.ogg
Tool - Opiate.ogg
Throwing Muses - Shark.ogg
Tanya Donelly - The Shadow.ogg
Throwing Muses - Fever Few.ogg
Travis - Walking Down The Hill.ogg
Turin Brakes - The Optimist.ogg
Tracy Chapman - I'm Ready.ogg
Thrills - The Irish Keep Gate-crashing.ogg
U2 - All I Want Is You.ogg
U2 - The Wanderer.ogg
Teddy Thompson - Missing Children.ogg
Verve - Come On.ogg
Jesus And Mary Chain - Just Like Honey.ogg
Nits - Meisje Van 16.ogg
Whiskeytown - Bar Lights.ogg
Whipping Boy - Morning Rise-A Natural.ogg
Yeah Yeah Yeahs - Modern Romance.ogg
Beyoncé - Bonnie And Clyde '03.ogg
Sigur Rós - Untitled 4.ogg

Python XML parsing

Filed under: Hacking,Python — Thomas @ 10:33


I've always had this nagging feeling any time I write XML parsing code in Python that it just ought to be simpler.

Conceptually, I tend to always think that an XML document is really just a big nested python dictionary, and I should be able to walk it as such, or even better, as a composition of objects. That's probably a gross oversimplification and probably not correct according to spec or some corner use cases, but really, that's just how my brain works. Show me an XML document and I'll show you a big dictionary tree.

So I've always been disappointed with the experience of having to write actual XML parsing code. In Flumotion I think we've gone through three different XML parsers as well, depending on which developer was supposed to rewrite or add some piece of code that had to deal with XML config files.

So each time I have to write some XML parsing code again, I tend to go look if there's something better out there. This time I stumbled across a blog post that echoed my sentiments exactly. And it came with a solution: xml.etree.ElementTree. Finally ! A library that more or less maps to my mental model. Reading through the tutorial then writing the code I needed to parse my file took a lot less time than handrolling yet another set of functions to parse tags would have.

I'm posting this to increase the google juice of xml.etree.ElementTree. It simply doesn't show up when you google for python xml, and it should be hit number 1!

mysql and utf-8

Filed under: Hacking — Thomas @ 10:30


Someone will probably tell me what knob to turn or what option to twiddle to make this Do The Right Thing, because I can't let myself think MySQL and its tools would still not support utf-8 correctly:

mysql> select * from artist where artistname like '%gur%';
| artist_id | artistname | first_letter_id |
|       258 | Sigur Rós |               3 | 
|       620 | Guru       |              15 | 
2 rows in set (0.00 sec)

wordpress I hate you

Filed under: General — Thomas @ 13:52


After seeing that I possibly might have had some exploits run on my site again, I upgraded to wordpress 2.8

After reading up on hardening wordpress, the official site mentions AskApache, some plugin that helps hardening. I'm not too sure about it yet, because it wants to be writing .htaccess files in my directories and for that I have to open up more than I would want. But hey, let's give it a go.

At some point it creates a username and password that you choose. I go on and configure stuff, not knowing very well which of its many modules I'm supposed to activate, or why.

I forget about it, and ten minutes later I check my mail. I have a mail from AskApache. With my login details. And the password in plaintext.


Is the WordPress security model just fundamentally broken ?

5luendo birthday party

Filed under: Fluendo,Releases — Thomas @ 10:37


Yesterday was cause for celebration. We got together to celebrate five years of the Fluendo Group!


The picture quality is bad, and not everyone is in it, but I just took it on a whim after marveling how many people were there. I didn't even know all of them - yes it's gotten to that point. 67 months ago I arrived in Barcelona without the company even being created...

We celebrated with mountains of cheese and rivers of wine which in the first year would have lasted us a few weeks and now only lasted an hour.

As magical accidents sometimes happen, today is also the day Fluendo received the certification confirmation from Dolby for our DVD player. It didn't take long to land in the webshop, so finally our DVD player is up for sale! So you know what to get us for our birthday - a shop checkout with the dvd player in your cart.

Good timing - that means that at this year's GUADEC/Desktop Summit I know what the answer will be to one of the most asked questions I get.

This is the first GUADEC I'm going to with Kristien in tow, I hope she can manage. I'll be there from Monday through Friday, because the week is bookended by two weddings. Looking forward to a GStreamer summit on Thursday discussing 1.0...

Next Page »