[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Filed under: General — Thomas @ 14:37

2003-12-31
14:37

Visit

A disheveled young man knocked on my door last Wednesday claiming he was a friend of 'the GNOME release manager' and if I could put him up for a few nights, together with his girlfriend. He was tired from a long trip from Australia to Europe and all through Europe. So I took pity on him and took him in.

In the evening my home server started beeping loudly again, and he immediately came to the rescue. First he helped me get lm_sensors running on the machine, then we used gkrellm to check on the temperature. His hunch was correct; at 60 degrees C it started beeping. He started to fan the open computer with a book and made it drop to 50 in a minute, which stopped the beeping.

So that explained why it was crashing. Now to see what caused the CPU to go crazy. Which was pretty much my own dumb fault - I was running Xvnc on the machine for some applications, and the screensavers take it to 100% after a few minutes.

So taking in a complete stranger already paid off on the first day. Of course, the second day he took over the PlayStation and Entered the Matrix. I hope he gets out of Tunnel A7 by the time his plane to Australia leaves.

It was nice meeting thaytan and Jaime, hope they have a good flight home.

Fluendo

Nice to see us getting a warm reception. It's also nice to be able to code a little again. I checked GStreamer's tcp elements and found they were done differently than I would expect. The server was done in the source element, and the client as a sink. This means that you need to start the consuming pipeline first, and the producing pipeline after that. Also, the server was set up to be able to handle multiple connections, but to me it makes little sense to have the start of a pipeline take data from multiple elements.

The code was outdated too, so I made a bunch of new elements, where source and sink are implemented as both client and server. Then we tested them by streaming videotestsrc. Now I need to figure out how to add them to the testsuite properly.

I made all the elements blocking, since our filesrc and filesink are blocking too. But this might not be what we want.

gnome-media

So, Ted passed on maintainership to Ronald and me. I commited a few of the easier patches for a 2.6.1 release in time for the 2.6.1 GNOME release. Now we need to go through the rest and pick out the ones we can apply before branching for 2.7

Filed under: General — Thomas @ 14:36

14:36

Weekend

Had quite a productive weekend. First of all, I got off my ass and tried out the Intel Pro Wireless 2100 drivers on my laptop. I had bought driverloader, which worked quite well, but I'm getting tired of having to download stuff each time I upgrade my kernel, and of course I actually forget to download the RPM before upgrading in the first place.

Of course this gave me a good change to test my kernel module packaging strategy again. Fifteen minutes of work gave me a loadable ipw2100 module (without WEP, at first), just by running ./configure and make. Five more minutes gave me a set of packages for it.

Then, I enabled WEP and rebuilt the hostap packages from the QA submission queue at www.fedora.us. I had a problem with the function call being used from hostap not being versioned. After some thinking, I figured out that this was because the hostap package didn't include a hostap.ver file that actually does the symbol redefining. So I changed the hostap package to include that, rebuilt it for four archs and four kernels, and then rebuilt the ipw2100 packages for the same. And lo and behold, the packages worked. So if you have Fedora Core 1 and an ipw2100 card, *please* test these packages together with these..

Don't forget to download the firmware as per the instructions on the ipw2100 project site, and install it in /etc/firmware.

Next step is to update my kernel module stuff to 2.6, but I'm not looking forward to that. AFAICT from discussing with people it seems there is no decent way of building kernel modules against a read-only kernel-source tree. Moreover, Arjan seems to say that to build kernel modules for a kernel/arch combo, you need that exact kernel package installed as well. That will probably make it harder to do mass builds of kernel modules as well. Sigh :)

DocBook

I've been wanting to write a usable DocBook template tarball for quite some time. There are a couple of "guides" I'd like to do and every time I work on projects that use DocBook there is always something tripping me up. Between xmlto breaking in TeX processing for PS and PDF, or the docbook2 tools insisting on downloading SYSTEM identifier stuff from the net, there just is no foolproof way of building this stuff.

So, after a day of trying to write somewhat clean make rules and .m4's, I have a template tarball project that builds documentation, passes make distcheck, and easy to use in other projects. Yay me.

Fluendo

So, it's official: Fluendo is launched ! In a nutshell, we're going to write a free software streaming media server, on top of GStreamer, making it possible to do completely free software-based video streaming, using royalty-free codecs.

We decided some time ago to fund Xiph.org, since to reach our goal we actually *need* a decent royalty-free video codec. Theora is very close to what we need at this point; as soon as the bitstream specification is fixed, all videos created with that version of Theora will be playable by future versions of the library. This will hopefully have the same effect as the Vorbis Beta 1 release had for audio.

And even if it doesn't, it still enables us to provide this server working completely, for free, and hopefully, allow distributors of Linux to pick it up, distribute it, as well as the GStreamer stack with playback and recording applications. I can understand it doesn't make sense to do so if you can't distribute video codecs as well, so once Theora is ready to be distributed, I hope this changes the field a little.

Anyway, I'm pretty psyched we can announce all of this. There's always a fear of turning over to the dark side without realizing, but being able to start a company with these goals is exciting, and I hope we do well. We're moving in our new office this week, and our new collague is arriving next week.

The nice thing was being able to use my docbook-xml-template to generate the press release easily :) So the next one we do will just be a matter of filling in the content and running make.

Names

Ross is not the first one to link Fluendo to influenza. I really like the name, it took us long enough to come up with something that we liked, still had a domain name available, and not too much GoogleJuice. I'm wondering though if non-hypochondriac people make the same link between Fluendo and influenza ?

Also, Ross ran away with a "might happen" newsbit and posted it, probably to put some pressure on us to deliver :) All I can say is that we'd like to, but aren't sure yet if all the pieces will be in place.

Muine

Read Jorn's latest entry. Good to see Muine progressing. Only, Jorn is switching backends (again). I have a lot of respect for Jorn, and he's a talented coder, but I really have to wonder *how hard it can be to do some bug reporting*. The number of times jorn was in our channel, multiplied by the number of bug reports by him, multiplied by the number of mails to our mailing list, are easily countable on the fingers of my two hands.

People seem to think stuff should just fall out of the sky. Sometimes it does, but when it doesn't, it doesn't hurt to poke the clouds a little so they drop some more stuff you want :) How's about some simple feedback about the framework you're coding against ?

Filed under: General — Thomas @ 14:35

14:35

Easter Weekend

Over here Good Friday is a holiday too. Great ! Kristien's birthday, so spent all day together. Hope she's happy with the very lowcost present she got, to compensate with the high-cost one from our anniversary that she didn't seem pleased with (the present, not the anniversary.)

In the evening we went out to an absolutely wonderful Thai restaurant. Been quite a while since I had such good food.

Over the course of a few days I've seen a whole bunch of movies: Ghost World (Scarlett, yum), 21 Grams (scary, but good), True Romance (again, I love this movie), Liar Liar (I haven't seen a lot of Jim Carrey films, which means I don't get annoyed, so I liked this one), and Highlander (which is still one of my favourites, even if only for sentimental reasons), and 8 Mile. I must avoid catching hadessitis. And tonight we watched Sixteen Candles, which was ok-ish if only for seeing a really young John Cusack :)

For counterbalance Kristien also made me watch about 10 more episodes of Friends. Well, it was her birthday, she got to choose this weekend.

Had a great barbecue on Sunday too for Easter. Invited some friends over, experimented with roasting peppers to great success, and had a great day out on the terrace. I love the weather here, even though it's been flaky of late.

Dave/Dina

Finally ended up packaging all the bits and pieces for Dave/Dina to make TV/out work again with the new Matrox. That meant rebuilding kernel packages with appropriate patches and options, DirectFB from CVS, and some other stuff.

Played a little with an interesting application from someone that basically rendered a user interface as a filter to MPlayer. It's a big hack, and I'm not sure it's the direction I want to go in eventually, but it does work very well when you don't know how it works. Left me thinking about a lot of things. It's not ideal however because it won't be easy to get output from other applications (say, MAME) into that.

It does make me realize though that it really isn't that easy to get nicely output interlaced video on a TV from a bunch of applications.

GStreamer

Walters asked for new releases in time for Fedora Core 2 Test 3, so I went ahead. Releasing was so much less painful than before. I could easily tweak the spec files to rebuild packages to test, and everything worked out fine. So 0.8.1 of both core and plugins are out the door.

Streaming

Experimented a little with camserv, which gave me some trouble making packages, but after a few patches it agreed to be put in an rpm. I didn't like what I saw from the code though. Now to start thinking how to split up GStreamer pipelines to implement the same thing.

Fluendo

New office is almost ready. I get thrilled even only from seeing our name in sticky letters by the door :) We'll probably move in sometime next week.

Music

I went looking for two bands I have heard stuff off but haven't found CD's for here yet. I came up with their latest albums. The first band is Mew, a Danish band. Their music is sort of like My Bloody Valentine in sound, but more poppy, and with Sigur Ros-like singing, but in English instead of made-up-language. I saw them live once and really liked them, but never found a CD in a store. I must say it's a really good album (with a good Stina Nordenstam duet on it too) and I'll probably order it. The other one was by the Walkmen, which for lack of inspiration I'll describe as a mix of Interpol and the Strokes :)

Filed under: General — Thomas @ 14:34

14:34

Springtime

We had sort of crappy weather with lots of rain over the last week. More rain than in the three months before last week combined. But this weekend has been absolutely wonderful. We went out skating with a smaller group today and it was incredibly nice. A bit of sea wind, lots of sun, and pure fun. We passed by a square were they were setting up huge cranes for some construction work, and I noticed a van with a cable tied to a traffic light, with the traffic light being bent.

After some cluedo'ing we concluded that the van had reversed on purpose to pull down the traffic light in an angle so the big crane could take the place of the traffic light. I wish I could've taken a picture :) That's Spain for you - if the traffic light's in the way, you just bend it.

Dave/Dina

Finally made some time to finish up some new packaging. I finally figured out the right kernel magic plus DirectFB magic to make applications share the framebuffer, and have video playback be smooth again, and return to XDirectFB after exiting. It involves cvs of the linux-fusion module and DirectFB in itself at the moment, but it seems to work. Just rebuilding the whole stack of RPM's from the kernel to XDirectFB on just takes a lot of time though. On the plus side, the latest set of improvements to mach just help a huge bunch. Nice to see your software coming together.

Filed under: General — Thomas @ 14:33

14:33

GStreamer

Tracking Heisenbugs this week. The first one was that after my return from holidays, GstPlay wasn't able to play back anything anymore. I didn't really look into it much until I really got annoyed and decided to read some logs.

The first problem was missing return value checking in the libraries, giving the Totem user no clue on what is going wrong. I added some error handling for these cases. On bugs like these it's best to work from the outside in, and first fix the bugs at the top of the stack. If you fix the underlying bugs, you forget about the toplevel bug that "the user doesn't know something is wrong".

The actual problem seemed to be osssink failing to negotiate, and after some digging I realized some code was added while I was away to autoprobe the allowed sample rates. The log seemed to indicate that it wasn't able to play back any sample rate, and from that point on everything failed.

I added some error signaling code for this condition. Only after testing again it suddenly worked. This was even more surprising. I wasn't able to reproduce it since, but I'm sure if anyone encounters it they'll at least get a nice error dialog. So now it's a matter of waiting until it pops up again for me.

Does serve as a reminder though that we really need to take more care in the stuff we commit after 0.8.0 - it is impossible to predict how other people's hardware will react to changes we make if they're less than trivial.

The second Heisenbug is one where playing our Matrix test clip and seeking a lot of times can trigger an error where it fails to negotiate. Dolphy and I thought it was a race, but it turns out it really isn't. It's another bug that gets exposed sometimes because of a race. Basically our plugin is somehow failing to cope with a resynchronisation after a seek. It looks like the mad library handles the resync correctly, but we probably mess up emptying the internal buffer somewhere. As a result, each seek, even in audio files, triggers a whole bunch of resynchronisation in a row as it's misreading header information and changing the sample rate quickly. Only in some random cases this fails and throws an error.

Mad documentation is very sparse and our plugin isn't exactly crystal clear either, so I'm spending some time reading the code and adding comments to figure out what exactly could be wrong. It doesn't help that I'm constantly distracted by other things to do as well.

One of those is thinking of the whole media playback/licensing issue. We're starting to see some solutions to that problem but they will all take time.

GNOME 2.6

I really want to use GNOME 2.6 as soon as possible, there are some enhancements that I'd like to use and there is code I want to test and fix. Over the last years I've changed and tweaked my cvs setup a little, and this time I made the last change I wanted to make. Instead of having the cvs checkouts and install locations under my user account, I decided to move it to /home/gnome and create a second test user. There are some things that really don't like having the same process from different locations for the same user at the same time running, so for those things it's better to run your cvs session as a different user.

So basically, I have jhbuild check out to /home/gnome/head/cvs and install to /home/gnome/head/prefix. I'll also be having a 2.6 jhbuild branch, in the same location, but with head changed to 2.6. Maybe I should write a short article on how I organize stuff and why, because a lot of people seem to run in various problems using cvs build tools and the resulting build.

Then I wanted to actually use it without interrupting with my regular X sessions, so I tried to use gdmflexiserver -n again, but it just crashes mysteriously on my Fedora box, bringing down the current X. After some searching and poking, it seems that this is a known bug (127780), and I pulled the fix from CVS and rebuilt the FC1 rpm - if you're experiencing the same problem, get this RPM and try it out.

So now my fake user is happily running GNOME head again, and I can finally fix some nautilus-media bugs again. And I get to recover about 5 GB of accumulated crap from my main user's gnome directories, including some stray patches I was going to still submit.

ssh key authentication

Some people gave me some tips. Apparently keychain is a daemon which allows you to authenticate only once per bootup, not once per session. Also, You don't really need the two files I created on Fedora Core; your X session is already run inside ssh-agent by default, and you can just add ssh-add to gnome-session-properties and you get a nicer, nonblocking dialog for your passphrase. Even better ! Thanks.

Life

Saw a poster this week for a great music festival at the end of May in the middle of Barcelona ! Beside Wilco, PJ Harvey and Elbow, the Pixies are playing ! I'll get to see them before all of my undoubtly jealous Belgian friends :) Too bad I have to be in Belgium the first day of the festival for my dad's thesis/graduation/professor thing, but as long as I can see the Pixies, I'll be fine.

« Previous PageNext Page »
picture