[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Filed under: General — Thomas @ 13:20

2003-12-31
13:20

GU4DEC

Arrived in Dublin this morning, met up with the early arrivers at Trinity. I'm stressed out completely about my talk since I'm still fixing bugs in the editor instead of writing slides.

Ximian Desktop 2

What can I say ? Sweetness all the way. Nice. Responsive. Nice. Sweet. Good job, guys !

Even better that I can thank them personally here :)

Red Hat 9, Ximian Desktop 2, and apt

People might have noticed that apt stops being useful after installing XD2. Apt seems to think the state is inconsistent. I rebuilt Red Hat's db4 so that it doesn't obsoletes: db1. If you have this problem, you might like my temporary workaround.

quark

Found out about this GStreamer-based player program through Freshmeat. The author is in our irc channel but apparently didn't mention it :) Anyway, been playing music with it for the past two days because it would have been really lame to go into GUADEC and use XMMS for music. Rhythmbox will take some time again to set up since I'll have to repackage libmusicbrainz.

Filed under: General — Thomas @ 13:19

13:19

Art

The Flemish Museum of Contemporary Hacker Culture would like to confirm their successful acquisition of one pristine and unique set of original nattoons by the reputed artist Mr. Friedman.

Due to massive crowd attendance during the exposition, not everyone was able to fully admire the inspiring work of this budding young sketcher of daily life and the situations it presents. Hence we have been asked to provide photographs of said set and make them available.

Music

Editor's note - isn't music art ?

Went to see Evan Dando play this week. My ex-girlfriend called me up on the day itself and said her date couldn't go, so she took me along. Had a great time. He opened up with my favourite Lemonheads song, "The Outdoor Type". It was hard to tell if he was in a very good mood or just totally wasted... He played "The Great Big No" while lying down on the ground, pulling the microphone stand towards him, but he played it fantastically. Strange concert. His between-song-banter was funny too.

I lost a few entries due to random APM failures, so It'd be good to note that over the last few weeks

  • Tom McRae was nothing short of amazing live
  • Ed Harcourt is an incredibly talented live musician
  • Interpol, while having released last year's best record, were incredibly disappointing live due to bad vocals and drowned sound
  • Nada Surf charmed the crowd immensely while playing a great set, and as if by magic had at least 100 people on-stage during Popular, who all politely stepped back off after the song was done
I'm too much with myself
I wanna be someone else

mach

Close to a 0.4.0 release. It's about time. It really is true that 90 percent of an application gets written in 10 percent of the time. I'm tying up loose ends. Right now I can, from scratch, type

mach -r redhat-9-i386-fedora-stable --sign */*.spec

and it will build packages from each of those spec files, in the right order if packages depend on each other, and then sign the resulting packages as well as md5sums of the files.

Now I need to think about how it will work on the Fedora build server.

Laptop

Fitted it with a new 60 GB hard disk (MORE MUSIC) and 512 MB RAM. On the downside, there still is something incredibly sluggish about the Red Hat 9 kernel. I only really realized something was very wrong when I installed debian on the '98 Powerbook I have, and noticed how it always feels responsive and never skips on playing back music, while this 866 MHz Pentium III skips *all the time* when changing workspaces or other things.

If you know WHY it feels so slow then please drop me a line.

mx

Heh, you're welcome :) Yes, it really is great that it is actually possible to get help and learn from peers, and I'm glad I can sometimes help too.

Also, be advised that my advice is mostly from personal experience, and from the belief that systems should be easily upgradeable and thus /usr is best left to the package management system.

Of course, I break this rule myself for mach development, because mach has an suid binary that has some of the paths hardcoded in it for security, so then it really is faster to configure the source to be installed in /usr. The trick is to know why and when to break the rule.

Fun

A friend of ours had her birthday last weekend and invited us to the beach. A great time was had at all. Strangely nobody took pictures while the five of us were playing sissyball in the sea. Rules of sissyball are very simple : find the shortest distance between five people that allows them to pass the ball without dropping it for 40 passes.

My dad bought a Propcycle. It's an arcade game were you have to ride a bike. The harder you pedal, the higher you can fly across a landscape and catch flying objects. (I am not kidding you).

You probably never heard about it because it wasn't ever successful anyway. My dad saw it on holiday and spent at least two hours in the arcade every day. He didn't have much competition because it wasn't the coolest game around :)

He found someone who sold these units, and it arrived last week. It still needs to be assembled.

I took the opportunity to attach the PlayStation and Dave/Dina to the screen, and having such an incredibly big screen to play and watch on.

Peter thought this picture of me working was cool. Peter is strange. I'll miss him when he goes to South-Asia this year to ride his bike with his girlfriend for half a year.

Meanwhile, I'm considering going to work in Barcelona. Anxiety.

GUADEC

Going to GUADEC in ten days. Psyched to be there, I've been wanting to go there for a whole year. Strangely enough I feel less psyched now that it's clear. It might have to do with me doing a presentation there, and realizing I still have work left to do, when my time might be better spent doing more stuff on GStreamer proper.

Filed under: General — Thomas @ 13:18

13:18

mx

First off, there are binary packages for epiphany; for example, both mozilla 1.4b and epiphany 0.6.1 are in rawhide. They work fine. Never compile by hand if there are packages out there you can trust to be decent :)

Second, Red Hat didn't move the server directory for bonobo. If you configure without prefix, then it defaults to a /usr/local/prefix, and server files are installed to /usr/local/lib/bonobo.

bonobo on your system is configured with prefix /usr since you installed the RPM, hence bonobo doesn't pick up your Epiphany servers file.

There are ways around this, and these are:

  • there is an environment variable for bonobo (I don't remember which) that specifies an alternate dir to use. You should set this in your bash profile, just like you have to add /usr/local/lib to /etc/ld.so.conf or your LD_LIBRARY_PATH, and just like you have to add /usr/local/bin to your PATH.
  • an other option is configuring epiphany with prefix /usr. This is BAD, you should never ever do this :) /usr is for your package management system, ie rpm in this case. Don't install anything by hand in there, because you run the risk of both overwriting files belonging to rpms (thus robbing you of the chance of verifying your install) and you'll probably lose a lot of stuff when you upgrade your system
  • build a bonobo in /usr/local. This is also not very ideal because then it will fail to pick up all of the rpm-installed bonobo servers.

Seriously, the best thing to do is get good packages from someone and fix all issues in one go. In this case, check rawhide. In other cases, help us out over at Fedora, a community-based set of add-on packages for Red Hat Linux. Suggest packages, do Q&A testing, give feedback, and so on. The time you spent compiling stuff by hand could be better spent verifying clean packages and helping out a bigger group of people.

mach

Had a long entry on mach but I lost it due to an X crash :)

Short version of them:

  • decided to rewrite mach in python three weeks ago; compared to Makefile syntax it's a joy to code in. It's my first Python app, but I had a basic working version in less than four hours. Python is very easy to pick up, and once you get past the indentation syntax, very very enjoyable to program in. I've since learned though that it's hard to verify your program works in all cases if you don't know how to trigger all conditions. If code paths only get checked at runtime, but your program doesn't run certain blocks of code, it's hard to assure your program is ready for release.
  • due to lots of strange interactions between building a non-NPTL system in a non-NPTL host, and various rpm and db3/4 problems and lockups, I almost threw in the towel. My goal was to write software that would allow one to set up a chroot environment for any flavour of rpm-based Linux. At some point it seemed that due to all of the various lock-ups possible, this was impossible.
  • After some rest, I realized I could do all package manipulation (through rpm and apt-get) from OUTSIDE the chroot, ie. using the host's apt-get and rpm binaries, but affecting the target root. I quickly added code for doing this, and objectified the root handling in python itself, and it worked !
  • The last week was mostly spent on finetuning stuff, and testing it out on various packages.
  • mach is now able to set up all supported flavours of RH (7.2, 7.3, 8.0, 9) and various spin-offs (for GStreamer, Fedora stable, testing and unstable). It can build from spec file or rebuild source rpm's. It can do multiple builds at once, and figure out a build order for these specs or srpms.

I'm pretty happy with how it turned out now. Have to release something very soon so it gets used out there. Some people I respect seem to really like the idea and the program (like Ville Skyttä and Matthias from Freshrpms).

Had longer entries planned, but it's late, we just had a great barbecue, and I want to get some stuff done tomorrow as on Sunday we're going to the beach because a friend of ours has her birthday and she decided we should all go !

Filed under: General — Thomas @ 13:17

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 !

« Previous PageNext Page »
picture