<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet Imendio</title>
	<link rel="self" href="http://people.imendio.com/atom.xml"/>
	<link href="http://people.imendio.com/"/>
	<id>http://people.imendio.com/atom.xml</id>
	<updated>2008-11-21T21:25:07+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en">
		<title type="html">GTK+ css engine - now with border-image!</title>
		<link href="http://www.andreasn.se/blog/?p=91"/>
		<id>http://www.andreasn.se/blog/?p=91</id>
		<updated>2008-11-18T17:24:35+00:00</updated>
		<content type="html">&lt;p&gt;Rob Straudinger &lt;a href=&quot;http://www.gnome.org/~robsta/gtk-css-engine/screenshots/14-border-image.png&quot;&gt;recently added border-image support&lt;/a&gt; to his css markup-powered GTK+ Engine. This allows you to create really fancy buttons and other cool stuff in a rather simple way. Check out &lt;a href=&quot;http://ejohn.org/blog/border-image-in-firefox/&quot;&gt;John Resig&amp;#8217;s post&lt;/a&gt; about border-image implementation in Firefox for some cool demos of what you can do with this.&lt;/p&gt;
	&lt;p&gt;Back at GUADEC in Birmingham, when &lt;a href=&quot;http://linuxart.com/log/&quot;&gt;Garrett&lt;/a&gt; proposed using css-markup for widget themes, I thought it sounded a bit too cracky to be doable. Rob&amp;#8217;s recent work, however, looks really sweet and since every designer and his mother out there knows css, this is a great way to lower the barriers of theme creation.&lt;/p&gt;
	&lt;p&gt;Rob is in great need of designers to test these things out in the wild though, so if you&amp;#8217;re a designer with css knowledge who always wanted to create widget themes, don&amp;#8217;t hesitate to check it out from svn and give it a shot.&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;svn checkout http://svn.gnome.org/svn/gtk-css-engine/trunk gtk-css-engine&lt;/code&gt;&lt;/p&gt;
	&lt;p&gt;You can find out more about the &lt;a href=&quot;http://blogs.gnome.org/theming/2008/10/27/towards-gtk-css-engine-03/&quot;&gt;upcoming 0.3 release&lt;/a&gt; in the &lt;a href=&quot;http://blogs.gnome.org/theming/&quot;&gt;GNOME Theming blog&lt;/a&gt;.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Slowly but surely</title>
		<link href="http://people.imendio.com/richard/archives/2008/11/slowly_but_sure.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.346</id>
		<updated>2008-11-12T13:46:12+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;As I have &lt;a href=&quot;http://people.imendio.com/richard/archives/2008/02/native_mac_them_1.html&quot;&gt; mentioned before&lt;/a&gt;, I'm working on a native theme for the &lt;a href=&quot;http://developer.imendio.com/projects/gtk-macosx/&quot;&gt;Mac OS X port of GTK+&lt;/a&gt; from time to time. I recently spent some time on the theme engine to make Devhelp look a bit better on Mac, with focus on some widgets that are very visible in Devhelp: notebooks, scrolled windows (and other widgets) with shadows, and scrollbars.&lt;/p&gt;

&lt;p&gt;It's clearly very difficult to get things to look exactly right and in some cases I think you will have to use platform specific code to arrange widgets differently to get a really good look. BUT, nevertheless it's getting better:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://people.imendio.com/richard/screenshots/devhelp-mac-theme-20081112.png&quot;&gt;&lt;img src=&quot;http://people.imendio.com/richard/screenshots/devhelp-mac-theme-20081112.png&quot; width=&quot;350&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">GNOME Art meeting tomorrow!</title>
		<link href="http://www.andreasn.se/blog/?p=90"/>
		<id>http://www.andreasn.se/blog/?p=90</id>
		<updated>2008-11-09T22:29:52+00:00</updated>
		<content type="html">&lt;p&gt;Just a quick reminder that we&amp;#8217;re going to hold our monthly GNOME Art Meeting tomorrow (Nov 10th) at 19:00 UTC in #gnome-art on irc.gnome.org&lt;/p&gt;
	&lt;p&gt;On the agenda so far is:&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;secondary GNOME Logo&lt;/li&gt;
	&lt;li&gt;Plans for GNOME 2.26&lt;/li&gt;
	&lt;li&gt; continued discussion about GNOME 3.0 plans&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;See the &lt;a href=&quot;http://live.gnome.org/GnomeArt/Meetings/20081110&quot;&gt;wiki page&lt;/a&gt; for more info.&lt;br /&gt;
Hope to see you there!
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">You’re a what?</title>
		<link href="http://www.andreasn.se/blog/?p=89"/>
		<id>http://www.andreasn.se/blog/?p=89</id>
		<updated>2008-10-29T00:03:36+00:00</updated>
		<content type="html">&lt;p&gt;Nine out of ten times I tell people I&amp;#8217;m a Icon Designer, they tend look at me like I&amp;#8217;ve just told them I&amp;#8217;m a &lt;a href=&quot;http://thinkexist.com/quotation/yes-shrubberies_are_my_trade-i_am_a_shrubber-my/345659.html&quot;&gt;Shrubbery Maker&lt;/a&gt;. Sometimes I just lie instead.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Blend astehetics</title>
		<link href="http://www.andreasn.se/blog/?p=88"/>
		<id>http://www.andreasn.se/blog/?p=88</id>
		<updated>2008-10-27T17:43:23+00:00</updated>
		<content type="html">&lt;p&gt;Myself, &lt;a href=&quot;http://blogs.gnome.org/carlosg/&quot;&gt;Carlos&lt;/a&gt; and Hagen attended &lt;a href=&quot;http://fscons.org/&quot;&gt;FSCons&lt;/a&gt; (Free Society Conference and Nordic Summit) this weekend and on Sunday I did a talk on the Tango Project.&lt;/p&gt;
	&lt;p&gt;As we all know by now,  &lt;em&gt;&amp;#8220;The Tango Project is nothing less than an attempt to impose Gnome&amp;#8217;s bland aesthetics on all other desktop environments.&amp;#8221;&lt;/em&gt; [1], and the KDE artists decided to define their own look and feel as part of their visual refresh for KDE4.&lt;br /&gt;
This, at the time made me a bit worried, as having the other big desktop not buying into the idea of a cross-desktop look and feel makes things slightly harder for your friend the application developer to the point where he &lt;a href=&quot;http://www.beltzner.ca/mike/archives/2007/10/11/giving_the_penguin_a_makeover.html&quot;&gt;almost decides&lt;/a&gt; not to do any visual integration to with your free desktop at all.&lt;/p&gt;
	&lt;p&gt;Looking at the recent work on the smaller sizes on &lt;a href=&quot;http://www.oxygen-icons.org/&quot;&gt;Oxygen&lt;/a&gt; and the work on bigger sizes in &lt;a href=&quot;http://tango.freedesktop.org&quot;&gt;Tango&lt;/a&gt;, it turns out that perhaps my worries was for no reason though. [2]&lt;/p&gt;
	&lt;p&gt;&lt;a href=&quot;http://www.andreasn.se/blog/images/oxygenvstango.png&quot;&gt;&lt;img src=&quot;http://www.andreasn.se/blog/images/oxygenvstango.png&quot; alt=&quot;Oxygen vs. Tango?&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
	&lt;p&gt;So, I showed this to my girlfried. It turns out she couldn&amp;#8217;t spot the difference between the styles. But ok, fair enough, she&amp;#8217;s not used to looking and these, and might not spot the important differences. But what about the audience at my talk, who are used to staring at these graphical elements all day long?&lt;br /&gt;
Sorry guys, it turns out they guessed wrong in about 50% of the cases. Good news for ISV/ISD&amp;#8217;s though I guess! &lt;img src=&quot;http://www.andreasn.se/blog/wp-images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
	&lt;p&gt;1. From the old &amp;#8220;throw this stuff out now please&amp;#8221;-thread on freedesktop.org&lt;br /&gt;
2. To be honest, sneaky as we are, we have been working on lowering the gaps between the styles. Sorry for that.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">A little refreshment for Catfish</title>
		<link href="http://www.twotoasts.de/index.php?/archives/11-A-little-refreshment-for-Catfish.html"/>
		<id>http://www.twotoasts.de/index.php?/archives/11-guid.html</id>
		<updated>2008-10-24T21:27:39+00:00</updated>
		<content type="html">&lt;p&gt;Even though development of the next Catfish line is not exactly fast forwarding, it's time for a maintainance release. Translators have added new languages, which is totally great, and I fixed a handful of small things. Plus, notably, the package now includes the new logo which has already been on the website for some time.&lt;/p&gt;

&lt;p&gt;So &lt;a href=&quot;http://www.twotoasts.de/media/catfish/catfish-0.3.2.tar.gz&quot;&gt;download catfish v0.3.2&lt;/a&gt; already!&lt;/p&gt;</content>
		<author>
			<name>Christian Dywan</name>
			<email>nospam@example.com</email>
			<uri>http://www.twotoasts.de/</uri>
		</author>
		<source>
			<title type="html">Christian Dywan - TwoToasts.de</title>
			<subtitle type="html">free software &amp;amp; artwork</subtitle>
			<link rel="self" href="http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss"/>
			<id>http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss</id>
			<updated>2008-10-29T09:15:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Devhelp assistant</title>
		<link href="http://people.imendio.com/richard/archives/2008/10/devhelp_assista_1.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.345</id>
		<updated>2008-10-23T09:33:28+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I've added a pretty useful feature to Devhelp in trunk, which in combination with some lisp code makes emacs extra helpful when coding. I'm already starting to get addicted to always having the right documentation available :)&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Update: added screenshot. Click the image to see a video of it &lt;a href=&quot;http://people.imendio.com/richard/screencasts/devhelp-assistant.ogg&quot;&gt;in action&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://people.imendio.com/richard/screencasts/devhelp-assistant.ogg&quot;&gt;&lt;img src=&quot;http://people.imendio.com/richard/screencasts/devhelp-assistant.png&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It should work well with all gtk-doc generated reference docs (like GTK+ &amp;amp; friends).&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">20.10.2008 Bugzilla Utility buglist.py</title>
		<link href="http://blogs.gnome.org/timj/2008/10/20/20102008-bugzilla-utility-buglistpy/"/>
		<id>http://blogs.gnome.org/timj/2008/10/20/20102008-bugzilla-utility-buglistpy/</id>
		<updated>2008-10-20T12:10:48+00:00</updated>
		<content type="html">&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Managing bug lists has become an ubiquitous task when dealing with the GNOME or Nokia bugzillas. At some point I became fed up with the involved cut and pasting, searching and sorting, so I cooked up a small command line utility to construct bug list URLs and format bug list summaries in text form. Here&amp;#8217;s it in action:&lt;/p&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;pre&gt;    echo &quot;junktext 556578 moretext 516885 &quot; | buglist.py gnome
    &lt;a href=&quot;http://bugzilla.gnome.org/buglist.cgi?bug_id=516885,556578&quot;&gt;http://bugzilla.gnome.org/buglist.cgi?bug_id=516885,556578&lt;/a&gt;
     516885 - Add RGBA support
     556578 - GIMP windows stay on top of other windows&lt;/pre&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;It knows a good number of bugzillas, such as the ones from Gnome, FreeDesktop, Maemo, Nokia, OpenedHand, GCC, LibC and Mozilla. More bugzilla URLs can easily be added, and it handles HTTPS authentication that some of the corporate bugzilla installations require.&lt;/p&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;The script is available here: &lt;a href=&quot;http://testbit.eu/~timj/tools/buglist.py&quot;&gt; buglist.py&lt;/a&gt; (v0.4)&lt;/p&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Have fun and send in patches. ;)&lt;/p&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;</content>
		<author>
			<name>Tim Janik</name>
			<uri>http://blogs.gnome.org/timj</uri>
		</author>
		<source>
			<title type="html">Blog of Tim Janik</title>
			<subtitle type="html">Technical ramblings by Tim Janik</subtitle>
			<link rel="self" href="http://blogs.gnome.org/timj/feed"/>
			<id>http://blogs.gnome.org/timj/feed</id>
			<updated>2008-10-20T13:20:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">A minor version bump</title>
		<link href="http://www.twotoasts.de/index.php?/archives/10-A-minor-version-bump.html"/>
		<id>http://www.twotoasts.de/index.php?/archives/10-guid.html</id>
		<updated>2008-10-18T23:08:07+00:00</updated>
		<content type="html">&lt;p&gt;The version bump is long overdue. The last development cycle was&lt;br /&gt;
interesting in a way, there was refactoring, experiments that did not&lt;br /&gt;
turn out as good as intended, and a number of annoying bugs turned up,&lt;br /&gt;
but the #midori crew is pretty good at hunting bugs, and we came back to&lt;br /&gt;
a stablish build in the end. Among exciting new features are&lt;br /&gt;
customizable toolbar, error pages, the beginnings of user documentation,&lt;br /&gt;
overall various interface improvements, history support in the form of a&lt;br /&gt;
panel and allowing to hide the menubar.&lt;br /&gt;
The future will probably bring integration of history in the location, a&lt;br /&gt;
proper toolbar editor and support for importing netscape bookmark. We&lt;br /&gt;
will see what else there is going to be.&lt;/p&gt;

&lt;p&gt;So &lt;a href=&quot;http://goodies.xfce.org/releases/midori/midori-0.1.0.tar.bz2&quot;&gt;download midori v0.1.0&lt;/a&gt; already!&lt;/p&gt;</content>
		<author>
			<name>Christian Dywan</name>
			<email>nospam@example.com</email>
			<uri>http://www.twotoasts.de/</uri>
		</author>
		<source>
			<title type="html">Christian Dywan - TwoToasts.de</title>
			<subtitle type="html">free software &amp;amp; artwork</subtitle>
			<link rel="self" href="http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss"/>
			<id>http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss</id>
			<updated>2008-10-29T09:15:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Abort, Retry, Fail?</title>
		<link href="http://blogs.gnome.org/kris/2008/10/13/abort-retry-fail/"/>
		<id>http://blogs.gnome.org/kris/?p=254</id>
		<updated>2008-10-13T20:44:56+00:00</updated>
		<content type="html">&lt;p&gt;So let&amp;#8217;s try this blogging thing again &amp;#8212; now from an all new location (I am at blogs.gnome.org now) and a brand-new hackergotchi courtesy of &lt;a href=&quot;http://andreasn.se/&quot;&gt;Andreas&lt;/a&gt;.  Wordpress Mu supports importing old LiveJournals these days, which also worked fine for me, except for all new lines to have disappeared.  But who is interested in old news anyway?&lt;/p&gt;
&lt;p&gt;This blog post is really long overdue.  Over the summer I slowly started to hack on a full rewrite of GtkTreeView&amp;#8217;s drag and drop implementation and related exported API.  People familair with the matter know about the numerous problems.  Unfamiliar people probably still know about #70479: &amp;#8220;DnD with multiple selected items won&amp;#8217;t work&amp;#8221;.  Yes, this bug has been open since 2002 and it feels really great to be finally getting somewhere.  I think I&amp;#8217;ve got the new API basically nailed (it really works beautifully and I am personally quite fond of it) and I am currently trying to get support for the old API back in place in some kind of compatible fashion.  As I also rewrote all of the internal drag and drop signal handling in GtkTreeView, I really threw out everything and started from scratch.  For me this also means I now have a fairly good knowledge of how drag and drop actually works ;)  I got a huge amount of inspiration out of &lt;a href=&quot;http://mail.gnome.org/archives/gtk-devel-list/2004-February/msg00232.html&quot;&gt;a reply from Federico&lt;/a&gt; on my earlier attempts to get multiple item DnD going.&lt;/p&gt;
&lt;p&gt;Another thing that has been brewing originated at the GTK+ Hackfest earlier this year in Berlin.  I sat down with both Johan Dahlin and Emmanuele Bassi to have a quick look at &amp;#8220;simple list APIs&amp;#8221; for GtkTreeView in python and perl (matching person and languange is left as an exercise for the reader ;).  Here &amp;#8220;simple list API&amp;#8221; really means an easy to use wrapper around GtkTreeView (and its companion objects).  From the API found in both language bindings, I devised a nice, simple and easy to use C API.  The implementation for this is also already there.&lt;/p&gt;
&lt;p&gt;Both of these projects are really getting somewhere so expect detailed API proposals and review on gtk-devel-list in 1.5 month or so.  I don&amp;#8217;t know yet what to tackle next, I really want to finish off these two first.  However, my to do and idea list is infinite, so finding something else shouldn&amp;#8217;t be hard.&lt;/p&gt;
&lt;p&gt;
In other news, the end of my time at a University is finally in sight.  I really hope to have received my Master&amp;#8217;s degree well before the start of Summer 2009.  I am really enjoying the classes I am taking this semester, but still it will be great when I have finally finished my degrees.  Having the end (finally) in sight here also gives me a lot more inspiration, hence the GTK+ stuff I am getting done these days.  And I also reached the age of 24 years 1.5 weeks ago &amp;#8230; I am really getting old now :/ ;)&lt;/p&gt;</content>
		<author>
			<name>Kris Rietveld</name>
			<uri>http://blogs.gnome.org/kris</uri>
		</author>
		<source>
			<title type="html">Kristian Rietveld</title>
			<subtitle type="html">Hidden in a forest full of trees ...</subtitle>
			<link rel="self" href="http://blogs.gnome.org/kris/feed"/>
			<id>http://blogs.gnome.org/kris/feed</id>
			<updated>2008-10-13T20:45:10+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">False rumors</title>
		<link href="http://www.andreasn.se/blog/?p=87"/>
		<id>http://www.andreasn.se/blog/?p=87</id>
		<updated>2008-10-09T17:55:45+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://www.andreasn.se/blog/ http://www.vuntz.net/journal/2008/10/08/492-congratulations-andreas&quot;&gt;Vincent&lt;/a&gt; is a filthy liar, I&amp;#8217;m &lt;em&gt;not&lt;/em&gt; getting married.&lt;br /&gt;
Might be that he&amp;#8217;s nervous because he&amp;#8217;s going to be a father next month so that his mind plays tricks on him.&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">07.10.2008 Recent Interviews</title>
		<link href="http://blogs.gnome.org/timj/2008/10/07/07102008-recent-interviews/"/>
		<id>http://blogs.gnome.org/timj/2008/10/07/07102008-recent-interviews/</id>
		<updated>2008-10-07T15:17:19+00:00</updated>
		<content type="html">&lt;p&gt;&lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Two weeks ago, Bruce Byfield did an interview with me about Manju. The article is now up at linux.com and gives a general overview of the project scope: &lt;a href=&quot;http://www.linux.com/feature/149041&quot;&gt; Manju Project Article&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; There&amp;#8217;s also been a German interview with Sven Herzberg and me some months back at the Berlin Hackfest, which covers some historical background around Gtk+, some technical bits, possible future directions and how it relates to GNOME. The German podcast of this is up at Chaosradio Express: &lt;a href=&quot;http://chaosradio.ccc.de/cre079.html&quot;&gt;GTK+ und GNOME Podcast (DE)&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Tim Janik</name>
			<uri>http://blogs.gnome.org/timj</uri>
		</author>
		<source>
			<title type="html">Blog of Tim Janik</title>
			<subtitle type="html">Technical ramblings by Tim Janik</subtitle>
			<link rel="self" href="http://blogs.gnome.org/timj/feed"/>
			<id>http://blogs.gnome.org/timj/feed</id>
			<updated>2008-10-20T13:20:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">To fail 1000 or 1024 times?</title>
		<link href="http://www.andreasn.se/blog/?p=86"/>
		<id>http://www.andreasn.se/blog/?p=86</id>
		<updated>2008-09-30T20:25:49+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://blogs.gnome.org/cneumair/2008/09/30/1-kb-1024-bytes-no-1-kb-1000-bytes/&quot;&gt;Christian&lt;/a&gt;, I did ask my girlfriend about it. I&amp;#8217;m sorry to tell you that she don&amp;#8217;t get the whole Kilobyte, Megabyte, Gigabyte-thing at all because she honestly finds it way too abstract.&lt;br /&gt;
This is true for a whole bunch of other people I know, that needs their computers to get stuff done, as well.&lt;br /&gt;
So yeah, we fail. Hard.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="de">
		<title type="html">Das GTK+/GNOME-Entwicklerhandbuch</title>
		<link href="http://herzi.eu/archives/137-Das-GTK+GNOME-Entwicklerhandbuch.html"/>
		<id>http://herzi.eu/archives/137-guid.html</id>
		<updated>2008-09-26T13:20:02+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://mawa.myblog.de/&quot;&gt;Matthias Warkus&lt;/a&gt; hat es endlich geschafft; die &lt;a href=&quot;http://www.amazon.de/Das-GTK-GNOME-Entwicklerhandbuch-Matthias-Warkus/dp/3898645126/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1222435147&amp;sr=8-1&quot;&gt;Neuauflage&lt;/a&gt; des hübschen &lt;a href=&quot;http://www.amazon.de/GNOME-2-0-Entwicklerhandbuch-Matthias-Warkus/dp/3898421821/ref=sr_1_20?ie=UTF8&amp;s=books&amp;qid=1222435158&amp;sr=8-20&quot;&gt;orangenen Buchs&lt;/a&gt;…&lt;/p&gt;</content>
		<author>
			<name>Sven Herzberg</name>
			<email>nospam@example.com</email>
			<uri>http://herzi.eu/</uri>
		</author>
		<source>
			<title type="html">Herzis Blog (Artikel mit Tag FLOSS)</title>
			<subtitle type="html">My little place on the web...</subtitle>
			<link rel="self" href="http://herzi.eu/rss.php?serendipity%5Btag%5D=GNOME&amp;serendipity%5Btag%5D=FLOSS"/>
			<id>http://herzi.eu/rss.php?serendipity%5Btag%5D=GNOME&amp;serendipity%5Btag%5D=FLOSS</id>
			<updated>2008-09-26T13:20:02+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">GTK+ OS X framework</title>
		<link href="http://people.imendio.com/richard/archives/2008/09/gtk_os_x_framew.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.344</id>
		<updated>2008-09-24T10:19:12+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Finally we have a binary build for the native GTK+ Mac OS X port! You can check it out &lt;a href=&quot;http://www.gtk-osx.org/&quot;&gt;here&lt;/a&gt;. The download is an installer that comes with frameworks for GTK+ and friends. The installed frameworks can be used directly in the Xcode IDE and come with a project template that sets all the necessary flags and variables to build against the frameworks.&lt;/p&gt;

&lt;p&gt;You can also use the frameworks for building normal autotools based projects. This requires a bit of magic, so you will need a special jhbuild setup for it to work, which is currently work in progress but should be ready soon.&lt;/p&gt;

&lt;p&gt;What is missing still is support for creating standalone apps, i.e. packages that contain the run-time parts of the frameworks needed to run the app. Also note that this is a beta version so please let me know if you run into any problems so we can work them out.&lt;/p&gt;

&lt;p&gt;The binaries are Intel only, and require Mac OS X 10.4 or newer. Note that the Xcode integration is only tested with 3.x so feedback on using 2.5 is appreciated.&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Launching Imendio Labs</title>
		<link href="http://www.andreasn.se/blog/?p=85"/>
		<id>http://www.andreasn.se/blog/?p=85</id>
		<updated>2008-09-24T09:29:37+00:00</updated>
		<content type="html">&lt;p&gt;Today we&amp;#8217;re proud to announce &lt;a href=&quot;http://labs.imendio.com&quot;&gt;Imendio Labs&lt;/a&gt;, a window to the crazy software experiments that go on inside the Imendio headquarters.&lt;br /&gt;
We&amp;#8217;re not only intending to blog about our own discoveries and inventions there, but about other things that we find interesting as well.&lt;/p&gt;
	&lt;p&gt;First out is the sweet &lt;a href=&quot;http://www.gtk-osx.org/&quot;&gt;GTK+ Mac OS X Framework&lt;/a&gt; that &lt;a href=&quot;http://people.imendio.com/richard/archives/2008/09/gtk_os_x_framew.html&quot;&gt;Richard already blogged about&lt;/a&gt;.&lt;br /&gt;
Expect more cool stuff in Labs shortly!&lt;/p&gt;
	&lt;p&gt;&lt;center&gt;&lt;img src=&quot;http://www.andreasn.se/blog/images/drake.png&quot; alt=&quot;drake&quot; /&gt;&lt;/center&gt;
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">GNOME 2.24 Release Party in Gothenburg</title>
		<link href="http://www.andreasn.se/blog/?p=84"/>
		<id>http://www.andreasn.se/blog/?p=84</id>
		<updated>2008-09-20T10:05:43+00:00</updated>
		<content type="html">&lt;p&gt;GNOME 2.24 is soon upon us. In order to celebrate the release &lt;a href=&quot;http://kallepersson.se/blog/&quot;&gt;Kalle Persson&lt;/a&gt;, Clemens Buss, &lt;a href=&quot;http://www.sandklef.com/hesa/&quot;&gt;Henrik Sandklef&lt;/a&gt; and myself is going to meet at &lt;a href=&quot;http://hitta.se/ViewDetailsPink.aspx?vad=flygarns+haga&amp;var=g%f6teborg&amp;Vkiid=EbVyQoZLVCIgqwIetyiWWg%3d%3d&amp;Vkid=13422868&amp;isAlternateNumberResult=False&quot;&gt;Flygarns Haga&lt;/a&gt; on Friday the 26th around 19.00 or so and have some beers.&lt;br /&gt;
You can add yourself to the &lt;a href=&quot;http://live.gnome.org/BeerInGothenburg&quot;&gt;wiki page&lt;/a&gt; if you&amp;#8217;re coming.&lt;/p&gt;
	&lt;p&gt;It seems that some of the London hackers &lt;a href=&quot;http://live.gnome.org/BeerInLondon&quot;&gt;have similar ideas&lt;/a&gt;.&lt;/p&gt;
	&lt;p&gt;&lt;strong&gt;In other news&lt;/strong&gt;&lt;br /&gt;
Oh, and here is a random photo from our hackfest:&lt;br /&gt;
&lt;img src=&quot;http://www.andreasn.se/blog/images/hackfest.jpg&quot; alt=&quot;shameless plug&quot; /&gt;&lt;/p&gt;
	&lt;p&gt;So anyway, Henrik is also one of the organizers behind the upcoming &lt;a href=&quot;http://fscons.org/&quot;&gt;FSCons&lt;/a&gt; conference in Gothenburg during 24-26th of October, make sure to come there. I&amp;#8217;m doing a talk on &lt;a href=&quot;http://tango.freedesktop.org/&quot;&gt;Tango&lt;/a&gt; and there is going to be a talk on &lt;a href=&quot;http://www.gtk.org&quot;&gt;GTK+&lt;/a&gt; from &lt;a href=&quot;http://blogs.gnome.org/carlosg/&quot;&gt;Carlos&lt;/a&gt;. Last year was quite fun and I expect nothing less this year.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">GTK+ and GStreamer on Mac</title>
		<link href="http://people.imendio.com/richard/archives/2008/07/gstreamer_and_g.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.341</id>
		<updated>2008-09-20T08:12:06+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I've used Gossip and Giggle in the past as examples of creating Mac bundles of GTK+ apps. Now I have another example that is a bit more complex, in that it uses GStreamer. The test case this time is the good old...&lt;/p&gt;

&lt;p&gt; Jamboree music player!&lt;/p&gt;

&lt;p&gt;I dug it up from the GNOME SVN archive and it worked pretty much out of the box after cleaning up the makefiles a bit and adding support for the &lt;a href=&quot;http://developer.imendio.com/projects/gtk-macosx/integration&quot;&gt;Mac integration&lt;/a&gt; library to hook up the menubar.&lt;/p&gt;

&lt;p&gt;The latest version of the Mac &lt;a href=&quot;http://people.imendio.com/richard/archives/2008/07/new_version_of.html&quot;&gt;bundler&lt;/a&gt; and the bundle file &lt;a href=&quot;http://git.imendio.com/?p=richard/jamboree.git;a=blob;f=data/packaging/mac/jamboree.bundle;h=b336261b7ad04deeebd30158bbbf0c12bab25c57;hb=HEAD&quot;&gt; here&lt;/a&gt; results in a nice little bundle.&lt;/p&gt;

&lt;p&gt;It looks like this:&lt;br /&gt;
&lt;a href=&quot;http://people.imendio.com/richard/screenshots/jamboree-gtk-osx.png&quot;&gt;&lt;img width=&quot;400px&quot; src=&quot;http://people.imendio.com/richard/screenshots/jamboree-gtk-osx.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GStreamer works nicely, and using the QuickTime wrapper element gives access to all formats supported by the platform.&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Mac integration</title>
		<link href="http://people.imendio.com/richard/archives/2008/02/mac_integration.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.336</id>
		<updated>2008-09-20T08:10:39+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;If you've followed the development of Gimp, Gossip or Giggle, you've probably noticed that they can be built on Mac OS X, using the GTK+ OS X &lt;a href=&quot;http://developer.imendio.com/projects/gtk-macosx&quot;&gt;port&lt;/a&gt; and that they can use the global menu bar on that system. The code to do that has been floating around for a while as a cut-and-paste file you could use in your app, but after copying it one time too many I went ahead and made a real package of it instead. It's available &lt;a href=&quot;http://developer.imendio.com/projects/gtk-macosx/integration&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It also has the beginnings of integration with some other parts like the dock and bundle APIs.&lt;/p&gt;

&lt;p&gt;The mandatory screenshot of it in action:&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://people.imendio.com/richard/screenshots/gossip-mac-menu.png&quot;&gt;&lt;img width=&quot;200px&quot; src=&quot;http://people.imendio.com/richard/screenshots/gossip-mac-menu.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">09.09.2008 The Manju Project</title>
		<link href="http://blogs.gnome.org/timj/2008/09/09/09092008-the-manju-project/"/>
		<id>http://blogs.gnome.org/timj/2008/09/09/09092008-the-manju-project/</id>
		<updated>2008-09-09T20:35:45+00:00</updated>
		<content type="html">&lt;p&gt;&lt;!--- paragraph break --&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a&gt; &lt;img src=&quot;http://testbit.eu/~timj/blogstuff/manju-logo.png&quot; /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Andreas Nilsson and I recently started the Manju project which aims at creating graphical widget toolkit themes from SVG files in a toolkit independent fashion. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; It combines the idea of a pixmap theme engine, &lt;a href=&quot;http://jimmac.musichall.cz/log/?p=436&quot;&gt; Jimmac&amp;#8217;s &amp;#8220;One Canvas Workflow&amp;#8221;&lt;/a&gt;, SVG markup features and Inkscape export functionality to fully automate the creation of a scalable and stretchable pixmap theme from an SVG source. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; We&amp;#8217;re currently working out the &lt;a href=&quot;http://pages.testbit.eu/manju/theme-spec.html&quot;&gt; SVG theme file specification&lt;/a&gt;, the &lt;a href=&quot;http://pages.testbit.eu/manju/package-spec.html&quot;&gt; binary pixmap theme file format&lt;/a&gt;, as well as &lt;a href=&quot;http://pages.testbit.eu/manju/snapshots/moon7.svg&quot;&gt; sample files&lt;/a&gt; and sample code to demonstrate toolkit side rendering. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Everybody is invited to participate and at this early stage feedback on every aspect is highly appreciated. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; We&amp;#8217;re particularly looking for people who like to review our specs, implement widgets or theme engines and who like to create alternate themes. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; The project is hosted as a git repository: &lt;/p&gt;
&lt;pre&gt;	&lt;a href=&quot;http://git.testbit.eu/Manju&quot;&gt;http://git.testbit.eu/Manju&lt;/a&gt;
&lt;/pre&gt;
&lt;p align=&quot;left&quot;&gt; And provides a communication forum and web presence: &lt;/p&gt;
&lt;pre&gt;	&lt;a href=&quot;http://groups.google.com/group/manju-project&quot;&gt;http://groups.google.com/group/manju-project&lt;/a&gt;
&lt;/pre&gt;
&lt;p align=&quot;left&quot;&gt; Automated snapshots of our ongoing work are also provided: &lt;/p&gt;
&lt;pre&gt;	&lt;a href=&quot;http://pages.testbit.eu/manju/snapshots/nordic.png&quot;&gt;http://pages.testbit.eu/manju/snapshots/nordic.png&lt;/a&gt;
&lt;/pre&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Tim Janik</name>
			<uri>http://blogs.gnome.org/timj</uri>
		</author>
		<source>
			<title type="html">Blog of Tim Janik</title>
			<subtitle type="html">Technical ramblings by Tim Janik</subtitle>
			<link rel="self" href="http://blogs.gnome.org/timj/feed"/>
			<id>http://blogs.gnome.org/timj/feed</id>
			<updated>2008-10-20T13:20:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">New version of GTK+ Mac app bundler</title>
		<link href="http://people.imendio.com/richard/archives/2008/07/new_version_of.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.339</id>
		<updated>2008-09-04T07:13:50+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I've released a new version of the Mac &lt;a href=&quot;http://developer.imendio.com/projects/gtk-macosx/creating-app-bundles&quot;&gt;bundler&lt;/a&gt;, 0.5. The changes are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correct the GTK_DATA_PREFIX variable&lt;/li&gt;
&lt;li&gt;Add beginnings of framework support&lt;/li&gt;
&lt;li&gt;Clarifications in README and example bundle file&lt;/li&gt;
&lt;li&gt;Remove support for non-included Pango font module&lt;/li&gt;
&lt;li&gt;Fix locale in the launcher script&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Download &lt;a href=&quot;http://ftp.imendio.com/pub/imendio/ige-mac-bundler/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">GTK+ Application bundles on Mac</title>
		<link href="http://people.imendio.com/richard/archives/2008/03/gtk_application.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.338</id>
		<updated>2008-09-04T07:13:34+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I previously wrote about &lt;a href=&quot;http://people.imendio.com/richard/archives/2008/02/mac_integration.html&quot;&gt;Mac integration for GTK+ applications&lt;/a&gt;, and another important part of that is to create &lt;i&gt;app bundles&lt;/i&gt;. An app bundle is a self-contained packaged up version of your application that can be distributed easily and put wherever the user wants by using simple drag and drop. This is a very common way of distributing applications on Mac.&lt;/p&gt;

&lt;p&gt;To make it easier to create such packages of GTK+ applications, we have created a &lt;a href=&quot;http://developer.imendio.com/projects/gtk-macosx/creating-app-bundles&quot;&gt;tool that does most of the work&lt;/a&gt;. All you have to do is to setup a small configuration file that points the tool to your binary and any data files that you want to ship. All dependent libraries are sucked in automatically. The application must be able to find its data files dynamically of course, since there is no hard coded path where it will end up.&lt;/p&gt;

&lt;p&gt;You can take a look at the &lt;a href=&quot;http://svn.gnome.org/viewvc/gossip/trunk/data/packaging/mac/gossip.bundle?revision=2732&amp;view=markup&quot;&gt;bundle file for Gossip&lt;/a&gt; for a quite simple example.&lt;/p&gt;

&lt;p&gt;I have some plans to add support for dragging in frameworks and not just libraries, and to add better support for translations and other specific resources.&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Hack weekend</title>
		<link href="http://www.andreasn.se/blog/?p=83"/>
		<id>http://www.andreasn.se/blog/?p=83</id>
		<updated>2008-09-03T21:09:01+00:00</updated>
		<content type="html">&lt;p&gt;As the observant Daniel &lt;a href=&quot;http://home.cs.tum.edu/~siegel/news/2008_09_01-announcing_the_speck_hack_fest_2008&quot;&gt;already noted&lt;/a&gt;, I had a small hackfest at my apartment in Gothenburg this weekend.&lt;br /&gt;
The attendees was &lt;a href=&quot;http://kallepersson.se/blog/&quot;&gt;Kalle Persson&lt;/a&gt;, Clemens Buss and myself + this odd fellow that Clemens brought along.&lt;br /&gt;
&lt;img src=&quot;http://www.andreasn.se/blog/images/traveling-gnome.jpg&quot; alt=&quot;Traveling GNOME&quot; /&gt;&lt;/p&gt;
	&lt;p&gt;We had quite a nice time. Discussed some ideas around GNOME, Clemens did some Emblem hacking and Kalle and I designed a website and drew some icons. We&amp;#8217;re definitely doing this again soon and I hope more people will be interested in joining.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Fast and fervent follow up</title>
		<link href="http://www.twotoasts.de/index.php?/archives/8-Fast-and-fervent-follow-up.html"/>
		<id>http://www.twotoasts.de/index.php?/archives/8-guid.html</id>
		<updated>2008-08-31T15:45:13+00:00</updated>
		<content type="html">&lt;p&gt;This is a rather early follow up release, mainly early because of GIO issues that were rather hard to reproduce and made Midori unusable for some users. Also waf was updated because the previous version wouldn't build on OpenBSD.&lt;/p&gt;

&lt;p&gt;Two new features, so it's also worth a look for those who were not affected by the above issues: if you hide the statusbar Midori will now show the loading progress inside the location entry. Also typing an address in the location and pressing Alt + Enter will open the address in a new tab.&lt;/p&gt;

&lt;p&gt;So &lt;a href=&quot;http://goodies.xfce.org/releases/midori/midori-0.0.21.tar.bz2&quot;&gt;download midori v0.0.21&lt;/a&gt; already!&lt;/p&gt;</content>
		<author>
			<name>Christian Dywan</name>
			<email>nospam@example.com</email>
			<uri>http://www.twotoasts.de/</uri>
		</author>
		<source>
			<title type="html">Christian Dywan - TwoToasts.de</title>
			<subtitle type="html">free software &amp;amp; artwork</subtitle>
			<link rel="self" href="http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss"/>
			<id>http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss</id>
			<updated>2008-10-29T09:15:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Moving to Xfce land</title>
		<link href="http://www.twotoasts.de/index.php?/archives/7-Moving-to-Xfce-land.html"/>
		<id>http://www.twotoasts.de/index.php?/archives/7-guid.html</id>
		<updated>2008-08-25T00:35:20+00:00</updated>
		<content type="html">&lt;p&gt;Behind the scenes there were a few changes and I still didn't announce anything, since I still hadn't done all bits of it yet. The last bit being the first release of Midori under the hood of Xfce Goodies.&lt;/p&gt;

&lt;p&gt;What does Midori moving in with Xfce bring us? The repository moved to &lt;a href=&quot;http://git.xfce.org/kalikiana/midori/&quot;&gt;git.xfce.org/kalikiana/midori&lt;/a&gt;, which has a fancy web interface for the repository. There is a &lt;a href=&quot;http://wiki.xfce.org/midori_faq&quot;&gt;Midori FAQ&lt;/a&gt; in the Xfce wiki now, that everybody can read and also add to and improve. Releases are from now on done via the Xfce Goodies Release Manager which generates checksums automatically and sends notifications to the Xfce mailing list. Neither the website nor the bug tracker will change, though, no need to change bookmarks for those.&lt;/p&gt;

&lt;p&gt;What does Midori having moved in with Xfce mean for non-Xfce users? Basically, nothing will change for the average user, Midori is still as portable as before. Are there going to be efforts towards integration with Xfce? Yes, but not exclusively. If you want Midori to work better on your favourite system, let's talk about it. And maybe some day in the future Xfce users will see Midori as their default web browser. But anything will be optional, there are no plans with regard to essential dependencies on Xfce libraries. No need to worry there.&lt;/p&gt;

&lt;p&gt;By the way, #midori on irc.freenode.net is a happy place, be welcome to join us for a little chat. ^_^&lt;/p&gt;</content>
		<author>
			<name>Christian Dywan</name>
			<email>nospam@example.com</email>
			<uri>http://www.twotoasts.de/</uri>
		</author>
		<source>
			<title type="html">Christian Dywan - TwoToasts.de</title>
			<subtitle type="html">free software &amp;amp; artwork</subtitle>
			<link rel="self" href="http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss"/>
			<id>http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss</id>
			<updated>2008-10-29T09:15:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">I love portability</title>
		<link href="http://www.twotoasts.de/index.php?/archives/6-I-love-portability.html"/>
		<id>http://www.twotoasts.de/index.php?/archives/6-guid.html</id>
		<updated>2008-08-24T01:42:47+00:00</updated>
		<content type="html">&lt;p&gt;Time for a new Midori release. There are probably not as many visible changes as with the previous release, but one thing that is a major selling point for some users, is single instance support. Provided you have libUnique which is based on dBus, subsequent calls of &amp;quot;midori&amp;quot; will call the original instance instead of spawning independant processes. More importantly &amp;quot;midori &lt;a href=&quot;http://www.twotoasts.de&quot;&gt;http://www.twotoasts.de&lt;/a&gt;&amp;quot; will open a website in a new tab. Incidentally instances are per display, so you can still run Midori on different X servers. (Note that multiple instances will still overwrite each other's config files, though).&lt;br /&gt;
Support for userscripts is being improved with time, for example Midori started to read the names of scripts and show them in the panel and the list is updated if you add new files to the folder. Also userstyles are supported now, they go in ~/.local/share/midori/styles, similar to scripts.&lt;br /&gt;
Oh, and curiously, we have an Extension icon now. The actual extension support is still incomplete but it's a start. Apart from that I actually made an effort to have *some* stock icon for any possibly missing icon in the interface except for the throbber. That still means you should have an XDG compliant theme but you won't see only broken images if icons are missing.&lt;/p&gt;

&lt;p&gt;So much for that, it's nice to see Midori coming along well. There seem to be users on more platforms than I can even claim to have seen myself by now. Midori fans use Linux, BSD, Gnome, KDE, Xfce, Openbox, MacOS, Windows, E-Ink, Maemo, ... there may be more. I am happy to observe how portability can actually work and not only serve as a marketing term.&lt;/p&gt;

&lt;p&gt;So &lt;a href=&quot;http://goodies.xfce.org/releases/midori/midori-0.0.20.tar.bz2&quot;&gt;download midori v0.0.20&lt;/a&gt; already!&lt;/p&gt;</content>
		<author>
			<name>Christian Dywan</name>
			<email>nospam@example.com</email>
			<uri>http://www.twotoasts.de/</uri>
		</author>
		<source>
			<title type="html">Christian Dywan - TwoToasts.de</title>
			<subtitle type="html">free software &amp;amp; artwork</subtitle>
			<link rel="self" href="http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss"/>
			<id>http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss</id>
			<updated>2008-10-29T09:15:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">GTK+ code rewriter</title>
		<link href="http://people.imendio.com/richard/archives/2008/08/gtk_code_rewrit.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.343</id>
		<updated>2008-08-13T18:23:10+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I have been looking at the compiler framework &lt;a href=&quot;http://llvm.org/&quot;&gt;llvm&lt;/a&gt;/&lt;a href=&quot;http://clang.llvm.org/&quot;&gt;clang&lt;/a&gt; recently in order to do automatic refactoring and code rewriting. One use case for this is to move code that does things like:&lt;/p&gt;

&lt;p&gt; gdk_window_foo (widget-&gt;window);&lt;/p&gt;

&lt;p&gt;to &lt;/p&gt;

&lt;p&gt;  gdk_window_foo (gtk_widget_get_window (widget));&lt;/p&gt;

&lt;p&gt;automatically, to get code working with a sealed GTK+.&lt;/p&gt;

&lt;p&gt;Another useful thing that can be done automatically is to change code so that only gtk/gtk.h is included, which is the recommended way, instead of many individual header files. There are more examples of things that can help developers clean up their code, such as spotting common mistakes like not chaining up in finalizers etc etc. Clang makes it quite easy to implement those ideas.&lt;/p&gt;

&lt;p&gt;I have started working on a tool to do the &lt;a href=&quot;http://people.imendio.com/richard/gtk-rewriter/&quot;&gt;accessor and header file rewriting&lt;/a&gt; as a first step. Please check it out and let me know if there are any issues or if you want to help out!&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Native Mac theme</title>
		<link href="http://people.imendio.com/richard/archives/2008/02/native_mac_them_1.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.337</id>
		<updated>2008-08-03T14:57:19+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;A frequent comment I get is that the GTK+ OS X screenshots look like... GTK+. As opposed to native Mac applications, of course. I started a native theme engine quite a while ago but got sidetracked with other things, so it's been sitting around in a git repo for some time now. It could be a fun hack if someone wants to get involved in GTK+ OS X hacking, and there is plenty of low hanging fruit to take care of. It's  quite rewarding to play around with, as the result of the work is so immediately visible.&lt;/p&gt;

&lt;p&gt;You can check it out here:&lt;/p&gt;

&lt;pre&gt;
  svn co svn.gnome.org/svn/gtk-quartz-engine/trunk gtk-quartz-engine
&lt;/pre&gt;

&lt;p&gt;Here's an example of what it looks like on 10.5:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://people.imendio.com/richard/screenshots/gossip-quartz-theme.png&quot;&gt;&lt;img width=&quot;400px&quot; src=&quot;http://people.imendio.com/richard/screenshots/gossip-quartz-theme.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Update&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The repo was moved to GNOME subversion, I've updated the info above to reflect that.&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Using Spot colors in Scribus</title>
		<link href="http://www.andreasn.se/blog/?p=82"/>
		<id>http://www.andreasn.se/blog/?p=82</id>
		<updated>2008-08-02T16:38:13+00:00</updated>
		<content type="html">&lt;p&gt;A while ago, &lt;a href=&quot;http://mihmo.livejournal.com/57437.html&quot;&gt;Máirín blogged&lt;/a&gt; about creating print originals in Inkscape and Scribus, and I can only chime in on her praise of these tools. Since I joined &lt;a href=&quot;http://www.imendio.com/&quot;&gt;Imendio&lt;/a&gt;, a large amount of what I&amp;#8217;ve done on a daily basis have been print work (stickers, t-shirts, rollups, tattoos etc.) and all of it have been done using a free software workflow!&lt;/p&gt;
	&lt;p&gt;A common obstacle you run into when using &lt;a href=&quot;http://www.scribus.net/&quot;&gt;Scribus&lt;/a&gt; for print is the lack of support for predefined &lt;a href=&quot;http://en.wikipedia.org/wiki/Spot_color&quot;&gt;spot colors&lt;/a&gt; from &lt;a href=&quot;http://www.pantone.com&quot;&gt;Pantone&lt;/a&gt;, something that usually comes handy when you need more exact colors that you looked up in a color swatch. The reason that Scribus can&amp;#8217;t include these is, as usual, because of legal reasons.&lt;br /&gt;
Luckily there exists a &lt;a href=&quot;http://wiki.scribus.net/index.php/How_to_legally_obtain_spot_colour_palettes_for_use_in_Scribus&quot;&gt;small howto in the Scribus Wiki&lt;/a&gt; how to get hold of and use these in your designs.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">About time for Midori 0.0.19</title>
		<link href="http://www.twotoasts.de/index.php?/archives/5-About-time-for-Midori-0.0.19.html"/>
		<id>http://www.twotoasts.de/index.php?/archives/5-guid.html</id>
		<updated>2008-08-02T12:55:48+00:00</updated>
		<content type="html">&lt;p&gt;While there wasn't much to hear about Midori from my side lately, the development is going better than ever. The bug tracker is doing a good job managing bugs that were previously shared over IRC and e-mail. Poking me directly for bugs is still great and I don't mind it, but having bugs publicly visible at the same time obviously makes it easier for others to help out and track development. And in fact, the number of contributors is increasing. Special thanks to Arnaud and Dale here, who tackled non-trivial tasks.&lt;/p&gt;

&lt;p&gt;Now about the new release, Midori 0.0.19. People like to ask, whether building from git is worth it. And the answer is, lately it was a remarkable difference, but of course it can break once in a while, that's always the risk. As for the features, we have better Greasemonkey compatibility with userscripts, Midori has a logo, you can zoom, you can see source code of websites (if you have GIO), you can see favicons (again, GIO required atm), there is the fancy new location entry which isn't finished but coming along promising and sessions are finally saved during runtime, so even if Midori passes away, it will remember your tabs. Oh, and support for multiple windows is much better, even though only the first window's tabs can be saved currently. Oh, and as a bonus, Midori applies a trick to make selected text in web pages work with the primary clipboard until it's fixed for good in WebKit.&lt;/p&gt;

&lt;p&gt;So &lt;a href=&quot;http://www.twotoasts.de/media/midori/midori-0.0.19.tar.bz2&quot;&gt;download midori v0.0.19&lt;/a&gt; already!&lt;/p&gt;</content>
		<author>
			<name>Christian Dywan</name>
			<email>nospam@example.com</email>
			<uri>http://www.twotoasts.de/</uri>
		</author>
		<source>
			<title type="html">Christian Dywan - TwoToasts.de</title>
			<subtitle type="html">free software &amp;amp; artwork</subtitle>
			<link rel="self" href="http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss"/>
			<id>http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss</id>
			<updated>2008-10-29T09:15:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">(Post) Guadec hack</title>
		<link href="http://blogs.gnome.org/carlosg/2008/07/21/post-guadec-hack/"/>
		<id>http://blogs.gnome.org/carlosg/2008/07/21/post-guadec-hack/</id>
		<updated>2008-07-21T12:01:48+00:00</updated>
		<content type="html">&lt;p&gt;No! this isn&amp;#8217;t another &amp;#8220;added tabs to $APP&amp;#8221; [1], Instead I decided to spend my hacking time on getting &lt;a href=&quot;http://wearables.unisa.edu.au/mpx/&quot;&gt;MPX&lt;/a&gt; work with GTK+. Surprisingly, gdk is 99% prepared to handle multiple pointers, so besides adding support there for the new XInput method to handle device grabs, most of the remaining work should just be focused on making GtkWidgets deal sanely with multiple pointers (madness awaits there&amp;#8230;). Here&amp;#8217;s a &amp;#8220;screencast&amp;#8221; of my proof app, apologies for the quality, trying to record and use both the nipple thingy and the touchpad isn&amp;#8217;t quite easy &lt;img src=&quot;http://blogs.gnome.org/carlosg/wp-content/mu-plugins/tango-smilies/face-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://people.imendio.com/carlos/gtk-mpx.avi&quot; target=&quot;_blank&quot; title=&quot;MPX+GTK&quot;&gt;&lt;img src=&quot;http://blogs.gnome.org/carlosg/files/2008/07/gtk-mpx.png&quot; alt=&quot;GTK+ getting along with MPX&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also, I&amp;#8217;ve spent one extra week in Istanbul and surroundings with &lt;a href=&quot;http://gimpfoo.de&quot;&gt;Mitch&lt;/a&gt; and Pia, It has proven to be a really beautiful place full of life, returning to Turkey is a must.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;javascript:void(0)&quot; id=&quot;file-link-47&quot; title=&quot;img_0432.JPG&quot; class=&quot;file-link image&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.gnome.org/carlosg/files/2008/07/img_0432.JPG&quot; title=&quot;The Marmara sea from Büyükada coast&quot;&gt;&lt;img src=&quot;http://blogs.gnome.org/carlosg/files/2008/07/img_0432.JPG&quot; alt=&quot;The Marmara sea from Büyükada coast&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[1] You caught me guys :), I was seriously concerned about your sanity for a while&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: In case it isn&amp;#8217;t clear, the patch isn&amp;#8217;t really far from the &amp;#8220;evil hack&amp;#8221; state, I&amp;#8217;ll just submit it to bugzilla as soon as there&amp;#8217;s some reasonable base work in which other smaller patches can be developed incrementally.&lt;/p&gt;</content>
		<author>
			<name>Carlos Garnacho</name>
			<uri>http://blogs.gnome.org/carlosg</uri>
		</author>
		<source>
			<title type="html">Carlos Garnacho</title>
			<subtitle type="html">Just another GNOME Blogs weblog</subtitle>
			<link rel="self" href="http://blogs.gnome.org/carlosg/feed"/>
			<id>http://blogs.gnome.org/carlosg/feed</id>
			<updated>2008-09-20T11:05:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Oringen 2008</title>
		<link href="http://micke.hallendal.net/blog/oringen-2008/"/>
		<id>http://micke.hallendal.net/blog/?p=293</id>
		<updated>2008-07-18T14:04:09+00:00</updated>
		<content type="html">&lt;div class=&quot;diggthisplugin&quot;&gt;
		&lt;/div&gt;&lt;p&gt;Going on vacation tomorrow for a week of orienteering in Sälen, Sweden. The terrain will vary from a more classic swedish orienteering for the first two stages and the go over to an alpine terrain with more open areas and higher altitude differences for the third and fourth stage. The last stage seems to be back to more classic terrain again with a mix of small hills and marshes.&lt;/p&gt;
&lt;p&gt;In total the event (in my class) will be about 30km as the birds fly which should translate into something like 45-50km of terrain running over the course of five days. Hopefully I&amp;#8217;ve exercised enough, I&amp;#8217;ve tried to do 4-5 sessions per week over the last couple of weeks and luckily Guadec had little impact on the overall fitness as this week felt really good.&lt;/p&gt;
&lt;span class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://micke.hallendal.net/blog/?p=293&amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_293&quot; class=&quot;akst_share_link&quot;&gt;Share This&lt;/a&gt;
&lt;/span&gt;</content>
		<author>
			<name>Mikael Hallendal</name>
			<uri>http://micke.hallendal.net/blog</uri>
		</author>
		<source>
			<title type="html">Up North</title>
			<subtitle type="html">Personal blog of Mikael Hallendal</subtitle>
			<link rel="self" href="http://micke.hallendal.net/blog/feed/"/>
			<id>http://micke.hallendal.net/blog/feed/</id>
			<updated>2008-07-18T14:05:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">16.07.2008 GUADEC 2008 Wrapup</title>
		<link href="http://blogs.gnome.org/timj/2008/07/16/16072008-guadec-2008-wrapup/"/>
		<id>http://blogs.gnome.org/timj/2008/07/16/16072008-guadec-2008-wrapup/</id>
		<updated>2008-07-16T08:45:10+00:00</updated>
		<content type="html">&lt;p&gt;&lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Guadec has been in interesting conference, particularly because it took place in Istanbul this year. I tried to keep a few notes throughout the days to wrap up the experience and discussions here. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Sunday&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Headed off for Istanbul, partial Imendio meet-up at the airport in Vienna, gathered remaining Imendians at the airport in Istanbul. Like many others, we stayed at the Golden Long Hotel near the seaside. &lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a&gt; &lt;img src=&quot;http://testbit.eu/~timj/blogstuff/sundown_bosporus.png&quot; border=&quot;1&quot; class=&quot;doxercss-frame&quot; /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Monday&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Kris and I met up with the Gnome release team where we summarized the Gtk+-3.0 ideas that have been cooked up during and after the Berlin Gtk+ Hackfest. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Tuesday&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; I was planning to attend the Maemo BOF in the morning, but shortly after arriving at the conference venue, &lt;a href=&quot;http://www.gnome.org/~federico/news.html&quot;&gt;Federico&lt;/a&gt; literally dragged me into the DVCS BOF. Still, I only managed to attend the second half of it which was almost exclusively about &lt;a href=&quot;http://bazaar-vcs.org/&quot;&gt; Bazaar&lt;/a&gt; features. People told me the first hour had been quite the contrary and focused mostly on &lt;a href=&quot;http://git.or.cz/&quot;&gt; Git&lt;/a&gt; hyping. Clearly, there was no consensus after the meeting on what the future versioning system in Gnome will be. &lt;br /&gt; I&amp;#8217;m not surprised that is the case. As things currently stand, &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt; SVN&lt;/a&gt; has very active development and user communities, Git is very actively developed, Bazaar is as well, as are a couple other &lt;a href=&quot;http://en.wikipedia.org/wiki/Version_control_system&quot;&gt; VCS&lt;/a&gt;es. Active developer and user communities are generally a good sign for a healthy project and also an indicator for future relevance. Thus, in any larger community such as the Gnome community, it&amp;#8217;s easy to find lots of critics and lots of supporters for each of the bigger versioning systems and that&amp;#8217;s unlikely to change much. Consequently, there&amp;#8217;ll not be an easy consensus on switching to a single versioning system any time soon, so I think the most productive approach for Gnome to take is to prepare the hosting of multiple VCSes, certainly SVN, Git and Bazaar. Needless to say that cross-VCS integration will also become increasingly important in the future, so focus on maturing and extending git-svn, bzr-svn, bzr-git and the like makes a lot of sense. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Later that day, we had a Gtk+ Developers meeting in the medium sized presentation room. The place was a bit too large to have the planned face to face discussions so we&amp;#8217;ve had to sacrifice some of the spontaneity to microphone resource sharing. Kris took minutes during the meeting and will probably post those to gtk-devel-list once he&amp;#8217;s found a minute to process them. The meeting was quite productive nevertheless, we discussed the upcoming Gtk+ 2.14, features and schedule for 2.16 and 3.0 and a bit of the post-3.0 road map. &lt;br /&gt; Right after that discussion, Kris and I attended the advisory board meeting where we briefly wrapped up the developers meeting, the Gtk+ Hackfest in Berlin and the improvements the Gtk+ project has seen since the &lt;a href=&quot;http://mail.gnome.org/archives/gtk-devel-list/2006-December/msg00074.html&quot;&gt; State of the Gtk+ Maintenance&lt;/a&gt; email. In particular, we stressed that we now have the &lt;a href=&quot;http://live.gnome.org/GtkTasks&quot;&gt; GtkTasks&lt;/a&gt; and &lt;a href=&quot;http://live.gnome.org/GTK+/3.0/Tasks&quot;&gt; Gtk+ 3.0 Tasks&lt;/a&gt; wiki pages which can serve as an entry point for contributors and assistants to the project at various experience levels, in particular for companies that want to sponsor developer resources. Also for people that have an interest in long term Gtk+ project involvement, feel free to read up on &lt;a href=&quot;http://blogs.gnome.org/timj/2008/05/16/16052008-becoming-a-gtk-maintainer/&quot;&gt;how to become a Gtk+ maintainer&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Pizza looks weird in Istanbul BTW: &lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a&gt; &lt;img src=&quot;http://testbit.eu/~timj/blogstuff/pizza_istanbul.png&quot; border=&quot;1&quot; class=&quot;doxercss-frame&quot; /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Wednesday&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Almost by accident (I was mostly looking for an air conditioned hall in the afternoon), I happened to be watching &amp;#8220;Gnome Documentation: A year in review&amp;#8221; by &lt;a href=&quot;http://donscorgie.livejournal.com/&quot;&gt;Don Scorgie&lt;/a&gt; where he described the new user documentation tool &lt;a href=&quot;http://live.gnome.org/ProjectMallard&quot;&gt;Mallard&lt;/a&gt;. For some time now, I&amp;#8217;ve been working on a &lt;a href=&quot;http://en.wikipedia.org/wiki/Wiki_syntax&quot;&gt; Wiki syntax parser&lt;/a&gt; for &lt;a href=&quot;http://git.testbit.eu/Doxer/&quot;&gt; Doxer&lt;/a&gt; to unify the markup I have to use for my blog, inline documentation and CMS content &lt;a href=&quot;http://testbit.eu/filter/tips&quot;&gt;markup at testbit.eu&lt;/a&gt;. (I have a blog entry in the queue on this for another day.) In this context, implementing a Doxer markup backend that generates Mallard&amp;#8217;s XML input could be an attractive markup alternative for future Gnome documentation - it at least ended up on my ever growing TODO list. ;) &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Lots of people approached me throughout this and the following days for a chat about Gtk+-3.0 and what comes after that. With the &lt;a href=&quot;http://mail.gnome.org/archives/gtk-devel-list/2008-June/msg00204.html&quot;&gt; merging of the GSEAL branch&lt;/a&gt; into upstream trunk recently, there&amp;#8217;s been a lot of focus on the technical preparative work we&amp;#8217;re doing for the actual 3.0 release which is planned as an ABI break to Gtk+-2.16 without adding any new features (it&amp;#8217;s basically just a re-release with all deprecated code removed and current &amp;#8220;private&amp;#8221; API really made private by moving it to non-installed source files). &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; What has been lacking emphasis in this course is that 3.0 is going to be the necessary &lt;em&gt;enabler&lt;/em&gt;, needed to work on implementing future visions of Gtk+ and to refactor the code base back to a healthy state where it becomes maintainable again. Quite expectedly, the need for the sealing and accompanied ABI break has been questioned several times, so I&amp;#8217;ll reiterate the reasoning here: &lt;/p&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt; &lt;em&gt;&lt;a href=&quot;http://en.wikiquote.org/wiki/The_Matrix&quot;&gt;Everybody falls the first time.&lt;/a&gt;&lt;/em&gt; &lt;br /&gt; Code development in open source projects is very evolutionary, especially for projects that don&amp;#8217;t clone or reimplement existing specified APIs like Libc. A whole chapter is spent on prototypes in &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Mythical_Man-Month&quot;&gt;The Mythical Man-Month&lt;/a&gt;: &lt;br /&gt; &lt;em&gt;&amp;#8220;Plan to throw one away; you will, anyhow.&amp;#8221;&lt;/em&gt; &lt;br /&gt; So newly added components and APIs are almost certain to need fixups or revamps in future iterations (likely &lt;a href=&quot;http://en.wikipedia.org/wiki/Second-system_effect&quot;&gt;more than once&lt;/a&gt;). If critical internals are being exposed and eternal ABI stability has been promised, this however becomes impossible. Given the development history of Gtk+ and the variety of interests in this project, it is vital for its future success to prepare for future changes and allow iterative improvements. After all, progressive improvements, appreciation of contributions and adaptions to changing circumstances is where the free software development model shows its strength. The &lt;a href=&quot;http://en.wikipedia.org/wiki/Waterfall_model&quot;&gt;waterfall design model&lt;/a&gt; is not it. &lt;/li&gt;
&lt;li&gt; &lt;em&gt;Gtk+-2.x is essentially a dead end.&lt;/em&gt; &lt;br /&gt; Everybody agrees that Gtk+-2.x is pretty much dead in a few revisions because of the huge work involved in its maintenance and no relief in sight with its current ABI maintenance policy. This is at least true for all current and past core team members (i.e. everyone who actively tried maintaining 2.x over a significant period). The question is whether we move to an entirely new toolkit (Clutter, Rapicorn, Qt, HippoCanvas, etc) or whether that &amp;#8220;new&amp;#8221; toolkit is Gtk+-3.0 which may be largely API compatible with Gtk+-2.x. In either case, applications and libraries will need to migrate to a new toolkit base with a different ABI, the main difference is the involved porting effort. &lt;/li&gt;
&lt;li&gt; &lt;em&gt;GLib and Gtk+ do have a means to deal with API changes:&lt;/em&gt; &lt;br /&gt; 1) We provide new alternative interfaces (functions). &lt;br /&gt; 2) We deprecate old interfaces (functions) or provide compatibility code in old interfaces. &lt;br /&gt; Notably, this does only work for API that is exported via function symbols. Structure fields that are directly accessed from application code can&amp;#8217;t be deprecated and removed without breaking ABI, and there is no compatibility code upstream could provide for these kind of accesses either. That&amp;#8217;s why we want to move away from exposing any structure internals in 3.0 and beyond. &lt;/li&gt;
&lt;li&gt; &lt;em&gt;3.0 will ABI-incompatibly remove all deprecated and private APIs.&lt;/em&gt; &lt;br /&gt; Of course, the above described deprecation scheme only scales well if deprecated APIs are &lt;em&gt;really removed&lt;/em&gt; from the code base at some point. Technically, this is an ABI break which is why GLib/Gtk+ have not been doing this since 2.0. However, lots of other vendors do this to keep a healthy code base, e.g. Qt does break ABI between major releases, Python 3.0 will be incompatible with 2.5, Apple does remove long deprecated APIs in newer releases of Mac OS X, Symbian broke API and ABI in 9.x, Microsoft broke behavior from .NET 1.1 to 2.0, and the list goes on&amp;#8230; &lt;br /&gt; By exposing only function symbols as future public interfaces, we&amp;#8217;ll be able to provide arbitrary compatibility functionality for old interfaces on top of new components, add helpful runtime warnings for iterative migration and constrain future ABI breaks to removal of properly deprecated interfaces. &lt;/li&gt;
&lt;li&gt; &lt;em&gt;User visible gains are post-3.0 features:&lt;/em&gt; &lt;br /&gt; Since GLib and Gtk+ are largely volunteer contribution based projects, it&amp;#8217;s close to impossible to plan exact arrival of future features. However the following is a list of things that have (partially) been discussed as post-3.0 work during the Gtk+ Hackfest already:
&lt;ul type=&quot;square&quot;&gt;
&lt;li&gt; Full support of alpha transparency for all widgets; &lt;/li&gt;
&lt;li&gt; Support for (partial) stacking of widgets (needs transparency); &lt;/li&gt;
&lt;li&gt; Offering easier layouting facilities; &lt;/li&gt;
&lt;li&gt; Support for animated visible transitions between widget states; &lt;/li&gt;
&lt;li&gt; Providing new UI metaphors based on simulation of physical effects like acceleration, 3D browsing of image collections, 3D skimming through notebook pages, and more; &lt;/li&gt;
&lt;li&gt; Using IDL based type data generators and code generators to improve the way widgets are implemented; &lt;/li&gt;
&lt;li&gt; Implementing a new theming system for the toolkit; &lt;/li&gt;
&lt;li&gt; Moving towards exposing widget features only via interfaces that have their own handle (asymmetric query_interface). &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; This is how GSEAL, the Gtk+-3.0 release and a couple &lt;a href=&quot;http://live.gnome.org/GTK+/3.0/Tasks&quot;&gt;remaining outstanding tasks&lt;/a&gt; are going to enable development of exciting future user visible features. The next step for Gtk+ to get work in visionary areas off the ground is to start consideration of feature feasibility and implementations, required resources and tentative schedules. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; At the end of the day, we had the Opening Cocktails Party, during which I managed to catch Hallski tattooing J5: &lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a&gt; &lt;img src=&quot;http://testbit.eu/~timj/blogstuff/gnometagging.png&quot; border=&quot;1&quot; class=&quot;doxercss-frame&quot; /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Thursday&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Thursdays most interesting event was of course the keynote by Kris which got hijacked by the Gnome release team for the announcement of Gnome 3.0 which is essentially Gnome 2.30 cleaned up and based on Gtk+-3.x. Kris&amp;#8217; slides are available online: &lt;/p&gt;
&lt;pre&gt;	&lt;a href=&quot;http://people.imendio.com/kris/gtk-state-of-the-union-2008.pdf&quot;&gt;http://people.imendio.com/kris/gtk-state-of-the-union-2008.pdf&lt;/a&gt;
&lt;/pre&gt;
&lt;p align=&quot;left&quot;&gt; The slides provide a good overview of what Gtk+-2.14 will bring, prospects for 2.16 and visions/requests from the community for Gtk+&amp;#8217;s future. As previously described, Gtk+-3.0 is about enabling refactorings and development of new features, and the plan is to do our best to make the transition away from old deprecated code as easy as possible. Other than properly porting an existing Gtk+-2.x application to work with the G_DISABLE_DEPRECATED, GTK_DISABLE_DEPRECATED, GSEAL_ENABLE switches, no additional changes will be required to build and run an application on Gtk+-3.0. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; At the end of the day, there was the boat trip through the Bosporous which provided a beautiful sight along the coast line. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a&gt; &lt;img src=&quot;http://testbit.eu/~timj/blogstuff/guadec2008boat.png&quot; border=&quot;1&quot; class=&quot;doxercss-frame&quot; /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Friday&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; I managed to attend the latter half of the lightning talks which was as always quite interesting. I should probably ignore my laziness and actually prepare short lightning talks for next year about Rapicorn and possibly Doxer&amp;#8230; ;) &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; I took particular interest in Transifex, an online translation platform that can work together with multiple VCSes and that we&amp;#8217;d ideally move all Gnome translations to in the future. There are two things I&amp;#8217;d like to see fixed in a future translation workflow from a developer perspective: &lt;/p&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li&gt; The .po templates should really be generated by the developers of the upstream project by automatic means, e.g.: &lt;br /&gt; &lt;code&gt;make update-po -C po/&lt;/code&gt; &lt;br /&gt; So the upstream version of intltool and po/Makefile.* are used instead of possibly broken or outdated intltool/gettext versions on the translators system. &lt;/li&gt;
&lt;li&gt; Developers should be able to determine merge points for translations, and also review related non-po file changes, rather than having translators wildly commit into upstream repositories (which may conflict with other VCS workflows like branch merges or commits around release phases). &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Later on, Federico presented his ideas for timeline tabs for the desktop. This should make it rather easy to find documents or URLs from previous days or weeks, because out of natural necessity, humans generally have good chronological associations. So the new and nice part about this approach is that it can provide good visual access to the chronologic dimension, something a file system doesn&amp;#8217;t usually reveal easily, and that&amp;#8217;s not easily made accessible by the most prominent desktop metaphors either. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; I feel very tempted to start an implementation of the desktop tabs with Rapicorn, however with a few refinements of Federico&amp;#8217;s proposal: &lt;/p&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li&gt; The view should provide a &amp;#8220;chronological zoom&amp;#8221; slider to switch the view between years/months/weeks/days/hours. &lt;/li&gt;
&lt;li&gt; To be most useful, we&amp;#8217;ll need a crawler that tries to (re-)construct past file modification history without relying on programs pushing journal entries about file edits. This will be needed anyway unless every program on this planet provides file editing journal information. &lt;/li&gt;
&lt;li&gt; I think the journaling hooks need to be implemented via DBus and not rely on Nautilus, so they&amp;#8217;re usable by all cross-desktop applications and non-GUI programs. &lt;/li&gt;
&lt;li&gt; Various filters by file extensions, magic and possibly more will also be needed in the tab view (this was partly raised during the discussion phase at the end of the presentation). &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Saturday&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; About half of the Imendians headed home on Saturday, we had some early leaves on Friday already and left some others in Istanbul for additional vacations. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Oh, and since I&amp;#8217;ve been asked about my nickname here and there, I decided to add tabs to my hackergotchi for clarification: &lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a&gt; &lt;img src=&quot;http://testbit.eu/~timj/blogstuff/gotchitabs.png&quot; border=&quot;1&quot; class=&quot;doxercss-frame&quot; /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; &lt;strong&gt;Aftermath&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; There have been quite some discussions on the Gtk+-3.0 plan after Kris&amp;#8217; keynote. One thing that was brought up is that releasing an ABI incompatible but featureless new version of Gtk+ and calling it 3.0 is rather unconventional. An alternative scheme could involve releasing the ABI incompatible cleaned up version as 2.99.0, make 2.99.x the new development branch and release 3.0 with cleaned up ABI and new features (would have been 3.2 in the original plan). &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Tim Janik</name>
			<uri>http://blogs.gnome.org/timj</uri>
		</author>
		<source>
			<title type="html">Blog of Tim Janik</title>
			<subtitle type="html">Technical ramblings by Tim Janik</subtitle>
			<link rel="self" href="http://blogs.gnome.org/timj/feed"/>
			<id>http://blogs.gnome.org/timj/feed</id>
			<updated>2008-10-20T13:20:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Back from Guadec</title>
		<link href="http://micke.hallendal.net/blog/back-from-guadec/"/>
		<id>http://micke.hallendal.net/blog/?p=292</id>
		<updated>2008-07-15T23:18:45+00:00</updated>
		<content type="html">&lt;div class=&quot;diggthisplugin&quot;&gt;
		&lt;/div&gt;&lt;p&gt;Somewhat back to normal routines after a week in beautiful Istanbul. As people reading Planet GNOME have seen from others, it was a great Guadec this year.&lt;/p&gt;
&lt;p&gt;I found the schedule to be a bit uninspiring but that left more time for discussions and hacking. Among the sessions I went to I really enjoyed going to &lt;a href=&quot;http://www.atoker.com/blog/&quot;&gt;Alp&amp;#8217;s&lt;/a&gt; session about Webkit and &lt;a href=&quot;http://www.0xdeadbeef.com/weblog/&quot;&gt;Blizzards&lt;/a&gt; on Mozilla. Some really interesting things coming from these projects.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://inverted-tree.livejournal.com/&quot;&gt;Kris&lt;/a&gt; did a great job wrapping up the current state in GTK+ during his now traditional &lt;a href=&quot;http://people.imendio.com/kris/gtk-state-of-the-union-2008.pdf&quot;&gt;&amp;#8216;GTK+ State of the Union&amp;#8217;&lt;/a&gt; talk and happy to see that the discussion around future GTK+ is getting started throughout the community. I spent a lot of time this year talking and listening to peoples feedback on the proposed plans. Realized that some things have been a bit left out from the discussions after the hackfest and that we need to do a better job at communicating what we plan to work on besides the cleanups and enabling of future development.&lt;/p&gt;
&lt;p&gt;Finally a warm welcome to Stormy as executive director of the GNOME Foundation Board.&lt;/p&gt;
&lt;span class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://micke.hallendal.net/blog/?p=292&amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_292&quot; class=&quot;akst_share_link&quot;&gt;Share This&lt;/a&gt;
&lt;/span&gt;</content>
		<author>
			<name>Mikael Hallendal</name>
			<uri>http://micke.hallendal.net/blog</uri>
		</author>
		<source>
			<title type="html">Up North</title>
			<subtitle type="html">Personal blog of Mikael Hallendal</subtitle>
			<link rel="self" href="http://micke.hallendal.net/blog/feed/"/>
			<id>http://micke.hallendal.net/blog/feed/</id>
			<updated>2008-07-18T14:05:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">More GUADEC!</title>
		<link href="http://blogs.gnome.org/kris/2008/07/11/more-guadec/"/>
		<id>http://blogs.gnome.org/kris/2008/07/11/more-guadec/</id>
		<updated>2008-07-11T15:53:00+00:00</updated>
		<content type="html">&lt;p&gt;Okay, I am actually getting hacking done (okay okay it is more like reviewing) and I just committed the fix for #316087 &amp;#8220;Resizing columns is chaotic&amp;#8221; to gtk+ trunk (finally!).  Should be in the next 2.13 releases.  This patch does modify the internals of tree view column size allocation, so if people could give the latest gtk+ from trunk a test drive that would be really appreciated :) By the way, you can find the slides from yesterday&amp;amp;aposs GTK+ state of the Union &lt;a href=&quot;http://people.imendio.com/kris/gtk-state-of-the-union-2008.pdf&quot;&gt;here&lt;/a&gt;. The plans from the release team for GNOME3 sound cool, exciting times ahead :)&lt;/p&gt;</content>
		<author>
			<name>Kris Rietveld</name>
			<uri>http://blogs.gnome.org/kris</uri>
		</author>
		<source>
			<title type="html">Kristian Rietveld</title>
			<subtitle type="html">Hidden in a forest full of trees ...</subtitle>
			<link rel="self" href="http://blogs.gnome.org/kris/feed"/>
			<id>http://blogs.gnome.org/kris/feed</id>
			<updated>2008-10-13T20:45:10+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">GNOME Art BOF at GUADEC</title>
		<link href="http://www.andreasn.se/blog/?p=81"/>
		<id>http://www.andreasn.se/blog/?p=81</id>
		<updated>2008-07-09T23:28:20+00:00</updated>
		<content type="html">&lt;p&gt;We decided to have the GNOME Art BOF on Thursday afternoon 15.30 (turkish time). We&amp;#8217;ll try to add notes in #art-meeting on IRC (gimpnet) during the meeting. We haven&amp;#8217;t decided on a room yet, but we&amp;#8217;ll meet in the lobby, and go and find somewhere to sit down.&lt;br /&gt;
Hope to see you there!&lt;/p&gt;
	&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I screwed up a bit. It&amp;#8217;s 16.30, same place.
&lt;/p&gt;</content>
		<author>
			<name>Andreas Nilsson</name>
			<uri>http://www.andreasn.se/blog</uri>
		</author>
		<source>
			<title type="html">Random pixels</title>
			<subtitle type="html">some stuff by Andreas Nilsson</subtitle>
			<link rel="self" href="http://www.andreasn.se/blog/?feed=rss2"/>
			<id>http://www.andreasn.se/blog/?feed=rss2</id>
			<updated>2008-11-19T10:30:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">GUADEC GUADEC GUADEC</title>
		<link href="http://blogs.gnome.org/kris/2008/07/09/guadec-guadec-guadec/"/>
		<id>http://blogs.gnome.org/kris/2008/07/09/guadec-guadec-guadec/</id>
		<updated>2008-07-09T13:54:00+00:00</updated>
		<content type="html">&lt;p&gt;My talk &amp;#8220;GTK+ State of the Union&amp;#8221; at GUADEC has been moved from Friday morning to Thursday 14:30 (the cancelled keynote slot).  This was noted in the schedule on the GUADEC website before, but unfortunately this schedule was reverted to the original version as also found on the badges this morning. But the move of the talk is still on :) Minutes from the GTK+ developer&amp;amp;aposs meeting we had yesterday will follow soon, hopefully early next week.  Ah yeah, and during GUADEC I am hacking on &lt;a href=&quot;http://bugzilla.gnome.org/show_bug.cgi?id=316087&quot;&gt;Bug 316087&lt;/a&gt;, or better known as &amp;#8220;column resizing with expand=TRUE columns is entirely fucked up&amp;#8221;.  Seems we are very close to getting this fixed now. I will probably also hang out at the parties during the upcoming days, so see you all there ;)&lt;/p&gt;</content>
		<author>
			<name>Kris Rietveld</name>
			<uri>http://blogs.gnome.org/kris</uri>
		</author>
		<source>
			<title type="html">Kristian Rietveld</title>
			<subtitle type="html">Hidden in a forest full of trees ...</subtitle>
			<link rel="self" href="http://blogs.gnome.org/kris/feed"/>
			<id>http://blogs.gnome.org/kris/feed</id>
			<updated>2008-10-13T20:45:10+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Totem on GTK+ OS X</title>
		<link href="http://people.imendio.com/richard/archives/2008/07/totem_on_gtk_os.html"/>
		<id>tag:people.imendio.com,2008:/richard//2.342</id>
		<updated>2008-07-07T13:35:30+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;It's too hot in Istanbul to have the energy to write something useful right now, but since I promised Bastien a screenshot, here it is: &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://people.imendio.com/richard/screenshots/totem-gtk-osx.png&quot;&gt;&lt;img width=&quot;400px&quot; src=&quot;http://people.imendio.com/richard/screenshots/totem-gtk-osx.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is Totem running on GTK+ OS X, but without any nice integration with the global menubar and there is no clean patch that can be committed. (The changes are mostly commenting out some X11 and GNOME dependencies.)&lt;/p&gt;

&lt;p&gt;It's using a video sink that renders into a GdkWindow (actually it's backing NSView) through OpenGL, based on the Cocoa video sink that comes with GStreamer.&lt;/p&gt;</content>
		<author>
			<name>Richard Hult</name>
			<uri>http://people.imendio.com/richard/</uri>
		</author>
		<source>
			<title type="html">Richard Hult</title>
			<link rel="self" href="http://people.imendio.com/richard/atom.xml"/>
			<id>tag:people.imendio.com,2008:/richard//2</id>
			<updated>2008-11-12T13:50:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Heading to Guadec</title>
		<link href="http://micke.hallendal.net/blog/heading-to-guadec/"/>
		<id>http://micke.hallendal.net/blog/?p=291</id>
		<updated>2008-07-05T22:14:53+00:00</updated>
		<content type="html">&lt;div class=&quot;diggthisplugin&quot;&gt;
		&lt;/div&gt;&lt;p&gt;Posting this just before going to bed for an early rise to fly to Guadec in Istanbul. Unless someone gets sick last minute the entire Imendio crew will be arriving tomorrow and staying at the &lt;a href=&quot;http://www.goldenhornhotel.com/eng/index.php&quot;&gt;Golden Horn Sultanahmet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See you all there!&lt;/p&gt;
&lt;span class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://micke.hallendal.net/blog/?p=291&amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_291&quot; class=&quot;akst_share_link&quot;&gt;Share This&lt;/a&gt;
&lt;/span&gt;</content>
		<author>
			<name>Mikael Hallendal</name>
			<uri>http://micke.hallendal.net/blog</uri>
		</author>
		<source>
			<title type="html">Up North</title>
			<subtitle type="html">Personal blog of Mikael Hallendal</subtitle>
			<link rel="self" href="http://micke.hallendal.net/blog/feed/"/>
			<id>http://micke.hallendal.net/blog/feed/</id>
			<updated>2008-07-18T14:05:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">New website</title>
		<link href="http://www.twotoasts.de/index.php?/archives/4-New-website.html"/>
		<id>http://www.twotoasts.de/index.php?/archives/4-guid.html</id>
		<updated>2008-07-02T22:21:36+00:00</updated>
		<content type="html">&lt;p&gt;During the last few days I was working on the website for a change. In fact my dear Nancy was doing the lion share of this work. She even made a new Catfish logo on the way. Afterall we are going to share this new site, for programs I work on and artwork Nancy will publish here. The URL moved from software.twotoasts.de to the toplevel www.twotoasts.de. The old file links should silently redirect, including downloads, screenshots and git repository. The sub pages have changed but will all lead to the homepage now, which shouldn't be a problem. Of course I recommend everyone to update your links and bookmarks to www.twotoasts.de now.&lt;/p&gt;</content>
		<author>
			<name>Christian Dywan</name>
			<email>nospam@example.com</email>
			<uri>http://www.twotoasts.de/</uri>
		</author>
		<source>
			<title type="html">Christian Dywan - TwoToasts.de</title>
			<subtitle type="html">free software &amp;amp; artwork</subtitle>
			<link rel="self" href="http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss"/>
			<id>http://www.twotoasts.de/index.php?/feeds/authors/1-Christian-Dywan.rss</id>
			<updated>2008-10-29T09:15:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">23.06.2008 Writing Unit Tests with GLib</title>
		<link href="http://blogs.gnome.org/timj/2008/06/24/23062008-writing-unit-tests-with-glib/"/>
		<id>http://blogs.gnome.org/timj/2008/06/24/23062008-writing-unit-tests-with-glib/</id>
		<updated>2008-06-24T15:14:04+00:00</updated>
		<content type="html">&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt; Every other week, someone asks how to use the new &lt;a href=&quot;http://library.gnome.org/devel/glib/stable/glib-Testing.html&quot;&gt;unit testing framework in GLib&lt;/a&gt; (released with &lt;a href=&quot;http://mail.gnome.org/archives/gtk-devel-list/2008-March/msg00022.html&quot;&gt;GLib-2.16.0&lt;/a&gt;) and &lt;a href=&quot;http://www.gtk.org&quot;&gt;Gtk+&lt;/a&gt; (to be released with the next stable). First, here is a write-up from last December that summarizes all important aspects: &lt;a href=&quot;http://mail.gnome.org/archives/gtk-devel-list/2007-December/msg00181.html&quot;&gt; Test Framework Mini Tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt; For people building packages that use the new framework, the following new Makefile rules will be of interest:&lt;/p&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li&gt; &lt;strong&gt;&lt;code&gt;make test&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
Run all tests recursively from $(TEST_PROGS), abort on first error.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;&lt;code&gt;make test-report&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
Run all tests recursively, continue on errors and generate &lt;code&gt;test-report.xml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;&lt;code&gt;make perf-report&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
Run all tests recursively, enable performance tests (this usually takes significantly longer), continue on errors, generate &lt;code&gt;perf-report.xml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;&lt;code&gt;make full-report&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
Run all tests recursively, enable performance tests, enable slow (thorough) tests, continue on errors, generate &lt;code&gt;&lt;a href=&quot;http://people.imendio.com/timj/examples/gtk+-full-report.html&quot;&gt; full-report.xml&lt;/a&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;&lt;code&gt;make check&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
Run make test in addition to automake checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt; After GUADEC, we will be looking into getting build machines setup that&amp;#8217;ll regularly build GLib, Gtk+ and friends, run the unit testing suites and provide reports online.&lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt; For those pondering to write unit tests, but too lazy to look at the tutorial:&lt;/p&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li&gt; Implementing a test program is very easy, the only things needed are:
&lt;pre&gt;  // initialize test program
  gtk_test_init (&amp;amp;argc, &amp;amp;argv);
  // hook up your test functions
  g_test_add_func (&quot;/Simple Test Case&quot;, simple_test_case);
  // run tests from the suite
  return g_test_run();&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt; In most cases, a test function can be as simple as:
&lt;pre&gt;  static void
  simple_test_case (void)
  {
    // a suitable test
    g_assert (g_bit_storage (1) == 1);
    // a test with verbose error message
    g_assert_cmpint (g_bit_storage (1), ==, 1);
  }&lt;/pre&gt;
&lt;p&gt;Tests that abort, e.g. via &lt;a href=&quot;http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert&quot;&gt;g_assert()&lt;/a&gt; or &lt;a href=&quot;http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-error&quot;&gt;g_error()&lt;/a&gt;, are registered as failing tests with the framework. Also, the &lt;a href=&quot;http://library.gnome.org/devel/glib/unstable/gtester.html&quot;&gt;gtester&lt;/a&gt; utility used to implement the above Makefile rules will restart a test binary after a test function failed and continue to run remaining tests if &lt;a href=&quot;http://library.gnome.org/devel/glib/stable/glib-Testing.html#g-test-add-func&quot;&gt;g_test_add_func()&lt;/a&gt; has been used multiple times.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt; Checks in tests can be written with if() and g_error() or exit(1), or simply by using variants of g_assert(). For unit tests in particular, an extended set of assertions has been added, the benefit of using these are the printouts of the involved values when an assertion doesn&amp;#8217;t hold:
&lt;pre&gt;  g_assert_cmpstr   (stringa, cmpop, stringb);
  g_assert_cmpint   (int64a,  cmpop, int64b);
  g_assert_cmpuint  (uint64a, cmpop, uint64b);
  g_assert_cmphex   (uint64a, cmpop, uint64b);
  g_assert_cmpfloat (doublea, cmpop, doubleb);&lt;/pre&gt;
&lt;p&gt;For instance:&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;char *string = &quot;foo&quot;; g_assert_cmpstr (string, ==, &quot;bar&quot;);&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
yields:&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;ERROR: assertion failed (string == &quot;bar&quot;): (&quot;foo&quot; == &quot;bar&quot;)&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt; The framework makes it easy to test program output in unit tests:
&lt;pre&gt;  static void
  test_program_output (void)
  {
    if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT |
                             G_TEST_TRAP_SILENCE_STDERR))
      {
        g_print (&quot;some stdout text: somagic17\n&quot;);
        g_printerr (&quot;some stderr text: semagic43\n&quot;);
        exit (0);
      }
    g_test_trap_assert_passed();
    g_test_trap_assert_stdout (&quot;*somagic17*&quot;);
    g_test_trap_assert_stderr (&quot;*semagic43*&quot;);
  }&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt; And it is similarly easy to test and verify intentional program abortion:
&lt;pre&gt;  static void
  test_fork_fail (void)
  {
    if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
      {
        g_assert_not_reached();
      }
    g_test_trap_assert_failed();
    g_test_trap_assert_stderr (&quot;*ERROR*test_fork_fail*not*reached*&quot;);
  }&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt; The above and more tests are showcased in GLib: &lt;a href=&quot;http://svn.gnome.org/viewvc/glib/trunk/glib/tests/testing.c?revision=6955&amp;view=markup&quot;&gt;glib/tests/testing.c&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt; There&amp;#8217;s of course lots of room left to improve GLib and Gtk+ unit tests, and also to improve the current framework. For a speculative, non-comprehensive list, here are some ideas from the unit testing section of my personal TODO:&lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li&gt; Introduce 2D marker recognition for graphical unit testing of Gtk+ layouts (prototyped in &lt;a href=&quot;http://rapicorn.org&quot;&gt;Rapicorn&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt; Provide functionality to determine image similarities to allow for pixel image based unit tests (port this from Rapicorn).&lt;/li&gt;
&lt;li&gt; Implement state dumps to automate result specification and verification in unit tests. (This will allow us to avoid adding lots of abusable testing hooks to our API.)&lt;/li&gt;
&lt;li&gt; Integrate performance statistics (like &lt;a href=&quot;http://bugzilla.gnome.org/show_bug.cgi?id=354457&quot;&gt;#354457&lt;/a&gt;) and other related information into test reports.&lt;/li&gt;
&lt;li&gt; Publically install a variant of the &lt;a href=&quot;http://svn.gnome.org/viewvc/gtk%2B/trunk/Makefile.decl?view=markup&quot;&gt;Makefile.decl&lt;/a&gt; file used in Gtk+ to implement the test framework rules and &lt;a href=&quot;http://en.wikipedia.org/wiki/Xvfb&quot;&gt;Xvfb&lt;/a&gt; swallowing of test programs. This is needed by other projects to run unit tests the way Gtk+ does.&lt;/li&gt;
&lt;li&gt; Implement the unit test ideas that are outlined at the end of this email: &lt;a href=&quot;http://mail.gnome.org/archives/gtk-devel-list/2006-October/msg00093.html&quot;&gt;Gtk+ unit tests (brainstorming)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;!--- paragraph break --&gt;&lt;/p&gt;</content>
		<author>
			<name>Tim Janik</name>
			<uri>http://blogs.gnome.org/timj</uri>
		</author>
		<source>
			<title type="html">Blog of Tim Janik</title>
			<subtitle type="html">Technical ramblings by Tim Janik</subtitle>
			<link rel="self" href="http://blogs.gnome.org/timj/feed"/>
			<id>http://blogs.gnome.org/timj/feed</id>
			<updated>2008-10-20T13:20:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Removing a remote branch in Git</title>
		<link href="http://micke.hallendal.net/blog/removing-a-remote-branch-in-git/"/>
		<id>http://micke.hallendal.net/blog/?p=290</id>
		<updated>2008-06-21T15:27:49+00:00</updated>
		<content type="html">&lt;div class=&quot;diggthisplugin&quot;&gt;
		&lt;/div&gt;&lt;p&gt;This is something I&amp;#8217;ve had to checkup a few times so I figured it would be useful both for myself and for others to keep around in a blog post.&lt;/p&gt;
&lt;p&gt;To remove a remote branch you created in Git just push to it like:&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;shell&quot;&gt;$ git push origin :name-of-branch&lt;/pre&gt;
&lt;span class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://micke.hallendal.net/blog/?p=290&amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_290&quot; class=&quot;akst_share_link&quot;&gt;Share This&lt;/a&gt;
&lt;/span&gt;</content>
		<author>
			<name>Mikael Hallendal</name>
			<uri>http://micke.hallendal.net/blog</uri>
		</author>
		<source>
			<title type="html">Up North</title>
			<subtitle type="html">Personal blog of Mikael Hallendal</subtitle>
			<link rel="self" href="http://micke.hallendal.net/blog/feed/"/>
			<id>http://micke.hallendal.net/blog/feed/</id>
			<updated>2008-07-18T14:05:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">16.06.2008 Sinfex - Simple Infix Expression Evaluator</title>
		<link href="http://blogs.gnome.org/timj/2008/06/16/16062008-sinfex-simple-infix-expression-evaluator/"/>
		<id>http://blogs.gnome.org/timj/2008/06/16/16062008-sinfex-simple-infix-expression-evaluator/</id>
		<updated>2008-06-16T22:10:35+00:00</updated>
		<content type="html">&lt;p&gt;&lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; The XML GUI definition files used in &lt;a href=&quot;http://rapicorn.org&quot;&gt;Rapicorn&lt;/a&gt; and also in &lt;a href=&quot;http://beast.gtk.org&quot;&gt;Beast&lt;/a&gt; (described briefly in an &lt;a href=&quot;http://blogs.gnome.org/timj/2005/07/31/31072005-rapicorn/&quot;&gt; earlier blog post&lt;/a&gt;) supported a simple &lt;code&gt;$(function,arguments...)&lt;/code&gt; evaluation syntax, similar to GNU Make. I&amp;#8217;ve never been very happy with this syntax, but it was fairly easy to implement at the start and followed naturally from early &lt;code&gt;$VARIABLE&lt;/code&gt; expansion features. At some point last year I considered various alternative syntax variants and discussed the ideas with &lt;a href=&quot;http://blogs.gnome.org/stw/&quot;&gt;Stefan Westerfeld&lt;/a&gt;. Over the course of the last two months, I finally got around to implement them. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; I&amp;#8217;ve never grown familiar with &lt;a href=&quot;http://en.wikipedia.org/wiki/Reverse_Polish_notation&quot;&gt; reverse polish notation&lt;/a&gt;, and although &lt;a href=&quot;http://beast.gtk.org/bsescm.1.html&quot;&gt;Guile is the canonical scripting language for Beast&lt;/a&gt;, I&amp;#8217;ve always found myself very inefficient with expressing my thoughts in lisp expressions. So the new syntax definitely had to support &lt;a href=&quot;http://en.wikipedia.org/wiki/Infix_notation&quot;&gt;infix expressions&lt;/a&gt; - despite the more complex parsing logic required to parse them. &lt;a href=&quot;http://www.gnu.org/software/bison/&quot;&gt;Bison&lt;/a&gt; already ships with an example calculator that parses infix expressions, so that&amp;#8217;s a quick start as far as the syntax rules go. Integration is quite a different story though, more on that later. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Since in Rapicorn the expressions are used to compute widget property values, they are likely to be executed &lt;strong&gt;very often&lt;/strong&gt;, i.e. each time a widget is created from an XML file description. Consequently, I wanted to use a pre-parsed &lt;a href=&quot;http://en.wikipedia.org/wiki/Abstract_syntax_tree&quot;&gt;AST&lt;/a&gt; to carry out the evaluation and avoid mixing evaluation logic with parser logic, which would have forced reparsing expressions upon each evaluation. At first I quickly threw together some C++ classes for the arithmetic operators and used those as nodes for the AST, similar to: &lt;/p&gt;
&lt;pre&gt;  class ASTNodeNot : virtual public ASTNode {
    ASTNode &amp;amp;m_operand;
  public:
    explicit ASTNodeNot (ASTNode &amp;amp;operand) :
      m_operand (a)
    {}
    virtual Value
    eval (Env *env) const
    {
      Value a = m_operand.eval();
      return Value (!a.asbool());
    }
  };
&lt;/pre&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; The supported syntax is quickly summarized: &lt;/p&gt;
&lt;pre&gt;  Operators: ( + - * / ** &amp;lt; &gt; &amp;lt;= &gt;= == != or and not )
  Functions: name ( args... )
  Inputs:    FloatingPoint 'SingleQuotedString' &quot;DoubleQuotedString&quot;
&lt;/pre&gt;
&lt;p align=&quot;left&quot;&gt; In this notation, &lt;code&gt;FloatingPoint&lt;/code&gt; includes hexadecimal numbers and of course integers and the quoted strings support C style escape sequences like octal numbers, &amp;#8216;&lt;code&gt;&amp;#92;n&lt;/code&gt;&amp;#8216;, &amp;#8216;&lt;code&gt;&amp;#92;t&lt;/code&gt;&amp;#8216; and so on. The functions can be implemented by the parser API user, but a good set of standard arithmetic functions is already supported like ceil(), floor(), min(), max(), log(), etc. So it&amp;#8217;s a very basic parser, but covers the vast majority of expressions needed to position widgets or configure packing properties. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; One thing that turned out to be tricky is the binary operator semantics for strings. At the very least, I wanted support for &lt;code&gt;&quot;string&quot; + &quot;string&quot;&lt;/code&gt; and &lt;code&gt;&quot;string&quot; == &quot;string&quot;&lt;/code&gt;. Since both operators are supported for numbers as well, the exact behavior of &lt;code&gt;&quot;string&quot; + FloatingPoint&lt;/code&gt; and &lt;code&gt;&quot;string&quot; == FloatingPoint&lt;/code&gt; had to be defined. I managed to find a few programming language precedents here in Perl, Python, and ECMAScript (Javascript). They of course all handle the cases differently. In the end I settled with &lt;a href=&quot;http://en.wikipedia.org/wiki/Ecmascript&quot;&gt;ECMAScript&lt;/a&gt; semantics: &lt;/p&gt;
&lt;pre&gt;  Value1 == Value2  # does string comparisons if both values are strings
  Value1 + Value2   # does string conversion if either value is a string
&lt;/pre&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Unit testing for the parser turned out to be particularly easy to implement. All that&amp;#8217;s needed is a small utility that reads expressions and prints/verifies the evaluation results. Throwing in some additional shell code allowed a normal text file to drive unit testing. It simply contains expressions and expected results on alternating lines. Btw, &lt;a href=&quot;http://tiswww.case.edu/php/chet/readline/rltop.html&quot;&gt;libreadline&lt;/a&gt; can be really handy in cases like this. Using it takes a mere 5-10 lines of additional code to support a nice interactive command line interface including history for the evaluator test shell. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; After some initial testing, the C++ AST node classes seemed like an awful lot of pointers, fragmentation and &lt;a href=&quot;http://en.wikipedia.org/wiki/Vtable&quot;&gt; VTable&lt;/a&gt; calls for a supposedly straight forward expression evaluation. Also, adding the missing destruction semantics would have significantly increased the existing class logic. So I tried to come up with a leaner and foremost flat memory presentation. In the end, I settled with a single array that grows in 4 byte (integer) steps, embeds strings literally (padded to 4 byte alignment) and uses array offsets instead of pointers for references. A single multiplication operator is encoded with 3 integers that way: &lt;code&gt;MUL_opcode factor1_index factor2_index&lt;/code&gt;. That&amp;#8217;s essentially 12 bytes per binary operator, still significantly more than the parser input, but also significantly smaller than allocating an equivalent C++ class. Evaluation of the expression stored in the array doesn&amp;#8217;t need any VTable calls, and a single straight forward evaluation function can be used, that implements the different operators as switch statement cases. Also release semantics are persuasively trivial for a single consecutive array. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; What&amp;#8217;s left was to figure a way to embed expression evaluation in XML values or text blocks. Previously, &lt;code&gt;$(expression)&lt;/code&gt; was substituted everywhere, but with the new syntax, variables (or rather &lt;em&gt;constants&lt;/em&gt; defined within the Rapicorn core or via the &amp;#8216;&lt;code&gt;&amp;lt;arg:ArgName default=&quot;5&quot;/&gt;&lt;/code&gt;&amp;#8216; syntax supported by Rapicorn XML files) didn&amp;#8217;t use a &lt;code&gt;$&lt;/code&gt;-prefix anymore. So sticking with &lt;code&gt;$()&lt;/code&gt; seemed to make little sense. As it&amp;#8217;s implemented now, backticks are used to cause expression evaluation, with the empty expression evaluating to a single backtick: &lt;/p&gt;
&lt;pre&gt;  XML Value/Text         Parser Result
    Foo  5 + 5      -&gt;     Foo  5 + 5
    Foo `5 + 5`     -&gt;     Foo 10
    ``Foo``         -&gt;     `Foo`
&lt;/pre&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; We will see how useful the current expression style turns out to be. I don&amp;#8217;t consider every implementation bit outlined here solidly engraved into stone yet. So as always, I&amp;#8217;m open to constructive feedback. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; As forewarned, I have a few more words on integrating &lt;a href=&quot;http://flex.sourceforge.net/&quot;&gt;Flex&lt;/a&gt; and Bison with each other and into one&amp;#8217;s own library. First, Flex and Bison turned out not to be exactly simple to configure, especially if none of the generated symbols should be exported from a library or clash with a possible second parser linked into the same library or program. Also some fiddling is required to pass on proper line count information from the lexer to the parser, getting character counts as well is non-trivial but lucky wasn&amp;#8217;t strictly needed for Rapicorn expressions. The simplest setup I managed to come up with works as follows: &lt;/p&gt;
&lt;pre&gt;  sinfex.hh     # public API
  sinfeximpl.hh # internal structure definitions
  sinfex.cc     # evaluator implementation
  sinfex.l      # scanner rules for Flex
  sinfex.y      # parser rules for Bison
  sinfex.lgen   # generated by Flex
  sinfex.ygen   # generated by Bison
&lt;/pre&gt;
&lt;p align=&quot;left&quot;&gt; The only compiled file in this list is &lt;code&gt;sinfex.cc&lt;/code&gt; which includes &lt;code&gt;sinfex.lgen&lt;/code&gt; and &lt;code&gt;sinfex.ygen&lt;/code&gt; as part of an anonymous C++ namespace. A linker script &lt;code&gt;&lt;a href=&quot;http://git.testbit.eu/Rapicorn/tree/rapicorn/ldscript.map&quot;&gt;ldscript.map&lt;/a&gt;&lt;/code&gt; used when finally linking the library prevents anonymous symbols from being exported. The anonymous namespacing of everything declared in &lt;code&gt;sinfex.lgen&lt;/code&gt; and &lt;code&gt;sinfex.ygen&lt;/code&gt; is what prevents clashes with a possible second parser linked into the library. This isn&amp;#8217;t as elegant as i was hoping for, but at least effective in a practical sense. There unfortunately is &lt;strong&gt;no way&lt;/strong&gt; to configure Flex or Bison to generate only &lt;em&gt;static&lt;/em&gt; functions and variables. And yes, I have also looked into variants like flex++, bison++, bisonc++, byacc, etc, but they usually show much of the same problems and also tend to make matters worse by generating more files or more complex code. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Tim Janik</name>
			<uri>http://blogs.gnome.org/timj</uri>
		</author>
		<source>
			<title type="html">Blog of Tim Janik</title>
			<subtitle type="html">Technical ramblings by Tim Janik</subtitle>
			<link rel="self" href="http://blogs.gnome.org/timj/feed"/>
			<id>http://blogs.gnome.org/timj/feed</id>
			<updated>2008-10-20T13:20:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Finally getting things done</title>
		<link href="http://blogs.gnome.org/kris/2008/06/06/finally-getting-things-done/"/>
		<id>http://blogs.gnome.org/kris/2008/06/06/finally-getting-things-done/</id>
		<updated>2008-06-06T13:51:00+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;amp;aposve been meaning to blog again for a long while, and I finally managed to sit down and do it.  The last few months have been very, very busy.  I got inspired in some way and started studying three times as hard, which is a good thing since I finally manage to get a lot of things done there.  This week I finished two more master courses, for both of which we did some interesting stuff.  For the first one I have been looking at very low-level cache optimizations (esp. strip lining/loop blocking) with somebody else; learnt a great deal of new stuff and gained experience.  The other course was about grid computing; for the presentation and project part I have been focussing on data storage in grids.  I&amp;amp;aposve been looking at &lt;a href=&quot;http://www.irods.org/&quot;&gt;iRODS&lt;/a&gt;, which is an open source system for building data grids.  It is a very interesting and promising project, but not yet ready for production deployments.  I should probably put my report on this online at some point.  Furthermore, my thesis is finally almost done.  In the coming weeks I will be working on finishing another course which I had to leave behind for a while at the end of last year.  At least the end is coming in sight, I hope to have my BSc and MSc degrees before mid next-year. Being very busy with studying is nice and all, but it means I had zero time left for spare time (GTK+) hacking.  I hope this will change in the coming weeks and get my &amp;#8220;getting things done&amp;#8221; attitude from University work also applied to GTK+ hacking ;)  I am going to look into:
&lt;ul&gt;
&lt;li&gt;Getting the column resizing with &amp;gt; 1 expand=TRUE columns patch updated, fixed and committed in trunk. (finally)&lt;/li&gt;
&lt;li&gt;Design and implement a proper API for doing DnD (with multiple rows) in GtkTreeView. This should include making it possible to DnD between tree views and apps. (finally)&lt;/li&gt;
&lt;li&gt;Look into improving the rubber banding behavior as Christian Neumair talked about in his blog.  As is stated in the related tree view bugzilla bug about this, probably need to move over the cell_process_action() refactorings from my experimental branch to trunk and then this might be much easier to fix.  Moving that refactoring over means writing a good automated layouting test.&lt;/li&gt;
&lt;li&gt;Look into properly fixing the editing mess.  We need a better means to distinguish between committed/cancelled editings.&lt;/li&gt;
&lt;li&gt;Actually write about the plans for a simple tree view wrapper that I&amp;amp;aposve discussed with Johan and Emmanuele during the hack fest.&lt;/li&gt;
&lt;li&gt;Continue hacking on my experimental tree view branch.  More on this later.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; I thought I had more for this list, but this will keep me busy for a good while anyway ;)&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Kris Rietveld</name>
			<uri>http://blogs.gnome.org/kris</uri>
		</author>
		<source>
			<title type="html">Kristian Rietveld</title>
			<subtitle type="html">Hidden in a forest full of trees ...</subtitle>
			<link rel="self" href="http://blogs.gnome.org/kris/feed"/>
			<id>http://blogs.gnome.org/kris/feed</id>
			<updated>2008-10-13T20:45:10+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">AsyncRunner for Ruby/GLib</title>
		<link href="http://micke.hallendal.net/blog/asyncrunner-for-rubyglib/"/>
		<id>http://micke.hallendal.net/blog/?p=289</id>
		<updated>2008-06-04T20:48:52+00:00</updated>
		<content type="html">&lt;div class=&quot;diggthisplugin&quot;&gt;
		&lt;/div&gt;&lt;p&gt;Was playing around a bit with a synchronous network library that I wanted to use from a GTK+ frontend. Obviously this wouldn&amp;#8217;t work too well as the UI would be blocked while waiting for the library to return from it&amp;#8217;s network calls. So I wanted to run the network operations in the background using a thread but still get the callbacks in the main thread to be able to update the UI from there.&lt;/p&gt;
&lt;p&gt;I ended up writing a small class I called &lt;a href=&quot;http://pastie.caboo.se/208925&quot;&gt;AsyncRunner&lt;/a&gt; which is a small proxy to call methods in a various thread and get the callback in the main thread. It&amp;#8217;s using the GLib Mainloop so it would only be useful in the cases where you actually have one.&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;ruby&quot;&gt;require 'thread-sync'
class MySyncClass
  def foo_method(arg)
  end

  def bar_method(arg1, arg2)
  end
end

sync = MySyncClass.new

# In order to get the methods of MySyncClass asynchronous it is wrapped in an AsyncRunner.
async = AsyncRunner.new(sync)

async.foo_method('test') do
  ui_update()
end

main_loop = GLib::MainLoop.new
main_loop.run&lt;/pre&gt;
&lt;span class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://micke.hallendal.net/blog/?p=289&amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_289&quot; class=&quot;akst_share_link&quot;&gt;Share This&lt;/a&gt;
&lt;/span&gt;</content>
		<author>
			<name>Mikael Hallendal</name>
			<uri>http://micke.hallendal.net/blog</uri>
		</author>
		<source>
			<title type="html">Up North</title>
			<subtitle type="html">Personal blog of Mikael Hallendal</subtitle>
			<link rel="self" href="http://micke.hallendal.net/blog/feed/"/>
			<id>http://micke.hallendal.net/blog/feed/</id>
			<updated>2008-07-18T14:05:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">02.06.2008 LinuxTag 2008</title>
		<link href="http://blogs.gnome.org/timj/2008/06/02/02062008-linuxtag-2008/"/>
		<id>http://blogs.gnome.org/timj/2008/06/02/02062008-linuxtag-2008/</id>
		<updated>2008-06-02T14:54:13+00:00</updated>
		<content type="html">&lt;p&gt;&lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Just like &lt;a href=&quot;http://blogs.gnome.org/timj/2007/06/04/04062007-linuxtag/&quot;&gt; LinuxTag last year&lt;/a&gt;, I went to Berlin the past week to help running the Gnome booth for &lt;a href=&quot;http://www.linuxtag.org/2008/&quot;&gt; LinuxTag 2008&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Due to a sports accident, our booth bunny &lt;a href=&quot;http://herzi.eu/&quot;&gt; Sven Herzberg&lt;/a&gt; unfortunately couldn&amp;#8217;t make it, so on Tuesday I took over booth management and merchandise from him and hurried to Berlin in an ICE instead of a car as was originally planned. In Berlin, I met up with &lt;a href=&quot;http://taschenorakel.de/mathias/&quot;&gt; Mathias Hasselmann&lt;/a&gt; who brought the European Gnome event box and together we set up the booth until late in the night. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://testbit.eu/~timj/galleries/Linuxtag2008/&quot;&gt; &lt;img src=&quot;http://testbit.eu/~timj/galleries/Linuxtag2008/booth-small.jpg &quot; /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; On Wednesday morning, &lt;a href=&quot;http://www.michael-koechling.info/&quot;&gt; Michael Köchling&lt;/a&gt; and &lt;a href=&quot;http://software.twotoasts.de/&quot;&gt; Christian Dywan&lt;/a&gt; arrived, so we had enough people to properly man the booth. Michael seems to be an early riser, since he managed to show up at 09:00 for all days, so i passed the booth keys on to him. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Around lunch time, I was dragged away for an interview about business involvement in free software and Gnome in particular by &lt;a href=&quot;http://www.cbs.dk/staff/mc&quot;&gt; Malgorzata Ciesielska&lt;/a&gt;, a business school student from Copenhagen. She also interviewed other people like &lt;a href=&quot;http://0pointer.de/blog&quot;&gt; Lennart Poettering&lt;/a&gt; who also sporadically hung around our booth. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Later that day, Lennart and i went over the new libcanberra API in a lengthy discussion. Libcanberra is a new library for playback or activation of sound events in response to desktop actions that Lennart currently works on. We talked about the needs of timing information for some usage cases, possibly also dispatching forced feedback controls via the library and implementation of a Gtk+ module to hook canberra functionality up with GUI events. What turned out to be a bit tricky is to derive actual semantic information from the low level X event notification that Gtk+ signals proxy, such as dialog-confirmed, dialog-cancelled, menu-item-selected, menu-item-cancelled, combobox-popup, combobox-selected, combobox-cancelled, etc. This extraction requires significantly more logic and special casing of event notification than Lennart apparently had originally hoped for. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; On Thursday I attended the &lt;a href=&quot;http://www.linuxtag.org/2008/de/conf/events/vp-donnerstag/vortragsdetails.html?talkid=74&quot;&gt; Linux Kernel - Quo vadis?&lt;/a&gt; talk by Thomas Gleixner which was quite interesting. I managed to catch him afterwards to talk about the prospects of having a memory pressure signal in the Linux kernel. For GLib and Gtk+, this&amp;#8217;d be quite useful to voluntarily release pixmap or GSlice caches, particularly desired on embedded platforms. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; Friday I sat down with Vincent Untz for a very productive discussion about Gnome/Gtk+ release prospects, autotools, intltool features and more. Later I had a chance to chat with &lt;a href=&quot;http://behindkde.org/people/neundorf/&quot;&gt; Alexander Neundorf&lt;/a&gt; about KDE&amp;#8217;s recent &lt;a href=&quot;http://www.cmake.org/HTML/About.html&quot;&gt; CMake&lt;/a&gt; migration process. Overall, they seem to be pretty happy with the results. Major benefits from migrating from autotools to CMake seem to be: &lt;/p&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li&gt; Build process speedups due to getting rid of libtool. &lt;/li&gt;
&lt;li&gt; Simplicity; the build setup is back to a manageable level again. For KDE, the previous combinatoric mess of autotools was hardly fully understood by any single person. &lt;/li&gt;
&lt;li&gt; Unification/merging of build files for Unixes and Windows. (Duplication of build logic between auto* files, &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd9y37ha.aspx&quot;&gt; nmake&lt;/a&gt; and MS project files is currently a major annoyance for Gtk+&amp;#8217;s Win32 maintainers.) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; On Saturday the last day of the conference, I attended &lt;a href=&quot;http://easterbridge.com/&quot;&gt; Anne Østergaard&lt;/a&gt;&amp;#8217;s presentation about Gnome Foundation structures and achievements, the slides of which are available here: &lt;a href=&quot;http://easterbridge.com/files/presentation-LinuxTag-2008.pdf&quot;&gt; The GNOME Foundation (PDF)&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; After that, I went to &lt;a href=&quot;http://www.jonobacon.org/&quot;&gt; Jono Bacon&lt;/a&gt;&amp;#8217;s talk in which he explained how the free software community is a creative and productive community, which sets it apart from other common community types in our society (usually fan communities). He went on pointing out how this collaborative and open community as a whole (and thus every significant contribution to it) impacts and gradually changes the really big IT companies from within in an unprecedented manner. Come to think of it, this is an incredible achievement that we should rejoice in, especially because it is a morally correct change in that it strives towards openness. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;
&lt;p align=&quot;left&quot;&gt; All in all, it was a nice conference again. Personally, I particularly enjoy meeting up with other hackers for productive face to face sync ups. So I&amp;#8217;d like to thank Christian and especially Michael for their great efforts in patiently answering bypasser&amp;#8217;s Gnome questions at the booth, while I wandered off to talks or had technical discussions in its back. &lt;/p&gt;
&lt;p&gt; &lt;!--- paragraph break --&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Tim Janik</name>
			<uri>http://blogs.gnome.org/timj</uri>
		</author>
		<source>
			<title type="html">Blog of Tim Janik</title>
			<subtitle type="html">Technical ramblings by Tim Janik</subtitle>
			<link rel="self" href="http://blogs.gnome.org/timj/feed"/>
			<id>http://blogs.gnome.org/timj/feed</id>
			<updated>2008-10-20T1