[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Filed under: General — Thomas @ 12:55

2003-12-31
12:55

perl

Coding up a special-purpose application for the radio station I work at. I was originally considering doing this in C, because I've been doing a lot more C over the last year, but found a few nice perl modules I could use.

Then I decided to take this opportunity to learn OO perl and writing modules that way, and it's surprisingly straightforward. I imagine that I'm pretty close to coding python the way I'm going now - so I should learn that soon as well ;)

Anyways, this program needs to send commands to a device over RS/232, and as with any device you have to make sure commands are sent one by one. So I started implementing some queueing stuff, and then I realized I had better use a separate thread to actually process this queue one by one to send it out.

So I came up with a particular piece of Perl Black Magic (at least, that's what it looks like to me) : fork in the object's constructor. This way, the child never exits the constructor at all, and the child gets killed when closing the object. I didn't think this would work, but it just did straight out of the box ! I used some IPC module to actually make this queue object (which is a hash) usable from both threads, and it's been running stably ever since.

Sometimes you gotta love perl.

As a side note, this application also needs to do some string processing and perl is really terrible for that. I hadn't noticed that ever before, but looping over a string in various directions is just so much easier in C.

GStreamer

Release went very well. A bit saddened to see the Rhythmbox guys deciding to not want to release any time soon - one of the reasons I worked so hard on the GStreamer release was because of all of the people asking for good RhythmBox packages.

Currently adding better error feedback to the player, after that it can be released.

Dave/Dina

People are starting to get interested. I had two people from Alcatel (the company that invented and productized ADSL) come over to take a look at it. The fun thing is, everyone who sees it is incredibly impressed with it. I wish more people would help out though. There's a lot of stuff still to be done.

I see people like chakie work on similar things here, and lots of these projects start popping up just about everywhere.

In any case, I'm having another week off next week, and I hope to release a good test .iso image in that week. Shouldn't be a problem, just about everything is in place already.

Red Hat

Psyched to know that the new 8.0 is coming out next week (this was not a pun btw, only realized this after typing ;)). Like so many I had found a link to the one ftp mirror that forgot to set permissions and managed to extract about half of the RPM's. I was hoping to get GStreamer built for it by the time it came out, but I guess I'll have to wait.

I look forward to the new fontconfig goodness, but I'm pretty sure I'll be turning Bluecurve off. I think it's great what they're trying to do with it, I just think it's incredibly ugly and as cheap a knock-off on the "kiddie toy sparkle look" as the default WinXP theme is.

Really, grown men that aren't kids themselves shouldn't try to make things look like kiddie stuff, or end up making things look like someone trying to make it look like kiddie stuff (in case the first was not the goal).

Comics

Recently discovered Sluggy Freelance. That's one very funny comic - and it has about five years of backlog I can wade through. I dread the day when I hit 'today', though, because from then on it tends to get rather like an addiction you can't get rid of.

Filed under: General — Thomas @ 12:54

12:54

GStreamer

We all managed to squash most of the bugs we still had outstanding. I branched for release and started testing, everything works fine so far. I only had to fix a few minor issues, and I worked some more on packaging some dependencies properly.

I also finally managed to package a proper vorbis compatibility rpm.

People who want to give us a hand by testing the prerelease are welcome to do so; get either prerelease tarballs or, if you're on Red Hat 7.2 or 7.3, check out our apt repository which now also contains a test repository, which will probably contain in the future newly packaged dependencies, prereleases, and cvs snapshots.

If all goes well we can release tomorrow. After that, on to package gst-editor and gst-player properly. These days thinking up a good release name is the hardest thing of the release process, which is good.

Sad to learn that the rhythmbox guys have decided to not release in the near future and get things totally stable first. I can understand their reasoning though. It's just too bad because I keep getting people who ask for one, and even more so I've used rhythmbox from CVS for four days straight and it hasn't given one error.

I just hope the problems they seem to have internally in the code get fixed as soon as possible so people can enjoy the wonder that is rhythmbox.

gcc

We've been having issues with gcc 3.x and GStreamer, because we compile with -Werror by default. gcc 3.x has this new behaviour where it gives a warning if you add an include dir with -I that's already in the system include dir. This happens for a lot of dependencies through their pkg-config and .m4 files. I have some thoughts and questions on that and I will post them tomorrow, because I'm interested on what others say about it.

Got into an argument with hadess over the use of -Werror, he thinks -Werror is bogus. My take on it is that -Werror points out bits of code that are dodgy and ought to be properly inspected and fixed to not give a warning anymore. He reckons the warning that GStreamer had is totally bogus, and thus we should disable -Werror by default.

I don't know how it is by other people, but I found disabling -Werror just caused people to ignore warnings completely, and the times I disabled it on projects of my own led me to not find the actual error when I had one. So I'm glad -Werror is there and that we enforce it. Some of the ppc GStreamer developers seemed to just always disable -Werror and thus the warnings never got fixed.

I might be wrong about -Werror, but I think it's a valid tool, and disabling it to avoid one type of warning would cause us to miss all other (and possibly valid) warnings as well. In short : if there's a warning, either the code should be fixed or the tool that generates the warning should be fixed.

On the plus side, David Schleef just commited a fix for the cause of the warning, and gave a good explanation of why it generated the warning and what could happen because of it. I feel strangely vindicated ;)

Filed under: General — Thomas @ 12:53

12:53

Stupidity

is when you write C code like

   if (access (path, R_OK != 0)) 

then spend half an hour trying to find the mistake, and having strace make you realize it should have been

   if (access (path, R_OK) != 0) 

instead...

Sigh. I guess I'm just too tired to do useful work today.

Filed under: General — Thomas @ 12:52

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.

« Previous PageNext Page »
picture