[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Filed under: General — Thomas @ 13:17

2003-12-31
13:17

mach

I had been thinking a few days about how a rewrite of mach would work. I wanted it to be RPM-installable, run like a regular command app, and allow me to script it to easily setup builds for more than one platform and more than one package.

I had probably reached the limits of what I could sanely add using make syntax. I was also getting increasingly frustrated with the way I had to work around issues and handle conditional constructs.

So, it was time to rewrite mach in a sane language. And it's also time for me to learn Python. I have the "Learning Python" book sitting on my shelf for a few months and it was time to put it to use. So, after writing up what I wanted it to do in general and how it would work, I started writing python, basing myself on jamesh's jhbuild script for GNOME.

It's incredible how quickly one can get something running in Python. I only spent about four hours on it and I already had at least a fourth of the functionality working.

Today I have a day off, so I'll probably keep working on it, hopefully getting it to a state where it can do everything the old mach could do, and having a lot of fun learning python while doing it as well !

LDAP

My parents want me to set up a home server for them at home. One of the things that they specifically asked for was some way to share contact information in Outlook and Evolution from every computer. So I started doing some digging and figured LDAP was the way to go. I started reading HOWTO's, guides, mailing lists, and so on.

Here's what I learnt:

  • LDAP is good for this because it's a directory service (duh) and tuned to more reading than writing
  • Evolution, Outlook and Mozilla all use different ways of storing similar data in the LDAP tree
  • A lot of people have attempted at creating LDAP schemas that sort of unify all of these approaches
  • Finding your way in a swamp like this is hard
  • None of these clients seem to actually let you *change* the same data on the LDAP server

I was particularly stumped by the last thing. It seems like such a natural thing to want to have working that it's very surprising none of the clients allowed me to. I know that Outlook allows you to seamlessly change data on the server through Exchange. That kind of explains why Outlook can't do the same to LDAP directly :)

I did find a 1.0 Evolution manual reference to the possibility of doing this in Evolution 1.0, but without much to go on. And looking at the same section in Evolution 1.2, it seems that functionality got removed.

So I started digging around Freshmeat for applications that could help me out, and found two web-based frontends: aldap and Rolodap.

I gave aldap a try first, because it seemed the simpler of the two to use. I also decided I'd spec it out for inclusion in Fedora if it was any good. The code looked a little messy, and I had to turn off stuff in apache I'd rather not (because that makes it so much harder to make an RPM work out of the box, not to say impossible), but other than that it did seem to work well. I was able to add contacts and browse them from Outlook and Evolution.

The problems for a decent RPM were numerous however. The RPM has to patch /etc/openldap/slapd.conf to add the schema, the code needs fixing not to use globals, and it needs an extra PHP page allowing people to create an initial database. I did the first thing (which might not be the wisest thing to do, but it does work), now somebody needs to do two and three :)

I mailed the author with my suggestions and he was very responsive. It's always nice when that happens.

Labour Day

To celebrate our day off at Labour Day, I invited a bunch of friends over to have a Slack Night the night before. We watched three Kevin Smith movies in a row: Clerks, Chasing Amy and Dogma. All three great, and it does add something to it when watching these in sequence. There are various cross-references, and Jay and Silent Bob are funny to see evolve (or rather, not evolve :))

Music

Eagerly anticipated the new Arab Strap disc, "Monday at the hug and pint". Great CD. And nice to be able to buy another CD that isn't copy-protected with stupidity.

Filed under: General — Thomas @ 13:16

13:16

brain loss Had a big set of yet-to-commit diary entries but lost it in my laptop's upgrade. sigh :)

Tango

A few months ago my tango partner asked me to perform with her in some college show they were doing. At the time I said yes without thinking too much about it. Afterwards, I started regretting this as it meant we had to practice a lot and put together a choreography all by ourselves.

Two weeks ago though we performed it three times and I must say it felt pretty good to be able to dance well on stage in front of a few hundred people. It's a new experience, but definitely one I wouldn't mind doing over.

Well, we promptly did last weekend at a demonstration of the dance school, but that was with ten other couples, so it wasn't nearly as exhilarating :)

Red Hat Linux 9

I ended up getting fed a reviewer's copy by a friend a week or two before the release. I tested it a little back then, but didn't have much free time to really try it out. At this moment I've already upgraded my laptop to the final Red Hat Linux 9 (which seemed to have a small set of packages upgraded from the review copy).

Well, it looks even nicer than 8.0. It's great to see both GStreamer and nautilus-media included ! I don't know how to put the feeling in words, but it feels good to say the least. It also feels bad because people will probably find bugs in it now.

new router

To cut down on our electricity bill, which is *huge*, Kristof bought a new second-hand PC to serve as both firewall, development server, backup server and kitchen music machine. It's a Duron 800 Mhz with 256 MB ram and 20 GB disk, for less than 300 Euro. Great bargain. We quickly fitted it with a 80 GB disk we had lying around and I went on to configure the machine, migrating configuration stuff from the two previous machines.

crossroad

While installing this machine, I decided to rebuild crossroad using mach for Red Hat 9. Crossroad is a small perl system I hacked up that allows you to easily generate combined sets of iptables rules which is handy when you're dealing with multiple interfaces or multiple port rules and so on.

One nice thing about it is that it integrates smoothly into Red Hat using standard service scripts.

As a by-product of installing it, I fixed a few small bugs (see below) in crossroad as a result, and the new 0.1.2 version can be downloaded if you're interested.

autoconf

The resulting crossroad RPM that I first built had a bad crossroad script because configure didn't find the iptables and sysctl binaries. I had this entry in configure.in:

 AC_PATH_PROG(IPTABLES, iptables, no, $PATH:/usr/sbin:/usr/bin:/sbin) 

which is pretty much identical to the example in the info pages, save for the brackets. Digging through the resulting configure script, I noticed that the last argument was used as the argument to a for loop. So I replaced the colons with spaces and it works.

I was pretty sure this used to work before, so I mailed the address in the info page and got a confirmation that something was wrong since 2.49 in half an hour. It's an uneasy feeling when you find out that tools you rely on to always magically work pull out the rug from underneath your feet.

fdisk labels

After rebooting this new server, things started to act really weird. The wrong partitions got mounted, /home was gone, wrong swap partition, ... I scratched my head again for a few minutes, because I was pretty sure it was loading the newly installed system.

Then I figured out that it managed to boot from the right partition, but then mounted LABEL=/ and LABEL=/boot, which were in parts served from the OTHER hard disk I put in the machine, which contained an old installation.

Running df confirmed that I had been running partitions from /dev/hdb, while a lot of my system had in fact been loaded from /dev/hda (this probably happens right before the root device remount as read-write)

This is not the first time I got bitten by fdisk labels. I understand why they could be useful for new users, but whenever you try to do something slightly more complex they fail spectacularly.

GStreamer

Ronald is putting together a stable release, 0.6.1. I feel bad for not being able to help out much at this point due to lack of time because of work ... And I also feel bad about being a pain in the butt by commenting on some of the things that happen that probably shouldn't happen. The sort of stuff you learn to avoid after doing a few releases of things. It's like seeing somebody else take care of your baby I guess. Not that GStreamer is my baby, but I've come to grow attached to being responsible for having good releases.

On the plus side, both my talk and Ronald's talks for GUADEC got accepted. I need to get started on writing the actual code I want to show ...

Brighton

Going to the (I've been told) lovely coast city Brighton in the UK. wardv is living there now and we're going over there with a bunch of friends and visit him. Four days without computers, woo !

Filed under: General — Thomas @ 13:15

13:15

Oslo, continued

We ended up not getting much hacking done at all. The whole trip ended up being more of a get-together trip than a full-blown hackfest. Which is fine by me, in a way. Wim didn't get back to us, so we assume he stayed in Helsinki while he was there anyway instead of trying to claw out a way to Oslo.

Snowboarding

On Saturday, we went to one of Oslo's skiing slopes. Both Leif and I had snowboarded before, so we got ourselves a board while the others, most of whom had never ski'd before, got skis. Christian and Owen took care of teaching them the basics of skiing while Leif and I went straight for the pistes. It was extremely foggy and snowing, so it was hard to have a lot of control of where we were going. But on the other hand, the snow was excellent and fresh, so I finally got the off-track experience that I missed this year on the previous ski trip. We took a few trips below the elevator, with quite a few jumps on the tracks and several high drops.

I had such a good time I didn't even stop for food but just kept going. After a while my goggles were totally useless and I ended up skiing without eye coverage. That hurt a little but at least I was more in control of my trajectory. The others ended up stopping some time earlier. Erik seemed to get the hang of it by the end of the day, even though he managed to go over the side of a red slope.

Traveling

It's Sunday and we're going home. It amazes me how people drive here in Norway. It feels more like rally driving than anything else, continuously jerking the steering wheel while skidding over the icy roads. I don't think I would really enjoy driving that way, but it was entertaining nonetheless. It's even more scary when the airplane you're in is taxiing for takeoff on similar icy roads at the airport. But it's a pretty sight to see another airplane rev up it's engine and see gusts of snow being blown from the tarmac.

Back to work on ALSA

Getting back to work after some time off always sucks. Tons of e-mails to go through, tons of things to follow up on and sort out, and so on. Having a major deadline tomorrow doesn't help either, but luckily it got shift a whole week.

My main problem is working out how I can record S/PDIF from our mixing desks on the Hammerfal 9654 cards we bought for this. Luckily Paul Davis, who wrote drivers for the Hammerfall, has responded promptly to all of my questions,

ALSA itself is pretty hard to figure out. It's not easy weeding through the docs and figuring out which are still relevant, and lots of important nuggets are hidden away in other documents.

Hope I figure this out soon enough.

Dental work

One of my fillings broke free during my skiing trip and today I went to the dentist to get it fixed. The tooth got refilled without anaesthesia (luckily, the tooth has had root canal before). Then she cleaned up plaque and toothstone from all of my teeth, and I really HATE that. It feels terrible.

Then I went out to console myself by buying a bunch of CD's. I feel in a sharing mood so here's what I got today:

Grant Lee Buffalo - Storm Hymnal, Gems from the vault of

I love this band, and I have a bunch of the B-sides, but I still felt I had to get this double CD anyway

Faithless - Sunday 8 PM

Got it cheap, wanted it before

Gomez - In Our Gun

Got this even cheaper

Ben Harper - Diamonds on the inside

Anything by Ben is a must-have, so this was a no-brainer

At The Drive-in - Relationships of command

One of those acclaimed classics people should probably own, not sure yet if it's true though. I like Sparta, so why not try this too...

2-Meter sessies

A bunch of unplugged recordings from Dutch radio/television. Including Coldplay, Jayhawks, Tom Helsen, Stereophonics, Ben Christophers, Tom Barman

The Folk Implosion - The New Folk Implosion

I really liked One Part Lullaby. Apparently this one is totally different, but I'm pretty interested in it

Jeff Buckley - Grace

I end up buying CD's I really love cheaply to give away just because they're cheap. This particular one is going to someone I know who has a copy of the CD. I figured I had two options, either shoot the person in question or forgive them their transgression and make sure they have the real original disc.

I should do something about my uncontrolled spending sprees someday.

Filed under: General — Thomas @ 13:14

13:14

Going to Oslo

Got up way too early, got dropped off at the train station and left for Brussels. Got on the Thalys, which had electricity ! I started writing my first Python application, a media test suite for GStreamer. Should be a good exercise to get me started. Having electricity made me feel luxurious so I watched the latest Sopranos episode I brought along on my laptop. I really start to enjoy the freedom of taking my virtual VCR tapes around with me. And watching TV on a laptop is actually very bearable.

Arrived at Charles De Gaulle, Paris, not much more than an hour later, where I was faced with a three hour wait. At check-in time I started worrying to death that I hadn't even considered if I needed my passport or not. Luckily it seemed my regular identity card was enough to get me in, even though later on I saw that it had already expired for two months. I guess they're not expecting any terrorists here.

I borrowed a second battery from one of my co-workers. These Toshiba's generally don't last for more than two hours. Which brings me to a point, if any of you laptop makers are reading this: it would be fantastic if laptops had a small internal battery that could last for a few minutes allowing you to replace the big battery while the laptop is still running.

I generally reboot my laptop only once in a month or something, but taking out the battery when not plugged in forces me to shutdown properly first. I'd love to avoid that.

So, five days ahead of me without having to worry about the incredibly disheartening deadline at work next Tuesday. Hooray for procrastination.

Arriving in Oslo

Got picked up from the airport by Raphael and drove to Uraeus 's apartment. From there, we went on to the parking place where the trail to the cabin starts. A two mile hike through waist-deep snow is a perfect way to start a hackfest. Somehow it felt good to be one of the more sporty types in a group.

Arriving at the cabin, we noticed a bunch of skis outside and apparently the cabin was doublebooked. The other occupants were a class of physical education teacher students. The female ones seemed to catch the attention of some of our hackers pretty quickly.

So we're still missing Wim and Leif, whom we haven't heard of. Hope they make it. It seems that Wim's plan to get in Oslo was to just go to the airport and take the first possible plane.

Lugeing

The next day we went to the centre of Oslo, from where we took the subway to one of the higher points of Oslo. There we rented a couple of luges, which basically are pieces of metal with some sort of flat surface as a seat. The idea is to lay down on them and go downhill as quickly as possible. Sadly the course is pretty bumpy and you end up flying about half a meter high and landing repeatedly. Pretty amusing and spectacular at the same time.

Wim doesn't have his mobile phone with him, so he called Christian from a cell phone. The message was pretty short; all he said was "Hello, this is Wim Taymans. I'm in Helsinki now. I'll call back later." and then some snickering. The snickering is totally justified since Helsinki is about 1000 km away from Oslo.

After that, we got confirmation from the Tourist Centre that there was some sort of mix-up, and we got assigned a new cabin. We went back to the old one, packed, then decided to eat first, so I started cooking. We made the two mile hike back at midnight, with all of our backpacks strapped on. It's a pretty surreal sight to see a bunch of complaining GStreamer hackers make their way through the snow and the dark.

We arrived at the new cabin at about two o'clock, only to find out it was freezing inside (there was some ice in a pot in the kitchen) and that there were no blankets. So I went out with Christian to get a bunch of blankets and sleeping bags from his mother's house for the people who only had sheets. Christian and I finally went to sleep at about 3.30 AM.

Hacking

It's Friday and it's the first day of actual hacking. A bunch of us started doing a code review of some core features. We started out with the scheduler. It's a pretty complex piece of code because it needs to do so much stuff and do it in weird ways.

Since getting on the plane I had started on my first ever Python application. It's a simple app to test handling of media files in GStreamer. Basically, it runs a bunch of pipelines involving md5sink on a bunch of media files and compares the md5sum of the decoding against the known good value. Today I worked on it some more and it's already basically done. It' surprising how easy it is to get started in Python.

I'm reading through Christian's copy of Havoc's GGAD manual, to figure out the basics of GtkObject/GObject from scratch again. I was trying to figure out how recasting actually works for the first time, and it dawned on me that the whole GObject system relies on a pretty cool hack inherent in C. Since each GObject has the parent structure as it's first structure element,the structure at the bottom of the object tree contains all parent classes in it's structure. Since they then all start at the same address, pointed to by the instance pointer, you can cast it to any of the structs in the ancestry tree and dereference it from there. Which is a neat trick. And apparently, it's also the reason why GObject can't do multiple inheritance.

Now, that's all boring stuff. But the real question here is: What would GNOME look like if, for some reason, C didn't have this behaviour at all ? Would there even be GNOME ?

Filed under: General — Thomas @ 13:13

13:13

Warning

This entry extremely low-diet on technical stuff due to obvious reasons.

Holiday

Went snowboarding last week, had a good time, good weather, didn't fall nearly as much as I did last year. I should really really do it more often because I enjoy it immensely.

Work

Greater responsability comes at a price : I get stuck checking and approving invoices, keeping track of contracts, and so on. It drains me from doing coding or productive work. On the plus side, I just got in a new computer and two Hammerfall 9636 digital cards, which will be fun to toy with. That will force me to check if GStreamer's ALSA support is still working ok.

The beauty of open source - I couldn't figure out how to actually control the cards and change routing on them, and I sent a mail to the LAD list and Paul Davis, the driver author, replied in less than a day.

Train

I ride the train to and from work each day, which takes about an hour, even though I have a car. I enjoy just sitting and not having to do anything to get anywhere, and being free to work on stuff two hours a day on my laptop. This week however, after coming back from holidays, I decided to not do much and just catch up on recorded tv shows from the Dave/Dina box. I must say, it was incredibly relaxing to just copy over the recorded shows and watch them on the train, should do that more often. I watched some Dawson's Creek (don't comment) and West Wing. West Wing is really really good, it's both funny and moving. The only thing I dislike is the blatant patriottism.

Oslo

Booked my plane and train ticket for the GStreamer Oslo Summit next week. Lots of thanks to Uraeus for putting this together, it's just what I need, another short holiday :)

Didn't really dare ask my boss, since we're on a very tight schedule, but he was ok with it. I'm psyched.

Fedora

Currently in some sort of IRC meeting, first time I've done that. Not sure if it's all that productive to try and hammer out things over IRC. Fedora is heading in the right direction though. People are setting up guidelines, discussing best practices, and eventually stuff will fall into place. We're striving for a huge goal, so it's ok if it takes some time. Rather do it right than very badly.

As for mach, both Ville and Matthias (from FreshRPMS) seem to like it and have provided patches. It's great to see the two of them discuss possible feature additions :) The project takes on a life of it's own.

« Previous PageNext Page »
picture