[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Filed under: General — Thomas @ 13:05

2003-12-31
13:05

GStreamer

Released 0.5.0 yesterday. From now on we'll try to stick to the "odd minor = development" schedule. I took apart the build last weekend to make GStreamer fully parallel-installable, librarywise. Looks like I succeeded because I managed to install both core RPM's at the same time.

We're still having some scheduler issues that are thread-related, and Wim and David were working on those a little more over the last week. It was really frustrating to notice that, after a whole weekend of breaking stuff install-wise, I couldn't even play anything in nautilus-media. So I started going back to old code to try and figure out where it went wrong.

I had hoped to release on monday, the due date for Gnome tarballs, but we missed that. Luckily, David figured out that the change was due to one innocent-looking line in a source file I missed. I spent some time yesterday on working that out, then fixing some other issues due to fixes, until nautilus-media behaved sanely again.

Some more sanity-checking, build checking, and we finally got it out. And then a nautilus-media to follow.

When I wanted to release the tarballs, I noticed I didn't actually have access to GNOME's release machine. So I set them up a Nigerian scam offer they hopefully won't be able to refuse. So sad when you spend so much time preparing a release but you are unable to press the big red button yourself ;)

Funny how some people at Red Hat all of a sudden have taken an interest in GStreamer issues. We had some questions from them, mostly concerning 64bit stuff. They got some of the tools guys to look at our cothread code. Apparently they say we are crazy. I can't tell - I don't understand that stuff well enough, I can only guess and offer suggestions.

In any case, some of the fixes got in, but I'm not even sure stuff will run. So, Red Hat, how about a developer-accessible compiler farm ?. You know it makes sense. I do wonder what Red Hat are up to though. There has to be a reason.

Dave/Dina

And an amazing time was had by all... Last weekend, we installed the first user's Dave/Dina box ! Jeroen is our first happy customer. The look on his face when he inserted his Lord Of The Rings Special DVD collector's edition DVD's, chose to play DVD's, and then saw the menu and opening credits was priceless. He seemed genuinely happy and impressed.

It's going to be a scary time, having to deal with actual user feedback. But exciting nonetheless. One thing I noticed is that TV's tend to listen to remotes from the same brand. So our perfect remote is slightly less perfect now that going left in the menu also lowers the volume on the TV, and going down switches the channel. Ho hum. What's even more irritating is that it does this regardless of the fact that the remote has SEPARATE buttons for volume up/down and program up/down.

And I thought I had found the perfect remote, but alas ... Yesterday I noticed it didn't even have a PAUSE button. Pretty irritating when you want to get something to eat.

Meanwhile, Kristof has taken to writing stuff to download TV listings from eurotv.com. He tried using XMLTV at first, but came out with the same impression as me - it was none too well written and very hard to get going. He started writing his own scripts to handle tv listings. I haven't looked at his code, but he got it working in about a day and the end results looked very good. Somehow though we have to figure out a way to not implement everything ourselves.

TV

My acting career is going down the drain. I started as a soccer hooligan and my last appearance, last week, was as a gigolo ;) It was for a video clip reworking of Tina Turner's Private Dancer. Funnily enough, Uraeus chose that release name for GStreamer without knowing about this.

GTA: Vice City

What an amazing game. It has the right mix of reward and frustration, and lots of neat little touches all over the place. I love it. I've been trying to extract the audio from the disc so that I can play it in the car ;) So far no luck.

Sadly, it also has some bugs that cause it to lock up after extended periods of play. This mostly coincides with loss of solid graphics and loss of actual speech audio in cutscenes.

Break-ups

are hard. I miss and I wonder. I hope you're doing ok.

it holds my arms down sits upon my chest
it waves it's finger at me every night and day
and it don't rest

Filed under: General — Thomas @ 13:04

13:04

chakie

Show us your Makefile.am file. The compile line looks ok, since setup.cpp probably is only one of the many files in your project, and it's compiling the one file into an executable.

Basically, your Makefile.am should look roughly like this

 bin_PROGRAMS = myapp

myapp_SOURCES = setup.cpp (other cpp files)

Replace "myapp" with whatever the name of your app is and add other cpp files.

You should use automake over standard Makefile. The syntax for Makefile.am is a lot easier than syntax for Makefile. automake has a better manual than make (see autobook on Red Hat's site). It generates more portable Makefiles than you could do by hand. And it adds in a lot of nifty stuff (everyone should run make distcheck before a release) that you will never do by hand.

Feel free to ask more questions if it doesn't work right away.

Dave/Dina

Made some good progress through the last week. Fixed up cd playback through a different application, hcd. There's nothing special about it except that it works. Really, I found more than ten console cd players, and most of them had "issues".

The default one, with Red Hat, is nice to look at, but unable to tell you if the disc in the drive is not a CD. When you try it on a DVD, for example, it just hangs. That's pretty unacceptable for our user interface.

I also found libcdaudio, but that had flaws too. I liked the way the reference application worked, but strangely enough it showed some obvious flaws in the program. For one thing, a part of the app (probably an externally spawned process) segfaults when you ask for CDDB information. I traced it down to

 fprintf(stdout, "%*s
", index, index, inbuffer);

That was something new to me - I had never seen the %*s before. In any case I browsed around, and noticed that there was one "index" too many. I can't really imagine how the author let that slip during testing.

In any case, it taught me that knowledge can come from fixing bugs. It's a heartening thing to know that sometimes finding and solving bugs brings you more than just another bug solved ;)

After this bug however, I found that gathering CDDB information was flakey at best - each time I asked for info, I either got the right information, or partially right information preceded by a random number of white lines. So something was not working very well. I decided to leave it at that and just not bother. Pity, I would have rather liked a simple library to code something on top of.

But I have to learn how to stabilize before adding features.

I also repackaged xawtv to work with lirc. For some reason totally lost on me, Gerd Knorr added another mechanism to handle lirc support. I think he wanted to channel all incoming "events" (key presses, mouse presses, midi events, lirc events) and act on them, but it doesn't look like it gains anything for the user.

I tried to figure out the most annoying thing in xawtv: when you switch channels the audio pops every time. Incredibly irritating, and what one would call a showstopper bug to actually use xawtv over a regular tv. I started jumping around the code. Man, xawtv is complicated - besides reinventing the wheel a few times too many. The mechanism to mute audio jumps through a few hoops, managing to actually be implemented in plug-ins (or maybe not, I couldn't figure out where the accessors were set in the code), and eventually totally obfuscating what mechanism it actually uses to mute audio.

A dead simple and dead ugly hack with system("aumix -l0"); before switching channels, and waiting a bit longer after switching, removed the annoying pop. But that's a very ugly hack, so I hope to replace that soon.

Someone stated an obvious fact about xawtv to me : it is a badly written program that everyone uses regardless anyway. There are more like these. The reasons seem simple : it is badly written because it tries to avoid using any other library as much as possible and thus ends up reimplementing lots of things that are already done better in other libraries. And the reason everyone uses it regardless anyway is precisely the same reason - because it's so easy to get running, since it doesn't depend on a bunch of other libraries.

Personally, I have been totally won over for the argument of having libraries do as much as possible.

Kristof fixed some more bugs in DAD related to Internet Explorer. Good stuff, time for another release.

Also finding out some issues with the SBLive card, not sure if it's my failure to understand how it works or other things. But currently I can't figure out how to record from the line in without having it actually *play* the line-in channel (so that I don't get live tv audio when recording in the background at the same time music is playing). And for some reason, the overall volume setting doesn't have any effect.

GStreamer

Figuring out some complex threading issues. Well, mostly providing debug info and trying to get GThreads to work in GTK when they use GStreamer. dschleef does most of the fixing work, bless him. He even went as far as install Red Hat 8.0 inside a chroot on his debian machine to test the bugs that seem to only come up with RH's glibc i686 optimizations.

bitches

Decided on a new name that hopefully is less offensive - mach, for Make A CHroot. I know there is a kernel with that name, but I don't care. I checked on SF, and there is already a project there with that name. Luckily, the project seems abandoned, it has been registered two years ago and it hasn't had a single CVS commit to it's name. Just like the three other projects registered by that developer. So I asked for a tekeover, hopefully that'll go through.

I also realized that it's trivial to use this for more than just package building. For example, you can build an image file for use with User-mode Linux, set up a chroot on a server to work in, and so on.

Movies

Went to see Insomnia last week. Pretty damn good. By the book, totally different from Memento, but still good. I'd like to see the original movie though to see how it's changed and how much of the goodness is due to the director or the script/story.

GTA: Vice City

I saw it at the store and couldn't resist buying it. It is amazing. I'm not really the 3D visceral type of person when playing games, and before getting a PS/2 I hadn't played any computer game in about a year or two, but GTA is absolutely wonderful.

It is 100% immoral, vicious, and incredible fun. When you're bored or stuck on missions, you can do silly stuff, like pester police officers, try to get six stars worth of police attention, go to the mall and shoot people, steal motorbikes and practice jumps, go fire truck/vigilante/taxi/paramedic driving, and so on. I still find silly stuff inside the game every few hours.

The music is just incredibly good. The game has about eight in-game radio stations, and they all contain really good music, with tongue-in-cheek presenters and commercials. I could go on for hours about what I like in this game.

It just throws out political correctness out of the window and I love it.

Filed under: General — Thomas @ 13:03

13:03

Gnome Foundation

I got accepted into the foundation a few weeks ago. It took a while, but I'm happy about it. It's nice to be part of something bigger than yourself.

Fedora

Someone is starting up a community of packagers much like Debian's system to provide decent add-ons to Red Hat. As I've been packaging more and more lately, the idea appeals a lot to me, so I decided to join the mailing list and see what happens. I hope I can convince people to work with bitches so I can put it into wider use and work out kinks.

bitches

ct has added Yellowdog Linux support and succesfully built rpms for GStreamer, so it's starting to prove it's merits. I pushed out a 0.2.9 release today after some testing and cleaning. It includes the Yellow Dog Linux stuff, so if you want to give that a try, please do. Going to install YDL on an old powerbook sometime soon.

Tried feeling good about doing a release but that failed. I think I have other stuff to worry about but stuff is dragging me down.

life

The good thing about ironing clothes yourself is that you become a lot more responsible in actually putting the ironed and folded clothes where they belong immediately. It also makes you respect all of the people in your life who ever ironed clothes for you.

The bad thing about ironing clothes yourself is ironing clothes.

My dad actually *likes* ironing. Guess it's not something encoded in our genetic material. Or, I am adopted. Gives a whole new meaning to the word irony. My dad is irony, I seem to be not so much so.

Today is sunday and for some reason the world around me decided to suck. It's making me very pissed off. I'm going to clean up some of the mess around me today I think - instead of trying to get work done. Today is a lost day already anyway.

Filed under: General — Thomas @ 13:02

13:02

GStreamer

I converted the FAQ to Docbook so it's easier to add lots of entries to it locally, then update the website FAQ. Took some time to get the sed magic right to convert the generated html to our site layout, but everything is ok now. So if you have time look over the GStreamer FAQ and let me know what is missing and what questions you want answered ;)

Been busy working on the media info library in GStreamer - a library which is supposed to read media files and extract metadata, format stuff and so on in a generic way.

Was a bit of work, and took a bit of prodding Wim to help me define the concepts and how to extract them, and it seems to work very well now. I've mostly tested with ogg and mp3, but it seems to be blazingly fast. My original plan was to have the library cache all of the media info by default, but I might hold off a little more on that idea because it seems time is less of an issue then I used to think. I am impressed even more with GStreamer's architecture and forethought in these matters.

We need a little work on settling some of the issues if we want to go into Gnome 2.2 They are mostly boring things, like figuring out .so naming, header location, and so on, but pretty important to get right nonetheless.

nautilus-media

Now that the media info library is more or less working, I worked on nautilus-media some more. I converted it to use the new library. For now, I'm copying the code, because I don't want to make it depend on what could potentially be a moving target yet. Nautilus-media will be the proof of media-info in GStreamer for now, so it makes sense to duplicate code for now.

Anyway, now it's really easy to have media info in the view, and I'm going to add property pages next, which snorp has already given me some code for. Hope that will make it easier to do this ;)

Other than that, I should reply to the opinions jorn stated in his diary, where he didn't see the need for a view like this. First of all, I totally agree with extending the icon view to have better property information in the view itself, depending on the mime type. I don't care how many bytes my photos are, I do care about what resolution they're in. I don't care how many bytes my sound file is, I do care how many seconds it is. That's the sort of thing I hope to see in Nautilus in the future.

Second, I really am convinced that a view like this has a lot of uses. The key thing here is that it should try to be useful inside a file browser. What this means in practice is that it shouldn't act like a player, but act like a quick and easy way to browse through audio files in their native format. This means that it should allow you to quickly go through files in a directory, easily see relevant data about these files (tags, properties, format, ...), and quickly listen to or skip through the audio files.

In this light, I am against the original music view, which had code to arrange the tracks based on album position, tried to detect that the directory contained an album, and had a mechanism to detect an image file which it then thought to be the cover for the album and it set this as the background. I could be wrong about the specifics, because I went through the code, and didn't actually see it, but it does have album-specific stuff in it.

That is the domain of a music player and not a file browser. The features I'll be concentrating on here instead is

  • have it play through the files
  • have it report useful info about files
  • make it easy to seek through files
  • have a "sample" button that skips through the tracks and plays the middle part of a track

Other features might be more media-specific. I'm currently contemplating the option of allowing to drag out streams out of a media file, so that they get saved as a separate file. This would allow you to drag out the second logical stream out of an ogg file, or the audio part of a video file.

Some people might think these are crazy features, but when you work with audio they make sense. They make sense because these features work with your files and their contents, without manipulating them. The problem is that most people don't work much with audio at all, so it might seem hard to justify features like these. (I do not regard "handing 30 GB of songs to your music player as "working with audio", btw). But as computers get faster and hard disks get bigger, people will start moving around audio and video stuff a lot more than they do now. Your phone messages ? They'll be on your hard disk. Your camcorder recordings ? On your hard disk.

For basic previewing and scanning, having play stuff in your file browser makes sense, especially when it's not expensive at all, and optional. Launching a separate app to check out these files is unnecessary overhead. If you do not agree, then it is very simple - don't use it.

By the way, nautilus-media will contain a lot more than just the view. I'm working on property pages right now, and it also contains a video thumbnailer.

So I've been running the view to play my music for the last few days to stress-test it, and it works very well. Even, remarkably, seems to skip a lot less than xmms and rhythmbox. I also got a mail from someone who tried it out and told me it worked (apart from the few bugs I need to figure out, like lifecycle management). It's great to get mails from people telling you that your stuff works ;)

bitches

Someone is now using bitches to build RPM's on Yellow Dog Linux. That's great - hope I get some patches for that soon, I want to do a new release.

Fedora

Some people are thinking of setting up community-based repositories of RPM's for Red Hat. That would be a great initiative. FreshRPMS has always been a good source of extra packages for Red Hat, and the concept of expanding on this appeals a lot to me. I like Matthias's work a lot, but (for reasons I can understand) he only puts up packages he himself made.

Which reminds me - I still need to work with him to handle some of the clashes between our and his repository. Hm, just checked, and he seems to have put up packages of gstreamer and gstreamer-devel. That's too bad - first of all they're pretty useless to users on their own, and second, it's going to clash even more. I wonder why he did that.

DrWright

If you use Gnome 2, get this handy app. It locks your desktop after a given amount of time, forcing you to take a break. And it's sexy. It helps me to overcome the guilt of taking a break at work. I have it set at five minute breaks every 90 minutes.

Music

I saw five concerts in the last week. A slight case of overbombing, I think. Anyway, I'll keep it short and list them in order of appreciation.

  • Spinvis gave the best concert. Spinvis is a Dutch "project", singing in Dutch. It's basically one guy of about fourty who recorded a pretty good album at home. I guess in Dutch it's called "huisvlijt". Anyway, he used a lot of samples on the album, and played everything himself, but on stage he brings along an 8-piece band with vibraphone, harp, some Turkish instrument I don't know, and so on. Half the band is over sixty, and his dad plays along as well. In any case, the music is even better live. You can sense that he has a meticulous eye for detail, and the nonchalance that is in the album music and the lyrics shows itself to be carefully constructed as being it. It's nice to be surprised by the fact that someone put real effort in the music he made when the music seemed to have that fleeting surreal quality that makes it seem so effortless.
    He even managed to play all my favourite tracks on his album, and the only drawback was the fact that, just under 55 minutes, the concert was too short.
  • Coldplay gave a pretty stunning performance even though the venue is way too big (it can hold up to 8000 people) to get some sort of intimate feeling out of the music. It's trendy to like Coldplay, and it's even more trendy to hate them, but the fact of the matter is that he has a great voice and writes some great tunes. And I happen to like both. A really inspiring concert.
  • The Tragically Hip have a great new album out, and they are almost always stunning to see live. Gordon Downie doesn't just sing, he acts the songs. He's constantly fighting with himself, making faces, acting out a play in his own world. Very mesmerizing to see. And it helps that the music is so damn good too. Very good set list, they did miss some of my favourites on the new album though. Biggest drawback was my friend coming with me getting sick after song 4 and having to miss most of the concert.
  • The Cure are playing a set of Trilogy concerts, in which they play all of Pornography, Disintegration and Bloodflowers in their entirety and in order.

    If you feel that "this could get boring easily", you are half right. It is a bit boring to know the setlis in advance. They played the albums very well though, and he seemed to be enjoying himself. The concert lasted for just about four hours (breaks included). We had arrived late because Peter (which is the big Cure fan in our house) managed to miss the train - and the three next trains that could have taken him to my work.

    Of the three albums, Bloodflowers ended up being the best to hear live. A lot more consistent and well-rounded. But still it was great to hear very well-done versions of a strange day, love song, fascination street, lullaby, disintegration, and so on.

  • Manic Street Preachers are doing a Greatest Hits Tour. This has the potential to be amazing, but somehow something got lost between idea and execution. They sadly sounded more like a cover band covering themselves. The setlist was great, stellar even, and the performance was ok, his voice was good, and so on - but it was just missing huge chunks of meaning all over. Sad, somehow.

Filed under: General — Thomas @ 13:01

13:01

pfremy

This is the last I'm going to write about this matter since I'd rather spend my time coding what you think doesn't work instead of talking about it. The only reason I do write this is because there are people who might fall into believing what you write.

No, it was not obvious that you were *only* talking about the old nautilus. You employ a common rhetoric trick in which you start off by talking about something, then change your use of past tense to present and make the reader believe you are still talking about the same thing.

Your latest entry starts off by saying "it is clear that I am talking about 1.0 nautilus", and it ends by saying "Not only do I find evolution more useful than Nautilus, it also integrates properly with Gnome."

I presume your last point to be about current Nautilus, and the point is wrong. I like both evolution and nautilus. Of the two, Nautilus is currently better integrated. It uses Gnome 2 ! Evolution does not. And current-day Nautilus DOES integrate with Gnome 2. It handles the desktop by default, for crying out loud.

ANY integration could ALWAYS be stronger that it is. It is a silly point to make.

You are free to question if Gnome should have taken nautilus as a core component. You think no, and the Gnome people and nautilus developers obviously thought "yes". But you are just as free to start a diatribe about multitasking in MS-DOS 3.11. Just don't try passing it off as a reason to throw out Windows 2000. It looks stupid.

Also, you forget that there would probably not be a great file manager for Gnome today if not for Eazel.

So if I compare what the nautilus people have to show for their efforts (a speedy, nice, extensible, integrated file manager - and I am talking about Nautilus 2 here in case you were wondering) and I'm looking at what you have to offer (three silly diary entries that were more of a useless exercise in flawed rhetoric than anything else) and I know who of the two earned my respect.

If all the time your only intention was to talk about nautilus 1.0 without passing it off as criticism on nautilus 2.0, then yes, you need to work on your language skills. Also, check the calendar, because you're at least two years late.

I'd advise you to drop the subject until you gave nautilus 2.0 a try. I'll drop the subject regardless from now on, there's no use in arguing with someone who makes up their own truths. You are beating a dead horse without making it clear that it is the dead horse you're beating and not the live one.

« Previous PageNext Page »
picture