<?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>Sound Juicer &quot;I Need A Little Love To Ease The Pain&quot; 2.14.5</title><guid isPermaLink="false">computers/sound-juicer/sj-2.14.5</guid><link>http://www.burtonini.com/blog/computers/sound-juicer/sj-2.14.5</link><description>Sound Juicer &quot;I Need A Little Love To Ease The Pain&quot; 2.14.5 is out. Tarballs are available on burtonini.com , ...</description><content:encoded><![CDATA[    <p>
      Sound Juicer "I Need A Little Love To Ease The Pain" 2.14.5 is out.
      Tarballs are available <a
        href  ="http://www.burtonini.com/computing/sound-juicer-2.14.5.tar.gz">on
        <tt>burtonini.com</tt></a>, or from the <a href="ftp://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.14/">GNOME FTP
        servers</a>.  This releases rolls in the bug fixes from 2.15.4:
    </p>
    <ul>
      <li>Add date information to all possible albums (Alex Lancaster)</li>
      <li>Improve GStreamer error handling (Tim-Philipp Muller)</li>
      <li>Don't crash when re-opening the Preferences dialog</li>
      <li>Clear the genre field when re-reading the disk</li>
    </ul>
]]></content:encoded><category domain="http://www.burtonini.com">/computers/sound-juicer</category><dc:date>2006-07-24T14:38:12Z</dc:date></item><item><title>Sound Juicer &quot;Two Undernourished Egos Four Rotating Hips&quot; 2.15.4</title><guid isPermaLink="false">computers/sound-juicer/sj-2.15.4</guid><link>http://www.burtonini.com/blog/computers/sound-juicer/sj-2.15.4</link><description>Sound Juicer &quot;Two Undernourished Egos Four Rotating Hips&quot; 2.15.4 is out. Tarballs are available on burtonini.com , or from the ...</description><content:encoded><![CDATA[    <p>
      Sound Juicer "Two Undernourished Egos Four Rotating Hips" 2.15.4 is out.
      Tarballs are available <a
      href="http://www.burtonini.com/computing/sound-juicer-2.15.4.tar.gz">on
      <tt>burtonini.com</tt></a>, or from the <a
        href="ftp://ftp.gnome.org/pub/gnome/sources/sound-juicer/2.15/">GNOME
        FTP servers</a>.  Not a lot going on, sorry.
    </p>
    <ul>
      <li>Add date information to all possible albums (Alex Lancaster)</li>
      <li>Improve GStreamer error handling (Tim-Philipp Muller)</li>
      <li>Don't crash when re-opening the Preferences dialog</li>
      <li>Clear the genre field when re-reading the disk</li>
    </ul>
]]></content:encoded><category domain="http://www.burtonini.com">/computers/sound-juicer</category><dc:date>2006-07-24T14:33:25Z</dc:date></item><item><title>American In Britain</title><guid isPermaLink="false">life/britain-2006-07-24-12-30</guid><link>http://www.burtonini.com/blog/life/britain-2006-07-24-12-30</link><description>Britain is often said to be part of &quot;the United Kingdom&quot;, along with several other countries, including England. Ireland is ...</description><content:encoded><![CDATA[    <blockquote><q>
        Britain is often said to be part of "the United Kingdom", along with several
        other countries, including England. Ireland is also nearby, and is considered
        part of Scotland, which, in turn, is adjacent to, and included in, a small
        country called Wales. To first-time visitors this can be confusing, especially
        when one learns that - paradoxically - France is considered by the British to be
        its very own nation!
      </q></blockquote>
    <p>
      A snipped from the first article in <a
        href="http://books.guardian.co.uk/departments/generalfiction/story/0,,1826279,00.html">a
      series in <cite>The Guardian</cite></a>.  It continues later:
    </p>
    <blockquote><q>
        The traveller must, of course, always be cautious of the overly broad
        generalisation. But I am an American, and a paucity of data does not
        stop me from making sweeping, vague, conceptual statements and, if
        necessary, following these statements up with troops.
      </q></blockquote>
    <p>
      <small>NP: <cite>Neighbour Radio</cite>, Last.fm</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/life</category><dc:date>2006-07-24T11:30:00Z</dc:date></item><item><title>Hot Patch And Merge Action</title><guid isPermaLink="false">computers/hot-merge-action-2006-07-24-11-30</guid><link>http://www.burtonini.com/blog/computers/hot-merge-action-2006-07-24-11-30</link><description>For the last few weeks I've been trying to get as many of the non-DBus specific changes to EDS we've ...</description><content:encoded><![CDATA[    <p>
      For the last few weeks I've been trying to get as many of the non-DBus
      specific changes to EDS we've made in the eds-dbus port, to ease re-basing
      the port against EDS 1.8 for eventual upstreaming.  Many thanks to the
      Evolution maintainers for reviewing so many patches so quickly, I just
      hope I broke nothing in the process!
    </p>
    <ul>
      <li>Added API: <tt>e_book_query_vcard_field_exists</tt>, <tt>e_vcard_get_attribute</tt>, <tt>e_vcard_get_param</tt>, <tt>e_vcard_attribute_remove_value</tt>, <tt>e_vcard_attribute_remove_param_value</tt>,  <tt>e_data_book_view_notify_update_prefiltered_vcard</tt></li>
      <li>Extended <tt>EContactPhoto</tt> structure to support remote photos</li>
      <li>Changed name parsing tables to avoid relocations</li>
      <li>Fix "all contacts" optimisations so it actually happens</li>
      <li>Increased performance and reduced memory usage of the default addressbook backend</li>
    </ul>
    <p>
      Out of the thirty commits to the addressbook since since April, half were
      merged from the DBus port!
    </p>
    <p>
      <small>NP: <cite>Feedback</cite>, Jurassic 5</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-24T10:30:00Z</dc:date></item><item><title>DBus Performance</title><guid isPermaLink="false">computers/dbus-2006-07-22-12-20</guid><link>http://www.burtonini.com/blog/computers/dbus-2006-07-22-12-20</link><description>Ah, the classic DBus performance issue has reared it's head on Planet Gnome again. I'll chip in my thoughts on ...</description><content:encoded><![CDATA[    <p>
      Ah, the classic DBus performance issue has reared it's head on Planet
      Gnome again.  I'll chip in my thoughts on this, as I've done a fair bit of
      profiling on a <a href="http://projects.o-hand.com/eds">large user of
      DBus</a>.
    </p>
    <p>
      When I first ported of EDS to DBus, it didn't perform as fast as the
      original ORBit implementation.  However when I dug out <a
      href="http://projects.o-hand.com/oprofile">OProfile</a> I discovered that
      the main bottle necks were deep in EDS itself, and DBus although in the
      profiles, wasn't anywhere near the top.  We spent a few months optimising
      EDS-DBus (there was some <em>serious</em> low-hanging fruit) and by the
      time we'd done the obvious optimisations, EDS-DBus was faster than
      upstream EDS for the typical usage (running a book view, which happens
      every time you search in Evolution).
    </p>
    <p>
      For some methods EDS-DBus was still slower than EDS, and
      <tt>getContacts()</tt> is a perfect example.  This method takes a query,
      builds the set of contacts that match, and sends it back to the client in
      a single list (compared to book views that do the same thing
      incrementally, and provide future updates).  When profiled you discover
      that <tt>libdbus</tt> and <tt>libc</tt> are the top offenders, taking
      almost 70% of the runtime.  The benchmark was asking for all contacts, so
      EDS-DBus was sending a 150 contacts as vCards over the bus in a single
      list, which amounts to about 100Kb of data.  Now, this gets copied when it
      enters the library, copied again as it enters the sockets to the bus,
      which then sends it into another socket to the client, which then makes a
      copy.  These copies really hurt, and are one of the things that ORBit does
      better than DBus: it copies less frequently and has generally had more
      optimisation time. There are several ways of making it better.
    </p>
    <ul>
      <li>
        Those nice people at <a href="http://collabora.co.uk/">Collabora</a> have
        <strike>batshit insane</strike> cunning plans for a SHM-based transport,
        instead of sockets.  This would reduce the number of copies, but does
        introduce some, well, <em>interesting</em> locking fun.
      </li>
      <li>
        Almost half of the copies could be removed by creating a private
        connection between the client and the server, missing out the bus
        entirely.  I plan on doing this for the book views as they are heavily
        used and the bottleneck is, again, the copies.
      </li>
      <li>
        Obviously, heavily profiling and optimising <tt>libdbus</tt> to remove
        any redundant copies would help.  There may be cunning ways to avoid
        some of the copies for certain situations, and allowing those to happen
        in the GLib bindings would be useful.
      </li>
    </ul>
    <p>
      In conclusion, the DBus vs ORBit performance issue isn't a real one
      generally.  It's a rare case where the cost of the transport is the
      bottleneck (generally only in fake benchmarks), and when the transport is
      the bottleneck, there are generally other ways of optimising the code: as
      Havoc says DBus makes doing true asynchronous method calls trivial, and if
      you are sending huge amounts of data down the bus a private connection
      should be used (which will also make you a nicer citizen on the bus, as
      sending huge messages will clog up the tubes).
    </p>
    <p>
      <small>NP: <cite>Kind Of Blue</cite>, Miles Davis </small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-22T11:20:00Z</dc:date></item><item><title>Lens Opinions</title><guid isPermaLink="false">photography/lens-2006-07-21-14-17</guid><link>http://www.burtonini.com/blog/photography/lens-2006-07-21-14-17</link><description>My main camera lens at the moment is the EF 28-135mm IS USM, which although excellent for a non-L lens ...</description><content:encoded><![CDATA[    <p>
      My main camera lens at the moment is the EF 28-135mm IS USM, which
      although excellent for a non-L lens is limited as on a non-fullframe DSLR
      the widest it goes is 45mm.  Now if I had a decent wide angle lens such as
      the 10-22mm this wouldn't be a problem, but the only lens I own going
      wider than 28mm is the kit 17-55, which isn't great.
    </p>
    <p>
      Thus I've been thinking about selling the 28-135 and buying the 17-85mm IS
      USM, which is clearly targetted as being the 28-135 for cropped digital
      SLRs.  I'll loose the extra zoom but in return gain the wide angle in a
      single lens.  However, the optical quality of the 28-135 is excellent for
      a non-L lens, and I'm worried that the 17-85 isn't up to the same quality.
      Are there any really picky camera geeks out there who have used both the
      28-135 and 17-85 and can help me decide?
    </p>
    <p>
      <small>NP: <cite>Prose Combat</cite>, MC Solaar</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/photography</category><dc:date>2006-07-21T13:17:00Z</dc:date></item><item><title>Crap Speakers Of Doom</title><guid isPermaLink="false">life/crap-speakers-2006-07-20-09-15</guid><link>http://www.burtonini.com/blog/life/crap-speakers-2006-07-20-09-15</link><description>I just discovered a use for the Treble Booster EQ on my iPod... Now that I'm working in the spare ...</description><content:encoded><![CDATA[    <p>
      I just discovered a use for the Treble Booster EQ on my iPod...  Now that
      I'm working in the <strike>spare room</strike> study pretty much all the
      time I really miss not sitting in the sweet spot for the hifi downstairs.
      Hanging around I had some cheap Logitech computer speakers, so I've dug
      those out and plugged my iPod in.  This morning I fancied a bit of Sigur
      R&oacute;s so I slapped on <cite>&Aacute;g&aelig;tis Bryjun</cite> and after two
      minutes was enjoying the bass (the speakers are sub/sat) but was left
      wondering what happened to the drums.  If I listened very carefully I
      could just make out a snare, but the cymbals... totally inaudible.  Thus
      Treble Booster, which has at made this album listenable too at least.
      It's a pain that these speakers are so bass-heavy as my laptop doesn't
      have bass/treble controls.  The irony is that the sub doesn't even go that
      low, on <cite>Flugufrelsarinn</cite> the bass drum is totally drowned out
      by the organ.  The mid-bass is just very, very loud.
    </p>
    <p>
      Oh well, I'm planning to get a pair of small speakers (MS Avant 902i are
      looking good) and one of those super-cheap Super-T amps for this room at
      some point.
    </p>
    <p>
      <small>NP: <cite>&Aacute;g&aelig;tis Bryjun</cite>, Sigur R&oacute;s</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/life</category><dc:date>2006-07-20T08:15:00Z</dc:date></item><item><title>EDS and Berkeley DB</title><guid isPermaLink="false">computers/eds-libdb-2006-07-18-10-40</guid><link>http://www.burtonini.com/blog/computers/eds-libdb-2006-07-18-10-40</link><description>Back in the good old days of Evolution 0.9, Evolution depended on Berkeley DB being installed. At the time Berkerley ...</description><content:encoded><![CDATA[    <p>
      Back in the good old days of Evolution 0.9, Evolution depended on Berkeley
      DB being installed.  At the time Berkerley DB ("BDB") was undergoing a
      some major changes so it wasn't uncommon to upgrade your distribution and
      find that the new BDB can't read your addressbook.  This was solved by
      Evolution embedding a copy of BDB into the source code. and statically
      linking it into the relevant addressbook backend.  Problem solved.
    </p>
    <p>
      Over time Evolution was refactored, split into Evolution and Evolution
      Data Server, and so on.  Then BDB was statically linked into not only the
      addressbook backend but also libedataserver, which contains some generic
      caches based on BDB.  Now BDB isn't exactly a small library (it adds ~600K
      to a .so), so the second static linking started to irritate people.  Not
      only does EDS have a private copy of a library, meaning extra work when
      BDB has security bugs, but there is 1.2M of code that could be shared.
      This led to various distributions patching EDS to use a system copy of
      BDB, a patch that has finally made it upstream, but not everyone is using
      it: by default EDS uses it's private copy.
    </p>
    <p>
      Now fast-forward to today.  I did a full build of EDS from CVS using the
      system BDB (it's also a lot faster to build that way) and hit build
      failures from code demanding the static BDB to be built.  Fixing these was
      trivial, but when I checked in the patch it worked fine...  I investigated
      and discovered that BDB is now used in four places inside EDS:
    </p>
    <ul>
      <li>The addressbook "file" backend. This is the original user</li>
      <li>libedataserver</li>
      <li>The Groupwise backend, as a cache</li>
      <li>libedata-book, the server-side addressbook library</li>
    </ul>
    <p>
      Now, BDB is approximately 600K when statically linked, and a typical EDS
      build statically links it <em>four</em> times.  The server process will
      load both backends and both libraries, so it contains all four copies of
      BDB at once.
    </p>
    <p>
      This is getting silly.  Please, all packagers, if you support multiple
      versions of BDB in your distribution, use <tt>--with-libdb=/usr</tt> to
      dynamically link to BDB.  As a fallback I'm about to create a patch that
      installed the private BDB into a private library directory, to avoid all
      of this static linking.
    <p>
      <small>NP: <cite>Neighbour Radio</cite>, Last.fm (via Last Exit)</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-18T09:40:00Z</dc:date></item><item><title>Evolution Broken</title><guid isPermaLink="false">computers/eds-2006-07-17-13-15</guid><link>http://www.burtonini.com/blog/computers/eds-2006-07-17-13-15</link><description>That was a nice inflammatory title to get everyone's attention. I've just committed a change to Evolution Data Server ( ...</description><content:encoded><![CDATA[    <p>
      That was a nice inflammatory title to get everyone's attention.  I've just
      committed a change to Evolution Data Server (<a
      href="http://bugzilla.gnome.org/show_bug.cgi?id=313533">#313533</a>,
      extending <tt>EContactPhoto</tt>) that not only breaks ABI but also API.
      Rock on!
    </p>
    <p>
      Now I've yet to update Evolution for the new API, so people doing builds
      from CVS will find they break.  I'll try and get it fixed today, but I
      can't promise it.  The fixes will be fairly simple if you ignore the new
      features, so someone else should be able to easily do it.
    </p>
    <p>
      <small>NP: <cite>Cool Groove</cite></small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-17T12:15:00Z</dc:date></item><item><title>GUADEC 2006 Photos</title><guid isPermaLink="false">computers/guadec-2006-07-11-11-30</guid><link>http://www.burtonini.com/blog/computers/guadec-2006-07-11-11-30</link><description>On Sunday I spent a good hour or so sorting and uploading the photos from GUADEC 2006. Most of the ...</description><content:encoded><![CDATA[    <p>
      On Sunday I spent a good hour or so sorting and uploading the photos from
      GUADEC 2006.  Most of the photos were taken by Daniel Stone, after he
      stole my camera during the Maemo One Year Old party.  Anyway, <a
      href="http://www.flickr.com/photos/rossburton/sets/72157594193158116/">here
      they are on Flickr</a>.
    </p>
    <p>
      <small>NP: <cite>Colour the Small One</cite>, Sia (via Last.fm)</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-11T10:30:00Z</dc:date></item><item><title>Last Exit debs</title><guid isPermaLink="false">computers/last-exit-2006-07-10-10-12</guid><link>http://www.burtonini.com/blog/computers/last-exit-2006-07-10-10-12</link><description>Iain has just released Last Exit 1.0 , triumphantly feature-complete when compared to the official player. I've created Debian packages ...</description><content:encoded><![CDATA[    <p>
      <a href="http://blogs.gnome.org/iain">Iain</a> has just released <a
      href="http://www.o-hand.com/~iain/last-exit/">Last Exit 1.0</a>,
      triumphantly feature-complete when compared to the official player.  I've
      created Debian packages that are currently sitting in the <a
      href="http://ftp-master.debian.org/new.html">NEW queue</a>, until they hit
      Sid there are packages in <a href="http://burtonini.com/debian">my
      repository</a>.  <strike>They are targetted at Sid, but should install
      fine on Dapper.  Tell me if they don't and I'll do a rebuild.</strike>
      Update: packages built on Dapper are now available too. <strong>Another
      Update:</strong> hopefully non-broken packages for Sid and Dapper are now
      uploaded.
    </p>
    <p>
      <small>NP: <cite>Neighbour Radio</cite>, Last.fm</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-10T09:12:00Z</dc:date></item><item><title>Go Energy</title><guid isPermaLink="false">computers/go-energy-2006-07-07-14-50</guid><link>http://www.burtonini.com/blog/computers/go-energy-2006-07-07-14-50</link><description>To counter the Stop Energy I'm famed for (think of the Listen saga), I'm going to blog some Go Energy. ...</description><content:encoded><![CDATA[    <p>
      To counter the Stop Energy I'm famed for (think of the <cite>Listen</cite>
      saga), I'm going to blog some Go Energy.
    </p>
    <p>
      <a href="http://oss.codepoet.no/sputnik/">Sputnik</a> is a great little
      Internet radio player.  The UI is heavily based on Muine, it uses Python
      and GStreamer, and pretty much Just Works.  It's only up to version 0.0.3
      but it's been my main source of music for the last few days, so it does
      what it needs to well.  I'd like to see it displaying the song title and
      artist somewhere, but that is about it really.
    </p>
    <p>
      <a
      href="http://maemo.org/maemowiki/ApplicationCatalog2006#head-7b663fd945bcc60fbd6c5b7900e837a5ff99ec9c">NFlick</a>
      is a Flickr set browser for the Nokia 770.  As it is only version 0.1 is
      has some flaws: it eats huge amounts of memory (no running it at the same
      time as the web browser). crashes a fair bit, doesn't cache images, and
      doesn't support the hardware keys.  However, when it works, it works well:
      this is just the sort of tool I want on the 770.
    </p>
    <p>
      <small>NP: <cite>Digitally Imported - Lounge</cite></small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-07T13:50:00Z</dc:date></item><item><title>Qt 4.2 Preview with Glib Mainloop</title><guid isPermaLink="false">computers/qt-2006-07-03-15-45</guid><link>http://www.burtonini.com/blog/computers/qt-2006-07-03-15-45</link><description>To enable closer integration with the GNOME deskop environment and tools, Qt 4.2 now contains support for the Glib eventloop ...</description><content:encoded><![CDATA[    <blockquote>
      <q>To enable closer integration with the GNOME deskop environment and
      tools, Qt 4.2 now contains support for the Glib eventloop</q> [<a
      href="http://doc.trolltech.com/4.2/qt4-2-intro.html">via</a>]
    </blockquote>
    <p>
      Next step: World Domination!
    </p>
    <p>
      <small>NP: <cite>This Is My Demo</cite>, Sway</small>
    </p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2006-07-03T14:45:00Z</dc:date></item></channel></rss>