<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:mquin</id>
  <title>Mike Quin's Journal</title>
  <subtitle>Mike Quin</subtitle>
  <author>
    <name>Mike Quin</name>
  </author>
  <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom"/>
  <updated>2012-05-24T09:30:20Z</updated>
  <lj:journal userid="765116" username="mquin" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://mquin.livejournal.com/data/atom" title="Mike Quin's Journal"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:180964</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/180964.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=180964"/>
    <title>Being Digital</title>
    <published>2012-05-24T09:30:20Z</published>
    <updated>2012-05-24T09:30:20Z</updated>
    <content type="html">Something I've not really spoken about here yet but which has been taking up a lot of my time over these last months is study.&lt;br /&gt;&lt;br /&gt;I decided last year to start working towards a degree part-time with the &lt;a href="http://www.open.ac.uk/" rel="nofollow"&gt;Open University&lt;/a&gt;. The first stage of this has been a six-month computing and information technology module entitled &lt;a href="http://www3.open.ac.uk/study/undergraduate/course/tu100.htm" rel="nofollow"&gt;"My Digital Life"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Going back to school, as it were, well over a decade since I finished college has been a bit of a change. The course itself has been very engaging, doing a good job of mixing a fairly broad range of topics from the early history of computing to more modern areas such as social networking and wireless sensor networks, with research and study skills.&lt;br /&gt;&lt;br /&gt;As you might expect, the OU - established as a distance learning university - has embraced technology for education, and the tools used to deliver the course were a great help.&lt;br /&gt;&lt;br /&gt;Coming to the end of this module I'm fairly confident that I have done well, and although I feel I'm still developing in terms of being able to think and write like an academic I have found it to be very enjoyable.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:180539</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/180539.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=180539"/>
    <title>90 days</title>
    <published>2012-05-24T09:19:15Z</published>
    <updated>2012-05-24T09:19:15Z</updated>
    <content type="html">A little late, and this should be the last of these posts for a while - don't want to bore you all.&lt;br /&gt;&lt;br /&gt;85kgs seems to be the awkward point, with my weight floating around that mark for the last month or so. I'm fairly happy with the results and I've been starting with a bit of strength work in the last few weeks.&lt;br /&gt;&lt;br /&gt;As the weather is getting better I'm hoping to spend more time on the bike as well.&lt;br /&gt;&lt;br /&gt;Small moves, but it seems to be working.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:180368</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/180368.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=180368"/>
    <title>60 days</title>
    <published>2012-04-13T09:24:56Z</published>
    <updated>2012-04-13T09:25:49Z</updated>
    <content type="html">Another 30 days done, and perhaps surprisingly I'm managing to stick with it.&lt;br /&gt;As of this morning I'm 10.3kg lighter than I was in February, a shallower drop (3.6kg) than in the first 30 but I was expecting it to tail off as my overall weight dropped.&lt;br /&gt;Aside from the obvious fact of being quite a bit lighter than I was, and visibly slimmer (not exactly a chiselled Adonis, but Rome wasn't built in two months) this exercise has had the positive effect of getting me into a routine with regards to eating, which I hope will stick. I'm still far from a morning person but having a decent breakfast every days feels like a good thing.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:179986</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/179986.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=179986"/>
    <title>low-content management</title>
    <published>2012-03-14T17:06:40Z</published>
    <updated>2012-03-14T17:12:00Z</updated>
    <content type="html">In what is perhaps conclusive proof that I've been spending way too much time around &lt;a href="http://richardhartmann.de/blog/" rel="nofollow"&gt;RichiH&lt;/a&gt;, I've taken a partial dive into &lt;a href="ikiwiki.info"&gt;ikiwiki&lt;/a&gt; and applied it to my dust-strewn homepage - &lt;a href="http://www.elite.uk.com/mike" rel="nofollow"&gt;www.elite.uk.com/mike&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;For the moment this is just adding a nice form of content management to the handful of static pages which live there - my weblog is still being pulled from LJ for the time being - but it's proving to be enough of an experience to get my head around what ikiwiki can do without being too much of a time sink.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:179884</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/179884.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=179884"/>
    <title>30 Days</title>
    <published>2012-03-14T08:10:37Z</published>
    <updated>2012-03-14T08:41:36Z</updated>
    <category term="weightloss"/>
    <category term="health"/>
    <content type="html">&lt;p&gt;Towards the middle of February it was becoming apparent to me that I'd put on quite an insulating layer of fat over the winter, most likely due to having slipped back into the old bad habits of snacking and drinking soda at work.&lt;/p&gt;
 
&lt;p&gt;My height hides it to a certain extent but at a little over 95kg I was getting very close to being at least numerically overweight, and more pertinently (or should the be vainly), I wasn't particularly happy with that  I could see looking in the mirror in the morning.&lt;/p&gt;
 
&lt;p&gt;So I decided to do something about it. I'm not one for fads or gimmicks so I've not been taken in by Atkins or any similar 'cheat'  diets, just keeping a very close count of what I'm eating, and being disciplined about how and when I eat.&lt;/p&gt;
 
&lt;p&gt;As it turns out, without snacking what I do tend to eat on a  day-to-day basis works out neatly in the 1200-1500 kCal range which is suggested for weight loss, so I've not needed to make a lot of  adjustments and despite the inevitable bouts of hunger I've been  managing to stick to it.&lt;/p&gt;
 
&lt;p&gt;So, here I am, 30 days in, and 6.7kg lighter than I was when I started, a very encouraging start.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:179676</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/179676.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=179676"/>
    <title>On the road</title>
    <published>2011-12-13T12:13:11Z</published>
    <updated>2012-03-14T08:13:40Z</updated>
    <content type="html">So, 11 days, 1145 miles, 20 hours behind the wheel and four towns. We've been busy.&lt;br /&gt;&lt;br /&gt;Our starter for ten was the freenode staff Christmas get-together which saw about two dozen freenode volunteers and friends descend on an unsuspecting Surrey town for an evening of food, drink, and general merriment. Some of the other staff I'd met before but it was very nice to be able to put more faces to names that I've known for a few years now.&lt;br /&gt;&lt;br /&gt;Following this we retired to Oxford for a few days rest rather that drive home simply to return south again the following weekend, and given that an amusingly named weather system was apparently trying to blow Scotland away during this period, a serendipitous move. We spent our time in the beautifully renovated castle prison (a much more comfortable experience I'm sure than those who resided there when it had HMP in its name).&lt;br /&gt;&lt;br /&gt;After overnighting in Taunton we finally arrived in Minehead for this year's All Tommorow's Parties' Nightmare Before Christmas festival. I'm never to good at remembering or describing multi-day events, but if I am to pick some stand-out highlights they would be the performances fro Battles, Gary Numan, The Budos Band, Nisennemondai and Omar Souleyman.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:179452</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/179452.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=179452"/>
    <title>Back to school, kinda</title>
    <published>2011-09-24T14:40:18Z</published>
    <updated>2011-09-24T14:40:18Z</updated>
    <content type="html">I spent a couple of hours this afternoon in a lecture theatre at &lt;a href="http://www.gcu.ac.uk/" rel="nofollow"&gt;GCU&lt;/a&gt; for an Open University Introductory Workshop. This was in part an exercise in saying "Don't Panic" in large, friendly letters, but useful in terms of giving a feel for how OU study works and the support facilities available.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:178974</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/178974.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=178974"/>
    <title>Minami</title>
    <published>2011-03-22T10:37:49Z</published>
    <updated>2011-03-22T10:37:49Z</updated>
    <content type="html">I've taken the day-off to decompress and catch up with the rest of the world after the weekend's Minamicon.&lt;br /&gt;&lt;br /&gt;Swept up most of my IRC highlights yesterday, tidied my email a bit but it's still looking a bit of a warzone. Work email I'm doing my best to ignore for today.&lt;br /&gt;&lt;br /&gt;The convention itself was a whole lot of fun: Very relaxed, with no emergencies, drunks, or drama. It's always fun meeting old friends, and I really enjoyed having the time to catch up with folks, and we met a few fun new people as well.&lt;br /&gt;&lt;br /&gt;The trip was surprisingly stress-free, with only a couple of minor slowdowns along the way.&lt;br /&gt;&lt;br /&gt;Now for tea, RSS and seeing who our esteemed leaders have decided to drop bombs on.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:178831</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/178831.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=178831"/>
    <title>21st Century Reading</title>
    <published>2011-02-11T07:57:24Z</published>
    <updated>2011-02-11T07:57:24Z</updated>
    <content type="html">So, this week I had a moment of impulse-purchase weakness and bought myself a Kindle 3.&lt;br /&gt;&lt;br /&gt;Leaving the DRM politics of Amazon's ebook service aside, The device itself is rather impressive, and with a light dusting of third-party open-source software, useful in ways that I hadn't thought of.&lt;br /&gt;&lt;br /&gt;Firstly the display is beautiful - very clear and easy on the eye, and the controls are straightforward and easy to use. I stumbled a little on returning to a bookmark I had set, but having the user guide on the device helped with that.&lt;br /&gt;&lt;br /&gt;Now the fun discovery came with Calibre - a much talked about tool for managing an ebook library and converting between various common formats. &lt;br /&gt;Amongst other nifty tricks, Calibre can pull data from various sources such as online news outlets and aggregators, convert them to ebook format and toss the result over to the Kindle (via Amazon's 'Whispernet' service).&lt;br /&gt;&lt;br /&gt;This is, in my opinion, solid gold for weblogs, particularly those with longer posts. Whilst reading at the computer I tend to skim these, and I'm finding that it is a wholly different experience being able to relax in bed or on the sofa much as I would with a newspaper or paperback.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:178482</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/178482.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=178482"/>
    <title>Adventures in device driver hacking</title>
    <published>2011-01-21T10:57:18Z</published>
    <updated>2011-01-21T11:12:43Z</updated>
    <content type="html">So, for a little project I'm cooking up I needed a couple of USB Ethernet interfaces. There's no shortage of ebay sellers of these so I grabbed a couple from the first UK seller I found, with them arriving promptly the next day.&lt;br /&gt;&lt;br /&gt;Now, in the last few years Linux's hardware support has improved to the point that I don't spend as much time worrying about whether things will work: they invariably do.&lt;br /&gt;&lt;br /&gt;So, plug and play, right? Sadly in this case I was disappointed. Plugging in the adapter prompted a report that it was there and was indeed a 10/100 Ethernet device, but nothing further. No driver support on the plain-vanilla Debian install currently gracing my netbook. That was surprise one.&lt;br /&gt;&lt;br /&gt;Surprise two was finding that the supplied driver CD (how quaint!) had a Linux directory. Fortunately out-of-tree drivers follow a reasonably standardised structure so the Chinese README wasn't a problem. However it wasn't all plain sailing.&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;
% make
Building QF9700 USB2NET chip driver...
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-trunk-amd64'
  CC [M]  /home/mrq1/tmp/qf9700/qf9700.o
/home/mrq1/tmp/qf9700/qf9700.c: In function ‘qf9700_bind’:
/home/mrq1/tmp/qf9700/qf9700.c:380: error: ‘struct net_device’ has no member named ‘do_ioctl’
/home/mrq1/tmp/qf9700/qf9700.c:381: error: ‘struct net_device’ has no member named ‘set_multicast_list’
/home/mrq1/tmp/qf9700/qf9700.c: In function ‘qf9700_rx_fixup’:
/home/mrq1/tmp/qf9700/qf9700.c:443: error: ‘struct usbnet’ has no member named ‘stats’
/home/mrq1/tmp/qf9700/qf9700.c:444: error: ‘struct usbnet’ has no member named ‘stats’
/home/mrq1/tmp/qf9700/qf9700.c:445: error: ‘struct usbnet’ has no member named ‘stats’
/home/mrq1/tmp/qf9700/qf9700.c:446: error: ‘struct usbnet’ has no member named ‘stats’
/home/mrq1/tmp/qf9700/qf9700.c:447: error: ‘struct usbnet’ has no member named ‘stats’
make[4]: *** [/home/mrq1/tmp/qf9700/qf9700.o] Error 1
make[3]: *** [_module_/home/mrq1/tmp/qf9700] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-trunk-amd64'
make: *** [all] Error 2

&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;At this point I'm wondering if I've bought an (admittedly cheap) lemon.&lt;br /&gt;&lt;br /&gt;Undeterred, I took the somewhat blunt approach of commenting out the lines that GCC had complained about, and lo and behold, it builds!&lt;br /&gt;&lt;br /&gt;Better than that, it loaded without crashing the machine &lt;em&gt;and&lt;/em&gt; appeared to work as intended, and with a little bit of poking around on google and refering to the source of other usbnet drivers I was able to bring the driver (hopefully) in line with the current network device API.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;
diff -ru a/qf9700.c b/qf9700.c
--- a/qf9700.c	2010-10-09 09:50:52.000000000 +0100
+++ b/qf9700.c	2011-01-21 09:59:58.019399508 +0000
@@ -368,6 +368,17 @@
 	qf_write_async(dev, MAR, QF_MCAST_SIZE, hashes);
 	qf_write_reg_async(dev, RCR, rx_ctl);
 }
+static const struct net_device_ops qf9700_netdev_ops = {
+	.ndo_open		= usbnet_open,
+	.ndo_stop		= usbnet_stop,
+	.ndo_start_xmit		= usbnet_start_xmit,
+	.ndo_tx_timeout		= usbnet_tx_timeout,
+	.ndo_change_mtu		= usbnet_change_mtu,
+	.ndo_set_mac_address 	= eth_mac_addr,
+	.ndo_validate_addr	= eth_validate_addr,
+	.ndo_do_ioctl		= qf9700_ioctl,
+	.ndo_set_multicast_list = qf9700_set_multicast,
+};
 
 static int qf9700_bind(struct usbnet *dev, struct usb_interface *intf)
 {
@@ -377,8 +388,7 @@
 	if (ret)
 		goto out;
 
-	dev-&amp;gt;net-&amp;gt;do_ioctl = qf9700_ioctl;
-	dev-&amp;gt;net-&amp;gt;set_multicast_list = qf9700_set_multicast;
+        dev-&amp;gt;net-&amp;gt;netdev_ops = &amp;qf9700_netdev_ops;
 	dev-&amp;gt;net-&amp;gt;ethtool_ops = &amp;qf9700_ethtool_ops;
 	dev-&amp;gt;net-&amp;gt;hard_header_len += QF_TX_OVERHEAD;
 	dev-&amp;gt;hard_mtu = dev-&amp;gt;net-&amp;gt;mtu + dev-&amp;gt;net-&amp;gt;hard_header_len;
@@ -440,11 +450,11 @@
 	len = (skb-&amp;gt;data[1] | (skb-&amp;gt;data[2] &amp;lt;&amp;lt; 8)) - 4;
 
 	if (unlikely(status &amp; 0xbf)) {
-		if (status &amp; 0x01) dev-&amp;gt;stats.rx_fifo_errors++;
-		if (status &amp; 0x02) dev-&amp;gt;stats.rx_crc_errors++;
-		if (status &amp; 0x04) dev-&amp;gt;stats.rx_frame_errors++;
-		if (status &amp; 0x20) dev-&amp;gt;stats.rx_missed_errors++;
-		if (status &amp; 0x90) dev-&amp;gt;stats.rx_length_errors++;
+		if (status &amp; 0x01) dev-&amp;gt;net-&amp;gt;stats.rx_fifo_errors++;
+		if (status &amp; 0x02) dev-&amp;gt;net-&amp;gt;stats.rx_crc_errors++;
+		if (status &amp; 0x04) dev-&amp;gt;net-&amp;gt;stats.rx_frame_errors++;
+		if (status &amp; 0x20) dev-&amp;gt;net-&amp;gt;stats.rx_missed_errors++;
+		if (status &amp; 0x90) dev-&amp;gt;net-&amp;gt;stats.rx_length_errors++;
 		return 0;
 	}
 

&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As it doesn't appear to have a home on the web anywhere I've dropped the original driver and my changes &lt;a href="http://www.elite.uk.com/mike/qf9700" rel="nofollow"&gt;here&lt;/a&gt;, should anyone else need it.&lt;br /&gt;&lt;br /&gt;&lt;a name='cutid1-end'&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:178218</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/178218.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=178218"/>
    <title>172,800 seconds</title>
    <published>2011-01-02T01:48:00Z</published>
    <updated>2011-01-03T21:35:16Z</updated>
    <content type="html">Once again freenode saw in the new year with its traditional collection of organised chaos in #freenode-newyears.&lt;br /&gt;&lt;br /&gt;Out of curiosity following a comment made in the channel I decided to pour my logs of the event into &lt;a href="http://www.mrtg.org/rrdtool/" rel="nofollow"&gt;rrdtool&lt;/a&gt; to produce a couple of graphs showing how the channel evolved, from a handful of staff to a peak of 420 users, over the 42 hours or so that it was active this year.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Times are in UTC.&lt;br /&gt;&lt;br /&gt;The jumps in the usercount at 22:00 on Thursday and 12:00 on Friday correspond with wallops (network wide notices which users can opt to recieve) and global notices (sent to all connected users) announcing the channel.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.elite.uk.com/mike/irc/ny2011/newyears_users.png" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.elite.uk.com/mike/irc/ny2011/newyears_msgs.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='cutid1-end'&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:178070</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/178070.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=178070"/>
    <title>A weekend update</title>
    <published>2010-10-11T09:00:09Z</published>
    <updated>2010-10-13T09:28:45Z</updated>
    <content type="html">(to the old LJ refrain 'I really ought to update this more often')&lt;br /&gt;&lt;br /&gt;Had a pretty fun weekend, all things considered.&lt;br /&gt;&lt;br /&gt;On Friday night I was able to set up my new radio - a Tait 2020 VHF FM rig. Along with a mains power supply for it and a 2m &lt;a href="http://en.wikipedia.org/wiki/J-pole_antenna" rel="nofollow"&gt;J-Pole antenna&lt;/a&gt; - constructed from 300Ω twinlead - in the loft, this gives us a permanent setup which should perform well.&lt;br /&gt;&lt;br /&gt;On Saturday we took a jaunt up to Montrose to visit Jennifer and her clan, dropping off her birthday present and having a very nice lunch at a converted cinema in the town.&lt;br /&gt;&lt;br /&gt;On Sunday we spent a little time at GM6NX before another nice pub lunch, this time at "Morrison's Cold Beer Company" (another converted building - this time the old Stirling Post Office), and a visit to Laura's parents.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:177855</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/177855.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=177855"/>
    <title>More Synchronisity</title>
    <published>2010-10-01T16:08:40Z</published>
    <updated>2010-10-01T16:11:51Z</updated>
    <content type="html">On data this time:&lt;br /&gt;&lt;br /&gt;I expect I'm not alone with this problem: I work lots of places - desktop machines at home and work and a number of laptops.&lt;br /&gt;&lt;br /&gt;Frequently I find that I've not got the particular piece of work I want at a given time - maybe it's at work and I'm having network access problems wherever I am, maybe I've been working on something on the laptop and forgotten to upload it somewhere else.&lt;br /&gt;&lt;br /&gt;Wouldn't it be nice if the data was just 'there' (for whatever 'there' currently is)?&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;There are a multitude of options for this. Version control systems such as &lt;a href="http://subversion.tigris.org/" rel="nofollow"&gt;svn&lt;/a&gt; and &lt;a href="git-scm.com"&gt;git&lt;/a&gt; are a popular approach, but I always seem to get into a tangle with them.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dropbox.com" rel="nofollow"&gt;Dropbox&lt;/a&gt; is seriously neat, and very close to what I'd like but the paranoid bit of my brain worries about having my eggs in someone else's basket.&lt;br /&gt;&lt;br /&gt;So, how about a Dropbox-like system on my own server? Google throws up a few suggestions, the most likely looking being &lt;a href="http://code.google.com/p/lsyncd/" rel="nofollow"&gt;lsyncd&lt;/a&gt; but being based on rsync that is a one-way process, depending on the changes being done in one place then pushed to another.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cis.upenn.edu/~bcpierce/unison/" rel="nofollow"&gt;Unison&lt;/a&gt; looks pretty promising, offering an intelligent two-way sync between two directories.&lt;br /&gt;&lt;br /&gt;So what I want is a system that will:&lt;br /&gt;&lt;br /&gt;1) watch my working directory and sync changes with my server&lt;br /&gt;&lt;br /&gt;2) automatically merge changes submitted to the server from other clients&lt;br /&gt;&lt;br /&gt;The first turned out to be pretty straightforward: Using the &lt;a href="http://search.cpan.org/dist/File-ChangeNotify/lib/File/ChangeNotify.pm" rel="nofollow"&gt;File::ChangeNotify&lt;/a&gt; frontend to Linux's &lt;a href="http://en.wikipedia.org/wiki/Inotify" rel="nofollow"&gt;inotify&lt;/a&gt; subsystem to watch for changes and simply running unison when necessary.&lt;br /&gt;&lt;br /&gt;For the latter I could just poll the server periodically, but I it would be more elegant to have clients update only when there are changes.&lt;br /&gt;&lt;br /&gt;So it occurs to me that what I'm essentially thinking of is a lightweight publish/subscribe system, and I'm saved from reinventing the wheel by &lt;a href="http://mosquitto.org/" rel="nofollow"&gt;mosquitto&lt;/a&gt; - an open source &lt;a href="http://mqtt.org/" rel="nofollow"&gt;MQTT&lt;/a&gt; broker that was developed in response to the presentation &lt;a href="http://stanford-clark.com/" rel="nofollow"&gt;Andy Stanford-Clark&lt;/a&gt; (of 'twittering house' fame) gave at &lt;a href="http://oggcamp.org/" rel="nofollow"&gt;oggcamp&lt;/a&gt; in 2009.&lt;br /&gt;&lt;br /&gt;By simply extending my script to send an MQTT message after it has synced and sync automatically when it receives notifications from other clients I have a working directory which follows me around without any special effort on my part.&lt;br /&gt;&lt;br /&gt;While this by no means achieves the full functionality of Dropbox, it (at this early stage) seems sufficient to scratch my particular itch.&lt;br /&gt;&lt;a name='cutid1-end'&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:177513</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/177513.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=177513"/>
    <title>Ladies and Gentlemen, we have floated in space</title>
    <published>2010-05-11T09:51:15Z</published>
    <updated>2010-05-11T09:51:15Z</updated>
    <content type="html">Back at work after a 10-day holiday, which consisted of:&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Oggcamp&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;This nice little 'unconference' saw it's second running, this time in Liverpool. &lt;br /&gt;Lots of interesting talks again this year, ranging from geek politics to women (or the lack thereof) in technology, software patents and MQTT (including an oggcamp success story - the mosquito message broker which was born out of a "wouldn't it be nice if there were an open source version of this" commment from @andysc last year).&lt;br /&gt;&lt;br /&gt;As with the first oggcamp the social side was a big draw as well - nice to see some familiar faces from last year, meet new folks and put some faces to IRC names.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Bath&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;As we were bookending this week with two trips we decided that rather than coming home we'd just find somewhere to chill out for a few days, and decided to visit Bath. This turned out to be an awesome idea as we had a wonderfully relaxed and lazy week in a great hotel, along with some interesting culture from the Roman Baths and the Fashion Museum.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;All Tommorows Parties&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Back in Minehead for another installment of this most awesome music festival. This time it was curated by Simpson's creator  Matt Groening who is also a massive music fan and had lined up a fantastic array of interesting acts.&lt;br /&gt;&lt;br /&gt;Amongst what I saw were Iggy and The Stooges (incredibly at 65 Iggy still moves like an 18 year old), Spiritualised (epic performance of Ladies and Gentlemen We Are Floating in Space), Joanna Newsom (only caught a bit of this set, interesting but her voice jars a little), The Tiger Lillies (the musical embodiment of a victorian freakshow, darkly comic), She and Him (60s rock'n'roll brought bang up to date), Deerhunter,  Toumani Diabate, Boredoms (totally awesome - 8 drummers going at it, Taiko-style, on modern kits), Broadcast (beautifully ambient sound and visuals).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:177251</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/177251.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=177251"/>
    <title>Kitacon</title>
    <published>2010-03-30T14:12:53Z</published>
    <updated>2010-03-30T14:12:53Z</updated>
    <content type="html">This weekend was a fun, and very refreshing one.&lt;br /&gt;&lt;br /&gt;We visited Northampton for Kitacon, an anime convention running in the Park Inn Hotel (formerly the Northampton Moat House) which played host to Ayacon in 2002 and 2003.&lt;br /&gt;&lt;br /&gt;I've been attending conventions since 1997 and with a handful of exceptions have been volunteering in some capacity at every one, however this time I decided to take a break, 'just be a punter', and enjoy the con.&lt;br /&gt;&lt;br /&gt;I even watched some anime - I think the last time I did so &lt;em&gt;during&lt;/em&gt; a convention was in 2002.&lt;br /&gt;&lt;br /&gt;In it's second year, Kitacon has a very fresh feel to it - lots of new faces, an incredible quantity and quality of cosplay and a nice varied programme of events. The hotel layout provides a nice  environment and it was fun to just chill out, eat, drink and be social.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:177082</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/177082.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=177082"/>
    <title>Synchronicity</title>
    <published>2010-03-02T10:19:29Z</published>
    <updated>2010-03-02T10:24:31Z</updated>
    <content type="html">&lt;p&gt;Yesterday I spend some time delving into sync.&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;
&lt;p&gt;Personal Information Management has a history longer than Personal Computing.
Over the years the number of devices that can store names numbers and
notes has spiralled and evolved, leading to the need to synchronise
information between these devices so as not to require data be entered
multiple times.&lt;/p&gt;

&lt;p&gt;A few years ago I was a fairly happy camper in this arena - iSync on
Mac OS X Jaguar was one of the features that sold me on the platform,
and did pretty much what it said on the box - simple, one-click
syncing of addresses and calendar entries between my Palm PDA, SE
Cellphone and OSX's own iCal and Address Book applications.&lt;/p&gt;

&lt;p&gt;This pretty much remained the same through my purchase of a Mac Mini,
OS upgrades to Tiger, Leopard and Snow Leopard and two new phones.&lt;/p&gt;

&lt;p&gt;At this point, however, it all gets messy. I bought a Nokia N97 
and discovered that for whatever reason neither Noika nor Apple supply
an iSync driver for this phone.&lt;/p&gt; 

&lt;p&gt;The prevaling suggestion on various web fora is to use a third party
service with a means of integrating with isync (such as Google), but
I'm not particularly happy with the idea of handing over other
people's personal information to some faceless 'cloud' service
provider. &lt;/p&gt;

&lt;p&gt;So, which way now? Is this something I can do myself?&lt;/p&gt; 

&lt;p&gt;As it turns out, yes (kinda). There are a few open-source products
that can provide SyncML services, the most promising that I found
being the eGroupware system, which while as it's name suggests is
intended as a full blown 'groupware' solution can be tailored to more
modest usage.&lt;/p&gt;

&lt;p&gt;The first step, getting data out of my phone (which has become my main
means of storing and accesing my calendar and contacts) and into
eGroupwar was fairly straightforward - eGroupware itself has a simple
step-by-step installation process although I did have to use the
Debian packages from the 'unstable' distribution to access the most
current set of features (being a php application this isn't a
particularly big deal), and it was not difficult with reference to
their wiki to figure out what to plug into the N97's sync dialog.&lt;/p&gt;

&lt;p&gt;So, one bird down, now back to the Mac. For calendaring, iCal 3.x
supports CalDAV, so it should have been simple enough to get this
working, but sadly this was not quite the case. Apple somehow managed
to forget how the internet works and their CalDAV implementation
assumes that the server will provide relative URLs. eGroupware on the
other hand (and it could be argued more correctly) uses relative URLs
which messes up this assumption. Fortunatley this is correctable with
some server-side aliasing but still a dissapointment. Additionally
this support appears to be read-only.&lt;/p&gt;

&lt;p&gt;And what about contacts? I've use Mozilla Thunderbird which has it's
own contacts list, and there is a SyncML client for it in the form of
Funambol's Mozilla plugin. Funambol itself is another sync server, and
as it is standard compliant it is possible to make the client work
with eGroupware with a small amount of tweaking on the server side.&lt;/p&gt;

&lt;p&gt;In all I'm happy with the results, but less happy with the steps
needed to get there this stuff really should 'just work', unfortunately
it seems the industry is still wed to the Outlook model of using the client 
as a lever to sell the server (or, in the Cloud era, the service).&lt;/p&gt;
&lt;a name='cutid1-end'&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:176747</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/176747.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=176747"/>
    <title>Interfacing Experiments</title>
    <published>2010-01-24T22:42:40Z</published>
    <updated>2010-01-24T22:42:40Z</updated>
    <content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/mquin/4301233293/" title="photo sharing" rel="nofollow"&gt;&lt;img src="http://farm3.static.flickr.com/2759/4301233293_53341c59f9_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/mquin/4301233293/" rel="nofollow"&gt;Interfacing Experiments&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/mquin/" rel="nofollow"&gt;Mike Quin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;The first stage in a project to build an interface between my Ford Focus' steering column radio controls and my Kenwood stereo, which lacks a wired remote interface but does support infrared. &lt;br /&gt;&lt;br /&gt;The control stalk turned out to be a simple array of switches attached to a resistor network, meaning that it appears as a different impedance depending on which switch is pressed. &lt;br /&gt;&lt;br /&gt;The stalk is connected to one of the Arduino's analogue input pins via a simple voltage divider.&lt;br clear="all" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:176136</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/176136.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=176136"/>
    <title>Multitasking geekery</title>
    <published>2009-10-22T22:16:10Z</published>
    <updated>2009-10-22T22:16:10Z</updated>
    <content type="html">As if playing with radios or computers on their own weren't geeky enough activities, I've just finished rigging up an interface to allow one of my computers to tune my radio.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:176073</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/176073.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=176073"/>
    <title>Chronography</title>
    <published>2009-08-19T16:12:57Z</published>
    <updated>2009-08-19T16:12:57Z</updated>
    <content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/mquin/3837303132/" title="photo sharing" rel="nofollow"&gt;&lt;img src="http://farm3.static.flickr.com/2509/3837303132_43b315808b_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/mquin/3837303132/" rel="nofollow"&gt;Seiko Chronograph&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/mquin/" rel="nofollow"&gt;Mike Quin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;A while back I took a fancy to getting myself a new wristwatch. A particular Seiko pilot's watch caught my eye, and the lovely &lt;span class='ljuser ljuser-name_ljquin' lj:user='ljquin' style='white-space:nowrap'&gt;&lt;a href='http://ljquin.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif?v=92.1' alt='[info]' width='16' height='16' style='vertical-align: bottom; border: 0; padding-right: 1px;'/&gt;&lt;/a&gt;&lt;a href='http://ljquin.livejournal.com/'&gt;&lt;b&gt;ljquin&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; kindly decided to buy for me as an anniversary present.&lt;br clear="all" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:175776</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/175776.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=175776"/>
    <title>Aya Revolution</title>
    <published>2009-08-18T07:49:55Z</published>
    <updated>2009-08-18T07:49:55Z</updated>
    <content type="html">Over the weekend months and months of planning and discussion came to fruition in the form of the sixth of the Ayacon series of conventions which started in 1998, of which this is my second time working as a committee member (although in 2005 my role was mostly 'in name only' as I was on honeymoon the weekend of the event)&lt;br /&gt;&lt;br /&gt;Seeing ~1200 people (many of the sporting absolutely fantastic costumes) take over the University of Warwick conferences facilities and have themselves a great time was heartwarming.&lt;br /&gt;&lt;br /&gt;Our guests and event organisers provided us with a wonderful programme, and the Warwick conference and technical staff were more than we could have asked for in providing all the assistance we needed.&lt;br /&gt;&lt;br /&gt;Needless to say I'm now sore an exhausted, but overall very pleased with the way the weekend went.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:175486</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/175486.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=175486"/>
    <title>Technological Achaeology</title>
    <published>2009-07-24T22:02:50Z</published>
    <updated>2012-03-14T08:15:56Z</updated>
    <content type="html">My exercise in breathing new life into old hardware has taken another couple of steps forward - the first being the arrival of some drive belts for my Amstrad 3" floppy drives from PCW enthusiast John King, the second being the resurrection of my external 3.5" drive (the voltage regulator which provided a 5v supply for this had apparently gotten fried at some point, fortunately I had a suitable PSU with which to replace it).&lt;br /&gt;&lt;br /&gt;The latter, and the fortune of having &lt;em&gt;one&lt;/em&gt; other computer left in the household with a floppy drive gives me a means of data transfer to and from the machine.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:175325</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/175325.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=175325"/>
    <title>Cleaning and Concert Tickets</title>
    <published>2009-06-27T23:13:34Z</published>
    <updated>2009-06-27T23:13:56Z</updated>
    <content type="html">Spend most of today catching up on the housework - a bit dull and domestic but fairly unavoidable, and had a nice meal in town with Laura (marred slightly by a bit of a headache which had been creeping up on me all afternoon).&lt;br /&gt;&lt;br /&gt;Inspired by seeing the film we've finally made our minds up and booked tickets for &lt;a href="http://www.last.fm/event/1113698" rel="nofollow"&gt;Ten Years of ATP&lt;/a&gt; this December, which from the (likely to expand) line-up that's been announced so far is looking like it will be a cracking weekend.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:175033</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/175033.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=175033"/>
    <title>music and bangs</title>
    <published>2009-06-25T21:16:19Z</published>
    <updated>2009-06-25T21:16:55Z</updated>
    <content type="html">Had an evening that was in different parts fun and eventful.&lt;br /&gt;&lt;br /&gt;The eventful part came before the evening had really started - whilst driving to the train station we had another car run into the back of ours at a roundabout with a very attention-grabbing bang. Fortunately the damage seems to be limited to some small scrapes on the bumper. &lt;br /&gt;&lt;br /&gt;A blissfully uneventful train journey to Edinburgh brings us to the fun part of the evening - A screening of the 'All Tommorow's Parties" film. Pulling together material from a staggering number of contributors (ranging from professional DV to mobile phone video and super-8 film) the filmmakers presented a musical montage of the festivals ten year history offering a glimpse of both the on-screen performances and the off-screen character of the festival. Not quite as good as actually being there, but a reasonable second.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:174837</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/174837.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=174837"/>
    <title>Freeing the nodes</title>
    <published>2009-06-23T11:22:23Z</published>
    <updated>2009-06-23T11:22:23Z</updated>
    <content type="html">Something I've been doing for the last few months and haven't written about yet is that I'm now a volunteer staff member on the &lt;a href="http://freenode.net/" rel="nofollow"&gt;freenode&lt;/a&gt; IRC network.&lt;br /&gt;&lt;br /&gt;I've been participating in freenode as a user for many years, out of all the IRC networks I use it is the one I am the most active on.&lt;br /&gt;&lt;br /&gt;During 2008 I started to take a bit more of an interest in the network outside of my usual haunts, and as well as joining a few social channels I started helping out in the general support channel, #freenode - answering the odd question where I could.&lt;br /&gt;&lt;br /&gt;In February network head honcho Christel approached me and asked if I had any interest in coming on board as a staff member.&lt;br /&gt;&lt;br /&gt;The months since then have been quite interesting as I've gotten to grips with the technical side (from my experience running an IRC server as part of the backnet and imaginarynet projects I knew a bit about what goes on 'behind the curtain', but freenode is on a completely different scale from that exercise) and gotten to know the staff team - who I've found to be friendly, professional yet fun to work with - and the wide and diverse freenode community. The work has ranged from the day-to-day technical stuff to liaising with users groups and helping mediate where there have been problems.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:mquin:174384</id>
    <link rel="alternate" type="text/html" href="http://mquin.livejournal.com/174384.html"/>
    <link rel="self" type="text/xml" href="http://mquin.livejournal.com/data/atom/?itemid=174384"/>
    <title>Bones</title>
    <published>2009-06-23T06:57:36Z</published>
    <updated>2009-06-23T06:57:36Z</updated>
    <content type="html">Had the 1-year on check on my hip yesterday.&lt;br /&gt;&lt;br /&gt;Overall it looks encouraging - the X-rays didn't show any sign of serious deterioration. There's a suggestion of a flat spot on the top of the ball which the consultant reckoned might be a tiny bit of dead bone, but not enough to cause concern.&lt;br /&gt;&lt;br /&gt;He doesn't reckon there is much they can do about the discomfort I get from it, about the only option he could offer would be having the metalwork extracted which wouldn't offer any guarantee of making things better (and, being quite intrusive, could possible make things worse, not to mention the inherent infection risk). As It has not gotten perceptibly worse in the last year we agreed that I'd just keep an eye on it and if I felt the pain was getting worse I'll go back and talk to them again.&lt;br /&gt;&lt;br /&gt;Nice to have that bit of worry off my mind, at any rate.</content>
  </entry>
</feed>

