Present Perfect


Picture Gallery
Present Perfect


Filed under: General — Thomas @ 11:19


I am confident this is a great piece of software. I am confident that this piece of software works great on some machines.

But something inside me wishes it would demonstrate both qualities on my machines. Each time I try it, I fiddle with it for a few minutes, and give up in disgust and go back to system-config-network, or manual configuration.

This time around, though, claims of it being properly fixed/rewritten/hugely improved drew me to trying it again - because I'm sitting at my parent's place in Belgium where there is one wired and two wireless networks (for this house alone), as well as a slew of other open networks in the street that all seem to have NETGEAR as the ESS-ID. So, why not give it another try ? I'm on FC 4, the instructions explain how to install this wonderful new version on FC4, this should be easy!

The first thing that always bothers me about NetworkManager is the name. Some people feel that programs with capitals in them are cute. Those people live on the other side of the fence from where I live.

The second thing is that I don't know what to start after installing it. I can't find anything in the menus that brings up NetworkManager. I just checked again - there is Desktop>System Settings>Network which brings up system-config-network, and there's two things I never noticed before, but only just now noticed because I tried to look really hard for NetworkManager - Applications>System Tools>Internet Configuration Wizard, which brings up internet-druid, and Applications>System Tools>Network Device Control.

Ok, let's try Net[tab] again. Start up NetworkManager.

[thomas@thomas ~]$ NetworkManager
You must be root to run NetworkManager!

Oh, excuse ME! There's no real NEED to use exclamation marks to get your point across!

Run as root. It doesn't say anything, nothing happens. What else does Net[tab] give me ?

Let's try NetworkManagerInfo. Pops up a notification area. Shows me one network. Can't find the one I know is there.
/var/log/messages gives me

Oct 21 11:11:53 thomas NetworkManager: process_scan_results: assertion `res_buf_len > 0' failed
Oct 21 11:11:53 thomas NetworkManager:           (): nm_device_wireless_process_scan_results(eth1): process_scan_results() returned an error.
Oct 21 11:12:13 thomas NetworkManager: process_scan_results: assertion `res_buf_len > 0' failed
Oct 21 11:12:13 thomas NetworkManager:           (): nm_device_wireless_process_scan_results(eth1): process_scan_results() returned an error.
Oct 21 11:12:18 thomas dhcdbd: dbus_svc_init: dbus_bus_request_name failed: org.freedesktop.DBus.Error.AccessDenied Connection ":1.11" is not allowed to own the service "com.redhat.dhcp" due to security policies in the configuration file
Oct 21 11:12:18 thomas dhcdbd: Failed to initialise D-Bus service.

Switching to the network it discovers doesn't work, and of course that means I'm left without a network connection again.

Sigh, It's like February, 2004, and 2003 all over again.

I know I shouldn't complain, and help by bug reporting or bug fixing, but on a stock FC4 system I should be able to expect it to get some simple basics right, no ?

Oh, and btw, the service script is also called NetworkManager. In a directory of 78 files that, in good tradition, are named in lowercase, NetworkManager had dropped two scripts called NetworkManager and NetworkManagerDispatcher. I'm sure people will say I'm nitpicking and this is a trivial thing. For me it's just a sign of how NetworkManager has, as goal number 1, to be "different" enough from everything else. A goal in which it succeeds admirably by being even less functional, for even more time, than the tools that I've grown to work with in Fedora.

I am sure I can be convinced, six months from now, to try it again, when someone praises it highly enough. Until then.

things that suck

Filed under: General — Thomas @ 19:18


In no particular order:

  • taking a sip of your drink while simultaneously making a sudden forward movement because you try stepping over something, causing the drink to go down the wrong pipe
  • changing the kitten's litter box, but when you pick up the bag of kitty litter in the outside closet, you pick up only the handles while the sand stays on the floor because the floor had gotten wet and the sand sucked up all the water through the bag, causing it to tear
  • ld on mingw not liking a leading ":" in your PATH, which libtool puts there because it doesn't check for empty variables when adding to a variable, and wasting way too much time tracking down the cause. Need to submit patch
  • having an argument late at night when you both should be asleep right before the morning your girlfriend is leaving for the Old Country


Filed under: General — Thomas @ 15:29


Didn't post much of late - various factors conspiring against me, the biggest one being me.
Being poked repeatedly to do something about it, so here goes. A quick rundown of the essentials, possibly followed by separate posts.


Stuff has happened. I became a godfather. His name is Arthur, a solid Flemish name. I'm going over next week to see him for the first time. No pictures online yet, the parents are old-school :)

Congratulations to Jeroen and Annelies - they had their second son, Finn. The pictures look good, but I'm not sharing on account of the father's paranoia towards bad people.

Sad when friends break up - my thoughts are with you, you know who you are.

Lunya had her ovaries removed. She was very well-behaved when she had the cone on her head - maybe we should keep it around for when she's too rough.

After my lamenting my own ignorance of fresh music, I found a bunch of new bands I like. I'm not yet sure if I should be sad that I'm getting most of my musical recommendations from this brat, but what can I say, the lad knows what's good.

Among other bands, I've picked up on Art Brut, the Departure, the Editors, Go Team. I've enjoyed new albums by Greg Dulli, Elbow (simply astounding), Sigur Ros, Nada Surf (to a lesser extent), dEUS (Belgium's back).

In the mean time, one of my favourites, Six By Seven, has split up. Bastards.

Lots of concerts to look forward to over the next few weeks - Bloc Party, dEUS, Coldplay (shut up if you have an opinion), Art Brut, Nada Surf, Editors, with possible seconds of White Stripes, Rufus Wainwright, Daniel and the Johnsons, Backstreet Boys (?!), Black Eyed Peas (why not), and a whole bunch of others I'm forgetting.
It got to the point where I had to make a list for myself and I freaked out my co-workers with it.


Good stuff is happening all around me at work. But meanwhile I was getting the feeling of just not being able to complete what I was working on. Andy's image of the "big ball of mud" is what you need to keep in mind here. You climb the ball you had left yesterday and something underneath slips out from you that was broken by some other change. You try to add something to the ball and you find that there's nothing supporting it and you need to dig all the way down to add it and then go back up. It brings you to the point where you cannot fairly estimate how long finishing your thing is going to take.

I had several days where, to write the next two lines of Python code, I had to spend a few hours debugging a problem, some more hours adding/fixing stuff in C, then checking and writing the two lines of Python - only to run into the next problem.

While personally I do not mind this approach - it ensures that the layers you're using are getting proper testing and fixing and are only improving in quality - it is very painful if you want to complete something. Every day you take half an hour to update all of the underlying code, check some changes, run the testsuite (thank God for me seeing the light on testsuites the past year), figure out if anything broke, and try to add to the project.

But that's not even the worst part. The worst part is having to test this stuff with an actual phone that

  • doesn't have any logging
  • has a crappy user interface
  • gives one out of three possible error messages - so it's useless for feedback
  • takes a long time to do anything at all
  • fails to get a stream even when the stream is fine

Seriously, no debugging, no logging, no way to tell what's going on, not even being able to be sure that if the phone doesn't show anything, I broke something ...

I'll be glad when we have a first working version.

It got to the point where I was starting to doubt myself and felt like I couldn't achieve anything useful anymore, with everyone around me hacking up excellent stuff. So I took a weekend for myself (sorry Kristien) to hack on something of my own choosing to see if I could still "do it". The thing in question was something I want to work on to test synchronization over the network. I wanted to combine GStreamer and Twisted to expose GstPipelines over the network to one application. As a first run, I wanted to get the excellent seek example running over the network, so I could control the application running on my desktop from the laptop.

With some fixes to the python code for the seek example, some deep digging into Twisted's serialization layer to be able to serialize objects with both methods and state, and a bunch of hacking and abstracting, I had something that nicely seeked across the network. Phew - so it wasn't just me.

As a second challenge for myself, I've started looking at GStreamer on Windows. Sebastien (Julien's brother) had been working on it for a while and had passed by the office to help me set up a buildslave and explain how stuff works. It was actually challenging and, in a weird way, fun to get GStreamer to build on Windows. I'm lucky I had help from Sebastien, and we could use the work of some very smart people before us - Steve Lhomme, Tor Lillqvist, the MingW people, ...

The reason I want to do this is to put up a buildbot so we figure out platform issues immediately. In the past, we've had some people throw some patches or build files at us for Windows, and then they would just bitrot until the next person came along. They also always had strange requests or problems that seemed to be hacked around in the end- I wanted to see if I could go over all of that and fix stuff properly. Also - there are various ways of building stuff on Windows, and everyone had their own preference, and nobody knew what the "best" way was. You can build stuff with MinGW, CygWin, VS6, VS7, the last two of which with or without solution files, or with Makefiles, ...

I've also set up a clean VMWare install at home to try out stuff, taking notes as I go along (which I'll probably post once I've gone through it all). At the moment, I have a VS6 build working from fresh CVS, and my MinGW build is close to working. There's lots of silly little things that caused GStreamer to not work (the most obvious one being that any printf-style function with a %s crashes when passed a NULL string on Windows) or have issues, and it's fun to apply the stuff I've learned to a new platform.

The other reason it was fun is because it proved a nice counterbalance to my daily anal-retentive self when it comes to software development. Windows is like the wild wild west. The rules are completely different for developing. There is no package management system. You add crap all over the place until you have a huge ball of stuff with bits poking out and you can't be sure what goes where. But there's no other way - that's how it works. It feels like being an LFS user, and it's ok because that's the only way to make it work ! You install a version of libtool in one environment, but it has some bugs, so you add some other version for some other environment to your path, and see what happens... Basically, you just throw random stuff at the problem, and poke at things with a sharp stick, until it works.

Of course, after two days of anarchy, I made sure I cleanly separated several different tools on my clean home install, started writing batch files instead of tweaking environment variables, and so on. But the mess we made on the work machine was fun to make.

So, with these two challenges under my belt, I can safely say that it's not just me. My actual work project is *hard*. I'll just have to poke at it harder, and refrain from projecting a finish line.