<?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>Kim van Wyk&#039;s Home on the Web</title>
	<atom:link href="http://rooijan.za.net/feed" rel="self" type="application/rss+xml" />
	<link>http://rooijan.za.net</link>
	<description>The purpose of this site? The same thing I do every night... try to take over the world! BWA-HA-HA-HA</description>
	<lastBuildDate>Wed, 27 Mar 2013 14:46:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Installing MySQL-python on a Windows virtualenv</title>
		<link>http://rooijan.za.net/archives/installing-mysql-python-on-a-windows-virtualenv?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-mysql-python-on-a-windows-virtualenv</link>
		<comments>http://rooijan.za.net/archives/installing-mysql-python-on-a-windows-virtualenv#comments</comments>
		<pubDate>Thu, 28 Feb 2013 08:55:46 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=450</guid>
		<description><![CDATA[This one is more for my own reference when I inevitably forget how to do this: I needed to install the mysql-python connector into a virtualenv on my Windows system but could not get it to do a pip or &#8230; <a href="http://rooijan.za.net/archives/installing-mysql-python-on-a-windows-virtualenv">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>This one is more for my own reference when I inevitably forget how to do this: I needed to install the <a href="http://sourceforge.net/projects/mysql-python/files/mysql-python/">mysql-python</a> connector into a virtualenv on my Windows system but could not get it to do a pip or easy_install install for a variety of errors: a missing header file and a missing compiler batch file amongst others. I solved it by using a pre-compiled package from this <a href="http://www.lfd.uci.edu/~gohlke/pythonlibs/">excellent list of pre-compiled Python Windows packages</a> and then instructing easy_install to install it (which I didn&#8217;t realise was possible):</p>
<pre>easy_install MySQL-python-1.2.4.win-amd64-py2.6.exe</pre>
<p>Voila.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/installing-mysql-python-on-a-windows-virtualenv/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gee, thanks TortoiseSVN</title>
		<link>http://rooijan.za.net/archives/gee-thanks-tortoisesvn?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gee-thanks-tortoisesvn</link>
		<comments>http://rooijan.za.net/archives/gee-thanks-tortoisesvn#comments</comments>
		<pubDate>Thu, 14 Feb 2013 11:15:37 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=445</guid>
		<description><![CDATA[Recursion: see Recursion. &#160;]]></description>
				<content:encoded><![CDATA[<p><strong>Recursion</strong>: see Recursion.</p>
<p>&nbsp;</p>
<p><a href="http://rooijan.za.net/wp-content/uploads/svn_cleanup.png"><img class="alignnone size-full wp-image-446" alt="svn_cleanup" src="http://rooijan.za.net/wp-content/uploads/svn_cleanup.png" width="408" height="146" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/gee-thanks-tortoisesvn/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reflections on why I still enjoy being paid to code</title>
		<link>http://rooijan.za.net/archives/reflections-on-why-i-still-enjoy-being-paid-to-code?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=reflections-on-why-i-still-enjoy-being-paid-to-code</link>
		<comments>http://rooijan.za.net/archives/reflections-on-why-i-still-enjoy-being-paid-to-code#comments</comments>
		<pubDate>Thu, 07 Feb 2013 19:03:40 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=436</guid>
		<description><![CDATA[I saw a tweet from a friend today, also a professional developer, expressing dissatisfaction with writing code for a living after 7 years at it, although he still enjoys doing it as a hobby. This is not the first time &#8230; <a href="http://rooijan.za.net/archives/reflections-on-why-i-still-enjoy-being-paid-to-code">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I saw a tweet from a friend today, also a professional developer, expressing dissatisfaction with writing code for a living after 7 years at it, although he still enjoys doing it as a hobby. This is not the first time I&#8217;ve seen this sentiment expressed, which is why I consider myself very blessed to still enjoy my career after 7.5+ years of being paid to engineer and develop software. After giving it a bit of thought, I strongly suspect my enjoyment has come from variety &#8211; in those 7.5 years I have:</p>
<ul>
<li><span style="line-height: 13px;">Developed extensively in C, Delphi and Python, d</span>eveloped significantly in Labview and dabbled in C#</li>
<li>Designed and developed code for embedded devices, desktop systems and workstations in factory environments</li>
<li>Developed low-level drivers, front-end GUI-based systems and several layers in between</li>
<li>Ported large legacy systems to new platforms and architected completely new systems</li>
<li>Designed a communications spec for device-to-PC communications and designed a variety of systems and tools around it</li>
<li>Designed and implemented a variety of database schemas</li>
<li>Assisted in administering a version control system</li>
<li>Played toolsmith, developing a number of internally used tools</li>
</ul>
<p>On top of that, I&#8217;m regularly consulted on various languages, including C and Python, and have presented training courses on both. This last point is not meant as a boast (I&#8217;m hardly a guru on either language) but an indication that I&#8217;ve been fortunate enough to get enough exposure to both languages to teach them.</p>
<p>Looking at the list above, I seem to have lucked into the kind of job that changes regularly and keeps me interested &#8211; I&#8217;ve come to realise how rare this is and I&#8217;m certainly not going to take it for granted.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/reflections-on-why-i-still-enjoy-being-paid-to-code/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C code that could get you fired</title>
		<link>http://rooijan.za.net/archives/c-code-that-could-get-you-fired?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=c-code-that-could-get-you-fired</link>
		<comments>http://rooijan.za.net/archives/c-code-that-could-get-you-fired#comments</comments>
		<pubDate>Wed, 03 Oct 2012 08:42:22 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=415</guid>
		<description><![CDATA[Here&#8217;s another stupid C trick I&#8217;ve carried around in my brain for a while: #define sizeof(x) (rand() % 20 + 1) The mod and addition are to give a random number in the range from 1 to 21. This can &#8230; <a href="http://rooijan.za.net/archives/c-code-that-could-get-you-fired">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s another stupid C trick I&#8217;ve carried around in my brain for a while:</p>
<pre class="prettyprint lang-c">#define sizeof(x) (rand() % 20 + 1)</pre>
<p>The mod and addition are to give a random number in the range from 1 to 21.</p>
<p>This can be demonstrated with a small program:</p>
<pre class="prettyprint lang-c">
#include &lt;stdlib.h&gt; 
#include &lt;stdio.h&gt;

#define sizeof(x) (rand() % 20) + 1

void main()
{
  int i;
  printf(&quot;Sizeof i: %d\n&quot;, sizeof(i));
  printf(&quot;Sizeof i: %d\n&quot;, sizeof(i));
  printf(&quot;Sizeof i: %d\n&quot;, sizeof(i));
  return;
}</pre>
<p>When run, you get:</p>
<pre class="prettyprint lang-sh"># ./random_sizeof
Sizeof i: 4
Sizeof i: 7
Sizeof i: 18</pre>
<p>Your compiler might warn you about this, although mine didn&#8217;t (using GCC 4.3.2 with no flags) &#8211; but on a large project, there are probably so many warnings that an extra one wouldn&#8217;t be noticed anyhow (if all the large projects you&#8217;ve worked on had no warnings at all, you&#8217;re luckier than most of us).</p>
<p>Unlike the trick I <a title="C code you should never use in production" href="http://rooijan.za.net/archives/c-code-you-should-never-use-in-production">posted</a> previously, using this in your code will not have your colleagues worry about your competence so much as it will prompt them to fill a box with your things and show you the door&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/c-code-that-could-get-you-fired/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wherein 2 is shown to be equal to 1</title>
		<link>http://rooijan.za.net/archives/wherein-2-is-shown-to-be-equal-to-1?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wherein-2-is-shown-to-be-equal-to-1</link>
		<comments>http://rooijan.za.net/archives/wherein-2-is-shown-to-be-equal-to-1#comments</comments>
		<pubDate>Tue, 02 Oct 2012 14:36:09 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=407</guid>
		<description><![CDATA[Here&#8217;s a little maths trick I have for some reason carried around in my brain for years: Dividing through by the common Why this is possible is left as an excercise for the reader]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s a little maths trick I have for some reason carried around in my brain for years:</p>
<p><img src="http://l.wordpress.com/latex.php?latex=%5Ctext%7BLet%20%7D%20a%20%3D%20b&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\text{Let } a = b" style="vertical-align:-20%;" class="tex" alt="\text{Let } a = b" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5CRightarrow%20a%5E2%20%3D%20ab&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\Rightarrow a^2 = ab" style="vertical-align:-20%;" class="tex" alt="\Rightarrow a^2 = ab" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5CRightarrow%20a%5E2%20-%20b%5E2%20%3D%20ab%20-%20b%5E2&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\Rightarrow a^2 - b^2 = ab - b^2" style="vertical-align:-20%;" class="tex" alt="\Rightarrow a^2 - b^2 = ab - b^2" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5CRightarrow%20%28a%20%2B%20b%29%28a%20-%20b%29%20%3D%20b%28a-b%29&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\Rightarrow (a + b)(a - b) = b(a-b)" style="vertical-align:-20%;" class="tex" alt="\Rightarrow (a + b)(a - b) = b(a-b)" /><br />
Dividing through by the common <img src="http://l.wordpress.com/latex.php?latex=%28a%20-%20b%29&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="(a - b)" style="vertical-align:-20%;" class="tex" alt="(a - b)" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5CRightarrow%20%28a%20%2B%20b%29%20%3D%20b&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\Rightarrow (a + b) = b" style="vertical-align:-20%;" class="tex" alt="\Rightarrow (a + b) = b" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5Ctext%7BBut%20%7D%20a%20%3D%20b&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\text{But } a = b" style="vertical-align:-20%;" class="tex" alt="\text{But } a = b" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5CRightarrow%20%28b%20%2B%20b%29%20%3D%20b&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\Rightarrow (b + b) = b" style="vertical-align:-20%;" class="tex" alt="\Rightarrow (b + b) = b" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5CRightarrow%202b%20%3D%20b&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\Rightarrow 2b = b" style="vertical-align:-20%;" class="tex" alt="\Rightarrow 2b = b" /><br />
<img src="http://l.wordpress.com/latex.php?latex=%5CRightarrow%202%20%3D%201&#038;bg=FFFFFF&#038;fg=000000&#038;s=0" title="\Rightarrow 2 = 1" style="vertical-align:-20%;" class="tex" alt="\Rightarrow 2 = 1" /></p>
<p>Why this is possible is left as an excercise for the reader <img src='http://rooijan.za.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/wherein-2-is-shown-to-be-equal-to-1/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>C code you should never use in production</title>
		<link>http://rooijan.za.net/archives/c-code-you-should-never-use-in-production?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=c-code-you-should-never-use-in-production</link>
		<comments>http://rooijan.za.net/archives/c-code-you-should-never-use-in-production#comments</comments>
		<pubDate>Mon, 01 Oct 2012 11:27:01 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=391</guid>
		<description><![CDATA[I&#8217;ve been meaning to write this little trick down for a while, so while I remember to, here&#8217;s a stupid little C trick which amuses me. Consider a C array: char array[3] = {1,2,3}; To access element 3, you would &#8230; <a href="http://rooijan.za.net/archives/c-code-you-should-never-use-in-production">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been meaning to write this little trick down for a while, so while I remember to, here&#8217;s a stupid little C trick which amuses me.</p>
<p>Consider a C array:</p>
<pre class="prettyprint lang-c">char array[3] = {1,2,3};</pre>
<p>To access element 3, you would use</p>
<pre class="prettyprint lang-c">array[2]</pre>
<p>This is just shorthand for a pointer dereference</p>
<pre class="prettyprint lang-c">*(array + 2)</pre>
<p>This is just addition, which is associative, so it&#8217;s the exact equivalent of</p>
<pre class="prettyprint lang-c">*(2 + array)</pre>
<p>which gives you</p>
<pre class="prettyprint lang-c">2[array]</pre>
<p>which is perfectly valid C.</p>
<p>&nbsp;</p>
<p>To prove that, consider this simple program</p>
<pre class="prettyprint lang-c">void main()

{

char array[3] = {1,2,3};

printf(&quot;array[2]: %d. 2[array]: %d\n&quot;, array[2], 2[array]);
}</pre>
<p>After compilation</p>
<pre class="prettyprint lang-sh">./assoc.out
array[2]: 3. 2[array]: 3</pre>
<p>&nbsp;</p>
<p>I would <em><strong>strongly</strong></em> caution against ever using this in production. Your colleagues will worry about you if they see it during a code review or when working on code you wrote. If you don&#8217;t think they would flag it, you should be worrying about them <img src='http://rooijan.za.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/c-code-you-should-never-use-in-production/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Three years down the line</title>
		<link>http://rooijan.za.net/archives/three-years-down-the-line?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=three-years-down-the-line</link>
		<comments>http://rooijan.za.net/archives/three-years-down-the-line#comments</comments>
		<pubDate>Wed, 18 Jul 2012 07:59:16 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=388</guid>
		<description><![CDATA[Three years ago today, I made a commitment to the Lord and the world that I wanted to spend the rest of my life with an amazing woman who had become my everything. Three years down the line, I&#8217;m even &#8230; <a href="http://rooijan.za.net/archives/three-years-down-the-line">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Three years ago today, I made a commitment to the Lord and the world that I wanted to spend the rest of my life with an amazing woman who had become my everything.</p>
<p>Three years down the line, I&#8217;m even more blissfully happy than I was then &#8211; thank you Vicki for giving me a terrific year with you, and here&#8217;s to many more happy years together. Happy anniversary love.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/three-years-down-the-line/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Headphone jacks do not belong on the front of laptops</title>
		<link>http://rooijan.za.net/archives/384?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=384</link>
		<comments>http://rooijan.za.net/archives/384#comments</comments>
		<pubDate>Mon, 07 May 2012 14:11:46 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[computers]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=384</guid>
		<description><![CDATA[Attention laptop designers: Don&#8217;t put the damned headphone jack on the front of the laptop, for crying out loud! You&#8217;ve forced me to choose between annoying background noises or annoyingly having to rest my arms on the headphone cable and &#8230; <a href="http://rooijan.za.net/archives/384">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Attention laptop designers: <span style="text-decoration: underline; color: #ff0000;"><strong>Don&#8217;t put the damned headphone jack on the front of the laptop, for crying out loud!</strong></span> You&#8217;ve forced me to choose between annoying background noises or annoyingly having to rest my arms on the headphone cable and constantly bumping the jack. Thanks ever so much.</p>
<p>HP is the guilty party here, but they&#8217;re not the only ones.</p>
<p>Okay, rant over, normal service can resume.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/384/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sumatra PDF</title>
		<link>http://rooijan.za.net/archives/sumatra-pdf?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sumatra-pdf</link>
		<comments>http://rooijan.za.net/archives/sumatra-pdf#comments</comments>
		<pubDate>Mon, 20 Feb 2012 19:05:05 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[computing]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=380</guid>
		<description><![CDATA[I&#8217;ve been using Pandoc for generating most of my documents for some time now, even going so far as to write a small tool to add additional support specific to my needs. I mostly generate PDF documents, and I found it &#8230; <a href="http://rooijan.za.net/archives/sumatra-pdf">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been using <a title="Pandoc" href="http://johnmacfarlane.net/pandoc/">Pandoc</a> for generating most of my documents for some time now, even going so far as to write a <a href="https://bitbucket.org/kimvanwyk/kppe">small tool</a> to add additional support specific to my needs. I mostly generate PDF documents, and I found it quite annoying to have to close the PDF viewer (I was using Acrobat) to allow Pandoc to make a new PDF.</p>
<p>I have since discovered that the <a href="http://blog.kowalczyk.info/software/sumatrapdf/download-free-pdf-viewer.html">Sumatra</a> PDF reader will allow PDF&#8217;s it has open to be written to &#8211; I&#8217;ve been using it for a few days and it seems a nice solution to this little problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/sumatra-pdf/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deluge Toggle &#8211; the world&#8217;s simplest Deluge client</title>
		<link>http://rooijan.za.net/archives/deluge-toggle-the-worlds-simplest-deluge-client?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=deluge-toggle-the-worlds-simplest-deluge-client</link>
		<comments>http://rooijan.za.net/archives/deluge-toggle-the-worlds-simplest-deluge-client#comments</comments>
		<pubDate>Tue, 24 Jan 2012 14:14:35 +0000</pubDate>
		<dc:creator>kim</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://rooijan.za.net/?p=368</guid>
		<description><![CDATA[I&#8217;ve recently been using Deluge to download torrents, thanks to froztbyte&#8217;s recent blog post. It seems to work very well, especially when combined with FlexGet for handling RSS feeds of torrents. My torrents are downloaded by my desktop machine, which &#8230; <a href="http://rooijan.za.net/archives/deluge-toggle-the-worlds-simplest-deluge-client">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve recently been using <a href="http://deluge-torrent.org/">Deluge</a> to download torrents, thanks to <a href="http://blog.froztbyte.net/2012/01/human-friendly-headless-torrents/">froztbyte&#8217;s recent blog post</a>. It seems to work very well, especially when combined with <a href="http://flexget.com/">FlexGet</a> for handling RSS feeds of torrents.</p>
<p>My torrents are downloaded by my desktop machine, which shares bandwidth with the rest of the devices on my network &#8211; my phone and my laptop, generally. I prefer the torrents not to use any bandwidth while I&#8217;m home, to free it all for whatever else I want it for.</p>
<p>Deluge offers scheduling, which is fine for weekdays &#8211; on almost any weekday the torrents can happily download during working hours and sleepy time. However, our weekends can vary wildly between home all weekend and barely home at all &#8211; it seems wasteful to schedule no downloading for the non-sleepy hours of the weekend on the off chance we&#8217;ll be home.</p>
<p>The <a href="http://dev.deluge-torrent.org/wiki/Plugins/Toggle">Toggle</a> plugin offers a better solution for my use-case &#8211; it stops all Deluge bandwidth usage when toggled. It integrates into the Deluge GUI and web clients.</p>
<p>However, I have found the web client to be quite slow and clunky on my phone, which is the primary device I want to use to toggle Deluge&#8217;s bandwidth usage &#8211; generally when I wake in the morning and go to bed at night. This is quite possibly my phone at fault, but it does make toggling Deluge&#8217;s bandwidth usage annoying, since I often need to use my laptop or the desktop machine.</p>
<p>Accordingly, I have written what I would imagine is the world&#8217;s simplest Deluge client: <a href="https://bitbucket.org/kimvanwyk/deluge-toggle">deluge-toggle</a>. The client either reports what the current toggling status is, or toggles the bandwidth usage. That&#8217;s all it does, but that&#8217;s exactly what I needed.</p>
<p>I have also written an incredibly simple <a href="http://flask.pocoo.org/">Flask</a> <a href="https://bitbucket.org/kimvanwyk/deluge-toggle-web">webapp</a> to interact with the deluge-toggle client, to save me having to use a console from my phone. I run this webapp on my desktop machine, and can now easily toggle Deluge&#8217;s bandwidth usage from anywhere that I can connect to my home network.</p>
<p>All of this is very simple, but it does say complimentary things about Flask and Deluge (particularly its plugin system) that this was as simple as it turned out to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooijan.za.net/archives/deluge-toggle-the-worlds-simplest-deluge-client/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
