<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for dgh</title>
    <link>http://www.advogato.org/person/dgh/</link>
    <description>Advogato blog for dgh</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Wed, 22 May 2013 20:42:01 GMT</pubDate>
    <item>
      <pubDate>Thu, 31 Mar 2011 05:11:03 GMT</pubDate>
      <title>removing cartridge bearings</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=26</link>
      <guid>http://dgh.livejournal.com/15078.html</guid>
      <description>Finding advice on removing a cartridge bearing from a bicycle wheel proved surprisingly difficult recently. Even a fairly recent and comprehensive bicycle repair manual that I had to hand didn't say anything about it.&lt;br /&gt;&lt;br /&gt;It turns out the way to do it is to remove any end caps and locknuts and washers and nuts and then &lt;b&gt;bang the end of the axle really hard&lt;/b&gt; against a piece of wood. You will probably make dents in the piece of wood.&lt;br /&gt;&lt;br /&gt;This works because cartridge bearings are pressure fit both to the hub and to the axle. (This is really neat!) Both the hub and the axle are stepped to hold the cartridge in place. A hard enough bang will simultaneously make the step on the upmost side of the axle pop the upmost cartridge from the hub and make the step on the downmost side of the hub pop the downmost cartridge from the axle. You can then pull the axle out and remove the other cartridge by poking through a screwdriver or similar and tapping with a mallet.</description>
    </item>
    <item>
      <pubDate>Tue, 1 Mar 2011 20:08:37 GMT</pubDate>
      <title>Breakdown: Markdown for presentations</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=25</link>
      <guid>http://dgh.livejournal.com/14603.html</guid>
      <description>&lt;p&gt;Recently I've been giving a few talks, and anticipate giving several more in the near future, and have been getting annoyed at how time-consuming writing the slides is. My current preferred (read: least despised) tool for writing slides is &lt;a href="https://bitbucket.org/rivanvx/beamer/wiki/Home" &gt;LaTeX Beamer&lt;/a&gt;, which is a fairly good compromise between simplicity, control and quality. However, the markup is still somewhat verbose, and hence time-consuming to edit.&lt;/p&gt;&lt;p&gt;To make things easier, I wrote a tool, Breakdown, which converts Markdown to Beamer. Of course, Markdown only has limited text formatting capabilities, so Breakdown passes through LaTeX commands. This way, the easy things are easy and hard things are possible.&lt;/p&gt;&lt;p&gt;For example, the markup:&lt;/p&gt;&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;@@
\beamertemplatenavigationsymbolsempty

# Breakdown

Write your presentations in Markdown!

 * Quick and simple
 * Use \LaTeX syntax when you need to, e.g.
     * for equations: $e^{i\pi} + 1 = 0$
     * for ``quoting'' things
     * for images, code listings, tables, quotations\ldots
&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Gets converted to:&lt;/p&gt;&lt;img src="http://rhydd.org/~daf/misc/breakdown-example.png" border="1" width="400" /&gt;&lt;p&gt;Conversion can be automated using a couple of Makefile rules:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;%.pdf: %.tex
        rubber -d $&amp;lt;

%.tex: %.mdwn
        breakdown &amp;lt; $&amp;lt; &amp;gt; $@
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Thankfully, the excellent &lt;a href="http://johnmacfarlane.net/pandoc/" &gt;Pandoc&lt;/a&gt; Haskell library does msot of the work; most of the Breakdown code is for splitting the input into slides.&lt;/p&gt;&lt;p&gt;Breakdown has a competitor in &lt;a href="http://wiki2beamer.sourceforge.net/" &gt;wiki2beamer&lt;/a&gt;, but I like the fact that Breakdown uses a standard markup language and standard TeX commands with a very small amount of custom syntax, rather than a custom wiki-style markup. Each to their own.&lt;/p&gt;&lt;p&gt;The code is in a &lt;a href="http://git.rhydd.org/?p=breakdown;a=summary" &gt;git repository&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 16 May 2009 09:05:06 GMT</pubDate>
      <title>dgh @ 2009-05-16T11:09:00</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=24</link>
      <guid>http://dgh.livejournal.com/14183.html</guid>
      <description>&lt;p&gt;
&lt;a href="http://www.futilitycloset.com/" &gt;Futility Closet&lt;/a&gt;, ever edifying, notes that &lt;a href="http://www.futilitycloset.com/2009/05/09/flash-flood/" &gt;the word &amp;ldquo;ravine&amp;rdquo; is reversed when rot13 is applied&lt;/a&gt;. Are there other words that have the same property? We can easily find out with a bit of code:&lt;/p&gt;

&lt;pre&gt;
&amp;gt; import qualified Data.ByteString.Char8 as B
&amp;gt; 
&amp;gt; rot13 = B.map (toEnum . r . fromEnum)
&amp;gt;    where r c | (65 &amp;lt;= c) &amp;amp;&amp;amp; (c &amp;lt;= 90)  = (c - 65 + 13) `mod` 26 + 65
&amp;gt;              | (97 &amp;lt;= c) &amp;amp;&amp;amp; (c &amp;lt;= 122) = (c - 97 + 13) `mod` 26 + 97
&amp;gt;              | otherwise = c
&amp;gt; 
&amp;gt; main = B.interact (B.unlines . filter (\x -&amp;gt; rot13 x == B.reverse x) . B.lines)
&lt;/pre&gt;

&lt;p&gt;
The answer: not many. Running this on &lt;tt&gt;/usr/share/dict/words&lt;/tt&gt; yields a paltry 12 words; all of which, &#x201C;ravine&#x201D; excepted, are four letters or less. We get slightly better results running it on the 390,583-word &lt;tt&gt;british-english-huge&lt;/tt&gt; file from &lt;a href="http://wordlist.sourceforge.net/" &gt;12dicts&lt;/a&gt; (which I keep installed for exactly this sort of tomfoolery). On the other hand, some of the extra words are quite obscure. The full list:
&lt;/p&gt;

&lt;blockquote&gt;
an
anan
cherup
fans
fobs
fs
gant
gnat
grivet
na
nana
ravine
re
rebore
rive
robe
serf
tang
thug
uh
&lt;/blockquote&gt;

&lt;p&gt;
(This post can be compiled by saving it as a &lt;tt&gt;.lhs&lt;/tt&gt; file and running &lt;tt&gt;ghc --make&lt;/tt&gt; on it.)
&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sun, 3 May 2009 20:04:05 GMT</pubDate>
      <title>recent hacking</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=23</link>
      <guid>http://dgh.livejournal.com/13993.html</guid>
      <description>&lt;h2&gt;crosswords&lt;/h2&gt;

&lt;p&gt;
I enjoy crosswords very much, and for a while I've been loading
the free &lt;a href="http://www.chron.com/apps/games/xword/puzzles/" &gt;Houston Chronicle
crosswords&lt;/a&gt; in &lt;a href="http://x-word.org" &gt;Xword&lt;/a&gt;. Although they indulge in sports references (which I'm useless at) and tend to be a little repetitive, they have nice puns and they have
a good variety of difficulties (they follow the US convention of easiest ones on Mondays and hardest ones on
Sundays). Incidentally, the repetitiveness seems common to US crosswords &#x2014;
perhaps a side-effect of the US grid style?
&lt;/p&gt;

&lt;p&gt;
However, I like the &lt;a href="http://www.guardian.co.uk/crossword/" &gt;Guardian's
crosswords&lt;/a&gt; a lot too. Unlike the Chronicle, they have cryptics,
which I like to try my hand at from time to time. The problem is that the
Guardian crosswords are only available online via an annoying Java applet or as
PDFs. I managed to work around this using the fact that the input to the Java
applet is encoded on a screen-scrapable HTML page, and
wrote a &lt;a href="http://rhydd.org/darcs/guardian-puz-convert/" &gt;tool to convert
the HTML to the AcrossLite .puz format&lt;/a&gt;. To get the reulsting files to work in Xword, I had to write some
&lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526821" &gt;patches to
support British-style grids&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;gtrans&lt;/h2&gt;

&lt;p&gt;
A crude &lt;a href="http://rhydd.org/darcs/gtrans/" &gt;command-line client for
translate.google.com&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;debri&lt;/h2&gt;

&lt;p&gt;
Like &lt;tt&gt;debi&lt;/tt&gt;, but &lt;a href="http://rhydd.org/darcs/debri/" &gt;installs packages to a remote host over SSH&lt;/a&gt;. Useful when cross-compilating for Debian-based embedded systems.
&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 25 Feb 2009 09:04:32 GMT</pubDate>
      <title>Jingle interoperability day</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=22</link>
      <guid>http://dgh.livejournal.com/13389.html</guid>
      <description>&lt;p&gt;
Before FOSDEM this year, a bunch of people got together to test our various &lt;a href="http://xmpp.org/tech/jingle.shtml" &gt;Jingle&lt;/a&gt; implementations with each other. Attendance was great: I think we had representatives from most implementations, and we almost ran out of chairs.
&lt;/p&gt;

&lt;p style="width: 400px; margin: 0 auto 0 auto"&gt;
&lt;a href="http://people.collabora.co.uk/~robot101/tmp/06022009098.jpg" &gt;
&lt;img style="border: none" src="http://people.collabora.co.uk/~robot101/tmp/06022009098.jpg" width="400" /&gt;
&lt;/a&gt;
&lt;br /&gt;
&lt;i&gt;Paul Witty from Tandberg and Sjoerd from Collabora, testing Jingle calls to a Tandberg video conferencing endpoint.&lt;/i&gt;
&lt;/p&gt;

&lt;p&gt;
I'd judge the event a great success: we found a number of bugs and even fixed some of them the same day. In particular for Collabora, we got to try out our new support for &lt;a href="http://xmpp.org/extensions/xep-0177.html" &gt;raw UDP transports&lt;/a&gt; and the latest ICE signalling. There was also good discussion about future directions for file transfer and relaying support in Jingle, as well as &lt;a href="http://xmpp.org/extensions/inbox/xtls.html" &gt;XTLS&lt;/a&gt; and its relationship to Jingle. Plus, the testing done on the day itself was continued afterwards, notably including working interoperability between our ICE library, &lt;a href="http://nice.freedesktop.org/wiki/" &gt;libnice&lt;/a&gt;, with Paul's implementation.
&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 2 Dec 2008 19:04:54 GMT</pubDate>
      <title>Multi-User Jingle</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=21</link>
      <guid>http://dgh.livejournal.com/12711.html</guid>
      <description>&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt; Since I posted this, we discovered that our first choice of name, Mingle, has some trademark problems. For the time being, we're going to call it &lt;strong&gt;Multi-User Jingle&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
When I joined Collabora in 2006, I was quickly thrown into the deep end when I
was assigned to work on extending Jingle, the then-nascent VoIP protocol for
Jabber, to support video. That work came to fruition on the Nokia N800, and
the protocol we developed is incorporated into the latest Jingle drafts (which incidentally are now in Last Call).
&lt;/p&gt;

&lt;p&gt;
This year, we wanted to try to take Jingle further by extending it to support
more than two participants, and a &lt;a href="http://www.nlnet.nl/project/mingle/" &gt;grant&lt;/a&gt; from the &lt;a href="http://www.nlnet.nl/" &gt;NLnet Foundation&lt;/a&gt; made it
possible for Sjoerd and I to spend time on it. I'm now happy to announce that we
have a working implementation of the beast we've dubbed &lt;s&gt;&lt;b&gt;Mingle&lt;/b&gt;&lt;/s&gt; &lt;b&gt;Multi-User Jingle&lt;/b&gt;. There
is still much that remains to be done, but we think that the basic design is
finished.
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://telepathy.freedesktop.org/mingle/img/mingle-wave.png" &gt;
&lt;img style="border: none" src="http://telepathy.freedesktop.org/mingle/img/mingle-wave.png" alt="MUJ client screenshot" width="800" /&gt;
&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Our initial implementation builds heavily on work done by others. Wim's RTP session manager for
GStreamer gives us clock syncing and RTCP support. &lt;a href="http://www.tester.ca/" &gt;Olivier&lt;/a&gt;'s Farsight 2 work
gives us multiparty-capable codec discovery and autoplugging. Youness's work on
&lt;a href="http://nice.freedesktop.org/wiki/" &gt;libnice&lt;/a&gt; gives us robust NAT traversal using ICE.
&lt;/p&gt;

&lt;p&gt;
Future protocol work includes support for multicast transport, media mixers and relays, and of course ironing out all the corner cases that will inevitably turn up. Our ultimate goals are to standardise the protocol through the &lt;a href="http://xmpp.org/extensions/" &gt;XEP&lt;/a&gt; process and to make it possible to use it with &lt;a href="http://live.gnome.org/Empathy" &gt;Empathy&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
We've submitted a &lt;a href="http://telepathy.freedesktop.org/mingle/mingle.html" &gt;draft XEP&lt;/a&gt; to the XMPP editor, and kicked off some &lt;a href="http://mail.jabber.org/pipermail/jingle/2008-December/000285.html" &gt;discussion&lt;/a&gt; on the Jingle mailing list. Our &lt;a href="http://telepathy.freedesktop.org/wiki/Mingle" &gt;wiki page&lt;/a&gt; describes how to get our &lt;a href="http://git.collabora.co.uk/?p=mingle.git;a=summary" &gt;client&lt;/a&gt; working. This currently isn't as easy as we'd like due to the dependency on recent versions of various components, but should become easier with time.
&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 24 Oct 2008 17:08:28 GMT</pubDate>
      <title>serious change</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=20</link>
      <guid>http://dgh.livejournal.com/12288.html</guid>
      <description>My friend &lt;a href="http://www.flourish.org/blog/" &gt;Francis&lt;/a&gt; has &lt;a href="http://www.flourish.org/blog/?p=181" &gt;launched&lt;/a&gt; &lt;strong&gt;&lt;a href="http://seriouschange.org.uk/" &gt;Serious Change&lt;/a&gt;&lt;/strong&gt;, an initiative to represent UK citizens who want climate change to be taken as seriously as it deserves to be, and who believe it can be an opportunity and not just a threat. As a &lt;a href="http://www.mysociety.org/" &gt;MySociety&lt;/a&gt; dude, Francis knows &lt;a href="http://www.mysociety.org/projects/" &gt;a thing or two&lt;/a&gt; about getting people engaged via useful websites.&lt;br /&gt;&lt;br /&gt;Francis rightly points out that &lt;em&gt;climate change is not a partisan issue&lt;/em&gt;. Nor is it a &#x2018;green&#x2019; issue. It affects us all. It's not just another environmental problem. It changes everything. Individual, voluntary action will not solve it &#x2014; even the &lt;a href="http://cbi.org.uk" &gt;Confederation of British Industry&lt;/a&gt; is &lt;a href="http://www.avtclient.co.uk/climatereport/" &gt;calling for the government to legislate&lt;/a&gt; (and is in the meantime &lt;a href="http://www.cbi.org.uk/climate" &gt;getting proactive&lt;/a&gt;). Furthermore, what we do (or don't do) about it now can seriously affect how things turn out. &lt;br /&gt;&lt;br /&gt;Given the urgency and magnitude of the problem, why don't we seem to be taking serious action?&lt;br /&gt;&lt;br /&gt;If you feel similarly, I urge you to join in.</description>
    </item>
    <item>
      <pubDate>Tue, 25 Mar 2008 17:11:17 GMT</pubDate>
      <title>Control-click</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=19</link>
      <guid>http://dgh.livejournal.com/11668.html</guid>
      <description>The fact that you can use Control-click to open URLs in &lt;a href="http://en.wikipedia.org/wiki/GNOME_Terminal" &gt;Gnome Terminal&lt;/a&gt; is not very discoverable. (Just clicking doesn't do anything; perhaps this is to avoid breaking text selection?) I can't remember how I found out about it myself, but somebody I pointed it out to recently was delighted that they didn't have to use the context menu to open URLs, so I think it deserves wider publicity.</description>
    </item>
    <item>
      <pubDate>Mon, 7 Jan 2008 00:05:52 GMT</pubDate>
      <title>Internet cloud</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=18</link>
      <guid>http://dgh.livejournal.com/9534.html</guid>
      <description>&lt;p&gt;
This is my new favourite depiction of the Internet, courtesy of &lt;a href="http://www.faqs.org/rfcs/rfc908.html" &gt;RFC 908&lt;/a&gt;:
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://rhydd.org/~daf/misc/internet.png" alt="An ASCII art diagram that uses a cloud of assorted non-letter characters to represent the Internet" width="579" height="191" /&gt;
&lt;/p&gt;

&lt;p&gt;
Given that the Internet is a bit like a game of &lt;a href="http://robotfindskitten.org/" &gt;Robot Finds Kitten&lt;/a&gt;, it only makes sense that it look like one. Alternatively, it's reminiscent of the swearing in &lt;a href="http://www.asterix.tm.fr/" &gt;Asterix&lt;/a&gt;, which is also appropriate.
&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 24 Dec 2007 03:06:37 GMT</pubDate>
      <title>do not confuse</title>
      <link>http://www.advogato.org/person/dgh/diary.html?start=17</link>
      <guid>http://dgh.livejournal.com/8962.html</guid>
      <description>&lt;table cellpadding="10"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style="text-align: center"&gt;
&lt;a href="http://flickr.com/photos/rmajetic/470274358/" &gt;&lt;img style="border: none" src="http://farm1.static.flickr.com/168/470274358_533d1fbaff_m.jpg" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;div style="text-align: center"&gt;
&lt;a href="http://flickr.com/photos/37899575@N00/1498520087/" &gt;&lt;img style="border: none" src="http://farm3.static.flickr.com/2299/1498520087_e812795619_m.jpg" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;div style="text-align: center"&gt;
stationary stationery shop
&lt;/div&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;div style="text-align: center"&gt;
mobile stationery shop
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;div style="text-align: center"&gt;
&lt;a href="http://flickr.com/photos/tofz4u/99301057/" &gt;&lt;img style="border: none" src="http://farm1.static.flickr.com/32/99301057_a8467f53e3_m.jpg" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;td&gt;
&lt;div style="text-align: center"&gt;
&lt;a href="http://flickr.com/photos/hungry_j/2935299/" &gt;&lt;img style="border: none" src="http://farm1.static.flickr.com/1/2935299_766dc4feee_m.jpg" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;div style="text-align: center"&gt;
stationary mobile shop
&lt;/div&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;div style="text-align: center"&gt;
mobile mobile shop
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
    </item>
  </channel>
</rss>
