<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>14km</title><generator>Tumblr (3.0; @14km)</generator><link>http://14km.tumblr.com/</link><item><title>'(:cell) REPL</title><description>&lt;a href="http://cell-lang.org"&gt;'(:cell) REPL&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;Cell is a toy language based on the original Lisp specification.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://14km.tumblr.com/post/29961184777</link><guid>http://14km.tumblr.com/post/29961184777</guid><pubDate>Wed, 22 Aug 2012 21:55:13 +1000</pubDate></item><item><title>SnowPlow</title><description>&lt;a href="http://www.keplarllp.com/blog/2012/02/introducing-snowplow-the-worlds-most-powerful-web-analytics-platform"&gt;SnowPlow&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;SnowPlow does three things:&lt;/p&gt;
  
  &lt;ol&gt;&lt;li&gt;Identifies users, and tracks the way they engage with one or more websites&lt;/li&gt;
  &lt;li&gt;Stores the associated data in a scalable “clickstream” data warehouse&lt;/li&gt;
  &lt;li&gt;Makes it possible to leverage a big data toolset (e.g. Hadoop, Pig, Hive) to analyse that data&lt;/li&gt;
  &lt;/ol&gt;&lt;/blockquote&gt;</description><link>http://14km.tumblr.com/post/25335600581</link><guid>http://14km.tumblr.com/post/25335600581</guid><pubDate>Mon, 18 Jun 2012 12:17:56 +1000</pubDate></item><item><title>Brakeman</title><description>&lt;a href="https://github.com/presidentbeef/brakeman"&gt;Brakeman&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;[…] a static analysis tool which checks Ruby on Rails applications for security vulnerabilities.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://14km.tumblr.com/post/25073674938</link><guid>http://14km.tumblr.com/post/25073674938</guid><pubDate>Thu, 14 Jun 2012 14:40:34 +1000</pubDate></item><item><title>Ampex</title><description>&lt;a href="http://cirw.in/blog/ampex"&gt;Ampex&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;The ampex library takes the idea from &amp;:symbol, and adds a little more flexibility. This means that you can get all the punctuation-free, variable-free goodness, but more often!&lt;/p&gt;
  
  &lt;p&gt;A few examples of how cool this can be:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;# when you want to pass an argument to a method
[10, 11, 12].map(&amp;X.to_s(16))
=&gt; ["a", "b", "c"]

# when you want to parse some JSON
owners = [{'name' =&gt; 'Fred', 'dog' =&gt; 'Fido'},
          {'name' =&gt; 'Ron', 'dog' =&gt; 'Rex'}];
owners.map(&amp;X['name'])
=&gt; ["Fred", "Ron"]

# when you want to chain some method calls
"alpha\nbeta\ngamma\n".lines.map(&amp;X.strip.upcase)
=&gt; ["ALPHA", "BETA", "GAMMA"]
&lt;/code&gt;&lt;/pre&gt;</description><link>http://14km.tumblr.com/post/25073634940</link><guid>http://14km.tumblr.com/post/25073634940</guid><pubDate>Thu, 14 Jun 2012 14:39:47 +1000</pubDate></item><item><title>YouAreDaChef</title><description>&lt;a href="https://github.com/raganwald/YouAreDaChef"&gt;YouAreDaChef&lt;/a&gt;: &lt;blockquote&gt;
  &lt;p&gt;[…] a utility for meta-programming Object-Oriented JavaScript.&lt;/p&gt;
  
  &lt;p&gt;This library adds before, after, around, and guard method combinations to underscore.js projects, in much the same style as the Common Lisp Object System or Ruby on Rails controllers.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://14km.tumblr.com/post/25073487640</link><guid>http://14km.tumblr.com/post/25073487640</guid><pubDate>Thu, 14 Jun 2012 14:36:58 +1000</pubDate></item><item><title>For when you realise that the file you want to edit is owned by root.

</title><description>&lt;p&gt;For when you realise that the file you want to edit is owned by &lt;code&gt;root&lt;/code&gt;.&lt;/p&gt;

&lt;script src="https://gist.github.com/2780922.js?file=gistfile1.el"&gt;&lt;/script&gt;</description><link>http://14km.tumblr.com/post/23672835130</link><guid>http://14km.tumblr.com/post/23672835130</guid><pubDate>Fri, 25 May 2012 01:02:00 +1000</pubDate></item><item><title>OS X Multitouch view</title><description>&lt;a href="http://blog.sendapatch.se/2009/november/multitouch-on-unibody-macbooks.html"&gt;OS X Multitouch view&lt;/a&gt;: &lt;p&gt;I played around with this a few years back, and deleted it. But recently my trackpad(s) have been playing up, and it took me a while to find it again. So linking here for reference&lt;/p&gt;</description><link>http://14km.tumblr.com/post/15693822726</link><guid>http://14km.tumblr.com/post/15693822726</guid><pubDate>Thu, 12 Jan 2012 11:01:27 +1100</pubDate></item><item><title>Install Open-VM-tools on Debian 6 squeeze</title><description>&lt;a href="http://www.surlyjake.com/2011/02/install-open-vm-tools-on-debian-6-squeeze/"&gt;Install Open-VM-tools on Debian 6 squeeze&lt;/a&gt;: &lt;p&gt;I’ve had to jump through these hoops twice now, so saving the link here for posterity.&lt;/p&gt;</description><link>http://14km.tumblr.com/post/13442067830</link><guid>http://14km.tumblr.com/post/13442067830</guid><pubDate>Mon, 28 Nov 2011 16:17:48 +1100</pubDate></item><item><title>Embedding IRB into your Ruby application</title><description>&lt;p&gt;I needed to play around with Capybara/Selenium, but it&amp;#8217;s a pain waiting for Firefox to start up every time you make a small change. Fortunately, &lt;a href="http://jameskilton.com/2009/04/02/embedding-irb-into-your-ruby-application/"&gt;I&amp;#8217;m not the only one with the problem&lt;/a&gt;. Drop this somewhere:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require 'irb'

module IRB # :nodoc:
  def self.start_session(binding)
    unless @__initialized
      args = ARGV
      ARGV.replace(ARGV.dup)
      IRB.setup(nil)
      ARGV.replace(args)
      @__initialized = true
    end

    workspace = WorkSpace.new(binding)

    irb = Irb.new(workspace)

    @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
    @CONF[:MAIN_CONTEXT] = irb.context

    catch(:IRB_EXIT) do
      irb.eval_input
    end
  end
end 
&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
  &lt;p&gt;And it’s use is quite simple. When you want to drop into an irb session, you simply do&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;IRB.start_session(binding)
&lt;/code&gt;&lt;/pre&gt;</description><link>http://14km.tumblr.com/post/2792024992</link><guid>http://14km.tumblr.com/post/2792024992</guid><pubDate>Mon, 17 Jan 2011 18:45:07 +1100</pubDate><category>ruby</category></item><item><title>"As of Emacs 20.3, there is indeed a repeat command (C-x z) that repeats the last command. If you..."</title><description>“&lt;p&gt;As of Emacs 20.3, there is indeed a &lt;code&gt;repeat&lt;/code&gt; command &lt;code&gt;(C-x z)&lt;/code&gt; that repeats the last command. If you preface it with a prefix argument, the prefix arg is applied to the command.&lt;/p&gt;

&lt;p&gt;You can also type &lt;code&gt;C-x &lt;ESC&gt; &lt;ESC&gt;&lt;/code&gt; (&lt;code&gt;repeat-complex-command&lt;/code&gt;) to reinvoke commands that used the minibuffer to get arguments. In &lt;code&gt;repeat-complex-command&lt;/code&gt; you can type &lt;code&gt;M-p&lt;/code&gt; and &lt;code&gt;M-n&lt;/code&gt; (and also up-arrow and down-arrow, if your keyboard has these keys) to scan through all the different complex commands you’ve typed.&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.gnu.org/software/emacs/emacs-faq.html#Repeating-commands"&gt;GNU Emacs FAQ&lt;/a&gt;&lt;/em&gt;</description><link>http://14km.tumblr.com/post/1626811331</link><guid>http://14km.tumblr.com/post/1626811331</guid><pubDate>Sun, 21 Nov 2010 01:36:59 +1100</pubDate></item><item><title>Rainbow Mode:


  a minor mode for Emacs. It displays strings...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_l54phwASFG1qahr1io1_400.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://julien.danjou.info/rainbow-mode.html"&gt;Rainbow Mode&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;a minor mode for Emacs. It displays strings representing colors with the color they represent as background.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;by &lt;a href="http://julien.danjou.info"&gt;Julien Danjou&lt;/a&gt;&lt;/p&gt;</description><link>http://14km.tumblr.com/post/776213065</link><guid>http://14km.tumblr.com/post/776213065</guid><pubDate>Tue, 06 Jul 2010 19:10:43 +1000</pubDate></item><item><title>Mocha doesn't play nice with Rails 3 &amp; Bundler</title><description>&lt;p&gt;Using mocha with edge beta Rails 3, I added Mocha to the &lt;code&gt;Gemfile&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gem "mocha"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;All was going swimmingly until I ran into a problem. I reduced it to:&lt;/p&gt;

&lt;script src="http://gist.github.com/415440.js?file=m_test.rb"&gt;&lt;/script&gt;&lt;p&gt;The result of running this test was:&lt;/p&gt;

&lt;script src="http://gist.github.com/415440.js?file=m_test.rb"&gt;&lt;/script&gt;&lt;p&gt;&lt;code&gt;#test_mock_doesnt_fail&lt;/code&gt; &lt;em&gt;should&lt;/em&gt; fail, but doesn&amp;#8217;t. Changing the &lt;code&gt;require&lt;/code&gt; lines at the top of the file to not load Rails and only load Mocha (+Rubygems+Test::Unit):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require "rubygems"
require "test/unit"
require "mocha"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;caused the test to fail as expected. After an hour or two digging around, I stumbled across &lt;a href="http://groups.google.com/group/mocha-developer/browse_thread/thread/5c2b8b28f700bb17"&gt;a post on the Mocha mailing-list&lt;/a&gt; that mentioned ordering problems with Mocha and Test::Unit. Sure enough, if I rearranged the modified require lines so that Test::Unit was loaded after Mocha:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require "rubygems"
require "mocha"
require "test/unit"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;the test would break &amp;#8212; I.e. wouldn&amp;#8217;t fail.&lt;/p&gt;

&lt;p&gt;Following the advice in the post &amp;#8212; modified for bundler &amp;#8212; I changed my Gemfile to read:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gem 'mocha', :require =&amp;gt; nil
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and added:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require "mocha"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to &lt;code&gt;test/test_helper.rb&lt;/code&gt; to make sure Mocha was loaded. This isn&amp;#8217;t strictly needed, but it&amp;#8217;s good to be clear.&lt;/p&gt;

&lt;p&gt;Final result, the test fails as expected, and Mocha &lt;strike&gt;is&lt;/strike&gt; seems to be working properly.&lt;/p&gt;</description><link>http://14km.tumblr.com/post/636722885</link><guid>http://14km.tumblr.com/post/636722885</guid><pubDate>Thu, 27 May 2010 15:36:28 +1000</pubDate><category>rails</category><category>ruby</category><category>mocha</category><category>bundler</category></item><item><title>Money isn’t always a good motivator, as Alfie Kohn has...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/u6XAPnuFjJc?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Money isn’t always a good motivator, as &lt;a href="http://www.alfiekohn.org/managing/fbrftb.htm"&gt;Alfie Kohn has been saying for years&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Via &lt;a href="http://stretta.blogspot.com/2010/05/secret-to-motivation.html"&gt;Stretta&lt;/a&gt;&lt;/p&gt;</description><link>http://14km.tumblr.com/post/600883820</link><guid>http://14km.tumblr.com/post/600883820</guid><pubDate>Sun, 16 May 2010 00:02:54 +1000</pubDate></item><item><title>"‘Now will this be everything, or…’

‘Well, I might need to raise an..."</title><description>“&lt;p&gt;‘Now will this be everything, or…’&lt;/p&gt;

&lt;p&gt;‘Well, I might need to raise an exception.’&lt;/p&gt;

&lt;p&gt;The compiler purses its lips. ‘An exception? Hmmm… let’s see…’&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;JRM at &lt;a href="http://funcall.blogspot.com/2010/04/whenever-i-write-code-in-java.html"&gt;Abstract Heresies&lt;/a&gt;&lt;/em&gt;</description><link>http://14km.tumblr.com/post/540529545</link><guid>http://14km.tumblr.com/post/540529545</guid><pubDate>Thu, 22 Apr 2010 21:18:45 +1000</pubDate></item><item><title>Be mindful of array copying</title><description>&lt;p&gt;Trying&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;irb&amp;gt; d = [1,2,3,4]
=&amp;gt; [1,2,3,4]
irb&amp;gt; d[0..-2].each_with_index {|k,i| d[i+1] = "x"; puts k }
1
2
3
=&amp;gt; [1,2,3]
irb&amp;gt; d
[1, "x", "x", "x"]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Reasonable, &lt;code&gt;d[0..-2]&lt;/code&gt; would make a copy of &lt;code&gt;d&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;irb&amp;gt; d.each_with_index {|k,i| d[i+1] = "x" if i &amp;amp;lt; 3; puts k  }
1
x
x
x
=&amp;gt;  [1,2,3]
irb&amp;gt; d
[1,  "x", "x", "x"]
&lt;/code&gt;&lt;/pre&gt;</description><link>http://14km.tumblr.com/post/517508905</link><guid>http://14km.tumblr.com/post/517508905</guid><pubDate>Tue, 13 Apr 2010 15:04:00 +1000</pubDate></item><item><title>"Best Writing Advice for Engineers I've Ever Seen. Period."</title><description>&lt;a href="http://engineerwriting.jottit.com/"&gt;"Best Writing Advice for Engineers I've Ever Seen. Period."&lt;/a&gt;: &lt;p&gt;&lt;blockquote&gt;How to make engineers write concisely with sentences? [combine] journalism with the technical report format.&lt;/blockquote&gt;&lt;/p&gt;</description><link>http://14km.tumblr.com/post/502024520</link><guid>http://14km.tumblr.com/post/502024520</guid><pubDate>Wed, 07 Apr 2010 11:35:41 +1000</pubDate></item><item><title>Y Combinations</title><description>&lt;p&gt;I found myself needing to use a Y-combinator last night, while playing with regular expressions. I wanted to recursively scan a string, finding matches &lt;em&gt;inside&lt;/em&gt; other matches. Of course it could have been done by defining a function and calling it recursively, but that seemed unnecessary. I had a vague understanding of what a Y combinator was and what it could do, which allowed me to realise that it was what I needed in my regexp task. But of course I didn&amp;#8217;t have one handy in my REPL of choice.&lt;/p&gt;

&lt;p&gt;So that motivated me to spend the afternoon learning more about the Y combinator. &lt;a href="http://www.dreamsongs.com/NewFiles/WhyOfY.pdf"&gt;Richard Gabriel&amp;#8217;s Why of Y&lt;/a&gt; provided a good overview in Scheme, with me following along in a SBCL REPL &amp;#8212; Which was a good experience about the &lt;a href="http://en.wikipedia.org/wiki/Lisp-1_vs._Lisp-2"&gt;differences between a Lisp-1 and a Lisp-2&lt;/a&gt; in itself. &lt;a href="http://weblog.raganwald.com/2007/02/guest-blogger-tom-moertel-derives-y.html"&gt;An old post on Raganwald&amp;#8217;s weblog&lt;/a&gt; had an implementation in Ruby, but it started a few steps in, so I spent some time re-deriving the contents of that post. I doubt that I&amp;#8217;d be able to produce a Y combinator by myself yet, but it gave me a good idea how it works.&lt;/p&gt;

&lt;p&gt;I ended up with (in Ruby):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;def y &amp;amp;h
  lambda { |g|
    g[g]
  }[lambda { |f| lambda { |*args| h[f[f],*args] } }]
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And in Common-lisp:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(defun y (f) 
  (let ((g (lambda (h)
    (lambda (n) 
      (funcall (funcall f (funcall h h)) n)))))
    (funcall g g)))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But I also just learned about flet, which would simplify the CL version a bit.&lt;/p&gt;

&lt;p&gt;&#13;
There is a simpler Ruby version that they start with on Raganwald&amp;#8217;s site:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;def y(&amp;amp;f)
    lambda { |*args| f[y(&amp;amp;f)][*args] }
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And an equivalent Common-lisp version could be made (doesn&amp;#8217;t seem very idiomatic, with the double funcall):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(defun y (f)
  (lambda (args)
    (funcall (funcall f (y f) args))))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I should post my working file that I used to nut it all out&amp;#8230;&lt;/p&gt;</description><link>http://14km.tumblr.com/post/486312198</link><guid>http://14km.tumblr.com/post/486312198</guid><pubDate>Wed, 31 Mar 2010 20:13:00 +1100</pubDate><category>lisp</category><category>ruby</category><category>y-combinator</category><category>combinators</category></item><item><title>Date manipulation</title><description>&lt;p&gt;&lt;a href="http://rubyquicktips.tumblr.com/post/354231466/date-manipulation"&gt;rubyquicktips&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can add or subtract days or month from a &lt;a href="http://www.ruby-doc.org/core/classes/Date.html"&gt;&lt;code&gt;Date&lt;/code&gt;&lt;/a&gt; object:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;code&gt;+(n)&lt;/code&gt;: add n number of days&lt;/li&gt;
&lt;li&gt; &lt;code&gt;-(n)&lt;/code&gt;: subtract n number of days&lt;/li&gt;
&lt;li&gt; &lt;code&gt;&amp;gt;&amp;gt;(n)&lt;/code&gt;: add n number of months&lt;/li&gt;
&lt;li&gt; &lt;code&gt;&amp;lt;&amp;lt;(n)&lt;/code&gt;: subtract n number of months&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Here are some examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ irb
&amp;gt;&amp;gt; date = Date.today     # =&amp;gt; #&amp;lt;Date: ...&amp;gt;
&amp;gt;&amp;gt; date.to_s
=&amp;gt; "2010-01-26"
&amp;gt;&amp;gt; tomorrow = date + 1   # =&amp;gt; #&amp;lt;Date: ...&amp;gt;
&amp;gt;&amp;gt; tomorrow.to_s
=&amp;gt; "2010-01-27"
&amp;gt;&amp;gt; nextmonth = date &amp;gt;&amp;gt; 1 # =&amp;gt; #&amp;lt;Date: ...&amp;gt;
&amp;gt;&amp;gt; nextmonth.to_s
=&amp;gt; "2010-02-26"
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Read the &lt;a href="http://www.ruby-doc.org/core/classes/Date.html#M000671"&gt;documentation&lt;/a&gt; for a more precise description.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://14km.tumblr.com/post/386306073</link><guid>http://14km.tumblr.com/post/386306073</guid><pubDate>Sat, 13 Feb 2010 11:46:31 +1100</pubDate></item><item><title>Quite a misleading graph. Where do the numbers come from? Are...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_kxo8g1umid1qahr1io1_500.gif"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Quite a misleading graph. Where do the numbers come from? Are the values stacked? Apparently they are, according to a &lt;a href="http://www.businessinsider.com/chart-of-the-day-microsoft-operating-income-by-division-2010-2#comment-4b7332b200000000004ae2b3"&gt;comment on the article&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;windows div = 5.4B &lt;br/&gt;Business div = 3B&lt;/blockquote&gt;
&lt;p&gt;So the whole graph is pushed up from the surge in profit from the Windows division. The numbers — &lt;b&gt;profit numbers&lt;/b&gt; — are still mind boggling, though.&lt;/p&gt;</description><link>http://14km.tumblr.com/post/383498882</link><guid>http://14km.tumblr.com/post/383498882</guid><pubDate>Thu, 11 Feb 2010 20:45:00 +1100</pubDate></item><item><title>Raganwald's favourite interview question</title><description>&lt;a href="http://weblog.raganwald.com/2006/06/my-favourite-interview-question.html"&gt;Raganwald's favourite interview question&lt;/a&gt;: &lt;p&gt;A discussion about interview questions from Raganwald:&lt;/p&gt;
&lt;blockquote&gt;How might you design a program that lets people play &lt;a href="http://en.wikipedia.org/wiki/Monopoly_%28game%29"&gt;Monopoly&lt;/a&gt; with each other over the internet? &lt;br/&gt;&lt;/blockquote&gt;</description><link>http://14km.tumblr.com/post/331545432</link><guid>http://14km.tumblr.com/post/331545432</guid><pubDate>Wed, 13 Jan 2010 13:17:39 +1100</pubDate></item></channel></rss>
