[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Filed under: General — Thomas @ 12:57

2003-12-31
12:57

Sorry

For the decidedly non-technical entry, skip it if you don't like reading regular life stuff...

Metal Gear Solid 2

I got it this weekend, hoping it wouldn't affect my hacking weekend too much. Boy was I doomed. This game is sooooo pretty. And it makes so much sense from a lot of perspectives - the interface is actually pretty damn good. Once you've fumbled about a bit, it's second nature to stick to the wall, take a peek around the corner, crouch down, peek a little more to the left, draw your gun, and jump out and shoot. All using very fluid and intuitive controls. Needless to say, Sunday was pretty much wasted.

I have to say though that there are too many cut-scenes in this game. At one point I had nothing to do for half an hour.

What IS a touch of class is how at the start you get asked if you have played the game before. If you answer "yes", you play a sort of trailer to the actual game, in which you play the same guy as in the "first" game. Even the interface and the "you're dead" screens looked the same as the first game. But all of this is switched around when the "actual" game begins, very discomforting.

My housemate started the game as well, and he hadn't played the first game, and he got dropped straight into the main game. Now THAT is a touch of class for those who played the game before. Nice idea.

Chasing Amy

was on TV this weekend. I tried not looking at it, telling myself I should rent it again because it is just sooooo good. Kevin Smith is a great director, but this probably is the movie with him having the most to say. Quite literally, perhaps, as the character he plays in the movie, Silent Bob, gets the longest bit of line in any movie with Jay And Silent Bob. And the lines hit home.

So as you might have guessed, I ended up watching big chunks of it anyway. How sad. But what a great movie.

GStreamer

I should get off my ass and get some multimedia stuff going for Gnome. I have some ideas on what to do, but I want to put an effort in it and I currently don't have enough time to do it properly. Especially now that I can feel I'm really close to getting a first release of Dave/Dina out. After that I hope to focus some more on Gnome-related things.

The only thing that bugs me about GStreamer is the start-stop-development which is at the heart of any project that doesn't have full-time developers on it. Development goes more in leaps and bounds, linked to people having time to work on it. Sometimes Wim comes out with great stuff all of a sudden, I wonder how he does it. Both "how he keeps going all this good code when he has a day job" and "how can he keep all this good stuff on his own disk for so long without committing to CVS" ;) I swear, I have to commit just about every few days or I lose stuff or break my tree or whatever. I'm more an incremental kind of person.

Dentist

Here's my top five list of things I don't like about going to the dentist :

  • getting an injection straight into your infected nerve
  • the metal construction with the vanilla-scented stretchable piece of plastic that goes flapping madly when the air suck pipe is installed when you're getting a root canal
  • the smell of things being burnt inside your mouth
  • getting an injection into your gums
  • getting toothstone removed from between teeth without anaesthesia with thet pointy metallic scrapy bit

I could have added "being so irritated at having to go the dentist that I forgot to take out my bank card out of the ATM machine. This experience taught me something useful about interface design - sometimes you dislike an interface because you don't understand why it's there. Case in point: I never understood why Selfbank ATM machines ask you to give your code twice, once at startup and once when actually taking out money. After actually forgetting to retract my card of the machine and stepping out with just the money, I know why. Thank you banks for being foresightful enough of my stupidity.

Tango

Our teachers had two spare tickets left for a tango concert after which they were due to perform a few dances. So we went, which was a good idea. The concert itself seemed ok, though I don't really have a frame of reference. There were a bunch of school kids there who had to go for their aesthetics class. I thought that was cool, but they obviously didn't.

Afterwards, there was a live band and we got the opportunity to dance. I get the feeling we're getting pretty good at it. You can feel you're getting decent at it because you don't have to spend half the time thinking about what to do next, and when you make a mistake, you're good at covering it up. Kind of like real life.

Par-taay

It was Peter's birthday last weekend, so he invited some friends over at our house for a party. He showed them around, showing Dave/Dina, the kitchen computer and the music boxes upstairs. They seemed impressed, always a good thing.

Peter was happy with his Atari sweater (he hasn't taken it off since) which allowed him to finally join the ranks of the cool nerd club.

Filed under: General — Thomas @ 12:56

12:56

Another fun week in hacking ...

Red Hat 8.0

I had managed to get some packages before the actual release, which allowed me to fix up bitches to support it. That in turn allowed me to rebuild GStreamer for Red Hat 8.0, which worked out surprisingly well. The C++ plug-ins didn't get built properly, however, and a week later I managed to figure out why : -lstdc++ wasn't added to the plug-in library flags. If someone knows why the plug-ins did manage to get built properly with previous Red hat gcc's, let me know, I'm curious.

All packages have been put in the GStreamer apt repository. It's great that a GStreamer build and set of RPMs can once again depend on a clean Red Hat install.

Send us bug reports, people !

Radio

This week, the college radio I work for started broadcasting again. The weekend before that, I had started working on a mixer program using GStreamer to replace my four year old thesis project, mpegmix. Someone led us to believe that the past week was just the test week, so I stopped working on that program during the weekend, concentrating on Red Hat 8.0 instead. Bad mistake - seems we were due to start broadcasting that Monday after all ;)

Problem was, the mixer wasn't ready at all, and we had about eight hours left to get everything ready. Everything means, in this case, software, testing of the copper line feed to the antenna, testing of the studio, and so on.

It was close, but we hacked up a simple automatic system that plays the hourly tune and commercials on time, and switches between computer and live feed. The more interesting stuff will have to wait a bit.

GStreamer

Things are progressing fairly well. wingo is going to Africa for two years, though. I'm happy for him, but for GStreamer it's too bad. He did some amazing work on the editor, I hope someone can pick that up and continue where he left off.

It's time we start discussing how to get GStreamer into Gnome. I've done some thinking on the subject, I hope my ideas go into the right direction. I should start mailing people and discussing them.

Dave/Dina

I have made some excellent progress over the last week. Due to the reasons mentioned above, however, my week off from work wasn't as productive as I had hoped it would be. For one thing, due to the installer graphics still not being finished, I couldn't work more on the installation part.

So I concentrated on going over all of the current packages, and finishing up some loose ends on the integration part. On Sunday, I re-installed the main Dave/Dina machine from scratch, then proceeded to weed out the apt tree and installing the packages one by one, working out small kinks.

It is a great feeling when you have made a system that you're able to re-install from scratch relatively painlessly. That's probably one of the bigger advantages of doing it the hard way like I am now. At least now I have a prayer of getting it to work for other people, like our very first customer who's anxious to get it to work.

On that note, a silly story - our first customer has just returned from Indonesia. He bought 30 DVD's down there, none of which looked entirely legal. So I asked him, "are you sure these DVD's play on PAL systems ?" "What's PAL ?" Oops. "They played on every TV there, and those TV's looked exactly the same as the ones over here."

Well, we tried a few in the Playstation 2, and they all turned out black and white and grainy. And yes, they were NTSC. That depressed him a little. But sure enough, playing them on Dave/Dina was alright, just like you would expect from a DVD. So now he's happy he's actually getting a Dave/Dina system.

Work

I'm at the point where I'll soon be able to do some cleanups in some of the systems I've set up. That's always good - you find problems before they happen that way, because you actually have to ask yourself - What should I do today ?. I'm not at that point yet though, so I'm anxious to get there ;)

Today, I'll just clean up all of the packages I've written that make up our radio RDS system, polish them a little, and document them, in the (probably vain) hope that someone will be able to make sense of it when I don't work there anymore.

Music

Got to see Idlewild play last week, great ! I love their new album, decent rock with good harmonies. Been playing Interpol's debut album to death lately : Turn on the bright lights. Yes, the voice and some of the music are reminiscent of Joy Division and might be derivative, but I wouldn't know since I don't know all that much about Joy Division. The music is great, dark and broody, and it really draws you in. A cathartic experience, well recommended.

Tonight, I'm going to an angel music concert : Sigur Ros. Been a long time since I saw them play, looking forward to it. I invited my favourite partner in music, Willeke.

Filed under: General — Thomas @ 12:55

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.

« Previous PageNext Page »
picture