Phew, what a ride the last 5 days have been! While working on the cairo-dock code some more, I got an eMail from Karl Lattimer asking if he can take over my code, once I’ve done my experimenting, to make a full dock-like application out of it. I surely welcome this! Furthermore he suggested to get in touch with Alex Graveley (main developer behind gimmie), beause the project wants/needs some cairo-love. Oh and Karl already registered and setup a site for his planned effort. See…
http://www.gnome-dock.org
I then did get in contact with Alex pointing him to the cairo-dock experiment, which happended with some funky timing, as Alex was about to email me about it *g* Then I got a first tweaked version from Behdad Esfahbod tuneing icon-placement, event-throttleing and font-rendering. I merged that with my stuff. In the mean time David Turner, who just recently wrote some great patches for cairo, xft and freetype beautifying subpixel font-rendering, writes on on the cairo mailing-list about some profiling he did with the cairo-dock code resulting some some optimizing patches for cairo. Those patches were happily accepted by Carl Worth, main master behind cairo itself. And if this wasn’t enough David Reveman, whom everybody should know by now from glitz/Xgl/compiz, sent me a patched version of cairo-dock adding glitz- and benchmarking support. Merged that too. Somewhere in between Jono Bacon does some pimping for me and - like Alex - wonders why I don’t show up at Guadec. Well, the main reason is the lack of cash. I’ll already burn everything in spare for going to LUGradio Live. I didn’t ever consider going to Guadec because it is too big/serious/over-my-head. Or put in another way… LUGRadio seems less intimidating to me. So the two poke me to at least try to ask Qium Gil if I can get in somehow. It turns out Qium also would like to see me hit Guadec. Sadly he has to turn my request for sponsorship down. Which I can surely understand. But I got flights covered via other means now and only need some place to sleep. Anybody got some square-feet free in their bungalows for a sleeping-sofa?
Guess what, I’m not done yet. Kristian “krh” Hoegsberg, chief of the wobbly windows among other things, pointed me towards some cairo-dock derived experiments he did with his new akamaru-engine. Check out the resulting dock binary after you compiled the stuff, which can be obtained there (Kristian just told me, that this tarball gets automatically regenerated as soon as he pushes changes to his repository):
people.freedesktop.org/~krh/akamaru.tar.gz
And just a couple of minutes ago Behdad told me on IRC, that he also did the same thing, merging code-stuff with David Reveman’s bits and pieces and asked for my latest version *sigh* I deeply regret to still not have setup my own public (git-) repository at people.freedesktop.org/~macslow. This would have made all this much easier.
Hot damn… what a ride sofar! OpenSource rocks plain hard!!! If you ever need a vivid and current example at OpenSource-magic at work. This is it *g*
Oh, I bet you want to see a current screencast and some code. No problem…

crisp and fast (click to play back, ogg/theora, ~2.5 MBytes)
BTW, that’s the first screencast, where I tried to record 20 fps with gvidcap and it did not crash on me *Strike*!
Some current code. You’ll need glitz-enabled cairo 1.1.6 for this. Also running under a composited environment (Xgl/compiz, xcompmgr, AIGLX etc.) would be nice. I’ve only tested this with plain Xorg/xcompmgr and Xgl/compiz under Gnome 2.14.1. Your mileage may vary, if you are running KDE, XFCE or else. The fastest and best looking way to start cairo-dock is to use this command:
./cairo-dock —glitz —surface-buffering
A word of caution though. I see rendering-artefacts when using —glitz in combination with —surface-buffering. I should try this with glitz from CVS-head maybe. Also be sure to checkout the —benchmark option, to see how fast cairo-dock can go without any throttleing (this will hammer your CPU of course). I get about 400-500 fps that way. If I disable the rendering of the text-labels, which are not surface-buffered, I get something around 1700 fps. Also check the cairo-mailinglist for some benchmarks David Reveman did, using a more current and tuned version of Xgl (improved server-side gradients and software-scaleing).
I hope this will start to make an end to complains about cairo and related libraries to be slow. They way it presents itself now is cool already. Just some code-example used to learn and better understand cairo/glitz/librsvg was enough to bring performance-tuneing and profiling to the surface (more public awareness) again. The main developers behind those mentioned libraries (btw, Dominic Lachowicz also did his part on working out some tuneing inside librsvg in those magical 5 days) know for sure what they are doing and have the right ideas what to optimize and how. But they need help and feedback… and no trolling. For example I picked up some discussion from Carl Worth and David Turner sparked by my questions on the mailing-list. They identified some “low hanging fruit”-optimizations. Carl will also do some major work on the cairo-core for tuneing the tesselator over the summer. David Turner will look into this too, if I recall correctly. I never want to hear that “it’s too slow”-crap again. Those “moaners” should better stand up and get their hands dirty, write some code, try out stuff, ask questions, look for help etc. Just don’t be lazy and help to make that difference now!
To Karl Lattimer: While I still have to setup (learn) git at people.freedesktop.org/~macslow (I’ll also finally put the official cairo-clock repository there) Behdad is about to put the most recent code for cairo-dock in his git-tree (that’s at people.freedesktop.org/~behdad/cairo-dock.git I believe). So Karl, I’d suggest you’ll grab stuff from there, and inject it in the svn-repo at www.gnome-dock.org to jumpstart the beginnings of gnome-dock.