<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Whomwah.com &#187; Ruby</title>
	<atom:link href="http://whomwah.com/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://whomwah.com</link>
	<description>The website of Duncan Robertson, currently computing for the BBC</description>
	<lastBuildDate>Fri, 06 Jan 2012 12:55:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Always adding http_proxy support when using Ruby&#8217;s Net:HTTP</title>
		<link>http://whomwah.com/2011/04/12/always-adding-http_proxy-support-when-using-rubys-nethttp/</link>
		<comments>http://whomwah.com/2011/04/12/always-adding-http_proxy-support-when-using-rubys-nethttp/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 08:57:19 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=2265</guid>
		<description><![CDATA[Recently there have been a number of times I&#8217;ve needed to use Ruby&#8217;s Net:HTTP library. Because I develop inside a company firewall, all HTTP traffic has to go through a proxy. This means our libraries always need the Proxy support that Net:HTTP has. This means we now have a common idiom, and here it is: [...]]]></description>
			<content:encoded><![CDATA[<p>Recently there have been a number of times I&#8217;ve needed to use Ruby&#8217;s <a href="http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html">Net:HTTP</a> library. Because I develop inside a company firewall, all HTTP traffic has to go through a proxy. This means our libraries always need <a href="http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html#M001380">the Proxy support that Net:HTTP has</a>. This means we now have a common idiom, and here it is:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'ostruct'</span>
&nbsp;
url = <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;http://destination.com&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
proxy = ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'http_proxy'</span><span style="color:#006600; font-weight:bold;">&#93;</span> ? <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'http_proxy'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> : OpenStruct.<span style="color:#9900CC;">new</span>
&nbsp;
conn = <span style="color:#6666ff; font-weight:bold;">Net::HTTP::Proxy</span><span style="color:#006600; font-weight:bold;">&#40;</span>proxy.<span style="color:#9900CC;">host</span>, proxy.<span style="color:#9900CC;">port</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>url.<span style="color:#9900CC;">host</span>, url.<span style="color:#9900CC;">port</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Simple! You can use this every time, and your lib will have proxy support based on the http_proxy environment variable being set. If it&#8217;s not set, then it will just carry on as expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2011/04/12/always-adding-http_proxy-support-when-using-rubys-nethttp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rQRCode 0.3.3 released. Bug Fixes</title>
		<link>http://whomwah.com/2011/02/05/rqrcode-0-3-3-released-bug-fixes/</link>
		<comments>http://whomwah.com/2011/02/05/rqrcode-0-3-3-released-bug-fixes/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 18:37:16 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[qrcodes]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=2214</guid>
		<description><![CDATA[Quick post to say I pushed a 0.3.3 release of rQRCode which fixes a few bugs that have been causing people pain. If you&#8217;ve never seen the library, you can check it out over at the RubyGems.org site. Otherwise it&#8217;s just: gem install rqrcode]]></description>
			<content:encoded><![CDATA[<p>Quick post to say I pushed a 0.3.3 release of <a href="http://whomwah.github.com/rqrcode/">rQRCode</a> which fixes a few bugs that have been causing people pain. If you&#8217;ve never seen the library, you can <a href="https://rubygems.org/gems/rqrcode">check it out over at the RubyGems.org site</a>. Otherwise it&#8217;s just:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gem <span style="color: #c20cb9; font-weight: bold;">install</span> rqrcode</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2011/02/05/rqrcode-0-3-3-released-bug-fixes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>BBC Gardeners&#8217; Planner in your calendar part deux</title>
		<link>http://whomwah.com/2009/10/20/bbc-gardeners-planner-in-your-calendar-part-deux/</link>
		<comments>http://whomwah.com/2009/10/20/bbc-gardeners-planner-in-your-calendar-part-deux/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 13:01:24 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1713</guid>
		<description><![CDATA[This is just a small extension to the original post: Subscribe to the BBC Gardeners’ Planner with the help of Sinatra. I mentioned there that I needed to add some caching to the application, and also that it didn&#8217;t live anywhere. Well it now has caching (a feeds cached for a day) thanks to rack/cache [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a small extension to the original post: <a href="http://whomwah.com/2009/10/15/subscribe-to-the-bbc-garden-planner-with-the-help-of-sinatra/">Subscribe to the BBC Gardeners’ Planner with the help of Sinatra</a>.</p>
<p>I mentioned there that I needed to add some caching to <a href="http://github.com/whomwah/gwplanner">the application</a>, and also that it didn&#8217;t live anywhere. Well it now has caching (a feeds cached for a day) thanks to <a href="http://tomayko.com/src/rack-cache/">rack/cache</a> and it now has a url:</p>
<ul>
<li><a href="http://gw.whomwah.com">http://gw.whomwah.com</a></li>
</ul>
<p>Which you can now use in your iCal enabled calendar, one of which is <a href="http://www.google.com/calendar/">Google Calendar</a>, which is used in the photo below where I have subscriber to:</p>
<ul>
<li><a href="http://gw.whomwah.com/planner.ics?s=houseplants,greenhouse">http://gw.whomwah.com/planner.ics?s=houseplants,greenhouse</a></li>
<li><a href="http://gw.whomwah.com/planner.ics?s=hedges">http://gw.whomwah.com/planner.ics?s=hedges</a></li>
</ul>
<p><a href="http://www.flickr.com/photos/duncanponting/4029389908/"><img src="http://farm3.static.flickr.com/2489/4029389908_b184d826df.jpg" alt="Google Calendar" /></a></p>
<p>I was having some strange problems the other day, where Google Calendar was showing the calendar titles as long email addresses. I think this may be a Google Calendar index thing (anyone know?), as it appears to fix itself over time so ignore it.</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/10/20/bbc-gardeners-planner-in-your-calendar-part-deux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Subscribe to the BBC Gardeners&#8217; Planner with the help of Sinatra</title>
		<link>http://whomwah.com/2009/10/15/subscribe-to-the-bbc-garden-planner-with-the-help-of-sinatra/</link>
		<comments>http://whomwah.com/2009/10/15/subscribe-to-the-bbc-garden-planner-with-the-help-of-sinatra/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 09:45:50 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1685</guid>
		<description><![CDATA[[UPDATE] I have posted an update with a url you can use I really like being in my garden, so I was looking at the BBC Gardening site the other day for some gardening tips. The hardest part for me, is the lack of experience I have in knowing what needs to be done and [...]]]></description>
			<content:encoded><![CDATA[<p class="update">[UPDATE] I have <a href="http://whomwah.com/2009/10/20/bbc-gardeners-planner-in-your-calendar-part-deux/">posted an update</a> with a url you can use</p>
<p>I really like being in my garden, so I was looking at the <a href="http://www.bbc.co.uk/gardening">BBC Gardening site</a> the other day for <a href="http://www.bbc.co.uk/gardening/calendar/">some gardening tips</a>. The hardest part for me, is the lack of experience I have in knowing what needs to be done and when.</p>
<p>The BBC Gardening website solves this by having <a href="http://www.bbc.co.uk/gardening/calendar/calendar.shtml">a gardeners&#8217; planner</a>. Great I thought, there&#8217;s loads of really useful stuff in there. The problem is I have to keep going back to the site, to check what I&#8217;m suppose to be doing. As it&#8217;s a planner, it would be great of I could have this information to put in <a href="http://calendar.google.com">my own calendar</a>, so I could see it along with other jobs I have to do. Even better if I could subscribe to this information, so if it ever changes, I&#8217;m kept up-to-date. Maybe they will provide this one day (I really think they should), but in the mean time I decided to roll my own:</p>
<p><a href="http://www.flickr.com/photos/duncanponting/4012776724/"><img src="http://farm3.static.flickr.com/2609/4012776724_9a7b594374.jpg" alt="Subscribing to the BBC Garden planner" /></a></p>
<p>I&#8217;ve <a href="http://github.com/whomwah/gwplanner">created a web app</a> that reads this planner data, and converts it into the <a href="http://en.wikipedia.org/wiki/ICalendar">iCal format</a> that you can now subscribe to. It&#8217;s written using <a href="http://www.sinatrarb.com/">Sinatra</a>, and I choose to run it under the awesome <a href="http://www.modrails.com/">Passenger</a> via mod_passenger. It&#8217;s currently not hosted anywhere (other than on my laptop), so you&#8217;ll have to run it on your own server. Maybe that will change if I can find somewhere to stick it, I&#8217;ll keep you posted. I think some caching may be needed before that happens though.</p>
<p>Once running on your computer of choice, you only really have one uri to stick in your calendar of choice. You can extend this uri by passing in section names to filter the information displayed in the calendar. Here&#8217;s a few examples:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># to subscribe to a calendar of everything ( quite big! )</span>
http:<span style="color:#006600; font-weight:bold;">//</span>mydomain.<span style="color:#9900CC;">local</span><span style="color:#006600; font-weight:bold;">/</span>planner.<span style="color:#9900CC;">ics</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># to subscribe to a calendar of tips on just trees, ponds and wildlife</span>
http:<span style="color:#006600; font-weight:bold;">//</span>mydomain.<span style="color:#9900CC;">local</span><span style="color:#006600; font-weight:bold;">/</span>planner.<span style="color:#9900CC;">ics</span>?s=trees,ponds,wildlife
&nbsp;
<span style="color:#008000; font-style:italic;"># to view all the available sections</span>
http:<span style="color:#006600; font-weight:bold;">//</span>mydomain.<span style="color:#9900CC;">local</span><span style="color:#006600; font-weight:bold;">/</span></pre></div></div>

<p>And here&#8217;s what it looks like in <a href="http://www.apple.com/">Apple&#8217;s</a> iCal once you have subscibed:</p>
<p><a href="http://www.flickr.com/photos/duncanponting/4012776834/"><img src="http://farm3.static.flickr.com/2616/4012776834_8e3c7d9a54.jpg" alt="BBC Garden planner in iCal" /></a></p>
<p>Get your own copy of the app from <a href="http://github.com/">github</a>. You <a href="http://www.modrails.com/documentation/Users%20guide%20Apache.html#_sinatra">get up and running</a> in the same way you would with any Sinatra/Passenger app. The structure and config file is already written, so you really just need to do the vhost and symlinking :</p>
<ul>
<li><a href="http://github.com/whomwah/gwplanner/raw/master/README">Check the apps README file</a></li>
<li><a href="http://github.com/whomwah/gwplanner">Get a copy of GWPlanner</a></li>
</ul>
<p>Happy Gardening!</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/10/15/subscribe-to-the-bbc-garden-planner-with-the-help-of-sinatra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controlling the spotlights at work with Sinatra and OSC</title>
		<link>http://whomwah.com/2009/04/24/controlling-the-spotlights-at-work-with-sinatra-and-osc/</link>
		<comments>http://whomwah.com/2009/04/24/controlling-the-spotlights-at-work-with-sinatra-and-osc/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 20:47:58 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1470</guid>
		<description><![CDATA[Nic bought some spotlights the other week for work, so we could hook them up to our continuous integration server, and they would let us know using the medium of colour, when things had failed! Before we did that, I thought I&#8217;d have a little play. Tristan and Chris having been building a fun new [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aelius.com/njh/">Nic</a> bought some <a href="http://www.soundsavers.com/catalog/all-lighting-177/led-par-cans-231/ledj-eco-led-56-can-black-10mm-led-2985.html">spotlights</a> the other week for work, so we could hook them up to our <a href="http://en.wikipedia.org/wiki/Continuous_Integration">continuous integration server</a>, and they would let us know using the medium of colour, when things had failed!</p>
<p>Before we did that, I thought I&#8217;d have a little play. <a href="http://www.cookinrelaxin.com">Tristan</a> and <a href="http://www.fridayforward.com/">Chris</a> having been building a fun new game (Read more via the <a href="http://www.bbc.co.uk/blogs/radiolabs/">Radio Labs blog</a> soon) which uses <em>nowplaying</em> data from <a href="http://bbc.co.uk/6music">BBC 6 Music</a> to power it. Knowing when a track is starting and ending is also useful, so as a bit of fun, I wrote a little <a href="http://ruby-lang.org/en/">Ruby</a> script that made the spotlights behave like traffic lights:</p>
<ol>
<li>Green &#8211; when a track started playing</li>
<li>Flashing Amber &#8211; when a track was about to finish</li>
<li>Red &#8211; when the track finally finished</li>
</ol>
<p><img src="http://farm4.static.flickr.com/3586/3465581068_67c13f1132.jpg?v=0" alt="spotlight" /><span class="caption">Photo by <a href="http://www.cookinrelaxin.com/">Tristan</a></span></p>
<p>To control the lights we&#8217;re using <a href="http://hans.fugal.net/src/rosc/doc/">ROSC</a> open sound control for <a href="http://ruby-lang.org/en/">Ruby</a>. It&#8217;s very good, but required building to install, and the interface is nice, but not simple enough if all you&#8217;re doing is turning a light on or off and changing it&#8217;s colour. So in order to make the script even more simple, I thought I&#8217;d write a little http proxy so that your could control the lights by just going to a url. It meant even the non-programmers could have fun replicating disco lighting. The urls look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">http://spotlights.local/all/green
http://spotlights.local/all/rgb120-12-200
http://spotlights.local/all/off
http://spotlights.local/all/random</pre></div></div>

<p>The proxy is written using <a href="http://www.sinatrarb.com/">Sinatra</a>. I love <a href="http://www.sinatrarb.com/">Sinatra</a>. If you thought prototyping was simple with <a href="http://rubyonrails.org/">Rails</a>, well with Sinatra + <a href="http://www.modrails.com/">Passenger</a> it takes simplicity to a whole new level.</p>
<p>You can <a href="http://github.com/whomwah/light-controller">download the lightcontroller source</a> from <a href="http://github.com/">Github</a> as normal, you&#8217;ll have to tweak a few settings for your needs. You may even find it a useful template for controlling something else. </p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/04/24/controlling-the-spotlights-at-work-with-sinatra-and-osc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>expires_in Rails FileStore fragment caching in about 6 lines</title>
		<link>http://whomwah.com/2009/04/03/expires_in-filestore-fragment-caching/</link>
		<comments>http://whomwah.com/2009/04/03/expires_in-filestore-fragment-caching/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 14:32:08 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=1329</guid>
		<description><![CDATA[I have been building a Rails app that creates RSS feeds based on a lot of screen scraping behind the scenes. I really needed a way to cache the data object that feeds those specific pages. In rails you can do page, action and fragment caching, using many different methods, and storing that cache data [...]]]></description>
			<content:encoded><![CDATA[<p>I have been building a <a href="http://rubyonrails.org/">Rails</a> app that creates <a href="http://en.wikipedia.org/wiki/RSS_(file_format)">RSS</a> feeds based on a lot of <a href="http://en.wikipedia.org/wiki/Screen_scraping">screen scraping</a> behind the scenes. I really needed a way to cache the data object that feeds those specific pages. In rails you can do <a href="http://guides.rubyonrails.org/caching_with_rails.html">page, action and fragment caching</a>, using many different methods, and storing that cache data in many different locations.</p>
<p>After deciding I needed <a href="http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching">Fragment caching</a>, it turns out that if you need your cache data to magically expire over time, you need to be using <a href="http://www.danga.com/memcached/">memcached</a> (I couldn&#8217;t), other wise you have to roll you own solution, based on cache sweeping, or in-code testing of whether your content has expired.</p>
<p>I&#8217;m using <a href="http://api.rubyonrails.org/classes/ActiveSupport/Cache/FileStore.html">FileStore</a> for caching (cached files live on the file system) and I have no database, and all the feed data comes from external feeds that change over time, so unless I fetch it all again, I don&#8217;t know.</p>
<p>What I needed was the ability to have a expires_in parameter whilst using FileStore. So this is what the code below does in surprisingly few lines. The code is an amalgamation of many posts I found doing almost the same thing, but this is what works for me.</p>
<p>First we extend FileStore:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># stick this in a file somewhere in your path e.g lib/fs_extend.rb</span>
<span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#6666ff; font-weight:bold;">ActiveSupport::Cache::FileStore</span>
  <span style="color:#9966CC; font-weight:bold;">def</span> read<span style="color:#006600; font-weight:bold;">&#40;</span>name, options = <span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span> 
    ttl = 0
    ttl = options<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:expires_in</span><span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#9966CC; font-weight:bold;">if</span> options.<span style="color:#9900CC;">is_a</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">Hash</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&amp;&amp;</span> 
                                         options.<span style="color:#9900CC;">has_key</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:expires_in</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    fn = real_file_path<span style="color:#006600; font-weight:bold;">&#40;</span>name<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
    <span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#9966CC; font-weight:bold;">if</span> ttl <span style="color:#006600; font-weight:bold;">&gt;</span> 0 <span style="color:#006600; font-weight:bold;">&amp;&amp;</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">exists</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>fn<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&amp;&amp;</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">mtime</span><span style="color:#006600; font-weight:bold;">&#40;</span>fn<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span> <span style="color:#006600; font-weight:bold;">-</span> ttl<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>fn, <span style="color:#996600;">'rb'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#CC00FF; font-weight:bold;">Marshal</span>.<span style="color:#CC0066; font-weight:bold;">load</span><span style="color:#006600; font-weight:bold;">&#40;</span>f<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#0000FF; font-weight:bold;">nil</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>And then in your controller I have:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> FooController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController 
  <span style="color:#9966CC; font-weight:bold;">def</span> do_stuff
    key = <span style="color:#996600;">'someuniquekey'</span>
    expire_fragment<span style="color:#006600; font-weight:bold;">&#40;</span>key<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">unless</span> 
        <span style="color:#0066ff; font-weight:bold;">@data</span> = read_fragment<span style="color:#006600; font-weight:bold;">&#40;</span>key, <span style="color:#ff3333; font-weight:bold;">:expires_in</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> 1.<span style="color:#9900CC;">hour</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">||</span> 
                                  write_fragment<span style="color:#006600; font-weight:bold;">&#40;</span>key, some_complex_data<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
    respond_to <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>format<span style="color:#006600; font-weight:bold;">|</span>
      <span style="color:#CC0066; font-weight:bold;">format</span>.<span style="color:#9900CC;">xml</span>
    <span style="color:#9966CC; font-weight:bold;">end</span> 
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>This has reduced many 5 second requests to 32ms requests, so hurrah!</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2009/04/03/expires_in-filestore-fragment-caching/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing Nokogiri on CentOS5</title>
		<link>http://whomwah.com/2008/11/13/installing-nokogiri-on-centos5/</link>
		<comments>http://whomwah.com/2008/11/13/installing-nokogiri-on-centos5/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 09:45:52 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=736</guid>
		<description><![CDATA[Nokogiri is an HTML, XML, SAX, and Reader parser with XPath and CSS selector support. It claims to be a drop in replacement for Hpricot, and it claims to be faster. I think the latter has been addressed but the drop-in bit, well. You see, the Hpricot&#8217;s gem had always in the past, just installed, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nokogiri.rubyforge.org/nokogiri/">Nokogiri</a> is an HTML, XML, SAX, and Reader parser with XPath and CSS selector support. It claims to be a drop in replacement for <a href="http://code.whytheluckystiff.net/hpricot/">Hpricot</a>, and it claims to be faster. I think the latter has been addressed but the drop-in bit, well. You see, the Hpricot&#8217;s gem had always in the past, just installed, but with Nokogiri I had dependency problems. Turns out I needed a few extra libs that were not installed on my machine. Here&#8217;s how I got things going again:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># It seems you need the latest version of rubygems
sudo gem update --system
# and some RPM's
sudo yum install libxml libxml-devel libxslt libxslt-devel
# now the gem should install ok
sudo gem install nokogiri</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2008/11/13/installing-nokogiri-on-centos5/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Twammer, sending stuff from Twitter to Yammer</title>
		<link>http://whomwah.com/2008/09/28/twammer-sending-stuff-from-twitter-to-yammer/</link>
		<comments>http://whomwah.com/2008/09/28/twammer-sending-stuff-from-twitter-to-yammer/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 19:12:25 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[xmpp]]></category>
		<category><![CDATA[yammer]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=564</guid>
		<description><![CDATA[I use Twitter. I don&#8217;t really post much, but I do like to dip in and hear what my friends are doing. Yammer is like a private Twitter for companies. We have just had a network set up for the BBC, which is interesting. Again, I like the idea of posting what I am doing [...]]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://twitter.com/whomwah">Twitter</a>. I don&#8217;t really post much, but I do like to dip in and hear what <a href="http://twitter.com/whomwah/friends">my friends</a> are doing. <a href="https://www.yammer.com/">Yammer</a> is like a private Twitter for companies. We have just had a network set up for the <a href="http://bbc.co.uk/">BBC</a>, which is interesting. Again, I like the idea of posting what I am doing and dipping into what other people are doing around the organisation. </p>
<p>So you can see my problem, I&#8217;m doubling up here a bit. When I post something to <a href="http://twitter.com/">Twitter</a>, and I think it would be relevant for work too, I don&#8217;t want to have to open a different interface and post it again. Now there are services like <a href="http://ping.fm/">ping.fm</a> which will sync every site you belong to, but I what to decide what gets posted at work and what doesn&#8217;t in this instance. The simple answer is to build something that looks at <a href="http://twitter.com/statuses/user_timeline/47983.rss">my Twitter feed</a> and if it sees anything new, then posts it off to Yammer. My friend <a href="http://www.aelius.com/njh/">Mr Humfrey</a> does that very thing. I wanted more than this though, I wanted to filter, plus I wanted to make it easy to use, so I have written <a href="http://code.whomwah.com/ruby/twammer">this very simple app</a> that does the job:</p>
<ol>
<li>Read my Twitter feed every n minutes for changes</li>
<li>Keep messages with my chosen keyword</li>
<li>Remove keyword, and send off to Yammer</li>
</ol>
<p><a href="http://code.whomwah.com/ruby/twammer">Twammer</a> usage:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># Display help</span>
.<span style="color:#006600; font-weight:bold;">/</span>twammer <span style="color:#006600; font-weight:bold;">-</span>h
&nbsp;
<span style="color:#008000; font-style:italic;"># check Twitter messages with last 5 mins (default)</span>
<span style="color:#008000; font-style:italic;"># filter by #bbc but don't send anything to Yammer</span>
.<span style="color:#006600; font-weight:bold;">/</span>twammer <span style="color:#006600; font-weight:bold;">-</span>t 47983 <span style="color:#006600; font-weight:bold;">-</span>u user <span style="color:#006600; font-weight:bold;">-</span><span style="color:#CC0066; font-weight:bold;">p</span> pass <span style="color:#006600; font-weight:bold;">-</span>f bbc <span style="color:#006600; font-weight:bold;">-</span>q
&nbsp;
<span style="color:#008000; font-style:italic;"># check Twitter messages within last 10 mins</span>
<span style="color:#008000; font-style:italic;"># send anything to Yammer. Show output</span>
.<span style="color:#006600; font-weight:bold;">/</span>twammer <span style="color:#006600; font-weight:bold;">-</span>t 47983 <span style="color:#006600; font-weight:bold;">-</span>u user <span style="color:#006600; font-weight:bold;">-</span><span style="color:#CC0066; font-weight:bold;">p</span> pass <span style="color:#006600; font-weight:bold;">-</span>d <span style="color:#006666;">10</span> <span style="color:#006600; font-weight:bold;">-</span>v</pre></div></div>

<p>This is designed to be run as a <a href="http://en.wikipedia.org/wiki/Cron">cron</a> job. You must also make sure you run it at the same interval as the &#8211;delay in the app. Here&#8217;s what my crontab looks like:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">0,5,10,15,20,25,30,35,40,45,50,55 <span style="color:#006600; font-weight:bold;">*</span> <span style="color:#006600; font-weight:bold;">*</span> <span style="color:#006600; font-weight:bold;">*</span> <span style="color:#006600; font-weight:bold;">*</span> <span style="color:#006600; font-weight:bold;">/</span>home<span style="color:#006600; font-weight:bold;">/</span>duncan<span style="color:#006600; font-weight:bold;">/</span>bin<span style="color:#006600; font-weight:bold;">/</span>twammer <span style="color:#006600; font-weight:bold;">-</span>t 47983 <span style="color:#006600; font-weight:bold;">-</span>u user <span style="color:#006600; font-weight:bold;">-</span><span style="color:#CC0066; font-weight:bold;">p</span> pass <span style="color:#006600; font-weight:bold;">-</span>f bbc <span style="color:#006600; font-weight:bold;">&gt;</span> <span style="color:#006600; font-weight:bold;">/</span>dev<span style="color:#006600; font-weight:bold;">/</span>null</pre></div></div>

<p class="update">[UPDATE] Changed to using the correct API instead of scraping the RSS</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2008/09/28/twammer-sending-stuff-from-twitter-to-yammer/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>rQRCode, a Ruby library for encoding QR Codes</title>
		<link>http://whomwah.com/2008/02/24/rqrcode-a-ruby-library-for-encoding-qr-codes/</link>
		<comments>http://whomwah.com/2008/02/24/rqrcode-a-ruby-library-for-encoding-qr-codes/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 14:37:08 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[qrcodes]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=314</guid>
		<description><![CDATA[[Update]: I have also posted a bit more about the upcoming QR Code work for BBC /programmes. We implemented QR Codes on BBC programmes (A project I&#8217;m one of the Software Engineer&#8217;s on, at the BBC) a few weeks back. They&#8217;ve been talked about since so I won&#8217;t repeat things, only to say it was [...]]]></description>
			<content:encoded><![CDATA[<p class="update">[Update]: I have also <a href="http://whomwah.com/2008/03/12/more-fun-with-qr-codes-and-the-bbc-logo/">posted a bit more about the upcoming QR Code work for BBC /programmes</a>.</p>
<p>We implemented <a href="http://en.wikipedia.org/wiki/QR_Code">QR Codes</a> on <a href="http://bbc.co.uk/programmes">BBC programmes</a> (A project I&#8217;m <a href="http://bbc.co.uk/programmes/developers/are">one of the Software Engineer&#8217;s</a> on, at the <a href="http://bbc.co.uk">BBC</a>) a few weeks back. <a href="http://derivadow.com/2008/01/21/qr-codes-for-bbc-programmes-and-some-other-stuff">They&#8217;ve been talked about since</a> so I won&#8217;t repeat things, only to say it was a simple implementation using a <a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a> library by  <a href="http://www.d-project.com/qrcode">Kazuhiko Arase</a> and took all of 5 minutes of my lunch hour to add. It started as an email by colleague <a href="http://www.bbc.co.uk/blogs/bbcinternet/michael_smethurst">Michael Smethhurst</a> asking if we could/should implement them, and was also the first I had really heard of them.</p>
<p>Since then, I have done lots more research and think there is great mileage there for promotional material and advertising. At the moment the codes are built on the client side, but this will be moved to the server soon so we can start caching the pages, and also so we can provide the code in a more useful format (maybe images instead of the current HTML table).</p>
<p>So to the point of this post. During my research to understand QR Codes more and because of the lack of free readable spec (Anyone know if there is one?)  I decided to reverse engineer the JavaScript library into a <a href="http://www.ruby-lang.org">Ruby</a> <a href="http://www.rubygems.org">Gem</a> as there didn&#8217;t seem to be one out there. This helped me understand the how QR Codes are encoded, while at the same time giving something back for other people to use.</p>
<p>You can find out more over at it&#8217;s project page on Github:<br />
<a href="http://whomwah.github.com/rqrcode/">http://whomwah.github.com/rqrcode/</a></p>
<p>So that should get you going. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2008/02/24/rqrcode-a-ruby-library-for-encoding-qr-codes/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Show Us Your Gems</title>
		<link>http://whomwah.com/2007/02/12/show-us-your-gems/</link>
		<comments>http://whomwah.com/2007/02/12/show-us-your-gems/#comments</comments>
		<pubDate>Mon, 12 Feb 2007 15:12:38 +0000</pubDate>
		<dc:creator>Duncan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://whomwah.com/?p=307</guid>
		<description><![CDATA[What a good idea. Here&#8217;s what I have installed currently: $ gem list&#124;grep '^[a-zA-Z]' actionmailer &#40;1.3.3, 1.3.2&#41; actionpack &#40;1.13.3, 1.13.2&#41; actionwebservice &#40;1.2.3, 1.2.2&#41; activerecord &#40;1.15.3, 1.15.2&#41; activesupport &#40;1.4.2, 1.4.1&#41; acts_as_versioned &#40;0.2.3&#41; amazon-ec2 &#40;0.1.0&#41; builder &#40;2.0.0&#41; camping &#40;1.5.180&#41; camping-omnibus &#40;1.5.180&#41; capistrano &#40;1.99.1, 1.4.1, 1.4.0&#41; cgi_multipart_eof_fix &#40;2.1&#41; daemons &#40;1.0.4&#41; deprec &#40;1.3.1&#41; fastercsv &#40;1.2.0&#41; fastthread &#40;0.6.3&#41; ferret &#40;0.11.2&#41; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clarkware.com/cgi/blosxom/2007/02/10#GemSurvey">What a good idea</a>. Here&#8217;s what I have installed currently:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">$ gem list<span style="color:#006600; font-weight:bold;">|</span>grep <span style="color:#996600;">'^[a-zA-Z]'</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">actionmailer <span style="color:#006600; font-weight:bold;">&#40;</span>1.3.3, 1.3.2<span style="color:#006600; font-weight:bold;">&#41;</span>
actionpack <span style="color:#006600; font-weight:bold;">&#40;</span>1.13.3, 1.13.2<span style="color:#006600; font-weight:bold;">&#41;</span>
actionwebservice <span style="color:#006600; font-weight:bold;">&#40;</span>1.2.3, 1.2.2<span style="color:#006600; font-weight:bold;">&#41;</span>
activerecord <span style="color:#006600; font-weight:bold;">&#40;</span>1.15.3, 1.15.2<span style="color:#006600; font-weight:bold;">&#41;</span>
activesupport <span style="color:#006600; font-weight:bold;">&#40;</span>1.4.2, 1.4.1<span style="color:#006600; font-weight:bold;">&#41;</span>
acts_as_versioned <span style="color:#006600; font-weight:bold;">&#40;</span>0.2.3<span style="color:#006600; font-weight:bold;">&#41;</span>
amazon<span style="color:#006600; font-weight:bold;">-</span>ec2 <span style="color:#006600; font-weight:bold;">&#40;</span>0.1.0<span style="color:#006600; font-weight:bold;">&#41;</span>
builder <span style="color:#006600; font-weight:bold;">&#40;</span>2.0.0<span style="color:#006600; font-weight:bold;">&#41;</span>
camping <span style="color:#006600; font-weight:bold;">&#40;</span>1.5.180<span style="color:#006600; font-weight:bold;">&#41;</span>
camping<span style="color:#006600; font-weight:bold;">-</span>omnibus <span style="color:#006600; font-weight:bold;">&#40;</span>1.5.180<span style="color:#006600; font-weight:bold;">&#41;</span>
capistrano <span style="color:#006600; font-weight:bold;">&#40;</span>1.99.1, 1.4.1, 1.4.0<span style="color:#006600; font-weight:bold;">&#41;</span>
cgi_multipart_eof_fix <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2.1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
daemons <span style="color:#006600; font-weight:bold;">&#40;</span>1.0.4<span style="color:#006600; font-weight:bold;">&#41;</span>
deprec <span style="color:#006600; font-weight:bold;">&#40;</span>1.3.1<span style="color:#006600; font-weight:bold;">&#41;</span>
fastercsv <span style="color:#006600; font-weight:bold;">&#40;</span>1.2.0<span style="color:#006600; font-weight:bold;">&#41;</span>
fastthread <span style="color:#006600; font-weight:bold;">&#40;</span>0.6.3<span style="color:#006600; font-weight:bold;">&#41;</span>
ferret <span style="color:#006600; font-weight:bold;">&#40;</span>0.11.2<span style="color:#006600; font-weight:bold;">&#41;</span>
flexmock <span style="color:#006600; font-weight:bold;">&#40;</span>0.6.1, 0.6.0, 0.5.0<span style="color:#006600; font-weight:bold;">&#41;</span>
gem_plugin <span style="color:#006600; font-weight:bold;">&#40;</span>0.2.2<span style="color:#006600; font-weight:bold;">&#41;</span>
highline <span style="color:#006600; font-weight:bold;">&#40;</span>1.2.7<span style="color:#006600; font-weight:bold;">&#41;</span>
hoe <span style="color:#006600; font-weight:bold;">&#40;</span>1.2.0<span style="color:#006600; font-weight:bold;">&#41;</span>
hpricot <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0.5</span><span style="color:#006600; font-weight:bold;">&#41;</span>
map_by_method <span style="color:#006600; font-weight:bold;">&#40;</span>0.6.0<span style="color:#006600; font-weight:bold;">&#41;</span>
markaby <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0.5</span><span style="color:#006600; font-weight:bold;">&#41;</span>
metaid <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1.0</span><span style="color:#006600; font-weight:bold;">&#41;</span>
mocha <span style="color:#006600; font-weight:bold;">&#40;</span>0.4.0<span style="color:#006600; font-weight:bold;">&#41;</span>
mongrel <span style="color:#006600; font-weight:bold;">&#40;</span>1.0.1<span style="color:#006600; font-weight:bold;">&#41;</span>
mysql <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2.7</span><span style="color:#006600; font-weight:bold;">&#41;</span>
needle <span style="color:#006600; font-weight:bold;">&#40;</span>1.3.0<span style="color:#006600; font-weight:bold;">&#41;</span>
net<span style="color:#006600; font-weight:bold;">-</span>sftp <span style="color:#006600; font-weight:bold;">&#40;</span>1.1.0<span style="color:#006600; font-weight:bold;">&#41;</span>
net<span style="color:#006600; font-weight:bold;">-</span>ssh <span style="color:#006600; font-weight:bold;">&#40;</span>1.1.1, 1.1.0, 1.0.10<span style="color:#006600; font-weight:bold;">&#41;</span>
railroad <span style="color:#006600; font-weight:bold;">&#40;</span>0.3.3<span style="color:#006600; font-weight:bold;">&#41;</span>
rails <span style="color:#006600; font-weight:bold;">&#40;</span>1.2.3, 1.2.2<span style="color:#006600; font-weight:bold;">&#41;</span>
railsbench <span style="color:#006600; font-weight:bold;">&#40;</span>0.9.2<span style="color:#006600; font-weight:bold;">&#41;</span>
rake <span style="color:#006600; font-weight:bold;">&#40;</span>0.7.2, 0.7.1<span style="color:#006600; font-weight:bold;">&#41;</span>
rb<span style="color:#006600; font-weight:bold;">-</span>appscript <span style="color:#006600; font-weight:bold;">&#40;</span>0.3.0<span style="color:#006600; font-weight:bold;">&#41;</span>
RedCloth <span style="color:#006600; font-weight:bold;">&#40;</span>3.0.3<span style="color:#006600; font-weight:bold;">&#41;</span>
rfacebook <span style="color:#006600; font-weight:bold;">&#40;</span>0.6.2<span style="color:#006600; font-weight:bold;">&#41;</span>
rmagick <span style="color:#006600; font-weight:bold;">&#40;</span>1.15.6, 1.15.2<span style="color:#006600; font-weight:bold;">&#41;</span>
rspec <span style="color:#006600; font-weight:bold;">&#40;</span>0.8.2, 0.7.5.1<span style="color:#006600; font-weight:bold;">&#41;</span>
ruby<span style="color:#006600; font-weight:bold;">-</span>openid <span style="color:#006600; font-weight:bold;">&#40;</span>1.1.4<span style="color:#006600; font-weight:bold;">&#41;</span>
ruby<span style="color:#006600; font-weight:bold;">-</span>yadis <span style="color:#006600; font-weight:bold;">&#40;</span>0.3.4<span style="color:#006600; font-weight:bold;">&#41;</span>
rubyforge <span style="color:#006600; font-weight:bold;">&#40;</span>0.4.1<span style="color:#006600; font-weight:bold;">&#41;</span>
sources <span style="color:#006600; font-weight:bold;">&#40;</span>0.0.1<span style="color:#006600; font-weight:bold;">&#41;</span>
sqlite3<span style="color:#006600; font-weight:bold;">-</span>ruby <span style="color:#006600; font-weight:bold;">&#40;</span>1.1.0.1<span style="color:#006600; font-weight:bold;">&#41;</span>
stemmer <span style="color:#006600; font-weight:bold;">&#40;</span>1.0.1<span style="color:#006600; font-weight:bold;">&#41;</span>
termios <span style="color:#006600; font-weight:bold;">&#40;</span>0.9.4<span style="color:#006600; font-weight:bold;">&#41;</span>
test<span style="color:#006600; font-weight:bold;">-</span>spec <span style="color:#006600; font-weight:bold;">&#40;</span>0.3.0<span style="color:#006600; font-weight:bold;">&#41;</span>
what_methods <span style="color:#006600; font-weight:bold;">&#40;</span>1.0.1<span style="color:#006600; font-weight:bold;">&#41;</span>
xml<span style="color:#006600; font-weight:bold;">-</span>simple <span style="color:#006600; font-weight:bold;">&#40;</span>1.0.10<span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://whomwah.com/2007/02/12/show-us-your-gems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

