<?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>delx</title>
	<atom:link href="http://delx.net.au/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://delx.net.au/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 14 Feb 2010 06:54:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nokia N97 and Apple iSync</title>
		<link>http://delx.net.au/blog/2009/11/nokia-n97-and-apple-isync/</link>
		<comments>http://delx.net.au/blog/2009/11/nokia-n97-and-apple-isync/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 23:09:08 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=189</guid>
		<description><![CDATA[I bought my Nokia N97 early July, just a few days after the Australia release. I&#8217;ve been enjoying this great device since then desspite its bugs. The most notable of which was that unlike my previous Nokia S60 it would not cooperate with iSync. Thankfully the recently released firmware update (V20.0.019) fixes this problem.

After hacking [...]]]></description>
			<content:encoded><![CDATA[<p>I bought my Nokia N97 early July, just a few days after the Australia release. I&#8217;ve been enjoying this great device since then desspite its bugs. The most notable of which was that unlike my previous Nokia S60 it would not cooperate with iSync. Thankfully the recently released firmware update (V20.0.019) fixes this problem.</p>
<p><span id="more-189"></span></p>
<p>After hacking the Nokia 5800 phoneplugin and turning off contact sync in iSync I got older firmware versions (V10, V11 and V12) to sync my calendars. This was the most important thing for me, but still very annoying.</p>
<p>First download <a href="http://delx.net.au/files/Nokia-N97.phoneplugin.zip">Nokia-N97.phoneplugin.zip</a>. Extract to <tt>~/Library/PhonePlugins/</tt> as usual. Now pair your phone with bluetooth and select the option to enable iSync. Open iSync and turn off contacts sync. It should now sync calendars properly. This is where I&#8217;d been up to V20.</p>
<p>To get contacts to sync you need to reset the contacts database. Insert a MicroSD card into your phone and do a backup of your contacts from the phone&#8217;s &#8220;File Mgr&#8221; app. Now immediately restore just the contacts, the phone will reboot. Turn on contacts sync in iSync and it should work great =)</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/11/nokia-n97-and-apple-isync/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Encrypted file systems on Debian/Ubuntu Linux</title>
		<link>http://delx.net.au/blog/2009/08/encrypted-file-systems-on-debianubuntu-linux/</link>
		<comments>http://delx.net.au/blog/2009/08/encrypted-file-systems-on-debianubuntu-linux/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 15:06:57 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[crypto]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=179</guid>
		<description><![CDATA[Recently I set up an encrypted file system so I could do rsync backups to a secured location. What you end up with is a mountable file system that you can use to securely store data. Debian offers an easy way to set up encrypted file systems using the LUKS standard with the cryptsetup package. [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I set up an encrypted file system so I could do rsync backups to a secured location. What you end up with is a mountable file system that you can use to securely store data. Debian offers an easy way to set up encrypted file systems using the LUKS standard with the cryptsetup package. You&#8217;ll need to enter a decryption passphrase to mount the volume whenever the system boots.</p>
<p><span id="more-179"></span></p>
<h4>Package installation</h4>
<p>Install the required packages:</p>
<pre># aptitude install e2fsprogs cryptsetup</pre>
<h4>Partitioning</h4>
<p>Use your favourite partitioning tool, for example <tt>fdisk</tt> or <tt>cfdisk</tt> to set aside a whole partition with enough space to store your data.</p>
<h4>Erase</h4>
<p>This step is optional. For complete security you want the contents of the disk to be random before you start using it. Use the <tt>badblocks</tt> tool to do this.</p>
<pre>
# badblocks -c 10240 -s -w -t random -v /dev/sdX9
</pre>
<h4>Format</h4>
<p>The <tt>luksformat</tt> tool will format a partition to be used with LUKS (Linux Unified Key Setup) and then create a filesystem on it.</p>
<pre># luksformat -t ext3 /dev/sdX9</pre>
<h4>crypttab and fstab</h4>
<p>Now all that remains is to a line in each of these config files.</p>
<p>Add this line to <tt>/etc/crypttab</tt>:</p>
<pre>myname /dev/sdX9 none luks</pre>
<p>The <tt>crypttab</tt> file is examined by the system during boot. Each line maps a real encrypted device file (<tt>/dev/sdX9</tt>) to a virtual decrypted device file (<tt>/dev/mapper/myname</tt>). Once you&#8217;ve added done this run the following command to actually set up the mapping:</p>
<pre># /etc/init.d/cryptdisks restart</pre>
<p>Now you can set up that virtual device file to be mounted like any other. For example, the following command would mount your filesystem:</p>
<pre># mount /dev/mapper/myname /mnt</pre>
<p>Note that you should probably use partition UUIDs (<tt>UUID=XXXXX</tt>) in place of device file names (<tt>/dev/sdX9</tt>) in your <tt>crypttab</tt> for a more robust system. The easiest way to find these is by running:</p>
<pre># ls -l /dev/disks/by-uuid</pre>
<p>Add a line like this to <tt>/etc/fstab</tt></p>
<pre>/dev/mapper/myname /path/to/mountpoint ext3 defaults 0 2</pre>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/08/encrypted-file-systems-on-debianubuntu-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fink for Mac OS X package management</title>
		<link>http://delx.net.au/blog/2009/04/fink-for-mac-os-x-package-management/</link>
		<comments>http://delx.net.au/blog/2009/04/fink-for-mac-os-x-package-management/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 00:34:31 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[fink]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=170</guid>
		<description><![CDATA[Fink is a package management system for Mac OS X. If you&#8217;re new to Fink read on for a description of how it works.

The Fink project has two components. First, the port of Debian&#8217;s apt-get tools to Mac OS X combined with a binary package repository for the stable distribution.
Second, the &#8216;fink&#8217; command line tool. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.finkproject.org">Fink</a> is a package management system for Mac OS X. If you&#8217;re new to Fink read on for a description of how it works.</p>
<p><span id="more-170"></span></p>
<p>The Fink project has two components. First, the port of <a href="http://www.debian.org">Debian&#8217;s</a> apt-get tools to Mac OS X combined with a binary package repository for the stable distribution.</p>
<p>Second, the &#8216;fink&#8217; command line tool. It generates <tt>.deb</tt> packages from a source package description (located in <tt>/sw/fink/dists</tt>). Once generated you can move these packages between machines and install them with apt-get or dpkg as you would in Debian. This can save rebuilding from source.</p>
<p>Next the infamous stable vs unstable distributions. Unstable in Fink has the same meaning as it does with Debian. Don&#8217;t be too scared of using unstable. It won&#8217;t make your system crash. What it will do is have up to date packages (in most cases). It will get more frequent updates, meaning you&#8217;ll have more to recompile more often. Because of this, if you&#8217;re using the unstable distribution there tends not to be any prebuilt binaries so installation can take longer than in Debian. Also note these more recent packages may have had less testing, so sometimes they may not install.</p>
<p>One other thing you should know about is a neat package called &#8216;debfoster&#8217;. It&#8217;ll help you clean out unused packages and libraries. One of the consequences of Fink unstable building from source is that you often get lots of development packages installed that you don&#8217;t need anymore.</p>
<p>Just install debfoster and run it as root, then answer either y(es), n(o) or p(rune) to keep a package and its deps, not keep, or remove a package and all it&#8217;s deps. It&#8217;s quite clever. Give it a shot.</p>
<p>Finally, remember Fink is a volunteer project that you can contribute to. If you find a missing or out of date package, feel free to dig in to the <tt>.info</tt> file and update it. This is often as easy as just changing the version number. See the <a href="http://www.finkproject.org">Fink</a> website for a good packaging tutorial and reference.</p>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/04/fink-for-mac-os-x-package-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple Keyboard on Linux</title>
		<link>http://delx.net.au/blog/2009/04/apple-keyboard-on-linux/</link>
		<comments>http://delx.net.au/blog/2009/04/apple-keyboard-on-linux/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 06:20:11 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=159</guid>
		<description><![CDATA[The Apple aluminium keyboards are very nice. I recently bought one for an Ubuntu Linux machine, and it requires some special configuration to work as expected.
This post describes how to fix the function keys and swap command (windows or &#8217;super&#8217;) keys with the alt (or option) keys.


This command will fix the function keys, it saves [...]]]></description>
			<content:encoded><![CDATA[<p>The Apple aluminium keyboards are very nice. I recently bought one for an Ubuntu Linux machine, and it requires some special configuration to work as expected.</p>
<p>This post describes how to fix the function keys and swap command (windows or &#8217;super&#8217;) keys with the alt (or option) keys.</p>
<p><span id="more-159"></span></p>
<p><img src="http://delx.net.au/blog/wp-content/wp-uploads/2009/04/apple_aluminium_keyboardcompare.jpg" alt="Apple Aluminium Keyboard" width="400" height="292" class="size-full wp-image-160" /></p>
<p>This command will fix the function keys, it saves you pressing fn-F1 whenever you want F1. The first command is for older kernels, the second is for version 2.6.28 or later.</p>
<pre>
# echo 2 > /sys/module/hid/parameters/pb_fnmode
# echo 2 > /sys/module/hid_apple/parameters/fnmode
</pre>
<p>Then add that line to your <tt>/etc/rc.local</tt> file, somewhere before the <tt>exit 0</tt> at the end, so that it gets run on startup.</p>
<p>Next to swap the Command/Alt keys using xmodmap. I&#8217;m aware you can do this from the Gnome Keyboard Settings panel, but I&#8217;ve found this method works better. Particularly when combined with <a href="http://synergy2.sf.net">synergy</a>.</p>
<p>Create a file called <tt>~/.xmodmaprc</tt> with this inside:</p>
<pre>
clear mod1
keycode 115 = Alt_L
keycode 116 = Alt_R
keycode 64 = Super_L
keycode 113 = Super_R
add mod1 = Alt_L Alt_R
</pre>
<p>On another computer I&#8217;ve found this worked:</p>
<pre>
clear mod1
keycode 133 = Alt_L
keycode 134 = Alt_R
keycode 64 = Super_L
keycode 108 = Super_R
add mod1 = Alt_L Alt_R
</pre>
<p>Now run to activate the new keys, run:</p>
<pre>$ xmodmap ~/.xmodmaprc</pre>
<p>Don&#8217;t forget to add it to your list of startup programs. If you&#8217;re using Gnome, look at System->Preferences->Startup Applications<br />
Otherwise you can just add it to <tt>~/.xsession</tt></p>
<p>To find the keycodes above I used the <tt>xev</tt> program. Try running it from a console. It shows you all X11 events that the xev window receives, including key presses/releases.</p>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/04/apple-keyboard-on-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Who wants Hulu?</title>
		<link>http://delx.net.au/blog/2009/03/who-wants-hulu/</link>
		<comments>http://delx.net.au/blog/2009/03/who-wants-hulu/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 13:15:37 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[censorship]]></category>
		<category><![CDATA[hulu]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[tv]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=128</guid>
		<description><![CDATA[Update: Improved proxying of RTMP
Update: Compatibility with unmetered and local content
Update: Automatic /etc/hosts update
Hulu is a website that offers commercial-supported streaming video of TV shows and movies from NBC, Fox and many other networks and studios. Currently Hulu is only available from within the United States of America.
If you want to be notified of updates [...]]]></description>
			<content:encoded><![CDATA[<p><i>Update: Improved proxying of RTMP</i><br />
<i>Update: Compatibility with unmetered and local content</i><br />
<i>Update: Automatic /etc/hosts update</i></p>
<p>Hulu is a website that offers commercial-supported streaming video of TV shows and movies from NBC, Fox and many other networks and studios. Currently Hulu is only available from within the United States of America.</p>
<p>If you want to be notified of updates to this post, subscribe to the <a href="feed">comments feed</a>.</p>
<p><span id="more-128"></span></p>
<p>This is kind of lame. One of the fundamental principles of the internet is global access. That&#8217;s why we have the <i>world wide</i> web, not the America-web.</p>
<p>So, in that spirit, here&#8217;s how to make Hulu fully functional on your local network and accessible from any ordinary web browser.</p>
<h4>Requirements</h4>
<ul>
<li>A machine in the US that you can run programs and serve web pages from.</li>
<li>A Linux machine at home that shares your net connection</li>
</ul>
<h4>For my friends</h4>
<p>You can skip the USA proxy configuration and just use <tt>72.232.203.84</tt> everywhere you would put that server&#8217;s IP.<br />
Make sure you email me and I&#8217;ll add your local IP address to the allow list for the RTMP proxy.</p>
<h4>USA Proxy Configuration</h4>
<p>First we need to set up your US server to forward some selected HTTP sites as well as the Flash RTMP video streams. Do these steps on the server in the US:</p>
<ul>
<li>Create a file, hulu_proxy.ini with these contents:
<pre>
[proxy]
mode = proxy
listen_port = 9997

[allowed]
host1 = YOUR_LOCAL_IP_OR_DOMAIN
</pre>
<li>Download <a href="http://delx.net.au/hg/jamesstuff/raw-file/tip/scripts/proxy.py">proxy.py</a> and run this command to start forwarding requests on port 9997 from the allowed hosts.
<pre>proxy.py -d hulu_proxy.ini</pre>
</li>
<li>Create an HTTP virtual server for these domains: <tt>releasegeo.hulu.com</tt></li>
<li>Download <a href="http://delx.net.au/hg/cgiproxy/raw-file/tip/ruby/proxy.rb">proxy.rb</a> and <a href="http://delx.net.au/hg/cgiproxy/raw-file/tip/ruby/path.cgi">path.cgi</a> to these virtual hosts.</li>
<li>Edit path.cgi to end with
<pre>proxyTo "http://" + ENV["HTTP_HOST"], False</pre>
</li>
<li>
<li>Now set up a rewrite rule to forward <tt>/</tt> to <tt>/path.cgi</tt> for each of these virtual hosts.</li>
</ul>
<h4>Local network</h4>
<p>If you have a Linux router you can configure it to forward all packets destined for Hulu from inside your network to your US server.<br />
Follow these steps on your LAN&#8217;s router or your on any Linux computer:</p>
<ul>
<li>Add this to your <tt>/etc/hosts</tt> file (these addresses may be out of date, see the last section in this blog):
<pre>
XXX.YYY.ZZZ.AAA releasegeo.hulu.com
205.241.224.55 cp41752.edgefcs.net # HULU
205.241.224.45 cp39465.edgefcs.net # HULU
205.241.224.158 cp51756.edgefcs.net # HULU
205.241.224.37 cp47346.edgefcs.net # HULU
</pre>
<p>where <tt>XXX.YYY.ZZZ.AAA</tt> is the IP address of your US server.</li>
<li>If you&#8217;re using dnsmasq for your LAN&#8217;s DNS server ensure that it reads these addresses from your and resolves them for hosts on your network.</li>
<li>Add this to your firewall config for Linux:
<pre>
grep 'HULU$' /etc/hosts | awk '{print $1;}' | while read huluip; do
    iptables -t nat -A PREROUTING -i eth0 -p tcp \
        --destination "$huluip"  --dport 1935 -j REDIRECT --to-ports 9997
    iptables -t nat -A OUTPUT -p tcp \
        --destination "$huluip" --dport 1935 -j REDIRECT --to-ports 9997
done
</pre>
</li>
<li>Add this to your firewall config for OSX:
<pre>
grep 'HULU$' /etc/hosts | awk '{print $1;}' | while read huluip; do
    ipfw add 50000 fwd 127.0.0.1,9997 \
        tcp from any to "$huluip" dst-port 1935
done
</pre>
</li>
<li>Create a file, hulu_interceptor.ini with these contents:
<pre>
[proxy]
mode = interceptor
listen_port = 9997
host = XXX.YYY.ZZZ.XXX
port = 9997
</pre>
</li>
<li>Download <a href="http://delx.net.au/hg/jamesstuff/raw-file/tip/scripts/proxy.py">proxy.py</a> and run this command to start capturing and forwarding the Flash RTMP port to your US server.
<pre>proxy.py -d hulu_interceptor.ini</pre>
</li>
</ul>
<p>Some ISPs in Australia (Internode, iiNet and others) override the DNS entries for Akamai servers. This is why the modification to <tt>/etc/hosts</tt> is needed. Note that using the rules above, only traffic to specific Akamai Flash RTMP servers will go through your US server. So unmetered ABC iView content will remain unmetered. However, if Hulu adds new servers to this list, or if I&#8217;ve missed some, then some videos may not work and the hosts file will need updating.</p>
<p>If you are having difficulty viewing videos and you suspect that this is the issue, try running this tcpdump command to see whether your connections are being sent to a server within your ISPs address range:</p>
<pre># tcpdump -i INTERFACE port 1935</pre>
<p>You&#8217;ll then need to find the corresponding domain name and the &#8216;correct&#8217; IP to add to <tt>/etc/hosts</tt></p>
<h4>Automatic <tt>/etc/hosts</tt> updating</h4>
<p>The <tt>/etc/hosts</tt> file is used to know which IP addresses to route over the tunnel to USA. My USA server resolves the Hulu video hosts that I know about and makes them available at this URL: <a href="http://delx.net.au/files/huluhosts.txt">http://delx.net.au/files/huluhosts.txt</a>. This is automatically updated every hour.</p>
<p>I use a daily cronjob on my client machines in order to keep their hosts file up to date. Adapt this to your needs.</p>
<pre>
#!/bin/bash

cp /etc/hosts /etc/hosts.hulubak &#038;&#038;
grep -v HULU /etc/hosts > /etc/_hosts.new &#038;&#038;
curl -s http://delx.net.au/files/huluhosts.txt >> /etc/_hosts.new &#038;&#038;
chmod 0644 /etc/_hosts.new &#038;&#038;
mv /etc/_hosts.new /etc/hosts &#038;&#038;

# Ensure you clear the previous Hulu firewall rules and restart your
# DNS server (if you use one)
/root/hulutables
/etc/init.d/dnsmasq restart > /dev/null
</pre>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/03/who-wants-hulu/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Mercurial remote repository names</title>
		<link>http://delx.net.au/blog/2009/02/mercurial-remote-repository-names/</link>
		<comments>http://delx.net.au/blog/2009/02/mercurial-remote-repository-names/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 08:39:09 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=120</guid>
		<description><![CDATA[I just discovered that Mercurial supports named shortcuts for repositories. This is great for when you want to be pushing and pulling from several repository URLs without typing their full locations.

I was aware you could set a default and default-push repository in .hg/hgrc, in fact whenever you clone a repository a default remote path is [...]]]></description>
			<content:encoded><![CDATA[<p>I just discovered that Mercurial supports named shortcuts for repositories. This is great for when you want to be pushing and pulling from several repository URLs without typing their full locations.</p>
<p><span id="more-120"></span></p>
<p>I was aware you could set a default and default-push repository in <tt>.hg/hgrc</tt>, in fact whenever you clone a repository a default remote path is created for you.</p>
<p>You can actually put arbitrary names in there. For example, I have a repository &#8220;chatbots&#8221; that I cloned from Katie&#8217;s repository: <tt>http://katharos.id.au/hg/chatbots"</tt>. I want to be able to push and pull changes from my repository as well as pull from her&#8217;s without typing the full path out at any time.</p>
<p><code><br />
[paths]<br />
default = ssh://hg@delx.net.au/chatbots<br />
katie = http://katharos.id.au/hg/chatbots<br />
</code></p>
<p>The above snippet goes in the repositories <tt>.hg/hgrc</tt>, and I can now run commands like this:<br />
<code><br />
$ hg pull katie<br />
$ hg push<br />
</code><br />
This pulls any new changes in from Katie&#8217;s repository and pushes them to the default, mine.</p>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/02/mercurial-remote-repository-names/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OfflineIMAP IDLE support</title>
		<link>http://delx.net.au/blog/2009/02/offlineimap-idle-support/</link>
		<comments>http://delx.net.au/blog/2009/02/offlineimap-idle-support/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 05:36:45 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[offlineimap]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=112</guid>
		<description><![CDATA[I&#8217;ve implemented IDLE support into OfflineIMAP. For the last day or two I&#8217;ve been using this and I&#8217;m loving the instant email notifications. I emailed the original author and plan to work with him to get the code included into an official OfflineIMAP release.

There&#8217;s a Git repository with the patch included here:
http://delx.net.au/git/offlineimap
I followed the plan [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve implemented IDLE support into OfflineIMAP. For the last day or two I&#8217;ve been using this and I&#8217;m loving the instant email notifications. I emailed the original author and plan to work with him to get the code included into an official OfflineIMAP release.</p>
<p><span id="more-112"></span></p>
<p>There&#8217;s a Git repository with the patch included here:<br />
<a href="http://delx.net.au/git/offlineimap">http://delx.net.au/git/offlineimap</a></p>
<p>I followed the plan John Goerzen suggested in <a href="http://software.complete.org/software/issues/show/18">offlineimap ticket 18</a>. Here&#8217;s an overview of the changes.</p>
<ul>
<li>Use <a href="http://www.cs.usyd.edu.au/~piers/python/imaplib2">imaplib2</a> as it implements the IDLE command and a few other nice things. This is written by Piers Lauder, the author Python&#8217;s standard imaplib.</li>
<li>Some small changes to the OfflineIMAP code were needed for it to work with imaplib2.</li>
<li>Added a config parameter &#8216;idlefolders&#8217; to specify a list of mailboxes to monitor. This parameter forces holdconnectionopen, keepalive and maxconnections to be sane values.</li>
<li>Hijack the keepalive thread. Use the available connections for IDLE, one on each of the given mailboxes. If there are leftover connections we send NOOP as before.</li>
<li>Added documentation to the sample offlineimap.conf</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/02/offlineimap-idle-support/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Years 2009</title>
		<link>http://delx.net.au/blog/2009/01/new-years/</link>
		<comments>http://delx.net.au/blog/2009/01/new-years/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 00:59:48 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[nye]]></category>
		<category><![CDATA[phd]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=46</guid>
		<description><![CDATA[Happy Non-Prime New Year to everybody!
Last night I went to Emma Hunt&#8217;s NYE party at her parents&#8217; place in Milson&#8217;s Point. We had great views of the fireworks there. They were quite nice, particularly the heart shaped ones at the earlier 9pm show.
This year I&#8217;ll be doing a PhD, probably on something to do with [...]]]></description>
			<content:encoded><![CDATA[<p>Happy Non-Prime New Year to everybody!</p>
<p>Last night I went to Emma Hunt&#8217;s NYE party at her parents&#8217; place in Milson&#8217;s Point. We had great views of the fireworks there. They were quite nice, particularly the heart shaped ones at the earlier 9pm show.</p>
<p>This year I&#8217;ll be doing a PhD, probably on something to do with computer security models and user interfaces. I got an Australian Postgraduate Award (APA) scholarship which will be great to keep me solvent for the next three years.</p>
<p>Have a great year everybody!</p>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2009/01/new-years/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>December Holidays &#8211; StarCity</title>
		<link>http://delx.net.au/blog/2008/12/december-holidays-starcity/</link>
		<comments>http://delx.net.au/blog/2008/12/december-holidays-starcity/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 15:19:07 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[holiday]]></category>
		<category><![CDATA[starcity]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=65</guid>
		<description><![CDATA[From very early in 2008 Julieanne and I had planned to spend a few nights at the StarCity hotel in Sydney&#8217;s Darling Harbour. This was to be our joint celebration of finishing four years of university.
The previous two trips were planned afterward but we ended up doing StarCity last. We had a really nice relaxing [...]]]></description>
			<content:encoded><![CDATA[<p>From very early in 2008 Julieanne and I had planned to spend a few nights at the StarCity hotel in Sydney&#8217;s Darling Harbour. This was to be our joint celebration of finishing four years of university.</p>
<p>The previous two trips were planned afterward but we ended up doing StarCity last. We had a really nice relaxing few days. Breakfasted at the Garden Buffet, got pampered with a massage at the Star Spa and just generally relaxed and enjoyed ourselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2008/12/december-holidays-starcity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>December Holidays &#8211; Gold Coast</title>
		<link>http://delx.net.au/blog/2008/12/december-holidays-gold-coast/</link>
		<comments>http://delx.net.au/blog/2008/12/december-holidays-gold-coast/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 14:43:37 +0000</pubDate>
		<dc:creator>delx</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[goldcoast]]></category>
		<category><![CDATA[holiday]]></category>

		<guid isPermaLink="false">http://delx.net.au/blog/?p=52</guid>
		<description><![CDATA[A group of friends from university decided a road trip to the Gold Coast would be a suitable way to celebrate finishing uni and the end of the year. Nine of us booked two rooms at the Silverton Apartments, about 10 minutes walk out of Surfer&#8217;s Paradise. We had great views from the apartment of [...]]]></description>
			<content:encoded><![CDATA[<p>A group of friends from university decided a road trip to the Gold Coast would be a suitable way to celebrate finishing uni and the end of the year. Nine of us booked two rooms at the <a href="http://www.silvertonapartments.com.au">Silverton Apartments</a>, about 10 minutes walk out of Surfer&#8217;s Paradise. We had great views from the apartment of both the beach to the east and the mountains to the west.</p>
<p><span id="more-52"></span></p>
<p>Greg, Katie, Steve, Julieanne &#038; I shared one apartment while Thomas, Tomek, Emma Fitzgerald &#038; her boyfriend Matt shared the other. It was a great group of people, mostly CompSci with a bit of Physics and Math. As a Music major Julieanne was worried she&#8217;d be left out, but she&#8217;s just as geeky as the rest of us and got on well with everybody :)</p>
<p>With 9 people we took 3 cars up, nobody wanted to be squished into the back of a car with three people for a 12 hour trip from Sydney to the Gold Coast. 7 of us were drivers, but 6 of those could only drive automatics and Greg&#8217;s car is a manual. So, he had the fun task of teaching Katie &#038; I how to drive a manual a few days before we left. It was more difficult than I expected from playing Daytona at Timezone :) However, by the end of the trip I was at the point where I hardly stalled it at all!</p>
<p>On the first night we walked into town and had dinner at an ok restaurant that cost a lot. They refused to give us tap water and made us pay for bottles! Evil! Apparently having a liquor license in Queensland doesn&#8217;t require you to serve free water, unlike in NSW. We then walked back home along the beach, quite pretty at night time.</p>
<p>A bunch of us visited the beach one day. I sat on a towel reading <a href="http://en.wikipedia.org/wiki/Mindstar_Rising">Mindstar Rising</a> and minded everybody&#8217;s things while they went swimming. I don&#8217;t particularly like swimming in the beach, too much sand. I do enjoy the view though :)</p>
<p>Katie &#038; Julieanne made a sand mermaid, while Thomas and Steve attempted to write on the sand all the most important mathematical and physical equations for the benefit of future generations.</p>
<p>On Wednesday the group split into those who wanted to go to a theme park, namely Dreamworld, and those who didn&#8217;t. Having already visited Dreamworld several times I opted to give it a miss this time.</p>
<p>Emma, Matt, Steve and I then went bush walking around Mt Tamborine for a few hours instead.</p>
<p>Earlier that day Steve &#038; I spent a few hours watching a show called <a href="http://en.wikipedia.org/wiki/Andromeda_(TV_series)">Andromeda</a> that Katie brought along on DVD. It&#8217;s a cheesy but fun scifi show, a bit like Star Trek but not. Interestingly they seem to attempt to make the physics more real, for example energy weapons don&#8217;t have a beam that travels slower than the speed of light. However the writers don&#8217;t seem to understand black holes particularly well. It also makes the classical mistake of sound transmitting through the vacuum of space. Still fun to watch though.</p>
<p>Later in the trip almost all of us went bush walking again. This time in the Lamington national park. It had fantastic views of a valley with a river winding through it. We also saw a little family of two wallabies while we were walking around.</p>
<p>We all went kayaking in the rivers nearby for about an hour. Had a great time, although it was quite tiring. I also forgot to put sunscreen on my legs and they got a nasty burn. Not as bad as Greg though.</p>
<p>For our last day Emma had organised horse riding for all of us. It was the first time I&#8217;d been on a horse before and I had a great time. At first I was worried about the smell, but you quickly get used to it.</p>
<p>We had a 3 hour walk around with a short stop in the middle to rest near a creek. There wasn&#8217;t really much we had to do for the horses, they all just followed the experienced leaders in front. A couple of times they needed a bit of a kick to get going again though, and they were constantly trying to slow down and snack on bits of plants along the way. My horse had a sore eye and tried to rub it on his leg. As soon as I loosened the reins a little to let him rub his eye more comfortably he jumped straight for the grass! Clever horse :)</p>
<p>The fastest we ever got to was a horse trot, which was fairly jarring because I wasn&#8217;t experienced enough to move with the horse. I ended up just bouncing rather uncomfortably on the saddle!</p>
<p>The whole trip was lots of fun. It was great spending time with all my friends, especially as I&#8217;ll not be seeing as much of them all this year. Thanks for a great time everyone!</p>

<a href='http://delx.net.au/blog/2008/12/december-holidays-gold-coast/img_0518/' title='Horse Riding'><img width="112" height="150" src="http://delx.net.au/blog/wp-content/wp-uploads/2009/01/img_0518.jpg" class="attachment-thumbnail" alt="Julieanne on a horse" title="Horse Riding" /></a>
<a href='http://delx.net.au/blog/2008/12/december-holidays-gold-coast/img_2063/' title='Mermaid on the beach'><img width="112" height="150" src="http://delx.net.au/blog/wp-content/wp-uploads/2009/01/img_2063.jpg" class="attachment-thumbnail" alt="Katie &amp; Julieanne sitting next to their sand mermaid creation" title="Mermaid on the beach" /></a>
<a href='http://delx.net.au/blog/2008/12/december-holidays-gold-coast/img_2076/' title='Hanging around'><img width="150" height="112" src="http://delx.net.au/blog/wp-content/wp-uploads/2009/01/img_2076.jpg" class="attachment-thumbnail" alt="Playing cards and falling asleep" title="Hanging around" /></a>
<a href='http://delx.net.au/blog/2008/12/december-holidays-gold-coast/img_2172/' title='Apartment views'><img width="150" height="112" src="http://delx.net.au/blog/wp-content/wp-uploads/2009/01/img_2172.jpg" class="attachment-thumbnail" alt="Views from the apartment at night" title="Apartment views" /></a>
<a href='http://delx.net.au/blog/2008/12/december-holidays-gold-coast/sl370874/' title='Kayaking'><img width="150" height="112" src="http://delx.net.au/blog/wp-content/wp-uploads/2009/01/sl370874.jpg" class="attachment-thumbnail" alt="James &amp; Julieanne kayaking on the river near Surfer&#039;s Paradise" title="Kayaking" /></a>
<a href='http://delx.net.au/blog/2008/12/december-holidays-gold-coast/img_0444/' title='Apartment views'><img width="150" height="112" src="http://delx.net.au/blog/wp-content/wp-uploads/2009/01/img_0444.jpg" class="attachment-thumbnail" alt="View of the ocean from the apartment" title="Apartment views" /></a>

]]></content:encoded>
			<wfw:commentRss>http://delx.net.au/blog/2008/12/december-holidays-gold-coast/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
