<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet Collabora</title>
  <updated>2008-08-27T23:15:44Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Anonymous Coward</name>
  </author>
  <id>http://planet.collabora.co.uk/atom.xml</id>
  <link href="http://planet.collabora.co.uk/atom.xml" rel="self"/>

  <entry xml:lang="en">
    <id>http://www.barisione.org/blog.html/p=138</id>
    <link href="http://www.barisione.org/blog.html/p=138" rel="alternate" type="text/html"/>
    <title>Marco Barisione: Back from holidays</title>
    <summary>Can someone please explain me why the British railway system is as bad as the Italian one but much more expensive?</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Can someone please explain me why the British railway system is as bad as the Italian one but much more expensive?
</p></div>
    </content>
    <updated>2008-08-26T20:23:41Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>barisione</name>
    </author>
    <source>
      <id>http://www.barisione.org/blog.html</id>
      <link href="http://www.barisione.org/blog.html" rel="alternate" type="text/html"/>
      <link href="http://www.barisione.org/blog.html/feed/" rel="self" type="application/rss+xml"/>
      <title>Marco Barisione's Weblog</title>
      <updated>2008-08-26T20:23:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/08/26/guadec-photos-online/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/08/26/guadec-photos-online/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: GUADEC photos online</title>
    <summary>I have been looking for a new hosting option for a while and last week I finally choose one. Based on recommendations from others I ended up going with Slicehost.  Slicehost advertise themselves as being a hosting company for developers, which I learned is definitely true. It is the first time ever I had [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I have been looking for a new hosting option for a while and last week I finally choose one. Based on recommendations from others I ended up going with <a href="http://www.slicehost.com/">Slicehost</a>.  Slicehost advertise themselves as being a hosting company for developers, which I learned is definitely true. It is the first time ever I had a hosting setup where I even needed to install and configure my own email server. Learned a lot about Postfix over the last weekend <img alt=":)" class="wp-smiley" height="16" src="http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/face-smile.png" width="16"/> </p>
<p>That said their setup is pretty nice. You can choose which linux distro you prefer from a quite big list and they will automatically set up your slice with that distro for you. They also have nice webtools for configuring things like DNS. And finally they got a lot of easy to follow tutorials on how to get common server tasks configured and running. Most of them Ubuntu centric, but I found it easy enough to find the Fedora equivalents when needed.</p>
<p>Once the basics was taken care of it was time for me to get my <a href="http://www.linuxrising.com/gallery">photo gallery</a> back online after a longer period of being offline. Mostly due to me not having kept the gallery code up-to-date (and thus secure) it had been disabled at my old hosting provider. So upgrading to latest version was step one. The upgrade instructions turned out to not work at all, but doing a fresh install seemed to do the upgrade job just as well, it still managed to pick up all my old photos. I am still using <a href="http://gallery.menalto.com/">Gallery</a> 1.x though, but I noticed that Fedora packages Gallery 2. So I should probably switch to that at some point as having Fedora packagers make sure I am up to date without glaring security holes is more likely to work in the long run.</p>
<p>Anyway, to summarize a long story, my <a href="http://www.linuxrising.com/gallery/album12">photos from GUADEC</a> are now online <img alt=":)" class="wp-smiley" height="16" src="http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/face-smile.png" width="16"/> </p>
<p>I also orderd myself an Epson 350 photo scanner today after discovering that &lt;a href=”http://avasys.jp/hp/menu000000500/hpg000000442.htm”&gt;Epson&lt;/a&gt; actually provides official drivers for Linux. Hopefully I will soon also get all my pre-digital photos online.</p></div>
    </content>
    <updated>2008-08-26T14:56:15Z</updated>
    <category term="General"/>
    <category term="Oddball entries"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="fr">
    <id>urn:md5:828027e2d3c5eceb14fe8043b9140226</id>
    <link href="http://cass.no-ip.com/~cassidy/blog/index.php/post/2008/08/22/More-Map-widget" rel="alternate" type="text/html"/>
    <title>Guillaume Desmottes: More Map widget!</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Seems like mapping is the <a href="http://www.johnstowers.co.nz/blog/index.php/2008/08/23/blog-as-noticeboard/">hot topic today</a>, <a href="http://blog.squidy.info/en/">Pierre-Luc</a> also announced a Gtk+ Map widget.  Since he's not on <a href="http://planet.gnome.org/">Planet GNOME</a> yet, I'll post the links for you all to see:</p>
<ul>
<li>His <a href="http://blog.squidy.info/2008/08/22/introducing-libchamplain/en/">post</a></li>
<li>The <a href="http://blog.squidy.info/projects/libchamplain/en/">project's page</a></li>
</ul></div>
    </summary>
    <updated>2008-08-22T14:43:00Z</updated>
    <category term="Nerdzage"/>
    <author>
      <name>Guillaume Desmottes</name>
    </author>
    <source>
      <id>http://cass.no-ip.com/~cassidy/blog/index.php/</id>
      <link href="http://cass.no-ip.com/~cassidy/blog/index.php/" rel="alternate" type="text/html"/>
      <link href="http://cass.no-ip.com/~cassidy/blog/index.php/feed/en/rss2" rel="self" type="application/rss+xml"/>
      <title>Le Weblog à Cassidy</title>
      <updated>2008-08-22T12:43:50Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.squidy.info/?p=627</id>
    <link href="http://blog.squidy.info/2008/08/22/introducing-libchamplain/en/" rel="alternate" type="text/html"/>
    <title>Pierre-Luc Beaudoin: Introducing libchamplain</title>
    <summary>I was planning to announce this on Monday, after a week-end to clean things up, but since another widget with similar features have been announced today, I think I should announce mine as well!

So libchamplain is a Gtk+ widget that aims to display rasterized maps (OpenStreetMap, Google Maps and others) using Clutter to have nice [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I was planning to announce this on Monday, after a week-end to clean things up, but since <a href="http://www.johnstowers.co.nz/blog/index.php/2008/05/21/frantic/">another widget</a> with similar features have been announced today, I think I should announce mine as well!</p>
<p style="text-align: center;"><a href="http://blog.squidy.info/wp-content/uploads/2008/08/capture-champlain-01.png"><img alt="" class="size-medium wp-image-572 aligncenter" height="257" src="http://blog.squidy.info/wp-content/uploads/2008/08/capture-champlain-01-300x257.png" title="capture-champlain-01" width="300"/></a></p>
<p>So libchamplain is a Gtk+ widget that aims to display rasterized maps (OpenStreetMap, Google Maps and others) using Clutter to have nice animations.  It is in a workable state (only zooming is limited for now, and that’s what I was planning to iron out this week-end).  See the <a href="http://blog.squidy.info/projects/libchamplain/en/">web site</a> for detailed feature and planned features.</p>
<p>You can grab the LGPLed code on <a href="http://gitorious.org/projects/libchamplain/repos/mainline">gitorious</a>.  Comments, reviews and patches/branches are welcome <img alt=":)" class="wp-smiley" src="http://blog.squidy.info/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p><strong>Update</strong>: I created a <a href="http://blog.squidy.info/wp-content/uploads/2008/08/libchamplain1.ogg">screencast</a> to demo it, but we can’t really see the nice animations here.  How do we do a nice screencast of a Clutter based app?<strong/></p>
<p><strong>Update</strong>: I pushed the missing marshal file, thanks bpeel.</p></div>
    </content>
    <updated>2008-08-22T14:22:40Z</updated>
    <category term="Technologie"/>
    <author>
      <name>Pierre-Luc Beaudoin</name>
    </author>
    <source>
      <id>http://blog.squidy.info</id>
      <link href="http://blog.squidy.info/feed/en/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.squidy.info" rel="alternate" type="text/html"/>
      <subtitle>Now in Aqua, where available</subtitle>
      <title>Pierre-Luc Beaudoin</title>
      <updated>2008-08-25T02:07:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.squidy.info/?p=607</id>
    <link href="http://blog.squidy.info/2008/08/21/gtalk-problems/en/" rel="alternate" type="text/html"/>
    <title>Pierre-Luc Beaudoin: Gtalk problems?</title>
    <summary>I’ve been having issues with Google Talk for some days now.  At first, I didn’t bother to look for the source of the problem, but right now I can’t event see all my online contacts (and that’s no mater which Open Source IM client I use).
I’ve started telepathy-gabble with debug to get the right error [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’ve been having issues with Google Talk for some days now.  At first, I didn’t bother to look for the source of the problem, but right now I can’t event see all my online contacts (and that’s no mater which Open Source IM client I use).</p>
<p>I’ve started telepathy-gabble with debug to get the right error message:</p>
<blockquote><p>&lt;error code=”500″ type=”wait”&gt;&lt;resource-constraint xmlns=”urn:ietf:params:xml:ns:xmpp-stanzas”/&gt;&lt;text xmlns=”urn:ietf:params:xml:ns:xmpp-stanzas”&gt;Too many stanzas sent per day.&lt;/text&gt;&lt;/error&gt;&lt;/iq&gt;’</p></blockquote>
<p>It all looks like my account had been suspended for sending too many messages but it isn’t the case.  It is funny because empathy was giving me “Messages is too long” error messages and pidgin was saying “Unauthorized”.</p>
<p>So where’s the problem? Did my account get high jacked to send spam? are there issues with the Google Talk XMPP servers (I recall people having issues yesterday)?</p>
<p>I think the utilmate solution will be to just create an account on a real XMPP server and drop Google Talk at once.</p>
<p><strong>Update</strong>: problem solved, the service is back to normal.  Go figure what happened!</p></div>
    </content>
    <updated>2008-08-21T18:07:21Z</updated>
    <category term="Technologie"/>
    <author>
      <name>Pierre-Luc Beaudoin</name>
    </author>
    <source>
      <id>http://blog.squidy.info</id>
      <link href="http://blog.squidy.info/feed/en/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.squidy.info" rel="alternate" type="text/html"/>
      <subtitle>Now in Aqua, where available</subtitle>
      <title>Pierre-Luc Beaudoin</title>
      <updated>2008-08-25T02:07:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.squidy.info/?p=561</id>
    <link href="http://blog.squidy.info/2008/08/18/npapi-plugins-are-supported/en/" rel="alternate" type="text/html"/>
    <title>Pierre-Luc Beaudoin: NPAPI plugins are supported</title>
    <summary>This Arstechnica article is quite interesting…
Also, NPAPI support is already in the Gecko web rendering engine.
I’d like to correct a perception here: NPAPI plugins are supported in QtWebKit (current SVN and future releases) and WebKitGtk.  In fact, Marc Ordinas i Llopis made it work months ago!</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This Arstechnica <a href="http://arstechnica.com/news.ars/post/20080818-nokia-helps-port-firefox-to-qt.html">article</a> is quite interesting…</p>
<blockquote><p>Also, NPAPI support is already in the Gecko web rendering engine.</p></blockquote>
<p>I’d like to correct a perception here: NPAPI plugins are supported in QtWebKit (current SVN and future releases) and WebKitGtk.  In fact, Marc Ordinas i Llopis made it work <a href="http://marcoil.org/archive/124">months ago</a>!</p></div>
    </content>
    <updated>2008-08-18T17:33:28Z</updated>
    <category term="Technologie"/>
    <category term="WebKit"/>
    <author>
      <name>Pierre-Luc Beaudoin</name>
    </author>
    <source>
      <id>http://blog.squidy.info</id>
      <link href="http://blog.squidy.info/feed/en/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.squidy.info" rel="alternate" type="text/html"/>
      <subtitle>Now in Aqua, where available</subtitle>
      <title>Pierre-Luc Beaudoin</title>
      <updated>2008-08-25T02:07:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.squidy.info/?p=556</id>
    <link href="http://blog.squidy.info/2008/08/14/a-new-font-dialog/en/" rel="alternate" type="text/html"/>
    <title>Pierre-Luc Beaudoin: A new font dialog</title>
    <summary>Alberto, starting from your prototype UI, I let my mind free.  I think the flow feels simpler, and it is less cluttered to the eye.  Since all lists are searchable, I removed the search area.  I moved the buttons under the font list because I think that we always select a font in this order: [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://aruiz.typepad.com/siliconisland/2008/08/font-selection.html">Alberto</a>, starting from your prototype UI, I let my mind free.  I think the flow feels simpler, and it is less cluttered to the eye.  Since all lists are searchable, I removed the search area.  I moved the buttons under the font list because I think that we always select a font in this order: Font face, font weight and style, then size.</p>
<p>I still think we might need more labels to explicitly tell the user what is listed in the font list.  This version also has the advantage that if a font name is too large, you can always resize the window.</p>
<p>Anyway, that was my 2 cents <img alt=":)" class="wp-smiley" src="http://blog.squidy.info/wp-includes/images/smilies/icon_smile.gif"/> I am no HIG specialist.</p>
<p><img src="http://farm4.static.flickr.com/3125/2763860014_ee9012d789.jpg"/><br/>
<img src="http://farm4.static.flickr.com/3185/2763015373_3cff5f668a.jpg"/></p></div>
    </content>
    <updated>2008-08-14T21:14:29Z</updated>
    <category term="Technologie"/>
    <author>
      <name>Pierre-Luc Beaudoin</name>
    </author>
    <source>
      <id>http://blog.squidy.info</id>
      <link href="http://blog.squidy.info/feed/en/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.squidy.info" rel="alternate" type="text/html"/>
      <subtitle>Now in Aqua, where available</subtitle>
      <title>Pierre-Luc Beaudoin</title>
      <updated>2008-08-25T02:07:45Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:treitter:7769</id>
    <link href="http://treitter.livejournal.com/7769.html" rel="alternate" type="text/html"/>
    <link href="http://treitter.livejournal.com/data/atom/?itemid=7769" rel="self" type="text/xml"/>
    <title>Travis Reitter: Interactive rebasing (the git command, not the sport)</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://www.gnome.org/~federico/news-2008-08.html#12">Federico</a>,<br/><br/><code>git rebase -i</code> has quickly become one of my favorite git features for all the reasons you state, plus one of my common work-flows:<br/><br/><ol><li>refactor existing code (commenting out lines that I plan to remove). Check that it works. Commit.<br/></li><li>cut commented code. Check that it works. Commit.</li></ol><br/>I tend to comment old lines instead of cutting them immediately, because I often realize I needed some of them or that my new idea isn't quite workable. With <code>git rebase -i</code>, I can squash those two commits together before pushing them to the mainline repo.<br/><br/>And, of course, it's nice to look like I can refactor hundreds of lines flawlessly in a single commit :) (I've done that in subversion, but it takes painfully long to ensure you haven't broken anything before you commit)<br/><br/><br/>In other news, the Telepathy repositories are <a href="http://lists.freedesktop.org/archives/telepathy/2008-August/002125.html">being converted</a> from darcs to <a href="http://git.collabora.co.uk/">git</a>. Score another point for git in the endless DVCS debate!</div>
    </content>
    <updated>2008-08-14T17:48:03Z</updated>
    <published>2008-08-14T17:48:03Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:treitter</id>
      <author>
        <name>treitter</name>
      </author>
      <link href="http://treitter.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://treitter.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <subtitle>Maximizing social utility for fun and (modest) profit</subtitle>
      <title>Let's Push Things Forward</title>
      <updated>2008-08-14T17:48:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.squidy.info/?p=546</id>
    <link href="http://blog.squidy.info/2008/08/13/a-new-gedit-plugin-open-headerbody/en/" rel="alternate" type="text/html"/>
    <title>Pierre-Luc Beaudoin: A new Gedit plugin: “Open Header/Body”</title>
    <summary>That’s a feature I was missing in Gedit: the ability to quickly switch from the header file (e.g. a .h file) to the body file (e.g. a .cpp file) and vice versa.  So I wrote a plugin!
See the plugin’s page for details.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>That’s a feature I was missing in Gedit: the ability to quickly switch from the header file (e.g. a .h file) to the body file (e.g. a .cpp file) and vice versa.  So I wrote a plugin!</p>
<p>See the <a href="http://blog.squidy.info/projects/open-headerbody-gedit-plugin">plugin’s page</a> for details.</p></div>
    </content>
    <updated>2008-08-13T16:51:32Z</updated>
    <category term="Technologie"/>
    <author>
      <name>Pierre-Luc Beaudoin</name>
    </author>
    <source>
      <id>http://blog.squidy.info</id>
      <link href="http://blog.squidy.info/feed/en/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.squidy.info" rel="alternate" type="text/html"/>
      <subtitle>Now in Aqua, where available</subtitle>
      <title>Pierre-Luc Beaudoin</title>
      <updated>2008-08-25T02:07:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/08/12/how-to-mix-code-with-different-licenses/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/08/12/how-to-mix-code-with-different-licenses/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: How to mix code with different licenses</title>
    <summary>Got a question on IRC today about the licensing of a specific file in GStreamer CVS, as it was under a MIT license instead of the LGPL license. While we strive to keep our licensing simple by making all new code LGPL or in some specific cases dual licensed, there are a few cases where [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Got a question on IRC today about the licensing of a specific file in GStreamer CVS, as it was under a MIT license instead of the LGPL license. While we strive to keep our licensing simple by making all new code LGPL or in some specific cases dual licensed, there are a few cases where we got code which is under the MIT or BSD license. This create a situation where we have some files in a directory under the LGPL while others are MIT for example. While I think he have kept things on an even keel within GStreamer, I have noticed that there is a lot of confusion in the open source community in general, about how you deal with MIT and BSD code in a GPL/LGPL context. In some extreme cases I have even seen people just cut’n pasting the MIT code into their GPL project believing that the MIT ‘do what you want license’ includes the right to relicense the code. It does not.</p>
<p>Anyway, to clear up the details for myself I contacted <a href="http://tieguy.org/blog/">Luis Villa</a> to get some help understanding some of the possible corner cases. Luis then pointed me at <a href="http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html">this great resource from the Software Freedom Law Center</a> for understanding how MIT and GPL code can co-exist in your codebase. I absolutely recommend  reading over this to better understand the implications.</p></div>
    </content>
    <updated>2008-08-12T16:01:40Z</updated>
    <category term="GNOME"/>
    <category term="GStreamer"/>
    <category term="Patents and Copyright"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/xclaesse/2008/08/11/adding-more-protocols-to-empathy/</id>
    <link href="http://blogs.gnome.org/xclaesse/2008/08/11/adding-more-protocols-to-empathy/" rel="alternate" type="text/html"/>
    <title>Xavier Claessens: Adding more protocols to Empathy</title>
    <summary>Seems lots of users are complaining about the lack of supported protocols in Empathy. In fact all protocols implemented in libpurple are easy to enable with empathy thanks to telepathy-haze. All you need is a .profile file describing some features, the icons to use, etc.
So I’m adding those profiles by default now but I need [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Seems lots of users are complaining about the lack of supported protocols in Empathy. In fact all protocols implemented in libpurple are easy to enable with empathy thanks to telepathy-haze. All you need is a .profile file describing some features, the icons to use, etc.</p>
<p>So I’m adding those profiles by default now but I need some info about protocols I never used myself: gadugadu, myspace, qq, sametime, simple, snpp, zephyr.</p>
<p>1) I need to know yes or no those features are supported:</p>
<ul>
<li>chat-p2p - Private chat.</li>
<li>chat-room - Chat with multiple users, the XMPP/IRC way, not MSN-like which is private chat where we can invite more members.</li>
<li>chat-room-list - List public rooms on a server, like XMPP/IRC do.</li>
<li>voice-p2p - Private audio call</li>
<li>contact-search -</li>
<li>split-account - account are in the form of user@server.com, in that case the “@server.com” can be omitted and replace by a default value. For example gtalk profile have that feature so you can type “myaccount” and it will be translated magically to “myaccount@gmail.com”</li>
<li>registration-ui -The possibility to register a new account on the server, like XMPP.</li>
<li>supports-avatars - Does contacts have avatars, can I set my own avatar.</li>
<li>supports-alias - Does contacts have alias, can I set my own alias.</li>
<li>supports-roster - Is there a list of contacts for that protocol?</li>
<li>video-p2p - Private video call</li>
</ul>
<p>2) For protocols having split-account feature I need to know the default domain to use. For example the gtalk profile says to use “@gmail.com” if the user didn’t type his full ID.</p>
<p>3) For each of those presence I need to know yes or no they are supported by the protocol:</p>
<ul>
<li>offline - obvious</li>
<li>available - when you are online, ready to chat</li>
<li>away - when you are af, automacitally when you don’t touch your computer for a while</li>
<li>extended-away - whn you are afk for a long tim, automatically set when you are away for a while</li>
<li>hidden - You are online but don’t want others to know that</li>
<li>do-not-disturb - You are working on other things and don’t want to chat</li>
</ul>
<p>4) What is the name I should display for qq and xnpp?</p>
<p>If you are able to answer those questions please let a comment or send me and email.</p>
<p>Thanks.</p></div>
    </content>
    <updated>2008-08-11T07:31:31Z</updated>
    <category term="GNOME"/>
    <author>
      <name>xclaesse</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/xclaesse</id>
      <link href="http://blogs.gnome.org/xclaesse" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/syndicate/xclaesse/GNOME" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Xavier Claessens » GNOME</title>
      <updated>2008-08-11T07:31:31Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/xclaesse/2008/08/10/news-about-empathy-2/</id>
    <link href="http://blogs.gnome.org/xclaesse/2008/08/10/news-about-empathy-2/" rel="alternate" type="text/html"/>
    <title>Xavier Claessens: News about Empathy</title>
    <summary>Lots of things is happening recently on the empathy front:

Empathy is now officially the IM client of GNOME 2.24!
The ubuntu desktop team considers Empathy to replace pidgin by default for intrepid. I think OpenSuse is investigating too.
Empathy 2.23.6 got released. Note the version is now 2.x as we now follow GNOME versioning.
I upated the roadmap.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Lots of things is happening recently on the empathy front:</p>
<ul>
<li>Empathy is now <a href="http://mail.gnome.org/archives/devel-announce-list/2008-August/msg00001.html">officially</a> the IM client of GNOME 2.24!</li>
<li><a href="https://lists.ubuntu.com/archives/ubuntu-devel-discuss/2008-August/005070.html">The ubuntu desktop team considers Empathy to replace pidgin by default for intrepid</a>. I think OpenSuse is investigating too.</li>
<li>Empathy 2.23.6 got <a href="http://lists.freedesktop.org/archives/telepathy/2008-August/002078.html">released</a>. Note the version is now 2.x as we now follow GNOME versioning.</li>
<li>I upated the <a href="http://live.gnome.org/Empathy/Roadmap">roadmap</a>.</li>
</ul></div>
    </content>
    <updated>2008-08-10T17:06:09Z</updated>
    <category term="GNOME"/>
    <author>
      <name>xclaesse</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/xclaesse</id>
      <link href="http://blogs.gnome.org/xclaesse" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/syndicate/xclaesse/GNOME" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Xavier Claessens » GNOME</title>
      <updated>2008-08-11T07:31:31Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/08/07/cdparanoia-now-lgpl-v2/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/08/07/cdparanoia-now-lgpl-v2/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: cdparanoia now LGPL v2</title>
    <summary>Some time ago I blogged about cdparanoia switching from GPLv2 to LGPLv3 on our request. After that time we have been discussing in the GStreamer community about licensing and what is the exact and implicit licensing promise we are and have been making with GStreamer. The conclusion was that since the LGPLv3 is more restrictive [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Some time ago I <a href="http://blogs.gnome.org/uraeus/category/gstreamer/">blogged about cdparanoia switching from GPLv2 to LGPLv3</a> on our request. After that time we have been discussing in the GStreamer community about licensing and what is the exact and implicit licensing promise we are and have been making with GStreamer. The conclusion was that since the LGPLv3 is more restrictive than the LGPLv2 we do not want LGPLv3 dependencies in gst-plugins-good and gst-plugins-base. As mentioned before we always tried to be very serious and coherent with our licensing in GStreamer and suddenly reducing the rights we offer application and plugin developers is not something we feel should be done without very good reason. This is a policy I hope also other important libraries decide to follow, personally I would think it would be a very sad thing if Glib and Gtk+ for instance started taking away rights from their users without a very well reasoned explanation. </p>
<p>Luckily Monty is a very kind soul, and starting from yesterday there is a new version of cdparanoia III out, 10.1, which is dual-licensed under the LGPLv2 and the GPLv2. So even in the future there will be cdripping support offered in GStreamer gst-plugins-base package.<br/>
So go to the <a href="http://xiph.org/paranoia/down.html">cdparanoia</a> download page and get yourself this minty fresh version of cdparanoia. We recommend distributions to update to this version as soon as possible to ensure there are no licensing conflicts in their distribution.</p></div>
    </content>
    <updated>2008-08-07T15:31:05Z</updated>
    <category term="GNOME"/>
    <category term="GStreamer"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/08/07/twins/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/08/07/twins/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: Twins</title>
    <summary>I was watching The Daily Show yesterday and Seth Rogen was on as the guest. For those who doesn’t know him, he is a comedian who has starred in movies such as Superbad, Knocked up, Pineapple Express and the upcoming Kevin Smith movie ‘Zack and Miri Make a Porno’. Anyway when listening to him it [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I was watching The Daily Show yesterday and <a href="http://www.imdb.com/name/nm0736622/">Seth Rogen</a> was on as the guest. For those who doesn’t know him, he is a comedian who has starred in movies such as Superbad, Knocked up, Pineapple Express and the upcoming Kevin Smith movie ‘Zack and Miri Make a Porno’. Anyway when listening to him it struck me that I had heard that exact voice and accent somewhere else recently. Then it struck me, vocally Seth Rogen and our own <a href="http://tieguy.org/blog/">Luis Villa</a> are identical twins. So if you are doing a podcast and Luis is not available for an interview take comfort in knowing you can hire Seth Rogen to do the interview instead and nobody will know the difference.</p></div>
    </content>
    <updated>2008-08-07T13:42:13Z</updated>
    <category term="GNOME"/>
    <category term="General"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://smcv.pseudorandom.co.uk/2008/08/collaboratively/</id>
    <link href="http://smcv.pseudorandom.co.uk/2008/08/collaboratively/" rel="alternate" type="text/html"/>
    <title>Simon McVittie: Speeding up builds with ccache and icecc</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Here's a script I use to speed up compilation at work. Since I work at
<a href="http://www.collabora.co.uk/">Collabora</a>, I call it <code>collaboratively</code>.
It's a prefix to a command (used in the same way as sudo or nice) which sets
up icecc (<a href="http://en.opensuse.org/Icecream">Icecream</a>) and ccache to work
nicely together.</p>

<pre><code>#!/bin/sh
# ~/bin/collaboratively
# Typical usage: collaboratively make check
PATH=/usr/lib/ccache:/usr/lib/icecc/bin$(echo :$PATH | sed -e s@:/usr/lib/ccache@@g)
export PATH
MAKEFLAGS='-j -l3'
export MAKEFLAGS
exec "$@"
</code></pre>

<p>Some more explanation of what it does:</p>

<ul>
<li><p>First, I want the gcc wrappers (actually symlinks to ccache) in
/usr/lib/ccache to be invoked. This uses ccache to make sure I don't
actually recompile source code that hasn't changed.</p></li>
<li><p>Next, I want to use icecc, which distributes builds around the office.
We run an icecc scheduler on the office server, which also contributes
two CPU cores and lots of RAM to the compilation effort.</p></li>
<li><p>To prevent infinite recursion between icecc and ccache, I have to make sure
ccache <em>isn't</em> in my <code>$PATH</code> for a second time! My <code>bash</code> and <code>zsh</code> dotfiles
automatically set up ccache, so in practice it does need editing out.</p></li>
<li><p>When distributing builds, <code>make</code> should be parallelizing as many compiles as
feasible - I use the flags <code>-j -l3</code> to run an unlimited number of parallel
compilation processes, but stop when the load average reaches 3 (the number
of CPU cores I have, plus 1, seems a reasonable maximum load-average).</p></li>
</ul>

<p><code>apt-get install icecc-monitor</code> and run <code>icemon</code> to see whether this is all
working - if it is, you should see compile jobs going off to other hosts.</p></div>
    </content>
    <updated>2008-08-05T11:47:09Z</updated>
    <published>2008-08-05T11:44:01Z</published>
    <source>
      <id>urn:uuid:0955f57e-4c2c-4614-b791-cf0bfb70f00e</id>
      <author>
        <name>Simon McVittie</name>
      </author>
      <link href="http://smcv.pseudorandom.co.uk/" rel="alternate" type="text/html"/>
      <link href="http://smcv.pseudorandom.co.uk/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright © 2008 Simon McVittie</rights>
      <subtitle>Simon McVittie's software development blog</subtitle>
      <title>Background noise</title>
      <updated>2008-08-05T11:47:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/08/05/gstreamers-new-deinterlace-plugin/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/08/05/gstreamers-new-deinterlace-plugin/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: GStreamer’s new deinterlace plugin</title>
    <summary>One of the tasks we gave Sebastian Dröge when he joined us here at Collabora Multimedia was to make sure we had a decent deinterlacer plugin in GStreamer. There had been a plugin in bugzilla for quite some time which contained some code culled mostly from the tvtime application by Billy Biggs. I had spent [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>One of the tasks we gave Sebastian Dröge when he joined us here at <a href="http://www.collabora.co.uk/">Collabora Multimedia</a> was to make sure we had a decent deinterlacer plugin in GStreamer. There had been a plugin in bugzilla for quite some time which contained some code culled mostly from the <a href="http://tvtime.sourceforge.net/">tvtime</a> application by Billy Biggs. I had spent quite some effort back in the day tracking down the needed people to relicense that code to the LGPL, but it still needed quite some work to be functional. Sebastian has been cleaning up the code and also ported all assembly code in there to C so that it works on all platforms (the assembly code is still in place for relevant platforms). The code for this ‘deinterlace2′ plugin is in gst-plugins-bad currently where Sebastian is fixing up the last niggling issues. But for the adventurous the code can be grabbed from CVS. Below are two screenshots showing a interlaced video with and without the use of the deinterlace2 plugin.</p>
<p>So here is a screenshot using a playback pipeline with the deinterlacer plugin inserted:<br/>
gst-launch filesrc location=clip.vob ! decodebin2 ! ffmpegcolorspace ! deinterlace2 ! xvimagesink</p>
<p><a href="http://blogs.gnome.org/uraeus/files/2008/08/deinterlaced.png" title="Deinterlaced"><img alt="Deinterlaced" src="http://blogs.gnome.org/uraeus/files/2008/08/deinterlaced.thumbnail.png"/></a></p>
<p>And here is the same clip using a pipeline without the deinterlacer:<br/>
gst-launch filesrc location=clip.vob ! decodebin2 ! ffmpegcolorspace ! xvimagesink<br/>
<a href="http://blogs.gnome.org/uraeus/files/2008/08/interlaced.png" title="Interlaced"><img alt="Interlaced" src="http://blogs.gnome.org/uraeus/files/2008/08/interlaced.thumbnail.png"/></a></p>
<p>The clip isn’t of the best quality to begin with, but it was the only one I found with interlacing on my disk. But if you click in and look at the two pictures you do very clearly notice the interlacing creating a jagged look of the second image.</p>
<p>This new improved deinterlacer should be very useful for some DVD’s and DVB transmissions, so once we get this fully integrated both DVD watching and DVB watching in <a href="http://www.gnome.org/projects/totem/">Totem</a> should be a very nice experience.</p></div>
    </content>
    <updated>2008-08-05T10:07:10Z</updated>
    <category term="General"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/08/04/gstreamer-dvd-support/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/08/04/gstreamer-dvd-support/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: GStreamer DVD support</title>
    <summary>After getting a lot of updates on the GStreamer DVD menu support bugzilla entry, I figured it was time to make sure Jan Schmidt got some well deserved credit for the work he is doing getting the GStreamer DVD support fixed. Up to know people have had two choices for GStreamer based DVD playback, either [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>After getting a lot of updates on the <a href="http://bugzilla.gnome.org/show_bug.cgi?id=531649">GStreamer DVD menu support bugzilla entry</a>, I figured it was time to make sure <a href="http://noraisin.net/~jan/diary/">Jan Schmidt</a> got some well deserved credit for the work he is doing getting the GStreamer DVD support fixed. Up to know people have had two choices for GStreamer based DVD playback, either <a href="http://seamless.sourceforge.net/">Seamless</a> which is a stand-alone DVD player, or using Totem. However the DVD playback you got in Totem using GStreamer up to know has been fairly basic, without DVD menu support for instance. With Jan’s ongoing work on his new resindvd plugin we are on the way to having full featured GStreamer-based DVD playback in Totem.</p>
<p>The resindvd plugin currently resides in plugins-bad, and Totem will automatically use it if you have it installed (and do not have the dvdnav plugin installed). Below is a screenshot of Totem displaying a fully functional DVD menu using the new resindvd plugin.</p>
<p><a href="http://blogs.gnome.org/uraeus/files/2008/08/minorityreportmenu.png" title="Minority report DVD menu"><img alt="Minority report DVD menu" src="http://blogs.gnome.org/uraeus/files/2008/08/minorityreportmenu.thumbnail.png"/> </a></p>
<p>Only hick up I had was that was something weird happening in the Pulseaudio sink, so in the end I had to kill Pulseaudio to get audio to work when playing DVDs.</p>
<p>So if you like me are very excited about this stuff Jan is doing be sure to test it out and file bug reports if any of your DVD’s fail to work properly. You can also ping thaytan on IRC and tell him you will get him a beer at the next free software conference he attends <img alt=":)" class="wp-smiley" height="16" src="http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/face-smile.png" width="16"/></p></div>
    </content>
    <updated>2008-08-04T14:25:07Z</updated>
    <category term="General"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.squidy.info/2008/08/01/making-cool-things-with-webkit/fr/</id>
    <link href="http://blog.squidy.info/2008/08/01/making-cool-things-with-webkit/en/" rel="alternate" type="text/html"/>
    <link href="http://people.collabora.co.uk/~pierlux/stefani.ogg" length="1162302" rel="enclosure" type="audio/ogg"/>
    <title>Pierre-Luc Beaudoin: Making cool things with WebKit</title>
    <summary>Everybody have heard that WebKit is the new cool kid.  Here is one reason: it is rather easy to hack on.   My colleague at Collabora, Siraj Razick, mixed up QWebView and QGraphicsItem to allow developers to put the Web inside a QGraphicsScene.  As he demonstrates, you can do crazy graphics with that.
From there, I went [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Everybody have heard that WebKit is the new cool kid.  Here is one reason: it is rather easy to hack on.   My colleague at <a href="http://www.collabora.co.uk/">Collabora</a>, <a href="http://www.kdedevelopers.org/node/3586">Siraj Razick</a>, mixed up QWebView and QGraphicsItem to allow developers to put the Web inside a QGraphicsScene.  As he demonstrates, you can do crazy graphics with that.</p>
<p>From there, I went to look at how we can implement the same behaviour we have in one of the popular mobile browser these days.  Here’s the result: <a href="http://people.collabora.co.uk/~pierlux/stefani.ogg">stefani.ogg</a> (Stefani is the name of our hacking app).</p>
<p>In this video, you can see that each time I click on a paragraph, its content is zoomed to fill the screen.  If you click again, you get back to the full page view.  At all time the page is live and active (it isn’t a static image), although that can prove to be an issue (like mistakenly clicking on a link while in full page view).</p>
<p>You can try it if you want, just keep in mind that this is a quick prototype and it doesn’t really support scrolling yet.  The code is here: <a href="http://git.collabora.co.uk/?p=user/pierlux/stefani.git;a=shortlog;h=refs/heads/pierlux-zoom">http://git.collabora.co.uk/?p=user/pierlux/stefani.git;a=shortlog;h=refs/heads/pierlux-zoom  </a></p>
<p>Now more details on how this works: on double click, I do a hitTestContent() at that position.  With a <a href="https://bugs.webkit.org/show_bug.cgi?id=19374">patch</a> we wrote, you can access the HitTest’s bounding box.  That is how I determine on what to zoom.  After that, it is simple mathematics, signals and QTimeLines.</p>
<p>Granted this method is rudimentary and does not always gives the best result, it works with patched current available API.  A more elegant solution (which we may write in the future), would be to use a DOM API and access the node that was clicked on.  From there, you could go up the DOM tree and see if a particular div would be more interesting to zoom on  (ie, if a &lt;p&gt; tag is contained in a &lt;div&gt;, zoom on that &lt;div&gt; might also contains the title of the paragraph).  But first, we have to write that Qt DOM API :).</p></div>
    </content>
    <updated>2008-08-01T22:03:49Z</updated>
    <category term="Technologie"/>
    <category term="WebKit"/>
    <author>
      <name>Pierre-Luc Beaudoin</name>
    </author>
    <source>
      <id>http://blog.squidy.info</id>
      <link href="http://blog.squidy.info/feed/en/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.squidy.info" rel="alternate" type="text/html"/>
      <subtitle>Now in Aqua, where available</subtitle>
      <title>Pierre-Luc Beaudoin</title>
      <updated>2008-08-25T02:07:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.kdedevelopers.org/3586 at http://www.kdedevelopers.org</id>
    <link href="http://www.kdedevelopers.org/node/3586" rel="alternate" type="text/html"/>
    <title>Siraj Razick: Fun with WebKit</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>At my new workplace <a src="http://www.collabora.co.uk"> Collabora </a>, I got the chance to play around with Webkit during the last few months. and one of the tasks we looked at was to improve and speedup webkit on QGraphicsView, And then produce useful ways to interact with Web contents, So yesterday, I was checking how responsive it would be to add live reflections of a webpage.<br/>
Here is the video,  http://www.youtube.com/watch?v=T44QxXCQZzQ. And it wasn't bad as we expected. This is really easy with QWebView off screen rendering, But since this is a graphics Item, We had to do it differently.  The code is on a git repo and you can clone it from : http://git.collabora.co.uk/?p=user/siraj/stefani.git;a=summary. Ok now wondering .. "Stefani?" .  It's a playful toy we use to experiment with Web content on QGV. Stefani is built around QGraphicsItem with some super powers to render HTML contents. Basically, this QWebViewItem has the same API as the QWebView, but has some extra functions to produce bling. and one function there, emits a signal on content change, which allows us to render a reflection externally .  </p>
<p>One of my colleagues at  Collabora, Pierlux,  was working on Zooming effect similar to a popular mobile browser, to see his stuff visit (blog.squidy.info).</p></div>
    </summary>
    <updated>2008-08-01T21:24:46Z</updated>
    <category scheme="http://www.kdedevelopers.org/taxonomy/term/20" term="KDE Network"/>
    <author>
      <name>siraj</name>
    </author>
    <source>
      <id>http://www.kdedevelopers.org/blog/1529</id>
      <link href="http://www.kdedevelopers.org/blog/1529" rel="alternate" type="text/html"/>
      <link href="http://www.kdedevelopers.org/blog/1529/feed" rel="self" type="application/rss+xml"/>
      <subtitle>KDE Development in action.</subtitle>
      <title>siraj's blog</title>
      <updated>2008-08-27T23:15:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/08/01/fun-with-pitivi/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/08/01/fun-with-pitivi/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: Fun with Pitivi</title>
    <summary>I guess I am not the only one to try out Pitivi from time to time to check its progress. Edward has been working on Pitivi, GStreamer and Gnonlin for quite a few years now, but of course urgent tasks at work has tended to take presedence of course, leading to a pace of development [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I guess I am not the only one to try out <a href="http://www.pitivi.org/wiki/Main_Page">Pitivi</a> from time to time to check its progress. Edward has been working on Pitivi, GStreamer and Gnonlin for quite a few years now, but of course urgent tasks at work has tended to take presedence of course, leading to a pace of development which hasn’t always been blazing. But a lot of things seems to be coming together these days. When  I checked out SVN head of Pitivi today I had a much better experience than before as almost everything I tried work fine for me. I was able to import both an AVI and a MP4 file into Pitivi and easily trim of some uneeded stuff of the clips. I was also able to output them in nice looking Ogg files using Dirac video. All this worked without any hickups on Pitivi’s side. I tried both using Vorbis and FLAC for audio output. Vorbis worked perfectly, but FLAC had some issues with audio/video syncronisation. This is probably caused by a GStreamer bug as embedding FLAC in an Ogg file together with video hasn’t really been widely tested up to now. Sebastian Droge is on the case so hopefully it will be sorted soon <img alt=":)" class="wp-smiley" height="16" src="http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/face-smile.png" width="16"/> </p>
<p>But in addition to having reached a point where it has a stable foundation things have also started to pick up pace for Pitivi on the developmer side of things. With two Google Summer of Code students and multiple other community developers starting to dive into the code there is a good chance for Pitivi starting to take much bigger leaps in functionality between releases going forward.  My hope at this point is that we can offer a version of Pitivi by Christmas which contains most of the functionality the hobbyist want. So you can edit your Christmas recordings using Pitivi.</p>
<p>Anyway, if you are interested in Pitivi development the best place to keep abreast of things are of course #pitivi on irc.freenode.org.</p>
<p>Screenshot of our editing friend:</p>
<p><a href="http://blogs.gnome.org/uraeus/files/2008/08/pitiviscreen.png" title="Screenshot of pitivi editing a video"><img alt="Screenshot of pitivi editing a video" src="http://blogs.gnome.org/uraeus/files/2008/08/pitiviscreen.thumbnail.png"/></a></p></div>
    </content>
    <updated>2008-08-01T13:42:55Z</updated>
    <category term="General"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.barisione.org/blog.html/p=137</id>
    <link href="http://www.barisione.org/blog.html/p=137" rel="alternate" type="text/html"/>
    <title>Marco Barisione: Video support in WebKit GTK</title>
    <summary>Stuart: Pierre-Luc Beaudoin and Alp Toker implemented video support in WebKit GTK using GStreamer months ago, but probably (I never tried it) it needs some more love before being fully working.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.kryogenix.org/days/2008/07/31/html5-video-element-about-to-land-in-firefox-31">Stuart</a>: Pierre-Luc Beaudoin and Alp Toker <a href="http://blog.squidy.info/2007/12/10/html5-media-tags-in-webkit-gtk/en/">implemented video support in WebKit GTK using GStreamer</a> months ago, but probably (I never tried it) it needs some more love before being fully working.
</p></div>
    </content>
    <updated>2008-07-31T16:06:10Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>barisione</name>
    </author>
    <source>
      <id>http://www.barisione.org/blog.html</id>
      <link href="http://www.barisione.org/blog.html" rel="alternate" type="text/html"/>
      <link href="http://www.barisione.org/blog.html/feed/" rel="self" type="application/rss+xml"/>
      <title>Marco Barisione's Weblog</title>
      <updated>2008-08-26T20:23:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.barisione.org/blog.html/p=136</id>
    <link href="http://www.barisione.org/blog.html/p=136" rel="alternate" type="text/html"/>
    <title>Marco Barisione: Automatic generation of .list files</title>
    <summary>When you use a VCS that makes it easy to manage several braches, it’s easy to get conflicts in the .list file used to generate the C marshallers. I recently fixed this problem in WebKit stealing some code used at least by various Telepathy components and by avahi-gobject, and I want to share the solution [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>When you use a VCS that makes it easy to manage several braches, it’s easy to get conflicts in the <code>.list</code> file used to generate the C marshallers. I recently fixed this problem in WebKit stealing some code used at least by various Telepathy components and by avahi-gobject, and I want to share the solution so every project can benefit from it.</p>
<p>First of all you have to open your <code>Makefile.am</code> and move the <code><i>myproject</i>-marshal.list</code> file from <code>EXTRA_DIST</code> to <code>BUILT_SOURCES</code> and add somewhere in the file:</p>
<pre><i>myproject</i>-marshal.list: $(<i>myproject</i>_SOURCES) Makefile.am
        ( cd $(srcdir) &amp;&amp; \
        sed -n -e ’s/.*<i>myproject</i>_marshal_([[:upper:][:digit:]]*__[[:upper:][:digit:]_]*).*/1/p’ \
        $(<i>myproject</i>_SOURCES) ) \
        | sed -e ’s/__/:/’ -e ‘y/_/,/’ | sort -u &gt; $@.tmp
        if cmp -s $@.tmp $@; then \
                rm $@.tmp; \
        else \
                mv $@.tmp $@; \
        fi
</pre>
<p>Then remember to remove the <code><i>myproject</i>-marshal.list</code> file from your VCS (<code>svn/git/hg/bzr rm</code>).</p>
<p>The code will search for all the functions looking like <code><i>myproject</i>_marshal_RETTYPE__ARG1TYPE_ARG2TYPE</code> and generate the <code><i>myproject</i>-marshal.list</code> from them, regenerating automatically the list when you change a signal signature.</p>
<p><strong>Update:</strong> fixed the blackslashes in the code that were misteriously eaten by WordPress.
</p></div>
    </content>
    <updated>2008-07-31T08:27:37Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>barisione</name>
    </author>
    <source>
      <id>http://www.barisione.org/blog.html</id>
      <link href="http://www.barisione.org/blog.html" rel="alternate" type="text/html"/>
      <link href="http://www.barisione.org/blog.html/feed/" rel="self" type="application/rss+xml"/>
      <title>Marco Barisione's Weblog</title>
      <updated>2008-08-26T20:23:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/07/30/enjoying-musical-theatre/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/07/30/enjoying-musical-theatre/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: Enjoying Musical Theatre</title>
    <summary>So my mother has been visiting this week for the first time since I moved to Cambridge. Her trip here is actually quite a big step for her as its the first time she has really travelled since she had her brain surgery some months ago. And while she is still struggling somewhat with anxiety [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So my mother has been visiting this week for the first time since I moved to Cambridge. Her trip here is actually quite a big step for her as its the first time she has really travelled since she had her brain surgery some months ago. And while she is still struggling somewhat with anxiety attacks I think the change of environment has been good for her.</p>
<p>Anyway, as part of her visit I took here into London last evening to watch <a href="http://www.mamma-mia.com/">Mamma Mia the musical </a> at the Prince of Wales theater close to Leicester Square. I think it was the first musical I have seen live since I saw Phantom of the Opera as a kid. I actually ended up enjoying the show quite a lot and while I would think the cast might be a little tired of doing the show at this point it didn’t come through at all. Instead they seemed very enthusiastic and energetic. I was positively surprised how they had managed to tie the various ABBA songs lyrics together into a relatively coherent narrative.</p>
<p>So while I do not see myself becoming a regular on the London musical theatre track I do suggest that anyone who has family visiting them in the UK might consider a trip to the London West End as a good way to entertain their guests.</p></div>
    </content>
    <updated>2008-07-30T10:04:13Z</updated>
    <category term="Oddball entries"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:resiak:59090</id>
    <link href="http://resiak.livejournal.com/59090.html" rel="alternate" type="text/html"/>
    <link href="http://resiak.livejournal.com/data/atom/?itemid=59090" rel="self" type="text/xml"/>
    <title>Will Thompson: Spare Cambridge Folk Festival ticket (Thursday 31st – Sunday 3rd)</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
   I'm going to the <a href="http://www.cambridgefolkfestival.co.uk/">Cambridge Folk Festival</a> this coming long weekend (Thursday 31st July–Sunday 3rd August).  The person I was camping with is probably not going to make it, having just had an operation; does anyone want her ticket?  The face value is a hundred British pounds; she'll take substantially less.  Let me know by <a href="http://willthompson.co.uk/">the medium of your choice</a> if you're interested!
</p></div>
    </content>
    <updated>2008-07-27T20:58:08Z</updated>
    <published>2008-07-27T18:38:26Z</published>
    <category term="facebook"/>
    <category term="music"/>
    <source>
      <id>urn:lj:livejournal.com:atom1:resiak</id>
      <author>
        <name>Will Thompson</name>
      </author>
      <link href="http://resiak.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://resiak.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <subtitle>What I do when I’m supposed to be working.</subtitle>
      <title>This is not your problem sheet</title>
      <updated>2008-07-27T20:58:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/uraeus/2008/07/25/back-from-turkey/</id>
    <link href="http://blogs.gnome.org/uraeus/2008/07/25/back-from-turkey/" rel="alternate" type="text/html"/>
    <title>Christian Schaller: Back from Turkey</title>
    <summary>So a little later than ‘everybody else’ I am now back from Turkey. Wim and I had both decided we needed some vacation and since we where going to Turkey for GUADEC it would be a great opportunity for us to travel around and see the area. Our original plan included climbing Mount Arrarat and [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So a little later than ‘everybody else’ I am now back from Turkey. Wim and I had both decided we needed some vacation and since we where going to Turkey for GUADEC it would be a great opportunity for us to travel around and see the area. Our original plan included climbing Mount Arrarat and visiting Georgia and Armenia, but trouble getting climbing permit combined with some german tourists getting kidnapped on Mount Arrarat by Kurd sepratists got us to adjust our plans. We ended up instead travelling down to cities such as Urfa (Edessa) and Harran, spending some days in Cappadocia and finally visiting Pamukkale and Ephesos. Had a blast of a time although Wim seemed a little less enthusiastic about females of the Korean and Taiwanese variety than me. Could of course just be that ‘Hello Kitty’ panties fail to get his sap boiling <img alt=":)" class="wp-smiley" height="16" src="http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/face-smile.png" width="16"/> </p>
<p>For anyone travelling to Turkey I think spending 2-3 days in <a href="http://www.goreme.org/">Göreme</a> is an absolute must. It is a charming backpacker town with a lot of the hotels carved out of volcanic rock. A little gimmicky in the sense that the locals no longer live in the rocks for the most part, but the area is something which just have to be experienced.</p>
<p>Although we enjoyed the food I think it is safe to say that neither myself or Wim will be eating salad with cucumber and tomato, sprinkled with a little lemon anytime soon. 10+ days in a row is enough for a while <img alt=":)" class="wp-smiley" height="16" src="http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/face-smile.png" width="16"/> </p>
<p>One thing I started wondering about while travelling around was the enormous expectations by local people for what an EU membership would mean for the people of Turkey, ranging from the EU solving all minority rights issues for Kurds, Armenians and Alavis, west European living standards and salaries for everyone, to solidifying Turkeys secular traditions. While the EU will for certain help push Turkey in the right direction on these issues, I can’t help but wonder if a future EU membership for Turkey might end up being a big lettdown compared to the expectation level I experienced.</p></div>
    </content>
    <updated>2008-07-25T15:35:18Z</updated>
    <category term="General"/>
    <category term="Oddball entries"/>
    <author>
      <name>uraeus</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/uraeus</id>
      <link href="http://blogs.gnome.org/uraeus" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/uraeus/feed/" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Christian Schaller</title>
      <updated>2008-08-26T14:56:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.barisione.org/blog.html/p=135</id>
    <link href="http://www.barisione.org/blog.html/p=135" rel="alternate" type="text/html"/>
    <title>Marco Barisione: Back from GUADEC[1]</title>
    <summary>Doesn’t this look like the GUADEC t-shirt?
GUADEC was great and talks turned out to be more interesting than what I was expecting after all the decadence discussions, this is also proved by the fact that I managed to stay awake during all the talks despite having a party every day . Being in an awesome [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p align="center"><a href="http://www.flickr.com/photos/pierlux/2677947663/in/set-72157606226297512"><img src="http://farm4.static.flickr.com/3013/2677947663_8e195063e9.jpg"/></a><br/><small>Doesn’t this look like the <a href="http://www.flickr.com/photos/lucbyhet/2657095188/">GUADEC t-shirt</a>?</small></p>
<p>GUADEC was great and talks turned out to be more interesting than what I was expecting after all the decadence discussions, this is also proved by the fact that I managed to stay awake during all the talks despite having a party every day <img alt=":)" src="http://farm1.static.flickr.com/189/458651157_780851832e_o.png"/>. Being in an awesome city with wonderful food[2] helped a lot for the final result, this is why I’m so happy that Gran Canaria was chosen for the next GUADEC.</p>
<p>In Istanbul I finally met other people <a href="http://www.atoker.com/blog/">working</a> <a href="http://twotoasts.de/">on</a> <a href="http://blog.squidy.info/en+fr/">WebKit</a> <a href="http://vanschouwen.info/nerdynotes/">or</a> <a href="http://blogs.gnome.org/cosimoc/">on</a> <a href="http://www.gnome.org/~diegoe/">related</a> <a href="http://uwstopia.nl/blog/">projects</a> and had a chance to discuss with them about the future development of WebKit. While meetings on IRC are useful and allow you to talk with people from everywhere, real life meetings give you a much more efficient channel of communication: how about a <a href="http://mail.gnome.org/archives/foundation-list/2008-April/msg00001.html">hackfest</a> for people working on WebKit, FireFox and desktop programs using them?</p>
<p><small>[1] Actually I came back to Cambridge ten days ago but, as usual, I fail at writing blog posts at the right moment, I wanted to write this on Sunday but my flight was moved to Monday and then real life started again. <i>[Insert here other childish excuses for being so lazy]</i><br/>
[2] I’m already experimenting some Turkish recipes, Collabora people in Cambridge should expect a Turkish dinner really soon.</small></p></div>
    </content>
    <updated>2008-07-24T23:15:17Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>barisione</name>
    </author>
    <source>
      <id>http://www.barisione.org/blog.html</id>
      <link href="http://www.barisione.org/blog.html" rel="alternate" type="text/html"/>
      <link href="http://www.barisione.org/blog.html/feed/" rel="self" type="application/rss+xml"/>
      <title>Marco Barisione's Weblog</title>
      <updated>2008-08-26T20:23:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blogs.gnome.org/xclaesse/2008/07/22/looking-for-a-job/</id>
    <link href="http://blogs.gnome.org/xclaesse/2008/07/22/looking-for-a-job/" rel="alternate" type="text/html"/>
    <title>Xavier Claessens: Looking for a job</title>
    <summary>On September I finish my studies of computer science, so I start to search a job. I really enjoyed my current job at Collabora maintaining Empathy, I learned lots of things about the Free Software world and I would like to keep working on free software related projects if possible. My CV is available online [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>On September I finish my studies of computer science, so I start to search a job. I really enjoyed my current job at Collabora maintaining Empathy, I learned lots of things about the Free Software world and I would like to keep working on free software related projects if possible. My CV is available online <a href="http://users.skynet.be/Zdra/cv.pdf">here</a>.</p>
<p>Do you guys know any company around the free software and GNOME looking for new employees? You can contact me by email to xclaesse@gmail.com</p></div>
    </content>
    <updated>2008-07-22T08:29:28Z</updated>
    <category term="GNOME"/>
    <category term="GNOME-FR"/>
    <category term="General"/>
    <category term="Ma vie"/>
    <author>
      <name>xclaesse</name>
    </author>
    <source>
      <id>http://blogs.gnome.org/xclaesse</id>
      <link href="http://blogs.gnome.org/xclaesse" rel="alternate" type="text/html"/>
      <link href="http://blogs.gnome.org/syndicate/xclaesse/GNOME" rel="self" type="application/rss+xml"/>
      <subtitle>Just another GNOME Blogs weblog</subtitle>
      <title>Xavier Claessens » GNOME</title>
      <updated>2008-08-11T07:31:31Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.squidy.info/2008/07/21/before-it-is-too-late-for-a-post-guadec-post/</id>
    <link href="http://blog.squidy.info/2008/07/21/before-it-is-too-late-for-a-post-guadec-post/en/" rel="alternate" type="text/html"/>
    <title>Pierre-Luc Beaudoin: Before it is too late for a post-GUADEC post</title>
    <summary>I am complete back in sync with my time zone now, I can write about GUADEC :)  It was my first GUADEC ever, and my second conf ever (the first being the excellent FOSDEM).  It was wonderful, I met lots of nice people and learned a lot.  The most promising projects I’ve seen were libcanberra [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I am complete back in sync with my time zone now, I can write about GUADEC :)  It was my first GUADEC ever, and my second conf ever (the first being the excellent FOSDEM).  It was wonderful, I met lots of nice people and learned a lot.  The most promising projects I’ve seen were libcanberra (new sound library), Soylent and Banshee (I hadn’t tried the 1.0 release yet).</p>
<p>I seem to always be a bit depressed the first week after a conf.  As one of my fellow traveler said, it is as if we were in a summer camp for a week: living close, eating, traveling, doing all together… no wonder I feel a little depressed back home!</p>
<p>Istanbul was unbelievable.  It holds so much history, more than I even expected.  The food was exquisite, in all the restaurants I’ve been.   The language was too bad, given that I had a small handbook and barely left the tourist neighbourhood. I certainly plan to visit more of Turkey someday.  You can see my pictures <a href="http://www.flickr.com/photos/pierlux/collections/72157606160406336/">here</a>.</p></div>
    </content>
    <updated>2008-07-22T01:04:12Z</updated>
    <category term="Voyages"/>
    <author>
      <name>Pierre-Luc Beaudoin</name>
    </author>
    <source>
      <id>http://blog.squidy.info</id>
      <link href="http://blog.squidy.info/feed/en/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.squidy.info" rel="alternate" type="text/html"/>
      <subtitle>Now in Aqua, where available</subtitle>
      <title>Pierre-Luc Beaudoin</title>
      <updated>2008-08-25T02:07:45Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://smcv.pseudorandom.co.uk/2008/04/16/tp-svc/</id>
    <link href="http://www.pseudorandom.co.uk/2008/04/16/tp-svc/" rel="alternate" type="text/html"/>
    <title>Simon McVittie: Implementing D-Bus services with telepathy-glib</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><em>(Part 1 of an ongoing series: shiny things in telepathy-glib)</em></p>

<blockquote class="atom-summary">
<p><tt class="docutils literal"><span class="pre">16:46</span> <span class="pre">&lt;</span> <span class="pre">epmf&gt;</span> <span class="pre">tp-glib</span> <span class="pre">is</span> <span class="pre">made</span> <span class="pre">of</span> <span class="pre">magic</span></tt></p>
<p class="attribution">—#telepathy, 2008-04-15</p>
</blockquote>
<p class="atom-summary"><a class="reference external" href="http://www.robot101.net/">Rob</a> pointed out today that I'd been promising to blog about
<a class="reference external" href="http://darcs.collabora.co.uk/darcsweb.cgi?r=telepathy/telepathy-glib;a=summary">telepathy-glib</a> for several months and still haven't done so. I think
there's too much to cover in one blog post, so I'll start with the
oldest part - implementing a service (typically a Telepathy connection
manager).</p>
<p class="atom-summary">While telepathy-glib is (obviously) intended for Telepathy
implementors, I think the ideas we've been implementing are likely
to be useful for any D-Bus API, particularly flexible/complex APIs
where an object implements many interfaces.</p>
<div class="section" id="introduction-to-telepathy-glib">
<h1>Introduction to telepathy-glib</h1>
<p>telepathy-glib started out as a collection of code extracted
from our XMPP connection manager, telepathy-gabble, but at
some point it grew beyond that into a wrapper around/partial
replacement for dbus-glib. We've been quite pleased with it,
really :-)</p>
<p>My first major round of work on telepathy-glib, during the first half of
2007, was to split it out from telepathy-gabble (versions up to 0.5.9
were released as part of Gabble 0.5.x tarballs, in fact), leading to
the release of the 0.6.x stable branch in late September.</p>
<p>This was very helpful for implementing connection managers -
Salut, Idle and telepathy-sofiasip (our connection managers for
link-local XMPP, IRC and SIP) all started off by forking/cargo-culting from
Gabble, and achieved huge code reductions by porting
to telepathy-glib. Also, <a class="reference external" href="http://www.willthompson.co.uk/">Will Thompson</a> used it in his Summer of
Code project, telepathy-haze, to go from nothing to a working
and useful Telepathy implementation based on <a class="reference external" href="http://developer.pidgin.im/">libpurple</a> in a
matter of a few months.</p>
<p>The second major round of work, which I'll discuss in a later
article, added client code to telepathy-glib, obsoleting
the older/worse libtelepathy and allowing client programs
like Empathy and telepathy-stream-engine to be written using
telepathy-glib. In the process, I accidentally reinvented
DBusGProxy :-) More details to come later!</p>
</div>
<div class="section" id="some-background-service-side-code-generation">
<h1>Some background: service-side code generation</h1>
<div class="float-right figure">
<img alt="The secret Collabora code-generation process" src="http://smcv.pseudorandom.co.uk/2008/04/generation-300.png"/>
<p class="caption">(credit: <a class="reference external" href="http://rhydd.org/">daf</a>)</p>
</div>
<p>Supporting D-Bus in the GObject world has always involved quite a lot of code
generation. The core API of dbus-glib is heavily reliant on varargs functions,
which aren't type-safe and are easy to get wrong.</p>
<p>dbus-glib contains a program called dbus-binding-tool, which is meant to
generate reasonably sane GObject APIs for D-Bus objects. Unfortunately, it
seems to be intended to generate a whole GObject at a time.</p>
<p>Early versions of telepathy-gabble used dbus-binding-tool plus a
script called <tt class="docutils literal"><span class="pre">gengobject.py</span></tt> to generate API stubs for the exported
objects; developers then filled in the blanks, and hey presto, we had a
GObject on D-Bus. This was fine up to a point, but had a couple of major
drawbacks.</p>
<p>Whenever we changed the D-Bus API (quite common during the early development
of Telepathy), there was a very laborious and error-prone merging process.
We ended up with the following process:</p>
<ul class="simple">
<li>copy the D-Bus introspection XML from the telepathy-spec repository
into a directory <tt class="docutils literal"><span class="pre">xml/pristine</span></tt>
(actually, the canonical form for the spec was Python for a while, and we
had a script that exported a contrived object onto D-Bus and introspected
itself to get the XML - but that's another story!)</li>
<li>preprocess the introspection XML to add the dbus-glib CFunctionName
annotation, resulting in a directory <tt class="docutils literal"><span class="pre">xml/modified</span></tt></li>
<li>run <tt class="docutils literal"><span class="pre">dbus-binding-tool</span></tt> and a Python script <tt class="docutils literal"><span class="pre">gengobject.py</span></tt> to generate
C source in <tt class="docutils literal"><span class="pre">xml/src</span></tt></li>
<li>three-way-diff the old version of <tt class="docutils literal"><span class="pre">xml/src</span></tt>, the new version of <tt class="docutils literal"><span class="pre">xml/src</span></tt>,
and the real C code in <tt class="docutils literal"><span class="pre">src</span></tt> to create a new version of <tt class="docutils literal"><span class="pre">src</span></tt></li>
<li>pray that the diff process hadn't randomly exchanged functions'
implementations</li>
<li>update the resulting code in <tt class="docutils literal"><span class="pre">src</span></tt> so it worked</li>
<li>check the whole mess back into darcs</li>
<li>hope that nobody else had made changes that would result in darcs conflicts</li>
</ul>
<p>If you haven't yet gathered, this was a bit of a nightmare.</p>
<p>Also, it was very easy to return the wrong thing from a method without
noticing - because all the APIs were varargs, the compiler didn't notice,
and the first we'd know about it was a mysterious segfault under certain
circumstances.</p>
</div>
<div class="section" id="how-telepathy-glib-fixes-code-generation">
<h1>How telepathy-glib fixes code generation</h1>
<p>telepathy-glib improves on this by taking advantage of this innocuous-looking
feature in dbus-glib:</p>
<pre class="literal-block">commit 355ef78d98d6fc65715845d56232199162cab12a
Author: Steve Frécinaux &lt;steve istique net&gt;
Date:   Thu Aug 17 11:48:20 2006 +0200

    Interface support for bindings.
</pre>
<p>Instead of running dbus-binding-tool or creating GObjects with D-Bus
interfaces, we put the entire Telepathy spec through
<tt class="docutils literal"><span class="pre">glib-ginterface-gen.py</span></tt>, a distant descendant of Gabble's <tt class="docutils literal"><span class="pre">gengobject.py</span></tt>.
For each interface in the spec, we generate a GInterface that mirrors the
D-Bus interface. Any GObject that implements the GInterface automatically
gets the D-Bus interface if it's exported onto D-Bus.</p>
<p>There are a few non-obvious refinements, though:</p>
<ul>
<li><p class="first">The signature of the method implementation is always in the mode that
dbus-glib calls "asynchronous", where the method implementation can either
send a reply message before or after it returns.</p>
<p>For "slow" methods, this is the only thing you can do. For instance, many
Telepathy D-Bus methods can't return anything until some TCP round-trips
to the server have happened.</p>
<p>This is also the only thing you can do if you want to extract extra
information, like the sender's unique name, from the method-call message
(dbus-glib's "synchronous" API doesn't allow this to be done).</p>
<p>For "fast" methods, sending a reply message before returning is just as
easy as using the "synchronous" API (it's just a difference of syntax), and
has an API consistent with that of the "slow" methods, making it easier
for service authors.</p>
</li>
<li><p class="first">The layout of the GInterface vtable is private, and (auto-generated)
accessor functions are used to fill in implementations. This means our
ABI doesn't change just because we re-ordered functions in the spec.</p>
</li>
<li><p class="first">If no implementation is provided for a method, we just raise an appropriate
error (org.freedesktop.Telepathy.Errors.NotImplemented), rather than
suffering an assertion failure. This means we can safely add methods to
an interface.</p>
</li>
<li><p class="first">While we're generating code anyway, we generate some static inline wrapper
functions which wrap <tt class="docutils literal"><span class="pre">dbus_g_method_return()</span></tt>, to have type-safe method
returns. You can easily check that a method replies with correct types, by
checking that the implementation of Foo() replies by calling
tp_svc_some_interface_return_from_foo().</p>
</li>
<li><p class="first">Similarly, we generate wrapper functions to emit signals, to get type-safe
signal emission.</p>
</li>
</ul>
<p>Not all interfaces are stable enough to be included in telepathy-glib's stable
API and ABI, so some of our other projects include a copy of the telepathy-glib
code-generation tools, and generate their own "mini-telepathy-glib"
(traditionally in a <tt class="docutils literal"><span class="pre">/extensions/</span></tt> directory) for their
implementation-specific (drafts of) interfaces. This isn't yet as polished as
it ought to be (mainly because we don't want to freeze the
augmented-introspection-XML format that we write the Telepathy spec in, because
it's rather ad-hoc and hackish in places) but it works quite well in practice.</p>
<p>To see what this looks like in practice, have a look at the examples in
<a class="reference external" href="http://darcs.collabora.co.uk/darcsweb.cgi?r=telepathy/telepathy-glib;a=summary">telepathy-glib</a>, or at a Telepathy connection manager like <a class="reference external" href="http://darcs.collabora.co.uk/darcsweb.cgi?r=telepathy/telepathy-gabble;a=summary">telepathy-gabble</a>.</p>
</div>
<div class="section" id="mixins-and-base-classes">
<h1>Mixins and base classes</h1>
<p>Another feature of telepathy-glib which makes life easier for connection
manager authors is that it provides "mixins" and base classes which implement
some of the GInterfaces.</p>
<p>There's absolutely nothing magic about the base classes - they don't have any
access to private implementation details of the GInterfaces, they just
implement them like everyone else does.</p>
<p>The "mixins" are only slightly more magical - they store some extra state
inside the structures representing GObjects and their classes, and use it to
provide default implementations of some or all of the methods on a particular
interface (or two interfaces, in the case of the new TpMessageMixin).
I'll leave it up to <a class="reference external" href="http://www.robot101.net/">Rob</a> to explain those in greater detail, since I seem to
remember that he invented them :-P</p>
<p>The examples and regression tests in telepathy-glib are quite good examples
of how these work in practice.</p>
</div></div>
    </content>
    <updated>2008-07-19T13:08:35Z</updated>
    <published>2008-04-16T20:36:52Z</published>
    <source>
      <id>urn:uuid:0955f57e-4c2c-4614-b791-cf0bfb70f00e</id>
      <author>
        <name>Simon McVittie</name>
      </author>
      <link href="http://smcv.pseudorandom.co.uk/" rel="alternate" type="text/html"/>
      <link href="http://smcv.pseudorandom.co.uk/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright © 2008 Simon McVittie</rights>
      <subtitle>Simon McVittie's software development blog</subtitle>
      <title>Background noise</title>
      <updated>2008-08-05T11:47:09Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:treitter:7540</id>
    <link href="http://treitter.livejournal.com/7540.html" rel="alternate" type="text/html"/>
    <link href="http://treitter.livejournal.com/data/atom/?itemid=7540" rel="self" type="text/xml"/>
    <title>Travis Reitter: Vincent Contests Icecream Deathmatch Loss</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://uwstopia.nl/blog/2008/07/smashed-at-the-guadec-boat-party">Wouter</a>,<br/><br/>Vincent definitely got last place in the ice cream death match, but he's decided to change the rules:<br/><br/><a href="http://www.youtube.com/watch?v=o1Exdw5pkiM">Vincent denying his loss</a></div>
    </content>
    <updated>2008-07-14T16:12:44Z</updated>
    <published>2008-07-14T16:12:44Z</published>
    <category term="guadec2008"/>
    <category term="vuntz"/>
    <category term="icecreamdeathmatch"/>
    <source>
      <id>urn:lj:livejournal.com:atom1:treitter</id>
      <author>
        <name>treitter</name>
      </author>
      <link href="http://treitter.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://treitter.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <subtitle>Maximizing social utility for fun and (modest) profit</subtitle>
      <title>Let's Push Things Forward</title>
      <updated>2008-08-14T17:48:03Z</updated>
    </source>
  </entry>
</feed>
