<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/1999/html" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Ross Burton</title><link>http://www.burtonini.com/blog</link><description>A potted account of Ross' life</description><language>en</language><ttl>60</ttl><dc:creator>Ross Burton</dc:creator><admin:generatorAgent rdf:resource="http://pyblosxom.sourceforge.net/"/><admin:errorReportsTo rdf:resource="mailto:ross@burtonini.com"/><item><title>GUPnP Basics, Part 1</title><guid isPermaLink="false">computers/gupnp-basics-2008-05-12-12-50</guid><link>http://www.burtonini.com/blog/computers/gupnp-basics-2008-05-12-12-50</link><description>For the last few days I've been learning more about UPnP and testing it with the few devices I have ...</description><content:encoded><![CDATA[    <!-- -*- Mode: html -*- -->
    <p>
      For the last few days I've been learning more about UPnP and testing it
      with the few devices I have around the house.  One of these is a cheap
      ADSL router, which apparently has the lamest UPnP stack on in existence.
      It does however support the <cite>WAN IP Connection</cite> interface, so
      you can use UPnP to get the external IP address and manipulate the port
      mapping.  I'll skip over the horrific security violations this involves,
      because it's a useful demonstration that the majority of people will be
      able to test.
    </p>
    <p>
      Today we'll start simple and get our external IP address using GUPnP.  The
      first thing to be done is to create a <cite>Control Point</cite>, which in
      the UPnP model handles discovery of resources, be them devices or services
      (a device can have multiple services).  When creating a control point you
      can specify the URN of the resource you want to target.  In this case we
      want all services providing <cite>WANIPConnection</cite> so we'd
      use <tt>urn:schemas-upnp-org:service:WANIPConnection:1</tt>.  If you want
      to browse for all services then use <tt>ssdp:all</tt> (SSDP being the
      <cite>Simple Service Discovery Protocol</cite>).
    </p>
    <pre>static GMainLoop *main_loop;

int
main (int argc, char **argv)
{
  GError *error = NULL;
  GUPnPContext *context;
  GUPnPControlPoint *cp;
  
  /* libsoup requires threading, so we have to initialise it */
  g_thread_init (NULL);
  g_type_init ();

  /* Default GLib context, default host IP, default port */
  context = gupnp_context_new (NULL, NULL, 0, &amp;error);
  if (error) g_error (error->message);

  /* Create a control point targeting WAN IP Connection services */
  cp = gupnp_control_point_new
    (context, "urn:schemas-upnp-org:service:WANIPConnection:1");
  /* Tell the control point to start searching */
  gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (cp), TRUE);

  /* The service-proxy-available signal is emitted when any services which match
     our target are found */
  g_signal_connect (cp,
		    "service-proxy-available",
		    G_CALLBACK (service_proxy_available_cb),
		    NULL);
  
  /* Enter the main loop */
  main_loop = g_main_loop_new (NULL, FALSE);
  g_main_loop_run (main_loop);

  /* Clean up */
  g_main_loop_unref (main_loop);
  g_object_unref (cp);
  g_object_unref (context);
  
  return 0;
}

static void
service_proxy_available_cb (GUPnPControlPoint *cp,
                            GUPnPServiceProxy *proxy)
{
  /* ... */
}</pre>
    <p>
      Now we have an application which searches for the service we specified and
      calls <tt>service_proxy_available_cb</tt> for each one it found.  Now, to
      get the external IP address we need to invoke
      the <tt>GetExternalIPAddress</tt> action.  This action takes no in
      arguments, and has a single out argument called "NewExternalIPAddress".
      Yes, the naming scheme is <em>stupid</em>.  GUPnP has a set of methods to
      invoke actions -- which will be very familiar to anyone who has
      used <tt>dbus-glib</tt> -- where you pass a <tt>NULL</tt>-terminated varargs list
      of (name, type, value) tuples for the in arguments, then
      a <tt>NULL</tt>-terminated varargs list of (name, value, return location) tuples
      for the out arguments.  A simple implementation would be as follows.
    </p>
    <pre>static void
service_proxy_available_cb (GUPnPControlPoint *cp,
                            GUPnPServiceProxy *proxy)
{
  GError *error = NULL;
  char *ip = NULL;
  
  gupnp_service_proxy_send_action (proxy,
				   /* Action name and error location */
				   "GetExternalIPAddress", &amp;error,
				   /* IN args */
				   NULL,
				   /* OUT args */
				   "NewExternalIPAddress",
				   G_TYPE_STRING, &amp;ip,
				   NULL);
  
  if (error == NULL) {
    g_print ("External IP address is %s\n", ip);
    g_free (ip);
  } else {
    g_printerr ("Error: %s\n", error-&gt;message);
    g_error_free (error);
  }
  g_main_loop_quit (main_loop);
}</pre>
    <p>
      Note that <tt>_send_action</tt> blocks until the service has replied.  If you
      need to make non-blocking calls then
      use <tt>gupnp_service_proxy_begin_action</tt> which takes a callback.
    </p>
    <p>
      So, that is searching for services and invoking actions in GUPnP.  Next
      time I'll cover subscribing to state variables, and routers which can't
      count.
    </p>
    <p>
      <small>NP: <cite>Folk But Not Folk</cite>, Various</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-05-12T11:50:00Z</dc:date></item><item><title>EphyDeli 0.3</title><guid isPermaLink="false">computers/ephydeli-2008-04-29-20-12</guid><link>http://www.burtonini.com/blog/computers/ephydeli-2008-04-29-20-12</link><description>EphyDeli is a Python extension for Epiphany that adds Post To Delicious menu and toolbar items for posting the current ...</description><content:encoded><![CDATA[    <p>
      EphyDeli is a Python extension for Epiphany that adds <cite>Post To
      Delicious</cite> menu and toolbar items for posting the current page to
      Del.icio.us.  I know of several people who use it frequently and the last
      release was in 2006, so I've obviously mastered the Unix philosophy well
      here!  This release was caused by those mean old Epiphany developers
      changing the API, many thanks to Thibauld Nion for noticing this and
      sending a patch.
    </p>
    <p>
      To download it you can either
      grab <a href="http://burtonini.com/computing/ephydeli-0.3.tar.gz">the
      tarball</a> or fetch the <a href="http://burtonini.com/bzr/ephydeli/">bzr
      tree</a>.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-04-29T19:12:00Z</dc:date></item><item><title>It's Bubbling Hot</title><guid isPermaLink="false">computers/hot-2008-04-24-17-47</guid><link>http://www.burtonini.com/blog/computers/hot-2008-04-24-17-47</link><description>$ cat /proc/acpi/thermal_zone/*/temperature temperature: 84 C temperature: 90 C Maybe it's time to get a dedicated build machine, my poor ...</description><content:encoded><![CDATA[    <pre>$ cat /proc/acpi/thermal_zone/*/temperature
temperature:             84 C
temperature:             90 C</pre>
    <p>
      Maybe it's time to get a dedicated build machine, my poor laptop gets
      quite toasty when building Poky.  Then again it seems happy enough, so
      maybe I should just use an external keyboard to avoid boiling my hands.
    </p>

    <p>
      <small>NP: <cite>Oneric</cite>, Boxcutter</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-04-24T16:47:00Z</dc:date></item><item><title>Postr 0.12</title><guid isPermaLink="false">computers/postr/postr-2008-04-23-10-30</guid><link>http://www.burtonini.com/blog/computers/postr/postr-2008-04-23-10-30</link><description>A quick Postr 0.12 release, mainly to fix an annoying bug but there are some neat new features here too. ...</description><content:encoded><![CDATA[<p>
  A quick Postr 0.12 release, mainly to fix an annoying bug but there are some
  neat new features here too.
</p>
<ul>
  <li>Update the status bar after uploading</li>
  <li>Add a Switch User menu item</li>
  <li>Add Add/Remove buttons to the image pane</li>
  <li>Install the Nautilus extension to the new extension path</li>
  <li>Don't select groups when the name is clicked</li>
  <li>Don't display errors when posting to moderated groups</li>
  <li>Show a warning on exit if there are images to upload (thanks Germán Póo-Caamaño)</li>
</ul>
<p>
  The <a href="http://burtonini.com/computing/postr-0.12.tar.gz">tarball is
    here</a>, and packages for Debian have been uploaded.
</p>
]]></content:encoded><category domain="http://www.burtonini.com">computers/postr</category><dc:date>2008-04-23T09:30:00Z</dc:date></item><item><title>Postr 0.11</title><guid isPermaLink="false">computers/postr/postr-2008-04-20-16-50</guid><link>http://www.burtonini.com/blog/computers/postr/postr-2008-04-20-16-50</link><description>I finally got around to fixing the very annoying text wrapping problem in postr.dev, I thought I best release Postr ...</description><content:encoded><![CDATA[<p>
  I finally got around to fixing the very annoying text wrapping problem in
  postr.dev, I thought I best release Postr 0.11:
</p>
<ul>
  <li>Add Send To Group options</li>
  <li>Add Privacy and Safety options</li>
  <li>Use a multi-line entry for the Description field</li>
  <li>Show the user's name in the status bar</li>
  <li>Fix the resizing of the preview</li>
</ul>
<p>
  The <a href="http://burtonini.com/computing/postr-0.11.tar.gz">tarball is
    here</a>, and packages for Debian have been uploaded.
</p>
]]></content:encoded><category domain="http://www.burtonini.com">computers/postr</category><dc:date>2008-04-20T15:50:00Z</dc:date></item><item><title>No Iain, I Am Luis Villa</title><guid isPermaLink="false">computers/i-am-luis-2008-04-17-14-40</guid><link>http://www.burtonini.com/blog/computers/i-am-luis-2008-04-17-14-40</link><description>Iain, you are clearly an imposter . And this perfect-sighted intruder , whoever he is, should be hunted down, because ...</description><content:encoded><![CDATA[    <p>
      Iain, you
      are <a href="http://blogs.gnome.org/iain/2008/04/17/i-am-luis-villa/">clearly
      an imposter</a>.  And
      this <a href="http://tieguy.org/blog/2008/04/16/new-headshot/">perfect-sighted
      intruder</a>, whoever he is, should be hunted down, because I am Luis
      Villa!
    </p>
    <p>
      <img src="http://burtonini.com/images/i-am-luis.jpg"/>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-04-17T13:40:00Z</dc:date></item><item><title>We're Hiring!</title><guid isPermaLink="false">computers/oh-jobs-2008-04-16-14-45</guid><link>http://www.burtonini.com/blog/computers/oh-jobs-2008-04-16-14-45</link><description>Here at OpenedHand Towers we've just announced some more job openings , so if you have skills in any of ...</description><content:encoded><![CDATA[    <p>
      Here at OpenedHand Towers we've just announced some
      more <a href="http://o-hand.com/jobs/">job openings</a>, so if you have
      skills in any of the kernel, X.org, GTK+, Clutter or OpenEmbedded then
      please have a look.  We're also after user interface/interaction
      designers, junior designers (print/web/UI), and have an student internship
      for a programmer.  Pretty much something for everyone!
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-04-16T13:45:00Z</dc:date></item><item><title>GNOME Mobile Moduleset</title><guid isPermaLink="false">computers/mobile-jhbuild-2008-04-15-16-10</guid><link>http://www.burtonini.com/blog/computers/mobile-jhbuild-2008-04-15-16-10</link><description>I just committed to JHBuild three new modulesets, mobile-2.24 , pimlico and matchbox , so that GNOME people wanting to ...</description><content:encoded><![CDATA[    <p>
      I just committed to JHBuild three new
      modulesets, <tt>mobile-2.24</tt>, <tt>pimlico</tt> and <tt>matchbox</tt>,
      so that GNOME people wanting to develop against
      the <a href="http://gnome.org/mobile/">GNOME Mobile</a> platform can use
      tools they know to build everything they need.
    </p>
    <dl>
      <dt><tt>mobile-2.24</tt></dt>
      <dd><p>This changes GConf and EDS to use the DBus ports, and
	  provides <tt>meta-mobile-platform</tt> which builds the complete
	  platform.</p></dd>

      <dt><tt>pimlico</tt></dt>
      <dd><p>This builds Contacts, Dates and Tasks, providing <tt>meta-pimlico</tt>.</p></dd>

      <dt><tt>matchbox</tt></dt>
      <dd><p>This builds Matchbox Panel, Matchbox Desktop, Matchbox Keyboard and
      Matchbox Window Manager, providing <tt>meta-matchbox</tt>.</p></dd>
    </dl>
    <p>
      Also, <a href="http://pokylinux.org/">Poky</a> is building images nightly
      with the complete platform in, which will let you build and test software
      in a PDA-style environment with QEMU, running on x86 or a number of
      ARM-based devices (such as Nokia N800, Sharp Zaurus or OpenMoko).
    </p>
    <p>
      Last week at the Collaboration Summit in Austin (which I couldn't attend
      for <a href="http://www.burtonini.com/blog/life/baby-2008-04-07-09-50">personal
      reasons</a>) there was a day-long GNOME Mobile meeting, as a result of
      which there is now a long list of packages which need to be considered for
      addition to the Platform (such as HAL, Gypsy and Geoclue), and a few
      changes (such as replacing gnome-vfs with gvfs).  I hope to review the
      proposals fairly shortly, so that we can hopefully make an initial GNOME
      Mobile 2.24 platform release alongside the Desktop release in September.
    </p>
    <p>
      In other
      news, <a href="http://laughingsquid.com/a-cat-playing-the-theremin/">this
	is exactly what the Internet is for</a>.
    </p>
    <p>
      <small>NP: <cite>Blue Moon Station</cite>, Solar Fields</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-04-15T15:10:00Z</dc:date></item><item><title>Brain Gym</title><guid isPermaLink="false">life/brain-gym-2008-04-10-11-00</guid><link>http://www.burtonini.com/blog/life/brain-gym-2008-04-10-11-00</link><description>Man the lifeboats. The idiots are winning. Last week I watched, open-mouthed, a Newsnight piece on the spread of &quot;Brain ...</description><content:encoded><![CDATA[    <blockquote><p>
	<q>Man the lifeboats. The idiots are winning. Last week I watched,
	  open-mouthed, a Newsnight piece on the spread of "Brain Gym" in
	  British schools. I'd read about Brain Gym before - a few years back,
	  in Ben Goldacre's excellent Bad Science column for this newspaper -
	  but seeing it in action really twisted my rage dial.</q>
    </p></blockquote>
    <p>
      <a href="http://www.guardian.co.uk/commentisfree/2008/apr/07/education">Charlie
      Brooker in The Guardian</a> gets deservedly angry over Brain Gym, after seeing
      an article about it on Newsnight
      (<a href="http://youtube.com/watch?v=M5rH7kDcFpc">1</a>, <a href="http://youtube.com/watch?v=YjRhYP5faTU">2</a>
      on YouTube).  The creator of Brain Gym was <em>destroyed</em> by Paxman,
      rather too easily to be honest.
    </p>
    <p>
      <small>NP: <cite>Voices</cite>, Vangelis (via Last.fm)</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-04-10T10:00:00Z</dc:date></item><item><title>12 Weeks</title><guid isPermaLink="false">life/baby-2008-04-07-09-50</guid><link>http://www.burtonini.com/blog/life/baby-2008-04-07-09-50</link><description>12 weeks and one day, to be precise. Vicky is pregnant!</description><content:encoded><![CDATA[    <p>
      <a class="noline" href="http://www.flickr.com/photos/rossburton/2394765069/" title="12 Weeks">
	<img class="thumbnail" src="http://farm3.static.flickr.com/2073/2394765069_3a4fae6034.jpg" width="500" height="337" alt="12 Weeks" />
      </a>
    </p>
    <p>
      12 weeks and one day, to be precise.
    </p>
    <p>
      Vicky is pregnant!
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-04-07T08:50:00Z</dc:date></item><item><title>Ely</title><guid isPermaLink="false">life/ely-2008-04-02-22-45</guid><link>http://www.burtonini.com/blog/life/ely-2008-04-02-22-45</link><description>Today, we went to Ely. Nice (very small) city, with a rocking cathedral. &gt; &lt;a class=&quot;noline&quot; href=&quot;http: /www.flickr.com/photos/rossburton/2382903929/&quot; title=&quot;Ely Cathedral ...</description><content:encoded><![CDATA[<p>
  Today, we went to Ely.  Nice (very small) city, with a rocking cathedral.
</p>
<p>
  <a class="noline" href="http://www.flickr.com/photos/rossburton/2383737948/" title="Ely Cathedral by Ross Burton, on Flickr">
    <img class="thumbnail" src="http://farm3.static.flickr.com/2379/2383737948_2031d1f550.jpg" width="500" height="333" alt="Ely Cathedral" />
  </a>
  <br/>
  <a class="noline" href="http://www.flickr.com/photos/rossburton/2382903929/" title="Ely Cathedral by Ross Burton, on Flickr">
    <img class="thumbnail" src="http://farm4.static.flickr.com/3217/2382903929_437777164b.jpg" width="500" height="333" alt="Ely Cathedral" />
  </a>
</p>
<p>
  In other news, the new Lightroom 2 beta is <em>very</em> nice.
</p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-04-02T21:45:00Z</dc:date></item><item><title>Dear Interwebs: Secure SMTP Relay Wanted</title><guid isPermaLink="false">computers/mail-2008-03-30-14-22</guid><link>http://www.burtonini.com/blog/computers/mail-2008-03-30-14-22</link><description>I'm looking for a basic SMTP relay which supports SMTP AUTH, TLS, supports the sendmail interface, and has a local ...</description><content:encoded><![CDATA[<p>
  I'm looking for a basic SMTP relay which supports SMTP AUTH, TLS, supports the
  sendmail interface, and has a local mail queue, so that I can send mail from
  my laptop in Evolution (to localhost, or calls sendmail) and the shell
  (calling sendmail) when online or offline.
</p>
<p>
  I need SMTP AUTH and TLS, which means nbsmtp, masqmail, and nullmailer are
  out.  I want a local queue for when I'm not online which means esmtp, ssmtp,
  msmtp, and nullmailer are out (I'm not convinced that msmtp's queue scripts
  are reliable enough).  Surely there must be a simple SMTP relay which will
  reliably manage a queue if the mail cannot be sent!  If not, does anyone know
  of a good guide to configuring Postfix or Exim to do this?
</p>

]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-30T13:22:00Z</dc:date></item><item><title>New Gypsy Release</title><guid isPermaLink="false">computers/gypsy-2008-03-27-16-00</guid><link>http://www.burtonini.com/blog/computers/gypsy-2008-03-27-16-00</link><description>Coding Legend Iain has just released Gypsy 0.6 , the all-new GPS multiplexing daemon which focuses on being lean and ...</description><content:encoded><![CDATA[    <p>
      <abbr title="Gypsy!  Blingtacity! gnome-cd!!">Coding
      Legend</abbr> <a href="http://blogs.gnome.org/iain/">Iain</a> has just
      released <a href="http://gypsy.freedesktop.org">Gypsy 0.6</a>, the all-new
      GPS multiplexing daemon which focuses on being lean and easy to use, and
      not on, erm, putting your GPS on the Internet or something weird.
    </p>
    <p>
      Because I'm fairly lame there are not matching Debian packages yet, but
      I'll get around to that tomorrow.  In other news, a very nice man called
      Ian Lawrence
      wrote <a href="http://www.ianlawrence.info/random-stuff/django-bluetooth-and-gps-on-ubuntu-mobile">a
      buzzword-compliant tutorial</a> where he uses Gypsy to talk to a Bluetooth
      GPS, tests it with
      my <a href="http://www.burtonini.com/blog/computers/gypsy-2007-12-17-10-30">Gypsy
      Status 10-minute hack</a>, and then uses Django to redirect the user to
      the relevant geohash.org page.
    </p>
    <p>
      <small>NP: <cite>Remembranza</cite>, Murcof</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-27T16:00:00Z</dc:date></item><item><title>Photoshop Horrors</title><guid isPermaLink="false">life/photoshop-2008-03-25-09-46</guid><link>http://www.burtonini.com/blog/life/photoshop-2008-03-25-09-46</link><description>Thanks to Photoshop Disasters , this Photoshop horror cheered me right up. &gt; &lt;a href=&quot;http: /www.dailymail.co.uk/pages/live/articles/sport/rugby.html?in_article_id=543050_page_id=1_page_id=1&quot;&gt;Original source , although the ...</description><content:encoded><![CDATA[    <p>
      Thanks
      to <a href="http://photoshopdisasters.blogspot.com/2008/03/daily-mail-dont-do-brown-acid.html">Photoshop
      Disasters</a>, this Photoshop horror cheered me right up.
    </p>
    <p>
      <img src="http://burtonini.com/images/dailymail-cipriani.jpg"/><br/>
      <a href="http://www.dailymail.co.uk/pages/live/articles/sport/rugby.html?in_article_id=543050&in_page_id=1&in_page_id=1">Original
      source</a>, although the image was just pulled from the site.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-03-25T09:46:00Z</dc:date></item><item><title>EDS and Memory</title><guid isPermaLink="false">computers/eds-2008-03-19-21-20</guid><link>http://www.burtonini.com/blog/computers/eds-2008-03-19-21-20</link><description>I was going to reply to Philip's post, but Federico did a wonderful job before I could start. That said, ...</description><content:encoded><![CDATA[    <p>
      I was going to reply to Philip's post,
      but <a href="http://www.gnome.org/~federico/news-2008-03.html#19">Federico
      did a wonderful job</a> before I could start.
    </p>
    <p>
      That said, I still haven't forgiven you for some of the finer details
      of <tt>libecal</tt> Federico.  :)
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-19T21:20:00Z</dc:date></item><item><title>Dear Intertron: Emacs Help Please?</title><guid isPermaLink="false">computers/emacs-2008-03-19-10-40</guid><link>http://www.burtonini.com/blog/computers/emacs-2008-03-19-10-40</link><description>I recently switched to Emacs from XEmacs, and have pretty much got it working how I like. There are just ...</description><content:encoded><![CDATA[    <p>
      I recently switched to Emacs from XEmacs, and have pretty much got it
      working how I like.  There are just two problems remaining.
    </p>
    <ol>
      <li>I'm using emacsclient, and when I close the last frame Emacs quits.
      With XEmacs when in server mode the process continues when the last frame
	is closed, anyone know how I can get Emacs to do this too?</li>
      <li>Emacs appears to be moving the mouse pointer when I open a new
	frame. This is totally frustrating not only because I use sloppy focus,
	but also because its moving the point to <em>the wrong frame</em>.  How
	can I turn this off?
      </li>
    </ol>
    <p>
      Help greatly appreciated!
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-19T10:40:00Z</dc:date></item><item><title>Traits of the Common and Generally Mythical Evolution Data Server Replacement</title><guid isPermaLink="false">computers/eds-replacements-2008-03-18-17-00</guid><link>http://www.burtonini.com/blog/computers/eds-replacements-2008-03-18-17-00</link><description>When not writing media centres or GL toolkits, it appears that the latest trend in open source is to write ...</description><content:encoded><![CDATA[    <p>
      When not writing media centres or GL toolkits, it appears that the latest
      trend in open source is to write Evolution Data Server replacements.
      There is a fairly common pattern forming.
    </p>
    <p>
      First, implementation details will be announced as a major, if not the
      main, feature.  The shining example is "based on DBus".  Yes, DBus is
      great.  Yes, ORBit is a dying technology for something as simple as
      transfering a few strings between two processes.  But this is <em>an
      implementation detail</em>.  I'd prefer a project using DBus instead of
      another <a href="http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol">incredibly
      complicated IPC</a>, but implementation details are typically not
      something to get excited about.
    </p>
    <p>
      Often this first point gets out of control and suddenly the point of the
      project is to design a DBus interface, not to write real working code.  Of
      course, an interface without any code behind it, without any reference
      implementation, without several applications and different users, is bound
      to be broken somewhere.  But you'll never know until it is too late and
      you've labelled the interface as STABLE.  Learn from DBus itself, anyone
      who followed the project before 1.0 knows that the core concepts were
      rewritten several times before it was finally marked as stable.
    </p>
    <p>
      Spreading basic FUD is fairly common too. "EDS is not efficient concerning
      network bandwidth" doesn't make sense, because EDS is a local daemon.
      When it does talk over the network, it's fairly sensible.  The LDAP (and
      Groupwise/Exchange I believe) backend maps EDS searches to native searches
      so that only the requested items are fetched.  Backends such as WebCal
      have no option but to fetch the entire file, because that is how they
      work.  "EDS is not efficient concerning memory usage" is rather vague, and
      if you interpret it as "private dirty memory usage is unreasonably high
      when in use" then in my opinion that is untrue and I have Massif logs to
      back me up.
    </p>
    <p>
      If these points were true, they'll generally be fixable within EDS. The
      default local calendar backend is implemented as an iCalendar file on
      disk, which is parsed into memory in its entirety on startup.  This
      certainly works well for a basic implementation but should be replaced
      with a database of some sort, a simple one which stores a hash of UID to
      event would reduce memory usage for large calendars.  Add to that a cache
      of start and end times to optimise that common case and the end result is
      probably both faster and uses less memory, for a few days work.
    </p>
    <p>
      Occasionally complaints are spot-on, but EDS isn't immutable and whilst
      starting a new project from scatch may be more fun, please think of
      everyone else.  EVCard is over-complicated and yet tragically crippled,
      whilst EContact tries to be clever but generally gets in the way.  Luckily
      we can write a new contact object which is easier to use.  The query
      language is limited, but Milan Crha of Red Hat fame has been chipping away
      and now it's more flexible without breaking existing applications.  Maybe
      someone can come up with a good replacement language, and the old language
      deprecated.
    </p>
    <p>
      I'll summarise what I'm trying to say.
    </p>
    <ul>
      <li>EDS isn't perfect, we all know that.</li>
      <li>However, EDS also isn't immutable.  It can be fixed.</li>
      <li>If you find bugs or bad design in EDS, please file a bug report.</li>
      <li>If you have spare time to start a replacement project, please briefly
      consider the possibility of working on EDS first.  The code isn't that
	scary, honest (especially the DBus port when I get around to merging it).</li>
      <li>If you still want to start a replacement project, at least be polite
      and inform the evolution-hackers mailing list that you are starting a
      project to replace it.  You never know, there might be common ground that we can both work on.</li>
    </ul>

    <p>
      <small>NP: <cite>Kharah System</cite>, Hereill</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-18T17:00:00Z</dc:date></item><item><title>Testers Wanted</title><guid isPermaLink="false">computers/marcopolo-clone-2008-03-18-11-00</guid><link>http://www.burtonini.com/blog/computers/marcopolo-clone-2008-03-18-11-00</link><description>Over the weekend I hacked on a clone of Marco Polo for GNOME. The idea is that you define a ...</description><content:encoded><![CDATA[    <p>
      Over the weekend I hacked on a clone
      of <a href="http://www.symonds.id.au/marcopolo/">Marco Polo</a> for GNOME.
      The idea is that you define a set of contexts, such as "work", "in
      meeting" or "home".  The current context is determined by a set of rules,
      for example being on the "Burton" wireless network means I'm in the "home"
      context, the time being between 09:00 and 18:00 means the "daytime"
      context, and so on.  Finally, when entering or leaving a context actions
      can be executed, such as muting the sound card, mounting a remote drive,
      or changing the default printer.  So far I have sources for the time of
      day and wireless network name, and actions to run a command and set a
      GConf key.
    </p>
    <p>
      Now that the basics are in place, I'm looking for other alpha-testers.
      Experience with Python is a requirement at the moment as there is no UI or
      configuration file yet.  That said, if this application sounds like it
      could be useful to you then
      please <a href="mailto:ross@burtonini.com">email me</a>.
    </p>
    
    <p>
      <small>NP: <cite>!K7</cite>, Various</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-18T11:00:00Z</dc:date></item><item><title>Devil's Pie Graphical Editor</title><guid isPermaLink="false">computers/devilspie/gdevilspie-2008-03-18-10-30</guid><link>http://www.burtonini.com/blog/computers/devilspie/gdevilspie-2008-03-18-10-30</link><description>Thanks to Chris for pointing out gdevilspie to me, a graphical interface to writing Devil's Pie rule files. I've never ...</description><content:encoded><![CDATA[    <p>
      Thanks to <a href="http://chrislord.net">Chris</a> for pointing
      out <a href="http://code.google.com/p/gdevilspie/">gdevilspie</a> to me, a
      graphical interface to writing Devil's Pie rule files.  I've never used it
      so I can't comment on how well it works, but I'm very glad that someone
      finally wrote it!
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers/devilspie</category><dc:date>2008-03-18T10:30:00Z</dc:date></item><item><title>Freecycle</title><guid isPermaLink="false">life/freecycle-2008-03-14-17-30</guid><link>http://www.burtonini.com/blog/life/freecycle-2008-03-14-17-30</link><description>In the last fortnight I have managed to Freecycle the following objects: Bathroom scales A safe An Orange Pay As ...</description><content:encoded><![CDATA[    <p>
      In the last fortnight I have managed
      to <a href="http://freecycle.org">Freecycle</a> the following objects:
    </p>
    <ul>
      <li>Bathroom scales</li>
      <li>A safe</li>
      <li>An Orange Pay As You Go SIM</li>
      <li>A wooden chopping board</li>
      <li>A Bluetooth headset</li>
      <li>Six iPod cases</li>
      <li>A Bodum teapot</li>
      <li>A radio walkman</li>
      <li>A Sharp portable minidisc recorder</li>
      <li>A Nikon APS camera</li>
      <li>Five belts</li>
      <li>Two boxes of word fridge magnets</li>
      <li>A 802.11g CardBus card</li>
      <li>An external USB sound device</li>
   </ul>
    <p>
      It sounds a little like the Generation Game, I know.  Combined with a bin
      bag full of junk, I can actually see the bottom of my drawers now!
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-03-14T17:30:00Z</dc:date></item><item><title>More Tasks Magic</title><guid isPermaLink="false">computers/tasks-2008-03-13-19-30</guid><link>http://www.burtonini.com/blog/computers/tasks-2008-03-13-19-30</link><description>I finally got around to working on magic date parsing in Tasks , thanks to Mallum porting a JavaScript library ...</description><content:encoded><![CDATA[    <p>
      I finally got around to working on magic date parsing
      in <a href="http://pimlico-project.org/tasks.html">Tasks</a>, thanks to
      Mallum porting a JavaScript library to C last year.  I rewrote it again
      this week, and landed it in Subversion a few days ago.  I'd love any
      brave Tasks users to give it a go, especially people who don't use
      English.  They'd need to translate the new strings, but I want to check
      that the technique I'm using is portable between languages.
    </p>
    <p>
      Feedback on what magic strings should be detected would be great too.
      Currently it detects "today", "tomorrow", "yesterday", "this [weekday]"
      and "next [weekday]".  Next up is "by|due|on [local date representation]",
      but what else would be useful?
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-13T19:30:00Z</dc:date></item><item><title>Sound Juicer &quot;Died To Make This Sound&quot; 2.22.0</title><guid isPermaLink="false">computers/sound-juicer/sj-2.22.0</guid><link>http://www.burtonini.com/blog/computers/sound-juicer/sj-2.22.0</link><description>Sound Juicer &quot;Died To Make This Sound&quot; 2.22.0 is available now. Tarballs are available on burtonini.com , or from the ...</description><content:encoded><![CDATA[    <p>
      Sound Juicer "Died To Make This Sound" 2.22.0 is available now.  Tarballs
      are available <a
      href="http://www.burtonini.com/computing/sound-juicer-2.22.0.tar.bz2">on
      <tt>burtonini.com</tt></a>, or from the <a
        href="ftp://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.22/">GNOME
        FTP servers</a>.  Last minute fixes, cleanups, and translations abound!
    </p>
    <ul>
      <li>Fix various crashes in the preferences dialogs (thanks Matthew Martin)</li>
      <li>Translate the genres (thanks Brian Geppert)</li>
      <li>Add a paused track state (thanks Brian Geppert)</li>
      <li>Use the system icons for play/record (thanks Micharl Monreal)</li>
      <li>Many many translations!</li>
    </ul>
    <p>
      Thanks to everyone who helped with Sound Juicer 2.22, there has been a
      huge influx of new contributors thanks to the GHOP and gnome-love
      projects.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers/sound-juicer</category><dc:date>2008-03-10T08:36:21Z</dc:date></item><item><title>For Sale: IBM ThinkPad X22</title><guid isPermaLink="false">computers/forsale-2008-03-09-17-10</guid><link>http://www.burtonini.com/blog/computers/forsale-2008-03-09-17-10</link><description>In an effort to clear up the utter mess which is my home office, I'm selling my old laptop. It's ...</description><content:encoded><![CDATA[    <p>
      In an effort to clear up the utter mess which is my home office, I'm
      selling my old laptop.  It's an IBM ThinkPad X22 (ultra-portable), with
      (and this is from memory) a Pentium 3 Mobility at 733MHz, 640MB RAM, and a
      20GB HDD.  I think.  (<b>update: 40GB HDD</b>). It has built-in wired ethernet but no built-in
      wireless, though I can throw in the Orinoco-based wi-fi card I've been
      using.  There is also the UltraSlice micro-docking station with a
      hotpluggable CD drive/HDD bay.  It will come booting Debian, but it has a
      Windows 2000 license and I'm sure I have the CD somewhere in the attic.
      The main caveat is that the screen hinges have lost their grip so it is
      best used either closed as a router or network music box, or against
      something to keep the screen from falling open. :)
    </p>
    <p>
      So, anyone want to make an offer?  I'll put it on eBay if nobody wants it,
      but I thought I'd offer it out to the Planets first.  If anyone is
      interested ping me and I'll go and turn it on to double-check the
      specifications.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-09T17:10:00Z</dc:date></item><item><title>Dear Mark Prisk</title><guid isPermaLink="false">life/dear-mark-prisk-2008-03-07-16-00</guid><link>http://www.burtonini.com/blog/life/dear-mark-prisk-2008-03-07-16-00</link><description>It's been over three months since my last letter to Mark Prisk MP , and I've yet to receive a ...</description><content:encoded><![CDATA[    <p>
      It's been over three months since <a
      href="http://www.burtonini.com/blog/life/dear-mark-prisk-2007-11-29-12-15">my
      last letter to Mark Prisk MP</a>, and I've yet to receive a reply.  Is he
      ignoring my letter, or is he just useless?
    </p>

    <p>
      <small>NP: <cite>Sounds Like Murcof</cite>, Last.fm</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-03-07T16:00:00Z</dc:date></item><item><title>Google Contacts Data API</title><guid isPermaLink="false">computers/gdata-2008-03-06-17-15</guid><link>http://www.burtonini.com/blog/computers/gdata-2008-03-06-17-15</link><description>Those nice people at Google have finally opened their Contacts API . Now, Evolution already has a Google Calendar backend, ...</description><content:encoded><![CDATA[    <p>
      Those nice people at Google have finally opened their <a
      href="http://code.google.com/apis/contacts/">Contacts API</a>.  Now,
      Evolution already has a Google Calendar backend, so does anyone fancy
      writing a Google Contacts addressbook backend?  If someone with C/GObject
      knowledge is interested, I'll happily provide assistance on the Evolution
      side.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-06T17:15:00Z</dc:date></item><item><title>Poky &quot;Pinky&quot; 3.1 Released</title><guid isPermaLink="false">computers/poky-2008-03-03-18-55</guid><link>http://www.burtonini.com/blog/computers/poky-2008-03-03-18-55</link><description>From: Richard Purdie &lt;richard@openedhand.com&gt; Subject: [poky] Poky Version 3.1 (Pinky) Released It gives me great pleasure to announce a new ...</description><content:encoded><![CDATA[    <pre>From: Richard Purdie &lt;richard@openedhand.com&gt;
Subject: [poky] Poky Version 3.1 (Pinky) Released

It gives me great pleasure to announce a new release of Poky, version
3.1 (Pinky).</pre>
    <p>
      <a href="http://pokylinux.org">Poky 3.1</a> is released!  We've been hard
      at work for this one, mainly deep in the guts to make it more portable and
      powerful.  Of interest to GNOME developers is that Pinky is shipping a
      complete GMAE 2.20 platform, and a plugin for Anjuta to make building and
      deploying software for your target device trivial.
    </p>
    <p>
      We've also got a sweet new web site and possibly the cutest mascot ever.
      I, for one, can't wait to stroke a plush Beaver.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-03-03T18:55:00Z</dc:date></item><item><title>Repulsive</title><guid isPermaLink="false">life/piers-2008-03-03-09-15</guid><link>http://www.burtonini.com/blog/life/piers-2008-03-03-09-15</link><description>From the most excellent Flat Earth News , a rip-roaring (I've always said that phrase should be used more) tale ...</description><content:encoded><![CDATA[    <p>
      From the most excellent <cite><a
      href="http://www.amazon.co.uk/gp/product/0701181451?ie=UTF8&tag=1799&linkCode=as2&camp=1634&creative=6738&creativeASIN=0701181451">Flat
      Earth News</a></cite>, a rip-roaring (I've always said that phrase should
      be used more) tale of corruption, falsehood and propaganda in journalism:
    </p>
    <blockquote><p>
        <q>The readers are never wrong.  Repulsive, maybe, but never wrong.</q>
        - Piers Morgan, as editor of the <cite>Daily Mirror</cite>, referring to
          how he lost circulation due to the paper's stance against the Iraq
          invastion.
      </p></blockquote>
    <p>
      <cite>Flat Earth News</cite> is a great book, and I can recommend it to
      everyone who is disappointed with the state of global journalism, and even
      more to anyone who thinks journalism is in general doing a good job.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-03-03T09:15:00Z</dc:date></item><item><title>Sound Juicer &quot;Drop The Empty Pursuit Of Props&quot; 2.21.92</title><guid isPermaLink="false">computers/sound-juicer/sj-2.21.92</guid><link>http://www.burtonini.com/blog/computers/sound-juicer/sj-2.21.92</link><description>Sound Juicer &quot;Drop The Empty Pursuit Of Props&quot; 2.21.92 is available now. Tarballs are available on burtonini.com , or from ...</description><content:encoded><![CDATA[    <p>
      Sound Juicer "Drop The Empty Pursuit Of Props" 2.21.92 is available now.  Tarballs
      are available <a
      href="http://www.burtonini.com/computing/sound-juicer-2.21.92.tar.bz2">on
      <tt>burtonini.com</tt></a>, or from the <a
        href="ftp://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.21/">GNOME
        FTP servers</a>.  Just small fixes now:
    </p>
    <ul>
      <li>Don't loop if the selected music directory doesn't exist (Matthew Martin)</li>
      <li>When editing the album artist, unset the sortable artist name</li>
      <li>Remove deprecated calls in BaconVolume (Michael Terry)</li>
    </ul>
]]></content:encoded><category domain="http://www.burtonini.com">computers/sound-juicer</category><dc:date>2008-02-26T15:36:13Z</dc:date></item><item><title>Sometimes I Worry</title><guid isPermaLink="false">life/worry-2008-02-26-14-00</guid><link>http://www.burtonini.com/blog/life/worry-2008-02-26-14-00</link><description>mallum: its mental mental chicken oriental NP: Untrue , Burial</description><content:encoded><![CDATA[    <p>
      <tt>mallum: its mental mental chicken oriental</tt>
    </p>

    <p>
      <small>NP: <cite>Untrue</cite>, Burial</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-02-26T14:00:00Z</dc:date></item><item><title>Bad Idea (#4211)</title><guid isPermaLink="false">life/bad-idea-2008-02-20-11-50</guid><link>http://www.burtonini.com/blog/life/bad-idea-2008-02-20-11-50</link><description>Just seen on Freecycle: OFFERED: 7 Blank Dual Layer DVD+R was using them for xbox 360 games however found they ...</description><content:encoded><![CDATA[    <p>
      Just seen on Freecycle:
    </p>
    <blockquote>
      <p>OFFERED: 7 Blank Dual Layer DVD+R</p>
      <p>was using them for xbox 360 games however found they failed alot. ideal 
        for home movies or backing up data.</p>
    </blockquote>
]]></content:encoded><category domain="http://www.burtonini.com">life</category><dc:date>2008-02-20T11:50:00Z</dc:date></item><item><title>Can I Get A Replicator?</title><guid isPermaLink="false">computers/sound-juicer/sj-2008-02-20-10-30</guid><link>http://www.burtonini.com/blog/computers/sound-juicer/sj-2008-02-20-10-30</link><description>There is a Sound Juicer bug which has been reported in 2.20 and 2.21, where changing the album artist name ...</description><content:encoded><![CDATA[    <p>
      There is a Sound Juicer bug which has been reported in 2.20 and 2.21,
      where changing the album artist name doesn't change the name that is used
      when creating directories (<a
      href="http://bugzilla.gnome.org/show_bug.cgi?id=515699">link to bug</a>).
      Thinking about the code this is very strange, and I can't replicate it
      myself, so I have to ask the Planets.  Has anyone else seen this, or can
      they replicate this?
    </p>
    <p>
      <small>NP: <cite>Workmen digging up my road the bastards</cite>, Thames
      Water (<a
      href="http://flickr.com/photos/rossburton/2278676189/">photo</a>)</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers/sound-juicer</category><dc:date>2008-02-20T10:30:00Z</dc:date></item><item><title>Dear InterWeb...</title><guid isPermaLink="false">computers/menu-2008-02-19-21-55</guid><link>http://www.burtonini.com/blog/computers/menu-2008-02-19-21-55</link><description>Mock The Week is about to start, so I'll be quick. Can I ellipsize a GtkMenuItem? It's easy to make ...</description><content:encoded><![CDATA[    <p>
      Mock The Week is about to start, so I'll be quick.  Can I ellipsize a
      GtkMenuItem?  It's easy to make Tasks have very long menu items, which end
      up being too big for the screen.  I'd like to get the menu items truncated
      so that the menu will fit on the screen, or something.  I guess I'll have
      to truncate the string manually if there is no magic way of doing it
      directly in the menu, but that really is a fallback plan.
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-02-19T21:55:00Z</dc:date></item><item><title>Cheapo MP3 Player</title><guid isPermaLink="false">computers/mp3-2008-02-19-15-16</guid><link>http://www.burtonini.com/blog/computers/mp3-2008-02-19-15-16</link><description>Today I ordered what is almost the cheapest MP3 player I could find, and is certainly the cheapest I could ...</description><content:encoded><![CDATA[    <p>
      Today I ordered what is almost the <a
      href="http://www.ebuyer.com/product/132943">cheapest MP3 player</a> I
      could find, and is certainly the cheapest I could find which wouldn't fall
      off when jogging (as much as I love my black iPod Classic, it's not really
      suitable for jogging). I <em>really</em> hope that it reads MP3 files from
      a FAT partition and uses USB Storage...
    </p>
    <p>
      <small>NP: <cite>Mishaps Happening</cite>, Quantic</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-02-19T15:16:00Z</dc:date></item><item><title>DBus-using Library Design</title><guid isPermaLink="false">computers/dbus-2008-02-18-15-22</guid><link>http://www.burtonini.com/blog/computers/dbus-2008-02-18-15-22</link><description>As a rule of thumb, when writing a library which uses DBus please always make asynchronous DBus method calls. You ...</description><content:encoded><![CDATA[    <p>
      As a rule of thumb, when writing a library which uses DBus please
      <em>always</em> make asynchronous DBus method calls.  You never know when
      someone will write a system using your library which, via a series of
      plugins, ends up calling itself.  A single main loop and blocking DBus
      calls are not a great combination, and leads to lots of frustration.
    </p>
    <p>
      Yes, <tt>libnotify</tt>, I'm looking at you.
    </p>

    <p>
      <small>NP: <cite>Out of Season</cite>, Beth Gibbons</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-02-18T15:22:00Z</dc:date></item><item><title>Sound Juicer &quot;Spent All Night Just Watching You&quot; 2.21.91</title><guid isPermaLink="false">computers/sound-juicer/sj-2.21.91</guid><link>http://www.burtonini.com/blog/computers/sound-juicer/sj-2.21.91</link><description>Sound Juicer &quot;Spent All Night Just Watching You&quot; 2.21.91 is available now. Tarballs are available on burtonini.com , or from ...</description><content:encoded><![CDATA[    <p>
      Sound Juicer "Spent All Night Just Watching You" 2.21.91 is available now.  Tarballs
      are available <a
      href="http://www.burtonini.com/computing/sound-juicer-2.21.91.tar.bz2">on
      <tt>burtonini.com</tt></a>, or from the <a
        href="ftp://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.21/">GNOME
        FTP servers</a>.  A few features, before we hit the deep freeze.
    </p>
    <ul>
      <li>Write extracted audio to a temporary file and then rename (Matthew Martin)</li>
      <li>Disable the Eject button if the drive cannot eject (David Meikle)</li>
    </ul>
]]></content:encoded><category domain="http://www.burtonini.com">computers/sound-juicer</category><dc:date>2008-02-14T09:28:41Z</dc:date></item><item><title>Pimlico for N810</title><guid isPermaLink="false">computers/pimlico-2008-02-05-20-10</guid><link>http://www.burtonini.com/blog/computers/pimlico-2008-02-05-20-10</link><description>I finally got around to hacking Evolution Data Server to build without the addressbook, and still work. This isn't hard ...</description><content:encoded><![CDATA[    <p>
      I <em>finally</em> got around to hacking Evolution Data Server to build
      without the addressbook, and still work.  This isn't hard work, its just
      very dull: I must have rebuild EDS from scratch at least twenty times this
      evening.
    </p>
    <p>
      The good news is that there are now Contacts, Dates and Tasks packages for
      Chinook, also known as ITOS 2008, also known as the software on the N800
      and N810.  Sorry it took so long!
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-02-05T20:10:00Z</dc:date></item><item><title>LinkedIn</title><guid isPermaLink="false">computers/linkedin-2008-01-31-13-30</guid><link>http://www.burtonini.com/blog/computers/linkedin-2008-01-31-13-30</link><description>I generally thought that LinkedIn was pretty useless for people like me. I have a community of like-minded associates available ...</description><content:encoded><![CDATA[    <p>
      I generally thought that LinkedIn was pretty useless for people like me.
      I have a community of like-minded associates available via Planet Gnome
      and so on, so apart from collecting friends it is pretty useless.
    </p>
    <p>
      But recently it's been becoming quite useful.  For large companies it
      generally appears to be company policy that contact with open source
      projects is done via anonymous email domains, like GMail.  This obviously
      makes it tricky to guess where someone is from when they appear on a
      mailing list... but LinkedIn to the rescue.  Search for a name and hey
      presto, their CV!
    </p>
    <p>
      <small>NP: <cite>Artists Like: Amon Tobin</cite>, Last.fm</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">computers</category><dc:date>2008-01-31T13:30:00Z</dc:date></item><item><title>Sound Juicer &quot;It's Deeper Than The Darkest Sea&quot; 2.21.3</title><guid isPermaLink="false">computers/sound-juicer/sj-2.21.3</guid><link>http://www.burtonini.com/blog/computers/sound-juicer/sj-2.21.3</link><description>Sound Juicer &quot;It's Deeper Than The Darkest Sea&quot; 2.21.3 is available now. Tarballs are available on burtonini.com , or from ...</description><content:encoded><![CDATA[    <p>
      Sound Juicer "It's Deeper Than The Darkest Sea" 2.21.3 is available now.  Tarballs
      are available <a
      href="http://www.burtonini.com/computing/sound-juicer-2.21.3.tar.bz2">on
      <tt>burtonini.com</tt></a>, or from the <a
        href="ftp://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.21/">GNOME
        FTP servers</a>.  More hot features!
    </p>
    <ul>
      <li>Add a Disc Number field, and magically populate it (Matthew Martin)</li>
      <li>Add content/* media types for Nautilus (Matthias Clasen)</li>
      <li>Set a11y relationships on the cluebar (thanks Rich and Willie)</li>
      <li>Fix play/pause (Bill O'Shea)</li>
      <li>Handle the cdio element not being cdparanoia</li>
    </ul>
]]></content:encoded><category domain="http://www.burtonini.com">computers/sound-juicer</category><dc:date>2008-01-31T10:48:16Z</dc:date></item></channel></rss>