<?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>Laughing Meme &#187; ruby</title>
	<atom:link href="http://laughingmeme.org/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://laughingmeme.org</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 02 Apr 2012 20:12:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>treetop: packrat parsing in Ruby</title>
		<link>http://laughingmeme.org/2007/06/29/treetop-packrat-parsing-in-ruby/</link>
		<comments>http://laughingmeme.org/2007/06/29/treetop-packrat-parsing-in-ruby/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 07:38:23 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[parsing]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2007/06/29/treetop-packrat-parsing-in-ruby/</guid>
		<description><![CDATA[Perfect timing, been meaning to revisit PEGs since the other week. Nice DSL for grammar specification.]]></description>
			<content:encoded><![CDATA[<p>Perfect timing, been meaning to revisit PEGs since <a href="http://twitter.com/stevej/statuses/119364052">the other week</a>.  Nice DSL for grammar specification.</p>
<p><a href='http://rubyforge.org/projects/treetop/'>http://rubyforge.org/projects/treetop/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2007/06/29/treetop-packrat-parsing-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter, Ruby, and Scaling</title>
		<link>http://laughingmeme.org/2007/04/12/twitter-ruby-and-scaling/</link>
		<comments>http://laughingmeme.org/2007/04/12/twitter-ruby-and-scaling/#comments</comments>
		<pubDate>Thu, 12 Apr 2007 18:25:30 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitterversy]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2007/04/12/twitter-ruby-and-scaling/</guid>
		<description><![CDATA[Alex gave a phenomenal interview on Twitter and Rails a couple of weeks ago. This morning its all over the Net &#8212; but folks I think are taking the wrong lessons from it. Ruby is dead slow. This is not news, though it can be surprising when you&#8217;re used to thinking about scripting languages as [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.al3x.net/">Alex</a> gave a <a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/"><strong>phenomenal</strong> interview on Twitter and Rails</a> a couple of weeks ago.  This morning its all over the Net &#8212; but folks I think are taking the wrong lessons from it.  </p>

<ol>
<li><p>Ruby is dead slow.  This is not news, though it can be surprising when you&#8217;re used to thinking about scripting languages as all being roughly equal.</p></li>
<li><p>Rails trades developer performance for framework performance.  Also not news, as this has been the mantra of Rails since day 1.</p></li>
</ol>

<p>More importantly he gives a quick insight into the how of making social software scale.  It&#8217;s hard, it has ugly network effects, it makes databases cry.  Alex mentions cache like mad. (because frankly no one but the content creator needs to see fresh data) </p>

<p>Also denormalize like mad, federate like mad, and prune features that make your site slow. (and these are the same techniques that they&#8217;re working on behind the scenes at Twitter, and that <a href="http://www.amazon.com/o/ASIN/0596102356/103-6236904-0024607">we use to scale Flickr</a>).</p>

<p>You&#8217;ll never build a successful site if you build to scale from day 1, scaling is always a catch up game, but it&#8217;s the best game there is.</p>

<p>(And yes, this is my <a href="http://laughingmeme.org/category/twitter">all Twitter</a> all the time blog week)</p>

<p><strong>update:</strong> <a href="http://romeda.org">Blaine</a>, lead Twitter engineer, is giving a talk on <a href="http://romeda.org/blog/2007/04/scaling-twitter-talk.html">how they scale Rails/Twitter</a> next weekend at the <a href="http://www.sdforum.org/SDForum/Templates/CalendarEvent.aspx?CID=2135&amp;mo=4&amp;yr=2007">Rudy SD Forum</a>. (which has done a terrible job of publicizing its existence, but has a pretty killer looking line up)</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2007/04/12/twitter-ruby-and-scaling/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Liminal Existence: MapReduce in 36 lines of Ruby</title>
		<link>http://laughingmeme.org/2007/04/03/liminal-existence-mapreduce-in-36-lines-of-ruby/</link>
		<comments>http://laughingmeme.org/2007/04/03/liminal-existence-mapreduce-in-36-lines-of-ruby/#comments</comments>
		<pubDate>Tue, 03 Apr 2007 23:27:13 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[drb]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[mapreduce]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2007/04/03/liminal-existence-mapreduce-in-36-lines-of-ruby/</guid>
		<description><![CDATA[Amazing what you can do with a higher order functional language, and a couple of good libraries. Short step to (1..100).each { ec2.spin_up }.dmap { hard problem }.inject { take over the world }]]></description>
			<content:encoded><![CDATA[<p>Amazing what you can do with a higher order functional language, and a couple of good libraries.  Short step to <code>(1..100).each { ec2.spin_up }.dmap { hard problem }.inject { take over the world }</code></p>
<p><a href='http://romeda.org/blog/2007/04/mapreduce-in-36-lines-of-ruby.html'>http://romeda.org/blog/2007/04/mapreduce-in-36-lines-of-ruby.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2007/04/03/liminal-existence-mapreduce-in-36-lines-of-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding a Twitter killbot</title>
		<link>http://laughingmeme.org/2007/03/09/coding-a-twitter-killbot/</link>
		<comments>http://laughingmeme.org/2007/03/09/coding-a-twitter-killbot/#comments</comments>
		<pubDate>Sat, 10 Mar 2007 02:44:14 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2007/03/09/coding-a-twitter-killbot/</guid>
		<description><![CDATA[j = Jabber::Simple.new(jid, pass) j.received_messages.each do &#124;mesg&#124; if mesg.body.match(/austin&#124;sxsw/i) sender = mesg.elements['//screen_name'].text j.deliver('twitter@twitter.com', "leave #{sender}") end end Though truth be told, it isn&#8217;t running.]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/kellan/statuses/6098611"><img src="http://laughingmeme.org/img/killbot.png" border="0"></a></p>

<pre><code>j = Jabber::Simple.new(jid, pass)

j.received_messages.each do |mesg|
    if mesg.body.match(/austin|sxsw/i)
        sender = mesg.elements['//screen_name'].text
        j.deliver('twitter@twitter.com', "leave #{sender}")
    end
end
</code></pre>

<p>Though truth be told, it isn&#8217;t running.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2007/03/09/coding-a-twitter-killbot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Labnotes Â» method_missing: best saved for last</title>
		<link>http://laughingmeme.org/2007/02/07/labnotes-%c2%bb-method_missing-best-saved-for-last/</link>
		<comments>http://laughingmeme.org/2007/02/07/labnotes-%c2%bb-method_missing-best-saved-for-last/#comments</comments>
		<pubDate>Wed, 07 Feb 2007 17:43:28 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cautionary]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2007/02/07/labnotes-%c2%bb-method_missing-best-saved-for-last/</guid>
		<description><![CDATA[I take this as being a symptom of the Ruby design aesthetic, which as a community exhibit an inordinate fondness for conjuring tricks.]]></description>
			<content:encoded><![CDATA[<p>I take this as being a symptom of the Ruby design aesthetic, which as a community exhibit an inordinate fondness for conjuring tricks.</p>
<p><a href='http://blog.labnotes.org/2007/02/06/method_missing-best-saved-for-last/'>http://blog.labnotes.org/2007/02/06/method_missing-best-saved-for-last/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2007/02/07/labnotes-%c2%bb-method_missing-best-saved-for-last/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weather over Twitter</title>
		<link>http://laughingmeme.org/2007/01/12/weather-over-twitter/</link>
		<comments>http://laughingmeme.org/2007/01/12/weather-over-twitter/#comments</comments>
		<pubDate>Sat, 13 Jan 2007 07:25:42 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[local]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[weather]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2007/01/12/weather-over-twitter/</guid>
		<description><![CDATA[And while we&#8217;re talking about recent hacks, Blaine and I whipped up a Jabber bot using his Jabber::Simple and the Yahoo weather feeds, to provide twice daily weather updates via Twitter. Jabber is an intriguing platform to build on top of, and the more I play with it the more potential I find. I keep [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/bonsaikiptb/200041749/" title="Photo Sharing"><img src="http://farm1.static.flickr.com/70/200041749_ff642a45be.jpg" width="500" height="334" alt="Too Close!!!" /></a></p>

<p>And while we&#8217;re talking about recent hacks, <a href="http://romeda.org/blog/2006/12/weather-by-twitter.html">Blaine</a> and I whipped up a Jabber bot using his <a href="http://romeda.org/blog/2006/11/announcing-jabbersimple.html">Jabber::Simple</a> and the <a href="http://developer.yahoo.com/weather/">Yahoo weather feeds</a>, to provide twice daily weather updates via <a href="http://twitter.com">Twitter</a>.</p>

<p><a href="http://jabber.org">Jabber</a> is an intriguing platform to build on top of, and the more I play with it the more potential I find.   I keep checking in on it every few years (since MetaEvents days), but recently its gotten much more interesting.  In part thats Google&#8217;s adoption of the standard (and the subsequent enhancement in tools, libraries, and clients), and partially standards bake slowly, but at the core of it I think we&#8217;re reaching a point in the evolution of the Web where Internet-scale deployed messaging standards have a lot to offer of us.  A protocol for when HTTP fails you.</p>

<blockquote>
  <p>If you follow these bots, you&#8217;ll receive those updates wherever you normally get your Twitters; IM, Phone, RSS, or just on the web. So far, we have bots for the following cities: <a href="http://twitter.com/wxboston">Boston</a>, <a href="http://twitter.com/wxbrighton">Brighton</a>, <a href="http://twitter.com/wxchicago">Chicago</a>, <a href="http://twitter.com/wxhelsinki">Helsinki</a>, <a href="http://twitter.com/wxlondon">London</a>, <a href="http://twitter.com/wxla">Los Angeles</a>, <a href="http://twitter.com/wxnyc">New York</a>, <a href="http://twitter.com/wxparis">Paris</a>, <a href="http://twitter.com/wxpdx">Portland</a>, <a href="http://twitter.com/wxsf">San Francisco</a>, <a href="http://twitter.com/wxseattle">Seattle</a>, <a href="http://twitter.com/wxsingapore">Singapore</a>, and <a href="http://twitter.com/wxyvr">Vancouver</a>. If you&#8217;d like to see another city, just ask and we&#8217;ll provide.</p>
</blockquote>

<p>Slightly out of date source available at <a href="http://code.google.com/p/twitter-weather/">twitter-weather &#8211; Google Code</a></p>

<p>And taking requests for new cities.  Probably do a big batch of new ones sometime next week.  (not really an automated process)</p>

<p>Photo by <a href="http://www.flickr.com/photos/bonsaikiptb">bonsaikiptb</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2007/01/12/weather-over-twitter/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Jabber::Simple for Ruby</title>
		<link>http://laughingmeme.org/2006/11/10/jabbersimple-for-ruby/</link>
		<comments>http://laughingmeme.org/2006/11/10/jabbersimple-for-ruby/#comments</comments>
		<pubDate>Sat, 11 Nov 2006 00:50:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[jabber]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3516</guid>
		<description><![CDATA[Blaine finally released Jabber::Simple! Jabber::Simple is a straightforward Ruby wrapper for talking XMPP, the perfect for scripted IM interactions, or any other async communication you&#8217;ve got in mind. Sweet.]]></description>
			<content:encoded><![CDATA[<p>Blaine finally released <a href="http://romeda.org/blog/2006/11/announcing-jabbersimple.html">Jabber::Simple</a>!  Jabber::Simple is a straightforward Ruby wrapper for talking XMPP, the perfect for scripted IM interactions, or any other async communication you&#8217;ve got in mind.  Sweet.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/11/10/jabbersimple-for-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Bloody stupid useless semicolons.&#8221;</title>
		<link>http://laughingmeme.org/2006/09/21/bloody-stupid-useless-semicolons/</link>
		<comments>http://laughingmeme.org/2006/09/21/bloody-stupid-useless-semicolons/#comments</comments>
		<pubDate>Thu, 21 Sep 2006 19:07:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3475</guid>
		<description><![CDATA[Tim Bray, on why its nearly impossible to go back once you&#8217;ve coded Ruby. I&#8217;ve been writing PHP all day, every day for 3 months now, and I still can&#8217;t remember the damn semicolons.]]></description>
			<content:encoded><![CDATA[<p>Tim Bray, on why its nearly impossible to go back once you&#8217;ve coded Ruby.  I&#8217;ve been writing PHP all day, every day for 3 months now, and I still can&#8217;t remember the damn semicolons.</p>
<p><a href='http://www.tbray.org/ongoing/When/200x/2006/09/20/Languages'>http://www.tbray.org/ongoing/When/200x/2006/09/20/Languages</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/09/21/bloody-stupid-useless-semicolons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Quiz &#8211; DayRange (#92)</title>
		<link>http://laughingmeme.org/2006/08/25/ruby-quiz-dayrange-92/</link>
		<comments>http://laughingmeme.org/2006/08/25/ruby-quiz-dayrange-92/#comments</comments>
		<pubDate>Fri, 25 Aug 2006 21:29:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[calendaring]]></category>
		<category><![CDATA[nlp]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3455</guid>
		<description><![CDATA[Intertesting date parsing Ruby Quiz]]></description>
			<content:encoded><![CDATA[<p>Intertesting date parsing Ruby Quiz</p>
<p><a href='http://www.rubyquiz.com/quiz92.html'>http://www.rubyquiz.com/quiz92.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/08/25/ruby-quiz-dayrange-92/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON: First Day of Sessions</title>
		<link>http://laughingmeme.org/2006/07/27/oscon-first-day-of-sessions/</link>
		<comments>http://laughingmeme.org/2006/07/27/oscon-first-day-of-sessions/#comments</comments>
		<pubDate>Thu, 27 Jul 2006 12:06:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[event]]></category>
		<category><![CDATA[oscon]]></category>
		<category><![CDATA[oscon06]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[portland]]></category>
		<category><![CDATA[reportback]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3406</guid>
		<description><![CDATA[The day started out right, if a bit bleary-eyed, with Gnat giving OSCAL a lovely plug during the keynote. Also got to see Rael&#8217;s latest project, tres cool. (and in Rails, of course) Morning Embedded databases in browsers turned out to be a bit more theoretical then I was in the mood for, but the [...]]]></description>
			<content:encoded><![CDATA[<p>The day started out right, if a bit bleary-eyed, with <a href="http://radar.oreilly.com/nat/">Gnat</a> giving <a href="http://oscal.quxx.info/">OSCAL</a> a lovely plug during the keynote.  Also got to see <a href="http://radar.oreilly.com/nat/">Rael&#8217;s</a> latest project, tres cool. (and in Rails, of course)</p>

<h3>Morning</h3>

<p><a href="http://oscal.quxx.info/talk/view/81">Embedded databases in browsers</a> turned out to be a bit more theoretical then I was in the mood for, but the <a href="http://freenode.net/#oscon">backchannel</a> was buzzing about <a href="http://www.erenkrantz.com/">Justin Erenkrantz&#8217;s</a> <a href="http://oscal.quxx.info/talk/view/89">mod<em>proxy</em>talk</a>, so I skipped over there.  Jackpot. <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html">mod_proxy has done gone and grown up</a>.  Elegant, serious, flexible, built in caching (with multiple backends), pluggable protocols.  Squid&#8217;s days as a reverse proxy are numbered.  Now if someone would just hurry up and package Apache 2.3 we could do without Pound. (I&#8217;ve misplace the slides link)</p>

<h3>Afternoon</h3>

<p><a href="http://www.tbray.org/ongoing/">Tim&#8217;s</a> <a href="http://oscal.quxx.info/talk/view/102">talk</a> on <a href="http://www.ietf.org/html.charters/atompub-charter.html">atompub</a> was good, if basic.  I&#8217;m still trying to figure out how to push it beyond basic publishing.  An interesting challenge, but later Tim pointed out that there are is some intentional wiggle room left in the spec, and one or two holes that you could drive a truck through with enough determination. (don&#8217;t think there was a slides link?)  Oddest new thought, we need a mime type for Markdown, or maybe a container type for the whole class of human readable markup.</p>

<p>Briefly met <a href="http://www.chaddickerson.com/">Chad</a> and <a href="http://jeremy.zawodny.com/blog/">Jeremy</a>, something I&#8217;ve failed to do at <a href="http://flickr.com">work</a>.</p>

<h3>On The Floor</h3>

<p>Wandered the exhibit hall a bit.   Blah.  Just not feeling the vendor love. No surprise, but its slams home what a commercial conference OSCON is, with very little of the raw delite and innovation of the smaller events.  All the good shirts cost $$ this year &#8212; wonder what that means for t-shirt driven development, and the <a href="http://laurat.blogs.com/random_ramblings/2006/07/oscon_day_1_the.html">t-shirt economic metric</a>.  Finally met <a href="http://www.wjgilmore.com/">Jason</a> from <a href="http://apress.com">Apress</a>.  They have a <a href="http://www.apress.com/book/bookDisplay.html?bID=10079">Flickr book</a> out in August.</p>

<h3>Too Many Codepoints</h3>

<p>Andrei&#8217;s <a href="http://oscal.quxx.info/talk/view/127">PHP6 and Unicode talk</a> was impressive, and overwhelming.  <a href="http://icu.sourceforge.net/">ICU</a> is being baked deep into the core string object.  An .ini setting to determine default behaviour, with Unicode (UTF-16) and binary string types.  Automatic stream oriented encodings from input/output/file/cli etc. Look for a preview release this Fall.  (Eclipse gets all the glory, but ICU is another amazing IBM open source contribution, worth checking out in its own right) I&#8217;m not sure anyone is thinking about the &#8220;How do I make charsets work across the PHP4, PHP5, PHP6 spectrum in an open source library?&#8221;  Doesn&#8217;t seem like that out there a question.  Looking forward to catching up with him back in Sunnyvale.</p>

<h3>Ruby Rodeo!</h3>

<p><a href="http://freegeek.org/">FreeGeeK</a> goes on being one of the coolest, most inspiring community projects anywhere.  Packing it to gills with hyper excited [Ruby hackers] certainly didn&#8217;t detract.  <a href="http://tech.rufy.com/">Lucas Carson&#8217;s</a> talk on <a href="http://segment7.net/projects/ruby/drb/">dRB/Rinda</a> was cool and inspiring.  Not as polished a delivery as some talks, but he coded up a server-client architecture for discovering primes and automatically deployed it to those of us in the audience running irb.  In about 20 minutes.   The hilight though was finally getting a chance to catch up with <a href="http://scottstuff.net/blog/">Scott</a> after all these years.
(Rinda may just be good old <a href="http://www.w3.org/Conferences/WWW4/Papers/174/">Linda</a> retreads, but Ruby is so damn <strong>slow</strong> that distributed computing is with the effort)</p>

<h3>Didn&#8217;t Make It</h3>

<p>Most disappointed to have missed in retrospect, <a href="http://kevinhenrikson.com/">Kevin Henrikson</a> <a href="http://oscal.quxx.info/talk/view/90">Ajax Optimization Techniques: Working with Large Ajax Applications</a>.  Got rave reviews.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/07/27/oscon-first-day-of-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brian McCallister: &#8220;So, ruby threads have issues. Multiprocessing, on the other hand, works great.&#8221;</title>
		<link>http://laughingmeme.org/2006/04/22/brian-mccallister-so-ruby-threads-have-issues-multiprocessing-on-the-other-hand-works-great/</link>
		<comments>http://laughingmeme.org/2006/04/22/brian-mccallister-so-ruby-threads-have-issues-multiprocessing-on-the-other-hand-works-great/#comments</comments>
		<pubDate>Sat, 22 Apr 2006 23:26:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[odeo]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[threads]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3332</guid>
		<description><![CDATA[This is the same basic structure the Odeo crawler uses (though thats a 3-tier system). The wisdom of Unix rears its hoary head once again. (and dRB is just neat!)]]></description>
			<content:encoded><![CDATA[<p>This is the same basic structure the Odeo crawler uses (though thats a 3-tier system).  The wisdom of Unix rears its hoary head once again.  (and dRB is just neat!)</p>
<p><a href='http://kasparov.skife.org/blog/src/ruby/drbunix-2.html'>http://kasparov.skife.org/blog/src/ruby/drbunix-2.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/04/22/brian-mccallister-so-ruby-threads-have-issues-multiprocessing-on-the-other-hand-works-great/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActiveRDF &#8211; RDF object mapper for Rails</title>
		<link>http://laughingmeme.org/2006/03/29/activerdf-rdf-object-mapper-for-rails/</link>
		<comments>http://laughingmeme.org/2006/03/29/activerdf-rdf-object-mapper-for-rails/#comments</comments>
		<pubDate>Wed, 29 Mar 2006 21:02:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[semweb]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3305</guid>
		<description><![CDATA[Everybody&#8217;s talking about it, anyone using it?]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jroller.com/page/obie?entry=finally_activerdf">Everybody&#8217;s</a> <a href="http://del.icio.us/url/be939a09f4c9bbc05b15ec2c29cc5894">talking</a> <a href="http://www.semergence.com/archives/2006/03/07/13/05/14/">about</a> it, anyone using it?</p>
<p><a href='http://activerdf.m3pe.org/'>http://activerdf.m3pe.org/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/03/29/activerdf-rdf-object-mapper-for-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What version of Ruby is this guy using?</title>
		<link>http://laughingmeme.org/2006/03/21/what-version-of-ruby-is-this-guy-using/</link>
		<comments>http://laughingmeme.org/2006/03/21/what-version-of-ruby-is-this-guy-using/#comments</comments>
		<pubDate>Wed, 22 Mar 2006 01:24:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3299</guid>
		<description><![CDATA[No regular expressions, no instance variables, no packages/namespacing, no public/private/protected!?!!? Clearly he got his hands on an unreleased alpha from 1987. But that doesn&#8217;t explain his concern that Ruby will drive up your electrical bill. It&#8217;s got to be a troll. I blame why.]]></description>
			<content:encoded><![CDATA[<p>No regular expressions, <strong>no instance variables</strong>, no packages/namespacing,  no public/private/protected!?!!?  Clearly he got his hands on an unreleased alpha from 1987.  But that doesn&#8217;t explain his concern that Ruby will drive up your electrical bill.  It&#8217;s <em>got</em> to be a troll.  I blame <a href="http://whytheluckystiff.net/">why</a>.</p>
<p><a href='http://duckdown.blogspot.com/2006/03/additional-thoughts-on-why-ruby-isnt.html#links'>http://duckdown.blogspot.com/2006/03/additional-thoughts-on-why-ruby-isnt.html#links</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/03/21/what-version-of-ruby-is-this-guy-using/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MeasureMap goes to Google, which means Ruby at Google!</title>
		<link>http://laughingmeme.org/2006/02/14/measuremap-goes-to-google-which-means-ruby-at-google/</link>
		<comments>http://laughingmeme.org/2006/02/14/measuremap-goes-to-google-which-means-ruby-at-google/#comments</comments>
		<pubDate>Wed, 15 Feb 2006 02:07:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[measuremap]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[stats]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3256</guid>
		<description><![CDATA[Beginning of a trend? (I&#8217;d say this will fix the MeasureMap scalability probs, except G hasn&#8217;t fixed the ones with Gurchin yet)]]></description>
			<content:encoded><![CDATA[<p>Beginning of a trend? (I&#8217;d say this will fix the MeasureMap scalability probs, except G hasn&#8217;t fixed the ones with Gurchin yet)</p>
<p><a href='http://googleblog.blogspot.com/2006/02/here-comes-measure-map.html'>http://googleblog.blogspot.com/2006/02/here-comes-measure-map.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/02/14/measuremap-goes-to-google-which-means-ruby-at-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boston.rb, Next Tuesday (Feb 7th)</title>
		<link>http://laughingmeme.org/2006/02/02/bostonrb-next-tuesday-feb-7th/</link>
		<comments>http://laughingmeme.org/2006/02/02/bostonrb-next-tuesday-feb-7th/#comments</comments>
		<pubDate>Thu, 02 Feb 2006 19:46:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[boston]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3234</guid>
		<description><![CDATA[After a rather long hiatus, Boston.rb is reasonably likely to meet Feb. 7th. Website seems to experiencing the dreaded 502 Bad Gateway error (umm, yeah, secrets out, Rails hosting is non-trivial), but jump on the list for more info. (or at least join in the confusion)]]></description>
			<content:encoded><![CDATA[<p>After a rather long hiatus, <a href="http://boston.rubygroup.org/">Boston.rb</a> is reasonably likely to meet Feb. 7th.  Website seems to experiencing the dreaded 502 Bad Gateway error (umm, yeah, secrets out, Rails hosting is non-trivial), but jump on the <a href="http://lists.rubygroup.org/mailman/listinfo/boston">list</a> for more info. (or at least join in the confusion)</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/02/02/bostonrb-next-tuesday-feb-7th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pirate Testing (Because Only Ninjas Write Unit Tests)</title>
		<link>http://laughingmeme.org/2006/01/30/pirate-testing-because-only-ninjas-write-unit-tests/</link>
		<comments>http://laughingmeme.org/2006/01/30/pirate-testing-because-only-ninjas-write-unit-tests/#comments</comments>
		<pubDate>Tue, 31 Jan 2006 06:54:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[ninja]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[pirate]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3229</guid>
		<description><![CDATA[I&#8217;ve got a new favorite development technique, &#8220;pirate testing&#8221;. I&#8217;ve used it on 3 recent projects, and it rocks. And while Sam might have meant it literally, I&#8217;ve found it perfectly describes the practice of shanghaiing another tool&#8217;s test suite to given your own TDD a jump start. (n.b.: May be harder in languages which [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://laughingmeme.org/img/ninja-pirate-thumb.png" align="right" style="padding: 0 10px;" />
I&#8217;ve got a new favorite development technique, <a href="http://intertwingly.net/blog/2005/10/30/Testing-FeedTools-Dynamically/">&#8220;pirate testing&#8221;</a>.  I&#8217;ve used it on 3 recent projects, and it rocks.  </p>

<p>And while Sam might have meant it <a href="http://www.intertwingly.net/blog/2004/10/08/Unbundling-Pirate-Tests">literally</a>, I&#8217;ve found it perfectly describes the practice of <a href="http://intertwingly.net/blog/2005/10/30/Testing-FeedTools-Dynamically/">shanghaiing another tool&#8217;s test suite</a> to given your own <acronym title="test driven development">TDD</acronym> a jump start.  </p>

<p>(n.b.: May be harder in languages which don&#8217;t allow reopening of classes. aka <a href="http://www.chadfowler.com/index.cgi/Computing/Programming/Ruby/TheVirtuesOfMonkeyPatching.rdoc,v">monkey patching</a>)
<br style="clear: both;" /></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/30/pirate-testing-because-only-ninjas-write-unit-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Quiz &#8211; Port a Library (#64)</title>
		<link>http://laughingmeme.org/2006/01/27/ruby-quiz-port-a-library-64/</link>
		<comments>http://laughingmeme.org/2006/01/27/ruby-quiz-port-a-library-64/#comments</comments>
		<pubDate>Fri, 27 Jan 2006 21:17:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3224</guid>
		<description><![CDATA[Excellent. Lack of libraries is Ruby&#8217;s weakness. Except that it already has plenty of quick, one-off, scattered, unevenly documented libraries, what it needs is CPAN. (and perlnewmod, and modules@perl.org)]]></description>
			<content:encoded><![CDATA[<p>Excellent.  Lack of libraries is Ruby&#8217;s weakness.   Except that it already has <em>plenty</em> of quick, one-off, scattered, unevenly documented libraries, what it needs is CPAN. (and perlnewmod, and  modules@perl.org)</p>
<p><a href='http://www.rubyquiz.com/quiz64.html'>http://www.rubyquiz.com/quiz64.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/27/ruby-quiz-port-a-library-64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zed Shaw: How to write a fast, light weight web server in Ruby (and a little C)</title>
		<link>http://laughingmeme.org/2006/01/24/zed-shaw-how-to-write-a-fast-light-weight-web-server-in-ruby-and-a-little-c/</link>
		<comments>http://laughingmeme.org/2006/01/24/zed-shaw-how-to-write-a-fast-light-weight-web-server-in-ruby-and-a-little-c/#comments</comments>
		<pubDate>Wed, 25 Jan 2006 01:38:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[threading]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3217</guid>
		<description><![CDATA[Sounds similar to JAWS (at least circa 1999). I&#8217;m going to take a look at Ragel]]></description>
			<content:encoded><![CDATA[<p>Sounds similar to <a href="http://www.dre.vanderbilt.edu/JAWS/">JAWS</a> (at least circa 1999).  I&#8217;m going to take a look at <a href="http://www.elude.ca/ragel/">Ragel</a></p>
<p><a href='http://groups.google.com/group/comp.lang.ruby/msg/63224b70c0167bdf'>http://groups.google.com/group/comp.lang.ruby/msg/63224b70c0167bdf</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/24/zed-shaw-how-to-write-a-fast-light-weight-web-server-in-ruby-and-a-little-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 things I hate about Ruby: slow, opaque evolution, documentation is sparse, shitty XML support.</title>
		<link>http://laughingmeme.org/2006/01/24/5-things-i-hate-about-ruby-slow-opaque-evolution-documentation-is-sparse-shitty-xml-support/</link>
		<comments>http://laughingmeme.org/2006/01/24/5-things-i-hate-about-ruby-slow-opaque-evolution-documentation-is-sparse-shitty-xml-support/#comments</comments>
		<pubDate>Tue, 24 Jan 2006 23:50:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3216</guid>
		<description><![CDATA[Took the words right out of my mouth. To which I&#8217;d add lousy libraries, and sub-par threading.]]></description>
			<content:encoded><![CDATA[<p>Took the words right out of my mouth.  To which I&#8217;d add lousy libraries, and sub-par threading.</p>
<p><a href='http://wonko.com/article/371'>http://wonko.com/article/371</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/24/5-things-i-hate-about-ruby-slow-opaque-evolution-documentation-is-sparse-shitty-xml-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucene in Action (and Ferret)</title>
		<link>http://laughingmeme.org/2006/01/23/lucene-in-action-and-ferret/</link>
		<comments>http://laughingmeme.org/2006/01/23/lucene-in-action-and-ferret/#comments</comments>
		<pubDate>Mon, 23 Jan 2006 21:08:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[ferret]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3208</guid>
		<description><![CDATA[I&#8217;ll admit I&#8217;m a freak, but I find a well written programming book as gripping as a well written novel, and have been known to sit down and read them cover to cover. (PofEAA was a page turner!) I&#8217;m about a third of the way through Lucene in Action, and it&#8217;s excellent: easy to read, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.manning.com/assets/products/hatcher2/hatcher2_cover150.jpg" align="right" style="padding: 10px;" />
I&#8217;ll admit I&#8217;m a freak, but I find a well written programming book as gripping as a well written novel, and have been known to sit down and read them cover to cover. (<a href="http://www.martinfowler.com/eaaCatalog/">PofEAA</a> was a page turner!)  I&#8217;m about a third of the way through <a href="http://lucenebook.com">Lucene in Action</a>, and it&#8217;s excellent: easy to read, compelling examples, deep insight, generally good stuff.  A good tech book leaves your mind percolating with the all cool new things you can do with your new knowledge, and LiA is that kind of book.</p>

<p>I&#8217;m reading it in the contexts of <a href="http://ferret.davebalmain.com/">Ferret</a> and while there are some minor API differences  (no <code>Hits</code> class in Ferret but it adds an <code>Index::Index</code> convenience class), for the most part the knowledge is directly applicable.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/23/lucene-in-action-and-ferret/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

