<?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>Journal de Jacques &#187; Geekery</title>
	<atom:link href="http://chester.id.au/category/geekery/feed/" rel="self" type="application/rss+xml" />
	<link>http://chester.id.au</link>
	<description>Things I write. Stuff that happens to me.</description>
	<lastBuildDate>Mon, 14 May 2012 07:48:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Staggering news</title>
		<link>http://chester.id.au/2010/01/18/staggering-news/</link>
		<comments>http://chester.id.au/2010/01/18/staggering-news/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 10:52:23 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/?p=347</guid>
		<description><![CDATA[I&#8217;ve changed my main programming font from Bitstream Vera Sans Mono to Inconsolata. The latter is slightly neater and more compact than the former, but I will always retain fond memories of Vera.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve changed my main programming font from <a href="http://www.gnome.org/fonts/">Bitstream Vera Sans Mono</a> to <a href="http://www.levien.com/type/myfonts/inconsolata.html">Inconsolata</a>.</p>
<p>The latter is slightly neater and more compact than the former, but I will always retain fond memories of Vera.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2010/01/18/staggering-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forgive me, Linode!</title>
		<link>http://chester.id.au/2009/12/14/forgive-me-linode/</link>
		<comments>http://chester.id.au/2009/12/14/forgive-me-linode/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 09:00:32 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/?p=272</guid>
		<description><![CDATA[Recently I&#8217;ve opened a new account with Linode in anticipation of moving a server across to them. So far they&#8217;ve been pretty good. My current provider is Slicehost, who are also excellent and whose reliability has been utterly flawless &#8212; &#8230; <a href="http://chester.id.au/2009/12/14/forgive-me-linode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve opened a new account with Linode in anticipation of moving a server across to them. So far they&#8217;ve been pretty good. My current provider is Slicehost, who are also excellent and whose reliability has been utterly flawless &#8212; I have servers with ~500 days of uptime with them. I can recommend both services.</p>
<p>As a sort of quick test for Linode performance, I decided to run ab against the new server from my desktop here at home. I fire it up for the first run: 100 requests, 10 connections. It performs well. Next I jump to the next order of magnitude: 1000 requests, 100 connections. It times out.</p>
<p>In doing so it also kills off the SSH sessions I have logged into the Linode server.</p>
<p>After some experimentation, it becomes clear that the magic number of connections is 32. If I have 32 or more connections through ab, the connection locks up.</p>
<p>I opened a ticket with Linode and began trying to nut it out. I checked the iptables settings, the nginx settings, various kernel TCP/IP settings. All to no avail.</p>
<p>Today I tried out the 1000/100 test from another server I control and <em>voila</em>, it works fine. So it turns out that the limit on connections wasn&#8217;t at Linode&#8217;s end, it was at my ISP (iinet). They must have introduced this recently as I recall performing similar &#8220;sanity test&#8221; benchmarks on remote servers before.</p>
<p>Anyhow. The moral of the story is: I shouldn&#8217;t have thought unkind thoughts about Linode. It wasn&#8217;t their fault. However I offer as a suggestion that in future cases like these, they run ab from <em>their</em> side to eliminate ISP middlemen problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2009/12/14/forgive-me-linode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NeoAxis: Some Whinging</title>
		<link>http://chester.id.au/2009/09/21/neoaxis-some-whinging/</link>
		<comments>http://chester.id.au/2009/09/21/neoaxis-some-whinging/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 03:08:40 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/?p=86</guid>
		<description><![CDATA[One of my final semester units at UWA is Game Design &#38; Multimedia. The engine used for this course is NeoAxis, which is a sort of franken-framework built in a lab out of parts of opensource code. For instance, it &#8230; <a href="http://chester.id.au/2009/09/21/neoaxis-some-whinging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of my final semester units at UWA is Game Design &amp; Multimedia. The engine used for this course is <a title="NeoAxis homepage" href="http://www.neoaxisgroup.com/">NeoAxis</a>, which is a sort of franken-framework built in a lab out of parts of opensource code.</p>
<p>For instance, it uses the formidable <a href="http://www.ogre3d.org/">OGRE</a> for rendering.</p>
<p>There are two things (so far!) that bug me about NeoAxis.</p>
<p>The first thing is the documentation. It is pathetically incomplete. It is extremely annoying to be looking stuff up in the help file (only supplied in the useless CHM format), only to find a blank page. And even when you <em>do</em> find something more substantial, it&#8217;s apparently translated from Russian (really, I&#8217;m not kidding) and has a lovely Engrish feel to it. Naturally this is unhelpful.</p>
<p>The second, much smaller gripe, is the coding style. Ostensibly NeoAxis games are meant to be written in C#. However the sourcecode that we are basing our project on is riddled with C/C++ idioms. The most obvious of these is the <code>if(!someFunction()) error_handler();</code> idiom, which is scattered liberally throughout the code. I guess try/catch was a bridge too far for most of the code.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2009/09/21/neoaxis-some-whinging/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fuggedaboudit</title>
		<link>http://chester.id.au/2008/12/01/fuggedaboudit/</link>
		<comments>http://chester.id.au/2008/12/01/fuggedaboudit/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 09:21:25 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/?p=34</guid>
		<description><![CDATA[A much easier way to install LuaSQL, on Ubuntu at least, is to use aptitude. I wasn&#8217;t using aptitude because I didn&#8217;t see the driver for PostgreSQL in aptitude. But it&#8217;s there if I upgrade to a later version of &#8230; <a href="http://chester.id.au/2008/12/01/fuggedaboudit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A much easier way to install LuaSQL, on Ubuntu at least, is to use aptitude. I wasn&#8217;t using aptitude because I didn&#8217;t see the driver for PostgreSQL in aptitude. But it&#8217;s there if I upgrade to a later version of Ubuntu.</p>
<p>So. Forget my last entry.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2008/12/01/fuggedaboudit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LuaSQL is not installer-friendly.</title>
		<link>http://chester.id.au/2008/11/22/luasql-is-not-installer-friendly/</link>
		<comments>http://chester.id.au/2008/11/22/luasql-is-not-installer-friendly/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 09:56:16 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/?p=31</guid>
		<description><![CDATA[Lua is a nifty little language that I am putting to work in a personal project. Unfortunately it is lacking in some departments &#8212; while it has a library distribution framework in LuaRocks, it doesn&#8217;t have momentum enough for this &#8230; <a href="http://chester.id.au/2008/11/22/luasql-is-not-installer-friendly/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lua is a nifty little language that I am putting to work in a personal project. Unfortunately it is lacking in some departments &#8212; while it has a library distribution framework in <a href="http://luarocks.org/">LuaRocks</a>, it doesn&#8217;t have momentum enough for this system to be comprehensive and up-to-date.</p>
<p><a href="http://keplerproject.org/luasql/">LuaSQL</a> is a perfect example. This little library provides a very think DBI-style layer to talk to various databases. But it&#8217;s not available as a LuaRock.</p>
<p><span id="more-31"></span></p>
<p>Instead it is necessary to install it by hand. It&#8217;s packaged as a tarball, which isn&#8217;t so bad. But there&#8217;s no configure script, so some changes must be made by hand before it will compile.</p>
<p>For ubuntu, the locations of the libraries are different from whatever platform the original LuaSQL code is written on. Also, you will get two gcc errors when you go to &#8216;make&#8217;; the first is a PIC error, which is easily fixed by adding -fPIC to the command line switches. The second is a little more subtle.</p>
<p>Lua is written in ANSI C, according to all the literature. This seems to actually mean C99. LuaSQL uses the gcc switch -ansi, which actually defaults to C90, not C99. You need to replace the -ansi switch with -std=c99 for LuaSQL to compile properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2008/11/22/luasql-is-not-installer-friendly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A fix for cat2email in Wordpress 2.1 and above</title>
		<link>http://chester.id.au/2007/08/16/a-fix-for-cat2email-in-wordpress-21-and-above/</link>
		<comments>http://chester.id.au/2007/08/16/a-fix-for-cat2email-in-wordpress-21-and-above/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 11:54:27 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/2007/08/16/a-fix-for-cat2email-in-wordpress-21-and-above/</guid>
		<description><![CDATA[Club Troppo, a site that I administer, relies on the cat2email plugin to post certain categories to interested users (there are lots). When I upgraded to WP 2.1, a lot of users began to complain that they were getting improperly &#8230; <a href="http://chester.id.au/2007/08/16/a-fix-for-cat2email-in-wordpress-21-and-above/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://clubtroppo.com.au/">Club Troppo</a>, a site that I administer, relies on the cat2email plugin to post certain categories to interested users (there are lots). When I upgraded to WP 2.1, a lot of users began to complain that they were getting improperly formatted files. The headers would be something like this:</p>
<p><code>--===============2045766128707237696==<br />
Content-type: text/html; charset="UTF-8"<br />
Content-Transfer-Encoding: 8bit<br />
Content-Type: text/plain; charset="UTF-8"<br />
</code></p>
<p>Obviously problematic, as many email programs would then render HTML mails as plain text. Hilarity ensues.</p>
<p>Well first off, there&#8217;s a tiny bug in the cat2email code. It should put out &#8216;Content-Type&#8217;, not &#8216;Content-type&#8217;. Fix this and you get a different set of incorrect headers:</p>
<p><code>Content-Type: text/plain; charset="us-ascii"<br />
Content-Transfer-Encoding: 7bit<br />
</code></p>
<p>Hmm, still useless.</p>
<p>The culprit, it turns out, is Wordpress. In 2.1 and 2.2, the wp_mail function was modified to use the PHPMailer class. If you crack open wp-includes/pluggable.php, you&#8217;ll see that the wp_mail function <em>always forces conversion to plaintext</em>. Pretty dodgy.</p>
<p>What it ought to do is check for custom headers and work with them. I&#8217;ve submitted a patch to the Wordpress mob, and if you really need it, see below.</p>
<p><code><br />
--- /Users/jacques/Downloads/wordpress/wp-includes/pluggable.php<br />
+++ pluggable.php<br />
@@ -187,7 +187,15 @@<br />
$phpmailer-&gt;AddAddress("$to", "");<br />
$phpmailer-&gt;Subject = $subject;<br />
$phpmailer-&gt;Body    = $message;<br />
-	$phpmailer-&gt;IsHTML(false);<br />
+	if ( strstr( $headers, 'Content-Type: text/html' ) )<br />
+	{<br />
+		$phpmailer-&gt;IsHTML(true);<br />
+	}<br />
+	else<br />
+	{<br />
+		$phpmailer-&gt;IsHTML(false);<br />
+	}<br />
$phpmailer-&gt;IsMail(); // set mailer to use php mail()</code></p>
<p>do_action_ref_array(&#8216;phpmailer_init&#8217;, array(&amp;$phpmailer));</p>
<p><strong>Update: </strong>Looks like a <a href="http://trac.wordpress.org/ticket/4296">more robust fix</a> is scheduled for Wordpress 2.3.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2007/08/16/a-fix-for-cat2email-in-wordpress-21-and-above/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uber Ubuntu Mailman Madness</title>
		<link>http://chester.id.au/2007/05/03/uber-ubuntu-mailman-madness/</link>
		<comments>http://chester.id.au/2007/05/03/uber-ubuntu-mailman-madness/#comments</comments>
		<pubDate>Thu, 03 May 2007 03:35:37 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/2007/05/03/uber-ubuntu-mailman-madness/</guid>
		<description><![CDATA[A petty annoyance on Ubuntu is getting all the bits of mailman to talk to each other: the mailman software itself, and in my case Postfix as the MTA and Apache as the host server. Putting aside my complete failure &#8230; <a href="http://chester.id.au/2007/05/03/uber-ubuntu-mailman-madness/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A petty annoyance on Ubuntu is getting all the bits of mailman to talk to each other: the mailman software itself, and in my case Postfix as the MTA and Apache as the host server.</p>
<p>Putting aside my complete failure to properly RTFA on the Mailman-Postfix hookup, I found an interesting problem with the default install of Mailman: if you modify permissions to allow Apache to reach the relevant cgi-bin directories, parts of Mailman stop working. Modify it back using the included check_perms script and Apache stops working.</p>
<p>The solution is to add the Apache user (www-data) to the Mailman group (list). Then everything works.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2007/05/03/uber-ubuntu-mailman-madness/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>On a particular pecl failure</title>
		<link>http://chester.id.au/2007/05/02/on-a-particular-pecl-failure/</link>
		<comments>http://chester.id.au/2007/05/02/on-a-particular-pecl-failure/#comments</comments>
		<pubDate>Wed, 02 May 2007 03:19:00 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/2007/05/02/on-a-particular-pecl-failure/</guid>
		<description><![CDATA[The symptoms are like so: bash: ./configure: /bin/sh: bad interpreter: Permission denied Which has nothing whatever to do with the root cause. The actual problem is that pecl downloads files to /tmp and does its work there. If /tmp is &#8230; <a href="http://chester.id.au/2007/05/02/on-a-particular-pecl-failure/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The symptoms are like so:</p>
<blockquote><p>bash: ./configure: /bin/sh: bad interpreter: Permission denied</p></blockquote>
<p>Which has nothing whatever to do with the root cause. The actual problem is that pecl downloads files to /tmp and does its work there. If /tmp is mounted as noexec, pecl will fail with errors like the one above.</p>
<p><strong>Solution #1:</strong> Change the fstab for /tmp, removing the noexec option.<br />
<strong>Solution #2:</strong> Working in another directory &#8211; such as /usr/src &#8211; manually perform the steps pecl automates. <a href="http://ubuntuforums.org/showpost.php?p=1648767&amp;postcount=3">An example for xdebug is found here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2007/05/02/on-a-particular-pecl-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cats &amp; Laser Mice Don&#039;t Mix</title>
		<link>http://chester.id.au/2007/04/21/cats-laser-mice-dont-mix/</link>
		<comments>http://chester.id.au/2007/04/21/cats-laser-mice-dont-mix/#comments</comments>
		<pubDate>Sat, 21 Apr 2007 01:13:45 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/2007/04/21/cats-laser-mice-dont-mix/</guid>
		<description><![CDATA[Do you have a fancy laser mouse like I do? Isn&#8217;t it cool? Don&#8217;t all your friends admire it? I know mine do! Wondering why it&#8217;s acting funny? Cursor moving too fast or too slow? Cast an unfriendly glare at &#8230; <a href="http://chester.id.au/2007/04/21/cats-laser-mice-dont-mix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Do you have a fancy laser mouse like I do? Isn&#8217;t it cool? Don&#8217;t all your friends admire it? I know mine do!</p>
<p><img src="http://chester.id.au/files/2007/05/ginnie.jpg" title="ginnie.jpg" alt="ginnie.jpg" align="left" height="114" hspace="5" width="125" />Wondering why it&#8217;s acting funny? Cursor moving too fast or too slow? Cast an unfriendly glare at your cat, who even now may be snoozing nearby in a state of offensive cuteness. A single strand of her fur has stuck to the mouse eye and the stupid laser beam is confused.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2007/04/21/cats-laser-mice-dont-mix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Note about CEAN Erlang</title>
		<link>http://chester.id.au/2007/03/26/note-about-cean-erlang/</link>
		<comments>http://chester.id.au/2007/03/26/note-about-cean-erlang/#comments</comments>
		<pubDate>Mon, 26 Mar 2007 11:49:19 +0000</pubDate>
		<dc:creator>Jacques Chester</dc:creator>
				<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://chester.id.au/posts/11</guid>
		<description><![CDATA[The CEAN distribution of Erlang is fairly useful for OS X dwellers like myself, but note that there is a small &#8220;gotcha&#8221; to be aware of. It doesn&#8217;t come with the c() function &#8211; ie the compiler &#8211; installed! You &#8230; <a href="http://chester.id.au/2007/03/26/note-about-cean-erlang/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The CEAN distribution of Erlang is fairly useful for OS X dwellers like myself, but note that there is a small &#8220;gotcha&#8221; to be aware of. It doesn&#8217;t come with the c() function &#8211; ie the compiler &#8211; installed!</p>
<p>You need to enter cean:install(compiler). in the BEAM shell before you can load and execute .erl files.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.id.au/2007/03/26/note-about-cean-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

