<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ennuyer.net</title>
	
	<link>http://blog.ennuyer.net</link>
	<description>Probably boring people I haven't even met yet.</description>
	<pubDate>Mon, 16 Nov 2009 11:05:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Ennuyernet" type="application/rss+xml" /><feedburner:emailServiceId>Ennuyernet</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>You can’t handle the HTML!</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/t2MN4b0Mh54/</link>
		<comments>http://blog.ennuyer.net/?p=2431#comments</comments>
		<pubDate>Mon, 16 Nov 2009 11:05:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2431</guid>
		<description><![CDATA[Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide. The &#60;center&#62; cannot hold it is too [...]]]></description>
			<content:encoded><![CDATA[<p>Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide. The &lt;center&gt; cannot hold it is too late.</p>
<p><a href="http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454" onclick="javascript:pageTracker._trackPageview('/outbound/article/stackoverflow.com');">RegEx match open tags except XHTML self-contained tags - Stack Overflow</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/zdfz7PW4_sIyLPKCdjrII4gjo4U/0/da"><img src="http://feedads.g.doubleclick.net/~a/zdfz7PW4_sIyLPKCdjrII4gjo4U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zdfz7PW4_sIyLPKCdjrII4gjo4U/1/da"><img src="http://feedads.g.doubleclick.net/~a/zdfz7PW4_sIyLPKCdjrII4gjo4U/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2431</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2431</feedburner:origLink></item>
		<item>
		<title>Rails Reading - November 15, 2009</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/N874N3uj0Uw/</link>
		<comments>http://blog.ennuyer.net/?p=2428#comments</comments>
		<pubDate>Sun, 15 Nov 2009 13:53:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Rails]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2428</guid>
		<description><![CDATA[
 Ruby in a Nutshell&#8230; - philip hallstrom 

This may not be very scientific, but perhaps this is why Ruby is such a wonderful language.

 Google Code Blog: Use compression to make the web faster 

Every day, more than 99 human years are wasted because of uncompressed content. Although support for compression is a standard [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/srboisvert/3931824355/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.flickr.com');" title="Parking Cube and Tree by srboisvert, on Flickr"><img src="http://farm4.static.flickr.com/3458/3931824355_a62cddf641.jpg" width="375" height="500" alt="Parking Cube and Tree" /></a></p>
<p><a href="http://pjkh.com/articles/2009/11/13/ruby-in-a-nutshell" onclick="javascript:pageTracker._trackPageview('/outbound/article/pjkh.com');"> Ruby in a Nutshell&#8230; - philip hallstrom </a><br />
<blockquote>
<p>This may not be very scientific, but perhaps this is why Ruby is such a wonderful language.</p>
</blockquote>
<p><a href="http://googlecode.blogspot.com/2009/11/use-compression-to-make-web-faster.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/googlecode.blogspot.com');"> Google Code Blog: Use compression to make the web faster </a><br />
<blockquote>
<p>Every day, more than 99 human years are wasted because of uncompressed content. Although support for compression is a standard feature of all modern browsers, there are still many cases in which users of these browsers do not receive compressed content. This wastes bandwidth and slows down users&#8217; interactions with web pages.</p>
</blockquote>
<p><a href="http://www.rubypulse.com/episode-0.18_backtracer.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rubypulse.com');"> RubyPulse :: Episode 0.18 - backtracer - &quot;Quality output when an exception is thrown and not caught in Ruby.&quot; - rdp </a><br />
<blockquote>
<p>Quality output when an exception is thrown and not caught in Ruby</p>
</blockquote>
<p><a href="http://www.informit.com/articles/article.aspx?p=1405542" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.informit.com');"> InformIT: Refactoring Ruby: An Interview with Jay Fields > Refactoring Ruby: An Interview with Jay Fields </a><br />
<blockquote>
<p>Neal Ford interviews Jay Fields about his new book with Shane Harvie and Martin Fowler, Refactoring: Ruby Edition, why they wrote the book around Ruby and not Dynamic Languages in general, and why he&#8217;d take a powerful language over a powerful tool anyday.</p>
</blockquote>
<p><a href="http://railslab.newrelic.com/2009/10/23/episode-20-on-the-edge-part-2" onclick="javascript:pageTracker._trackPageview('/outbound/article/railslab.newrelic.com');"> RailsLab .:. Scaling Rails - Episode #20 - On The Edge - Part 2 </a><br />
<blockquote>
<p>In this screencast we discover what typically causes Ruby server memory bloat, namely instantiating too many ActiveRecord objects. Thankfully there are several plugins which can help you detect when your application needs some help, and where your application is hurting the most. We start by taking a look at Rack-Bug, a toolbar which places all sorts of statistics about each requests at your fingertips. Next, we look at two libraries to help specifically track memory bloat; Memory Logic and Oink.</p>
</blockquote>
<p><a href="http://www.scribd.com/doc/15335785/What-Makes-Ruby-Go-An-Implementation-Primer" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.scribd.com');"> What Makes Ruby Go: An Implementation Primer </a><br />
<blockquote>
<p>A walkthrough of how common and popular Ruby features are actually implemented, with a focus on how they work, why they behave the way they do, and why they do or do not perfom well. If you&#8217;d like to better understand What Makes Ruby Go, this is the talk for you.</p>
</blockquote>
<p><a href="http://zef.me/2355/a-when-rails-fails-follow-up" onclick="javascript:pageTracker._trackPageview('/outbound/article/zef.me');"> A ‘When Rails Fails’ Follow-up « I am Zef </a><br />
<blockquote>
<p>About 18 hours ago I posted When Rails Fails, in which I showed what happens if you make simple mistakes in your Ruby on Rails code. The response was pretty massive. 30 comments were left on the post itself, and more discussion takes place on reddit and hacker news, plus I received some messages on twitter. Most memorable is this one.</p>
</blockquote>
<p><a href="http://www.engineyard.com/blog/2009/using-the-rubygems-bundler-for-your-app/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.engineyard.com');"> Using the Rubygems Bundler for Your App | Engine Yard Blog </a><br />
<blockquote>
<p>The new Rubygems bundler makes managing your application’s gem dependencies easy. And for applications with many components, it makes separating components’ dependencies easy too.</p>
<p>Let’s start off with a simple, two-part application. Part 1 is a Sinatra app that puts JSON-serialized messages into an AMQP queue. Part 2 is a daemon that consumes those messages.</p>
</blockquote>
<p><a href="http://www.slideshare.net/madrobby/extreme-javascript-performance?src=embed" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');"> Extreme JavaScript Performance </a><br />
<blockquote>
<p>You serve up your code gzipped. Your caches are properly configured. Your data (and scripts) are loaded on-demand. That&#8217;s awesome—so don&#8217;t stop there. Runtime is another source of slowdowns, and you can learn to conquer those, too.</p>
<p>Learn how to benchmark your code to isolate performance issues, and what to do when you find them. The techniques you&#8217;ll learn range from the normal (function inlining) to the extreme (unrolling loops).</p>
</blockquote>
<p><a href="http://www.igvita.com/2009/11/10/consuming-xmpp-pubsub-in-ruby/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.igvita.com');"> Consuming XMPP PubSub in Ruby - igvita.com </a><br />
<blockquote>
<p>Having personally struggled in the past with XMPP PubSub and Ruby, it&#8217;s been great to revisit the use case and find a new set of fully functional libraries. The event driven architecture which is enabled by technologies such as XMPP, AMQP, Comet, Webhooks and PubsubHubbub are increasingly becoming the staple of many web applications, and for a good reason. If you haven&#8217;t already, grab switchboard or blather and take XMPP for a test drive.</p>
</blockquote>
<p><a href="http://paulbarry.com/articles/2009/11/10/performance-testing-with-httperf" onclick="javascript:pageTracker._trackPageview('/outbound/article/paulbarry.com');"> PaulBarry.com - Performance Testing with Httperf </a><br />
<blockquote>
<p>If you need to do some performance testing of your web app, one tool that is pretty easy to use is httperf. I recommend watching the Peepcode screencast on httperf to get some good tips on how to doing performance testing. There is also some reading material on httperf created by Ted Bullock available. These are great resources, but here&#8217;s the quick and dirty on how to get httperf going.</p>
</blockquote>
<p><a href="http://www.vitarara.org/cms/refactoring_introduce_local_extension_in_ruby" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.vitarara.org');"> Refactoring: Introduce Local Extension in Ruby | Vita Rara: A Life Uncommon </a><br />
<blockquote>
<p>I was recently reading Martin Fowler&#8217;s Refactoring. While I was reading Introduce Local Extension (p. 164) all I could think of was how simple it is to implement in Ruby.</p>
<p>Motivation</p>
<p>As Fowler says in the motivation section writers of classes and libraries are not omniscient. Inevitably some class that you&#8217;re using will be missing some feature you want. Using Introduce Local Extension you can add that additional functionality when you need it.</p>
<p>In a statically typed language, like Java, this refactoring would involve creating either a wrapping class or a descendent of the original class. In Ruby we will accomplish the same thing using a mixin.</p>
</blockquote>
<p><a href="http://vinsol.com/blog/2009/11/12/10-little-known-ways-to-find-a-ruby-on-rails-team-for-your-next-project/" onclick="javascript:pageTracker._trackPageview('/outbound/article/vinsol.com');"> 10 little known ways to find a ruby on rails team for your next project | Vinsol </a><br />
<blockquote>
<p>Everytime we talk to our clients, we find that they are not aware of lot of options through which they can find a good rails developer. Usually clients go to odesk and other freelance websites to find rails developers. Following are  10 more ways to find  rails company/developer for your next dream project :</p>
</blockquote>
<p><a href="http://litanyagainstfear.com/blog/2009/11/10/load-rails-conditionally-with-rack/" onclick="javascript:pageTracker._trackPageview('/outbound/article/litanyagainstfear.com');"> litany against fear ¤ by nick quaranto ¤ Load Rails conditionally with Rack </a><br />
<blockquote>
<p>One of the great things about Gemcutter is that it’s using Sinatra via Rails Metal to serve up the gems. Recently, I had to run some long migrations (~10 minutes) and I’m sure we’ll have some more in the future. Since the gem server is decoupled from the Rails app, some clever Rack loading now allows us to continue to serve gems even when we’re down for maintenance.</p>
</blockquote>
<p><a href="http://www.rubyinside.com/ruby-email-library-2782.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rubyinside.com');"> Mail: An All New Ruby E-mail Library </a><br />
<blockquote>
<p>To date, the main ways to send e-mails from Ruby have been Net::SMTP, TMail, and Rails&#8217; ActionMailer (which uses TMail). Now, however, there&#8217;s a fourth option, the simply named &#8220;mail&#8221; by Mikel Lindsaar.</p>
</blockquote>
<p><a href="http://barkingiguana.com/2009/11/11/returning-explicitly-is-slower?source=feed" onclick="javascript:pageTracker._trackPageview('/outbound/article/barkingiguana.com');"> Barking Iguana: Returning explicitly is slower </a><br />
<blockquote>
<p>My main concern about returning explicitly is readability. It&#8217;s a very subjective thing, but in general whenever I see an unnecessary return statement my internal WTF counter increments.</p>
<p>Less subjective though, it has been pointed out that returning explicitly is slower.</p>
</blockquote>
<p><a href="http://flowingdata.com/2009/11/12/how-to-make-a-us-county-thematic-map-using-free-tools/" onclick="javascript:pageTracker._trackPageview('/outbound/article/flowingdata.com');"> How to Make a US County Thematic Map Using Free Tools | FlowingData </a><br />
<blockquote>
<p>There are about a million ways to make a choropleth map. You know, the maps that color regions by some metric. The problem is that a lot of solutions require expensive software or have a high learning curve&#8230;or both. What if you just want a simple map without all the GIS stuff? In this post, I&#8217;ll show you how to make a county-specific choropleth map using only free tools.</p>
</blockquote>
<p><a href="http://pivotallabs.com/users/jsusser/blog/articles/1059-absolute-dates-make-tests-brittle" onclick="javascript:pageTracker._trackPageview('/outbound/article/pivotallabs.com');"> and another thing&#8230; - absolute dates make tests brittle </a><br />
<blockquote>
<p>Plan A is to create your test data with dates and times relative to when the tests are being run. You can do that in yaml fixtures by embedding ruby in the yaml:</p>
<p>published_at: <%= 2.days.ago.to_s(:db) %></p>
<p>created_at:   <%= 3.days.ago.to_s(:db) %></p>
<p>updated_at:   <%= 2.days.ago.to_s(:db) %></p>
</blockquote>
<p><a href="http://barkingiguana.com/2009/11/10/the-stack-trace-is-precious?source=feed" onclick="javascript:pageTracker._trackPageview('/outbound/article/barkingiguana.com');"> Barking Iguana: The stack trace is precious! </a><br />
<blockquote>
<p>The stack trace is one of the most valuable pieces of information you can have when trying to debug a problem. It tells you what line of code was being run when an error was thrown and gives you an idea of the execution path that lead to that line of code being run.</p>
<p>Quick plea then. Please don&#8217;t do this:</p>
<p>def foo</p>
<p>  do_something</p>
<p>rescue => e</p>
<p>  puts &#8220;Problem: #{e}&#8221;</p>
<p>  raise e</p>
<p>end</p>
</blockquote>
<p><a href="http://yehudakatz.com/2009/11/12/better-ruby-idioms/" onclick="javascript:pageTracker._trackPageview('/outbound/article/yehudakatz.com');"> Better Ruby Idioms « Katz Got Your Tongue? </a><br />
<blockquote>
<p>Carl and I have been working on the plugins system over the past few days. As part of that process, we read through the Rails Plugin Guide. While reading through the guide, we noticed a number of idioms presented in the guide that are serious overkill for the task at hand.</p>
</blockquote>
<p><a href="http://github.com/myronmarston/mail_safe" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');"> myronmarston&#8217;s mail_safe at master - GitHub </a><br />
<blockquote>
<p>Keep your ActionMailer emails from escaping into the wild during development</p>
</blockquote>
<p><a href="http://ruby5.envylabs.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/ruby5.envylabs.com');"> Ruby5 </a><br />
<blockquote>
<p>Heard of Redis? In this episode we cover how you can use it in your application and how GitHub uses it for Resque. Heroku Asset Packager, mail_safe, and JSBlogger are also covered, along with why you should use conditionals rather than exceptions.</p>
</blockquote>
<p><a href="http://www.digitalhobbit.com/2009/11/08/building-a-twitter-filter-with-sinatra-redis-and-tweetstream/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.digitalhobbit.com');"> Building a Twitter Filter With Sinatra, Redis, and TweetStream @ DigitalHobbit </a><br />
<blockquote>
<p>The app I came up with is Twatcher, so go check it out to get an idea of what I’m talking about. It (admittedly very crudely) identifies funny tweets by looking for tweets that contain the word “lol”. It then renders matching tweets using a simple UI not unlike that of twitter.com itself, and visually highlights the word “lol” in each tweet for emphasis. Perhaps most importantly, the app uses AJAX to periodically (currently every 10 seconds) pull in new tweets.</p>
<p>Architecture</p>
<p>In the remainder of this post, I will describe the architecture of Twatcher, along with the rationale behind it. I will also share some code snippets that should allow you to follow along and build your own Twitter filter app.</p>
</blockquote>
<p><a href="http://blog.heroku.com/archives/2009/11/9/tech_sending_email_with_gmail/" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.heroku.com');"> Heroku | Tech: Sending email with Gmail </a><br />
<blockquote>
<p>These days, it seems like almost all apps need to send email. And everyone has a gmail account. So why not have your app send email through Gmail? It’s fairly easy with just a few steps.</p>
</blockquote>
<p><a href="http://www.rallydev.com/engblog/2009/09/16/git-fixing-a-defect/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rallydev.com');"> Git – Fixing a Defect » Engineering Blog </a><br />
<blockquote>
<p>It’s Tuesday morning and a bug has just been found in production. We were about to start working on a user story, but we need to switch gears and fix this bug.</p>
</blockquote>
<p><a href="http://www.rackspacecloud.com/blog/2009/11/09/nosql-ecosystem/#" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rackspacecloud.com');"> Rackspace Cloud Computing &#038; Hosting |  NoSQL Ecosystem </a><br />
<blockquote>
<p>The fundamental problem is that relational databases cannot handle many modern workloads.  There are three specific problem areas: scaling out to data sets like Digg’s (3 TB for green badges) or Facebook’s (50 TB for inbox search) or eBay’s (2 PB overall), per-server performance, and rigid schema design.</p>
</blockquote>
<p><a href="http://merbist.com/2009/11/09/the-ruby-revolution-is-over/" onclick="javascript:pageTracker._trackPageview('/outbound/article/merbist.com');"> The Ruby revolution is over | Merbist </a><br />
<blockquote>
<p>Yes, Ruby made it’s revolution and the world “has changed”. But a real movement doesn’t die after its revolution, that’s actually when it has to be strong and defend its values.</p>
<p>This doesn’t mean that Ruby is dead or that Rails is “passé”. To the contrary, Ruby imposed itself as a new valued and respected player, a new standard if you will.</p>
<p>Ruby is certainly not the “new kid in the block”anymore nor the “popular kid”, however lots of older kids seem to want to have her on their team. (.NET, Java, Objective-C can all use Ruby)</p>
</blockquote>
<p><a href="http://css-tricks.com/what-beautiful-html-code-looks-like/" onclick="javascript:pageTracker._trackPageview('/outbound/article/css-tricks.com');"> What Beautiful HTML Code Looks Like | CSS-Tricks </a><br />
<blockquote>
</blockquote>
<p><a href="http://tomayko.com/writings/things-caches-do" onclick="javascript:pageTracker._trackPageview('/outbound/article/tomayko.com');"> Things Caches Do </a><br />
<blockquote>
<p>There are different kinds of HTTP caches that are useful for different kinds of things. I want to talk about gateway caches — or, “reverse proxy caches” — and consider their effects on modern, dynamic web application design.</p>
</blockquote>
<p><a href="http://www.hackido.com/2009/11/install-ruby-on-rails-on-ubuntu-karmic.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.hackido.com');"> Hackido: Install Ruby on Rails on Ubuntu Karmic Koala 9.10 </a><br />
<blockquote>
<p>If you&#8217;re running Ubuntu 9.10 and want to install Ruby on Rails I&#8217;ve put together a quick tutorial for you. Not tremendously much has changed since the last tutorial for Jaunty Jackalope. Unicorn is out and while I think it&#8217;s nifty, I&#8217;m going to wait a little while before playing with it. For now my money is still on Phusion Passenger as being the right tool for the job. If all that seems fine, let&#8217;s get to the details.</p>
</blockquote>
<p><a href="http://mjtsai.com/blog/2002/11/25/perl_vs_python_vs_ruby/" onclick="javascript:pageTracker._trackPageview('/outbound/article/mjtsai.com');"> Michael Tsai - Blog - Perl vs. Python vs. Ruby </a><br />
<blockquote>
<p>I’m evaluating Python and Ruby as replacements for Perl. I’ve been using Perl for several years and am very comfortable with it, although I’m definitely not an expert. Perl is a powerful language, but I think it’s ugly and encourages writing bad code, so I want to get rid of it. Python and Ruby both come with Mac OS X 10.2, both have BBEdit language modules, and both promise a cleaner approach to scripting. Over the past few weeks I read the Python Tutorial and the non-reference parts of Programming Ruby, however as of this afternoon I’d not written any Python or Ruby code yet.</p>
</blockquote>
<p><a href="http://www.leftbrained.co.uk/articles/show/has-web-fallback" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.leftbrained.co.uk');"> has_web_fallback :: Leftbrained </a><br />
<blockquote>
<p>f you look at any HTML formatted mail-shot it&#8217;ll usually contain the legend &#8220;To view this online, click here&#8221;. The main reason for this being that most email tools suck at rendering HTML. Therefore, it makes sense to give the recipient the chance to view the message in their browser. To do this, the originating system can&#8217;t fire-and-forget email; it needs to cache a version for viewing online.</p>
<p>Has_web_fallback gives you transparent, easy caching of ActionMailer HTML emails.</p>
</blockquote>
<p><a href="http://railstips.org/2009/11/8/you-re-an-idiot-for-not-using-heroku" onclick="javascript:pageTracker._trackPageview('/outbound/article/railstips.org');"> You&#8217;re An Idiot For Not Using Heroku // RailsTips by John Nunemaker </a><br />
<blockquote>
<p>It is true. You are. Go try it now. That is an order. I can wait for you to come back and finish reading this post. I could end the post now, but I suppose I’ll go on and tell you a bit about my experience with Heroku yesterday.</p>
</blockquote>
<p><a href="http://danopia.net/posts/12" onclick="javascript:pageTracker._trackPageview('/outbound/article/danopia.net');"> Blog post - danopia </a><br />
<blockquote>
<p>Ruby on Sails is a project that I started about two weeks ago (10/19/2009). It is a homebrew Google Wave provider. The short history of the project has had many setbacks, including IRB dropping characters when I paste in packets, me having to write a custom Ruby ProtoBuffer parser, and a few rewrites of old code that already was old and badly designed (in a week-old project that was written from scratch!).</p>
</blockquote>
<p><a href="http://almosteffortless.com/2009/11/05/no-www-rack-middleware/" onclick="javascript:pageTracker._trackPageview('/outbound/article/almosteffortless.com');"> almost effortless » no-www Rack Middleware </a><br />
<blockquote>
<p>I&#8217;m pleased to present my submission to the CodeRack contest: no-www.</p>
<p>This middleware catches requests that begin with “www” and redirects them to the more reasonable &#8220;non-www&#8221; address.</p>
</blockquote>
<p><a href="http://effectif.com/ruby/cost-of-exception-handling" onclick="javascript:pageTracker._trackPageview('/outbound/article/effectif.com');"> Benchmarking Ruby exception handling - Ruby </a><br />
<blockquote>
<p>Which is better, handling an exception or explicitly checking to see whether or not your code is going to break? The answer is “it depends”. On the one hand exception handling allows us to write more legible code (often summed up by the saying “it’s easier to ask forgiveness than permission”). On the other, handling an exception is often a costly operation; it can be faster to “look before you leap”.</p>
<p>But just how costly is exception handling? Happily it’s very easy to find out. I was working away with my pair recently when this very question came up. We were calculating a ratio between two numbers, but wanted to modify the calculation so that if the denominator was 0, we’d use 0.5 instead.</p>
</blockquote>
<p><a href="http://ozmm.org/posts/rake_start.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/ozmm.org');"> rake start </a><br />
<blockquote>
<p>I&#8217;m working on a Sinatra app that uses MongoDB. I&#8217;d love to start both Sinatra and MongoDB at the same time, then kill them at the same time, too. Luckily we can use Rake&#8217;s multitask for this.</p>
</blockquote>
<p><a href="http://www.rallydev.com/engblog/2009/09/15/git-working-on-a-user-story/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rallydev.com');"> Git – Working on a User Story » Engineering Blog </a><br />
<blockquote>
<p>We recently started using Git as our version control system at Rally. Switching to Git has been a learning experience for many of us. I would like to share our experiences using Git in a team environment.</p>
</blockquote>
<p><a href="http://www.yuiblog.com/blog/2009/11/05/video-adams-yuiconf2009/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.yuiblog.com');"> YUI Theater — Ron Adams: “Automated Integration Testing with YUI Test, Selenium and Hudson” » Yahoo! User Interface Blog (YUIBlog) </a><br />
<blockquote>
<p>Ron Adams is a Yahoo! engineer in Southern California who has worked on a variety of Yahoo!’s media products including OMG and who now works for Yahoo! Sports. Ron has been working with colleagues in QA to automate the exercise of JavaScript unit tests, and his YUICONF 2009 session was entitled “Automated Integration Testing with YUI Test, Selenium and Hudson.” As the title suggests, he outlines the process he’s developed using YUI Test for JavaScript unit tests, Hudson as a CI/build tool for tracking and monitoring results, and Selenium as the tool to exercise the JS unit tests in the browser.</p>
</blockquote>
<p><a href="http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/googlecode.blogspot.com');"> Google Code Blog: Introducing Closure Tools </a><br />
<blockquote>
<p>Millions of Google users worldwide use JavaScript-intensive applications such as Gmail, Google Docs, and Google Maps. Like developers everywhere, Googlers want great web apps to be easier to create, so we&#8217;ve built many tools to help us develop these (and many other) apps. We&#8217;re happy to announce the open sourcing of these tools, and proud to make them available to the web development community.</p>
</blockquote>
<p><a href="http://highscalability.com/blog/2009/11/5/a-yes-for-a-nosql-taxonomy.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/highscalability.com');"> High Scalability - High Scalability - A Yes for a NoSQL Taxonomy </a><br />
<blockquote>
<p>NorthScale&#8217;s Steven Yen in his highly entertaining NoSQL is a Horseless Carriage presentation has come up with a NoSQL taxonomy that thankfully focuses a little more on what NoSQL is, than what it isn&#8217;t</p>
</blockquote>
<p><a href="http://paulbarry.com/articles/2009/11/05/how-to-write-a-spelling-corrector-in-ruby" onclick="javascript:pageTracker._trackPageview('/outbound/article/paulbarry.com');"> PaulBarry.com - How To Write A Spelling Corrector In Ruby </a><br />
<blockquote>
<p>If you haven&#8217;t seen it before, Peter Norvig has a spelling corrector that is written in just 21 lines of Python code (not counting blank lines and the import). He also lists a few other implementations in other languages, include one in Ruby. The Ruby one was listed as 34 lines. I was surprised that it was that many lines more in Ruby, so I wanted to give it a try.</p>
</blockquote>
<p><a href="http://andyjeffries.co.uk/articles/debug-level-logging-for-a-single-rails-production-request" onclick="javascript:pageTracker._trackPageview('/outbound/article/andyjeffries.co.uk');"> Debug-level Logging for a Single Rails Production Request : Andy Jeffries : Ruby on Rails, MySQL and jQuery Developer </a><br />
<blockquote>
<p>We have a large Rails site live which runs with production level logging. Occasionally there is a problem where debug-level logs would help us track down a problem quickly, but we can’t restart one of the Rails servers to have logs put in debug mode for a single request (and don’t want to run in debug mode for long as the servers are heavily used).</p>
<p>There is also the problem that Rails log entries often get interleaved with each other, although this is a partially solved problem with a Rails log analysis tool I wrote. However, for our purposes it would be nice to have just the log output for the single request we want to look at.</p>
<p>The best solution is to change the log level in Rails’ console and then make a single fake request.</p>
</blockquote>
<p><a href="http://blog.brightbox.co.uk/posts/queues-and-callbacks" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.brightbox.co.uk');"> Brightbox Blog - Ruby on Rails Hosting – Queues and Callbacks </a><br />
<blockquote>
<p>A major part of our work behind the scenes is about improving our internal processes and, whenever possible, automating tasks. To this end we have a number of systems that need to communicate with each other.</p>
<p>The Control Panel that you may be familiar with uses Delayed Job. This is a Rails-specific gem that uses the database as a queue, with a nicely packaged worker process that handles messages as they arrive. Because the Control Panel only ever talks to Rails from Rails, this worked extremely well.</p>
<p>However, our other systems were not homogenous – there are a number of different interfaces that needed to be instructed at various times and across various machines, and Delayed Job didn’t really fit the bill.</p>
</blockquote>
<p><a href="http://hoth.entp.com/2009/10/27/postmortem-of-tender-issues" onclick="javascript:pageTracker._trackPageview('/outbound/article/hoth.entp.com');"> entp hoth blog Postmortem of Tender issues </a><br />
<blockquote>
<p>I love these post mortems of server issues.  Gives you an idea of how it is done.</p>
</blockquote>
<p><a href="http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platform-in-ruby/" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.emptyway.com');"> Proper way to detect Windows platform in Ruby - The Empty Way </a><br />
<blockquote>
<p>require ‘rbconfig’</p>
<p>WINDOZE = Config::CONFIG[‘host_os’] =~ /mswin|mingw/</p>
</blockquote>
<p><a href="http://www.railsinside.com/plugins/351-devise-rails-authentication.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.railsinside.com');"> Devise: Flexible Authentication for Pragmatic Rails Developers </a><br />
<blockquote>
<p>Devise (GitHub repo) is a new Rails authentication library/engine developed by Brazilian development company Plataforma. It&#8217;s pitched as a &#8220;flexible authentication solution for Rails.&#8221; Devise builds upon Warden, a general Rack authentication middleware, while offering Rails developers a flexible but easy to use front end.</p>
</blockquote>
<p><a href="http://asemanfar.com/Bluepill:-a-new-process-monitoring-tool" onclick="javascript:pageTracker._trackPageview('/outbound/article/asemanfar.com');"> asemanfar - Bluepill: a new process monitoring tool </a><br />
<blockquote>
<p>Over the past several weeks, two co-workers and I wrote a simple process monitoring tool: bluepill, because it keeps things up. Bluepill replaces the existing process monitoring tool we were using which we had some issues with.</p>
</blockquote>
<p><a href="http://skillsmatter.com/podcast/ajax-ria/enumerators" onclick="javascript:pageTracker._trackPageview('/outbound/article/skillsmatter.com');"> Skills Matter : London Ruby User Group:Thinking functionally </a><br />
<blockquote>
<p>During our last meeting, Tom was surprised by how many people (both Ruby newbies and &#8220;Rails not Ruby&#8221; programmers) were asking questions about Enumerable, e.g. what map/inject/zip etc do. Tom has massive functional chops and is going to give a talk that starts with this and then expands into a rant about programming in a functional style</p>
</blockquote>
<p><a href="http://www.intridea.com/posts/rails-quick-tip-readable-conditional-validations" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.intridea.com');"> Quick Tip: Readable Conditional Validations in Rails - Intridea Development Blog </a><br />
<blockquote>
<p>This is something that many may already use as a best practice, but if not it’s something simple and convenient to add to your repertoire. Sometimes you may have a model that requires additional information if a certain condition is met. For example, I may require a user to add more information about themselves if they wish to be listed publicly, whereas I would not if they do not wish to be listed. By combining ActiveSupport’s Object#with_options and ActiveRecord’s conditional validations, we can implement this behavior in a straightforward and readable manner (assuming here that there is a boolean field called “listed” in the database that is exposed as a checkbox or similar to the user):</p>
</blockquote>
<p><a href="http://yehudakatz.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/yehudakatz.com');"> Katz Got Your Tongue? </a><br />
<blockquote>
<p>As you might have heard, Carl and I released a new project that allows you to bundle your gems (both pure-ruby and native) with your application. Before I get into the process for using the bundler today, I’d like to go into the design goals of the project.</p>
</blockquote>
<p><a href="http://www.slideshare.net/ihower/rails-best-practices" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');"> Rails Best Practices </a><br />
<blockquote>
</blockquote>
<p><a href="http://drnicwilliams.com/2009/11/04/hacking-someones-gem-with-github-and-gemcutter/" onclick="javascript:pageTracker._trackPageview('/outbound/article/drnicwilliams.com');"> Dr Nic ’s Hacking someone’s gem with github and gemcutter </a><br />
<blockquote>
<p>Ever used a rubygem, found a bug, and just wanted to quickly bust out the big guns and fix it quickly?</p>
<p>The gem command doesn’t come packed with a way to find the original source repository for a gem. At best, most gems at least come bundled with the complete source, tests and documentation. Some gems don’t. Fair enough, since having access to the complete source via the gem still doesn’t allow you to fix a bug and share it with the world.</p>
<p>For that you access to the repo, a quick way to fork it, and a post-github way to share a gem version from yours truly.</p>
</blockquote>
<p><a href="http://www.simonecarletti.com/blog/2009/10/actionmailer-and-host-value/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.simonecarletti.com');"> How to pass request context to ActionMailer and supply the :host value to url_for – Simone Carletti&#8217;s Blog </a><br />
<blockquote>
<p>The epic battle me against ActionMailer has finally come to an end and I’m quite satisfied with the final result.</p>
<p>Have you ever tried to generate URLs within an ActionMailer template? If you did at least once, then you are probably familiar with the following error:</p>
<p>ActionView::TemplateError (Missing host to link to! Please provide :host parameter or set default_url_options[:host])</p>
<p>This happens because ActionMailer instance doesn’t have any context about the incoming request so you’ll need to provide the :host, :controller, and :action:.</p>
</blockquote>
<p><a href="http://www.sapphiresteel.com/Who-Needs-IronRuby" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.sapphiresteel.com');"> SapphireSteel :: Who Needs IronRuby? </a><br />
<blockquote>
<p>This provides us with a dilemma. We are the only people who have a Visual Studio IDE for IronRuby. In its current form it is a pretty simple IDE but it already has the foundations upon which we could, in principle, build the full range of VS tools - debugging, IntelliSense and the rest, as we have done for our standard Ruby IDE, Ruby In Steel. But, at present, we do not know if doing so would be a good use of our time. Over the past couple of years, we have had very few requests for extended IronRuby support. Will that change when version 1.0 of IronRuby is released? Or will IronRuby find itself in that difficult position of being too-Microsofty for Ruby developers and not Microsofty enough for .NET developers?</p>
</blockquote>
<p><a href="http://github.com/blog/542-introducing-resque" onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');"> Introducing Resque - GitHub </a><br />
<blockquote>
<p>Resque is our Redis-backed library for creating background jobs, placing those jobs on multiple queues, and processing them later.</p>
<p>Background jobs can be any Ruby class or module that responds to perform. Your existing classes can easily be converted to background jobs or you can create new classes specifically to do work. Or, you can do both.</p>
</blockquote>
<p><a href="http://drnicwilliams.com/2009/11/03/first-look-at-rails-3-0-pre/" onclick="javascript:pageTracker._trackPageview('/outbound/article/drnicwilliams.com');"> Dr Nic ’s First look at rails 3.0.pre </a><br />
<blockquote>
<p>Today I had my first look at rails 3.0.pre and below are the sequence of steps I had to take to create a rails 3.0.pre application, and get it’s generators to work.</p>
<p>Why was I looking at the top-secret, yet open-source Rails 3.0? Their generators are being migrated over to Thor and I wanted to see them in action. I was thinking I might migrate newgem to use Thor too.</p>
</blockquote>
<p><a href="http://manwithcode.com/ruby-programming-tutorials/" onclick="javascript:pageTracker._trackPageview('/outbound/article/manwithcode.com');"> Ruby Programming Tutorials | Man With Code </a><br />
<blockquote>
<p>Ruby Programming Tutorials</p>
<p>This is the outline for the Ruby Programming tutorial series. Each link is a link to the video, which has the full transcript and source code below it. Enjoy!</p>
</blockquote>
<p><a href="http://limelight.8thlight.com/main/sparkle" onclick="javascript:pageTracker._trackPageview('/outbound/article/limelight.8thlight.com');"> Limelight </a><br />
<blockquote>
<p>Unlike many other frameworks, Limelight applications are built using only one language: Ruby. Every aspect, from the screen structure and styling, to control logic and business modeling, is written in Ruby.</p>
</blockquote>

<p><a href="http://feedads.g.doubleclick.net/~a/QUWZ5XwZgw0KdJdOuL_2pYlmipg/0/da"><img src="http://feedads.g.doubleclick.net/~a/QUWZ5XwZgw0KdJdOuL_2pYlmipg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QUWZ5XwZgw0KdJdOuL_2pYlmipg/1/da"><img src="http://feedads.g.doubleclick.net/~a/QUWZ5XwZgw0KdJdOuL_2pYlmipg/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2428</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2428</feedburner:origLink></item>
		<item>
		<title>Launching Ruby on Rails projects: A checklist</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/JpMYdGCD15c/</link>
		<comments>http://blog.ennuyer.net/?p=2425#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:07:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[deployment]]></category>

		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2425</guid>
		<description><![CDATA[Launching Ruby on Rails projects: A checklist
View more documents from Robby Russell.

Launching Ruby on Rails projects: A checklist.

Video of presentation on Skills Matter   Horrible sound - beware of speaker trashing feedback at around 24-25 minutes.
]]></description>
			<content:encoded><![CDATA[<div id="__ss_1770095" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Launching Ruby on Rails projects: A checklist" href="http://www.slideshare.net/robbyrussell/launching-ruby-on-rails-projects-a-checklist" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');">Launching Ruby on Rails projects: A checklist</a><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=launching-rails-apps-090726062406-phpapp02&amp;rel=0&amp;stripped_title=launching-ruby-on-rails-projects-a-checklist" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=launching-rails-apps-090726062406-phpapp02&amp;rel=0&amp;stripped_title=launching-ruby-on-rails-projects-a-checklist" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/robbyrussell" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');">Robby Russell</a>.</div>
</div>
<p><a href="http://www.slideshare.net/robbyrussell/launching-ruby-on-rails-projects-a-checklist" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');">Launching Ruby on Rails projects: A checklist</a>.<br />
<a href="http://skillsmatter.com/podcast/ajax-ria/robby-russell-launching-ruby-on-rails-projects"><br />
Video of presentation on Skills Matter </a>  Horrible sound - beware of speaker trashing feedback at around 24-25 minutes.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/U76zu3kjwlo1etYLIHtS2gOrLL4/0/da"><img src="http://feedads.g.doubleclick.net/~a/U76zu3kjwlo1etYLIHtS2gOrLL4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/U76zu3kjwlo1etYLIHtS2gOrLL4/1/da"><img src="http://feedads.g.doubleclick.net/~a/U76zu3kjwlo1etYLIHtS2gOrLL4/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2425</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2425</feedburner:origLink></item>
		<item>
		<title>The Beatles Never Broke Up…</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/w49EvPyiY0I/</link>
		<comments>http://blog.ennuyer.net/?p=2421#comments</comments>
		<pubDate>Tue, 10 Nov 2009 10:51:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entertainment]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2421</guid>
		<description><![CDATA[On Sept. 9, 2009 I experienced something that I still am having trouble believing happened to me.
I came into the possession of a cassette tape containing a Beatles album that was never released.
The Beatles Never Broke Up&#8230;.
Amusing mashup of beatles&#8217; solo albums (70MB zip of 11 mp3 files) with some alternate universe scifi explanation.
]]></description>
			<content:encoded><![CDATA[<blockquote><p>On Sept. 9, 2009 I experienced something that I still am having trouble believing happened to me.</p>
<p>I came into the possession of a cassette tape containing a Beatles album that was never released.</p>
<p><a href="http://thebeatlesneverbrokeup.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/thebeatlesneverbrokeup.com');">The Beatles Never Broke Up&#8230;</a>.</p></blockquote>
<p>Amusing mashup of beatles&#8217; solo albums (70MB zip of 11 mp3 files) with some alternate universe scifi explanation.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/CkTCHMS-mKzePyzpBy8O2lQsTLU/0/da"><img src="http://feedads.g.doubleclick.net/~a/CkTCHMS-mKzePyzpBy8O2lQsTLU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/CkTCHMS-mKzePyzpBy8O2lQsTLU/1/da"><img src="http://feedads.g.doubleclick.net/~a/CkTCHMS-mKzePyzpBy8O2lQsTLU/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2421</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2421</feedburner:origLink></item>
		<item>
		<title>This American Life</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/VTYGKtzwvUI/</link>
		<comments>http://blog.ennuyer.net/?p=2419#comments</comments>
		<pubDate>Tue, 10 Nov 2009 10:47:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entertainment]]></category>

		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2419</guid>
		<description><![CDATA[394: Bait and Switch
Stories about people who take the bait, and those who place it. Including the story of man who tries to investigate a neighborhood crime and ends up in jail himself. And the story of the pitfalls of luring customers to a make-believe pizza delivery place.
This American Life.
]]></description>
			<content:encoded><![CDATA[<p>394: Bait and Switch</p>
<p>Stories about people who take the bait, and those who place it. Including the story of man who tries to investigate a neighborhood crime and ends up in jail himself. And the story of the pitfalls of luring customers to a make-believe pizza delivery place.</p>
<p><a href="http://www.thisamericanlife.org/Radio_Episode.aspx?episode=394" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.thisamericanlife.org');">This American Life</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/o4beP7IpmoHWzuIRc7zmd4u1b60/0/da"><img src="http://feedads.g.doubleclick.net/~a/o4beP7IpmoHWzuIRc7zmd4u1b60/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/o4beP7IpmoHWzuIRc7zmd4u1b60/1/da"><img src="http://feedads.g.doubleclick.net/~a/o4beP7IpmoHWzuIRc7zmd4u1b60/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2419</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2419</feedburner:origLink></item>
		<item>
		<title>Video Session : The Twilight Sad : LaundroMatinee</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/CN-3m0TXls0/</link>
		<comments>http://blog.ennuyer.net/?p=2417#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:35:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entertainment]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2417</guid>
		<description><![CDATA[
The Twilight Sad - I Became A Prostitute from LaundroMatinee on Vimeo.

]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="220"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7147141&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7147141&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="220"></embed></object>
<p><a href="http://vimeo.com/7147141" onclick="javascript:pageTracker._trackPageview('/outbound/article/vimeo.com');">The Twilight Sad - I Became A Prostitute</a> from <a href="http://vimeo.com/laundromatinee" onclick="javascript:pageTracker._trackPageview('/outbound/article/vimeo.com');">LaundroMatinee</a> on <a href="http://vimeo.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/vimeo.com');">Vimeo</a>.</p>
<p><a href="http://www.laundromatinee.com/sessions/video_session__the_twilight_sad" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.laundromatinee.com');"></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/uR2DMhMq7Hzr7Dh0IRpe3OAa-X4/0/da"><img src="http://feedads.g.doubleclick.net/~a/uR2DMhMq7Hzr7Dh0IRpe3OAa-X4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uR2DMhMq7Hzr7Dh0IRpe3OAa-X4/1/da"><img src="http://feedads.g.doubleclick.net/~a/uR2DMhMq7Hzr7Dh0IRpe3OAa-X4/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2417</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2417</feedburner:origLink></item>
		<item>
		<title>Why do we have an IMG element? [dive into mark]</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/EbRdpnxj6N8/</link>
		<comments>http://blog.ennuyer.net/?p=2415#comments</comments>
		<pubDate>Tue, 03 Nov 2009 09:36:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General Tech]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2415</guid>
		<description><![CDATA[Why do we have an IMG element? [dive into mark].
An annotated history of the evolution of IMG.  Fascinating.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://diveintomark.org/archives/2009/11/02/why-do-we-have-an-img-element" onclick="javascript:pageTracker._trackPageview('/outbound/article/diveintomark.org');">Why do we have an IMG element? [dive into mark]</a>.</p>
<p>An annotated history of the evolution of IMG.  Fascinating.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/e1fq6FInICKTi-JmGjfl6MdI1aA/0/da"><img src="http://feedads.g.doubleclick.net/~a/e1fq6FInICKTi-JmGjfl6MdI1aA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/e1fq6FInICKTi-JmGjfl6MdI1aA/1/da"><img src="http://feedads.g.doubleclick.net/~a/e1fq6FInICKTi-JmGjfl6MdI1aA/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2415</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2415</feedburner:origLink></item>
		<item>
		<title>Rails Reading - November 1, 2009</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/ph0JRRKkVSs/</link>
		<comments>http://blog.ennuyer.net/?p=2412#comments</comments>
		<pubDate>Sun, 01 Nov 2009 11:24:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2412</guid>
		<description><![CDATA[
 Git Magic 

As Arthur C. Clarke observed, any sufficiently advanced technology is indistinguishable from magic. This is a great way to approach Git: newbies can ignore its inner workings and view Git as a gizmo that can amaze friends and infuriate enemies with its wondrous abilities.
Rather than go into details, we provide rough instructions [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/srboisvert/4029087257/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.flickr.com');" title="Dreamland Welcomes You by srboisvert, on Flickr"><img src="http://farm3.static.flickr.com/2490/4029087257_db18b20762.jpg" width="500" height="375" alt="Dreamland Welcomes You" /></a></p>
<p><a href="http://www-cs-students.stanford.edu/~blynn/gitmagic/book.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www-cs-students.stanford.edu');"> Git Magic </a><br />
<blockquote>
<p>As Arthur C. Clarke observed, any sufficiently advanced technology is indistinguishable from magic. This is a great way to approach Git: newbies can ignore its inner workings and view Git as a gizmo that can amaze friends and infuriate enemies with its wondrous abilities.</p>
<p>Rather than go into details, we provide rough instructions for particular effects. After repeated use, gradually you will understand how each trick works, and how to tailor the recipes for your needs.</p>
</blockquote>
<p><a href="http://www.paperplanes.de/2009/10/30/how_to_redis.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.paperplanes.de');"> paperplanes. How To Redis </a><br />
<blockquote>
<p>The simplest way is to just use the redis-rb library and talk to Redis almost directly. That&#8217;s quite low level compared what you&#8217;re used to with ActiveRecord though. Hurl wraps most of the convenience stuff into a neat class Model that implements basic functionality like saving, validating and handling identifiers.</p>
<p>Ohm takes it the next level, adding more complex validations, integrating the Redis data types as top level class attributes, and even handling associations for you. It&#8217;s serious awesomesauce, and the implementation is quite simple too. It even supports having indexes on attributes you want to query for, updating them transparently for you as you create new objects or update existing ones.</p>
</blockquote>
<p><a href="http://openmonkey.com/articles/2009/07/thinking-sphinx-rspec-matchers" onclick="javascript:pageTracker._trackPageview('/outbound/article/openmonkey.com');"> Thinking Sphinx RSpec Matchers - blah blah woof woof | tim riley </a><br />
<blockquote>
<p>How do you use RSpec to drive the design of your models that will use Thinking Sphinx for search? Say you’re already using Cucumber for integration tests to verify your index builds correctly and searches return the results you expect. For your models’ specs, you’ll want something that is lighter but doesn’t sacrifice your overall test coverage.</p>
<p>To achieve this, I wrote a couple of small RSpec matchers that inspect the Thinking Sphinx index object on your model to ensure that it contains the fields and attributes that you expect.</p>
</blockquote>
<p><a href="http://www.slideshare.net/napcs/intro-to-ruby-twin-cities-code-camp-7?src=embed" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.slideshare.net');"> Intro to Ruby - Twin Cities Code Camp 7 </a><br />
<blockquote>
<p>Slides from Brian Hogan&#8217;s &#8220;Introduction to Ruby&#8221; talk at Twin Cities Code Camp 7</p>
</blockquote>
<p><a href="http://www.vimeo.com/tag:nosqlberlin" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.vimeo.com');"> Videos tagged &#8216;nosqlberlin&#8217; on Vimeo </a><br />
<blockquote>
<p>Six videos from NoSQL berlin covering CouchDB, Redis and such.</p>
</blockquote>
<p><a href="http://www.fngtps.com/2008/11/free-result-after-using-activerecord-base-connection-execute" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.fngtps.com');"> Free result after using ActiveRecord::Base.connection.execute · Fingertips </a><br />
<blockquote>
<p>Just a quick warning: when you use ActiveRecord::Base.connection.execute you get a Mysql::Result instance, this is a very thin wrapper around the actual result returned from libmysqlclient. This means you have to free the memory of the result table, failing to do so will result in erratic query times because somewhere a garbage collector will do it for you.</p>
</blockquote>
<p><a href="http://www.elctech.com/snippets/executing-sql-commands-in-rails" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.elctech.com');"> Executing SQL commands in Rails [Snippet] « elc technologies </a><br />
<blockquote>
<p>I had to figure out a database&#8217;s timezone and schema but I had no shell access to the server. So I ran this used Base.connection.execute and fetch_row to get the result</p>
<p>q=ActiveRecord::Base.connection.execute &#8216;SELECT NOW();&#8217;</p>
<p>=> #<mysql::result:0x2b783735c4f8></p>
<p>>> q.fetch_row</p>
<p>=> ["2009-10-20 17:30:49"]</p>
<p>>> Time.now</p>
<p>=> Tue Oct 20 10:32:02 -0700 2009</p>
<p></mysql::result:0x2b783735c4f8></p>
<p>You can basically run any SQL query you want with these two methods. Now go crash some servers!</p>
</blockquote>
<p><a href="http://devver.net/blog/2009/10/improving-code-using-metric-fu/" onclick="javascript:pageTracker._trackPageview('/outbound/article/devver.net');"> Improving Code using Metric_fu – The Devver Blog </a><br />
<blockquote>
<p>Often, when people see code metrics they think, &#8220;that is interesting, I don&#8217;t know what to do with it.&#8221; I think metrics are great, but when you can really use them to improve your project&#8217;s code, that makes them even more valuable. metric_fu provides a bunch of great metric information, which can be very useful. But if you don&#8217;t know what parts of it are actionable it&#8217;s merely interesting instead of useful.</p>
</blockquote>
<p><a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.pauldix.net');"> Paul Dix Explains Nothing: Typhoeus, the best Ruby HTTP client just got better </a><br />
<blockquote>
<p>&#8216;ve been quietly working on Typhoeus for the last few months. With the help of Wilson Bilkovich and David Balatero I&#8217;ve finished what I think is a significant improvement to the library. The new interface removes all the magic and opts instead for clarity.</p>
<p>It&#8217;s really slick and includes improved stubing support, caching, memoization, and (of course) parallelism. The Typhoeus readme highlights all of the awesomeness. It should be noted that the old interface of including Typhoeus into classes and defining remote methods has been deprecated. I&#8217;ll be removing that sometime in the next six months.</p>
</blockquote>
<p><a href="http://rails-nutshell.labs.oreilly.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/rails-nutshell.labs.oreilly.com');"> Rails in a Nutshell </a><br />
<blockquote>
<p>Rails in a Nutshell is a concise introduction to Rails, an overview of commands and configurations, and a guide to the parts of Rails you’ll be using every day.</p>
<p>Full of examples and explanations, this book kicks your skills into high-gear by showing you how to take advantage of the Model-View-Controller concept with tiny but expressive bits of Ruby that power some of the world’s biggest and fastest web services.</p>
<p>Fast to launch and a pleasure to get there are hallmarks of working with Rails. Rails in a Nutshell gets the right stuff in your hands quickly and without fuss, so you can experience it yourself.</p>
</blockquote>
<p><a href="http://blog.astrails.com/2009/10/27/liberate-my-controller" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.astrails.com');"> Astrails Let my controller go or useful impurity in software design. </a><br />
<blockquote>
<p>It would be nice if @articles.to_xml just worked, but then how will you generate the href url? url_for is not available in models.</p>
<p>Solution? just make it global and let the purists tear their hairs out! <img src='http://blog.ennuyer.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This plugin solves the issues above by making the current controller available from a global function current_controller. (actually it uses Thread local storage, so it will work even in multithreaded Rails environment)</p>
</blockquote>
<p><a href="http://www.paperplanes.de/2009/10/27/theres_something_about_redis.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.paperplanes.de');"> paperplanes. There&#8217;s Something About Redis </a><br />
<blockquote>
<p>One &#8220;movement&#8221; (if you can even call it that) is NoSQL. I&#8217;ve never been particularly happy with relational databases, and I happily dropped MySQL and the like when an opportunity to work with something entirely new came up. Since it&#8217;s my own project I&#8217;m not putting anything at risk, and I don&#8217;t regret taking that step. We&#8217;re working with two members of the NoSQL family in particular, CouchDB and Redis.</p>
<p>Last week people interested in and people working with and on these new and pretty fascinating tools came together for the first NoSQL meetup in Berlin. I talked about Redis, and before I keep blabbering on about it, here are my slides. The talks have been filmed, so expect an announcement for the videos soon-ish.</p>
</blockquote>
<p><a href="http://japhr.blogspot.com/2009/10/newbie-feedback.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/japhr.blogspot.com');"> japh(r): &#8220;Newbie&#8221; Feedback </a><br />
<blockquote>
<p>I recently had the privilege to supply the challenge for the second ever Ruby Programming Challenge For Newbies. I thought it pretty cool that the challenge provoked 40+ &#8220;newbies&#8221; to submit responses. As one might expect, there was some rough Ruby, but very few butcherings of the language.</p>
<p>In the spirit of the code review, I tried to provide constructive feedback to all participants. Following is a summary of some common suggestions that I had to offer&#8230;</p>
</blockquote>
<p><a href="http://www.elctech.com/articles/good-ruby-times" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.elctech.com');"> Good Ruby Times [Article] « elc technologies </a><br />
<blockquote>
<p>Doing the travelling codes-man like that is a golden opportunity to see what people&#8217;s stumbling blocks are and how a few easy tricks can improve the code substantially. What follows is not your new cutting edge coffe making kitchen sink script-fu, but a rather dull list of everyday Ruby that I learned people need to learn.</p>
</blockquote>
<p><a href="http://talklikeaduck.denhaven2.com/2009/10/27/its-the-little-things" onclick="javascript:pageTracker._trackPageview('/outbound/article/talklikeaduck.denhaven2.com');"> Talk Like A Duck : It&#8217;s the Little Things </a><br />
<blockquote>
<p>Prior to Ruby 1.9 Array#to_s was a synonym for Array.join which resulted in the concatenation of the results of sending to_s to each element. In Ruby 1.9 Array#to_s is the same as Array#inspect.</p>
<p>This has had a tendency to produce subtle problems which are at time hard to track down. Once they are found, the solution is to do something like changing:</p>
<p>&#8220;Whatever #{some_array}&#8221;</p>
<p>to:</p>
<p>&#8220;Whatever #{some_array.join}&#8221;</p>
</blockquote>
<p><a href="http://avdi.org/devblog/2009/10/25/iso8601-dates-in-ruby/" onclick="javascript:pageTracker._trackPageview('/outbound/article/avdi.org');"> ISO8601 Dates in Ruby | Virtuous Code </a><br />
<blockquote>
<p>ISO8601 is a standard for representing date/time information as a string. ISO8601 dates look like this: 2009-10-26T04:47:09Z.</p>
<p>There are a lot of good reasons to store dates in the ISO8601 format. The format is…</p>
<p>    * Unambiguous. There is never any question how to interpret them.</p>
<p>    * Human-readable. You can look at dates stored in ISO8601 and interpret them easily.</p>
<p>    * Widely-supported. All major programming languages have libraries for parsing and writing ISO8601 dates.</p>
<p>    * Sortable. If you follow a few simple rules, ISO8601 dates sort lexicographically into the order you would expect.</p>
</blockquote>
<p><a href="http://jetpackweb.com/blog/2009/10/21/rails-2-3-4-and-swfupload-rack-middleware-for-flash-uploads-that-degrade-gracefully/" onclick="javascript:pageTracker._trackPageview('/outbound/article/jetpackweb.com');"> Jetpack Flight Log » Rails 2.3.4 and SWFUpload – Rack Middleware for Flash Uploads that Degrade Gracefully </a><br />
<blockquote>
<p>Browser upload controls have been pretty much the same for years. They are very difficult to style, and do not look consistent across browsers. Perhaps the biggest issue with them is they provide no feedback to the user about how long the submission will take. One alternative is to use Flash for the uploads. There are numerous libraries available, I like SWFUpload. Since the reason you are here is probably because you can’t get it working in Rails, I’m going to try and help you deal with the quirks associated with using Flash and Rails together.</p>
</blockquote>
<p><a href="http://blog.rubybestpractices.com/posts/rklemme/018-Complete_Class.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.rubybestpractices.com');"> Ruby Best Practices - The Complete Class </a><br />
<blockquote>
<p>here are some basic concepts (often called “aspects”) that need to be implemented for many classes although not all classes need all (or even any) of them:</p>
<p>    * initialization</p>
<p>    * conversion to a printable string</p>
<p>    * equivalence</p>
<p>    * hash code calculation</p>
<p>    * comparability</p>
<p>    * cloning (clone and dup)</p>
<p>    * freezing</p>
<p>    * customized persistence (Marshal and Yaml)</p>
<p>    * matching</p>
<p>    * math and operator overloading</p>
</blockquote>
<p><a href="http://www.teachmetocode.com/screencasts/8" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.teachmetocode.com');"> Teach Me To Code - Ruby Essentials &#8212; blocks </a><br />
<blockquote>
<p>20 minute video covering Ruby blocks</p>
</blockquote>
<p><a href="http://www.ibm.com/developerworks/java/library/j-monkeybars/index.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ibm.com');"> Cross-platform development with JRuby and Swing </a><br />
<blockquote>
<p>In addition to building Web and console applications with Ruby, you can write complex GUI desktop applications that run unmodified on multiple platforms. Thanks to JRuby, a robust alternative to the traditional C implementation of Ruby, Ruby GUI toolkits can use UI tools available to the Java™ platform. This article introduces Monkeybars, a library that uses JRuby and Swing for building applications, and takes you through an example application.</p>
</blockquote>
<p><a href="http://www.viget.com/extend/re-introducing-simple-importer/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.viget.com');"> (re)-Introducing simple_importer | Viget Extend </a><br />
<blockquote>
<p>The end result is a gem that makes CSV import tasks easy to create and manage, and hopefully provides some real-world examples of basic Ruby metaprogramming.</p>
<p>The basic use case starts with defining importers using a small internal DSL. Each importer has a name, a csv file, and a block of code that is used to process each row in the file. The row instance that is passed into the block is a fastercsv row and all of the fastercsv configuration options are available.</p>
</blockquote>
<p><a href="http://www.infoq.com/interviews/drnic-ruby-projects" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.infoq.com');"> InfoQ: Dr Nic Williams on Sustainable Ruby Open Source Development </a><br />
<blockquote>
<p>Dr Nic Williams talks about his Ruby open source contributions (TextMate bundles, newgem,&#8230;), and how he manages to keep his many open source projects alive while still having a life.</p>
</blockquote>
<p><a href="http://kpumuk.info/ruby-on-rails/simplifying-your-ruby-on-rails-code/" onclick="javascript:pageTracker._trackPageview('/outbound/article/kpumuk.info');"> Simplifying your Ruby on Rails code: Presenter pattern, cells plugin | Dmytro Shteflyuk&#8217;s Home </a><br />
<blockquote>
<p>Today we will talk about code organization in Ruby on Rails projects. As everybody knows, Ruby on Rails is a conventional framework, which means you should follow framework architects decisions (put your controllers inside app/controllers, move all your logic into models, etc.) But there are many open questions around those conventions. In this write-up I will try to summarize my personal experience and show how I usually solve these problems.</p>
</blockquote>
<p><a href="http://litanyagainstfear.com/blog/2009/10/14/gem-bundler-is-the-future/" onclick="javascript:pageTracker._trackPageview('/outbound/article/litanyagainstfear.com');"> litany against fear ¤ by nick quaranto ¤ Gem Bundler is the Future </a><br />
<blockquote>
<p>Yehuda has a great roundup of what can be done (and has been done with the bundler) on his blog. This is going to be a part of Rails 3, so youre going to have to run into this sooner or later. I was getting frustrated with managing gem dependencies in Gemcutter, so now its bundled up and ready as a decent example of the bundler in action.</p>
</blockquote>
<p><a href="https://browserlab.adobe.com/index.html#" onclick="javascript:pageTracker._trackPageview('/outbound/article/browserlab.adobe.com');"> Adobe® BrowserLab </a><br />
<blockquote>
</blockquote>
<p><a href="http://ruby.about.com/od/advancedruby/a/deepcopy.htm" onclick="javascript:pageTracker._trackPageview('/outbound/article/ruby.about.com');"> Making Deep Copies in Ruby </a><br />
<blockquote>
<p>It&#8217;s often necessary to make a copy of a value in Ruby. While this may seem simple, and it is for simple objects, as soon as you have to make a copy of a data structure with multiple array or hashes on the same object, you will quickly find there are many pitfalls.</p>
</blockquote>
<p><a href="http://formatinternet.wordpress.com/2009/09/28/multiple-rubygems-versions-gem_home-and-gem_path/" onclick="javascript:pageTracker._trackPageview('/outbound/article/formatinternet.wordpress.com');"> Multiple rubygems versions, GEM_HOME and GEM_PATH « format internet: </a><br />
<blockquote>
<p>Installing rubygems is failrly easy and it’s great to have a package manager so you can forget about manually installing and upgrading the components you use. After installing a gem, you can require it from any ruby script and use it hassle-free. Well, given your ruby interpreter can find it.</p>
</blockquote>
<p><a href="http://www.neeraj.name/blog/articles/881-extending-self-in-a-module" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.neeraj.name');"> extending self in a module </a><br />
<blockquote>
<p>Statement extend self is an executable statement. When module is being loaded then self if the moduel itself. So that’s like saying extend Say. And that’s what happens. When a module extends another module then first module gets to invoke all the instance methods of the other module. That’s how in this case Say module is able to invoke method bar .</p>
</blockquote>
<p><a href="http://ruby-metaprogramming.heroku.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/ruby-metaprogramming.heroku.com');"> http://ruby-metaprogramming.heroku.com/ </a><br />
<blockquote>
<p>First Step on Ruby Metaprogramming course notes</p>
</blockquote>
<p><a href="http://www.bddcasts.com/series/tools/episodes/using-selenium-with-webrat-and-cucumber" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.bddcasts.com');"> Using Selenium with Webrat and Cucumber | BDDCasts - BDD Screencasts with Cucumber, RSpec and Ruby on Rails </a><br />
<blockquote>
<p>How to use Webrat and Selenium to test the</p>
<p>parts of your application that rely on AJAX or some form of Javascript interaction</p>
<p>with the user.</p>
</blockquote>
<p><a href="http://ajaxian.com/archives/the-state-of-developer-tools" onclick="javascript:pageTracker._trackPageview('/outbound/article/ajaxian.com');"> Ajaxian » The State of Developer Tools </a><br />
<blockquote>
<p>In this session, co-founder of Ajaxian.com, and The Ajax Experience conferences, and now head of Mozilla Foundation’s new Tools team Ben Galbraith will take us on an expedition through the developer tools landscape. Learn what’s out there, and what they can do to make you more productive, your sites and applications better and faster, and your life as a developer more enjoyable.</p>
</blockquote>
<p><a href="http://katas.softwarecraftsmanship.org/?p=12" onclick="javascript:pageTracker._trackPageview('/outbound/article/katas.softwarecraftsmanship.org');"> Software Craftsmanship – Katas » Number to LCD </a><br />
<blockquote>
<p>My inaugural code kata is the venerable Ruby Quiz #14: LCD Numbers. This is a fun exercise, as it exists it two distinct parts: single-digit and multi-digit. I appreciate the natural move between them, and I often find myself focusing on one side or the other, starting from scratch and working until I have single-digit support, or starting with single-digit already working and moving to multi-digit.</p>
</blockquote>
<p><a href="http://www.khelll.com/blog/ruby/stackoverflow-cool-ruby-questions-2/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.khelll.com');"> StackOverflow cool Ruby questions 2 - Khaled alHabache’s official blog </a><br />
<blockquote>
<p>let’s proceed to questions:</p>
<p>Hash Autovivification</p>
<p>Hash Autovivication in simple words is the ability to do things like:</p>
</blockquote>
<p><a href="http://www.engineyard.com/blog/2009/3-ruby-quirks-you-have-to-love/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.engineyard.com');"> 3 Ruby Quirks You Have to Love | Engine Yard Blog </a><br />
<blockquote>
<p>Ruby’s a fantastic language; we love it because it’s flexible, readable and concise, to name just a few reasons. The Ruby language is also incredibly complex as far as language syntaxes (grammar) are concerned. This sometimes leads to some dark seedy corners… but by examining the stranger aspects of Ruby’s syntax, it helps us to better understand the power of Ruby. This entry will show some of the stranger aspects of the language and reflect on how we rarely see these used in real life.</p>
</blockquote>
<p><a href="http://m.onkey.org/2009/10/18/railssummit-slides" onclick="javascript:pageTracker._trackPageview('/outbound/article/m.onkey.org');"> has_many :bugs, :through => :rails: Railssummit Slides </a><br />
<blockquote>
<p>Here are the slides of my presentation at Railssummit 2009. Huge thanks to Locaweb and Fabio Akita for organizing the conference and having me there.</p>
<p>My talk was about Rails focused tips/tricks.</p>
</blockquote>
<p><a href="http://blog.eizesus.com/2009/10/sti-best-practices-in-rails" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.eizesus.com');"> Emphasized Insanity: STI best practices in Rails </a><br />
<blockquote>
<p>Single Table inheritance. Lot’s of developers i talk to seem to hate the concept of STI and claim that it’s “java-ish” and something that should be avoided on all costs. Generally i would spend me time explaining to that person why STI is a legitimate design pattern which can be useful and correct when being used in the right place and not as a “super solution for everything”, but a recent post named The Rails Code Quality Checklist recently bashed STI and surprisingly (imo, at least) got pretty good responses from people around.</p>
</blockquote>
<p><a href="http://robots.thoughtbot.com/post/215005339/sinatra-at-boston-rb-part-1" onclick="javascript:pageTracker._trackPageview('/outbound/article/robots.thoughtbot.com');"> Video: Sinatra at Boston.rb, part 1 - GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS </a><br />
<blockquote>
<p>This the first in a series of short videos. They feature Blake Mizerany discussing Sinatra and Heroku in great technical detail at September’s Boston.rb.</p>
</blockquote>
<p><a href="http://www.diegocarrion.com/2009/10/19/rails-deployment-made-easy-with-inploy/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.diegocarrion.com');"> Rails deployment made easy with Inploy | Diego Carrion </a><br />
<blockquote>
<p>After working in some systems made in Rails, Capistrano became one of the things that began to bother me more and more. I tried to find other alternatives, including Vlad, but none satisfied me, so I decided to create a solution and called it Inploy.</p>
</blockquote>
<p><a href="http://www.bbc.co.uk/blogs/webdeveloper/2009/10/css-resets.shtml" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.bbc.co.uk');"> BBC - Web Developer: CSS Resets </a><br />
<blockquote>
<p>When investigating them for Barlesque, we pretty quickly decided a reset would be of overall benefit to developers on bbc.co.uk: we have a lot of browsers to support and zeroing everything would get rid of those inconsistent default values, like paragraph margins for example, that different browsers have. Also, with so many developers swapping code, moving around the business, debugging each others work and so on, it would be a big win to have everyone&#8217;s stuff starting from the same known base.</p>
</blockquote>
<p><a href="http://blog.thinkrelevance.com/2009/10/20/the-power-of-names" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.thinkrelevance.com');"> Relevance Blog : The Power of Names </a><br />
<blockquote>
<p>So if we can deal with non-optimal names just fine, and choosing good names is really difficult, it hardly seems worth it. But good programmers understand the value of names. This story illustrates how hard it can be to find just the right name, and also how good names can help you to understand your own program and domain in deeper ways.</p>
</blockquote>
<p><a href="http://blog.dudeblake.com/2009/10/ruby-chops-rubyisms-2-with.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.dudeblake.com');"> dude :composed_of => [:software, :music, :stuff]: Ruby Chops: rubyisms 2 with metaprogramming examples </a><br />
<blockquote>
</blockquote>
<p><a href="http://blog.dudeblake.com/2009/10/code-kata-simple-content-tag.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.dudeblake.com');"> dude :composed_of => [:software, :music, :stuff]: Code Kata: Simple Content Tag </a><br />
<blockquote>
<p>In this video I test drive code to build a simple content tag class. This was presented at Spokane/CDA Ruby User Group on Oct 7th, 2009. Enjoy!</p>
</blockquote>

<p><a href="http://feedads.g.doubleclick.net/~a/FNolaw8Eyu8jBaOVwU6paFmQD6o/0/da"><img src="http://feedads.g.doubleclick.net/~a/FNolaw8Eyu8jBaOVwU6paFmQD6o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FNolaw8Eyu8jBaOVwU6paFmQD6o/1/da"><img src="http://feedads.g.doubleclick.net/~a/FNolaw8Eyu8jBaOVwU6paFmQD6o/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2412</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2412</feedburner:origLink></item>
		<item>
		<title>The weak economic case for Google’s power meter</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/AXTH6B8l-Xk/</link>
		<comments>http://blog.ennuyer.net/?p=2408#comments</comments>
		<pubDate>Wed, 28 Oct 2009 10:50:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General Tech]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2408</guid>
		<description><![CDATA[The idea is that householders will be persuaded to stop overfilling kettles, switch appliances off standby and turn off unused lights after being confronted with their daily energy use. Studies by organisations including the government&#8217;s Energy Saving Trust have suggested such energy monitoring leads people to cut their bills by 3-15%, potentially saving the average [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>The idea is that householders will be persuaded to stop overfilling kettles, switch appliances off standby and turn off unused lights after being confronted with their daily energy use. Studies by organisations including the government&#8217;s Energy Saving Trust have suggested such energy monitoring leads people to cut their bills by 3-15%, potentially saving the average UK household £75 a year.</em></p>
<p><em>Google Powermeter is itself free, but will initially be available to British homeowners either by buying a gadget called AlertMe Energy or switching to first:utility, a small energy supplier. AlertMe&#8217;s device works using a broadband hub and a clip for your electricity meter. It can be bought from today for £69 with a £3 monthly subscription fee. First:utility customers will have to wait until next month to try the service.</em></p>
<p><em><a href="http://www.guardian.co.uk/environment/2009/oct/28/google-powermeter-home-energy-monitor" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.guardian.co.uk');">Powermeter: Google&#8217;s household energy monitor arrives in UK | Environment | guardian.co.uk</a>.</em></p></blockquote>
<p>So to save 75 quid a month you have to spend 69 up front plus 2.99 a month (38/year).  So in your first year you lose money and every year therafter you will be getting only about half the savings.  Now factor in that if you are interested in saving on your energy bill you are currently turning off unneeded lights and minimizing your power consumption so you are probably already not an average UK household so your anticipated savings will be even less.</p>
<p>So you might, possibly, reduce your energy consumption but you probably won&#8217;t save money unless you are an above average energy consumer who is reckless with your consumption in which case you probably don&#8217;t care.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/vrfbQFGQvKTKVP4wMKZhaS2Sh9s/0/da"><img src="http://feedads.g.doubleclick.net/~a/vrfbQFGQvKTKVP4wMKZhaS2Sh9s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vrfbQFGQvKTKVP4wMKZhaS2Sh9s/1/da"><img src="http://feedads.g.doubleclick.net/~a/vrfbQFGQvKTKVP4wMKZhaS2Sh9s/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2408</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2408</feedburner:origLink></item>
		<item>
		<title>Yo La Tengo - A Take Away Show - Part 2 on Vimeo</title>
		<link>http://feedproxy.google.com/~r/Ennuyernet/~3/YWa88CQpV2Y/</link>
		<comments>http://blog.ennuyer.net/?p=2383#comments</comments>
		<pubDate>Tue, 27 Oct 2009 15:40:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entertainment]]></category>

		<guid isPermaLink="false">http://blog.ennuyer.net/?p=2383</guid>
		<description><![CDATA[
Yo La Tengo - A Take Away Show - Part 2 on Vimeo.
]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=6672215&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://www.vimeo.com/moogaloop.swf?clip_id=6672215&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object></p>
<p><a href="http://vimeo.com/6672215" onclick="javascript:pageTracker._trackPageview('/outbound/article/vimeo.com');">Yo La Tengo - A Take Away Show - Part 2 on Vimeo</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/qiDQsGznCTEfCsMkL_azUCs9zjU/0/da"><img src="http://feedads.g.doubleclick.net/~a/qiDQsGznCTEfCsMkL_azUCs9zjU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qiDQsGznCTEfCsMkL_azUCs9zjU/1/da"><img src="http://feedads.g.doubleclick.net/~a/qiDQsGznCTEfCsMkL_azUCs9zjU/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ennuyer.net/?feed=rss2&amp;p=2383</wfw:commentRss>
		<feedburner:origLink>http://blog.ennuyer.net/?p=2383</feedburner:origLink></item>
	</channel>
</rss>
