[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Filed under: General — Thomas @ 12:52

2003-12-31
12:52

Insomnia

For some reason I can't sleep tonight. It's Sunday and work starts early tomorrow. I had some bad sleep over the whole weekend. But this isn't fun. I blame it on personal problems. Most of the times I'm very optimistic and I feel in control over my life, but lately life has taken over and I don't feel as well anymore.

Maybe it's time to Do Something (TM).

GStreamer

We did some great bug squashing over the last week. 0.4.1 is going to be very solid. We resolved all crasher bugs in RhythmBox, and the player is getting amazingly good. I still think hadess is wrong for choosing xine over GStreamer for totem. I can understand he wanted results fast, but results with GStreamer are just around the block. The player is getting to be great.

Joe from Ximian told me about a great hack that Alex made for nautilus using GStreamer. Nautilus can now thumbnail a movie by grabbing a still from it using GStreamer, and when you mouseover, the video plays in place of the thumbnail.

I got the first part working - Check the Nautilus screenshot which shows two of them.

Alex is going to send us the working final patch. It'll be interesting to see how we can come up with a good way to integrate this.

On a side note, as of this week I have what every self-respecting netizen should have (though I'm about eight years late with it, but seeing my friends' websites from back in the days, I somehow don't regret having waited ;)

Filed under: General — Thomas @ 12:51

12:51

Weekend

Steve Baker came to Gent with his wife, Bronya. It's the first time I tried showing people around the city. It went ok, apart from me not really knowing all of the touristy bits well. For example, our famous castle is way to expensive for foreigners. For people living in Gent, entrance is actually free.

We went to a few bars, had some very good Mexican food, and went on a boat cruise through the old town on Sunday.

Steve's going back to New Zealand in about two weeks. That's too bad, he's a great developer, and it'll get lonelier on irc in the morning. If Uraeus is actually going to Australia as well, I'll end up being all alone there.

Friday

Went to the thank-you get-together from the couple that got married. wardv was there as well - he should be on his way to Brighton as I write this. Sometimes I envy him for being able to leave stuff behind and go somewhere else. I've been thinking about changing jobs and getting a different one or even get a doctorate on something I can do with GStreamer. Hey, wouldn't it be nice to spend one year of that in Boston at MIT ? One can dream.

GStreamer

Wim is finally back from his one-month trip. He made his re-entrance by starting work on an optimal scheduler which is both faster and removes some constraints on applications (like having an upper limit on the number of plug-ins in one thread due to stack space limitations). Very good work ! Hope it settles down quickly, because this is just what we need. And it's nice that someone can actually work on something very internal to GStreamer and have it be instantly useful for all of the other things as well.

If things go well, we might do a release this weekend. I've been gently prodding my Ximian contact for the GStreamer Red Carpet channel. It just needs one more change for it to be totally functional.

To be fair, I still miss Erik. I wish he'd find some time to work on GStreamer some more. We need to make some big decisions real soon now.

Damien asked me to do a presentation at FOSDEM, a Belgian open-source conference, next February. I'm definitely going to do that if I'm not gone skiing. I hope to be able to do a Dave/Dina presentation as well.

Work

Had huge trouble last week. On Tuesday, a hard disk crashed in one of the two broadcast computers. I was working at home and got a call around noon saying there was trouble. I told them to run a disk check, and if necessary go out and get a replacement drive. They brought in our outside Windows expert, and he looked at it as well. At seven o'clock they rang me again, saying they couldn't do much about it, and if I would buy a hard disk and come over. At seven in the evening ! They didn't even follow the simplest advice.

This time around my boss actually offered himself to compensate with a free day off if I did come down for the evening and fix it.

Well, luckily I knew a shop that would probably help me out, so I bought it and went on my way to Brussels. I started out by trying to salvage the two main partitions with Ghost and PartitionMagic. Ghost wouldn't even start copying because of disk errors, and PartitionMagic had the "copy partition" option greyed out.

So I ditched those two, booted with a linux rescue disk, partitioned the second disk to have the same size partitions as the original one, and transfered the C: and D: partition.

Linux - Windows : 1 - 0

After that, booting wouldn't work, since I didn't transfer the MBR. I thought Windows 2000 would have a repair mode, so I used the Windows CD to try and restore it. It had some command-line tools to fix the MBR, but those didn't work. I tried various Repair options from the boot CD, but none of those worked either. Rats. Does anyone ever check those cases at Microsoft ?

So I gave up again, booted up with grub, and typed in the right commands manually. Windows 2000 booted, and that did the trick to fix the MBR, because after that it booted flawlessly.

Linux - Windows : 2 - 0

I thought I'd have a lot of work reinstalling the broadcasting software we use, but I just copied the programs from the other broadcast client and changed some configuration data. After that, everything seemed to work.

So I solved an important problem in about six hours without any stress and with a lot of waiting. That made me feel good about my job and my role in it.

After that, I got my boss and my collague to go out for ice cream.

Of course, during the week we had some major problems due to a very silly preference setting that didn't get carried over which caused the software to move around audio files when you access them in one application, which causes all of the other apps not to find them. Duh. That taught me a lesson about the cost of changing preferences. Something I'll need to remember in GStreamer and other projects as well.

libhnj

Also for work, I needed to find a way to hyphenate sentences to send them out over RDS (the text thingy in your car radio).

I was surprised to not find much open-source stuff related to it. aspell didn't seem to have anything for it. I looked around and found Python bindings to libhnj. After some digging, I found that code, and it was written by ... raph ! Nice to see my world getting smaller ;) The code looked unmaintained, and I couldn't get it to work. It's not even mentioned anymore on his web page. I dug into OpenOffice as well, and it seems the code that does the hyphenation is based on libhnj as well !

So that convinced me to put in some more work to understand it and get it to work, and after some time I was able to hyphenate dutch words.

I didn't get a reply from raph yet on my first mail. So now I'm thinking of taking the original code, cleaning it up a bit, making Perl bindings for it and releasing it again. Raph, what do you think ?

URGent

In my spare time, I also work for a college radio station in Belgium, URGent. We're starting live broadcasts again next month. There was some discussion as to a new programming format they want to be using, which made me realize we don't even have any automatic programming system anymore.

The previous one was one I wrote for my thesis and, by current day's standards (both general and mine), it's pretty brittle. The last time we tried to fix it we just kicked it over real hard and decided to scrap it. We just forgot we were actually planning on making something new to use six months later . So we went in panic mode. Sweaty fixed some more DAD stuff and wrote a show scheduler.

And I started working on gstreamix, a back-end mixer using GStreamer and xml. The first bit is already done: it reads it's configuration data from XML, and you can create any given set of output channels. Currently, I have

  • sound card (to actually play it out on-air)
  • store to disk (in ogg format)
  • stream to icecast (in two qualities)

and I hope to add streaming to icecast2 soon as well.

Now I just need a lot of work on the input stage, which would actually do the mixing. But it's just a lot of fun to code with GStreamer.

Dave/Dina work week

I made some excellent progress on the Dave/Dina project during my half-week off. I now have test .iso's that seem to install OK. I also updated everything to Red Hat 7.3 and the 2.4.18 kernel. Now it's time to start going over all of the packages again, fixing small stuff, and actually completely installing Jeroen's box (he's our first "customer"). I've seen chakie mention his media project, so Chakie: check us out as well, let's see if we can work on something together.

On the content management system - I was going to switch over to PostNuke, but the latest rumblings in the community have thrown me off for now. Not sure what I should do about it now. Should I switch to Project X ? Or will that take months to complete still ?

Pukkelpop

Pukkelpop was good. A few pictures of it are online. And yes, Guns 'n' Roses actually showed up.

Bands and people I need to check out are Maximilian Heckler, Leaves and Trust Company. The next monday I bought seven CD's, including the very good Sparta CD.

Filed under: General — Thomas @ 12:50

12:50

Dave/Dina

I took a week off from work this week to clean up bits of my life and work on Dave/Dina. I've made some excellent progress - I was able to take apart large chunks of Anaconda (the red hat installer), and replace text, images, and functionality. It's my first experience with python, don't know yet what to make of it.

Red Hat also has some scripts included with Anaconda, which I only realized halfway through creating my own. So I switched and started customizing those. They generate all of the boot disk images, cd boot images, and so on by themselves, based on the RPMs in the distribution dir. Basically, the whole process bootstraps itself, which is pretty impressive.

Meanwhile, I also switched to Red Hat 7.3 packages as a base, and reworked the kernel packages, to include a kernel-BOOT rpm which also has the right banner. As I understand Red Hat's policy, they want you to remove all references to Red Hat from your custom distribution so as to not reflect bad on their name. I can understand that, of course, but you have to know this stuff, otherwise you'd think they WANT you to acknowledge you using their stuff.

I have run into a bit of a problem though where I get a GdkWindow error during the install, which doesn't put me in Pdb, but just reboots the machine. That's nasty. So I started adding debug code all over the place to at least get some feedback. I wish I could make these errors non-critical, the way you can for glib, so that at least I can get some sense of where it's at.

I've also resolved myself to using VMware to simulate the install. It is a LOT faster then using a real machine. Basically, you connect the bootnet.img to the floppy drive, which alone saves you a minute in loading time each try.

I'm doing all of this because a friend of mine bought all the parts for his own machine, so I'm guilt-forced into finishing parts of this up. That's great, I needed this kick in the butt. I hope having an actual .iso image that can be installed might get some attention and bring in new people so we can actually start working on planning and implementing some of the features better.

I find it amazing how much you can learn over time. There' s stuff I do today on this project that I wouldn't have dreamt possible last year. It's also fantastic how stuff you do on other projects helps you immensely, and how much you can actually draw from your own experience.

For example, using bitches, the RPM build tool I wrote for GStreamer, helps me so much in Dave/Dina as well. It's simply amazing how much time this sort of thing saves me.

The reverse of this is also true: when I look at scripts I wrote five years ago, or code for my thesis, I'm ashamed ;) So the big question is : What will I think five years from now about stuff I did today ?

GStreamer

Slowly gearing up for a 0.4.1 release. Doing lots of bug fixes. I'm personally concentrating on <hype word>Out-of-box experience</hype word> for end users. There are some really simple-to-fix bugs for first installs which all of us never encounter since we all have GStreamer on our machines since ages. They're embarassing, but very educating to go through. Every project should do this.

wlach, thanks for the good words on my presentation. The latency issues during that demo are totally normal, however. Maybe I didn't make that point clear enough back then. Suffice it to say that GStreamer has everything you need to control latency the way you want it to. Latency is an often misunderstood issue. The demo didn't have any sort of latency control at all. It just sent out data each time the device was able to receive. There was no sort of buffering at all.

Basically, it's always a tradeoff between "hiccups" or underflow and buffering. Increase the buffering and you decrease the risk of underflow. Of course, increasing the buffering can be bad for your responsiveness, unless you take measures. These are all application-level decisions. GStreamer provides stuff to be able to do this, but doesn't enforce any kind of policy on that topic.

So the demo was basically bufferless. It was GStreamer in it's raw mode. I could have added a buffer in the pipeline, but I was just too lazy.

Pukkelpop

Going to the Pukkelpop festival today. Great stuff - going to see a bunch of good bands, including the Breeders, And You Will Know us by the Trail of Dead, Jimmy Eat World, Promise Ring, Jon Spencer Blues Explosion, and more. Even Guns 'n Roses are supposed to appear !

I wish I had applied for an interview with the Breeders sooner. As I said before, Kim Deal is just too damn sexy. Hope I'll get to meet her today if I get there.

Filed under: General — Thomas @ 12:49

12:49

Gnome Stuff

Today I wanted to check out the development version of the Gimp, because I want to try and move as much of the applications I use to the sweet Gnome 2 look. So I dove into garnome again and made the gimp target (without allowing it to build it's dependencies, since I already have those). I checked my Applications menu, and there was an entry there ! Tried it, looks very sweet, a lot better-looking than gimp 1.2. Anyway, I proceeded to drag the entry in the menu to the panel, but it refused.

So I right-clicked on it in the menu, and got an error instead of an option menu. This puzzled me, so I looked for the .desktop file and noticed that the gimp.desktop file was a symlink, and none of the others were. So I thought to myself, this should be an easy bug to fix...

So I went through some of the stages of being a good Gnome developer :

  • Check bugzilla - couldn't find any bug referring to symbolic links in gnome-panel
  • Check gnome-panel source code - noticed that the error dialog popping up is the result of a call to gnome_desktop_item_new_from_uri
  • Tried to use the LXR browser at Gnome's developer site, but noticed that it wasn't providing me with any results
  • Checked out gnome-desktop, which seemed to contain that function
  • Saw a Gnome-VFS function call that actually seemed to open the file, so checked API docs to see what the options were
  • Added an extra argument to the opener indicating that symlinks should be followed
  • compiled, reinstalled, restarted gnome-panel

Yay, that worked ! I could drag a launcher to the panel.

It all went downhill from there ;) I checked out the CVS version of gnome-desktop and noticed that the fix I put in was already there ! So I went through the changelog and noticed that Jacob Berkman fixed my bug a month ago. I read through that bug report - it apparently took some time to figure out where the bug was hiding. Well, no patch from me then ;)

So what did I learn from this ?

  • Doing bug reports is really helpful in any case
  • Some bugs are really easy to fix, and it is worth a fragment of my time to at least investigate if it could be an easy fix or not instead of working around it
  • I need to spend more time using Gnome's Bugzilla to actually figure out if the bug I have is already reported or fixed
  • I learnt some more of Gnome's internals
  • I might have what it takes to actually fix system bugs in a desktop environment.

Best thirty minutes I spent this week in any case !

Vorbis 1.0

chipx86 : There are indeed problems with the vorbis 1.0 packages, as I mentioned before here. I have had some suggestions from people on how to fix them, and they're worthwhile avenues. The question is if it's actually worth the effort in trying to implement this temporary solution before major distros catch up and rebuild depending apps. I might need prodding if you feel this is the case.

Filed under: General — Thomas @ 12:48

12:48

Life

It's been three days of highs and lows. The sort of stuff that makes life worth living.

Work

I got treated like a kid by my boss at work. At one point he actually told me to shut up because he didn't want to hear about it anymore.

The thing is, it was because I was supposed to program something on a hardware device, which he thought was possible, and which I confirmed with the manufacturer to be impossible. So I tried other ways, but none would work or they'd be very ugly hacks that would fail in lots of other ways. My mistake was that I didn't call him up directly to let him know.

He was very mad because, from his side, he figured my job was to come up with a plan to do what he wanted done, whatever the cost. In his mind he needed a fix for this problem very soon, but since he left me out of the loop on all of that, not telling me how important this is and all, I made the wrong call and continued work on other urgent matters.

So really, the only thing I can come up with I did wrong is I forgot to call him soon enough. He had no call in lashing out like that; he uses me too much like a band-aid he applies when he sees no other way out.

Maybe that's a sign that I should start considering options. I don't get paid enough to be treated like this. The reason I'm doing this job is because it happened to be challenging and I got the respect I deserved for the job I did. If those reasons are gone, then the sub-par pay isn't going to cut it.

Vorbis

Later on in the night, just before going to bed, I see someone dropping in in the #vorbis channel and complaining very whiningly about them. Bear in mind, it's the first person dropping in experiencing the problem he has, but he assures us that he has tried helping a lot of people with the same problem. Now, the problem is that the rpm's I made pick up an alsa library dependency. I provide RPM's for that at the GStreamer apt repository, as I explained in the readme I put up with the RPM's. The readme never made it onto vorbis.com, and I suppose that would've helped this guy complaining.

In any case, he was very abusive to me, told me I didn't care about users at all, without knowing me, and taking it way too far. He got me really mad, and I went to bed being angry about how people sometimes treat you like shit for the work you do voluntarily. Now, this guy pays me even less than my boss, so I'm going to ignore him in the future.

Wedding

Yesterday, one of my close friends got married. They asked me to read in the service, even when knowing about my track record for being late. I was on time ;) Everything went great - the wedding ceremony was good, the party was excellent. For those that were there or just plain curious, there are pictures. We danced all night long, and it was a rare treat to be among friends and just have a lot of fun. It had been some time since I had such a good time.

Lazy Sunday

Today was the perfect lazy sunday afternoon. Got up really late, uploaded pictures, rented a great movie, Speaking Of Sex (which rates an undeserved 4.9 at this point). It was hilarious and very whacky.

My girlfriend made excellent burrito's (she's the best cook), and all day long everyone was playing SSX Tricky on the Playstation, yelling and shouting and just having a good time. See, you can play these games with a lot of people without ending up in arguments...

« Previous PageNext Page »
picture