<?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>Matt Knight</title>
	<atom:link href="http://www.matt-knight.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matt-knight.co.uk</link>
	<description>Enterprising technology</description>
	<lastBuildDate>Fri, 25 Nov 2011 09:28:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Dynamic DNS IP updating with node.js</title>
		<link>http://www.matt-knight.co.uk/2011/dynamic-dns-ip-updating-with-node-js/</link>
		<comments>http://www.matt-knight.co.uk/2011/dynamic-dns-ip-updating-with-node-js/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 09:28:10 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Home Server]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=161</guid>
		<description><![CDATA[My situation isn&#8217;t an unusual one &#8211; I&#8217;ve got a server at home that I want to expose to the internet, but my ISP provides me with a dynamic IP address that changes every time my router reconnects. This doesn&#8217;t happen often (maybe once a month or so), but if it does change I still [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/dynamic-dns-ip-updating-with-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graphite, nginx and supervisord</title>
		<link>http://www.matt-knight.co.uk/2011/graphite-nginx-and-supervisord/</link>
		<comments>http://www.matt-knight.co.uk/2011/graphite-nginx-and-supervisord/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 18:01:24 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Home Server]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=151</guid>
		<description><![CDATA[In case you haven&#8217;t met it before, Graphite is a really nice real-time graphing tool. It&#8217;s simple to add data into it, and it has a nice web-interface for viewing the graphs. Think Cacti, but 10x easier to use and prettier. Graphite uses a custom data store called Whisper (rather than RRDTool which Cacti is [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/graphite-nginx-and-supervisord/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eos is Born</title>
		<link>http://www.matt-knight.co.uk/2011/eos-is-born/</link>
		<comments>http://www.matt-knight.co.uk/2011/eos-is-born/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 17:16:39 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Home Server]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=142</guid>
		<description><![CDATA[Having been thinking about doing it for a number of years but never getting round to it, I&#8217;ve finally gone and bought myself a home server &#8211; an HP ProLiant Microserver. For £250 (and then £100 cashback from HP as well), the specification is pretty good: Dual Core AMD Turion II Neo N40L @ 1.5 GHz [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/eos-is-born/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimising Zend_Config</title>
		<link>http://www.matt-knight.co.uk/2011/optimising-zend-config/</link>
		<comments>http://www.matt-knight.co.uk/2011/optimising-zend-config/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 18:37:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=131</guid>
		<description><![CDATA[Zend Framework is a popular MVC framework written in PHP. There has been substantial development on it over the past couple of years, and it is now often used in enterprise environments to power websites belonging to large blue chip companies. However, as a site grows in terms of size, complexity and traffic, the limitations of [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/optimising-zend-config/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Recursive Closures in PHP</title>
		<link>http://www.matt-knight.co.uk/2011/recursive-closures-in-php/</link>
		<comments>http://www.matt-knight.co.uk/2011/recursive-closures-in-php/#comments</comments>
		<pubDate>Tue, 03 May 2011 20:21:35 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[closures]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=120</guid>
		<description><![CDATA[Here&#8217;s a useful trick I came across a while back for using closures in PHP. For those people who aren&#8217;t aware of this, starting from PHP 5.3, it is possible to create an anonymous function and assign it to a variable &#8211; we call this a closure. Using the example from the PHP manual page [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/recursive-closures-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating from lighttpd to nginx</title>
		<link>http://www.matt-knight.co.uk/2011/migrating-from-lighttpd-to-nginx/</link>
		<comments>http://www.matt-knight.co.uk/2011/migrating-from-lighttpd-to-nginx/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 12:36:44 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=93</guid>
		<description><![CDATA[This site currently runs from a relatively low-spec VPS running Ubuntu 10.04 LTS. With just 1GB memory, it is running several websites as well as various other servers &#8211; mail, database, VCS, etc. I set it up over a year ago, and opted for lighttpd over Apache for reasons of performance &#8211; I didn&#8217;t need [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/migrating-from-lighttpd-to-nginx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Node.js vs PHP Performance &#8211; JSON Decoding</title>
		<link>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-json-decoding/</link>
		<comments>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-json-decoding/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 13:34:19 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=87</guid>
		<description><![CDATA[In the last article, we saw that when it comes to maths, node.js was nearly 50x faster than PHP. This time, we&#8217;re going to look at JSON &#8211; a data format at the core of several modern technologies such as node.js and MongoDB. You might expect node.js to be incredibly efficient at JSON encoding/decoding, whereas [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-json-decoding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Node.js vs PHP Performance &#8211; Maths</title>
		<link>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-maths/</link>
		<comments>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-maths/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 08:16:23 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[maths]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=78</guid>
		<description><![CDATA[Node.js has a reputation of being a very efficient framework, and most of the discussions around this focus on its event-driven nature, rather than the engine itself. I think it&#8217;s pretty obvious to most that when written properly, an event-driven application can be more efficient. However, what&#8217;s not so often discussed is how the JavaScript [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/node-js-vs-php-performance-maths/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Concurrent PHP Sessions</title>
		<link>http://www.matt-knight.co.uk/2011/concurrent-php-sessions/</link>
		<comments>http://www.matt-knight.co.uk/2011/concurrent-php-sessions/#comments</comments>
		<pubDate>Sun, 24 Apr 2011 09:14:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sessions]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=70</guid>
		<description><![CDATA[Sessions in PHP are handled by the $_SESSION superglobal and several session_*() functions. One thing you may not realise about PHP sessions though, is that natively they are blocking to make them thread-safe. What this means is that once a PHP session is started, nothing else can work with that session until it is closed. [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/concurrent-php-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-threaded node.js message queue consumers</title>
		<link>http://www.matt-knight.co.uk/2011/multi-threaded-node-js-message-queue-consumers/</link>
		<comments>http://www.matt-knight.co.uk/2011/multi-threaded-node-js-message-queue-consumers/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 19:44:56 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[crowdcontrol]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[web workers]]></category>

		<guid isPermaLink="false">http://www.matt-knight.co.uk/?p=62</guid>
		<description><![CDATA[So far, in my investigation of node.js and Service-Oriented Architecture, I have shown that node.js can be successfully used to consume messages from a queue as part of a wider service. However, one of the potential limitations of node.js is that it is entirely single-threaded. So is my title a little misleading when it talks [...]]]></description>
		<wfw:commentRss>http://www.matt-knight.co.uk/2011/multi-threaded-node-js-message-queue-consumers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

