<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog of Tim Janik &#187; General</title>
	<atom:link href="http://blogs.gnome.org/timj/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/timj</link>
	<description>Technical ramblings by Tim Janik</description>
	<lastBuildDate>Tue, 15 Sep 2009 07:59:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>14.09.2009 OSiM 2009</title>
		<link>http://blogs.gnome.org/timj/2009/09/15/14-09-2009-osim-2009/</link>
		<comments>http://blogs.gnome.org/timj/2009/09/15/14-09-2009-osim-2009/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 07:50:10 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2009/09/15/14-09-2009-osim-2009/</guid>
		<description><![CDATA[
 Together with  Martyn Russell,  Carlos Garnacho and  Kristian Rietveld, I&#8217;m attending  OSiM this week. None of us has been here before, so we&#8217;re quite curious about the conference and will keep our eyes open.  My schedule still has some holes, so if you would like a chat at the [...]]]></description>
			<content:encoded><![CDATA[<p><!--- paragraph break -->
<p align="left"> Together with <a href="http://blogs.gnome.org/mr/"> Martyn Russell</a>, <a href="http://blogs.gnome.org/carlosg/"> Carlos Garnacho</a> and <a href="http://blogs.gnome.org/kris/"> Kristian Rietveld</a>, I&#8217;m attending <a href="http://event.osimworld.com/"> OSiM</a> this week. None of us has been here before, so we&#8217;re quite curious about the conference and will keep our eyes open. <br /> My schedule still has some holes, so if you would like a chat at the conference, <a href="http://www.lanedo.com/~timj/"> drop me a line</a> and we can arrange a meeting. </p>
<p> PS: Yes, I&#8217;ve seen <a href="http://blogs.gnome.org/alexl/2009/09/09/gobject-performance-work/"> Alex recent work</a> and will take a look once I&#8217;m back from the conference. </p>
<p> <!--- paragraph break --></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2009/09/15/14-09-2009-osim-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>09.04.2009 Gtk+ 3 Roadmap Participation</title>
		<link>http://blogs.gnome.org/timj/2009/04/09/09042009-gtk-3-roadmap-participation/</link>
		<comments>http://blogs.gnome.org/timj/2009/04/09/09042009-gtk-3-roadmap-participation/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 00:41:51 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2009/04/09/09042009-gtk-3-roadmap-participation/</guid>
		<description><![CDATA[
  Lots and lots of things have been going on around me lately, but that&#8217;s best left for other posts if I ever get around to do them. ;) 
 
 A few months ago, I&#8217;ve sat down with quite some help by others and collected the input and feedback around Gtk+ 3.0. The [...]]]></description>
			<content:encoded><![CDATA[<p><!--- paragraph break -->
<p align="left"> <a href="http://www.lanedo.com"> Lots and lots of things</a> have been going on around me lately, but that&#8217;s best left for other posts if I ever get around to do them. ;) </p>
<p> <!--- paragraph break -->
<p align="left"> A few months ago, I&#8217;ve sat down with quite some help by others and collected the input and feedback around Gtk+ 3.0. The outcome of that was a first Gtk+ 3 Roadmap draft that was sent around to the core team. </p>
<p> <!--- paragraph break -->
<p align="left"> After some recent poking, the draft has now been posted on the Gtk+ development list, here is the <a href="http://mail.gnome.org/archives/gtk-devel-list/2009-April/msg00048.html"> Gtk+ 3 Roadmap Draft Announcement</a>. </p>
<p> <!--- paragraph break -->
<p align="left"> I&#8217;d like to thank everyone who participated in the fruitful discussions leading to this and particularly <a href="http://www.stormyscorner.com/"> Stormy</a> and <a href="http://blogs.gnome.org/bolsh/"> Dave Neary</a> for their suggestions on the post-draft process. </p>
<p> <!--- paragraph break -->
<p align="left"> <a href="http://blogs.gnome.org/bratsche/"> Cody Russell</a> has kindly volunteered to wikify the roadmap, so future alterations will be easy. I much appreciate his initiative, especially because I can&#8217;t foresee to have much time around the roadmap personally in the near future. </p>
<p> <!--- paragraph break -->
<p align="left"> The roadmap draft is best discussed on the mailing list and provided online here: <a href="http://testbit.eu/~timj/blogstuff/GtkRoadmap3Draft2.html"> Gtk+ 3 Roadmap Draft</a> </p>
<p> <!--- paragraph break -->
<p align="left"> This roadmap is also a <strong>call for participation</strong> to all developers and contributors. </p>
<p> <!--- paragraph break -->
<p align="left"> If <strong>you</strong> have an interest in Gtk+ 3, this is the time to <strong>participate</strong> in constructive discussions around the roadmap or sign up for one of the many development tasks. </p>
<p> <!--- paragraph break -->
<p align="left"> I sincerely hope this is helpful for everyone. </p>
<p> <!--- paragraph break -->
<p align="left"> <em><a href="http://www.myvideo.de/watch/3183914"> Es ist nicht deine Schuld daß die Welt ist wie sie ist.Es wär&#8217; nur deine Schuld wenn sie so bleibt.</a></em> <br /> <strong>&#8211; Die Ärzte</strong> </p>
<p> <!--- paragraph break --></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2009/04/09/09042009-gtk-3-roadmap-participation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>07.10.2008 Recent Interviews</title>
		<link>http://blogs.gnome.org/timj/2008/10/07/07102008-recent-interviews/</link>
		<comments>http://blogs.gnome.org/timj/2008/10/07/07102008-recent-interviews/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 15:17:19 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2008/10/07/07102008-recent-interviews/</guid>
		<description><![CDATA[
 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:  Manju Project Article. 
 
 There&#8217;s also been a German interview with Sven Herzberg and me some months back at the Berlin Hackfest, which covers [...]]]></description>
			<content:encoded><![CDATA[<p><!--- paragraph break -->
<p align="left"> 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: <a href="http://www.linux.com/feature/149041"> Manju Project Article</a>. </p>
<p> <!--- paragraph break -->
<p align="left"> There&#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: <a href="http://chaosradio.ccc.de/cre079.html">GTK+ und GNOME Podcast (DE)</a>. </p>
<p> <!--- paragraph break --></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2008/10/07/07102008-recent-interviews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>09.09.2008 The Manju Project</title>
		<link>http://blogs.gnome.org/timj/2008/09/09/09092008-the-manju-project/</link>
		<comments>http://blogs.gnome.org/timj/2008/09/09/09092008-the-manju-project/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 20:35:45 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2008/09/09/09092008-the-manju-project/</guid>
		<description><![CDATA[
  
 
 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. 
 
 It combines the idea of a pixmap theme engine,  Jimmac&#8217;s &#8220;One Canvas Workflow&#8221;, SVG markup features and Inkscape export functionality to fully automate [...]]]></description>
			<content:encoded><![CDATA[<p><!--- paragraph break -->
<div align="center"><a> <img src="http://testbit.eu/~timj/blogstuff/manju-logo.png"/> </a></div>
<p> <!--- paragraph break -->
<p align="left"> 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. </p>
<p> <!--- paragraph break -->
<p align="left"> It combines the idea of a pixmap theme engine, <a href="http://jimmac.musichall.cz/log/?p=436"> Jimmac&#8217;s &#8220;One Canvas Workflow&#8221;</a>, SVG markup features and Inkscape export functionality to fully automate the creation of a scalable and stretchable pixmap theme from an SVG source. </p>
<p> <!--- paragraph break -->
<p align="left"> We&#8217;re currently working out the <a href="http://pages.testbit.eu/manju/theme-spec.html"> SVG theme file specification</a>, the <a href="http://pages.testbit.eu/manju/package-spec.html"> binary pixmap theme file format</a>, as well as <a href="http://pages.testbit.eu/manju/snapshots/moon7.svg"> sample files</a> and sample code to demonstrate toolkit side rendering. </p>
<p> <!--- paragraph break -->
<p align="left"> Everybody is invited to participate and at this early stage feedback on every aspect is highly appreciated. </p>
<p> <!--- paragraph break -->
<p align="left"> We&#8217;re particularly looking for people who like to review our specs, implement widgets or theme engines and who like to create alternate themes. </p>
<p> <!--- paragraph break -->
<p align="left"> The project is hosted as a git repository: </p>
<pre>	<a href="http://git.testbit.eu/Manju">http://git.testbit.eu/Manju</a>
</pre>
<p align="left"> And provides a communication forum and web presence: </p>
<pre>	<a href="http://groups.google.com/group/manju-project">http://groups.google.com/group/manju-project</a>
</pre>
<p align="left"> Automated snapshots of our ongoing work are also provided: </p>
<pre>	<a href="http://pages.testbit.eu/manju/snapshots/nordic.png">http://pages.testbit.eu/manju/snapshots/nordic.png</a>
</pre>
<p> <!--- paragraph break --></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2008/09/09/09092008-the-manju-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>16.07.2008 GUADEC 2008 Wrapup</title>
		<link>http://blogs.gnome.org/timj/2008/07/16/16072008-guadec-2008-wrapup/</link>
		<comments>http://blogs.gnome.org/timj/2008/07/16/16072008-guadec-2008-wrapup/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 08:45:10 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Gtk+]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2008/07/16/16072008-guadec-2008-wrapup/</guid>
		<description><![CDATA[
 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. 
 
 Sunday 
 
 Headed off for Istanbul, partial Imendio meet-up at the airport in Vienna, gathered remaining Imendians at [...]]]></description>
			<content:encoded><![CDATA[<p><!--- paragraph break -->
<p align="left"> 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. </p>
<p> <!--- paragraph break -->
<p align="left"> <strong>Sunday</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> 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. </p>
<div align="center"><a> <img src="http://testbit.eu/~timj/blogstuff/sundown_bosporus.png" border="1" class="doxercss-frame"/> </a></div>
<p> <!--- paragraph break -->
<p align="left"> <strong>Monday</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> 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. </p>
<p> <!--- paragraph break -->
<p align="left"> <strong>Tuesday</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> I was planning to attend the Maemo BOF in the morning, but shortly after arriving at the conference venue, <a href="http://www.gnome.org/~federico/news.html">Federico</a> literally dragged me into the DVCS BOF. Still, I only managed to attend the second half of it which was almost exclusively about <a href="http://bazaar-vcs.org/"> Bazaar</a> features. People told me the first hour had been quite the contrary and focused mostly on <a href="http://git.or.cz/"> Git</a> hyping. Clearly, there was no consensus after the meeting on what the future versioning system in Gnome will be. <br /> I&#8217;m not surprised that is the case. As things currently stand, <a href="http://subversion.tigris.org/"> SVN</a> has very active development and user communities, Git is very actively developed, Bazaar is as well, as are a couple other <a href="http://en.wikipedia.org/wiki/Version_control_system"> VCS</a>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&#8217;s easy to find lots of critics and lots of supporters for each of the bigger versioning systems and that&#8217;s unlikely to change much. Consequently, there&#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. </p>
<p> <!--- paragraph break -->
<p align="left"> 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&#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&#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. <br /> 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 <a href="http://mail.gnome.org/archives/gtk-devel-list/2006-December/msg00074.html"> State of the Gtk+ Maintenance</a> email. In particular, we stressed that we now have the <a href="http://live.gnome.org/GtkTasks"> GtkTasks</a> and <a href="http://live.gnome.org/GTK+/3.0/Tasks"> Gtk+ 3.0 Tasks</a> 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 <a href="http://blogs.gnome.org/timj/2008/05/16/16052008-becoming-a-gtk-maintainer/">how to become a Gtk+ maintainer</a>. </p>
<p> <!--- paragraph break -->
<p align="left"> Pizza looks weird in Istanbul BTW: </p>
<div align="center"><a> <img src="http://testbit.eu/~timj/blogstuff/pizza_istanbul.png" border="1" class="doxercss-frame"/> </a></div>
<p> <!--- paragraph break -->
<p align="left"> <strong>Wednesday</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> Almost by accident (I was mostly looking for an air conditioned hall in the afternoon), I happened to be watching &#8220;Gnome Documentation: A year in review&#8221; by <a href="http://donscorgie.livejournal.com/">Don Scorgie</a> where he described the new user documentation tool <a href="http://live.gnome.org/ProjectMallard">Mallard</a>. For some time now, I&#8217;ve been working on a <a href="http://en.wikipedia.org/wiki/Wiki_syntax"> Wiki syntax parser</a> for <a href="http://git.testbit.eu/Doxer/"> Doxer</a> to unify the markup I have to use for my blog, inline documentation and CMS content <a href="http://testbit.eu/filter/tips">markup at testbit.eu</a>. (I have a blog entry in the queue on this for another day.) In this context, implementing a Doxer markup backend that generates Mallard&#8217;s XML input could be an attractive markup alternative for future Gnome documentation &#8211; it at least ended up on my ever growing TODO list. ;) </p>
<p> <!--- paragraph break -->
<p align="left"> 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 <a href="http://mail.gnome.org/archives/gtk-devel-list/2008-June/msg00204.html"> merging of the GSEAL branch</a> into upstream trunk recently, there&#8217;s been a lot of focus on the technical preparative work we&#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&#8217;s basically just a re-release with all deprecated code removed and current &#8220;private&#8221; API really made private by moving it to non-installed source files). </p>
<p> <!--- paragraph break -->
<p align="left"> What has been lacking emphasis in this course is that 3.0 is going to be the necessary <em>enabler</em>, 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&#8217;ll reiterate the reasoning here: </p>
<ul type="disc">
<li> <em><a href="http://en.wikiquote.org/wiki/The_Matrix">Everybody falls the first time.</a></em> <br /> Code development in open source projects is very evolutionary, especially for projects that don&#8217;t clone or reimplement existing specified APIs like Libc. A whole chapter is spent on prototypes in <a href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month">The Mythical Man-Month</a>: <br /> <em>&#8220;Plan to throw one away; you will, anyhow.&#8221;</em> <br /> So newly added components and APIs are almost certain to need fixups or revamps in future iterations (likely <a href="http://en.wikipedia.org/wiki/Second-system_effect">more than once</a>). 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 <a href="http://en.wikipedia.org/wiki/Waterfall_model">waterfall design model</a> is not it. </li>
<li> <em>Gtk+-2.x is essentially a dead end.</em> <br /> 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 &#8220;new&#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. </li>
<li> <em>GLib and Gtk+ do have a means to deal with API changes:</em> <br /> 1) We provide new alternative interfaces (functions). <br /> 2) We deprecate old interfaces (functions) or provide compatibility code in old interfaces. <br /> Notably, this does only work for API that is exported via function symbols. Structure fields that are directly accessed from application code can&#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&#8217;s why we want to move away from exposing any structure internals in 3.0 and beyond. </li>
<li> <em>3.0 will ABI-incompatibly remove all deprecated and private APIs.</em> <br /> Of course, the above described deprecation scheme only scales well if deprecated APIs are <em>really removed</em> 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&#8230; <br /> By exposing only function symbols as future public interfaces, we&#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. </li>
<li> <em>User visible gains are post-3.0 features:</em> <br /> Since GLib and Gtk+ are largely volunteer contribution based projects, it&#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:
<ul type="square">
<li> Full support of alpha transparency for all widgets; </li>
<li> Support for (partial) stacking of widgets (needs transparency); </li>
<li> Offering easier layouting facilities; </li>
<li> Support for animated visible transitions between widget states; </li>
<li> Providing new UI metaphors based on simulation of physical effects like acceleration, 3D browsing of image collections, 3D skimming through notebook pages, and more; </li>
<li> Using IDL based type data generators and code generators to improve the way widgets are implemented; </li>
<li> Implementing a new theming system for the toolkit; </li>
<li> Moving towards exposing widget features only via interfaces that have their own handle (asymmetric query_interface). </li>
</ul>
</li>
</ul>
<p> <!--- paragraph break -->
<p align="left"> This is how GSEAL, the Gtk+-3.0 release and a couple <a href="http://live.gnome.org/GTK+/3.0/Tasks">remaining outstanding tasks</a> 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. </p>
<p> <!--- paragraph break -->
<p align="left"> At the end of the day, we had the Opening Cocktails Party, during which I managed to catch Hallski tattooing J5: </p>
<div align="center"><a> <img src="http://testbit.eu/~timj/blogstuff/gnometagging.png" border="1" class="doxercss-frame"/> </a></div>
<p> <!--- paragraph break -->
<p align="left"> <strong>Thursday</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> 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&#8217; slides are available online: </p>
<pre>	<a href="http://people.imendio.com/kris/gtk-state-of-the-union-2008.pdf">http://people.imendio.com/kris/gtk-state-of-the-union-2008.pdf</a>
</pre>
<p align="left"> 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+&#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. </p>
<p> <!--- paragraph break -->
<p align="left"> At the end of the day, there was the boat trip through the Bosporous which provided a beautiful sight along the coast line. </p>
<p> <!--- paragraph break -->
<div align="center"><a> <img src="http://testbit.eu/~timj/blogstuff/guadec2008boat.png" border="1" class="doxercss-frame"/> </a></div>
<p> <!--- paragraph break -->
<p align="left"> <strong>Friday</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> 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&#8230; ;) </p>
<p> <!--- paragraph break -->
<p align="left"> I took particular interest in Transifex, an online translation platform that can work together with multiple VCSes and that we&#8217;d ideally move all Gnome translations to in the future. There are two things I&#8217;d like to see fixed in a future translation workflow from a developer perspective: </p>
<ul type="square">
<li> The .po templates should really be generated by the developers of the upstream project by automatic means, e.g.: <br /> <code>make update-po -C po/</code> <br /> So the upstream version of intltool and po/Makefile.* are used instead of possibly broken or outdated intltool/gettext versions on the translators system. </li>
<li> 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). </li>
</ul>
<p> <!--- paragraph break -->
<p align="left"> 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&#8217;t usually reveal easily, and that&#8217;s not easily made accessible by the most prominent desktop metaphors either. </p>
<p> <!--- paragraph break -->
<p align="left"> I feel very tempted to start an implementation of the desktop tabs with Rapicorn, however with a few refinements of Federico&#8217;s proposal: </p>
<ul type="square">
<li> The view should provide a &#8220;chronological zoom&#8221; slider to switch the view between years/months/weeks/days/hours. </li>
<li> To be most useful, we&#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. </li>
<li> I think the journaling hooks need to be implemented via DBus and not rely on Nautilus, so they&#8217;re usable by all cross-desktop applications and non-GUI programs. </li>
<li> 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). </li>
</ul>
<p> <!--- paragraph break -->
<p align="left"> <strong>Saturday</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> 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. </p>
<p> <!--- paragraph break -->
<p align="left"> Oh, and since I&#8217;ve been asked about my nickname here and there, I decided to add tabs to my hackergotchi for clarification: </p>
<div align="center"><a> <img src="http://testbit.eu/~timj/blogstuff/gotchitabs.png" border="1" class="doxercss-frame"/> </a></div>
<p> <!--- paragraph break -->
<p align="left"> <strong>Aftermath</strong> </p>
<p> <!--- paragraph break -->
<p align="left"> There have been quite some discussions on the Gtk+-3.0 plan after Kris&#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). </p>
<p> <!--- paragraph break --></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2008/07/16/16072008-guadec-2008-wrapup/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>02.06.2008 LinuxTag 2008</title>
		<link>http://blogs.gnome.org/timj/2008/06/02/02062008-linuxtag-2008/</link>
		<comments>http://blogs.gnome.org/timj/2008/06/02/02062008-linuxtag-2008/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 14:54:13 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2008/06/02/02062008-linuxtag-2008/</guid>
		<description><![CDATA[
 Just like  LinuxTag last year, I went to Berlin the past week to help running the Gnome booth for  LinuxTag 2008. 
 
 Due to a sports accident, our booth bunny  Sven Herzberg unfortunately couldn&#8217;t make it, so on Tuesday I took over booth management and merchandise from him and hurried [...]]]></description>
			<content:encoded><![CDATA[<p><!--- paragraph break -->
<p align="left"> Just like <a href="http://blogs.gnome.org/timj/2007/06/04/04062007-linuxtag/"> LinuxTag last year</a>, I went to Berlin the past week to help running the Gnome booth for <a href="http://www.linuxtag.org/2008/"> LinuxTag 2008</a>. </p>
<p> <!--- paragraph break -->
<p align="left"> Due to a sports accident, our booth bunny <a href="http://herzi.eu/"> Sven Herzberg</a> unfortunately couldn&#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 <a href="http://taschenorakel.de/mathias/"> Mathias Hasselmann</a> who brought the European Gnome event box and together we set up the booth until late in the night. </p>
<p> <!--- paragraph break -->
<div align="center"><a href="http://testbit.eu/~timj/galleries/Linuxtag2008/"> <img src="http://testbit.eu/~timj/galleries/Linuxtag2008/booth-small.jpg "/> </a></div>
<p> <!--- paragraph break -->
<p align="left"> On Wednesday morning, <a href="http://www.michael-koechling.info/"> Michael Köchling</a> and <a href="http://software.twotoasts.de/"> Christian Dywan</a> 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. </p>
<p> <!--- paragraph break -->
<p align="left"> Around lunch time, I was dragged away for an interview about business involvement in free software and Gnome in particular by <a href="http://www.cbs.dk/staff/mc"> Malgorzata Ciesielska</a>, a business school student from Copenhagen. She also interviewed other people like <a href="http://0pointer.de/blog"> Lennart Poettering</a> who also sporadically hung around our booth. </p>
<p> <!--- paragraph break -->
<p align="left"> 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. </p>
<p> <!--- paragraph break -->
<p align="left"> On Thursday I attended the <a href="http://www.linuxtag.org/2008/de/conf/events/vp-donnerstag/vortragsdetails.html?talkid=74"> Linux Kernel &#8211; Quo vadis?</a> 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&#8217;d be quite useful to voluntarily release pixmap or GSlice caches, particularly desired on embedded platforms. </p>
<p> <!--- paragraph break -->
<p align="left"> 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 <a href="http://behindkde.org/people/neundorf/"> Alexander Neundorf</a> about KDE&#8217;s recent <a href="http://www.cmake.org/HTML/About.html"> CMake</a> migration process. Overall, they seem to be pretty happy with the results. Major benefits from migrating from autotools to CMake seem to be: </p>
<ul type="square">
<li> Build process speedups due to getting rid of libtool. </li>
<li> 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. </li>
<li> Unification/merging of build files for Unixes and Windows. (Duplication of build logic between auto* files, <a href="http://msdn.microsoft.com/en-us/library/dd9y37ha.aspx"> nmake</a> and MS project files is currently a major annoyance for Gtk+&#8217;s Win32 maintainers.) </li>
</ul>
<p> <!--- paragraph break -->
<p align="left"> On Saturday the last day of the conference, I attended <a href="http://easterbridge.com/"> Anne Østergaard</a>&#8217;s presentation about Gnome Foundation structures and achievements, the slides of which are available here: <a href="http://easterbridge.com/files/presentation-LinuxTag-2008.pdf"> The GNOME Foundation (PDF)</a>. </p>
<p> <!--- paragraph break -->
<p align="left"> After that, I went to <a href="http://www.jonobacon.org/"> Jono Bacon</a>&#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. </p>
<p> <!--- paragraph break -->
<p align="left"> 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&#8217;d like to thank Christian and especially Michael for their great efforts in patiently answering bypasser&#8217;s Gnome questions at the booth, while I wandered off to talks or had technical discussions in its back. </p>
<p> <!--- paragraph break --></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2008/06/02/02062008-linuxtag-2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>13.06.2007 Back Online</title>
		<link>http://blogs.gnome.org/timj/2007/06/13/13062007-back-online/</link>
		<comments>http://blogs.gnome.org/timj/2007/06/13/13062007-back-online/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 00:55:16 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2007/06/13/13062007-back-online/</guid>
		<description><![CDATA[ I just got back online after a full week of DSL-outage due to the Deutsche Telekom Strike. If you are awaiting response via email or bugzilla from me, please be patient, I&#8217;m doing my best to catch up. Feel free to poke me about urgent issues via IRC/IM though, or drop me a reminder [...]]]></description>
			<content:encoded><![CDATA[<p> I just got back online after a full week of DSL-outage due to the <a href="http://www.spiegel.de/international/business/0,1518,482363,00.html">Deutsche Telekom Strike</a>. If you are awaiting response via email or <a href="http://bugzilla.gnome.org/">bugzilla</a> from me, please be patient, I&#8217;m doing my best to catch up. Feel free to poke me about urgent issues via <a href="http://testbit.eu/~timj/">IRC/IM</a> though, or drop me a reminder if you haven&#8217;t heard back from me in another week. </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2007/06/13/13062007-back-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>24.11.2006 How to start a web browser</title>
		<link>http://blogs.gnome.org/timj/2006/11/24/24112006-how-to-start-a-web-browser/</link>
		<comments>http://blogs.gnome.org/timj/2006/11/24/24112006-how-to-start-a-web-browser/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 16:30:28 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2006/11/24/24112006-how-to-start-a-web-browser/</guid>
		<description><![CDATA[ Last week i got a bug report where activating &#8220;Help/Quick Start&#8221;, &#8220;Help/FAQ&#8221; and any other web browser related menu item in Beast would do nothing.  That of course completely defeats the purpose of writing help documents and offering help via the menu.  Luckily, we were able to get browser launching debugging print [...]]]></description>
			<content:encoded><![CDATA[<p> Last week i got a bug report where activating &#8220;Help/Quick Start&#8221;, &#8220;Help/FAQ&#8221; and any other web browser related menu item in <a href="http://beast.gtk.org">Beast</a> would do nothing. <br /> That of course <em>completely</em> defeats the purpose of writing help documents and offering help via the menu. <br /> Luckily, we were able to get browser launching debugging print outs in that scenario, and what happened was: <br /> * Beast started up <code>gnome-open</code> with the help URL. <br /> * Since <code>gnome-open</code> was present on the system and could be started, browser launching was considered successful and no error dialog had to be displayed. <br /> * <code>gnome-open</code> in turn would error out (for unknown reasons): <code>
<pre>	Error showing URL: There was an error launching the default action command associated with this location.</pre>
<p></code> <br /> The problem here is clearly that Beast wrongly assumed launching a browser or script successfully would be enough. I&#8217;ve since reworked the logic so that: <br /> * Browser launch scripts/programs are now always started in the foreground to verify their respective exit codes. <br /> * A correctly functioning browser launcher now has to reliably start the browser in the background and has to provide a correct exit code. <br /> * Graphical browser programs are started in the background, because browsers can reasonably be expected to show a URL once started successfully. Besides that, the exit code depends on other events during a browsing session anyway and it also is only provided at the end of a browsing session. <br /> * If no browser launching script with 0 exit code could be started and no browser program could be started successfully in the background, a descriptive error dialog is shown, including the target URL. </p>
<p> I had to test out a bunch of browser launchers to get this to work reliably, and some of the launchers that fell short to be usable really came at a surprise: <br /> * <code>gnome-open</code> (GNOME) &#8211; the browser is opened in the background, and if no browser could successfully be launched a non-0 exit code is provided. <br /> * <code>exo-open</code> (XFCE) &#8211; browser is opened in the background, provides correct exit code. <br /> * <code>kfmclient</code> (KDE) &#8211; browser is opened in the background, provides correct exit code. <br /> * <code>gnome-moz-remote</code> (old GNOME) &#8211; browser is opened in the background, provides correct exit code. <br /> * <code>browser-config</code> (Gentoo) &#8211; this script goes through some lengths to make sure all browsers are opened in the background, but then it always quits with an exit code of 0, even if no browser was configured and launched. <br /> * <code>xdg-open</code> (Portland) &#8211; provides correct exit code, but the browsers are unpredictably launched in the foreground or background (usually depending on whether a running browser instance already exists or not). <br /> * <code>sensible-browser</code> (Debian) &#8211; provides correct exit code, but unpredictably opens in foreground or background. <br /> * <code>htmlview</code> (Red Hat) &#8211; provides correct exit code, but unpredictably opens in foreground or background. </p>
<p> In the end, the Linux distribution launchers that i was really hoping for to get user configuration right (honor <code>$BROWSER</code>) and work reliably across desktops failed short to do so (<code>browser-config</code>, <code>xdg-open</code>, <code>sensible-browser</code> and <code>htmlview</code>), while all the desktop project launchers fullfiled the required needs (<code>gnome-open</code>, <code>exo-open</code> and <code>kfmclient</code>). For everyone interested, the current browser launching code used in Beast now can be found here: <br /> <a href="http://svn.gnome.org/viewsvn/beast/trunk/birnet/birnetutils.cc?view=markup">http://svn.gnome.org/viewsvn/beast/trunk/birnet/birnetutils.cc?view=markup</a> &#8211; scroll to &#8220;<code>url_test_show</code>&#8220;. </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2006/11/24/24112006-how-to-start-a-web-browser/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>30.09.2006 Monster out of Closet</title>
		<link>http://blogs.gnome.org/timj/2006/09/30/30092006-monster-out-of-closet/</link>
		<comments>http://blogs.gnome.org/timj/2006/09/30/30092006-monster-out-of-closet/#comments</comments>
		<pubDate>Sat, 30 Sep 2006 09:28:23 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2006/09/30/30092006-monster-out-of-closet/</guid>
		<description><![CDATA[ Rodney Dawes blogged in reply to my previous blog entry on Hammering the intltool trouble. First of all, blog discussions suck, they suck less if they are carried on in the comments section of a blog entry, but i agree with Rodney that this is still not as helpful as Bugzilla or email conversations [...]]]></description>
			<content:encoded><![CDATA[<p> <a href="http://wayofthemonkey.com/?date=2006-09-29">Rodney Dawes</a> blogged in reply to my previous blog entry on <a href="http://blogs.gnome.org/view/timj/2006/09/28/0">Hammering the intltool trouble</a>. First of all, blog discussions suck, they suck less if they are carried on in the comments section of a blog entry, but i agree with Rodney that this is still not as helpful as Bugzilla or email conversations are. Coincidentally, the actual issue, namely <a href="http://beast.gtk.org">Beast</a>&#8217;s intltool patch has been addressed in a private email discussion in 2005 and 2006 in which Rodney got Cc:-ed and also replied. That thread also linked to a version of the <a href="http://cvs.gnome.org/viewcvs/beast/po/intltool-scm.diff?view=markup">Beast intltool-extract.in patch</a>. It didn&#8217;t seem like this would go into intltool though, so we simply continued to maintain our patched version. In any case, if Rodney prefers to have this issue tracked by Bugzilla, that&#8217;s fine, here&#8217;s the new bug report which describes our scenario and has the patch attached: <a href="http://bugzilla.gnome.org/show_bug.cgi?id=358495">Bug 358495 &#8211; support for multiline scheme strings</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2006/09/30/30092006-monster-out-of-closet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>28.09.2006 Hammering the intltool trouble</title>
		<link>http://blogs.gnome.org/timj/2006/09/28/28092006-hammering-the-intltool-trouble/</link>
		<comments>http://blogs.gnome.org/timj/2006/09/28/28092006-hammering-the-intltool-trouble/#comments</comments>
		<pubDate>Thu, 28 Sep 2006 15:35:57 +0000</pubDate>
		<dc:creator>Tim Janik</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/timj/2006/09/28/28092006-hammering-the-intltool-trouble/</guid>
		<description><![CDATA[ So I&#8217;ve finally had enough trouble with kludging around the different bits and odds of intltool. For several years now, the Beast project has to maintain a patch against intltool to apply after intltoolize --force --copy. The patch must be applied in order to enable translation of multi line scheme strings, and to allow [...]]]></description>
			<content:encoded><![CDATA[<p> So I&#8217;ve finally had enough trouble with kludging around the different bits and odds of intltool. For several years now, the <a href="http://beast.gtk.org">Beast</a> project has to maintain a <a href="http://svn.gnome.org/viewsvn/beast/trunk/po/intltool-scm-35.diff?view=markup">patch against intltool</a> to apply after <code>intltoolize --force --copy</code>. The patch must be applied in order to enable translation of multi line scheme strings, and to allow custom recursive Makefile rules (which usually break due to po/Makefile.in.in). Most often the patches would not apply on systems other than mine, because they didn&#8217;t cover all stock intltool versions or would still fail for matching versions because of conflicts with patches applied to intltool during distribution packaging. The latest annoyance we ran into were m4 macro incompatibilities that for a variety of reasons were once more an issue not easily worked around. <br /> <a href="http://svn.gnome.org/viewsvn/beast?rev=3917&amp;view=rev">Beast SVN</a> now simply contains the copied and patched intltool files (0.35.0) so other developers are finally able again to build Beast from SVN without any autogen.sh trouble and pass all of <code>make check</code> (which also checks whether scheme strings got properly merged into .po files). After all, it&#8217;s not that many files anyway: <code>acintltool.m4 intltool-extract.in intltool-merge.in intltool-update.in po/Makefile.intltool</code> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/timj/2006/09/28/28092006-hammering-the-intltool-trouble/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
