Since we support SVG all over the place I thought it be fun to create a 100% SVG metatheme, using SVG to do icons, stock icons, widgets and even the background image. Still some work todo including learning to use Sodipodi and how to make gtk2.2 themes. Been using the Vadim’s SVG icons as a starting point. cinamod has been very helpfull fixing bugs in rsvg as I have trotted along. Still a lot to do, but have gotten of to a good start as can be seen.

Yet another dull Saturday at work. If only the firewall here would allow for IRC then waiting for file copying etc. wouldn’t be so tiresome.

Got Rhythmbox running again last night. jorn has put back the GStreamer backend and everything works like a charm for me on new Phoebe.

MAS was released a couple of days ago and we have already had a long debate on the gnome-multimedia mailing-list about MAS that is really not about MAS :).

The question debated is wether GNOME 2.4 should ship with a default sound server or not or if the abstraction GStreamer provides makes it something we should leave to the distros and users to decide. Personally I do not use a sound server, but I guess I do see the point of having a default sound backend that behaves the same way X does in regards to remote terminals etc.

Installed the second Phoebe beta from Red Hat last night. Most of the bad bugs in the first Phoebe beta is gone and things are looking really smooth. The GNOME2.2 setup which will be in RH8.1 is so smooth that I felt, well in lack of a better term, I felt proud of having been part of creating it.

Things are really looking bright these days and good news just keeps rolling in. Looking back there has been a painfull, but important transition in the GNOME community from being technology oriented to being solution oriented. Yes, I know it sounds like a stupid catchfrase from a management book, but it is true. I feel that where we before where mostly focusing on ‘we must implement this technology and add this option’ the now focus more on ‘how can we make GNOME as easy to use and intuitive as possible’. This is also examplified by earlier having a list called gnome-hackers being the most important, to now having desktop-devel as the most important. While it is just a name it also says something about a change in mindset.

We also made the 0.5.2 release of GStreamer last night, feel very happy about it. Think the subset of GStreamer that GNOME currently uses is very solid in it, and I think that the last remaining issues which we need to address for the framework as a whole to be solid will be taken care of within the next month. In fact the only core component which is substandard atm is the autoplugger (which none of the GNOME 2.2 components use atm), but omega is hard at working creating us a new one. It will probably be ready within the next 10-12 days. There are of course tons of polish needed in regards to formats supported, interactivty and of course bugfixes, but we are getting there fast.

dolphy has done some really nice work on gst-player. Thanks to his effort is has gone from merely being a nice technology demo to being a very nice media-player. Hopefully it can ship as a standard part of GNOME 2.4.

thomasvs did as usuall a splendid job in preparation for 0.5.2, GStreamer would not be half as good as it is today without his efforts, strange to think he was only looking for a ready made backend for his Dave/Dina box when he first came to ;). His Nautilus-media package seems to work very well for me now, which is rather impressive given how short it has been in existence and thomasvs having to squeeze development time on it in between work and general GStreamer hacking.

Also can’t write a diary entry today without saying a great thanks to Bitstream for their donation of ten fonts to GNOME. Go Bitstream!

Chaos at work this week. Was supposed to have two assignments yesterday. One during normal workhours and one in the evening.
Consulting company which I am subcontracted by and who was reposnsible for evening assignment called me at 1500 telling me that the job I was supposed to still lacked approval from customer. Today I was continuing on the daytime job I was doing yesterday, but now my boss calls and tells me I might have to stop as the contract is still not signed. She would call back with further info after doublechecking.

Free Software news

Wondered why the declared GStreamer freeze seemed to be partially ignored. The reason was simple, I had given the date 22nd of January as the start for the freeze :)

Anyway I think I came to the conclusion that the rules I had proposed for the freeze was probably to strict/beuracratic anyway. Think i will send out a new freeze mail tommorow with more practical freeze rules. I mean the point of a freeze is to stabilize the software not make the developers life a pain.

Got a friendly accussation of rumour mongering last night :) Seems the Eazel story I put in the summary was based on a inaccurate heavily edited transcript of another interview. Considering how much I berate mainstream media for their lack of source control I guess I should be ashamed. But when I did read it I didn’t see any hint that the article was just based on another article.

I also had another story I had to cut at last minute about IBM planing to ship Linux desktops in co-operation with Red Hat and Ximian. Not sure what happened there, but wondering I if they must have changed the story I linked to. Could be that the IBM rep. where talking about a deal that where not ready to be announced yet. (Is this the big announcment for LWE that the Ximian guys have been hinting about?) Well guess time will tell :)

I have also ordered my airplane tickets for Belgium. It will be a fun 10 days with visits to fellow GStreamer hackers, FOSDEM and visiting my cousin in Antwerpen.

Been following the Safari discussions with some interest. Even when the Safari team told their reasoning it was something about the decission that made me wonder somewhat, but I hadn’t been able to put my finger on exactly what. Yesterday it struck me what didn’t make sense to me about the decision. It was to couragous or to desperate. I mean a big corporation never takes a chance and does something couragous. Going with a relativly unproven html engine is simply not something a big corporation would do when creating a browser. A big corporation goes with the safe choice, the rendering engine that is known to render the most pages correctly, that works with as many online banks as possibly and so on.

The only exception to this is when a big company is desperate about doing something that would give them an edge, at that point choosing the outsider candidate could be something a big corporation could do. But is Apple that desperate? Not in my opinion.

So what made them take the decision to choose khtml over gecko then? Well it wasn’t speed or memory use, as many people have pointed out, the statistics Apple gave about the advantages of Safari was mostly bogus and misleading. Shaver’s example of how they for instance compared khtml’s size to that of the Java-laden Netscape browser suite says it all.

Well reading Dave Hyatt diary was what triggered me seeing why the choice was made. He says ‘one of the goals of Safari is to provide a fast and efficient HTML rendering engine for Mac application developers. Apple is actively
preparing a Safari SDK that will be available later this year.’, in which context choosing khtml do make sense. I would think that having a html widget available for the developers is much more important than Safari the browser, Safari is mostly a PR stunt I would think. Anyway the things one would look for in a html widget is not really the same as the ones you look for in a html engine for a browser. For such a widget size and ease of modification becomes the important factors, which also happens to be the factors given by the Safari developers. The fact is that even GNOME use a khtml derrivative in the form of the Evolution gtkhtml widget, and many of reasons for the choice of khtml back then was the same as the reasons that Apple has for choosing khtml now.

Something struck me the other day. I no longer know everyone who hangs out in . Somewhere between 6 months and 1 year ago I would know who everyone was, what they where working on etc., I even tended to remember people who had just been in the channel a couple of times before.

So what has happened? Well we became to big. Earlier we where so few in that channel that is was natural to say hi and start a conversation with everyone that popped in, but at some point to many people where starting to pop-inn and the number got so large that I had trouble remembering who the people who held a low profile where.

While the size of the channel is a nice confirmation about the success of the project I must say I also miss the old ‘small village’ charm of the channel.

I guess this happens with most IRC channels cause it happened with the Abiword channel too. In the begining we where just 4-5 people who tended to be there, today I only know ‘who’ half of the people are and I feel I only really know the people who where there from those early days.

Anyway we are enacting a hard freeze on GStreamer in preparation for our 0.6.0 release which we will in about a week. The 0.6.x series is meant to be a stable series we maintain for use with the GNOME 2.2 series. Hopefully we will feel prepared for a 1.0 release togheter with GNOME 2.4 and maybe move GStreamer down into the GNOME Development plattform.

obi: Possible I do misunderstand the scope of MAS. But the target for GStreamer is to be a toolset for creating such things as Non-Linear Video editors and advanced sound mixing tables etc. GStreamer is also being used as the backend for audio and video web streaming solutions, like web radio for instance. We also provide and backend for creating simple audio and video playback applications.

MAS is to me primarly a sound&video server to replace ESD and artsd. I know they do have an architecture for video and audio manipulation, which I guess could make them a competitor as a backend for media playback applications like XMMS and such, but I do not think MAS intends to be or would be suitable as the basis of a NLE. I could be wrong of course not having studied MAS extensivly. There is also the question of being theoretically able to do something and actually doing it.

Hard won success is so much sweeter.

After strugling with the threading issues in GStreamer so long it feels very good to finally be able to put them behind me. I have compiled glibc more times than I would ever want to over the last few weeks in an attempt to help solve the threading issue. One of the major headaches with this is that we have felt that our thread code was not the issue, but we hadn’t managed to pinpoint what in glibc was to blame either. Of course the more time went by without a solution the more one starts to question the sanity of our own code. But after submiting a bug report to Red Hat (and getting a reply the same day!) I ended up compiling glibc from Rawhide to use with phoebe. And like magic our threading code started working also on i686 optimized glibc.

Only downside was that I was thinking we could offer the new glibc as an rpm for people on RH80 to use, but it seems the new glibc has some dependency on a newer kernel than the one shipping with RH80. So I guess we just have to tell people to either use i386 glibc with RH80 or wait for RH81.

With the threading issue resolved this weekend I found energy again to do some series media testing and thanks to the help of Wim we managed to get many little issues fixed that had crept into the code over the last few months of thread paralysis :)

Was also shown that GPE has a nice little media player for handheld devices using GStreamer, very cool.

I also saw someone posting about MAS the other day and comparing it to GStreamer. Well we (GStreamer) do not consider MAS to be direct competition even if there are some areas of overlap. In fact we have met up with Mike and Leon on several occassions and are planing on making a MAS plugin as soon as MAS is released. We are also considering to propose MAS as the official sound server for GNOME if it turns out ok.

Only downside is jorn‘s little temporary defection, but I feel confident we can get him back on track after 8.1 comes out :)

Lots of patches for GStreamer submitted to bugzilla and I feel bad for not getting them merged, I have partly held it of since I am unable to build rpms atm and I have used GStreamer CVS through RPMS almost since I joined the project. It is a silly excuse really cause I guess I can do what the others do and just run things uninstalled, but part of me have this notion that by sticking to the RPM strategy I help keep GStreamer buildable and discover disting issues sooner etc.
Guess I better bite the sour fruit tommorow and just use the system uninstalled and get those patches merged :)

We did a API change today based on a suggestion from gnomedesktop.org
, but it was widely discussed. If you are interested in how pros deal with API changes you should read this little log from IRC ;)

I also cleaned my appartment today. It do feel good to sit and feel that it is clean and tidy around you. But I do have to admit that if my cousins little son, (age 12,) wasn’t coming to stay with me for the weekend I probably wouldn’t have found the motivation to clean up the place. But I wouldn’t want him to go home to his mother after the weekend and telling her my appartment is a health hazzard :)

I am taking him to see Lord of the Rings two towers on Saturday so I guess I get to see it twice on the Cinema :)

Speak of the sun and it shines

Had a rather funny experience today. A friend and me was out yesterday to go cross-country skiing. We where thinking of trying the tracks somewhere new, but due to being rather confused about where this new location was we ended up almost on the opposite side of town. Anyway the place we ended up driving through was the place a girl from my past live(d), and I wondered aloud what she was doing these days since I hadn’t seen or heard of her in 3 years. Got a little nostalgic thinking of her.

Funny enough, this morning I meet her by chance on the way to work. She was still very cute. No idea about her current civil status, but I plan to find out. (Not that I think something will come of it, but I live by the policy that you will never regret trying, you only regret not trying.

On the GStreamer front things are looking great. We are currently debugging the new threadless scheduler made by Wim Taymans and it seems to work very well. Heard someone say that with this new scheduler gst-player had better seeking performance than totem (using xine). Considering that xine has been focusing on such issues for a much longer time I think that is quite a feat.

We also had the first success raport of the new scheduler working with Rhythmbox so I feeling more and more confident about it solving our issues.

For my own part I tried debugging the threading issues some more. The current theory has been that we had issues with i686 compiled glibc on Red Hat since they used the -O3 optimisation flag. This turns out to be inncorret afact since I tried making two rpms, one using -O2 and one using -O1 and both gave me the same issue. The i386 glibc packages using these different optimization flags worked like a charm. So my guess is that there is a bug in the i686 threading coding in glibc that we trigger somehow, one that is not related at all to what compile time flags used.

I am also exited about our new ffmpeg based plugin. thomasvs has been working hard on integrating ffmpeg into our build in a nice fashion and Ronald Bultje has been working on ironing out the remaining issues with it. Seems our last headache is the autoplugger, spider, which still needs love or maybe even a full rewrite.

I have also updated all my computers to phoebe, the new Red Hat beta. Some anoying bugs (hey, it is a beta), but not more than I can live with since the updated GNOME and XFree stuff is worth it. Would be happy thought if anyone know how I can fix the power management support so that the system shuts down properly. Have a feeling I need to recompile the kernel, but if thats the case I will not bother.the case I will not bother.the kernel, but if thats the case I will not bother.the case I will not bother.