Forking GTK+ for Google Summer of code

Having discussed how to evolve GNOME on LUGRadio I figured that
an interesting proposal for a Google Summer of Code project would be to fork GTK+. Many people in the community have talked about how GNOME 3 would need to happen outside the current structures. I also think that nothing fundamental will change in GNOME without a new GTK+ giving the impetous for such a change. So a enterprising student could put together a proposal for taking GTK+ and trying to make a ‘Beryl’ version. The goal might not need to be to create something that would actually become GTK+, but instead come up with changes to GTK+ that enables some stunning graphical effects inside GTK+ applications, kind what they are doing with Beryl on the window manager level. So the ‘fork’ would not care about things maintainability, portability or sensibiilty, but instead try to enable some select demo applications to do some amazing looking things. Enlightenment (which also sports a GUI toolkit these days) would be a good example for ideas for some cool effects, Beryl another. Another idea could be to try to integrate librsvg with GTK+ and use it to do interesting things. The goal of such projects should simply be to try to inspire the GNOME community into taking the leap.

When GNOME originally came out its themeing capabilities essentially set the bar for letting users and developers change the look and feel of their desktop. Lets try to do so again :)

And to make it clear. With Fork I don’t mean an actuall fork in the sense of a new project meant for a life of its own, more of doing a wild and wacky experiemental branch.

GStreamer and Google Summer of Code 2007 (part 2)

Ok, so it seems GStreamer didn’t make it into GSoC this year. I haven’t gotten any official explanation and I don’t think I will ever get one either. What it do seem like is that most projects which participated last year got close to automatic re-approval unless they fucked up last year. This is course meant the number of slots open for new organisations was very small and looking at the new entries compared to last year it seems they focused on getting organisations doing something that felt a little different from the already participating organisations. So while I part of my feel almost insulted on behalf of GStreamer looking at some of the projects accepted, I think it is important to remember that they are there because they where there last year and did a decent job of mentoring their students, not because Google did any kind of importantance/relevance evalulation of the participating projects.

For for students looking into doing GStreamer related projects my suggestion is the same as we proposed last year and which worked out well for many students. Submit your proposal to another project which is relevant for your proposal, the most easy targets being GNOME and KDE for application projects using GTK+ and Qt. But also other projects are of course possible candidates.

LUGRadio and me

So in case anyone missed it I participated in the most recent edition of LUGRadio mostly talking about various multimedia related things. Had a fun time hanging out with Ade, Matt, Jono and Stuart in the English heartland for one evening. Listening to oneself recorded like that is quite scary, one realize how mangled some sentences come out and how badly some words get pronounced :)

Schrodinger 0.5.0

So I cut a new release of Schrodinger today, our Dirac implementation. David Schleef has been kicking ass lately and this release feature much much improved image quality over the previous development snapshot.

.

We are still not 100% there yet, but things are moving forward at a good pace. You can get the latest package at the Schrodinger website.

GStreamer and Google Summer of Code 2007

So in order to not miss out like last year we have managed to get our
application for participating in Google Summer of Code submitted in time this year. So if everything goes as we hope GStreamer will be a separate GSoC project this year. We invite any application developer using GStreamer to add projects proposals to our SoC2007 wiki in addition to any GStreamer ‘internal’ proposals you might have.

UK trip

So I spent most of this week in England doing various meetings. Spent Monday and Tuesday at Brunel University participating in a project meeting for a EU project we are involved inn. While the University buildings didn’t look terribly exciting I have to say that my impression when walking around campus was that they have managed to create a very interesting multi ethnic environment at Brunel with a very wide specter of cultures and backrounds and without any specific one to be the clear majority.

On Tuesday evening I headed down to London and crashed at Matthew and Soz place. Its always a blast to hang out with Matthew exchanging the latest news and discussing items of shared interest. Still think his dogs looks freaky though, but it also has to be said that I don’t think I ever met more friendly and good natured dogs either.

Wednesday morning I went travelled into downtown London to have a meeting with Dolby. My contact at Dolby was a nice fellow named Andy Dowell who funnily enough was going to Barcelona later the same day.
Might be heading over to Dolby HQ in the US later this year to discuss further how we can work together as it turned out we and Dolby might have further common interests than I first thought.

After the Dolby meeting I took the train up to the English heartlands, that tranquil place where people live a happy and content life following in the footsteps of their forefathers. This place, also known as Wolverhampton, is also the location of four large gents who wants to turn this rural paradise into the information technology pulpit of England. We did a recording of LUGRAdio in the evening where apart from serious topics related to Linux and open source we managed to discuss embarassing sexual desires and orange underwear.

Interesting comments

Found this interview today with Jeff Bonforte, a Yahoo VP. He talks a lot about usability of web applications and claims a focus on usability is the reason Yahoo messenger and email is more popular than Google’s services. I would have been more impressed if he had also mentioned that a large part of those numbers might be related to Yahoo’s email and chat being around for quite a few years before Google got into those markets.

He has an interesting quote in the article though:
On Yahoo! Messenger for the Mac client, I reduced the functionality by 30 per cent and increased usage by 35 per cent. As we take out features, it tends to do better with the mainstream users.

Apart from being an interesting quote in terms of the eternal discussion about GNOME usability it did strike me that being an online application maker has some great advantages, like being able to measure exactly how each change you do influence usage patterns and popularity.

New Schroedinger release out

So David Schleef is kicking ass currently and our Dirac implementation, Schrodinger, is moving quickly forward these days. I just cut a new development releases of both Schroedinger and libtsmux so be sure to check them out.

The plan is to try to make much more frequent releases from here out as things are coming together fast now and the package is at least generally useful for testing.

Be aware that the weakest link in the package is currently the encoder, but this is also what David is focusing on at the moment so expect to see big strides forward in the next few weeks and months in terms of quality of encoded video. Could be we need to tweak the encoder setting further also, although David tried add some sensible defaults for this release.

Here is a couple of screenhots of Totem in action playing a movie I transcoded from a HD Quicktime clip.

dirac screenshot 1

dirac screenshot 2

The pipeline used to create this movie was:


gst-launch-0.10 filesrc location=animusic2dvd_m720p.mov ! decodebin2 name="decode" decode. ! ffmpegcolorspace ! videoscale method=1 ! "video/x-raw-yuv, width=(int)640, height=(int)360" ! ffmpegcolorspace ! schroenc ! queue ! oggmux name=mux ! gnomevfssink location=file:///tmp/anime.ogg decode. ! audioconvert ! vorbisenc ! queue ! mux.

OpenOffice almost ate my document

I spent quite some time yesterday trying to editing a document I had been sent. I didn’t actually check the file format before I loaded it into OpenOffice, but today I found that it was a RTF file. Anyway, the editing went well and I saved my changes without thinking about it and sent the document of to the people I was corresponding with. Then today I got a mail back that the document was unreadable. It was at this point I realized it was a RTF file and not a Doc file I had been sent.
I tried loading the file in OpenOffice and it failed miserably. So it turns out that OpenOffice exports RTF which neither it or Microsoft office is able to read.

Out of the blue came my saviour. Abiword was able to import the document and save it again in a RTF format that OpenOffice was able to read and all my changes to the document were saved from oblivion.
Abiword had a weird error where it ‘blinked’ on certain section of the document, but that was a small issue compared to the almost destruction caused by OpenOffice :)

The beauty of free software

So I spent quite a bit of time this weekend working on an article I’ve been brewing on for quite a while. Don’t know if the article ever will reach a state where I will publish it, but as I was writing it suddenly two of the things I where writing about people where blogging about already working on. So a big thanks to John Stowers for his work on Conduit and to Ryan Lortie for his work on panelcompositebin. Thanks to guys like you doing great stuff my article almost become redundant even before its out of first draft status :)

On Sawfish, Metacity and Linus

Managed to get myself embroiled in a little email exchange with Linus about configurability options and GNOME. Seesm that little exchange even managed to hit Slashdot.
The misconception that I feel Linus have and a lot of the people posting on Slashdot is that patches that adds configuration options to GNOME would automatically get rejected. This is simply false.

At best this is an extrapolation of the quite strict policy of Metacity in particular and the general GNOME policy of ‘no GUI options before thinking’. This policy did come into effect with GNOME 2.x and it came about both due to UI design usability discussions, but also as a result of seeing our config menu’s get clogged with options which mostly where there due to bugs, missing features and a heterogen deployment environment below GNOME. It was decided to focus on actually trying to solve these lower level issues instead of offering config options to work around them. A talk by Jim Getty’s at GUADEC called ‘Draining the swamp’ being considered the call to arms on that issue. Projects such as HAL, the rejuvenated X.org effort and many other freedesktop projects came about almost as a direct consequence of this.

There was also some misconceptions on the Sawfish to Metacity switch that happened in this time period. It is not correct to say that Sawfish got replaced by Metacity due to it being deciding its high degree of configurability was bad, far from it. Sure there
where people who felt Sawfish went a bit overboard in that regard, but that was not the reason it got ditched as the default GNOME window manager. The reason for that was simply that after Eazel went backrupt and Sawfish maintainer John Harper had to find a new job, he ended up at Apple. And thus due to Apple corporate policy, and probably long hours at work, he couldn’t maintain Sawfish anymore. The troublesome thing about Sawfish was that it was written in its own Lisp dialect so as part of Sawfish you got both an extra lisp interpreter and GTK+ bindings for it. This meant that the C/C++ skills in the GNOME community didn’t lend themselves well to fixing bugs in Sawfish.
The two libraries and Sawsfish itself thus went unmaintained as John went away and nobody where interested/felt qualified to take it over. Thus the GNOME developers had to look around for a new window manager and it was decided that one should aim for one written in C like the rest of the desktop libraries to lessen the chance of future maintenance prolems. To answer this call Havoc Pennington stepped up with Metacity and it was quickly adopted by a lot of GNOME developers and users and subsequently chosen as the standard.

Metacity was philosophically very different from Sawfish and Havoc
was very strict about what he let into Metacity, due to an idea that requests for config options was usually a result of broken behaviour in the window manager and thus feeling the behaviour should be fixed instead of a config option added to work around the problem.
This was in line with the policy that do govern GNOME as mentioned above, but in the case of Metacity this was applied in a much sterner/hardcore fashion that for most other modules.
But due to Havoc’s high profile in the community and beyond it I think the policy he kept for metacity colored how people outside the project perceivedthe project as a whole which is the main reason I see for this hard killed perception to live on.

Anyway, back to Linus and his irritation with Metacity. I can’t not say if his patches will go in or not, its not my call. But I did at least add them properly to bugzilla for Linus to ensure they get reviewed and commented on at least.

More on GStreamer Windows and Mac support

Thought I should follow up on yesterdays post about Windows and MacOS X with some more information. The work is done in collaboration with the great guys behind the SongBird
music player
. Those who don’t know Songbird its a very cool cross platform Music player built using XUL, the same GUI toolkit used to make Firefox. The idea is that by making sure GStreamer runs perfectly on Windows and MacOSX in addition to Linux/Unix they can use GStreamer as their backend across all platforms. The Songbird guys are doing some very cool things around web integration of their music player so I recommend everyone to take a look at their onsite demo.

Anyway to show of where we are at here is a screenshot. The screenshot shows our small proof of concept Windows mediaplayer playing a video under Windows. For a more full featured experience look to future versions of Songbird.

You can download binaries for Windows including the little sample player here on this site maintained by Sebastian Moutte who is our resident Windows porting expert.

We are a little shorter along on the Mac side of things as the Mac videosink is currently leaking memory like crazy and screenshots of audio playback tend to be a bit less interesting :). We expect squish those leaks and polish it up further in the next few weeks so I can provide a nice screenshot of GStreamer on MacOS X too.

We are implementing the GStreamer XOverlay interface accross all these video sinks. That means that you should be able to write a video player without any kind of special casing across platforms for video and audio output, GStreamer’s output autodetection should take care of it for you. So for Songbird it will let them write the code embedding the video window once and it will work using native video output on both Windows and MacOSX in addition to under X Windows of course. When these elements are 100% finished and polished up I think porting things like Totem or Pitivi to Windows and MacOSX should be quite trivial in theory with both GTK+ and GStreamer running natively on these platforms. That said practice tend to prove that there would be some work involved :)

It should also be mentioned that thanks to Songbird we are not only able to provide these elements to the community, but they will be fully documented and polished up. This means the Windows and MacOS X output support will be 100% solid and not just ‘checkbox’ level.