<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Griffin::blog()</title>
    <link>http://griffin.oobleyboo.com/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Jason Stirk's Blog - Web Development and /dev/urandom</description>
    
    
        <item>
          <title>Maybe I Should Be a Plumber?</title>
          <description>&lt;p&gt;It seems this week that I should reconsider my vocation, as work with pipes (no, not &lt;a href=&quot;http://en.wikipedia.org/wiki/Series_of_tubes&quot;&gt;just the usual tubes&lt;/a&gt;) has been featuring prominently. Firstly, I had to put in a drainage pipe under the garden bed which I&amp;#8217;ve (slowly) been building for Rach. Hopefully it will save the paving against the side of our house from flooding every time it rains. That would be super cool&amp;#8230;&lt;/p&gt;


	&lt;p&gt;The second incident, and one which some of you might have noticed, is that &lt;a href=&quot;http://switchpipe.org/&quot;&gt;SwitchPipe&lt;/a&gt; has been acting like a bitch. You may have noticed my sites being down at random intervals lately? Yup, that&amp;#8217;s SwitchPipe dying off for no good reason. And after I&amp;#8217;d &lt;a href=&quot;http://griffin.oobleyboo.com/archive/switchpipe-for-fun-and-profit/&quot;&gt;said so many nice things about it&lt;/a&gt;!!!&lt;/p&gt;


	&lt;p&gt;I was away when it first started, receiving a phone call from &lt;a href=&quot;http://www.truelocal.com.au/&quot;&gt;truelocal&lt;/a&gt; (of all folks!) letting me know that the &lt;a href=&quot;http://achernarsolutions.com.au/&quot;&gt;Achernar Solutions&lt;/a&gt; site was down. Great. I then got an email from &lt;a href=&quot;http://www.petercooper.co.uk/&quot;&gt;Peter&lt;/a&gt; &amp;#8211; you know, the dude who wrote SwitchPipe &amp;#8211; saying something along the lines of &amp;#8220;Hey! Notice your site is down, hope it&amp;#8217;s not because of SwitchPipe&amp;#8221;. Gak!&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/switchpipe/browse_thread/thread/feee72b509db8ac4/d81f733cb3e325e3&quot;&gt;Several other people&lt;/a&gt; on the &lt;a href=&quot;http://groups.google.com/group/switchpipe&quot;&gt;SwitchPipe group&lt;/a&gt; had been having the same problem &amp;#8211; SwitchPipe would sit around for ages, working perfectly, and then it would just die with no explanation.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ll spare you the more boring bits about finding and hunting down the problem. Suffice to say that it involved lots of extra logging calls, and hacking logging calls into the &lt;a href=&quot;http://rubyforge.org/projects/eventmachine/&quot;&gt;EventMachine&lt;/a&gt; library.&lt;/p&gt;


	&lt;p&gt;Just now, I managed to reproduce the problem, fix it, create a patch and fire it off. Hopefully, that&amp;#8217;ll be the end of this freaking irritating bug.&lt;/p&gt;


	&lt;p&gt;What seemed to be causing it (and how I finally reproduced it) was making a &amp;#8220;GET / &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt;/1.0&amp;#8221; request to SwitchPipe. The key bit there is the request for &amp;#8221;/&amp;#8221;. A fairly safe request, one would think. Well, not quite. I&amp;#8217;m fairly certain that &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_proxy.html&quot;&gt;mod_proxy&lt;/a&gt; sends requests just like this off to back-end servers periodically, just to see if they&amp;#8217;re alive. This is likely what was happening in my case.&lt;/p&gt;


	&lt;p&gt;See, SwitchPipe first tries to find which site to serve based upon the directory name in the request. &amp;#8221;/&amp;#8221; has no directory. Oops! As such, that code returns false (as in, the FalseClass object), where it would normally return a string of the directory name. Not &lt;em&gt;that_bad&lt;/em&gt; so far. However, later on, this string was turned into a symbol using to_sym(). Ok, &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;BUT&lt;/span&gt;&lt;/strong&gt; FalseClass doesn&amp;#8217;t have a to_sym() method! So what happened? Exceptions were raised, Threads died, and eventually, SwitchPipe would come to a standstill.&lt;/p&gt;


	&lt;p&gt;This sort of stems from the fact that EventMachine creates 20 Thread objects when it&amp;#8217;s running, but never manages or restarts them. It just assumes that they&amp;#8217;ll always be alive until it says otherwise. So, when a Thread died thanks to the Exception being thrown, the pool just continued getting smaller and smaller until, finally, there are no more Threads to handle the requests.&lt;/p&gt;


	&lt;p&gt;Hopefully with &lt;a href=&quot;http://groups.google.com/group/switchpipe/msg/ffe07f40a06f1134&quot;&gt;this patch&lt;/a&gt; things will be back to normal with my sites, and they should stay up. Aside from this one small (but nasty) bug, SwitchPipe has been working like a charm. Ironically, the problem only surfaced after I made the post about it. Typical!&lt;/p&gt;</description>
          <pubDate>Fri, 04 Apr 2008 04:48:10 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/maybe-i-should-be-a-plumber/</guid>
          <link>http://griffin.oobleyboo.com/archive/maybe-i-should-be-a-plumber/</link>
        </item>
    
        <item>
          <title>SwitchPipe for Fun and Profit</title>
          <description>&lt;p&gt;You may have seen or heard about &lt;a href=&quot;http://switchpipe.org&quot;&gt;SwitchPipe&lt;/a&gt; &amp;#8211; a tool written by &lt;a href=&quot;http://peterc.org/&quot;&gt;Peter Cooper&lt;/a&gt;, the dude who writes for &lt;a href=&quot;http://www.rubyinside.com/&quot;&gt;RubyInside&lt;/a&gt;. Effectively, SwitchPipe is a proxy-esque Ruby app which listens on a port for requests and palms them off to Mongrel, thin, WEBrick, and other applications according to which site the request belongs to. The magic comes in that it&amp;#8217;s able to dynamically start, stop and manage the number of processes you have running for your sites, helping you to use your memory and cycles better.&lt;/p&gt;


	&lt;p&gt;For example, for most production Rails sites you&amp;#8217;ll want to have at least 2 mongrels running to ensure that it&amp;#8217;s responsive even when someone is doing something that takes a while (eg. slow upload, long running query, etc.) However, when the server is idle, or the site is not busy, there&amp;#8217;s a mongrel kicking about doing nothing but chewing up a big batch of memory. SwitchPipe allows you to say things like &amp;#8220;for this site, keep 1 mongrel running at all times, and if it can&amp;#8217;t handle it because it&amp;#8217;s too busy, you&amp;#8217;re allowed to start up to 3 other instances&amp;#8221;. Then, after a period of inactivity (which you can define) your mongrel instance dies off, freeing up memory again. You also have the benefit of being able to &amp;#8220;burst&amp;#8221; a bunch of instances for a short period of time. For example, you might get a rush of users making slow requests &amp;#8211; SwitchPipe can start up more instances of your application to keep your site responsive, and you can still set limits easily to ensure that one site can&amp;#8217;t overload your server.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s a totally sexy tool &amp;#8211; I&amp;#8217;m using it exclusively on my new &lt;a href=&quot;http://www.slicehost.com&quot;&gt;SliceHost&lt;/a&gt; slice. As the slice currently only has 256Mb of &lt;span class=&quot;caps&quot;&gt;RAM&lt;/span&gt;, having more than a few mongrels running at any time (especially with some of my larger applications) causes the server to slip into a swapping nightmare. So, I&amp;#8217;m using SwitchPipe to dynamically start and stop the instances as they&amp;#8217;re required. This means that my quieter sites (this blog, for example) isn&amp;#8217;t always chewing up memory, and that memory can be used by the busier applications.&lt;/p&gt;


	&lt;p&gt;There is a slight hit when starting a new instance, but it&amp;#8217;s not terrible &amp;#8211; usually a few seconds, depending on how fast the server can start the Mongrel instance. For example, on my server I say that I don&amp;#8217;t want any mongrels always kicking around for this blog, but once they&amp;#8217;re started they should live for a few minutes before dying off. This means that when a visitor navigates to my site, they wait a couple of seconds while Mongrel is started (unless it&amp;#8217;s already started), and then so long as they make another request before the instance times out, it&amp;#8217;ll all be super fast and sexy &amp;#8211; reusing the already started instance. Of course, I also use Apache to serve my static content so as that images, etc. will always be super fast to be delivered.&lt;/p&gt;


	&lt;p&gt;Not convinced? Not just this blog is running through SwitchPipe &amp;#8211; so is the &lt;a href=&quot;http://achernarsolutions.com.au&quot;&gt;Achernar Solutions&lt;/a&gt; site, and 5 or so other sites on this server. And they&amp;#8217;ve all been running in this way for well over a month with absolutely no problems. I haven&amp;#8217;t even bothered to install &lt;a href=&quot;/projects/pal&quot;&gt;pal&lt;/a&gt; on the new slice (pal is the tool I wrote to make managing Rails sites easier for administrators) because SwitchPipe is simpler, and has more features. SwitchPipe manages all the ports for me automatically and manages starting and stopping all the processes for me. Why would I need pal when I just need to drop a &lt;span class=&quot;caps&quot;&gt;YAML&lt;/span&gt; configuration file into SwitchPipe&amp;#8217;s configuration directory and it will pick it up on it&amp;#8217;s own and start handling the site?&lt;/p&gt;


	&lt;p&gt;So, if you&amp;#8217;re hosting Rails apps, Merb apps, Django apps, and a whole host of others, SwitchPipe is going to make your life simpler. &lt;a href=&quot;http://switchpipe.org&quot;&gt;Check it out!&lt;/a&gt;&lt;/p&gt;</description>
          <pubDate>Thu, 06 Mar 2008 00:59:44 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/switchpipe-for-fun-and-profit/</guid>
          <link>http://griffin.oobleyboo.com/archive/switchpipe-for-fun-and-profit/</link>
        </item>
    
        <item>
          <title>RadiantCMS Extensions Load Order GOTCHA</title>
          <description>&lt;p&gt;Just a super short post in case anyone hits the same problem I did with setting up &lt;a href=&quot;http://wiki.radiantcms.org/Thirdparty_Extensions&quot;&gt;extensions&lt;/a&gt; for &lt;a href=&quot;http://www.radiantcms.org&quot;&gt;RadiantCMS&lt;/a&gt;.&lt;/p&gt;


If running &lt;strong&gt;db:migrate:extensions&lt;/strong&gt; gives you an error, such as :
&lt;pre&gt;# rake production db:migrate:extensions
...
rake aborted!
undefined method `page' for #&amp;lt;Radiant::AdminUI:0x45b4a38&amp;gt;

(See full trace by running task with --trace)&lt;/pre&gt;

	&lt;p&gt;The issue may be because the other extensions are loading before &lt;a href=&quot;http://dev.radiantcms.org/radiant/browser/trunk/extensions/shards/README&quot;&gt;shards&lt;/a&gt;, as extensions are loaded in alphabetical order.&lt;/p&gt;


	&lt;p&gt;In my case, &lt;a href=&quot;http://dev.radiantcms.org/radiant/browser/trunk/extensions/reorder/README&quot;&gt;reorder&lt;/a&gt; was loading before &lt;a href=&quot;http://dev.radiantcms.org/radiant/browser/trunk/extensions/shards/README&quot;&gt;shards&lt;/a&gt;, and hence the error.&lt;/p&gt;


Once I fixed up the load order in config/environment.rb, everything went great :
&lt;pre&gt;config.extensions = [ :shards, :all ]&lt;/pre&gt;</description>
          <pubDate>Mon, 04 Feb 2008 14:39:46 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/radiantcms-extensions-load-order-gotcha/</guid>
          <link>http://griffin.oobleyboo.com/archive/radiantcms-extensions-load-order-gotcha/</link>
        </item>
    
        <item>
          <title>Every Era Has an End</title>
          <description>&lt;p&gt;Well, today&amp;#8217;s the day. As of the 1st of February 2008, I am no longer part of &lt;a href=&quot;http://www.gmm.com.au&quot;&gt;Griffin Multimedia&lt;/a&gt; as it has been purchased by Paul and his friendly cohorts at &lt;a href=&quot;http://www.insilico.com.au&quot;&gt;in silico&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;We originally set up &lt;span class=&quot;caps&quot;&gt;GMM&lt;/span&gt; in March 2003 &amp;#8211; just out of high school, just starting in University and really just learning. It&amp;#8217;s been fun, but all good things must come to an end.&lt;/p&gt;


	&lt;p&gt;Over those 5 years, I&amp;#8217;ve had the opportunity to work with a whole host of people and businesses &amp;#8211; some that I&amp;#8217;m proud to say that I&amp;#8217;ve worked with, and others that I&amp;#8217;m glad to no longer be associated with. It&amp;#8217;s definitely been a learning experience &amp;#8211; one which I&amp;#8217;d be lying if I said that I loved every moment of, but one that has been fun, and one that I don&amp;#8217;t regret (too much :P).&lt;/p&gt;


	&lt;p&gt;In those 5 years, I abandoned Uni, we&amp;#8217;ve changed servers 3 times, Craig has finished his degree, Danny&amp;#8217;s been to Japan twice, I&amp;#8217;ve moved more times than I can count, finally ending up in New South Wales, and we helped a variety of businesses and community groups to develop a presence on the Internet.&lt;/p&gt;


	&lt;p&gt;So, I thought I&amp;#8217;d put a shout out to all the folks that have been an inspiration to me over the 5 years, and those folks who have helped us along our way.&lt;/p&gt;


	&lt;p&gt;Firstly, definitely has to go to &lt;a href=&quot;http://www.insilico.com.au&quot;&gt;Paul O&amp;#8217;Neill&lt;/a&gt;. I originally met Paul doing work experience at the small Perth &lt;span class=&quot;caps&quot;&gt;ISP&lt;/span&gt; &amp;#8211; v-App &amp;#8211; which Paul was one of the principals of. Paul has a lot to be responsible for &amp;#8211; including my first introduction to &lt;a href=&quot;http://www.pragprog.com/the-pragmatic-programmer&quot;&gt;The Pragmatic Programmers&lt;/a&gt;, teaching me OO better, faster and more coherently than University, and for giving me support in developing from some teenager who loved writing code to a young dude being able to write code for a living. Through those 5 years we&amp;#8217;ve both had ups and downs &amp;#8211; both professionally, and personally, and I&amp;#8217;m privileged to have him as a friend through all of that. Not to mention his awesome skills as a &lt;a href=&quot;http://creatingminds.org/tools/rubber_ducking.htm&quot;&gt;rubber duck&lt;/a&gt; and someone to throw zany code ideas around with.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m glad that Paul, Naomi and all the guys at in silico are taking over our clients &amp;#8211; I can&amp;#8217;t think of any other company that I would trust to treat them as well.&lt;/p&gt;


	&lt;p&gt;Next, &lt;a href=&quot;http://thetelegraphic.com/&quot;&gt;Danny&lt;/a&gt; and Craig, my ex-partners. These guys deserve a huge thanks just for putting up with me, for being awesome dudes, and for reminding me that just because we&amp;#8217;re in business doesn&amp;#8217;t mean that everything has to be totally serious all the time. Again, we&amp;#8217;ve had our ups and downs, but they&amp;#8217;ve never let that get in the way of business, and I appreciate both of them for that. &lt;span class=&quot;caps&quot;&gt;GMM&lt;/span&gt; did well to make it as far as we did, and it wouldn&amp;#8217;t have been anywhere near as fun without them. The only regret? All of the cool apps that we wanted to build that we never got around to. They&amp;#8217;re both super clever and talented dudes, and I&amp;#8217;m sure they&amp;#8217;ll do great in the future &amp;#8211; whether that&amp;#8217;s in IT, design, photography or music.&lt;/p&gt;


	&lt;p&gt;To all of you folks that have been good enough to throw work at us over the past 5 years &amp;#8211; to &lt;a href=&quot;http://zanchey.ucc.asn.au/&quot;&gt;Zanchey&lt;/a&gt;, who&amp;#8217;s sent me enough referrals over the years to leave me eternally indebted to him; to &lt;a href=&quot;http://dirkkelly.com/&quot;&gt;Dirk&lt;/a&gt;, who (unbeknownst to him) has often reminded me that I love writing code, and if it&amp;#8217;s not fun you&amp;#8217;re not doing it right; to &lt;a href=&quot;http://www.tmias.com&quot;&gt;George&lt;/a&gt;, who seems to take a sadistic delight in getting a perfectly good design sorted, and then sending me a &amp;#8220;revision&amp;#8221; when I&amp;#8217;ve just finished the first one; and to Andy, who will probably never read this, but hopefully is doing great with all of the amazing ideas that he has. To all of you, thank you for the friendship and trust that you&amp;#8217;ve shown to us in the past. There&amp;#8217;s nothing harder than referring a friend to someone, and without you we&amp;#8217;d have closed up shop long ago.&lt;/p&gt;


	&lt;p&gt;Finally, to my family. Despite the fact that they&amp;#8217;ve probably never quite understood just what I&amp;#8217;m rabbiting on about (since I was 8, probably), and have looked on with fear and concern as I&amp;#8217;ve worked myself into the ground over one project or another (or from caffeine abuse), they&amp;#8217;ve always just been there &amp;#8211; which is much more important than it sounds. Whenever I&amp;#8217;ve had problems with business, need some advice, or just need someone to bitch and moan to, they&amp;#8217;ve been there.&lt;/p&gt;


	&lt;p&gt;So, what&amp;#8217;s happening now?&lt;/p&gt;


	&lt;p&gt;As I mentioned in a &lt;a href=&quot;/archive/introducing-achernar-solutions/&quot;&gt;previous post&lt;/a&gt;, I&amp;#8217;ve set up a new business &amp;#8211; &lt;a href=&quot;http://achernarsolutions.com.au&quot;&gt;Achernar Solutions&lt;/a&gt;, where I&amp;#8217;m looking at doing far more development and consulting work. Coding, thinking, building &amp;#8211; the stuff that I love. I&amp;#8217;m available to &lt;a href=&quot;http://achernarsolutions.com.au/web-application-development-and-maintenance&quot;&gt;build web applications&lt;/a&gt;, for &lt;a href=&quot;http://achernarsolutions.com.au/ruby-on-rails-consulting&quot;&gt;Ruby on Rails consulting&lt;/a&gt;, and &lt;a href=&quot;http://achernarsolutions.com.au/linux-support-services&quot;&gt;remote Linux support&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m also staying on with in silico as their Systems Administrator &amp;#8211; making sure that my baby (the server) stays running for long enough until they can easily maintain it themselves.&lt;/p&gt;


	&lt;p&gt;Aside from that, who knows? It&amp;#8217;s the start of a brand new year, and I&amp;#8217;m looking forward to seeing everything that it has to offer.&lt;/p&gt;


	&lt;p&gt;May the next 5 years be as successful as the past 5!&lt;/p&gt;</description>
          <pubDate>Fri, 01 Feb 2008 18:16:09 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/every-era-has-an-end/</guid>
          <link>http://griffin.oobleyboo.com/archive/every-era-has-an-end/</link>
        </item>
    
        <item>
          <title>Scaremongering About Australia's Proposed Filters</title>
          <description>&lt;p&gt;In addition to &lt;a href=&quot;http://griffin.oobleyboo.com/archive/australias-proposed-world-class-broadband/&quot;&gt;my last post&lt;/a&gt; regarding Australia&amp;#8217;s proposed mandatory Internet Filter, this is a copy of &lt;a href=&quot;http://phillipmalone.com/2008/01/07/second-life-skype-even-google-wont-blocked-by-the-australian-government/#comment-15&quot;&gt;a comment&lt;/a&gt; that I have just posted in response to &lt;a href=&quot;http://phillipmalone.com/&quot;&gt;Phillip Malone&amp;#8217;s&lt;/a&gt; post, &lt;a href=&quot;http://phillipmalone.com/2008/01/07/second-life-skype-even-google-wont-blocked-by-the-australian-government/&quot;&gt;Second Life, Skype, Even Google Won’t be blocked by The Australian Government?&lt;/a&gt;, which was itself a response to &lt;a href=&quot;http://duncanriley.com/&quot;&gt;Duncan Riley&amp;#8217;s&lt;/a&gt; recent post, &lt;a href=&quot;http://www.duncanriley.com/2008/01/06/will-second-life-skype-even-google-by-blocked-by-the-australian-government/&quot;&gt;Will Second Life, Skype, Even Google Be Blocked By The Australian Government?&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Whilst I agree that some of what Duncan points out may be slight exaggerations, I believe it highlights the problem with the policy as it has been presented to the public to date &amp;#8211; we don&amp;#8217;t know &lt;strong&gt;what&lt;/strong&gt; is going to be blocked under the new filter, and therefore Duncan&amp;#8217;s suggestions could, in fact, be possible at this stage. The comment I left for Molly is as follows:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I think the main point that many folks are trying to make with these claims (which I agree are often exaggerated) is that, from what the public has been told so far, it&amp;#8217;s not possible to say what will and won&amp;#8217;t be filtered.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I&amp;#8217;ve not seen anywhere refer to a black and white classification system of what will and won&amp;#8217;t be blocked under this policy. Regardless of any of the (considerable) technical problems, we&amp;#8217;re effectively at the whim of whoever is running the programme once it is in place. Is there a government document setting out what is and isn&amp;#8217;t acceptable content?&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;From what has been publicly released thus far &amp;#8211; a few phrases with non-specific terms such as &amp;#8220;objectionable content&amp;#8221; &amp;#8211; the only thing that we can be certain is to be on the list (and quite rightly so) is child pornography. However the question is still wide open as to what else could be on that list. The fact that the classification system is not public and transparent is a huge problem.&lt;/p&gt;
	&lt;/blockquote&gt;</description>
          <pubDate>Wed, 09 Jan 2008 13:00:47 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/scaremongering-about-australias-proposed-filters/</guid>
          <link>http://griffin.oobleyboo.com/archive/scaremongering-about-australias-proposed-filters/</link>
        </item>
    
        <item>
          <title>Australia's Proposed World Class Broadband?</title>
          <description>&lt;p&gt;As &lt;a href=&quot;http://en.wikipedia.org/wiki/Dave_Hughes&quot;&gt;Dave Hughes&lt;/a&gt; might say, &amp;#8220;I&amp;#8217;m angry tonight&amp;#8230;&amp;#8221;. I&amp;#8217;m angry because &lt;a href=&quot;http://www.abc.net.au/news/stories/2007/12/31/2129471.htm&quot;&gt;Australia&amp;#8217;s Internet is on a nasty road&lt;/a&gt; &amp;#8211; the road to censorship. If you look to your left, you&amp;#8217;ll see ISPs forced to implement a technology doomed to fail. To your right, you&amp;#8217;ll see the Australian public getting shafted. Just up ahead, we&amp;#8217;ll see parents taking even less responsibility for what their kids do on the Internet.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s not getting that much airtime outside of the IT community currently, but the &lt;span class=&quot;caps&quot;&gt;ALP&lt;/span&gt; is pushing for it to be mandatory for all ISPs to take part in a system to filter out nasty content on the Internet. Sure, this will have it&amp;#8217;s perks, but at what costs?&lt;/p&gt;


	&lt;p&gt;In this post, I&amp;#8217;m going to take you on a quick tour of the pros, the cons, and probably some knee-jerk conspiracy mongering thanks to recently reading 1984. Should be fun!&lt;/p&gt;


	&lt;h2&gt;Background from other folks&lt;/h2&gt;


If you want a bit of background from other folks too, check out these links:
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://manwithnoblog.com/2007/12/31/filtering-the-internet/&quot; title=&quot;Gary Barber&quot;&gt;Filtering the Internet&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://librariansmatter.com/blog/2007/12/31/internet-filtering-to-become-mandatory-in-australia/&quot;&gt;Internet filtering to become mandatory in Australia&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.techcrunch.com/2007/12/30/australia-joins-china-in-censoring-the-internet/&quot;&gt;Australia Joins China In Censoring The Internet&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.efa.org.au/Publish/PR080102.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;EFA&lt;/span&gt; Attacks Clean-Feed Proposal&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.australianit.news.com.au/story/0,24897,23021645-15306,00.html&quot;&gt;Conroy wades into child porn net flood&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.netalarmed.com/&quot;&gt;NetAlarmed is protecting Australia from Internet nasties&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h2&gt;Some History&lt;/h2&gt;


	&lt;p&gt;The &lt;span class=&quot;caps&quot;&gt;ALP&lt;/span&gt; made a lot of noise during the recent election about giving Australia &lt;a href=&quot;http://www.alp.org.au/action/broadband.php&quot;&gt;World Class Broadband&lt;/a&gt; &amp;#8211; not before time! In Australia we&amp;#8217;ve been plagued with high broadband costs, &lt;a href=&quot;http://bigpond.com/homepage/&quot;&gt;mediocre bandwidth and quotas&lt;/a&gt; (sorry, couldn&amp;#8217;t resist!), and even worse infrastructure.&lt;/p&gt;


	&lt;p&gt;To give you some idea, it&amp;#8217;s not uncommon for Australian ISPs to charge &lt;a href=&quot;http://bc.whirlpool.net.au/bc-plan.cfm?state=nsw&amp;#38;class=0&amp;#38;type=bus&amp;#38;cost=0&amp;#38;pre=3000&amp;#38;conntype=1&amp;#38;conntype=4&amp;#38;conntype=5&amp;#38;speed=1024&amp;#38;upspeed=0&amp;#38;contract=99&amp;#38;needhw=yes&amp;#38;upfront=999999&quot;&gt;anywhere from $10/Gb to $90/Gb&lt;/a&gt; (That&amp;#8217;s extreme though) for network traffic. Our &lt;a href=&quot;http://hostaway.com.au/products/colocation/&quot;&gt;particular host&lt;/a&gt; charges $35 down to $15 per Gb, and that&amp;#8217;s for a co-located server, which one would expect to be cheaper thanks to the bulk of data.&lt;/p&gt;


	&lt;p&gt;Contrast this with other nations, such as the US where it&amp;#8217;s not uncommon to see $1/Gb excess charges, or even hosting providers offering &lt;a href=&quot;http://www.mediatemple.net/webhosting/gs/&quot;&gt;1TB of bandwidth for $20/month&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Sure, Australia isn&amp;#8217;t the worst, but for an advanced, affluent country, we&amp;#8217;re paying a huge amount for Internet access. I don&amp;#8217;t know exactly why this is the case, but I suspect a great deal of it owes to the fact that we don&amp;#8217;t have that many options when it comes to physical connections in and out of the country &amp;#8211; undersea cable is expensive, and satellite communications only has a certain amount of bandwidth that it can handle. As such, it&amp;#8217;s going to take a heap of capital to get more bandwidth into Australia, and then far more infrastructure to get it delivered everywhere.&lt;/p&gt;


	&lt;p&gt;With regards to web filtering, it is not an uncommon thing to do. Home users have some solutions (albeit usually fairly unreliable), but it&amp;#8217;s very common for schools, Internet cafes, and other businesses to do some filtering. For example, the WA &lt;a href=&quot;http://det.wa.edu.au/&quot;&gt;Department of Education and Training&lt;/a&gt; uses a very coarsely grained access filter to block out common and obvious websites that are not suitable for minors. Every school I&amp;#8217;ve ever worked at or been involved with has run their own filtering solution on their own network in order to keep tabs, and filter out what students are looking at.&lt;/p&gt;


	&lt;p&gt;A few years ago, China also announced that they would start &lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_censorship_in_the_People's_Republic_of_China&quot;&gt;filtering web traffic&lt;/a&gt;, and this received a fair amount of condemnation from those who heard about it in most Western societies. That may have been mainly because they were filtering content that was anti-governmental, and news sources external to the strictly controlled Chinese media.&lt;/p&gt;


	&lt;p&gt;Some other countries, including the UK also currently filter their Internet traffic, however I am not 100% certain to what degree, or of the specifics.&lt;/p&gt;


	&lt;h2&gt;PROs&lt;/h2&gt;


	&lt;p&gt;First off, the concept of filtering the Internet has a few lofty goals &amp;#8211; we can protect children from unsuitable content such a pornography, we can protect society from websites that might incite hate crimes or violent behaviour, and it gives us another way to stop and track paedophiles and those who are involved with child pornography.&lt;/p&gt;


	&lt;p&gt;These are all important things &amp;#8211; I don&amp;#8217;t believe that anyone here would condone child pornography, or say that hatemongering, or exposing children to pornography or graphic violence are things that we should be defending. As a society we already do a fair deal to protect against these types of things &amp;#8211; movies and TV shows have ratings (don&amp;#8217;t get me started on the lack of an R-rating for games in Australia, though!); hate and violence is condemned and we have laws and legislation to discourage it; we have task forces of police and civil servants who work locally and internationally to hunt and stop child pornography and paedophilia.&lt;/p&gt;


	&lt;p&gt;However.&lt;/p&gt;


	&lt;h2&gt;CONs&lt;/h2&gt;


The concept of national level, opt-out filtering scares me. It does this for a few reasons :
	&lt;ul&gt;
	&lt;li&gt;it&amp;#8217;s not going to work as well as it&amp;#8217;s proponents might want to believe;&lt;/li&gt;
		&lt;li&gt;it&amp;#8217;s going to be horribly inefficient, and will raise costs to push a World Class Broadband for Australia further out of reach;&lt;/li&gt;
		&lt;li&gt;managing and maintaining the solution is going to have additional costs across the board that taxpayers will have to fork out for;&lt;/li&gt;
		&lt;li&gt;it opens a whole new can of worms in terms of accountability, impartiality and corruption;&lt;/li&gt;
		&lt;li&gt;it opens a whole big can of worms in terms of monitoring, privacy and the rights of the individual;&lt;/li&gt;
		&lt;li&gt;there are far better solutions, that distribute the load and have beneficial side-effects;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Simply put, I don&amp;#8217;t think it&amp;#8217;s going to work as well as the proponents think it will. I primarily put that down to the fact that those espousing these sorts of solutions neither fully understand the technical details on the implementation, nor do they understand what it is like to be sitting behind one of these sorts of solutions.&lt;/p&gt;


	&lt;p&gt;Anyone who has ever been at one of the aforementioned schools which uses content filtering knows that it&amp;#8217;s not an exact science &amp;#8211; there are a few ways to manage these sorts of content filtering proxies, and none of them are perfect. As someone that&amp;#8217;s both run a system of this nature, and someone who&amp;#8217;s been trying to get around them, they&amp;#8217;re unreliable and require a large amount of maintenance. Furthermore, updating the filter needs to be done often, and needs to be done very rapidly after unsuitable content is found.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s look at a few of the technical options to run a filtering system such as this.&lt;/p&gt;


	&lt;p&gt;You can use keywords &amp;#8211; for example, a program can look through every website as it is loaded, and if it contains certain words then it will be blocked. I&amp;#8217;m sure you can guess most of the four-letter words that schools frequently block, and if you let the dirty side of your mind wander a little, you&amp;#8217;ll probably work out a few more. Keyword filtering sucks. We&amp;#8217;ve seen this in other problem spaces too &amp;#8211; just look at &lt;span class=&quot;caps&quot;&gt;SPAM&lt;/span&gt;. As soon as solutions emerged that looked for obvious &lt;span class=&quot;caps&quot;&gt;SPAM&lt;/span&gt; words such as &amp;#8220;viagra&amp;#8221;, &amp;#8220;penis&amp;#8221;, etc. SPAMmers quickly took to obfuscating them. As such, we now get emails offering us &amp;#8220;v1agr4 3n1arg3 y0ur &lt;span class=&quot;caps&quot;&gt;P3N&lt;/span&gt;!S&amp;#8221; and crap like that. We&amp;#8217;ve used these kinds of solutions at schools, and I can guarantee that they&amp;#8217;re not perfect. Is &amp;#8220;breast&amp;#8221; a keyword for pornography, or for Breast Cancer Awareness?&lt;/p&gt;


	&lt;p&gt;In addition to a keyword solution being unreliable, the infrastructure required to search for these keywords across all Australia &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; traffic would be immense and expensive. Keyword filtering is not a good idea from a technical standpoint.&lt;/p&gt;


	&lt;p&gt;The other typical solution is to see what everyone is viewing and review those pages in order to find new &amp;#8220;bad stuff&amp;#8221; to add to your list of blocked sites. I did this for about 2 years while I was in high school, where each day I would check the traffic logs on the proxy server and have a quick look for inappropriate content. To do this reliably, every page that is viewed must be reviewed, and checked for any content deemed &amp;#8220;inappropriate&amp;#8221;, and therefore blocked. Not withstanding that the process of identifying these &amp;#8220;bad pages&amp;#8221; as they are navigated to will be a bottleneck, the manpower required to review these pages would need to be immense in order to be anywhere near useful. Certainly, much of the traffic would be duplicated (and so might not need to be checked again) however it would not be possible to effectively review content such as snippets of information returned via &lt;span class=&quot;caps&quot;&gt;AJAX&lt;/span&gt;, pages requiring authentication or cookies, or the result of POSTed content.&lt;/p&gt;


	&lt;p&gt;Reviewing sites has the computing overhead of using keywords, plus is human-intensive, is prone to errors, and won&amp;#8217;t even work for a bunch of the use cases. As such, that&amp;#8217;s not a suitable option.&lt;/p&gt;


	&lt;p&gt;Finally, you could just block pages that you get complaints about. I&amp;#8217;m not sure if I need to point out the stupidity of this idea. The likelihood of someone complaining about inappropriate content is minimal, as they actually have to visit it in order to be able to complain. Consider that &lt;a href=&quot;http://en.wikipedia.org/wiki/Goatse.cx&quot;&gt;goatse.cx&lt;/a&gt;, one of the best known shock sites, was available for over 4 years before anyone actually complained about it &amp;#8211; I consider this to be a very prominent example, as goatse was (and still is) remarkably well known for it&amp;#8217;s offensive nature. Yet, it still took several years before someone found it offensive enough to report it.&lt;/p&gt;


	&lt;p&gt;So let&amp;#8217;s jump forward to an Australia where this kind of filtering has been made mandatory. Who is going to pay for the core infrastructure to maintain the lists, employ the maintainers, etcetera? It will be us, the taxpayers, who will be paying for a system that will likely never provide a suitable level of protection. Additionally, ISPs will need to expand or modify their infrastructure to handle the new technical requirements. If we assume that the Government mandates that ISPs must filter the traffic themselves (based upon filtering lists, or something similar), the cost to process that traffic will be passed on directly to customers. I can&amp;#8217;t see iiNet, Telstra, or any &lt;span class=&quot;caps&quot;&gt;ISP&lt;/span&gt; of any size for that matter, saying &amp;#8220;Hey, it&amp;#8217;s OK guys &amp;#8211; we&amp;#8217;ll spend a this wad of cash on new hardware, new personnel to maintain it, legal advice on whether or not we comply, etc. We won&amp;#8217;t charge you any more!&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;Furthermore, this is an additional roadblock for new ISPs, who will not only have to compete with the big players, but have to comply with the legislation, and find out whether they comply.&lt;/p&gt;


	&lt;p&gt;However, the concept of ISPs managing the filtering themselves is a ludicrous idea &amp;#8211; what is there to stop whoever is implementing the filters from ensuring that there is still a workaround for private or community use? Geeks are, stereotypically, against censorship and therefore I consider it inevitable that such a workaround will be made in at least one location.&lt;/p&gt;


	&lt;p&gt;Oh, and I&amp;#8217;m also going to gloss over the fact that systems such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Tor_%28anonymity_network%29&quot;&gt;Tor&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/BitTorrent_%28protocol%29&quot;&gt;BitTorrent&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/IRC&quot;&gt;&lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt;&lt;/a&gt; or any number of &lt;a href=&quot;http://thomer.com/howtos/nstx.html&quot;&gt;different, non-HTTP protocols&lt;/a&gt; could be used to disseminate this &amp;#8220;inappropriate content&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;Ok, so let&amp;#8217;s jump forward some more to an Australia where the filtering has been made mandatory, and it&amp;#8217;s being implemented somewhere, whether that be at a core Governmental location, or at the &lt;span class=&quot;caps&quot;&gt;ISP&lt;/span&gt; level.&lt;/p&gt;


	&lt;p&gt;Who the hell is going to decide what is and what isn&amp;#8217;t appropriate? Certainly, some things are black and white &amp;#8211; child pornography is well out, fuzzy bunnies are in! But what about the grey areas? What about tasteful (artistic) nudity? What about classic art or religious texts that suggest or promote violence and hate? What about &lt;a href=&quot;http://www.petatv.com/tvpopup/video.asp?video=fur_farm&amp;#38;Player=qt&quot;&gt;graphic cruelty to animals&lt;/a&gt; such as is frequently featured on peta.org and other environmentalist sites? What about &lt;a href=&quot;http://en.wikipedia.org/wiki/Goatse&quot;&gt;goatse&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Tubgirl#Tubgirl.com&quot;&gt;tubgirl&lt;/a&gt;, and all those shock sites?&lt;/p&gt;


	&lt;p&gt;You might think that the mention of goatse and tubgirl wasn&amp;#8217;t warranted, but I believe these are strong examples of content that is very offensive, but only in certain circles. Does that make them &amp;#8220;nationally&amp;#8221; inappropriate? Who decides so? I&amp;#8217;ve been exposed to young Mr. Goatse so many times that he doesn&amp;#8217;t bother me any more (one of my 18th birthday cards included him &amp;#8211; what a surprise!). However, I&amp;#8217;d warrant that my grandparents (or most other people) would be less than pleased to find it in a Christmas card. It is how the legislation deals with these grey areas that best indicates the future direction of the legislation. Personally, I don&amp;#8217;t want to see pictures of a raccoon being beaten to death with a cudgel, but people who visit peta.org are likely very passionate about such things! Can I ask for it to be blocked as inappropriate?&lt;/p&gt;


	&lt;p&gt;Will adding something to the filter need the approval of a judge or court? What about a vote of parliament? A public vote? A council of religious leaders? Before even considering building a list, we need to decide on who should maintain such a thing, and what &lt;strong&gt;hard and fast rules&lt;/strong&gt; we use to place content into that list.&lt;/p&gt;


	&lt;p&gt;Why is this important? Because it&amp;#8217;s only a small step from blocking sites that promote anti-social behaviour, to sites that promote fringe political beliefs, to sites of minor political parties or lobby groups. I sure don&amp;#8217;t support &lt;a href=&quot;http://www.abc.net.au/news/stories/2007/11/07/2083798.htm&quot;&gt;victimless crimes such as incest between adults&lt;/a&gt; however I do believe that you have a right to put forward that viewpoint. I strongly agree with Duncan when he said that &lt;a href=&quot;http://twitter.com/duncanriley/statuses/554844132&quot;&gt;The problem with censorship is once it starts it rarely stops.&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not saying that we shouldn&amp;#8217;t filter anything &amp;#8211; however I do believe very strongly that the filtering has to be entirely transparent and 100% accountable.&lt;/p&gt;


	&lt;p&gt;Furthermore, the &lt;span class=&quot;caps&quot;&gt;ALP&lt;/span&gt; is proposing an opt-out system, and it&amp;#8217;s not a big stretch to consider consumers could possibly run the risk of being subject to additional monitoring if they were to ask to opt-out. It&amp;#8217;s especially popular for proponents of these sorts of measures to say &amp;#8220;If you don&amp;#8217;t support filtering, you must be viewing child pornography, as that&amp;#8217;s all that&amp;#8217;s going to be filtered&amp;#8221;. Despite that this kind of &lt;a href=&quot;http://en.wikipedia.org/wiki/Straw_man&quot;&gt;Straw Man&lt;/a&gt; attack is a logical fallacy, that is a fundamentally flawed perspective to take. I&amp;#8217;m certain that there&amp;#8217;s something about &lt;a href=&quot;http://en.wikipedia.org/wiki/Onus_of_proof&quot;&gt;presumption of innocence&lt;/a&gt; in this country, and it&amp;#8217;s illogical arguments such as these which open the doors to emotive, knee-jerk reactions and allows for people to be stripped of their rights in the name of &amp;#8220;the greater good&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;Don&amp;#8217;t get me wrong &amp;#8211; I&amp;#8217;m not under any illusion that our Internet traffic is not currently monitored and tracked for a range of purposes. Call me a raving conspiracy theorist nutjob, it&amp;#8217;s happening. I know enough about the technology to know it&amp;#8217;s within possibilities, and I&amp;#8217;ve met enough people who have told me first hand of their involvement with it, or told me of their discussions with people who have been involved with it. Whether it&amp;#8217;s by &lt;a href=&quot;http://en.wikipedia.org/wiki/ECHELON&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ECHELON&lt;/span&gt;&lt;/a&gt; or something else, we&amp;#8217;re being monitored. I&amp;#8217;m at ease with it &amp;#8211; as someone who&amp;#8217;s grown up on the Internet, and has more stuff on the Internet than most of my friends actually know about me, I&amp;#8217;m under no illusions that this plan by the &lt;span class=&quot;caps&quot;&gt;ALP&lt;/span&gt; would be the first effort to keep track of what we&amp;#8217;re doing and reading on the Internet. I&amp;#8217;ve got absolutely nothing to hide, but that doesn&amp;#8217;t mean that I&amp;#8217;m not entitled to a modicum of privacy!&lt;/p&gt;


	&lt;p&gt;That said, I don&amp;#8217;t believe that we need any more monitoring, especially not monitoring that is being pushed using emotive knee-jerking under the misconception that it will actually make any difference in the fight against child pornography, hate crimes and the sliding of society down the proverbial toilet.&lt;/p&gt;


	&lt;p&gt;Earlier in this essay, I referred to a better solution, one that is distributed, low cost, and has beneficial side-effects.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s called parenting.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not a parent. I don&amp;#8217;t have kids. I am, however, a Scout Leader, and I know what it&amp;#8217;s like to try and manage what children are up to. They&amp;#8217;re smart, sneaky, cunning little beasts.&lt;/p&gt;


	&lt;p&gt;However, that is no excuse for you to not know what your children are up to. You&amp;#8217;re older, you&amp;#8217;re meant to be smarter too. If you child is on the Internet, and you don&amp;#8217;t know what they&amp;#8217;re up to then quite honestly, it&amp;#8217;s your own fault when they stumble upon something you don&amp;#8217;t want them to. I&amp;#8217;m not saying that parents need to sit next to their children at the computer (where&amp;#8217;s the fun in that!) but all too many parents buy Johnny and Suzie a computer, put it in a room out of the way (so as that incessant beeping can&amp;#8217;t be annoying) and let them go wild. Put the computer in a public place, check what they&amp;#8217;re up to. Hell, take an interest in what they&amp;#8217;re up to!&lt;/p&gt;


	&lt;p&gt;Parents will get a bit offended at that. &amp;#8220;But when they&amp;#8217;re at school! When they&amp;#8217;re at a friends place! But! But! But!&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;No. No buts!&lt;/p&gt;


	&lt;p&gt;Schools already have an interest in protecting your child from this kind of content. There isn&amp;#8217;t a school I know of, or an education department that has any excuse for not filtering out the most run of the mill garbage from their students. It&amp;#8217;s not easy, and it&amp;#8217;s not perfect, but with a combination of teacher supervision and these &lt;strong&gt;light weight&lt;/strong&gt; technical solutions, it does the job. If the school your children go to doesn&amp;#8217;t have something like this, then you should be asking why.&lt;/p&gt;


	&lt;p&gt;At a friends house, you might want to expect that your child is being given the same level of supervision as you might provide at home. Do you trust the parents of your children&amp;#8217;s friends to stop them playing with knives, matches or guns? Of course you do. The Internet is a tool, exactly the same. You should be watching your children&amp;#8217;s friends just as you would your own.&lt;/p&gt;


	&lt;p&gt;No level of technical measures will be anywhere near as effective as having &lt;strong&gt;someone who knows better&lt;/strong&gt; keeping at eye on your children. Oh, and you get the benefit of actually having a relationship with your offspring. Pfft! How would that work again!?&lt;/p&gt;


	&lt;h2&gt;A Better Solution?&lt;/h2&gt;


	&lt;p&gt;Ok, I&amp;#8217;ve been pretty negative all this post, so let&amp;#8217;s look for another alternative.&lt;/p&gt;


	&lt;p&gt;Get the Government involved in a distributed, open-source-esque initiative for blacklists. We&amp;#8217;re talking entirely transparent, entirely open blacklists that proxies (in particular, schools) can use in order to limit children&amp;#8217;s access to this &amp;#8220;inappropriate&amp;#8221; content. But make it entirely optional! Give ISPs the choice of using the solution in an opt-in arrangement. Don&amp;#8217;t make it some sort of Big-Brother solution whereby the government has control over what is added, and what is removed. Allow folks to subscribe to the protection they want &amp;#8211; pornography, hate and violence, gambling, etc. Produce a resource that can be used by multiple technologies, extended, and most importantly &amp;#8211; verified.&lt;/p&gt;


	&lt;p&gt;As much as I hate the anti-spam blacklists, a &lt;a href=&quot;http://en.wikipedia.org/wiki/DNSBL&quot;&gt;model similar to that&lt;/a&gt; would perhaps work well &amp;#8211; the Australian Government produces a collection of blacklists for &amp;#8220;bad&amp;#8221; content of different grades, and other groups can take these lists and build upon them, remove incorrectly marked content, and things like that. Give the power back to the consumer, not some power-hungry bureaucrat working towards their own end!&lt;/p&gt;


	&lt;h2&gt;Still not convinced?&lt;/h2&gt;


	&lt;p&gt;Suit yourself. If all of this hasn&amp;#8217;t swayed you, then I doubt anything can. I&amp;#8217;m just hoping that enough technical people point out the glaring stupidity of this kind of solution before more of our taxpayers dollars are wasted by yet another inept government.&lt;/p&gt;


	&lt;p&gt;Hey! Welcome to 2008! Man, this is going to be fun!&lt;/p&gt;</description>
          <pubDate>Wed, 02 Jan 2008 21:55:54 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/australias-proposed-world-class-broadband/</guid>
          <link>http://griffin.oobleyboo.com/archive/australias-proposed-world-class-broadband/</link>
        </item>
    
        <item>
          <title>Musings on Pure Democracy After the Election</title>
          <description>&lt;p&gt;Well, with the election over, we&amp;#8217;ve finally seen an end to those nauseating election campaign advertisements. Yaay! However, the election has got me thinking about government, power and that whole &lt;a href=&quot;http://en.wikipedia.org/wiki/Democracy&quot;&gt;Democracy&lt;/a&gt; thing.&lt;/p&gt;


	&lt;p&gt;In Australia, we enjoy a &lt;a href=&quot;http://en.wikipedia.org/wiki/Representative_democracy&quot;&gt;Representative Democracy&lt;/a&gt;, one where a group of representatives, elected by the masses act for the good of the nation. Supposedly. Ask most people and they&amp;#8217;ll swear that politicians don&amp;#8217;t do what they would like, and they&amp;#8217;re all bastards. This is, of course, somewhat odd, considering that the politicians are there to represent &lt;strong&gt;them&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;A Representative Democracy has a variety of problems &amp;#8211; politicians can misrepresent their constituents, they can be self-serving in their own interests, they can be ill-informed and make incorrect decisions. An issue that I had not realised until today was the fact that, in a Representative Democracy, an election can easily become a popularity contest &amp;#8211; not a content of the actual merits of each side of Government.&lt;/p&gt;


	&lt;p&gt;Regardless of political standpoint, I believe that the recent Australian election had no alternative outcome. Why? Because I don&amp;#8217;t believe that it it was an election between two differing ideas of Government, or policies, but rather it was an election about the popularity of Rudd vs Howard (or Rudd vs Costello, whichever way you want to look). I posit that any politician who has been in power for 11 years has had considerable time to attract a &amp;#8220;critical mass&amp;#8221; of public opponents (it doesn&amp;#8217;t take much to piss people off), regardless of policies or performance. Whether Howard&amp;#8217;s policies were good or bad, I believe that this critical mass was going to take the Liberal party out of power regardless of anything that may have been done by either party.&lt;/p&gt;


	&lt;p&gt;This isn&amp;#8217;t a discussion of the merits of each side of government&amp;#8217;s policies (after all, &lt;a href=&quot;http://www.reuters.com/article/businessNews/idUSSYD26717020071113&quot;&gt;it&amp;#8217;s been said that the election promises were very similar anyway&lt;/a&gt;) but rather on whether &lt;a href=&quot;http://en.wikipedia.org/wiki/Demagogue&quot;&gt;the way the election was carried out&lt;/a&gt; sits OK with us all. (As an aside, no, I&amp;#8217;m not accusing either party of being &lt;a href=&quot;http://en.wikipedia.org/wiki/Godwin's_law&quot;&gt;as bad as Hitler&lt;/a&gt;, regardless of the Wikipedia content :P) In my eyes, it turned into an election to decide which politician&amp;#8217;s personality is better, and which we&amp;#8217;d rather deal with for a while. It seemed to me that key parts of the Labor campaign hinged not on policy, but on personalizing a vote for the Liberal Party as a vote for the unpopular Costello. Other parties did the same (although perhaps not quite as blatantly as the &lt;span class=&quot;caps&quot;&gt;ALP&lt;/span&gt; did, in my opinion) by using the Union movement as a scare tactic against the &lt;span class=&quot;caps&quot;&gt;ALP&lt;/span&gt;. This is&lt;/p&gt;


	&lt;p&gt;We effectively had an election as farcical as watching a group of 8 year olds pick their team for sport, or one of those crazy blind-date shows where the woman asks the guys a few questions to decide which one she will have and hold.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not particularly phased by the change of government, however I do believe very strongly that choosing a government based upon the personality of the figureheads is no way to run a country.&lt;/p&gt;


	&lt;p&gt;However, in the title I alluded to Pure Democracy.&lt;/p&gt;


	&lt;p&gt;A differing system of Democracy, one that is rarely used, is that of &lt;a href=&quot;http://en.wikipedia.org/wiki/Direct_democracy&quot;&gt;Direct Democracy&lt;/a&gt; (Pure Democracy). In this system, the people themselves are given the power to vote on laws. It tends to be championed somewhat as a cure for self-interested politicians, and giving power back to the people. Switzerland is one such country &amp;#8211; could we learn something from them?&lt;/p&gt;


	&lt;p&gt;Whilst I certainly believe that pure democracy goes a fair way to easing these sorts of problems that we see in government, I don&amp;#8217;t believe that pure democracy would fix things entirely. For one, pure democracy offers no way to protect the nation from an election being personality driven rather than policy driven. Just as parties advertise heavily before an election with messages filled with &lt;span class=&quot;caps&quot;&gt;FUD&lt;/span&gt; and trying to stir up emotion, so too can this happen with important laws in a pure democracy. Any form of government breaks down when people start making decisions without thinking about them adequately.&lt;/p&gt;


	&lt;p&gt;So a solution? Not a solution per se, but perhaps a refinement, or a melding of the features of both.&lt;/p&gt;


	&lt;p&gt;Firstly, I believe that that politicians and political parties are indispensable &amp;#8211; it is unreasonable for us to expect that the public have enough time (or attention, or intelligence) to take part in every law that is discussed. Similarly, an uneducated decision is worse than no decision, and so any solution must protect the nation from the inherent stupidity (or apathy) of the masses.&lt;/p&gt;


	&lt;p&gt;However, we must make these politicians and political parties accountable for their actions and their promises. If we elect a party on a promise, they are expected to hold up to those promises they were elected on. This played a big role in this recent election, and for good reason. I don&amp;#8217;t really know how best to ensure this is done, but I have a few ideas.&lt;/p&gt;


	&lt;p&gt;A rather extreme solution to this may be to have politicians salaries dependant on how completely they fulfil their core promises in each year. I do not mind if you under promise and over deliver (or even under promise and barely meet that promise), however it becomes a problem when you under deliver. We would not accept a contractor under delivering on a contract, and yet we allow politicians (who are, in essence, working for us) to under deliver what they have quoted to be able to provide. Incidentally, I&amp;#8217;m interested to see &lt;a href=&quot;http://getup.org.au/promisewatch/&quot;&gt;GetUp.org.au&amp;#8217;s Promise Watch&lt;/a&gt; which is doing something about holding them to their promises.&lt;/p&gt;


	&lt;p&gt;Secondly, I believe that we need to remove the personalities and emotions from politics, in order to prevent this kind of (for want of a better term) emotional &lt;a href=&quot;http://en.wikipedia.org/wiki/Gerrymandering&quot;&gt;gerrymandering&lt;/a&gt;. Whilst I don&amp;#8217;t believe this is ever entirely possible, I do believe that we can go to certain lengths to do ease the situation as it stands.&lt;/p&gt;


	&lt;p&gt;Just as things like &lt;a href=&quot;http://www.politicalcompass.org/&quot;&gt;The Political Compass&lt;/a&gt; can give you your position on the political scales based upon a series of questions, why could we not hold elections in a similar, questionnaire based manner? Given that each party and politician has a series of different policy decisions on similar topics, surely it would be possible to build a fairly simple questionnaire in order to gauge which issues are important and which outcomes are actually desired by the public. For example:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;Education Funding:
( ) This is not important to me
(-) More money should be spent on Primary and Secondary education
( ) More money should be provided to teaching staff
( ) More money should be provided to Tertiary Institutions&lt;/code&gt;&lt;/pre&gt;


	&lt;pre&gt;&lt;code&gt;Education Technology:
( ) This is not important to me
(-) Every student should recieve a laptop computer for school use
( ) We should increase computers in schools
( ) Technology in education needs no reform&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Where each answer has been provided by one or more politicians or party (condensed into one answer where appropriate).&lt;/p&gt;


	&lt;p&gt;In this way, there is no knowledge of which decision is related to which politician or party &amp;#8211; it becomes an election purely based upon the outcomes that people want, rather than who the people choose. Also, the default answer of &amp;#8220;This is not important to me&amp;#8221; for each question would allow people to express their apathy without the catch of making a &lt;a href=&quot;http://en.wikipedia.org/wiki/Donkey_vote&quot;&gt;Donkey Vote&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;The questionnaires could be done via post, electronically, via phone, on paper, or a combination of all these options (and others). Those that have the facility could vote electronically from home, whilst those without that facility can vote in public places similar to how we do now. With the correct security measures (and an open and transparent technology), I see no reason why this could be any less reliable than the rather lacklustre identity checks done at local polling places.&lt;/p&gt;


	&lt;p&gt;The election winner would be calculated by matching the votes for each outcome to the politician(s). In such a case, one questionnaire may award partial votes to a variety of politicians. Eventually, one politician would be found to be the most preferred, and would be elected. If you were to adopt the &amp;#8220;performance based&amp;#8221; salary as I suggested above, this process would also the calculation of which issues are of most importance, and so the effect they will have upon their salary.&lt;/p&gt;


There are other benefits to this approach too:
	&lt;ul&gt;
	&lt;li&gt;election advertising becomes about &lt;strong&gt;the issues&lt;/strong&gt; not about politicians with fake smiles kissing babies;&lt;/li&gt;
		&lt;li&gt;people actually get a say in the issues and outcomes that are important to them, rather than having to pick from a group of politicians where (chances are good) they don&amp;#8217;t agree entirely with any of them;&lt;/li&gt;
		&lt;li&gt;there is an active reason for parties to &lt;strong&gt;educate&lt;/strong&gt; the public on issues, rather than using &lt;span class=&quot;caps&quot;&gt;FUD&lt;/span&gt; to scare them, or make them vote emotively. This fact can then be verified and undergo scrutiny by educators, action groups, etc.;&lt;/li&gt;
		&lt;li&gt;the possibility of lower costs, as much of the polling could be done electronically via the Internet or phone;&lt;/li&gt;
		&lt;li&gt;less likely to be heckled by those insanely irritating people that yell at you brandishing flyers on election day.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Do I believe this is a perfect solution? Hell no. However, I do believe it&amp;#8217;s another idea to throw into the mix, and that our current electoral system needs fine-tuning, if not an overhaul. We have the technology, we just need to use it cleverly.&lt;/p&gt;


	&lt;p&gt;I look forward to seeing what the next few years brings for this country. Let&amp;#8217;s hope it sees us well.&lt;/p&gt;</description>
          <pubDate>Tue, 27 Nov 2007 08:19:46 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/musings-on-pure-democracy-after-the-election/</guid>
          <link>http://griffin.oobleyboo.com/archive/musings-on-pure-democracy-after-the-election/</link>
        </item>
    
        <item>
          <title>My Late Night Productivity Myth</title>
          <description>&lt;p&gt;I find that, for me personally, the best time to work is late at night &amp;#8211; usually from about 10pm onwards I find myself most productive. Often, I&amp;#8217;ll keep working until I&amp;#8217;m physically exhausted &amp;#8211; usually around 5am or so. Mentally I&amp;#8217;m still sharp at that stage, but my body starts to get tired, and I start to wind down. I&amp;#8217;ve always thought that if I had to pick a contiguous block of work time, 2pm to 10pm or 4pm to midnight would be a good choice for me.&lt;/p&gt;


	&lt;p&gt;This might be the time that I feel that I&amp;#8217;m most productive, but obviously this can really upset the rest of my life &amp;#8211; I&amp;#8217;m awake when everyone else is asleep (and vice versa), I&amp;#8217;m not alive during business hours the day after (and cantankerous if I need to be), and it puts huge a strain on the rest of the house as everyone tries to be quiet whilst going about their day (lest they wake the most angsty bear they&amp;#8217;ve ever met). Not to mention the fact that having one evening like this completely blows out my sleeping pattern completely for the next few days.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s hyper productive for me at the time, sure, but I doubt it&amp;#8217;s the optimal solution.&lt;/p&gt;


	&lt;p&gt;Interestingly enough, I&amp;#8217;ve also found myself to be very productive the past few days that I&amp;#8217;ve been getting up early. Let&amp;#8217;s get things straight &amp;#8211; I don&amp;#8217;t do early mornings. Anyone that&amp;#8217;s met me knows that mornings just aren&amp;#8217;t something that I subscribe to. Ever. As such, getting up before 6am sounded like a big task. However, it&amp;#8217;s not been as bad as one might expect.&lt;/p&gt;


	&lt;p&gt;However, this post isn&amp;#8217;t meant to be about me getting up early per se, but rather a revelation that I&amp;#8217;ve had with regards to my &amp;#8220;super productive night-time mode&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve recently noticed things that suggest that my evening productivity &amp;#8220;rule&amp;#8221; is a great big myth, like the tooth fairy or honest politicians &amp;#8211; I don&amp;#8217;t think that the time of day has absolutely anything to do with how productive I am. However, I do think the rest of the day has a very large impact upon how productive I am.&lt;/p&gt;


	&lt;p&gt;I posit that I am productive at night not because of the time of day, but rather because there&amp;#8217;s nothing left of the day. During the day, my mind is filled with things that are coming up. Right from the first thing in the morning, there are things coming up in the day &amp;#8211; I need to eat, I need to make some calls, I need to go out, there are things that I need to think about, emails I need to write. You get the idea. I know I have all of these things to do (and a task list to remind me) and that&amp;#8217;s exactly the problem I think &amp;#8211; I know that I&amp;#8217;m going to have distractions, so my mind is already trying to get ready for them. I consider this a sort of &lt;a href=&quot;http://c2.com/cgi/wiki?PrematureOptimization&quot;&gt;premature optimization&lt;/a&gt; type problem &amp;#8211; I know that I have to make an email later, so in the back of my mind I&amp;#8217;m already keying up for it. I know I have at least 2 more meals in the day, so what the hell am I going to cook?&lt;/p&gt;


	&lt;p&gt;I guess you could say that were my brain a computer, it&amp;#8217;s in &amp;#8220;swap city&amp;#8221; at that time &amp;#8211; &lt;a href=&quot;http://en.wikipedia.org/wiki/Thrash_%28computer_science%29&quot;&gt;thrashing&lt;/a&gt; between what I&amp;#8217;m working on, and all of the other processes polling every now and again going &amp;#8220;oh man! is it time for me yet? am I ready?&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;At 10pm though, there is none of that &amp;#8211; I&amp;#8217;m effectively clear for the rest of the evening. I have no more meals to worry about, I can&amp;#8217;t make any more calls, I have nowhere to go. My brain is clear from all of that clutter. Again with the computer metaphor, I have one process running and it can take as much of the memory as it likes without things needing to swap all the time.&lt;/p&gt;


	&lt;p&gt;So, is there a way to get this &amp;#8220;single process&amp;#8221; mentality during the day, when there &lt;em&gt;are&lt;/em&gt; other things coming up? I&amp;#8217;m not really sure yet. I&amp;#8217;m mainly happy to realise that I don&amp;#8217;t &lt;em&gt;have to&lt;/em&gt; keep making late runs just to be super productive, however I do need to find a solution that actually works for me. I&amp;#8217;m going to experiment with a few different options in limiting the &amp;#8220;background processes&amp;#8221; in my mind, and I&amp;#8217;ll be sure to post how it goes. Hopefully, there&amp;#8217;ll be something interesting in it.&lt;/p&gt;</description>
          <pubDate>Mon, 26 Nov 2007 09:56:54 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/my-late-night-productivity-myth/</guid>
          <link>http://griffin.oobleyboo.com/archive/my-late-night-productivity-myth/</link>
        </item>
    
        <item>
          <title>The Human Mind and Other Inane Ramblings</title>
          <description>&lt;p&gt;This post is going to be a break from the usual &amp;#8220;I don&amp;#8217;t do anything but write code&amp;#8221; kind of posts. Partially because that&amp;#8217;s not why I started blogging, and partially because, well, it&amp;#8217;s my damn blog so I&amp;#8217;ll write what I want! Danny can get away with &lt;a href=&quot;http://www.thetelegraphic.com/?p=22&quot;&gt;posting obscure things&lt;/a&gt; on his blog &amp;#8211; how about me?&lt;img src=&quot;?&quot; alt=&quot;&quot; /&gt; :D&lt;/p&gt;


	&lt;p&gt;I just managed to catch the &lt;a href=&quot;http://www.open2.net/humanmind/prog_2.htm&quot;&gt;2nd episode&lt;/a&gt; of &lt;a href=&quot;http://en.wikipedia.org/wiki/Robert_Winston&quot;&gt;Professor Robert Winston&amp;#8217;s&lt;/a&gt; BBC Series, &lt;a href=&quot;http://www.open2.net/humanmind/&quot;&gt;The Human Mind&lt;/a&gt; (on &lt;span class=&quot;caps&quot;&gt;ABC&lt;/span&gt;), and some of it got me thinking.&lt;/p&gt;


	&lt;p&gt;The show was very interesting, especially if, like me, you have a fascination with how folks tick. This particular episode examined some of the fundamental parts of personality, including how the brain and personality are related, and how physiological changes in the brain through life lead to personality changes &amp;#8211; things like why children can often have little control over their urges, and why all those angsty teenagers really are so angsty!&lt;/p&gt;


	&lt;p&gt;The first example to get me thinking was a demonstration wherein two identical twins were put in environments in order to stimulate certain moods in order to see their effect upon personality &amp;#8211; one listened to happy music, watched a happy movie, and read uplifting comments; the other listened to sad music, watched a sad movie, and read depressing comments. The example went on to show the temporary change that this had upon their personality (in this case shown by shopping habits, which apparently is a useful way to gauge personality). Obviously the twin in the happy environment was happy, spent more, and was more outgoing, whilst the other twin did very little, and regretted her purchases.&lt;/p&gt;


	&lt;p&gt;What intrigues me is that providing that this information is true (and I&amp;#8217;d be compelled to believe Professor Robert Winston if I believe anyone), this lends scientific credibility to the idea of positive affirmations having measurable effect upon the mind. For a long time these have been perceived to be &amp;#8220;bad-science&amp;#8221;, in the realm of New Age crazies, or as a self-help trick for underachieving students and salesmen.&lt;/p&gt;


	&lt;p&gt;However &amp;#8211; this suggests that the science is there, and that things such as affirmations may have a long term affect on the brain and personality. The idea is that the words invoke thoughts and emotions, which in turn invoke chemical responses that eventually lead to physiological changes in the brain &amp;#8211; either by rewiring new pathways (learning) or by making parts of the brain more or less receptive to certain chemicals and hormones.&lt;/p&gt;


	&lt;p&gt;This is interesting to me &amp;#8211; most of my family subscribes to beliefs and ideas that are very &amp;#8220;New Agey&amp;#8221;, and so (perhaps as a consequence?) I tend to be more open to those sorts of ideas than most. However, I&amp;#8217;m also a geek, and fiercely logical &amp;#8211; I make a point of making sure that I can justify most of my personal beliefs with fact and science as much as I can seem to manage. That said, I&amp;#8217;m certainly in the &amp;#8220;New Agey&amp;#8221; side of the chart &amp;#8211; however I make a point to be able to justify what I believe in. In many respects, this information about affirmations represents a meshing of two parts of me &amp;#8211; the purely scientific and the part of me that is prepared to entertain things that seem logical, but have no hard scientific basis.&lt;/p&gt;


	&lt;p&gt;Anyhu, the second thing that got me thinking was their examination of a dude with anger problems. They explained that what was happening (in his specific case) was that one part of the brain was overproducing the chemical associated with &amp;#8220;anger&amp;#8221; and his brain wasn&amp;#8217;t able to control his reaction to it. Effectively, when something triggered his anger, he really did lose control. Apparently, the part of the brain handling emotional control (which this man was lacking &amp;#8220;strength&amp;#8221; in) is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Frontal_lobe&quot;&gt;frontal lobe&lt;/a&gt;, which spurred the question from me &amp;#8211; isn&amp;#8217;t that the bit that deals with things like language?&lt;/p&gt;


	&lt;p&gt;Well, I was &lt;a href=&quot;http://www.neuroskills.com/brain.shtml&quot;&gt;partially on the right track&lt;/a&gt;. It seems that whilst much of language processing the brain does is in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Temporal_lobe&quot;&gt;Temporal Lobe&lt;/a&gt; there certainly are some elements of language processing done in the frontal lobe (such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Broca%27s_Area&quot;&gt;Broca&amp;#8217;s Area&lt;/a&gt;).&lt;/p&gt;


	&lt;p&gt;Now I&amp;#8217;m not at all medically trained (so I&amp;#8217;d welcome anyone who knows more on the topic than me) but if that&amp;#8217;s the case, could that possibly support an idea that a lack of emotional control, and unregulated anger (if not a symptom of another, more complex condition) could be somehow related to the frontal lobe not receiving suitable stimulation during development? Could this mean that folks with problems with emotional control, or other &amp;#8220;regulation&amp;#8221; problems are a result of not being adequately stimulated as a child or teenager? Could this suggest that encouraging problem solving, teaching complex tasks and encouraging language development (as in expanding the vocabulary) might help to reduce the susceptibility to rage and anger later in life? Does this mean that education plays an even more vital role in building safe and happy communities than we might have thought?&lt;/p&gt;


	&lt;p&gt;I don&amp;#8217;t have any answers, but it&amp;#8217;s interesting to think about anyway. I don&amp;#8217;t even know if what I suggest about might &amp;#8220;strengthen&amp;#8221; the frontal lobe, or whether something like this might have an effect, but I find it something interesting to muse on regardless.&lt;/p&gt;


	&lt;p&gt;Regardless of my inane ramblings, I strongly suggest you check out the show if you get the chance &amp;#8211; The Human Mind and How to Make the Most of It, Monday nights, 11:30pm-12:30am on &lt;span class=&quot;caps&quot;&gt;ABC&lt;/span&gt;.&lt;/p&gt;</description>
          <pubDate>Mon, 19 Nov 2007 23:57:21 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/the-human-mind-and-other-inane-ramblings/</guid>
          <link>http://griffin.oobleyboo.com/archive/the-human-mind-and-other-inane-ramblings/</link>
        </item>
    
        <item>
          <title>Ruby Net::HTTP and Content Encoding : http_encoding_helper</title>
          <description>&lt;p&gt;Working on &lt;a href=&quot;http://lifebox.cc&quot;&gt;LifeBox&lt;/a&gt; has given me a great opportunity to get my hands dirty with the Ruby Standard Library.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve &lt;a href=&quot;/archive/ruby-net-http-exceptions/&quot;&gt;blogged previously about Net::HTTP&lt;/a&gt; , which is a very nice library for working with &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; and &lt;span class=&quot;caps&quot;&gt;HTTPS&lt;/span&gt; requests in Ruby when you need a bit more control than &lt;a href=&quot;http://www.ruby-doc.org/stdlib/libdoc/open-uri/rdoc/&quot;&gt;open-uri&lt;/a&gt; allows. You know, things like sending custom headers, handling 302 Redirects, Last-Modified-Since, etc.&lt;/p&gt;


	&lt;p&gt;Even though we&amp;#8217;re still in development, we are currently checking just under 400 feeds &amp;#8211; some of which we check every 15-20 minutes. That is a serious amount of bandwidth unless we can take advantage of some of the bandwidth saving features of the &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; spec. With a combination of Last-Modified-Since (which not everyone supports for their feeds) and compression (which not every server supports) we&amp;#8217;ve made a huge reduction in bandwidth.&lt;/p&gt;


	&lt;p&gt;However, there&amp;#8217;s a small catch with Net::HTTP requesting that servers send compressed content using the Content-Encoding header &amp;#8211; Net::HTTP can easily add the header to request the content, but it currently provides no mechanism to actually handle the compressed data. (Although &lt;a href=&quot;http://www.ruby-forum.com/topic/126946&quot;&gt;it looks like some other folks are looking into it&lt;/a&gt; . &lt;strong&gt;There&amp;#8217;s an update at the bottom of this post&lt;/strong&gt;) It&amp;#8217;s fairly simple to do, however.&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re reading this, now it&amp;#8217;s even simpler, as you can get my 21 line library (excluding code) that will do it for you &amp;#8211; &lt;a href=&quot;/projects/http_encoding_helper&quot;&gt;http_encoding_helper&lt;/a&gt; .&lt;/p&gt;


	&lt;p&gt;All that the library does is add a single method &amp;#8211; &lt;strong&gt;plain_body&lt;/strong&gt; which will work out if the content is compressed, and decompress it (using gzip or deflate, as the case might be). All that you have to do is request it using the Accept-Encoding header.&lt;/p&gt;


	&lt;p&gt;Check out &lt;a href=&quot;/projects/http_encoding_helper&quot;&gt;the project page&lt;/a&gt; for a code sample, and more information.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Updated: 10Nov2007&lt;/strong&gt;
I&amp;#8217;ve been swapping a few emails with Hugh Sasse, who is responsible for the effort to get the Net::HTTP library to use compression by default (It&amp;#8217;s his email I linked to above). Since that post, he&amp;#8217;s also made &lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/12693&quot;&gt;a revision&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;One comment that Hugh made to me was that his patch and mine are fundamentally different in philosophy &amp;#8211; his patch seeks to make compression the default, whereas mine is more of a &amp;#8220;as you need&amp;#8221; kind of patch.&lt;/p&gt;


	&lt;p&gt;The reason that my patch is a separate library, rather than a patch to the Net::HTTP library itself is purely for simplicity, and management. As I deploy code to a variety of servers, mangling the net/http code itself is not convenient. Similarly, my patch doesn&amp;#8217;t enable compression by default purely to keep it simple without having to mangle too much of the Net::HTTP code.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m eager to see Hugh&amp;#8217;s code to make it into the Ruby-1.9 Net::HTTP library so as that everyone&amp;#8217;s code can begin to use compression by default &amp;#8211; being worked into the library itself makes it much more powerful, and much easier to keep working between changes in core.&lt;/p&gt;


	&lt;p&gt;Until that happens, my code will be available for use.&lt;/p&gt;


	&lt;p&gt;On a side note, it&amp;#8217;s interesting to see that &lt;a href=&quot;http://trac.lighttpd.net/trac/wiki/Mod_Deflate&quot;&gt;lighttpd supports bzip2 compression&lt;/a&gt; &amp;#8211; I don&amp;#8217;t know what UserAgents can handle that, but interesting none the less.&lt;/p&gt;</description>
          <pubDate>Sun, 04 Nov 2007 20:58:33 GMT</pubDate>
          <guid>http://griffin.oobleyboo.com/archive/ruby-net-http-and-content-encoding-http_encoding_helper/</guid>
          <link>http://griffin.oobleyboo.com/archive/ruby-net-http-and-content-encoding-http_encoding_helper/</link>
        </item>
    
    
  </channel>
</rss>

