<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Luke Marsden</title>
	<atom:link href="http://lukemarsden.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://lukemarsden.net/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 02 Oct 2011 14:34:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>2011 so far (photos)</title>
		<link>http://lukemarsden.net/blog/2011/10/2011-so-far-photos/</link>
		<comments>http://lukemarsden.net/blog/2011/10/2011-so-far-photos/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 14:30:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=259</guid>
		<description><![CDATA[Some photos of my year so far]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.facebook.com/media/set/?set=a.942676312319.2465979.36809620&#038;l=aaaa7a7a74&#038;type=1">Some photos</a> of my year so far <img src='http://lukemarsden.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2011/10/2011-so-far-photos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A warning to anyone using Twisted 10.2 on FreeBSD</title>
		<link>http://lukemarsden.net/blog/2011/02/a-warning-to-anyone-using-twisted-10-2-on-freebsd/</link>
		<comments>http://lukemarsden.net/blog/2011/02/a-warning-to-anyone-using-twisted-10-2-on-freebsd/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 20:10:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Twisted]]></category>
		<category><![CDATA[Web cluster]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=243</guid>
		<description><![CDATA[Read this ticket first! http://twistedmatrix.com/trac/ticket/4881 Basically, it comes down to running: mount -t fdescfs null /dev/fd and putting the equivalent in your /etc/fstab &#8212; otherwise, Twisted will have mysterious problems related to file descriptors and child processes. A fix is due for review and should be included in trunk at some point. Thanks to David [...]]]></description>
			<content:encoded><![CDATA[<p>Read this ticket first!</p>
<p><a href="http://twistedmatrix.com/trac/ticket/4881">http://twistedmatrix.com/trac/ticket/4881</a></p>
<p>Basically, it comes down to running:</p>
<pre>
mount -t fdescfs null /dev/fd
</pre>
<p>and putting the equivalent in your /etc/fstab &#8212; otherwise, Twisted will have mysterious problems related to file descriptors and child processes. A fix is due for review and should be included in trunk at some point.</p>
<p>Thanks to David (big thanks for hosting), Glyph, JP and Itamar &#8212; I had a great time at the Twisted sprint last night <img src='http://lukemarsden.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2011/02/a-warning-to-anyone-using-twisted-10-2-on-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing txMySQL &#8211; native async Twisted MySQL protocol</title>
		<link>http://lukemarsden.net/blog/2011/02/announcing-txmysql-native-async-twisted-mysql-protocol/</link>
		<comments>http://lukemarsden.net/blog/2011/02/announcing-txmysql-native-async-twisted-mysql-protocol/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 23:08:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Twisted]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=231</guid>
		<description><![CDATA[I am pleased to announce the release of txMySQL, a native Twisted MySQL protocol implementation at https://github.com/hybridlogic/txMySQL &#8212; and my first ever open source release. The bulk of this code is courtesy of _habnabit (thank you!), I just added authentication support and fixed a couple of bugs which were stopping the MySQL protocol parser working. [...]]]></description>
			<content:encoded><![CDATA[<p>I am pleased to announce the release of txMySQL, a native Twisted MySQL protocol implementation at <a href="https://github.com/hybridlogic/txMySQL">https://github.com/hybridlogic/txMySQL</a> &#8212; and my first ever open source release.</p>
<p>The bulk of this code is courtesy of _habnabit (thank you!), I just added authentication support and fixed a couple of bugs which were stopping the MySQL protocol parser working.</p>
<p>This works well enough to .fetchall() basic results sets and .query() any other MySQL statements you care to run. See example.py.</p>
<p>Feel free to fork, tweak, fix, use, report issues, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2011/02/announcing-txmysql-native-async-twisted-mysql-protocol/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Running FreeBSD 8.1 as a Xen HVM DomU on Flexiant</title>
		<link>http://lukemarsden.net/blog/2010/11/running-freebsd-8-1-as-a-xen-hvm-domu-on-flexiant/</link>
		<comments>http://lukemarsden.net/blog/2010/11/running-freebsd-8-1-as-a-xen-hvm-domu-on-flexiant/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 14:06:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Web cluster]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=169</guid>
		<description><![CDATA[Just thought I&#8217;d share the incantations which were necessary to get FreeBSD 8.1 XENHVM kernel to work well on Flexiant, with paravirtualised network and disk: Just before the kernel boots (which you have to be quick to catch with Flexiant&#8217;s VNC client) hit F6 on the bootloader and type: set hw.clflush_disable=1 boot This will allow [...]]]></description>
			<content:encoded><![CDATA[<p>Just thought I&#8217;d share the incantations which were necessary to get FreeBSD 8.1 XENHVM kernel to work well on <a href="http://www.flexiant.com/">Flexiant</a>, with paravirtualised network and disk:</p>
<p>Just before the kernel boots (which you have to be quick to catch with Flexiant&#8217;s VNC client) hit F6 on the bootloader and type:</p>
<pre>
set hw.clflush_disable=1
boot
</pre>
<p>This will allow you to boot even a GENERIC kernel. Once you&#8217;re booted, chuck <tt>hw.clflush_disable="1"</tt> into /boot/loader.conf to make this permanent.</p>
<p>You&#8217;ll then want to build your own kernel for paravirtualised network and disk drivers. Edit the XENHVM kernel config (see the <a href="http://www.freebsd.org/doc/handbook/kernelconfig-building.html">FreeBSD handbook on compiling your own kernel</a>) &#8211; comment out the MODULES_OVERRIDE line which disables building all the modules (assuming you want ZFS support) and also comment out the whole section about WITNESS and INVARIANT, as having this enabled will slow down your kernel quite significantly.</p>
<p>Then you&#8217;ll need to patch the network driver as per this post (manually, since the code has changed a bit), else you get a lot of dropped packets:</p>
<p><a href="http://www.mail-archive.com/freebsd-xen@freebsd.org/msg00598.html">http://www.mail-archive.com/freebsd-xen@freebsd.org/msg00598.html</a></p>
<p>Then just (as root):</p>
<pre>
cd /usr/src
make buildkernel KERNCONF=XENHVM
make installkernel KERNCONF=XENHVM
shutdown -r now
</pre>
<p>And enjoy your speedy FreeBSD 8.1 VM in the cloud!</p>
<p>Oh and check out our <a href="http://www.hybrid-cluster.com/">cloud web hosting platform, Hybrid Web Cluster</a> which takes advantage of this <img src='http://lukemarsden.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2010/11/running-freebsd-8-1-as-a-xen-hvm-domu-on-flexiant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boom Festival 2010 road-trip</title>
		<link>http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/</link>
		<comments>http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 12:30:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=177</guid>
		<description><![CDATA[Here are just a few of the images from our road-trip to Boom Festival 2010:]]></description>
			<content:encoded><![CDATA[<p>Here are just a few of the images from our road-trip to Boom Festival 2010:</p>

<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/010/' title='First group photo, somewhere in France'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/010-150x150.jpg" class="attachment-thumbnail" alt="First group photo, somewhere in France" title="First group photo, somewhere in France" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/015/' title='Sparkling stars of light'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/015-150x150.jpg" class="attachment-thumbnail" alt="Sparkling stars of light" title="Sparkling stars of light" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/020/' title='Sam throwing himself into a freezing mountain stream near Torla'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/020-150x150.jpg" class="attachment-thumbnail" alt="Sam throwing himself into a freezing mountain stream near Torla" title="Sam throwing himself into a freezing mountain stream near Torla" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/030/' title='Group photo!'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/030-150x150.jpg" class="attachment-thumbnail" alt="Group photo!" title="Group photo!" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/040/' title='Almost at the top (near Torla, Ordersa National Park, northern Spain)'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/040-150x150.jpg" class="attachment-thumbnail" alt="Almost at the top (near Torla, Ordersa National Park, northern Spain)" title="Almost at the top (near Torla, Ordersa National Park, northern Spain)" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/043/' title='The view at 2,200m up, well worth it!'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/043-150x150.jpg" class="attachment-thumbnail" alt="The view at 2,200m up, well worth it!" title="The view at 2,200m up, well worth it!" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/045/' title='A strange creature we found on our ascent'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/045-150x150.jpg" class="attachment-thumbnail" alt="A strange creature we found on our ascent" title="A strange creature we found on our ascent" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/050/' title='Margo &amp; Sophie descend'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/050-150x150.jpg" class="attachment-thumbnail" alt="Margo &amp; Sophie descend" title="Margo &amp; Sophie descend" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/055/' title='The room kept filling with smoke'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/055-150x150.jpg" class="attachment-thumbnail" alt="The room kept filling with smoke" title="The room kept filling with smoke" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/060/' title='Modern art exhibition in Tolouse, France -- we came for lunch and couldn&#039;t help staying'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/060-150x150.jpg" class="attachment-thumbnail" alt="Modern art exhibition in Tolouse, France -- we came for lunch and couldn&#039;t help staying" title="Modern art exhibition in Tolouse, France -- we came for lunch and couldn&#039;t help staying" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/065/' title='Painting with light'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/065-150x150.jpg" class="attachment-thumbnail" alt="Painting with light" title="Painting with light" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/068/' title='Fuck yeah!'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/068-150x150.jpg" class="attachment-thumbnail" alt="Fuck yeah!" title="Fuck yeah!" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/070/' title='Another campsite sunset'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/070-150x150.jpg" class="attachment-thumbnail" alt="Another campsite sunset" title="Another campsite sunset" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/080/' title='Beautiful Kate'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/080-150x150.jpg" class="attachment-thumbnail" alt="Beautiful Kate" title="Beautiful Kate" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/attachment/090/' title='Our lovely friend Louise'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/090-150x150.jpg" class="attachment-thumbnail" alt="Our lovely friend Louise" title="Our lovely friend Louise" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0293/' title='Shortest possible exposure, smallest possible aperture'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0293-150x150.jpg" class="attachment-thumbnail" alt="Shortest possible exposure, smallest possible aperture" title="Shortest possible exposure, smallest possible aperture" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0306/' title='Here for months making it beautiful'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0306-150x150.jpg" class="attachment-thumbnail" alt="Here for months making it beautiful" title="Here for months making it beautiful" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0312/' title='Colours and light'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0312-150x150.jpg" class="attachment-thumbnail" alt="Colours and light" title="Colours and light" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0350/' title='Lovely long exposures'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0350-150x150.jpg" class="attachment-thumbnail" alt="Lovely long exposures" title="Lovely long exposures" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0356/' title='Green space just north of the sacred fire'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0356-150x150.jpg" class="attachment-thumbnail" alt="Green space just north of the sacred fire" title="Green space just north of the sacred fire" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0390/' title='Incredible clarity of reality'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0390-150x150.jpg" class="attachment-thumbnail" alt="Incredible clarity of reality" title="Incredible clarity of reality" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0467/' title='Up!'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0467-150x150.jpg" class="attachment-thumbnail" alt="Up!" title="Up!" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0473/' title='Can you see what we&#039;re trying to say?'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0473-150x150.jpg" class="attachment-thumbnail" alt="Can you see what we&#039;re trying to say?" title="Can you see what we&#039;re trying to say?" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0485/' title='Playing with shapes'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0485-150x150.jpg" class="attachment-thumbnail" alt="Playing with shapes" title="Playing with shapes" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0494/' title='A declaration of love inscribed by laser light in the trees'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0494-150x150.jpg" class="attachment-thumbnail" alt="A declaration of love inscribed by laser light in the trees" title="A declaration of love inscribed by laser light in the trees" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0502/' title='Sleepers at the chillout'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0502-150x150.jpg" class="attachment-thumbnail" alt="Sleepers at the chillout" title="Sleepers at the chillout" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0530/' title='Between 5 and 7pm they turn off the music'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0530-150x150.jpg" class="attachment-thumbnail" alt="Between 5 and 7pm they turn off the music" title="Between 5 and 7pm they turn off the music" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0535/' title='The Dance Temple'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0535-150x150.jpg" class="attachment-thumbnail" alt="The Dance Temple" title="The Dance Temple" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0548/' title='Sunset at the tripical beach'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0548-150x150.jpg" class="attachment-thumbnail" alt="Sunset at the tripical beach" title="Sunset at the tripical beach" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0586/' title='Dancing ladies of the lake'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0586-150x150.jpg" class="attachment-thumbnail" alt="Dancing ladies of the lake" title="Dancing ladies of the lake" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0603/' title='Double exposure'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0603-150x150.jpg" class="attachment-thumbnail" alt="Double exposure" title="Double exposure" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0606/' title='Bizarre'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0606-150x150.jpg" class="attachment-thumbnail" alt="Bizarre" title="Bizarre" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0628/' title='An expectant Louise'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0628-150x150.jpg" class="attachment-thumbnail" alt="An expectant Louise" title="An expectant Louise" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0633/' title='Smile! Kate painting with light'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0633-150x150.jpg" class="attachment-thumbnail" alt="Smile! Kate painting with light" title="Smile! Kate painting with light" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0657/' title='Sunset from our camp site'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0657-150x150.jpg" class="attachment-thumbnail" alt="Sunset from our camp site" title="Sunset from our camp site" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0678/' title='This emerged from the lake one night'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0678-150x150.jpg" class="attachment-thumbnail" alt="This emerged from the lake one night" title="This emerged from the lake one night" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0694/' title='Whirling dervishes of fire'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0694-150x150.jpg" class="attachment-thumbnail" alt="Whirling dervishes of fire" title="Whirling dervishes of fire" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0707/' title='One night all these lanterns just appeared along the shore'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0707-150x150.jpg" class="attachment-thumbnail" alt="One night all these lanterns just appeared along the shore" title="One night all these lanterns just appeared along the shore" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0718/' title='More stars'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0718-150x150.jpg" class="attachment-thumbnail" alt="More stars" title="More stars" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0720/' title='Stars and light'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0720-150x150.jpg" class="attachment-thumbnail" alt="Stars and light" title="Stars and light" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0721/' title='Moonscape or moonlit boom?'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0721-150x150.jpg" class="attachment-thumbnail" alt="Moonscape or moonlit boom?" title="Moonscape or moonlit boom?" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0739/' title='Pastel sky and phallic eyes'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0739-150x150.jpg" class="attachment-thumbnail" alt="Pastel sky and phallic eyes" title="Pastel sky and phallic eyes" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0747/' title='Nicely composed'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0747-150x150.jpg" class="attachment-thumbnail" alt="Nicely composed" title="Nicely composed" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0767/' title='9am on a weekday morning'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0767-150x150.jpg" class="attachment-thumbnail" alt="9am on a weekday morning" title="9am on a weekday morning" /></a>
<a href='http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/img_0772/' title='Dusty sunrise'><img width="150" height="150" src="http://lukemarsden.net/blog/wp-content/uploads/2010/09/img_0772-150x150.jpg" class="attachment-thumbnail" alt="Dusty sunrise" title="Dusty sunrise" /></a>

]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2010/09/boom-festival-2010-road-trip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last three weeks</title>
		<link>http://lukemarsden.net/blog/2010/07/last-three-weeks/</link>
		<comments>http://lukemarsden.net/blog/2010/07/last-three-weeks/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 23:53:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Web cluster]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=160</guid>
		<description><![CDATA[The last three weeks have been pretty big for me. A couple of Fridays ago, after a lovely mini-holiday in Dublin with Kate (in the days after she was talking at the Aristotelian society conference), I demonstrated my web cluster to ElasticHosts, and they loved it! We&#8217;ve provisionally agreed a referral agreement as their &#8220;cloud [...]]]></description>
			<content:encoded><![CDATA[<p>The last three weeks have been pretty big for me.</p>
<p>A couple of Fridays ago, after a lovely mini-holiday in Dublin with Kate (in the days after she was talking at the <a href="http://www.aristoteliansociety.org.uk/jsessions/index.html">Aristotelian society conference</a>), I demonstrated my <a href="http://www.hybrid-cluster.com/">web cluster</a> to <a href="http://www.elastichosts.com/">ElasticHosts</a>, and they loved it! We&#8217;ve provisionally agreed a referral agreement as their &#8220;cloud sites provider of choice&#8221;. My favourite bit was when Richard, their CEO, described our platform as &#8220;clearly the next generation of shared hosting&#8221;. I&#8217;ve only been working for three years to hear that&#8230; <img src='http://lukemarsden.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The following Wednesday I jumped straight in the deep end with public speaking, explaining the technology I&#8217;ve spent three years developing in front of a terrifyingly large room full of people at the <a href="http://hub.opensolaris.org/bin/view/User+Group+losug/">London OpenSolaris User Group</a>. It went well! After getting over the initial nerves I settled in nicely to the talk. Getting some laughs for &#8220;here&#8217;s some Dtrace, I haven&#8217;t got any idea how it works!&#8221; really boosted my confidence and the rest was easy. I can imagine talks could easily go the other way though. I was lucky.</p>
<p>The same Thursday, hours after my talk, I went to the <a href="http://www.tweetdeck.com/">TweetDeck</a> offices in Old Street, London. They offered me a job! I&#8217;m really excited about this. Reza, their sole backend engineer at present, and my new boss, looks set to be a real mentor for me. Here&#8217;s a short list of just some of the truly exciting technologies I&#8217;ll be working with there: Twisted (of course), RabbitMQ, Memcache, Django, Boto, Celery, Fabric, Node.js, Redis, Nginx. As technologies for building web-scale distributed systems with an emphasis on Python, this couldn&#8217;t be a better fit! The fact that they&#8217;re flexible enough to offer me a position with two days in London and one day working from home makes it totally awesome. Thanks TweetDeck!</p>
<p>I should say at this point that I&#8217;m really indebted to Simpleweb back in Bristol. They&#8217;ve been really flexible with me and I&#8217;ve really valued the fact that my job there has chilled me out, rather than stressing me out. It was exactly what I needed to get away from the freelance lifestyle which was causing me serious headaches about 10 months ago. On the flipside, I am also glad that I won&#8217;t be building websites any more. Even better that I can say that I&#8217;ll hopefully never have to write another line of PHP. Systems development makes more sense for me.</p>
<p>So on Friday I handed in my notice, which was a relief to get out in the open. I really don&#8217;t like keeping secrets.</p>
<p>Then I had Saturday off! Actually OFF! It was awesome. <a href="http://twitter.com/lostplan">Sol</a> was around, so we spent the whole day drinking ale, having multiple barbecues and playing with the chickens in our garden. Got to see <a href="http://www.ldexterldesign.co.uk/">Lewis</a> too. Really nice day off.</p>
<p>So that brings us pretty much up to today&#8230; I&#8217;m on the train back to Bristol at 12:49am (work tomorrow at 9 *sigh*) after a great FreeBSD users meeting where I was talking again. I had a really great evening. It was a much smaller event, about 20 people in a small-ish conference room with free beer and crisps. Really friendly and very technical vibe, seemingly quite a lot of core FreeBSD and OpenBSD contributors. Exciting to get to know some of the community.</p>
<p>Got a warm reception to my talk once again and enjoyed it more this time. As it was a much more informal event there was interruptions and dialogue, which was fun as it allowed us to go off on interesting tangents. Went to the pub with everyone afterwards and over a few drinks had several rather interesting conversations. Sean (whose rack Digital Crocus is hosted in) came along to the pub afterwards as well. I was surprised by just how many techies working in banks there were there, pretty much 100%!</p>
<p>One such guy I spoke with was talking about his background in synchronous distributed filesystems for a banking operation (for data centres 20 miles apart, failover via BGP). His broad impression of our product seemed good, he said he&#8217;d be interested in how we deal with the problems we&#8217;ll find when running clusters of hundreds of nodes across three data centres! I can&#8217;t wait to get to the point of solving those problems <img src='http://lukemarsden.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>One other bit of news &#8212; we had our first genuine unsolicited sales enquiry today from a Belgian ISP who want a 12-node cluster. Woohoo!</p>
<p>So I&#8217;m tired but happy &#8212; looking forward to my holiday in August. I feel like I&#8217;m pretty well sorted here in England. I think working in London is going to present many exciting opportunities. I can&#8217;t believe how well everything&#8217;s going!</p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2010/07/last-three-weeks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>defaultdict(Deferred)</title>
		<link>http://lukemarsden.net/blog/2010/07/defaultdictdeferred/</link>
		<comments>http://lukemarsden.net/blog/2010/07/defaultdictdeferred/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 09:49:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Twisted]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/2010/07/defaultdictdeferred/</guid>
		<description><![CDATA[One of my favourite Twisted patterns is the combination of the powerful twisted.internet.defer.Deferred with collections.defaultdict. Start with the right imports: from collections import defaultdict from twisted.internet.defer import Deferred Now, a defaultdict allows you to say: a = defaultdict(lambda: 0) a[10] += 1 print a[10] # => 1 That is, you pass it a function (lambda: [...]]]></description>
			<content:encoded><![CDATA[<p>One of my favourite Twisted patterns is the combination of the powerful twisted.internet.defer.Deferred with collections.defaultdict.</p>
<p>Start with the right imports:</p>
<pre>
from collections import defaultdict
from twisted.internet.defer import Deferred
</pre>
<p>Now, a defaultdict allows you to say:</p>
<pre>
a = defaultdict(lambda: 0)
a[10] += 1
print a[10] # => 1
</pre>
<p>That is, you pass it a function (lambda: 0 is just the function that returns zero every time you call it) which returns the default value for the values of the mapping, and then you can access the keys of the mapping and get the default value for a key which doesn&#8217;t yet exist in the mapping, instead of a KeyError.</p>
<p>Combining this with deferreds allows an extraordinarily powerful mechanism to attach event handlers to arbitrary events which may not have happened yet. Here&#8217;s a contrived example (recall, in Python a class constructor is just a callable which returns an instance of that class, which is why we don&#8217;t wrap Deferred in a lambda):</p>
<pre>
on_mount = defaultdict(Deferred)

# ... I want to do something if filesystem abc ever gets mounted...

def hooray(arg):
	print "My favourite filesystem got mounted - %s" % str(arg)

on_mount['abc'].addCallback(hooray)
</pre>
<p>Now, we can do this without ever knowing that &#8216;abc&#8217; might get mounted (the filesystem name might come from the network), or pre-populating the dictionary at all.</p>
<p>Later on in the code, we might actually mount &#8216;abc&#8217;:</p>
<pre>
def mount_handler(filesystem):
	on_mount[filesystem].callback(True)
	on_mount[filesystem] = Deferred() # reset the deferred
</pre>
<p>The beauty of it is that any number of event handlers (zero or more) can be attached to on_mount, with no additional house-keeping. All the callbacks attached to the deferred will get fired when the filesystem gets mounted.</p>
<p>The only thing to notice is that we have to reset the deferred if this event might be triggered again, as deferreds are one-shot. If it&#8217;s a one-off event, you can omit this, and then you get the additional nice behaviour that if you addCallback to a deferred after it&#8217;s been fired, you get an immediate callback with None as the argument, to indicate that the deferred has already run (from which you can deduce that the filesystem is already mounted).</p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2010/07/defaultdictdeferred/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Awesome profile visualisation</title>
		<link>http://lukemarsden.net/blog/2010/06/awesome-profile-visualisation/</link>
		<comments>http://lukemarsden.net/blog/2010/06/awesome-profile-visualisation/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 00:29:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web cluster]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=143</guid>
		<description><![CDATA[This is call profile graph of my latest invention, AwesomeProxy. This lets us move sites and databases between servers without a single failed HTTP request. Working on some optimisations, I wanted to see how much time was spent in each function call. Gprof2Dot outputs pretty awesome graphs. This is what you get when you run [...]]]></description>
			<content:encoded><![CDATA[<p>This is call profile graph of my latest invention, AwesomeProxy. This lets us move sites and databases between servers without a <em>single failed HTTP request</em>. Working on some optimisations, I wanted to see how much time was spent in each function call.</p>
<p><a href="http://code.google.com/p/jrfonseca/wiki/Gprof2Dot">Gprof2Dot</a> outputs pretty awesome graphs. This is what you get when you run AwesomeProxy for three minutes at 10 requests per second (each request taking 3 seconds and doing a database update). I really like how you can see the structure of the code <img src='http://lukemarsden.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><center><a href="/images/stat.png"><img src="/images/stat-small.png" style="border:10px solid white;"></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2010/06/awesome-profile-visualisation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Burial &amp; Four Tet</title>
		<link>http://lukemarsden.net/blog/2010/04/burial-four-tet/</link>
		<comments>http://lukemarsden.net/blog/2010/04/burial-four-tet/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 07:02:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=137</guid>
		<description><![CDATA[This is what I&#8217;m listening to at the moment: Burial &#038; Four Tet &#8211; Moth It&#8217;s from a rare 12&#8243; vinyl, and it&#8217;s totally beautiful. Thanks to Kate for finding it]]></description>
			<content:encoded><![CDATA[<p>This is what I&#8217;m listening to at the moment: <a href="http://lukemarsden.net/music/02-burial_and_four_tet-moth.mp3">Burial &#038; Four Tet &#8211; Moth</a></p>
<p>It&#8217;s from a rare 12&#8243; vinyl, and it&#8217;s totally beautiful.</p>
<p>Thanks to Kate for finding it <img src='http://lukemarsden.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2010/04/burial-four-tet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://lukemarsden.net/music/02-burial_and_four_tet-moth.mp3" length="13563668" type="audio/mpeg" />
		</item>
		<item>
		<title>Hybrid Cluster website</title>
		<link>http://lukemarsden.net/blog/2010/03/hybrid-cluster-website/</link>
		<comments>http://lukemarsden.net/blog/2010/03/hybrid-cluster-website/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 23:09:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web cluster]]></category>

		<guid isPermaLink="false">http://lukemarsden.net/blog/?p=121</guid>
		<description><![CDATA[I give you:]]></description>
			<content:encoded><![CDATA[<p>I give you:</p>
<p><a href="http://www.hybrid-cluster.com"><img  style="border:2px solid #444;"  src="/hc-live.png" alt="Hybrid Web Cluster cloud sites cloud web hosting"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukemarsden.net/blog/2010/03/hybrid-cluster-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

