<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Jonathan Lange</title>
	<link>http://mumak.net/planet/</link>
	<language>en</language>
	<description>Jonathan Lange - http://mumak.net/planet/</description>

<item>
	<title>Mere Code: Flow, Interruptions and Gold-Titanium Alloys</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-246790443235994368</guid>
	<link>http://code.mumak.net/2008/08/flow-interruptions-and-gold-titanium.html</link>
	<description>As I mentioned earlier, I've just had a very productive and fun weekend of hacking on &lt;a href=&quot;https://launchpad.net/testresources&quot;&gt;testresources&lt;/a&gt;. But why was it so good?&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Fast Commits&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Because I was working offline using Bazaar, I could make commits to testresources and they'd be done before I could Alt-Tab back to Emacs.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Fast Tests&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It takes about 0.15 seconds to run the test suite. This meant I was running it all the time, which in turn meant that I was totally certain about whether the code worked all the time.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Clarity of Purpose&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I knew where I was and where I wanted to go.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;No Rabbit Holes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The testresources code base is small enough that it is nearly impossible to get distracted by &lt;span style=&quot;font-style: italic;&quot;&gt;other&lt;/span&gt; systemic defects. If there is such a defect, it's probably the one that you're working on right now. This might be another way of saying...&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;No Blockers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I wasn't waiting on anyone to do anything. There weren't any other bugs that needed to get fixed before I could continue.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;No Integration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The system is about as self-contained as it gets. No signals, subprocesses or sockets: just Python. The only dependency is pyunit3k, which is small, robust, well-tested and also pretty darn self-contained.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;No Interruptions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I wasn't answering questions on IRC, taking Skype calls, handling incoming email, doing the washing, checking Facebook, catching up on my blogs, watching a film or wrestling a bear. &quot;Fast Commits&quot; and &quot;Fast Tests&quot; probably fall into this category too.&lt;br /&gt;&lt;br /&gt;In other words:&lt;br /&gt;&lt;blockquote&gt;There is nothing except this. There's no art opening, no charity, nothing to sign. There's the next mission, and nothing else.  &lt;/blockquote&gt;</description>
	<pubDate>Mon, 18 Aug 2008 03:21:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: testresources: fresh blood</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-3620018535113229223</guid>
	<link>http://code.mumak.net/2008/08/testresources-fresh-blood.html</link>
	<description>Last weekend I spent a bunch of timing hacking on &lt;a href=&quot;https://launchpad.net/testresources&quot;&gt;testresources&lt;/a&gt; with &lt;a href=&quot;http://robertcollins.net/&quot;&gt;Rob&lt;/a&gt; over at &lt;a href=&quot;https://launchpad.net/%7Eraof&quot;&gt;Chris&lt;/a&gt;'s place. testresources is an extension to unittest that allows tests to specify the resources they use declaratively, so that these resources can be cleanly shared between tests. On Saturday, we talked a bit about direction and decided on some goals. On Sunday, &lt;a href=&quot;https://code.launchpad.net/%7Ejml/testresources/tests-meaning-cleanup/+merge/767&quot;&gt;I got busy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The idea isn't particularly new: zope.testing has had &quot;layers&quot; for a long time. The key differences between testresources and Zope layers are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You can use more than one TestResource. You can only use one layer. Allowing tests to specify many resources makes it easier to use only the resources that you need, which in turn makes for a faster test suite.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A test that uses testresources can be used independently of other testresources machinery. With layers, you pretty much need the whole shebang. This means that you can use testresources with trial, bzr, nose, tribunal or unittest.TextTestRunner.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Layers have magical inheritance stuff. testresources has no magic.&lt;/li&gt;&lt;li&gt;Layers do some work in subprocesses to accommodate some setUps that can have no tearDown. testresources doesn't know what a process is.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;That said, I'm mainly familiar with layers from Zope 3.2—they may have changed since then.&lt;br /&gt;&lt;br /&gt;testresources itself is somewhat old. Rob hacked up the first version about three years ago and little has happened to it since. I've always agreed with the approach, but have also had a few qualms about implementation details that made me reluctant to use it or to recommend it. Now, it's well on its way to being something that I can trust and perhaps, love.&lt;br /&gt;&lt;br /&gt;If you are interested, check out &lt;a href=&quot;https://code.launchpad.net/%7Ejml/testresources/tests-meaning-cleanup&quot;&gt;my branch&lt;/a&gt; or at least flick through the &lt;a href=&quot;http://bazaar.launchpad.net/%7Ejml/testresources/tests-meaning-cleanup/annotate/77?file_id=todo-20080817122443-kaikqdedcg57lr4v-1&quot;&gt;TODO&lt;/a&gt; file.</description>
	<pubDate>Mon, 18 Aug 2008 01:11:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Internet, again.</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-4691085257360029697</guid>
	<link>http://life.mumak.net/2008/08/internet-again.html</link>
	<description>I applied to iiNet for my Naked DSL line on July the 7th. I still don't have Internet access at home. I won't have it, they say, until next week or the week after.&lt;br /&gt;&lt;br /&gt;I'll be in Hobart for two weeks from Wednesday afternoon, so I will have waited &lt;span style=&quot;font-style: italic;&quot;&gt;two months&lt;/span&gt; for an Internet connection at my house. That's assuming nothing goes wrong.</description>
	<pubDate>Fri, 15 Aug 2008 04:02:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Internet and Coffee?</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-5819294483781814647</guid>
	<link>http://life.mumak.net/2008/08/internet-and-coffee.html</link>
	<description>Dear Lazyweb,&lt;br /&gt;&lt;br /&gt;Does anyone know of cafés on the North Shore of Sydney that provide free / cheap Internet and don't mind it if someone sits by themselves quietly spending money all day? The closer to Lindfield the better.&lt;br /&gt;&lt;br /&gt;jml</description>
	<pubDate>Thu, 14 Aug 2008 04:41:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Palmerston North</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-1993480115830128814</guid>
	<link>http://life.mumak.net/2008/08/palmerston-north.html</link>
	<description>Palmerston North is a strange town. There are three things that single it out from other towns, which I shall enumerate as follows:&lt;br /&gt;&lt;br /&gt;  1. No one between the age of 25 and 60 has a New Zealand accent.&lt;br /&gt;  2. The public library is the coolest place in town.&lt;br /&gt;  3. It is ruled entirely by ducks.&lt;br /&gt;&lt;br /&gt;More later.</description>
	<pubDate>Tue, 12 Aug 2008 07:02:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Tolerance</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-2002523589176097659</guid>
	<link>http://life.mumak.net/2008/08/tolerance.html</link>
	<description>Tolerance is all about acknowledging that some people, somewhere are allowed to say &quot;different than&quot; when they actually mean &quot;different to&quot;.</description>
	<pubDate>Fri, 01 Aug 2008 00:47:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Cool Launchpad/Bazaar hack</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-7623350122185148360</guid>
	<link>http://code.mumak.net/2008/07/cool-launchpadbazaar-hack.html</link>
	<description>If you push a lot of Bazaar branches to Launchpad, you might want to add something like this to your .bazaar/locations.conf:&lt;pre&gt;[/home/jml/Code]&lt;br /&gt;public_branch = lp:~jml&lt;br /&gt;public_branch:policy = appendpath&lt;br /&gt;push_location = lp:~jml&lt;br /&gt;push_location:policy = appendpath&lt;br /&gt;&lt;/pre&gt;Once it's there, 'bzr push' will Just Work... as long as you want it to do something like:&lt;pre&gt;jml@rhino:~$ cd ~/Code/&lt;a href=&quot;https://launchpad.net/pyunit3k&quot; title=&quot;What is pyunit3k?&quot;&gt;pyunit3k&lt;/a&gt;/trunk&lt;br /&gt;jml@rhino:~/Code/pyunit3k/trunk$ bzr push&lt;br /&gt;Using saved location: lp:~jml/pyunit3k/trunk&lt;br /&gt;No new revisions to push.&lt;br /&gt;&lt;/pre&gt;So if I've got a branch in &lt;code&gt;~/Code/&amp;lt;project-name&amp;gt;/&amp;lt;branch-name&amp;gt;&lt;/code&gt;, it'll be published at &lt;code&gt;https://launchpad.net/~jml/&amp;lt;project-name&amp;gt;/&amp;lt;branch-name&amp;gt;&lt;/code&gt;. This is only a default, of course: you can override it for a given branch by doing:&lt;pre&gt;bzr push --remember &amp;lt;new_location&amp;gt;&lt;/pre&gt;Or you can override it for a bunch of branches by hacking locations.conf.&lt;br /&gt;&lt;br /&gt;Neat huh?</description>
	<pubDate>Fri, 25 Jul 2008 05:38:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Over the Ocean</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-5219836653798741232</guid>
	<link>http://life.mumak.net/2008/07/over-ocean.html</link>
	<description>&lt;a href=&quot;http://farm1.static.flickr.com/35/113016585_0a93e343ba.jpg?v=0&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://farm1.static.flickr.com/35/113016585_0a93e343ba.jpg?v=0&quot; style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 202px; height: 304px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;No Internet yet. It turns out that my actual, postal address is different from my glass-and-copper Telstra address. What larks!&lt;br /&gt;&lt;br /&gt;I'll be in Dunedin next week, making merry with the Canonical crew. It's a little known fact that Robbie Burns, author of &lt;span style=&quot;font-style: italic;&quot;&gt;Auld Lang Syne&lt;/span&gt;, was sent to New Zealand as its one and only convict.&lt;br /&gt;&lt;br /&gt;After that, I'll be off to Palmerston North, &quot;suicide capital&quot;. John Cleese, famous for his roles as Q in &lt;span style=&quot;font-style: italic;&quot;&gt;Die Another Day&lt;/span&gt;, has declared the town to be so &quot;thoroughly miserable&quot; that it can tip the scales for those iffy about offing themselves.&lt;br /&gt;&lt;br /&gt;Rest assured, gentle reader, that my straits are not so dire. I'll be deep-sea hacking with another kiwi colleague.&lt;br /&gt;&lt;br /&gt;When I return, I still won't have an Internet connection.</description>
	<pubDate>Wed, 23 Jul 2008 02:08:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Internet</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-7302881110198099792</guid>
	<link>http://life.mumak.net/2008/07/internet.html</link>
	<description>I've been without Internet in my home for six and one half days. To do my job, I have been commuting to Andrew and Mary's where I am graciously lavished with the Internet's bounty. Today, however was supposed to be different.&lt;br /&gt;&lt;br /&gt;Telstra was scheduled to connect my line at some time between 8am and 1pm. The exact time being known only to the technician and to God.&lt;br /&gt;&lt;br /&gt;The technician called me at around 9am saying that he had connected the line at the exchange and was just confirming that. At around twenty to twelve, he called me, confirming my building was indeed number 250 that's two-five-zero. Then he hung up.&lt;br /&gt;&lt;br /&gt;He called me again. You see, we both need to be sure that the building I live in is indeed two hundred and fifty that's two-five-zero, the one next to the service station. We assured each other of our certainty, then he hung up. I started worrying. I had expected a certain level of confusion—Telstra have a reputation to maintain—but this seemed excessive.&lt;br /&gt;&lt;br /&gt;My phone rang again. Apparently the technician and I are both victims of a cruel deception. &quot;They&quot; told him that he was supposed to connect me on the building on the other side of the road. &quot;They&quot; gave him the wrong details, although apparently the correct address. He sees now that the place where I should be connected to is right next to my building.&lt;br /&gt;&lt;br /&gt;He's sending the job back to them. They will sort it out. They will probably call me tomorrow or the next day and send him out again, he says. They will explain what's going on. No, my line hasn't been connected today.&lt;br /&gt;&lt;br /&gt;Goodbye.</description>
	<pubDate>Fri, 18 Jul 2008 04:02:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Moved</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-1503478112615943633</guid>
	<link>http://life.mumak.net/2008/07/moved.html</link>
	<description>I've moved to Lindfield. My muscles are sore and almost everything is unpacked.&lt;br /&gt;&lt;br /&gt;There's no Internet at the place yet so I'll be a little bit out of touch.</description>
	<pubDate>Mon, 14 Jul 2008 00:40:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Lethologica</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-1941153524992570159</guid>
	<link>http://life.mumak.net/2008/07/lethologica.html</link>
	<description>What's that word, the one for when people unite to achieve a single goal and spend effort, time, energy, creativity, nous, emotion, money, business cunning and sweat on some grand endeavour?&lt;br /&gt;&lt;br /&gt;The closest I've got is &quot;industry&quot;. It's a shame the word doesn't carry a sense of wonder and verve with it.</description>
	<pubDate>Tue, 08 Jul 2008 00:08:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: I Love Data</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-4536070818872098294</guid>
	<link>http://code.mumak.net/2008/07/i-love-data.html</link>
	<description>At work, we recently started to graph the time it takes to access a branch in Launchpad via SSH, both on our staging and production servers.&lt;br /&gt;&lt;br /&gt;I love this so much. Having this data is &lt;span style=&quot;font-style: italic;&quot;&gt;liberating&lt;/span&gt;. It's like turning on a light in a dark room: suddenly I can go from uncertain, careful, hesitant steps to bold, confident strides.&lt;br /&gt;&lt;br /&gt;In fact, the metaphor stretches further. This new light has revealed objects of interest (that is, spikes in the time taken) that I wasn't aware of before. I need to know how long these spikes last, how they correlate with load on the system and so forth. Soon there'll be more graphs, and I'll be able to correlate them and analyze them and suck on their delicious, numerical marrow (the light metaphor long abandoned).&lt;br /&gt;&lt;br /&gt;Regardless of whether it's liberating illumination or nourishing, savoury meat, this new graph makes me wonder why I don't chart other things I care about. Having such graphs would help me see the &lt;span style=&quot;font-style: italic;&quot;&gt;impact&lt;/span&gt; of my actions. I could chart things like my bank balance, my waistline or the number of Latin words I learned this week. Then I could answer questions like &quot;do I spend more on Tuesdays?&quot; or &quot;can I afford this iPod/cake/gerund?&quot;. This is important, because when I am tempted with a sleek/delicious/perplexing iPod/cake/gerund, I fall back on my own judgment. I think it's time to confess, dear reader, that my own judgment isn't very good. And yet I continue to trust it.&lt;br /&gt;&lt;br /&gt;The reason I don't have such graphs is that they are inconvenient to maintain. A graph of branch access times is &lt;span style=&quot;font-style: italic;&quot;&gt;easy&lt;/span&gt;. All you need to do is describe how to get the measurement, and then do a bit of once-off set up. If you want to graph your body weight, you need to get on the scales at a fixed time and then look at the dial and adjust for parallax and then write a number down somewhere and maybe note down whether this is before or after a meal and then take the number and then add it to a spreadsheet. Most online banking sites I've seen are even &lt;span style=&quot;font-style: italic;&quot;&gt;less&lt;/span&gt; convenient than this.&lt;br /&gt;&lt;br /&gt;Getting data on life is hard, but for programming it's easy. What things do you care about on your project? Features, user experience, how fast bugs get fixed? Can you quantify these things? Can you make a pretty picture out of it? If so, do it now! Post your answers here, set up something like&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;/span&gt; &lt;a href=&quot;http://cricket.sourceforge.net/&quot;&gt;Cricket&lt;/a&gt; and then profit!&lt;br /&gt;&lt;br /&gt;P.S. I can't believe I got to the end of this post without saying how awesome the Canonical sysadmins are. Let me correct that now. The Canonical sysadmins are heck of awesome. They could &lt;a href=&quot;http://cdn-www.i-am-bored.com/media/95709_mordoranim8.gif&quot;&gt;simply walk into Mortor&lt;/a&gt;.</description>
	<pubDate>Mon, 07 Jul 2008 07:00:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Yet It Moves</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-5717429949455647651</guid>
	<link>http://life.mumak.net/2008/07/yet-it-moves.html</link>
	<description>I had meant to move this weekend just gone. I had arranged the truck, some friends to help and cleared away a space for my possessions in my new home.&lt;br /&gt;&lt;br /&gt;Sadly, I didn't actually &lt;span style=&quot;font-style: italic;&quot;&gt;pack&lt;/span&gt;&lt;span&gt;. Like Pope Urban VII, I expected the universe to move around me. I'm going to try to move again next week. Right now, all of my books, CDs, DVDs and odds-and-ends are all packed. Boxes are scattered on my floor like Biblical allusions in a Nick Cave song.&lt;br /&gt;&lt;br /&gt;Instead of moving, I revamped &lt;a href=&quot;http://mumak.net/&quot;&gt;my website&lt;/a&gt;, moved &lt;a href=&quot;http://code.mumak.net/&quot;&gt;my professional blog&lt;/a&gt; and set up &lt;a href=&quot;http://mumak.net/planet/atom.xml&quot;&gt;a feed that aggregates both blogs&lt;/a&gt;. Thanks to &lt;a href=&quot;http://huwshimi.com/&quot;&gt;Huw&lt;/a&gt; and &lt;a href=&quot;http://puzzling.org/&quot;&gt;Mary&lt;/a&gt; for their help.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</description>
	<pubDate>Mon, 07 Jul 2008 02:16:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Somebody Do This Please</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-6225331854382219297</guid>
	<link>http://code.mumak.net/2008/07/somebody-do-this-please_9690.html</link>
	<description>&amp;lt;jml&amp;gt; What's the difference between &lt;a href=&quot;http://gobby.0x539.de/trac/&quot;&gt;Gobby&lt;/a&gt; and a &lt;a href=&quot;http://moinmo.in/&quot; title=&quot;Moin Moin&quot;&gt;wiki&lt;/a&gt;?&lt;br /&gt;&amp;lt;mwh&amp;gt; NAT</description>
	<pubDate>Thu, 03 Jul 2008 06:17:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Not Happy</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-2834839100459372321</guid>
	<link>http://life.mumak.net/2008/06/not-happy.html</link>
	<description>&lt;p&gt;From &lt;a href=&quot;http://www.smh.com.au/articles/2008/06/30/1214677946009.html&quot;&gt;http://www.smh.com.au/articles/2008/06/30/1214677946009.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;EXTRAORDINARY new powers will allow police to arrest and fine people for &quot;causing annoyance&quot; to World Youth Day participants and permit partial strip searches at hundreds of Sydney sites, beginning today.&lt;/p&gt; &lt;p&gt;The laws, which operate until the end of July, have the potential to make a crime of wearing a T-shirt with a message on it, undertaking a &lt;i&gt;Chaser&lt;/i&gt;-style stunt, handing out condoms at protests, riding a skateboard or even playing music, critics say.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;I guess that means my &quot;Mary: Not really all that&quot; t-shirt is staying in the cupboard.</description>
	<pubDate>Tue, 01 Jul 2008 03:32:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: GMail feature request</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-8089889730512879183</guid>
	<link>http://code.mumak.net/2008/06/gmail-feature-request.html</link>
	<description>First, where should I make these requests?&lt;br /&gt;&lt;br /&gt;Second, I'd like to be able to open my GMail without seeing all the new mail in my inbox. Very often, I open up GMail just to look up some fact that I've forgotten, or to put a date to a particular event. Seeing new mail and an unempty inbox distracts me, leading me down a rabbit hole of processing.&lt;br /&gt;&lt;br /&gt;I guess a GreaseMonkey hack wouldn't be &lt;em&gt;too&lt;/em&gt; hard.</description>
	<pubDate>Mon, 30 Jun 2008 23:09:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: &quot;Give it a burl, yer fisho&quot;</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-1977265380101077843</guid>
	<link>http://life.mumak.net/2008/06/give-it-burl-yer-fisho.html</link>
	<description>&lt;a href=&quot;http://stripeshop.metagnome.net/&quot;&gt;Bice&lt;/a&gt; asked me to translate &quot;striving for boredom&quot; into Latin. I'm slowly teaching myself Latin in my spare time, and am still very much a beginner. I couldn't just translate it off the cuff, so here's what I did.&lt;br /&gt;&lt;br /&gt;First, I looked up &lt;span style=&quot;font-style: italic;&quot;&gt;to strive&lt;/span&gt; and &lt;span style=&quot;font-style: italic;&quot;&gt;boredom&lt;/span&gt; in my Latin dictionary. It offers &lt;span style=&quot;font-style: italic;&quot;&gt;contendere&lt;/span&gt; for &lt;span style=&quot;font-style: italic;&quot;&gt;to strive&lt;/span&gt; and &lt;span style=&quot;font-style: italic;&quot;&gt;lassitudo &lt;/span&gt;for &lt;span style=&quot;font-style: italic;&quot;&gt;boredom&lt;/span&gt;. Then I looked up &lt;span style=&quot;font-style: italic;&quot;&gt;for&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;For&lt;/span&gt; has a lot of meanings. Does it refer to advantage, duration, price, being in lieu of something, a purpose or what? I figured &quot;purpose&quot; looked about right and of the two suggestions I picked &lt;span style=&quot;font-style: italic;&quot;&gt;ad&lt;/span&gt;, guessing that &lt;span style=&quot;font-style: italic;&quot;&gt;in&lt;/span&gt; wasn't quite right. I confirmed this by looking up the synonym &lt;span style=&quot;font-style: italic;&quot;&gt;towards&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The dictionary quite helpfully tells me that &lt;span style=&quot;font-style: italic;&quot;&gt;ad&lt;/span&gt; expects to be followed by an accusative. So, I flipped to the back of the dictionary where it explains how to turn a noun from the way it appears in the dictionary (i.e. the nominative case) into the accusative case.&lt;br /&gt;&lt;br /&gt;Guess what? Latin turns out to be pretty complicated! The forms of a noun don't changed based on gender, as I had guessed, but on &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Latin_declension&quot;&gt;declension&lt;/a&gt;&quot;, a made up category of grammar even sillier than gender. I knew &lt;span style=&quot;font-style: italic;&quot;&gt;lassitudo&lt;/span&gt; was feminine, but not which declension it was. The dictionary didn't give examples of feminine words ending with &lt;span style=&quot;font-style: italic;&quot;&gt;–do&lt;/span&gt; so I resorted to the Internet. Googling for &quot;lassitudo declension&quot; quickly shewed it to be in &lt;span style=&quot;font-style: italic;&quot;&gt;declinatio tertia&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&quot;Let's see nominative, vocative, accusative—ah! &lt;span style=&quot;font-style: italic;&quot;&gt;lassitudonēs&lt;/span&gt; looks right&quot;. Except that &lt;span style=&quot;font-style: italic;&quot;&gt;lassitudonēs&lt;/span&gt; means &quot;boredoms&quot;. This prompted a short philosophical tangent whereby Bice and I discussed whether one could have multiple boredoms. Results were inconclusive. &lt;span style=&quot;font-style: italic;&quot;&gt;Lassitudem&lt;/span&gt; looks to be right.&lt;br /&gt;&lt;br /&gt;So far, we have ______ &lt;span style=&quot;font-style: italic;&quot;&gt;ad lassitudem&lt;/span&gt;. Time to learn verbs!&lt;br /&gt;&lt;br /&gt;This is where I got really confused. Is &lt;span style=&quot;font-style: italic;&quot;&gt;striving&lt;/span&gt; is a gerund? I don't think so. It would be if the motto were &quot;Striving is great&quot;, but in this case someone is actually striving.&lt;br /&gt;&lt;br /&gt;Tense was less tricky. It's not past, it's not future, pluperfect or future perfect. It's not passive or subjunctive either, although I don't think these are tenses. Present seems to be the only sensible choice, and the examples in the dictionary helped verify this. &lt;span style=&quot;font-style: italic;&quot;&gt;Contendere &lt;/span&gt;ends with &lt;span style=&quot;font-style: italic;&quot;&gt;–ere&lt;/span&gt; (not &lt;span style=&quot;font-style: italic;&quot;&gt;–ēre&lt;/span&gt;!), so it looks like it's in the third conjugation.&lt;br /&gt;&lt;br /&gt;Latin verbs, like German ones, really seem to need a person. &lt;span style=&quot;font-style: italic;&quot;&gt;Cogito&lt;/span&gt; means &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; think&lt;/span&gt;. Bice and I decided that &quot;We're striving&quot; was the meaning we intended, so I went for third person. &lt;span style=&quot;font-style: italic;&quot;&gt;Contendo, contendis, contendit!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A quick Google for &quot;contendit ad&quot; showed that others have used similar constructs, notably &lt;span style=&quot;font-style: italic;&quot;&gt;contendit ad perfectionem&lt;/span&gt;, so at least it's not an original mistake.&lt;br /&gt;&lt;br /&gt;So, that leaves us with &lt;span style=&quot;font-style: italic;&quot;&gt;contendit ad lassitudem&lt;/span&gt;. Not this blogger's motto, honestly!</description>
	<pubDate>Thu, 26 Jun 2008 01:44:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: 2008</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-6587088400853659934</guid>
	<link>http://code.mumak.net/2008/06/2008.html</link>
	<description>&lt;h1 color=&quot;#ff0000&quot;&gt;Firefox 3 is awesome!&lt;/h1&gt;</description>
	<pubDate>Mon, 23 Jun 2008 10:12:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Hypothesis</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-6736308075842876923</guid>
	<link>http://life.mumak.net/2008/06/hypothesis.html</link>
	<description>&lt;span style=&quot;font-style: italic;&quot;&gt;Karma Police&lt;/span&gt;&lt;span&gt; and &lt;span style=&quot;font-style: italic;&quot;&gt;Ballad of a Thin Man&lt;/span&gt; are actually the same song in the Platonic world of forms.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</description>
	<pubDate>Mon, 23 Jun 2008 09:32:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Used Tickets</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-5300327241186287825</guid>
	<link>http://life.mumak.net/2008/06/used-tickets.html</link>
	<description>&lt;div style=&quot;text-align: center;&quot;&gt;UNIVERSITY OF SYDNEY PRESENTS&lt;br /&gt;A SYDNEY IDEAS LECTURE&lt;br /&gt;&lt;span style=&quot;font-size: 180%;&quot;&gt;JOHN MICKLETHWAIT&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 100%;&quot;&gt;Thu 19 June 2008&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;John Micklethwait is the current editor of the Economist — a newspaper to which I subscribe. He tried to get us thinking using &quot;provocative paranoia&quot;. Sadly, I didn't take notes, so I'll have to dredge my memory for a possible later post.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 180%;&quot;&gt;Cinema 04&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 130%;&quot;&gt;Prince Caspian (M)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 100%;&quot;&gt;Wed 18/06/2008&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Like the Micklethwait lecture, this doesn't have any heroes. Unlike the lecture, it lacks decent villains too. At one point, the chief bad guy &lt;span style=&quot;font-style: italic;&quot;&gt;swirls his cape menacingly &lt;/span&gt;as he steals the throne from Caspian. I spent the whole film thinking about &lt;a href=&quot;http://www.crlamppost.org/darkside.htm&quot;&gt;Philip Pullman's opinions on Susan&lt;/a&gt; and how Edmund seemed along for the ride (except for one awesome moment near the Stone Table).&lt;br /&gt;&lt;br /&gt;Just read the book: it's cheaper, more enjoyable and won't take much longer than watching the film.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 23 Jun 2008 04:55:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Yeats, Poor Planning, and Sausage</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-4382667045683841797</guid>
	<link>http://life.mumak.net/2008/06/yeats-poor-planning-and-sausage.html</link>
	<description>I missed out on going to church tonight due to an unfortunate accident with my laundry — I did all of it in one go, leaving me with neither socks nor clean outer garb.&lt;br /&gt;&lt;br /&gt;Instead I've idled a bit around the house, flicking through some Yeats and the Introduction to the Penguin edition of same. This bit's worth repeating:&lt;br /&gt;&lt;blockquote&gt;Yeats's commitment to the potency of the word was also connected with his belief in the virtues of English as it was spoken in those parts of Ireland which had not yet been corrupted by the 'base idiom' of the newspapers, … 'a speech exhausted from abstraction'. In the Elizabethan period Irish writers 'belonged to the old individual, poetical life, and spoke a language [Irish] in which it was all but impossible to think an abstract thought'.&lt;/blockquote&gt;Later,&lt;br /&gt;&lt;blockquote&gt;[Yeats] remembered that he had found himself 'continually testing both my verse and my prose by translating it into dialect' … helping him 'to get back to the definite and concrete away from modern abstractions'.&lt;br /&gt;&lt;/blockquote&gt;Which reminds me of Orwell's translation of &lt;a href=&quot;http://www.biblegateway.com/passage/?book_id=25&amp;amp;chapter=9&amp;amp;verse=11&amp;amp;version=9&amp;amp;context=verse&quot;&gt;Ecclesiastes 9:11&lt;/a&gt; into &quot;modern English&quot; from &lt;a href=&quot;http://www.mtholyoke.edu/acad/intrel/orwell46.htm&quot;&gt;Politics and the English Language&lt;/a&gt;, and of the introduction to &lt;a href=&quot;http://rogerebert.suntimes.com/&quot;&gt;Roger Ebert&lt;/a&gt;'s&lt;a href=&quot;http://rogerebert.suntimes.com/apps/pbcs.dll/article?AID=/20080518/REVIEWS/969461084&quot;&gt; review of &lt;span style=&quot;font-style: italic;&quot;&gt;Indiana Jones and the Kingdom of the Crystal Skull&lt;/span&gt;&lt;/a&gt;, which has these &lt;span style=&quot;font-style: italic;&quot;&gt;concrete&lt;/span&gt; words:&lt;br /&gt;&lt;blockquote&gt;The Indiana Jones movies were directed by &lt;a href=&quot;http://rogerebert.suntimes.com/apps/pbcs.dll/classifieds?category=search1&amp;amp;SearchType=1&amp;amp;q=Steven%20Spielberg&amp;amp;Class=%25&amp;amp;FromDate=19150101&amp;amp;ToDate=20081231&quot;&gt;Steven Spielberg&lt;/a&gt; and written &lt;br /&gt;by &lt;a href=&quot;http://rogerebert.suntimes.com/apps/pbcs.dll/classifieds?category=search1&amp;amp;SearchType=1&amp;amp;q=George%20Lucas&amp;amp;Class=%25&amp;amp;FromDate=19150101&amp;amp;ToDate=20081231&quot;&gt;George Lucas&lt;/a&gt; and a small army of screenwriters, but they exist in a &lt;br /&gt;universe of their own. Hell, they created it. All you can do is compare one to the other three. And even then, what will it get you? If you eat four pounds of sausage, how do you choose which pound tasted the best?&lt;/blockquote&gt;Such a capable meat.&lt;br /&gt;&lt;br /&gt;Neighbours are getting noisy again, time to plot my escape.</description>
	<pubDate>Sun, 22 Jun 2008 10:56:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Decisions Made</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-3912026690828012269</guid>
	<link>http://life.mumak.net/2008/06/decisions-made.html</link>
	<description>I've decided to move to Nick's place in Lindfield. I've spoken with my property manager and expect to move there in a couple of weeks time. I'll miss Glebe, but I'm sure I'll find ways to console myself.&lt;br /&gt;&lt;br /&gt;I've also decided to take a break from World of Warcraft and focus on Free Software for a bit.&lt;br /&gt;&lt;br /&gt;Also, I now own a brand new filing cabinet. It is so beautiful and oblong.</description>
	<pubDate>Tue, 17 Jun 2008 06:40:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Really Satisfying</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-2877195152772565777</guid>
	<link>http://code.mumak.net/2008/06/really-satisfying.html</link>
	<description>I have just returned from the shops with a Snickers bar. The packet says that one out of every six Snickers bars will instantly win me a free Snickers bar.&lt;br /&gt;&lt;br /&gt;So, &lt;em&gt;statistically speaking&lt;/em&gt;, how many Snickers bars do I have? Show working.</description>
	<pubDate>Fri, 13 Jun 2008 05:23:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Aren't code reviews great?</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-7643804025471441798</guid>
	<link>http://code.mumak.net/2008/06/aren-code-reviews-great.html</link>
	<description>Ben Sussman-Collins writes about &lt;a href=&quot;http://blog.red-bean.com/sussman/?p=96&quot;&gt;programmer insecurity&lt;/a&gt; and how a lot of programmers dread having others see their code.&lt;br /&gt;&lt;br /&gt;Some of the &lt;a href=&quot;http://jcalderone.livejournal.com&quot;&gt;best&lt;/a&gt; &lt;a href=&quot;http://robertcollins.net&quot;&gt;programmers&lt;/a&gt; &lt;a href=&quot;http://radix.twistedmatrix.com&quot;&gt;I've&lt;/a&gt; &lt;a href=&quot;http://sourcefrog.net&quot;&gt;worked&lt;/a&gt; &lt;a href=&quot;http://glyph.twistedmatrix.com&quot;&gt;with&lt;/a&gt; &lt;a href=&quot;http://python.net/crew/mwh/&quot;&gt;are&lt;/a&gt; in love with code reviews, and all great writers have editors. (The &quot;linked list&quot; is in no way exhaustive.)  Personally, I see reviews as being a great opportunity to learn.&lt;br /&gt;&lt;br /&gt;Sussman-Collins also writes about how distributed version control can exacerbate the &quot;isolated genius&quot; problem by shielding ones code from the public eye. This is definitely a big potential drawback of DVCS, but one that's largely mitigated by a culture of short-lived branches and &lt;a href=&quot;https://code.launchpad.net&quot;&gt;an easy-to-use public registry of all branches for a project&lt;/a&gt;.</description>
	<pubDate>Fri, 13 Jun 2008 04:37:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Another Bazaar story</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-622417601081979853</guid>
	<link>http://code.mumak.net/2008/06/another-bazaar-story.html</link>
	<description>I'm currently hacking away on Launchpad's support for &quot;&lt;a href=&quot;http://jam-bazaar.blogspot.com/2008/05/this-week-in-bazaar_29.html&quot;&gt;stacked branches&lt;/a&gt;&quot;, something that will really make Launchpad's codehosting a joy to use.&lt;br /&gt;&lt;br /&gt;At the moment, I'm writing some tests that require a user to login. This was becoming a bit cumbersome, until I remembered something: Tim has recently landed some code to make this easy. But how do I get these changes without messing up all of the work I'm doing now? bzr shelve to the rescue!&lt;br /&gt;&lt;br /&gt;'shelve' interactively goes through each change you've made to your current working tree and allows you to decide whether to keep a change or shelve it. It comes with a twin command 'unshelve', which lets you interactively restore your changes.&lt;br /&gt;&lt;br /&gt;In this case, I don't even care about the interactivity, so here's what I did:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# Shelve my changes&lt;br /&gt;bzr shelve --all&lt;br /&gt;# Fetch the latest trunk&lt;br /&gt;cd ../trunk&lt;br /&gt;bzr pull&lt;br /&gt;# Merge it into my branch&lt;br /&gt;cd ../stacking&lt;br /&gt;bzr merge ../trunk&lt;br /&gt;bzr ci -m &quot;Merge in changes from trunk to get login testing improvements.&quot;&lt;br /&gt;# Restore my changes&lt;br /&gt;bzr unshelve --all&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The 'shelve' command comes with the &lt;a href=&quot;http://launchpad.net/bzrtools&quot;&gt;bzrtools&lt;/a&gt; plugin, and I am basically in love with it.&lt;br /&gt;&lt;br /&gt;As a parting shot, I should mention that things like bzrtools aren't accidents. They are natural and inevitable when you have &lt;a href=&quot;http://starship.python.net/crew/mwh/bzrlibapi/bzrlib.html&quot;&gt;good APIs&lt;/a&gt; in a &lt;a href=&quot;http://python.org&quot;&gt;high-level language&lt;/a&gt; and a &lt;a href=&quot;http://bazaar-vcs.org/WritingPlugins&quot;&gt;very nice plugin system&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And now I'm off to keep working on this branch.&lt;br /&gt;&lt;br /&gt;</description>
	<pubDate>Fri, 13 Jun 2008 01:29:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Real Life</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-7465383142016112088</guid>
	<link>http://code.mumak.net/2008/06/real-life.html</link>
	<description>Inspired by &lt;a href=&quot;http://mikeylynch.blogspot.com&quot;&gt;Mikey&lt;/a&gt;, I've set up my own &lt;a href=&quot;http://life.mumak.net&quot;&gt;real-life blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've done this one using Blogger's &quot;upload to remote server&quot; feature. It looks nice, has the features I need and means less WordPress &amp;amp; PHP. I'm hoping to migrate this sucker to the same technology.</description>
	<pubDate>Thu, 05 Jun 2008 01:17:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Moving</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-8251916897471849149</guid>
	<link>http://life.mumak.net/2008/06/moving.html</link>
	<description>I've been living in a unit in Glebe for a few months now and am thinking of finding a sharehouse. In particular,  a sharehouse where everyone else has day jobs, so I can work from home without undue distraction.&lt;br /&gt;&lt;br /&gt;The dilemma I face is this: do I stay in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Inner_West&quot;&gt;Inner West&lt;/a&gt;, or do I move to the &lt;a href=&quot;http://en.wikipedia.org/wiki/North_Shore_%28Sydney%29&quot;&gt;North Shore&lt;/a&gt;? I &lt;span style=&quot;font-style: italic;&quot;&gt;like&lt;/span&gt; the Inner West more, but the North Shore is more convenient. O dilemma wretched! In particular, if I move to another place in the Inner West, then I should start to think seriously about switching to a more local church.&lt;br /&gt;&lt;br /&gt;That said, I'll be looking at a place in Lindfield on the weekend — let's see how it goes.</description>
	<pubDate>Thu, 05 Jun 2008 01:01:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Echo and Bounce: Back in Sydney</title>
	<guid>tag:blogger.com,1999:blog-1647806379173166054.post-1959807541122624890</guid>
	<link>http://life.mumak.net/2008/06/first-post.html</link>
	<description>I'm back in Sydney, &lt;span style=&quot;font-style: italic;&quot;&gt;really&lt;/span&gt; back, and I'm happy.&lt;br /&gt;&lt;br /&gt;A couple of weeks ago I was in Prague at the Ubuntu Developer Summit. Prague's a great looking city, and I hope I get to back there and explore it and enjoy some more Staropramen.&lt;br /&gt;&lt;br /&gt;Off to play some Mario Kart with &lt;a href=&quot;http://andrew.puzzling.org&quot;&gt;Andrew&lt;/a&gt;.</description>
	<pubDate>Tue, 03 Jun 2008 00:24:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Neat Bazaar feature</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-3847165362970608763</guid>
	<link>http://code.mumak.net/2008/06/neat-bazaar-feature_9205.html</link>
	<description>Ever find yourself working away on a branch, enjoying yourself and getting just a little carried away? Maybe you're working on a feature and you notice and fix a bug that's not strictly related to that feature.&lt;br /&gt;&lt;br /&gt;If you catch yourself in time, there's a nice little feature in Bazaar that can help with this: &lt;code&gt;bzr merge --uncommitted&lt;/code&gt;. It will merge in the changes that you've made to your working tree but haven't committed yet.&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ cd some-feature-branch&lt;br /&gt;&lt;br /&gt;... hack hack hack ... oops!&lt;br /&gt;&lt;br /&gt;$ cd ..&lt;br /&gt;&lt;br /&gt;$ bzr branch trunk bug-fix-2357&lt;br /&gt;&lt;br /&gt;$ cd bug-fix-2357&lt;br /&gt;&lt;br /&gt;$ bzr merge --uncommitted ../some-feature-branch&lt;br /&gt;&lt;br /&gt;$ bzr ci -m &quot;Fix up bug 2357. Found this while working on some-feature.&quot;&lt;br /&gt;&lt;br /&gt;$ bzr send&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Don't know what &lt;code&gt;bzr send&lt;/code&gt; does? Trust me, you want to find out.</description>
	<pubDate>Mon, 02 Jun 2008 03:28:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: What I meant</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-1749283964198347471</guid>
	<link>http://code.mumak.net/2008/04/what-i-meant_20.html</link>
	<description>&lt;a href=&quot;http://z3p.tumblr.com/&quot;&gt;z3p&lt;/a&gt; recently &lt;a href=&quot;http://z3p.tumblr.com/post/32324725&quot;&gt;blogged about&lt;/a&gt; a comment I made in &lt;a href=&quot;http://twistedmatrix.com/trac/ticket/2710&quot;&gt;a code review&lt;/a&gt;. In the review, I linked to:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;The only measure of code quality is WTFs / minute&quot; src=&quot;http://74.54.212.169/2ERcULhJC81alpg64P4WN7Of_400.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;That's a negative and grumpy way of phrasing an idea that I've come to value a lot: &lt;em&gt;good code expresses its intent clearly.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;When looking at a patch, the reviewer needs to understand two things: the intent of the code and the intent of each &lt;em&gt;change&lt;/em&gt; to the code. To be clear on the former, you need:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;intent-revealing names.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;good abstractions / interfaces.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;good, small tests.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;simple implementations where possible.[1]&lt;/li&gt;&lt;br /&gt; &lt;li&gt;docstrings where appropriate&lt;/li&gt;&lt;br /&gt; &lt;li&gt;comments where appropriate.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;That's not exhaustive, but it's in a rough order.&lt;br /&gt;&lt;br /&gt;To be clear on the intent of your change to code, you need:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;Small patches.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;A good bug / spec with a good, short summary.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;A review request letter, summarizing your implementation strategy, any compromises you made, gaps in testing, future work etc.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;That's not exhaustive either. In #2037, I didn't understand the motivation for lots of the code, nor for some of the changes to the code.&lt;br /&gt;&lt;br /&gt;I'm indebted to &lt;a href=&quot;http://andrew.puzzling.org&quot;&gt;Andrew Bennetts&lt;/a&gt; for teaching me that the first duty of a reviewer is to ensure that the code is clear and to &lt;a href=&quot;http://intellectronica.net/&quot;&gt;Tom Berger&lt;/a&gt; for reminding me that compromises are worth noting.&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;[1] Actually, this reminds me of something I heard &lt;a href=&quot;http://en.wikipedia.org/wiki/Don_Carson&quot;&gt;a preacher&lt;/a&gt; say, &quot;before I give a sermon, I go through it, find everything clever, and take it out&quot; (I paraphrase, not having a reference on hand).&lt;br /&gt;&lt;br /&gt;In as much as sermons and code should both be ego-free communications of ideas, I think this is sound advice for hackers.</description>
	<pubDate>Mon, 21 Apr 2008 01:39:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: bzr-removable</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-8216437880894786544</guid>
	<link>http://code.mumak.net/2008/04/bzr-removable_20.html</link>
	<description>The plugin I talked about in a previous post is now at https://launchpad.net/bzr-removable. Please file bugs.&lt;br /&gt;&lt;br /&gt;Thanks to Michael Hudson and Daniel Watkins for submitting patches.&lt;br /&gt;&lt;br /&gt;You can get the plugin by typing 'bzr branch lp:bzr-removable' on the command line.</description>
	<pubDate>Mon, 21 Apr 2008 01:04:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: OK I lied</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-8180273067340546851</guid>
	<link>http://code.mumak.net/2008/03/ok-i-lied_17.html</link>
	<description>The next post is actually about a Bazaar plugin that I've now got ready to share. To get it, 'bzr branch lp:~jml/+junk/merged-branches'.&lt;br /&gt;&lt;br /&gt;Once you've got it, run 'bzr merged-branches' in the trunk of your project. It will then show you all branches in sibling directories that are safe to delete.  That is,&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;They have no uncommitted changes.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;They have no &quot;unknown&quot; files. (Files outside of version control that haven't been explicitly ignored.)&lt;/li&gt;&lt;br /&gt; &lt;li&gt;They have no shelved changes. The plugin will only check for this if it can find bzrtools.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;The branch is now at the point where it works for me, but it still belongs in '+junk' — here's why:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;It assumes that you have a trunk branch in the same directory as all of your other branches.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;It assumes that branches and working trees are the same thing.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;It's called 'merged-branches' when it really means 'safe-to-delete'.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;It doesn't make it easy to see why a branch is &lt;em&gt;not&lt;/em&gt; safe to delete.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;It doesn't let you customize the conditions of the search. Maybe you want to see all branches with uncommitted changes.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Still, if you are like me and make a lot of branches, it's quite useful. I'll tolerate bugs, accept patches and welcome encouragement.</description>
	<pubDate>Tue, 18 Mar 2008 03:36:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: User Experience — When Reality Attacks</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-856842426077382069</guid>
	<link>http://code.mumak.net/2008/03/user-experience-when-reality-attacks_12.html</link>
	<description>I've just got back from a hectic week in London, where members of the Bazaar community got together and thrashed out a bunch of important topics.&lt;br /&gt;&lt;br /&gt;We talked about &quot;user experience&quot; and how we all want Bazaar to be a joy to use. More than one person said that we have been focusing too much on features and performance instead of user experience. The term was never really pinned down, but it's fair to say that there are things other than convenience and speed that affect how users feel while using Bazaar and that we need to work on those things, once we figure out what they are.&lt;br /&gt;&lt;br /&gt;I think I might know the name of one of them: &lt;em&gt;errors&lt;/em&gt;. Next post: &quot;Notes on error&quot;.</description>
	<pubDate>Wed, 12 Mar 2008 23:24:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Three-ways on Pidgin?</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-3364492924699447727</guid>
	<link>http://code.mumak.net/2008/02/three-ways-on-pidgin.html</link>
	<description>Dear Lazyweb,&lt;br /&gt;&lt;br /&gt;How do I initiate a three-way chat with Pidgin 2.2.1?&lt;br /&gt;&lt;br /&gt;jml</description>
	<pubDate>Sun, 17 Feb 2008 23:04:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: What I do all day</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-6629816907072968862</guid>
	<link>http://code.mumak.net/2008/02/what-i-do-all-day_14.html</link>
	<description>Kick-arse summary here: &lt;a href=&quot;http://news.launchpad.net/general/the-great-source-code-supermarket&quot;&gt;The great source code supermarket. &lt;/a&gt;</description>
	<pubDate>Fri, 15 Feb 2008 05:57:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: The Economist Index</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-4242706117573763571</guid>
	<link>http://code.mumak.net/2008/02/economist-index_10.html</link>
	<description>&lt;em&gt;The Economist&lt;/em&gt; occasionally publishes a &quot;Big Mac Index&quot; — how much the world's favorite &quot;burger&quot; costs in each country, translated into a common currency.&lt;br /&gt;&lt;br /&gt;Why they don't publish an index of how much an issue of the Economist costs?  All of my issues have the price of the newspaper in lots of Asia-Pacific currencies. A small sample:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;Australia, 9.39855 USD&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Cambodia, 6.00 USD&lt;/li&gt;&lt;br /&gt; &lt;li&gt;China, 10.43655 USD&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Hong Kong, 7.6917 USD&lt;/li&gt;&lt;br /&gt; &lt;li&gt;India, 5.0522 USD&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Japan, 10.70535 USD&lt;/li&gt;&lt;br /&gt; &lt;li&gt;New Zealand, 8.6669 USD&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Can anyone tell me why the price varies so much?</description>
	<pubDate>Mon, 11 Feb 2008 04:10:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: WoW account temporarily suspended</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-2664744142478569103</guid>
	<link>http://code.mumak.net/2007/12/wow-account-temporarily-suspended_09.html</link>
	<description>Howdy Partners,&lt;br /&gt;&lt;br /&gt;My World of Warcraft account is temporarily suspended for silly administrative reasons. I'm not in any rush to clear those up, so don't expect to see me on Khaz'goroth or Frostmourne any time soon.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;jml</description>
	<pubDate>Mon, 10 Dec 2007 01:43:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Obligatory</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-2253350668000150768</guid>
	<link>http://code.mumak.net/2007/11/obligatory_8590.html</link>
	<description>Not using Facebook anymore.&lt;br /&gt;&lt;br /&gt;Have fun kids.</description>
	<pubDate>Wed, 14 Nov 2007 15:02:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Fake Plastic Tests</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-5546272330234125045</guid>
	<link>http://code.mumak.net/2007/10/fake-plastic-tests_22.html</link>
	<description>Ever wondered what's the difference between a &lt;code&gt;FakeReactor&lt;/code&gt;, a &lt;code&gt;StubReactor&lt;/code&gt; and a &lt;code&gt;MockReactor&lt;/code&gt;? Find out in this brief article on &lt;a href=&quot;http://mumak.net/test-doubles&quot;&gt;test doubles&lt;/a&gt;.&lt;br /&gt;</description>
	<pubDate>Tue, 23 Oct 2007 02:40:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: The most retentive thing I've done</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-2851328684107820408</guid>
	<link>http://code.mumak.net/2007/10/most-retentive-thing-i-done_16.html</link>
	<description>&lt;img alt=&quot;I labelled my pens&quot; src=&quot;http://tusk.mumak.net/Blog-20071016/Retentive-Pens-2.jpg&quot; title=&quot;I'm still not sure about publishing this&quot; width=&quot;400&quot; /&gt;</description>
	<pubDate>Tue, 16 Oct 2007 08:15:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Cracked Mac</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-7143752197387030539</guid>
	<link>http://code.mumak.net/2007/10/cracked-mac.html</link>
	<description>OK, I've started with this whole &lt;q&gt;photography&lt;/q&gt; thing, I might as well run with it.&lt;br /&gt;&lt;br /&gt;My Mac cracked:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Cracked Macbook&quot; src=&quot;http://tusk.mumak.net/Blog-20071016/Cracked-Laptop-2.jpg&quot; title=&quot;Designed by Apple in California&quot; /&gt;</description>
	<pubDate>Tue, 16 Oct 2007 08:09:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Around like Grover</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-5261835241457980208</guid>
	<link>http://code.mumak.net/2007/10/around-like-grover.html</link>
	<description>What's up hep-cats?&lt;br /&gt;&lt;br /&gt;I've been travelling around the world, weaving in and out of timezones like Jason Bourne navigates facial expressions. Last week's adventure took me to tropical Dunedin — the southiest outpost of Canonical Ltd. (I'm trying to get a mention on &lt;a href=&quot;http://itre.cis.upenn.edu/~myl/languagelog/&quot;&gt;Language Log&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;Those few Hobartians who keep reading will notice that Dunedin, well, umm... here's a photo:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;View of Dunedin&quot; src=&quot;http://tusk.mumak.net/Blog-20071016/Dunedin-View.jpg&quot; title=&quot;Dunedin during rush hour&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Pay careful attention to the hills in the background.</description>
	<pubDate>Tue, 16 Oct 2007 08:06:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Five Years</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-358510319793773286</guid>
	<link>http://code.mumak.net/2007/09/five-years.html</link>
	<description>That's not quite how long it took &lt;a href=&quot;http://code.mumak.net/glyf.livejournal.com&quot;&gt;Glyph&lt;/a&gt; to write a post explaining what he meant when he told me that &lt;a href=&quot;http://glyf.livejournal.com/72505.html&quot;&gt;xUnit should use the visitor pattern instead of the composite pattern&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm going to write a more detailed response later, God willing. I just wanted to flag the post and say thanks to Glyph for finally posting it — the &lt;a href=&quot;http://mumak.net/2007/08/20/let-the-beat-drop/&quot;&gt;hassling&lt;/a&gt; must have worked.</description>
	<pubDate>Mon, 17 Sep 2007 03:35:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: It's a Gibbon</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-5557701058215689402</guid>
	<link>http://code.mumak.net/2007/09/it-gibbon.html</link>
	<description>Over the weekend I upgraded my laptop to &lt;a href=&quot;http://www.ubuntu.com&quot;&gt;Ubuntu 7.10&lt;/a&gt; aka &quot;The Gutsy Gibbon&quot;.&lt;br /&gt;&lt;br /&gt;Obvious improvements include having Pidgin installed and a much superior version of Deskbar. There's also a swanky new panel to actually control display settings (dual monitor and all that jazz). Unfortunately, I can't quite get it to work just yet. My 22&quot; 1680x1058 LCD will just have to sit there, gathering dust :(&lt;br /&gt;&lt;br /&gt;In another weirdness, all of my fonts are suddenly much, much bigger. I had to resize everything down to 8 or 9 to make them sane.&lt;br /&gt;&lt;br /&gt;My &lt;a href=&quot;http://peadrop.com/blog/2007/01/06/pretty-emacs/&quot;&gt;pretty Emacs&lt;/a&gt; has also stopped working, but that's to be expected. It's a third-party package that hasn't yet been built for Gutsy.&lt;br /&gt;&lt;br /&gt;Other than that, seems to be a fairly routine upgrade. Is there anything exciting that I've missed?</description>
	<pubDate>Mon, 10 Sep 2007 00:07:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Merging New trunk Features to a Development Branch (redux)</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-7272353249070931637</guid>
	<link>http://code.mumak.net/2007/09/merging-new-trunk-features-to.html</link>
	<description>&lt;a href=&quot;http://oubiwann.blogspot.com/&quot;&gt;Oubiwann&lt;/a&gt; has &lt;a href=&quot;http://oubiwann.blogspot.com/2007/09/merging-new-trunk-features-to.html&quot;&gt;recently posted&lt;/a&gt; about the joys of using &lt;a href=&quot;http://divmod.org/trac/wiki/DivmodCombinator&quot;&gt;Combinator&lt;/a&gt; to do branch-based development using Subversion. I thought it'd be fun to do the same post, except this time with Bazaar.&lt;br /&gt;&lt;h3&gt;Background&lt;/h3&gt;&lt;br /&gt;You're working on a project called &quot;Project&quot;, you have a copy of the mainline branch (i.e. 'trunk') in your &lt;code&gt;src&lt;/code&gt; directory.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~$ cd ~/src/Project&lt;br /&gt;~/src/Project$ ls&lt;br /&gt;trunk&lt;/pre&gt;&lt;br /&gt;You want to implement a new feature, so you branch trunk to work on it:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~/src/Project$ bzr branch trunk viking-feature-836&lt;/pre&gt;&lt;br /&gt;Bazaar is a version control system, not a PYTHONPATH-managing system, so it doesn't maintain a global list of projects and the branches that are currently active for each project.&lt;br /&gt;&lt;br /&gt;Perhaps your company focuses on historical invasions of Britain. You decide to start work on another feature:&lt;br /&gt;lass objects.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~/src/Project$ bzr branch trunk norman-feature-1066&lt;/pre&gt;&lt;br /&gt;You multi-task for a bit, until you finish 'viking-feature'. You decide to merge 'viking-feature-836' into trunk.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~/src/Project$ cd trunk&lt;br /&gt;~/src/Project/trunk$ bzr merge ../viking-feature-836&lt;br /&gt;~/src/Project/trunk$ bzr ci&lt;/pre&gt;&lt;br /&gt;At this point, you begin to suspect that Bazaar treats branches as first-class objects. However, at this point, a developer on the obverse side of your continent calls you,&lt;br /&gt;&lt;br /&gt;&quot;Where's your viking feature? I need it to invade Britain!&quot;&lt;br /&gt;&lt;br /&gt;&quot;I've just put it into trunk. Have you got the latest copy?&quot;&lt;br /&gt;&lt;br /&gt;&quot;Yeah, I do, I just pulled from trunk.&quot;&lt;br /&gt;&lt;br /&gt;&quot;It's in trunk, you fool! ... Oh, wait, gimme a sec.&quot;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~/src/Project/trunk$ bzr push&lt;br /&gt;Pushing to bzr+ssh://bzr.example.com/Project/trunk...&lt;br /&gt;~/src/Project/trunk$&lt;/pre&gt;&lt;br /&gt;&quot;Try now.&quot;&lt;br /&gt;&lt;h3&gt;Merging&lt;/h3&gt;&lt;br /&gt;OK, enough background, let's merge.&lt;br /&gt;&lt;br /&gt;Say you need some of the changes in trunk in order to finish work on your norman feature. No problems.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~/src/Project$ bzr merge trunk norman-feature-1066&lt;br /&gt;~/src/Project$ bzr ci -m &quot;Merge from trunk.&quot;&lt;/pre&gt;&lt;br /&gt;It's hard not to feel smug at this point.&lt;br /&gt;&lt;br /&gt;Wait a second, you also want to look at the experimental branch that a friend is working on:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~/src/Project/norman-feature-1066$ bzr merge bzr+ssh://yourfriend.example.com/branches/sealion-1946&lt;br /&gt;~/src/Project/norman-feature-1066$ bzr diff | less # better double check this one&lt;br /&gt;~/src/Project/norman-feature-1066$ bzr revert # nope, doesn't seem like a good idea&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Summary&lt;/h3&gt;&lt;br /&gt;Bazaar treats branches as first-class objects and treats trunk just like any other branch. Although Combinator is great for branch-based development in Subversion, it is more complex and less flexible than doing branch-based development in Bazaar.&lt;br /&gt;&lt;br /&gt;With Combinator, you lose history when you merge in changes from trunk, with Bazaar you don't.&lt;br /&gt;&lt;br /&gt;With Combinator, you can only merge in changes from trunk, with Bazaar you can merge from any branch.&lt;br /&gt;&lt;br /&gt;With Combinator, merging from trunk leaves a bunch of changed files in the trunk checkout on your system (this has tripped me up more than once). With Bazaar, this doesn't happen.</description>
	<pubDate>Tue, 04 Sep 2007 23:37:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>
<item>
	<title>Mere Code: Tired Hippo</title>
	<guid>tag:blogger.com,1999:blog-5733547231775030285.post-6793167041085155927</guid>
	<link>http://code.mumak.net/2007/07/tired-hippo.html</link>
	<description>&lt;blockquote&gt;Chronomancy... is generally a fictional and sensational school of magic. Although the school is based on quantum physics and certain scientific theories, there is no concrete evidence of the perfected use of time manipulation.&lt;/blockquote&gt;&lt;br /&gt;Thank you Wikipedia.</description>
	<pubDate>Tue, 21 Aug 2007 05:45:00 +0000</pubDate>
	<author>noreply@blogger.com (jml)</author>
</item>

</channel>
</rss>
