<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:ent="http://www.purl.org/NET/ENT/1.0/" version="2.0">
  <channel>
    <title>Curiouser and Curiouser!</title>
    <link>http://matt.blogs.it/</link>
    <description>Curiouser and Curiouser is the weblog of Matt Mower. I love developing software in Ruby and Objective-C. I'm also a budding libertarian.</description>
    <copyright>Copyright 2008 Matt Mower. Some rights reserved.</copyright>
    <generator>Squib/0.5.0.382</generator>
    <managingEditor>self@mattmower.com</managingEditor>
    <webMaster>self@mattmower.com</webMaster>
    <language>en-gb</language>
    <item>
      <title>Catching a break</title>
      <link>http://matt.blogs.it/entries/00002909.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2909&amp;link=http://matt.blogs.it/entries/00002909.html</comments>
      <pubDate>Sat, 06 Sep 2008 10:55:30 +0100</pubDate>
      <description>&lt;p&gt;My friend Graham Sadd is &lt;a href="http://www.justgiving.com/grahamsadd"&gt;sleeping rough for a night&lt;/a&gt; as part of an annual IT-industry charity event in support of &lt;a href="http://www.nch.org.uk/"&gt;NCH&lt;/a&gt; (National Children's Homes -- I had to look it up).&lt;/p&gt;

&lt;p&gt;Graham's has quite a lot of success in his life, yet he has always acknowledged that luck has played a part and, perhaps as a result, seems naturally to want to support others where he can. This attitude towards people, which I wish I could emulate better, is part of what makes him such a great person to know.&lt;/p&gt;

&lt;p&gt;You may not be lucky enough to know Graham, yet I hope you will follow the link, read about the event, and think of supporting him on Oct 3rd,&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002909.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="charity" ent:classification="user" ent:href="http://matt.blogs.it/topics/charity.xml"/>
        <ent:topic ent:id="graham-sadd" ent:classification="user" ent:href="http://matt.blogs.it/topics/graham-sadd.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Be honest</title>
      <link>http://matt.blogs.it/entries/00002908.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2908&amp;link=http://matt.blogs.it/entries/00002908.html</comments>
      <pubDate>Wed, 03 Sep 2008 20:34:08 +0100</pubDate>
      <description>&lt;p&gt;you're surprised I held out this long aren't you?&lt;/p&gt;

&lt;p&gt;I'm talking about the iPhone 3G i bought this afternoon. I've put up with the Nokia N75 long enough - it was time to end the horror. Okay, to give it it's due, the N75 was just about adequate as a phone.&lt;/p&gt;

&lt;p&gt;I will miss the tethering capability. I'm unhappy about the 18 month contract. But other than that it's all good. I've nothing bad to say about T-Mobile. They just don't carry the iPhone, sorry.&lt;/p&gt;

&lt;p&gt;Update: It's an N73, not an N75.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002908.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="iphone" ent:classification="user" ent:href="http://matt.blogs.it/topics/iphone.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>It's not just Venice that's sinking fast</title>
      <link>http://matt.blogs.it/entries/00002907.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2907&amp;link=http://matt.blogs.it/entries/00002907.html</comments>
      <pubDate>Wed, 03 Sep 2008 14:20:19 +0100</pubDate>
      <description>&lt;p&gt;One of the problems with being on the Avaaz mailing list is that you start to become aware of just how many crises are affecting the lives of people all over the world.&lt;/p&gt;

&lt;p&gt;The latest is the effect of rising sea levels on island populations and, in particular, small islands like Palau in the pacific ocean. Here is what their president had to say:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;"Palau has lost at least one third of its coral reefs due to climate change related weather patterns. We also lost most of our agricultural production due to drought and extreme high tides. These are not theoretical, scientific losses -- they are the losses of our resources and our livelihoods.... For island states, time is not running out. It has run out. And our path may very well be the window to your own future and the future of our planet"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Avaaz are trying to &lt;a href="http://www.avaaz.org/en/sos_small_islands/?cl=123212270&amp;amp;v=2098"&gt;deliver a petition&lt;/a&gt; in support of the islanders and other affected to the UN Security Council in the hope that they will take action.&lt;/p&gt;

&lt;p&gt;All the environmental news lately is disturbing. Lakes of plastic garbage the size of the US floating on the ocean, large parts of our water mass turned into polluted sludge, Arctic ice melting fast, floods and droughts. Avaaz, in their newsletter, suggest that Bangladesh (pop. 150 million) is going to lose a large part of its landmass.&lt;/p&gt;

&lt;p&gt;It kind of feels like, as a species, we are fiddling while Rome burns.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002907.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="avaaz" ent:classification="user" ent:href="http://matt.blogs.it/topics/avaaz.xml"/>
        <ent:topic ent:id="environment" ent:classification="user" ent:href="http://matt.blogs.it/topics/environment.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Beatmaker</title>
      <link>http://matt.blogs.it/entries/00002906.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2906&amp;link=http://matt.blogs.it/entries/00002906.html</comments>
      <pubDate>Mon, 01 Sep 2008 16:25:22 +0100</pubDate>
      <description>&lt;p&gt;My dad bought a copy of &lt;a href="http://www.intua.net/products.html"&gt;Beatmaker&lt;/a&gt; yesterday after I was telling him about it and showed him &lt;a href="http://www.vimeo.com/1357796"&gt;this video&lt;/a&gt;. We were both pretty blown away by how cool it is. I'm rethinking &lt;a href="http://matt.blogs.it/entries/00002901.html"&gt;my stance on the app store&lt;/a&gt; if I could just come up with an idea worth building.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002906.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="iphone" ent:classification="user" ent:href="http://matt.blogs.it/topics/iphone.xml"/>
        <ent:topic ent:id="app-store" ent:classification="user" ent:href="http://matt.blogs.it/topics/app-store.xml"/>
        <ent:topic ent:id="apple" ent:classification="user" ent:href="http://matt.blogs.it/topics/apple.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>My truth about testing</title>
      <link>http://matt.blogs.it/entries/00002905.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2905&amp;link=http://matt.blogs.it/entries/00002905.html</comments>
      <pubDate>Mon, 01 Sep 2008 16:13:19 +0100</pubDate>
      <description>&lt;p&gt;I'm reading Rick Bradley's post on &lt;a href="http://b.logi.cx/2007/11/26/object-daddy"&gt;Object Daddy&lt;/a&gt;. Testing on &lt;a href="http://reeplay.it/"&gt;reeplay.it&lt;/a&gt; has gone through phases. First there was a little &lt;code&gt;Test::Unit&lt;/code&gt; then there was not so much of that. Then &lt;code&gt;RSpec&lt;/code&gt; reared its head. We got about 80% through converting the tests across which was useful because a lot of the old tests were rotten and the new specs were better. In the process we went from fixtures, to rathole fixtures, to mocks, to mocks + rathole fixtures + desperation.&lt;/p&gt;

&lt;p&gt;In many cases when I get frustrated with the setup cost for mocks I think it is because my controller has too many responsibilities. Rethinking what the controller is doing and pushing responsibilities down into the models often makes things easier. Yet mocks still, often, seem to have quite a setup cost.&lt;/p&gt;

&lt;p&gt;Fixtures hold out the promise (if never the actuality) of a sensible data set. Mocks hold out (and to a great extent deliver) the promise of avoiding the database and hiding the details not relevant to a test. I'm hoping ObjectDaddy might bridge the two worlds.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002905.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="testing" ent:classification="user" ent:href="http://matt.blogs.it/topics/testing.xml"/>
        <ent:topic ent:id="rspec" ent:classification="user" ent:href="http://matt.blogs.it/topics/rspec.xml"/>
        <ent:topic ent:id="mock-objects" ent:classification="user" ent:href="http://matt.blogs.it/topics/mock-objects.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Hoptoad</title>
      <link>http://matt.blogs.it/entries/00002904.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2904&amp;link=http://matt.blogs.it/entries/00002904.html</comments>
      <pubDate>Wed, 20 Aug 2008 14:26:25 +0100</pubDate>
      <description>&lt;p&gt;Taking my cue from &lt;a href="http://blog.caronsoftware.com/2008/8/19/hop-toad"&gt;Scott&lt;/a&gt; I implemented the &lt;a href="http://hoptoadapp.com/"&gt;Hoptoad exception catcher&lt;/a&gt; in &lt;a href="http://reeplay.it/"&gt;reeplay.it&lt;/a&gt;. It was a breeze to implement even though we had a customized ExceptionNotifier plugin. Their interface is clean and I like that it clearly shows the environment the exception occurred in. &lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002904.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="rails" ent:classification="user" ent:href="http://matt.blogs.it/topics/rails.xml"/>
        <ent:topic ent:id="plugins" ent:classification="user" ent:href="http://matt.blogs.it/topics/plugins.xml"/>
        <ent:topic ent:id="exceptions" ent:classification="user" ent:href="http://matt.blogs.it/topics/exceptions.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Digging Tumblr</title>
      <link>http://matt.blogs.it/entries/00002903.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2903&amp;link=http://matt.blogs.it/entries/00002903.html</comments>
      <pubDate>Wed, 20 Aug 2008 11:01:16 +0100</pubDate>
      <description>&lt;p&gt;I'm really enjoying the ease and freedom Tumblr brings. When I write on this blog I feel the need to be consistent with how I have used it before. It has constraints which keep a lot of things out of it. &lt;a href="http://oddments.tumblr.com/"&gt;Oddments&lt;/a&gt; has different constraints and that creates a sense of new possibilities.&lt;/p&gt;

&lt;p&gt;At the moment I am going to try and use Tumblr to capture the emphemeral thoughts, ideas, content of the moment, because that seems to be what it's very good at. Hopefully that will relieve the sense of tension I have developed about this blog and the functions it does not satisfy.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002903.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="blogging" ent:classification="user" ent:href="http://matt.blogs.it/topics/blogging.xml"/>
        <ent:topic ent:id="tumblr" ent:classification="user" ent:href="http://matt.blogs.it/topics/tumblr.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Change of format</title>
      <link>http://matt.blogs.it/entries/00002902.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2902&amp;link=http://matt.blogs.it/entries/00002902.html</comments>
      <pubDate>Tue, 19 Aug 2008 21:32:56 +0100</pubDate>
      <description>&lt;p&gt;This blog isn't going anywhere (in more ways than one) but as an experiment I am going to use Tumblr to collect &lt;a href="http://oddments.tumblr.com/"&gt;oddments&lt;/a&gt;.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002902.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="blogging" ent:classification="user" ent:href="http://matt.blogs.it/topics/blogging.xml"/>
        <ent:topic ent:id="tumblr" ent:classification="user" ent:href="http://matt.blogs.it/topics/tumblr.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>No market. No motivation.</title>
      <link>http://matt.blogs.it/entries/00002901.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2901&amp;link=http://matt.blogs.it/entries/00002901.html</comments>
      <pubDate>Tue, 19 Aug 2008 10:23:33 +0100</pubDate>
      <description>&lt;p&gt;Despite a re-warmed interest in all things Cocoa I find myself curiously unmotivated in developing applications for the iPhone platform. I think &lt;a href="http://stevenf.com/archive/on-the-app-store.php"&gt;this post&lt;/a&gt; by Steven Frank, of Panic software, offers some leads on my own lack of motivation:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;I've been trying to reconcile the App Store with my beliefs on "how things should be" ever since the SDK was announced. After all this time, I still can't make it all line up. I can't question that it's probably the best mobile application distribution method yet created, but every time I use it, a little piece of my soul dies. And we don't even have anything for sale on there yet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He enumerates something akin to a "developers bill of rights" and goes on to note how the App Store violates the spirit underlying each of them. I don't think I've ever thought in these terms before but that may be because I've never been presented with an environment so hard nosed about what is actually possible.&lt;/p&gt;

&lt;p&gt;Note "possible" not "easy."&lt;/p&gt;

&lt;p&gt;The whole opinionated software movement (epitomized by Ruby on Rails) is about saying "This is the way we think it should be. If you follow the path things will be easy, to the extent that you stray off the path they will become more difficult."&lt;/p&gt;

&lt;p&gt;Note "difficult" not "impossible."&lt;/p&gt;

&lt;p&gt;There is an unbridgeable gulf between things being difficult and things being impossible. The App Store seems to make a lot of things impossible at Apple's discretion.&lt;/p&gt;

&lt;p&gt;When I first came across the "I am Rich" application I thought it was a brilliant idea. The restrictions of the App Store made it like a piece of digital jewelry. If the app could be freely copied it would be pointless. But because of the DRM anyone who cared enough could have an exclusive piece of digital art|jewelry|crap.&lt;/p&gt;

&lt;p&gt;Now I'm not saying I'd ever buy it. But then I wouldn't buy a &amp;pound;16,000 gold plated Nokia mobile phone either. Yet, if you hang around the mobile phone section in Selfridges on a Saturday you will probably find some wealthy idiot buying his girlfriend one of these.&lt;/p&gt;

&lt;p&gt;My point is that the wealthy idiots want the crappy bling phone and someone makes a lot of money selling it to them. &lt;strong&gt;And since nobody is being coerced there is nothing wrong with this.&lt;/strong&gt; I think it is the same argument for &lt;code&gt;I am Rich&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I was incredulous at the number of developers jumping on some kind of socialist "Applications on the App Store should only be pure and holy" bandwagon. What the fuck is with that? Don't you want to write an app that people will pay you a lot of money for? Okay maybe you don't but why piss in the pot of those that do? And sure I would rather my expensive app did something useful but &lt;strong&gt;it takes all sorts of people to make a market.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What we have learned is that Apple seem to be willing to deform the App Store market simply because some people whine about it. Who knows what half-assed decision they will make next. Maybe it will be your app that people whinge about or, worse yet, my app. If someone is going to mess with my rice bowl they'd better have a better reason than a bunch of whiners complaining that it offends their delicate sensibilities by only glowing red.&lt;/p&gt;

&lt;p&gt;Okay maybe it's not so much of a mystery why my interest in writing Cocoa Touch apps is, effectively, zero. I'm quite happy to buy apps for my iPod Touch. But the way today's App Store operates for developers is nothing I want a piece of.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002901.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="iphone" ent:classification="user" ent:href="http://matt.blogs.it/topics/iphone.xml"/>
        <ent:topic ent:id="appstore" ent:classification="user" ent:href="http://matt.blogs.it/topics/appstore.xml"/>
        <ent:topic ent:id="business" ent:classification="user" ent:href="http://matt.blogs.it/topics/business.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Turning noise back into signal</title>
      <link>http://matt.blogs.it/entries/00002900.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2900&amp;link=http://matt.blogs.it/entries/00002900.html</comments>
      <pubDate>Mon, 18 Aug 2008 20:25:27 +0100</pubDate>
      <description>&lt;p&gt;My DG834 &lt;a href="http://matt.blogs.it/entries/00002899.html"&gt;stats daemon&lt;/a&gt; has been collecting data all day, some 3387 samples at last count. Since &lt;a href="http://www.apple.com/iwork/numbers/"&gt;Apple's Numbers&lt;/a&gt; (no matter how pretty) makes an appalling data analysis tool I turned instead to &lt;a href="http://www.r-project.org/"&gt;R&lt;/a&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;samples &amp;lt;- read.csv( '/Users/matt/Projects/ruby/dg834statsd/log/dg834.csv', header = FALSE )
attach(samples)
data &amp;lt;- table(V4)
plot( data )
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It took me 5 minutes with my copy of Statistics: An introduction using R to remember the &lt;code&gt;&amp;lt;-&lt;/code&gt; and &lt;code&gt;attach&lt;/code&gt; invocations needed, otherwise generating the data was a breeze. Here are the raw numbers:&lt;/p&gt;

&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Margin&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samples&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;187&lt;/td&gt;&lt;td&gt;361&lt;/td&gt;&lt;td&gt;161&lt;/td&gt;&lt;td&gt;187&lt;/td&gt;&lt;td&gt;2474&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;and a basic plot:&lt;/p&gt;

&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/mattmower/uipn/quartz-2"&gt;&lt;img src="http://img.skitch.com/20080818-ducsmaa2935q6p4rafgar97m1f.preview.jpg" alt="Quartz 2 [*]" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"&gt;Uploaded with &lt;a href="http://plasq.com/"&gt;plasq&lt;/a&gt;'s &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;All of which shows that my connection is &lt;em&gt;fairly&lt;/em&gt; stable except for those moments when it's not. Given that there are no 2's or 3's at all and the margin is solidly 9, not 6, something seems to have changed since Friday. Given that there are 4's and 5's I'm hoping that the new line filter has improved things and some effort from BT might improve them further. It's possible of course that BT have responded to Nildram's fault ticket and this is as good as it will get.&lt;/p&gt;

&lt;p&gt;I also note that I have connected at 5.4mbps today which is about 1mbps slower than normal. In ways I don't quite follow I think this may be connected to a higher margin when the connection was established. But at 5+mbps I'd certainly trade a little speed for not getting constantly disconnected. And I haven't noticed being disconnected today.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002900.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="adsl" ent:classification="user" ent:href="http://matt.blogs.it/topics/adsl.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>DG834 stats daemon</title>
      <link>http://matt.blogs.it/entries/00002899.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2899&amp;link=http://matt.blogs.it/entries/00002899.html</comments>
      <pubDate>Mon, 18 Aug 2008 11:24:35 +0100</pubDate>
      <description>&lt;p&gt;Since I moved I've had a lot of problems with my ADSL connection intermittently dropping out for as much as 10-15 seconds. While any drop-out is annoying because it interrupts my browser, gmail, loses my IRC and iChat connections and so on, it's back quickly enough that I'm not motivated to complain. Last Friday, however, it dropped out for nearly 30 minutes and that's over the line.&lt;/p&gt;

&lt;p&gt;Three months ago when the BT engineer came to install my line (the previous tenant having moved it elsewhere) he tested it and told me it was good for a line of this length (I'm about 1.5km from the exchange IIRC). However testing on Friday the Nildram engineer told me that the signal-to-noise ratio was too low.&lt;/p&gt;

&lt;p&gt;I have a DG834v1 ADSL router with a web interface. Whenever I went and checked the noise margin was about 6db. According to the engineer 6 is very marginal and is the lower limit the DSLAM requires to hold onto the ADSL connection. During testing I saw it drop below 6. Presumably this is the reason for my dropouts.&lt;/p&gt;

&lt;p&gt;He thought that the intermittent nature of the problem meant it was most likely my line but suggested swapping my line filter as a precaution.&lt;/p&gt;

&lt;p&gt;After changing the line filter I noticed this morning that my noise margin was 9. Then it was 4. Then it was 9 again. I decided it was time to get serious about tracking this. I didn't fancy scraping the website, but It &lt;a href="http://www.beforum.co.uk/showthread.php?t=9449"&gt;turns out that&lt;/a&gt; the DG834 has a &lt;code&gt;telnet&lt;/code&gt; interface that you can turn on.&lt;/p&gt;

&lt;p&gt;The DG834 runs linux and, with some reading, I was able to find the right file containing the ADSL stats (most instructions are for the v3, mine is a v1). From there it was childs play to cook up a Ruby daemon that makes a telnet connection to the router and periodically captures the ADSL line info to a file.&lt;/p&gt;

&lt;p&gt;In case it's of interest I've put my &lt;a href="http://github.com/mmower/dg834statsd/tree/master"&gt;dg834statsd code up on github&lt;/a&gt;. Every 10 seconds it logs the ADSL line info to disk in both CSV and JSON formats. Here's a sample of the output:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;1219054558,5440,39,7,646766160,832,25,6,189435360
1219054568,5440,39,9,646766448,832,25,6,189435600
1219054578,5440,39,9,646766928,832,25,6,189435936
1219054588,5440,39,9,646774800,832,25,6,189441360
1219054598,5440,39,5,646775328,832,25,6,189441696
1219054608,5440,39,9,646776240,832,25,6,189442320
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The columns are &lt;code&gt;time&lt;/code&gt;, &lt;code&gt;downstream line speed&lt;/code&gt;, &lt;code&gt;downstream attenuation&lt;/code&gt;, &lt;code&gt;downstream margin&lt;/code&gt;, &lt;code&gt;downstream transferred&lt;/code&gt;, &lt;code&gt;upstream line speed&lt;/code&gt;, &lt;code&gt;upstream attenuation&lt;/code&gt;, &lt;code&gt;upstream margin&lt;/code&gt;, &lt;code&gt;upstream transferred&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now I can easily track my S/N margin in semi-realtime and will have some useful stats for the Nildram guys when I phone them back.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002899.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="ruby" ent:classification="user" ent:href="http://matt.blogs.it/topics/ruby.xml"/>
        <ent:topic ent:id="adsl" ent:classification="user" ent:href="http://matt.blogs.it/topics/adsl.xml"/>
        <ent:topic ent:id="netgear" ent:classification="user" ent:href="http://matt.blogs.it/topics/netgear.xml"/>
        <ent:topic ent:id="router" ent:classification="user" ent:href="http://matt.blogs.it/topics/router.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Wherein I prove that not all dissatisfaction is created equal</title>
      <link>http://matt.blogs.it/entries/00002898.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2898&amp;link=http://matt.blogs.it/entries/00002898.html</comments>
      <pubDate>Tue, 12 Aug 2008 14:38:00 +0100</pubDate>
      <description>&lt;blockquote&gt;
    &lt;p&gt;"Happiness, the nirvana of senses and aspirations, kills creativity and innovation that are born from needs and wants." In Naish's words: "Dissatisfaction is the driver of human endeavour". -- [&lt;a href="http://www.core77.com/blog/book_reviews/on_the_value_of_dissatisfaction_10778.asp"&gt;On the value of dissatisfaction&lt;/a&gt;]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My problem with this theory:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I am among the most dissatisfied people I know&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why, then, am I not a creative mastermind?&lt;/p&gt;

&lt;p&gt;Clearly not all dissatisfaction is created equal. There's probably good money to be made here somewhere and it just makes me more angry that I don't know where!&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002898.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="creativity" ent:classification="user" ent:href="http://matt.blogs.it/topics/creativity.xml"/>
        <ent:topic ent:id="psychology" ent:classification="user" ent:href="http://matt.blogs.it/topics/psychology.xml"/>
        <ent:topic ent:id="life" ent:classification="user" ent:href="http://matt.blogs.it/topics/life.xml"/>
        <ent:topic ent:id="happiness" ent:classification="user" ent:href="http://matt.blogs.it/topics/happiness.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Compiled code culture</title>
      <link>http://matt.blogs.it/entries/00002897.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2897&amp;link=http://matt.blogs.it/entries/00002897.html</comments>
      <pubDate>Sun, 10 Aug 2008 19:18:56 +0100</pubDate>
      <description>&lt;p&gt;I was talking with someone recently about a Cocoa application I was writing that had a custom view. He asked me how I'd implemented the view, mentioning that not many Cocoa developers tend to share their source code.&lt;/p&gt;

&lt;p&gt;While that's not absolutely true (there is quite a lot of Objective-C/Cocoa source code on the web) I think you could make a strong argument that the tendency of Cocoa developers is that they are far less likely to release their sources than if they were, say, working in Ruby.&lt;/p&gt;

&lt;p&gt;If it's true I think this would point to what you might call a "compiled code culture."&lt;/p&gt;

&lt;p&gt;When you are working with Ruby the source, effectively, &lt;em&gt;*is&lt;/em&gt;* the application or library that you are writing. Ruby gems, for example, are just a packaging of the Ruby sources that comprise them. On the other hand a Cocoa application or framework is a compiled binary. You have two artifacts and you only need to release one of them.&lt;/p&gt;

&lt;p&gt;Not that this should stop you but it used to be that releasing your source code could be something of a burden. Where do you put it? How do you keep it up to date? How do you manage patches? Are you encouraging patches? Etc, etc. Not releasing the source avoids having to make those choices or live with their consequences.&lt;/p&gt;

&lt;p&gt;Subversion was no answer here but I think that Git and GitHub are. The combination of these two tools really does make it a pleasure to share your source.&lt;/p&gt;

&lt;p&gt;Hence I have released the source to my &lt;a href="https://github.com/mmower/lmhoneycombview/tree"&gt;LMHoneycombView&lt;/a&gt; control (and intend, soon, to release the source of the app using it). I hope it may help someone out.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002897.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="cocoa" ent:classification="user" ent:href="http://matt.blogs.it/topics/cocoa.xml"/>
        <ent:topic ent:id="programming" ent:classification="user" ent:href="http://matt.blogs.it/topics/programming.xml"/>
        <ent:topic ent:id="ruby" ent:classification="user" ent:href="http://matt.blogs.it/topics/ruby.xml"/>
        <ent:topic ent:id="culture" ent:classification="user" ent:href="http://matt.blogs.it/topics/culture.xml"/>
        <ent:topic ent:id="git" ent:classification="user" ent:href="http://matt.blogs.it/topics/git.xml"/>
        <ent:topic ent:id="subversion" ent:classification="user" ent:href="http://matt.blogs.it/topics/subversion.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Creativity is about hope</title>
      <link>http://matt.blogs.it/entries/00002896.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2896&amp;link=http://matt.blogs.it/entries/00002896.html</comments>
      <pubDate>Fri, 08 Aug 2008 09:02:13 +0100</pubDate>
      <description>&lt;p&gt;I've just read the transcript of a very interesting &lt;a href="http://www.davidgalenson.com/malcolmgladwell-lecture.pdf"&gt;talk by Malcolm Gladwell&lt;/a&gt; on the work of David Galenson. Galenson is an economist who did a very interesting thing. He studied the value of art works sold at auction and determined that there seemed to be two distinct groups: those whose value peaked in their twenties and thirties and those whose value peaked in their fourties and fifties. He does some other, similar, analyses and comes up with an argument about creativity.&lt;/p&gt;

&lt;p&gt;Quoting from the talk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;"Late-bloomers (Cezanne is his archetype who did his most valuable work in his fifties and sixties) are what he calls experimental artists. These are people who are motivated by aesthetic considerations. Their goals are kind of very, very imprecise. They don't plan anything in advance, they work sort of by trial and error. They do endless iterations of the same idea. They're constantly redoing and redoing and redoing in this kind of poking around and trying to find something, work toward some kind of distant, imprecise, and badly understood goal. They're searching, in other words, for what it is they want to create, and that searching can very often take an entire lifetime."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Prodigies (Picasso is the archetype here who was, basically, done by his mid-thirties), on the other hand, tend to be much more motivated by the desire, according to Galenson, to communicate ideas. They're conceptual in the way that they think. They can state their goals very precisely before they start a work of art. The act of painting for them is all about the act of transferring something, some well-realized idea, from one surface to another. The work of experimentalists like Cezanne often kind of complicates and deepens our understanding of something, but conceptualists, people like Picasso, tend to simplify the field that they're a part of. They work very quickly and systematically."&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Galenson's arguments are controversial and not widely accepted but, and this may be because I want to believe it, I find something compelling about the argument and it's basis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prodigies have an idea clearly in mind and seek to express it (Picasso: "I don't seek, I find.")&lt;/li&gt;
&lt;li&gt;Late-Bloomers spend their time seeking their idea through expression (Cezanne: "I seek in painting.")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gladwell goes on to make an argument that our (western) society has, in terms of how it views creativity, become obsessed with Picasso's over Cezanne's. That we are only interested in 'big ideas' and the people who come up with them. We don't value those who iterate towards great ideas. If your first idea sucked that's pretty much it, you're done. Cezanne's early paintings were a bust. In today's art world he'd be done but you can see this kind of thinking pervading all parts of our society.&lt;/p&gt;

&lt;p&gt;Why does this argument appeal to me to so much?&lt;/p&gt;

&lt;p&gt;I guess a big part of it is that, despite having a very high opinion of myself, I'm 36 and feel that I have achieved nothing of any substance in my life. In a world where you're supposed to have your big idea &amp;amp; payday early I feel like I'm forever grasping at ideas that seem to be just out of reach. As I've gone from 30 to 36 I've become weighed down by a feeling that that's it, "I'm done."&lt;/p&gt;

&lt;p&gt;Yet I'm still hacking away, learning new things, playing with silly ideas, reading and pondering what's next. What Galenson offers me is evidence of hope, hope that I might yet turn out to be a late bloomer.&lt;/p&gt;

&lt;p&gt;Hope that it's worth continuing to seek because one day I may find.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002896.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="psychology" ent:classification="user" ent:href="http://matt.blogs.it/topics/psychology.xml"/>
        <ent:topic ent:id="life" ent:classification="user" ent:href="http://matt.blogs.it/topics/life.xml"/>
        <ent:topic ent:id="creativity" ent:classification="user" ent:href="http://matt.blogs.it/topics/creativity.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>The iPhone won't be challenging the Nintendo DS any time soon</title>
      <link>http://matt.blogs.it/entries/00002895.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2895&amp;link=http://matt.blogs.it/entries/00002895.html</comments>
      <pubDate>Sun, 27 Jul 2008 14:04:59 +0100</pubDate>
      <description>&lt;p&gt;So... airports... hanging about... I decided to buy a game for my iPod Touch and chose Bejewelled 2. It's nice looking, fun to play, it reminds my why I should never go near that game on my computer because it's a huge time sink.&lt;/p&gt;

&lt;p&gt;I guess I played for about 40 minutes before my fully-charged touch batteries were down to &amp;lt;20% and I got the battery warning.&lt;/p&gt;

&lt;p&gt;I don't own a DS but I hear you can get in the region of 10+ hours of play time, maybe as many 14 with the brightness down. My Touch could maybe do an hour. Battery life seems fine for other things: browsing, watching movies, playing music. But whatever Bejewelled was doing (using the 3D processor maybe?) ate the battery with fava beans and a nice Chianti.&lt;/p&gt;

&lt;p&gt;Maybe the iPhone has a better battery than the Touch but I can't imagine it's much more than 2x better. My Touch is also getting on for 9 months old so it's battery is probably 15% from it's new capacity. Even so you're looking at a device that may go 3 hours tops.&lt;/p&gt;

&lt;p&gt;I don't think Nintendo have much to worry about at this point.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002895.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="iphone" ent:classification="user" ent:href="http://matt.blogs.it/topics/iphone.xml"/>
        <ent:topic ent:id="gaming" ent:classification="user" ent:href="http://matt.blogs.it/topics/gaming.xml"/>
        <ent:topic ent:id="nintendo" ent:classification="user" ent:href="http://matt.blogs.it/topics/nintendo.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Why I might end up getting an iPhone 3G after-all</title>
      <link>http://matt.blogs.it/entries/00002894.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2894&amp;link=http://matt.blogs.it/entries/00002894.html</comments>
      <pubDate>Sun, 27 Jul 2008 13:56:23 +0100</pubDate>
      <description>&lt;p&gt;In yesterdays chaos having a good information source at my fingertips could have been a help in giving me some options. Unfortunately I had my Nokia N73 on T-Mobile.&lt;/p&gt;

&lt;p&gt;Between getting "No network" messages (despite the phone claiming to have a full 3G signal) and the craptacular browser on the N73 I was able to get nowhere at all.&lt;/p&gt;

&lt;p&gt;Whatever mobile gateway T-Mobile uses is utterly shit. Mobile gateway errors have plagued my entire year of service with them.&lt;/p&gt;

&lt;p&gt;This combined with the small screen, unfriendly browser, and ridicuolous pointing, clicking, and hapless text entry make it a most frustrating device to use.&lt;/p&gt;

&lt;p&gt;Pre-iPhone you could live with that because you knew there was nothing better (Windows mobile? Please be serious...) but it's a whole different deal to live with it now.&lt;/p&gt;

&lt;p&gt;I still wish there was a more expensive 12 month contract option or pay&amp;amp;go but with my contract coming up on August 3rd I am wavering again.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002894.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="iphone" ent:classification="user" ent:href="http://matt.blogs.it/topics/iphone.xml"/>
        <ent:topic ent:id="nokia" ent:classification="user" ent:href="http://matt.blogs.it/topics/nokia.xml"/>
      </ent:cloud>
    </item>
    <item>
      <title>Thanks for nothing Air France</title>
      <link>http://matt.blogs.it/entries/00002893.html</link>
      <comments>http://radiocomments.userland.com/comments?u=107808&amp;p=2893&amp;link=http://matt.blogs.it/entries/00002893.html</comments>
      <pubDate>Sun, 27 Jul 2008 13:34:14 +0100</pubDate>
      <description>&lt;p&gt;Yesterday I was supposed to meet R in Paris. I had debated taking Eurostar but it's no cheaper than flying, no quicker, and I only live 25 minutes from Heathrow.&lt;/p&gt;

&lt;p&gt;I was duly at Heathrow at 5.40am for the 7.40 AF1781 flight to Paris and, despite the chaos that is Air Frances so called "check-in system" I was in the departure lounge in good time for the, then 20 minutes delayed, take-off and looking forward to being there.&lt;/p&gt;

&lt;p&gt;We pushed off and rolled onto the jetway. Where we sat for about 20 minutes. I was trying to doze anyway so it took me a while to notice that something was amiss. This was as close I would get to Paris that day.&lt;/p&gt;

&lt;p&gt;After some time the captain came on to say that the engine ignition computer had failed and that they would be towing us back to the stand to get an engineer on board to fix it. What followed was a cycle of ever more depressing announcements about some issue that would be known in 5-10 minutes and, 25 minutes later, coming on to say it hadn't worked and they were trying something else. All the time I was willing the engines to start.&lt;/p&gt;

&lt;p&gt;To no avail. In the end he announced that a new engine computer would have be flown in from Paris and fitted and we had to get off the plane. At this point I think we all sort of expected we would be kept together and made comfortable until something could be done.&lt;/p&gt;

&lt;p&gt;It is at this point that Air France totally and utterly failed every single passenger on board.&lt;/p&gt;

&lt;p&gt;We were instead directed back through the border and all the way back to the Air France ticket desk where we assembled into the hugest queue you can imagine. I spent two and a half hours shuffling along and I wasn't even at the back.&lt;/p&gt;

&lt;p&gt;By the time I got to the front, hours after I should have landed in Paris, the best flight on offer was a 6pm departure. And I was lucky, lots of other people had missed connecting flights for holiday or home. The family in front of me had two very disappointed children.&lt;/p&gt;

&lt;p&gt;Maybe it was having served a lot of, increasingly ill-tempered people for 2.5 hours, but I didn't feel a lot of sympathy for my position when I reached the front of the queue. It's entirely Air Frances fault though, I had no sympathy for them at all.&lt;/p&gt;

&lt;p&gt;There were lots of Air France people in the terminal but frankly they all seemed pretty blas&amp;eacute; about our problems. We were given  &amp;pound;10 food vouchers which was fine for those people who could actually leave the queue (i.e. not me) but other than that they did nothing.&lt;/p&gt;

&lt;p&gt;In particular they didn't offer drinks, didn't help anyone to sit down who might need it, and made no attempt to optimize the process (a first plan might have been to separate those heading to Paris from those flying through Paris for whom there might have been alternatives). The only information we got was handed down from those ahead of us in the queue.&lt;/p&gt;

&lt;p&gt;I left LHR some 8 hours after I arrived, exhausted and thoroughly dejected. I've flown Air France a few times but have no intention of doing so again. You see what a company is really like when things go wrong. Today Air France failed every single passenger of that plane and made no attempt to fix the problems they caused.&lt;/p&gt;

&lt;p&gt;Thanks for nothing Air France.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002893.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:id="air-france" ent:classification="user" ent:href="http://matt.blogs.it/topics/air-france.xml"/>
        <ent:topic ent:id="travel" ent:classification="user" ent:href="http://matt.blogs.it/topics/travel.xml"/>
        <ent:topic ent:id="incompetence" ent:classification="user" ent:href="http://matt.blogs.it/topics/incompetence.xml"/>
      </ent:cloud>
    </item>
  </channel>
</rss>