<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>End of Line</title>
	<atom:link href="http://endofline.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://endofline.wordpress.com</link>
	<description>at the end of it all</description>
	<lastBuildDate>Thu, 03 Sep 2009 16:02:28 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='endofline.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/f9ee9a0e816ca4ff9c4f96365c9fcb40?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>End of Line</title>
		<link>http://endofline.wordpress.com</link>
	</image>
			<item>
		<title>TextMate Bundle for Pure</title>
		<link>http://endofline.wordpress.com/2009/09/03/textmate-bundle-for-pure/</link>
		<comments>http://endofline.wordpress.com/2009/09/03/textmate-bundle-for-pure/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 16:01:40 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=56</guid>
		<description><![CDATA[Pure is a fairly new interesting language based on term rewriting.  Unfortunately I lost track of time last night and whipped up a TextMate bundle with some basic support for the language.  It is pretty minimal at the moment though it does support basic syntax highlighting, some useful completions, and documentation look up.
You [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=56&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Pure is a fairly new interesting language based on term rewriting.  Unfortunately I lost track of time last night and whipped up a <a href="http://github.com/adamsanderson/Pure.tmbundle/tree/master">TextMate bundle</a> with some basic support for the language.  It is pretty minimal at the moment though it does support basic syntax highlighting, some useful completions, and documentation look up.</p>
<p>You can find it on <a href="http://github.com/adamsanderson/Pure.tmbundle/tree/master">Github</a>. </p>
<p><img src="http://endofline.files.wordpress.com/2009/09/pure_help.png" alt="Pure Documentation Tooltip" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=56&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/09/03/textmate-bundle-for-pure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>

		<media:content url="http://endofline.files.wordpress.com/2009/09/pure_help.png" medium="image">
			<media:title type="html">Pure Documentation Tooltip</media:title>
		</media:content>
	</item>
		<item>
		<title>SexpPath 0.4</title>
		<link>http://endofline.wordpress.com/2009/07/21/sexppath-0-4/</link>
		<comments>http://endofline.wordpress.com/2009/07/21/sexppath-0-4/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 01:49:07 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[sexp]]></category>
		<category><![CDATA[sexp_path]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=51</guid>
		<description><![CDATA[SexpPath 0.4 is complete now, and a gem is available from GitHub:

sudo gem install adamsanderson-sexp_path

New Features
Two new matchers have been added:

Negation

Matches any time a SexpPath query would normally not match, for instance this  Q?{ -s(:a) }   would match s(:b), but not s(:a).

Sibling

Matches any pair of siblings in sequential order.  For instance [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=51&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://github.com/adamsanderson/sexp_path/tree/master">SexpPath 0.4</a> is complete now, and a gem is available from <a href="http://github.com/adamsanderson/sexp_path/tree/master">GitHub</a>:</p>
<pre>
sudo gem install adamsanderson-sexp_path
</pre>
<h2>New Features</h2>
<p>Two new matchers have been added:</p>
<dl>
<dt>Negation</dt>
<dd>
Matches any time a SexpPath query would normally not match, for instance this <code> Q?{ -s(:a) }  </code> would match <code>s(:b)</code>, but not <code>s(:a)</code>.</p>
<dd>
<dt>Sibling</dt>
<dd>
Matches any pair of siblings in sequential order.  For instance this <code> Q?{ s(:a) &gt;&gt; s(:c) }  </code> would match <code>s( s(:a), s(:b), s(:c) )</code>, but not <code>s( s(:c), s(:a), s(:b) )</code>.</p>
<dd>
</dl>
<p>I am also pretty excited that <a href="http://judofyr.net/">Magnus Holm</a> has started playing with SexpPath, take a look at <a href="http://github.com/judofyr/sexp_template/tree/master">sexp_template</a> and <a href="http://github.com/judofyr/sexp_builder/tree/master">sexp_builder,</a> they&#8217;re both starting to take shape.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=51&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/07/21/sexppath-0-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>Using the Mac OS X Find Buffer for Text Navigation</title>
		<link>http://endofline.wordpress.com/2009/07/17/using-the-mac-os-x-find-buffer-for-text-navigation/</link>
		<comments>http://endofline.wordpress.com/2009/07/17/using-the-mac-os-x-find-buffer-for-text-navigation/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 16:39:36 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[macosx textmate]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/2009/07/17/using-the-mac-os-x-find-buffer-for-text-navigation/</guid>
		<description><![CDATA[Mac OS X has a nifty text feature where you can hit Command-E, and your selection will be placed into a find buffer.  Hitting Command-G and Shift-Command-G will find the next or previous instance of your selection.
I find this really useful when poking around in code.  For instance if I want to go [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=50&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Mac OS X has a nifty text feature where you can hit Command-E, and your selection will be placed into a find buffer.  Hitting Command-G and Shift-Command-G will find the next or previous instance of your selection.</p>
<p>I find this really useful when poking around in code.  For instance if I want to go look somewhere else in a file, I will select a unique chunk of code, and stash it in the find buffer.  I go about my business and then as soon as I need to go back, I just hit Command-G.  It&#8217;s one of those basic little things that really makes working on a Mac quite enjoyable.</p>
<p>Any other good keyboard shortcuts people tend to miss?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=50&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/07/17/using-the-mac-os-x-find-buffer-for-text-navigation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>SexpPath</title>
		<link>http://endofline.wordpress.com/2009/06/22/sexp_path/</link>
		<comments>http://endofline.wordpress.com/2009/06/22/sexp_path/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 05:41:05 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby_diff]]></category>
		<category><![CDATA[sexp]]></category>
		<category><![CDATA[sexp_path]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=40</guid>
		<description><![CDATA[SexpPath is a ruby DSL for pattern matching S-Expressions.  Think of it as XPath or Regular Expressions for Ruby code, and you&#8217;re most of the way there.
Here is an example of an S-Expression in Ruby:

pets = s(:pets,
  s(:cat, :fluffy, s(:color, :white)),
  s(:cat, :snuggles, s(:color, :grey)),
  s(:fish, :bubbles, s(:drinks, :water)
)

This query extracts [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=40&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://github.com/adamsanderson/sexp_path/tree/master">SexpPath</a> is a ruby DSL for pattern matching S-Expressions.  Think of it as XPath or Regular Expressions for Ruby code, and you&#8217;re most of the way there.</p>
<p>Here is an example of an S-Expression in Ruby:</p>
<pre class="brush: ruby;">
pets = s(:pets,
  s(:cat, :fluffy, s(:color, :white)),
  s(:cat, :snuggles, s(:color, :grey)),
  s(:fish, :bubbles, s(:drinks, :water)
)
</pre>
<p>This query extracts all the cats from our example:</p>
<pre class="brush: ruby;">
pattern = Q?{ s(:cat, atom, _ ) }
cats = pets.search pattern
</pre>
<p>The SexpPath query above looks for expressions that start with the symbol <code>:cat</code>.  The <code>atom</code> part says that we will match any symbol, so in the example above it would match both <code>:fluffy</code> and <code>:snuggles</code>.  The underscore at the end will match anything at all, in this case, the S-Expression for color.</p>
<p>You can also match nested expressions with SexpPath:</p>
<pre class="brush: ruby;">
pattern = Q?{ s(:cat, atom, s(:color, grey) ) }
grey_cats = pets.search pattern
</pre>
<p>SexpPath also has a notion of named matches.  This query will place each cat&#8217;s name in the query result:</p>
<pre class="brush: ruby;">
pattern = Q?{ s(:cat, atom % 'name', _ ) }
cat_matches = pets.search pattern
cat_names = cat_matches.map{|match| match['name']}
</pre>
<p>The <code>%</code> operator tells SexpPath where to stash a matching value.</p>
<p>Here is an example of using SexpPath with Ryan Davis&#8217; excellent <a href="http://rubyforge.org/projects/parsetree/">ParseTree</a> library to extract all the methods in a given file:</p>
<pre class="brush: ruby;">
# read in a ruby file
code = File.read('pony_factory.rb')
# parse the file with ParseTree
sexp = Sexp.from_array(ParseTree.new.parse_tree_for_string(code))
# create a SexpPath to find all the methods
pattern = Q?{ s(:defn, atom % 'name', _ ) }
# print all the methods in the ruby file
sexp.search(pattern).each do |match|
  puts match['name']
end
</pre>
<p>Now you&#8217;re doing static analysis on Ruby code!  To learn more take a look at the <a href="http://github.com/adamsanderson/sexp_path/tree/master">Readme on GitHub</a>, or skim over some of the <a href="http://github.com/adamsanderson/sexp_path/tree/b7ee04fb74dc25652bf691c224fa6dc1aa3c9f4f/examples">examples</a>.</p>
<p>If you have any suggestions or critiques of the code, API, etc. I would love to hear from you so comment, <a href="http://github.com/adamsanderson/sexp_path/tree/master">fork</a>, or <a href="http://github.com/adamsanderson/sexp_path/issues">open an issue on GitHub</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=40&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/06/22/sexp_path/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>Excel ruby-prof Report Printer</title>
		<link>http://endofline.wordpress.com/2009/06/02/excel-ruby-prof-report-printer/</link>
		<comments>http://endofline.wordpress.com/2009/06/02/excel-ruby-prof-report-printer/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 06:08:03 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby-prof]]></category>
		<category><![CDATA[rubygems]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=37</guid>
		<description><![CDATA[I got tired of re-sorting ruby-prof&#8217;s profiles in TextMate ( sort -n -r -k 2 is neat, but cumbersome ).  So I whipped up a little gem for printing out the reports as Excel documents with excel_printer.
If nothing else, it&#8217;s a nice example of using the Spreadsheet gem in ruby.
Go fork it on Github [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=37&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I got tired of re-sorting <a href="http://ruby-prof.rubyforge.org/">ruby-prof</a>&#8217;s profiles in TextMate ( <code>sort -n -r -k 2</code> is neat, but cumbersome ).  So I whipped up a little gem for printing out the reports as Excel documents with <a href="http://github.com/adamsanderson/excel_printer/">excel_printer</a>.</p>
<p>If nothing else, it&#8217;s a nice example of using the <a href="http://spreadsheet.rubyforge.org/">Spreadsheet</a> gem in ruby.</p>
<p>Go <a href="http://github.com/adamsanderson/excel_printer/">fork it on Github</a> and do something neat with it.-</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=37&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/06/02/excel-ruby-prof-report-printer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenGem 1.3.1</title>
		<link>http://endofline.wordpress.com/2009/06/02/opengem-1-3-1/</link>
		<comments>http://endofline.wordpress.com/2009/06/02/opengem-1-3-1/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 19:41:00 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=35</guid>
		<description><![CDATA[Quick note, I just updated OpenGem so that you can now do: 
gem read activerecord
If you the rdoc has not been generated yet, OpenGem will generate it for you and then open it up for your browsing pleasure (or horror).
So go ahead and update.
sudo gem update open_gem
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=35&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Quick note, I just updated OpenGem so that you can now do: </p>
<p><code>gem read activerecord</code></p>
<p>If you the rdoc has not been generated yet, OpenGem will generate it for you and then open it up for your browsing pleasure (or horror).</p>
<p>So go ahead and update.</p>
<p><code>sudo gem update open_gem</code></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=35&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/06/02/opengem-1-3-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>Testing for existence with &#8220;blank?&#8221;</title>
		<link>http://endofline.wordpress.com/2009/05/15/activesupport_blank/</link>
		<comments>http://endofline.wordpress.com/2009/05/15/activesupport_blank/#comments</comments>
		<pubDate>Sat, 16 May 2009 05:21:06 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=31</guid>
		<description><![CDATA[I know, I know, all ruby posts should be about slightly new takes on testing paradigms or other amazing best practices, but sometimes I think we skip the basiscs.  Today it&#8217;s blank?.
ActiveSupport, the Rails extensions to ruby&#8217;s standard library introduce the method blank?.  It&#8217;s pretty handy, and I think people tend to take [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=31&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I know, I know, all ruby posts should be about slightly new takes on testing paradigms or other amazing best practices, but sometimes I think we skip the basiscs.  Today it&#8217;s <code>blank?</code>.</p>
<p>ActiveSupport, the Rails extensions to ruby&#8217;s standard library introduce the method <code>blank?</code>.  It&#8217;s pretty handy, and I think people tend to take it for granted without realizing exactly what its semantics are.  <code>blank?</code> is handy if you want to treat an empty string, array, or hash as false.</p>
<p>Here&#8217;s a slightly haphazard table showing <code>nil?</code>, <code>empty?</code>, and <code>blank?</code> all work.</p>
<table style='width:80%;' border="0">
<tbody>
<tr>
<th> Input</th>
<th> nil?</th>
<th> empty?</th>
<th> blank?</th>
</tr>
<tr>
<td>&#8221; &#8220;</td>
<td>FALSE</td>
<td>FALSE</td>
<td>TRUE</td>
</tr>
<tr>
<td>nil</td>
<td>TRUE</td>
<td>ERROR</td>
<td>TRUE</td>
</tr>
<tr>
<td>1</td>
<td>FALSE</td>
<td>ERROR</td>
<td>FALSE</td>
</tr>
<tr>
<td>0</td>
<td>FALSE</td>
<td>ERROR</td>
<td>FALSE</td>
</tr>
<tr>
<td>&#8220;hi&#8221;</td>
<td>FALSE</td>
<td>FALSE</td>
<td>FALSE</td>
</tr>
<tr>
<td>[]</td>
<td>FALSE</td>
<td>TRUE</td>
<td>TRUE</td>
</tr>
<tr>
<td>[ [] ]</td>
<td>FALSE</td>
<td>FALSE</td>
<td>FALSE</td>
</tr>
<td>[ nil ]</td>
<td>FALSE</td>
<td>FALSE</td>
<td>FALSE</td>
</tr>
<tr>
<td>[ 1 ]</td>
<td>FALSE</td>
<td>FALSE</td>
<td>FALSE</td>
</tr>
<tr>
<td>true</td>
<td>FALSE</td>
<td>ERROR</td>
<td>FALSE</td>
</tr>
<tr>
<td>false</td>
<td>FALSE</td>
<td>ERROR</td>
<td>TRUE</td>
</tr>
<tr>
<td>{}</td>
<td>FALSE</td>
<td>TRUE</td>
<td>TRUE</td>
</tr>
<tr>
<td>{1=&gt;2}</td>
<td>FALSE</td>
<td>FALSE</td>
<td>FALSE</td>
</tr>
</tbody>
</table>
<p>So if you want a flexible way of testing whether something exists, <code>blank?</code> will often give you what you want. I&#8217;m sure that was just thrilling!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=31&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/05/15/activesupport_blank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenGem is on RubyForge</title>
		<link>http://endofline.wordpress.com/2009/05/06/opengem-is-on-rubyforge/</link>
		<comments>http://endofline.wordpress.com/2009/05/06/opengem-is-on-rubyforge/#comments</comments>
		<pubDate>Thu, 07 May 2009 06:34:53 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=29</guid>
		<description><![CDATA[Hey quick note, OpenGem is now on RubyForge, so you can all just do:
gem install open_gem
Hoorah!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=29&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hey quick note, <a href="http://github.com/adamsanderson/open_gem/tree/master">OpenGem</a> is now on <a href="http://rubyforge.org/projects/opengem/">RubyForge</a>, so you can all just do:</p>
<p><code>gem install open_gem</code></p>
<p>Hoorah!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=29&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/05/06/opengem-is-on-rubyforge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating Sample Data</title>
		<link>http://endofline.wordpress.com/2009/05/01/creating-sample-data/</link>
		<comments>http://endofline.wordpress.com/2009/05/01/creating-sample-data/#comments</comments>
		<pubDate>Fri, 01 May 2009 17:08:45 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=27</guid>
		<description><![CDATA[Nothing earth shattering today, but I thought it was neat.  Every now and then I come across a document I would like to add to my test suites for a project, but there&#8217;s a problem.  The document might contain email addresses, phone numbers, who knows what, and I don&#8217;t really want that to be sitting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=27&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Nothing earth shattering today, but I thought it was neat.  Every now and then I come across a document I would like to add to my test suites for a project, but there&#8217;s a problem.  The document might contain email addresses, phone numbers, who knows what, and I don&#8217;t really want that to be sitting around in my codebase, but the structure of the document matters.  The solution?  Pipe it through this:</p>
<p><code>tr 'A-Za-z0-9' 'a-ff-aa-fa-ff-aa-fa-ff-aa-f001122334455'</code></p>
<p>Now all of your punctuation and such is preserved for your parsing pleasure, but the data is somewhat obfuscated.  Of course use it at your discretion.</p>
<p>For bonus points, I actually made it into a TextMate command.  Now I can have my test data, and feel reasonably safe about it.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=27&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/05/01/creating-sample-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenGem</title>
		<link>http://endofline.wordpress.com/2009/04/28/opengem/</link>
		<comments>http://endofline.wordpress.com/2009/04/28/opengem/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 03:59:57 +0000</pubDate>
		<dc:creator>Adam Sanderson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubygems]]></category>

		<guid isPermaLink="false">http://endofline.wordpress.com/?p=24</guid>
		<description><![CDATA[Ok, trying to post a little more frequently, and less ambitiously.
This is just a tiny note to mention OpenGem a plugin for rubygems 1.3.2.
It&#8217;s quite handy, just do:
gem open rails
And rails will open up in your favorite text editor ($EDITOR).
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=24&subd=endofline&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>Ok, trying to post a little more frequently, and less ambitiously.</em></p>
<p>This is just a tiny note to mention <a title="OpenGem at GitHub" href="http://github.com/adamsanderson/open_gem/tree">OpenGem</a> a plugin for <a href="http://rubygems.org/">rubygems</a> 1.3.2.</p>
<p>It&#8217;s quite handy, just do:</p>
<p><code>gem open rails</code></p>
<p>And rails will open up in your favorite text editor (<code>$EDITOR</code>).</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/endofline.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/endofline.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/endofline.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/endofline.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/endofline.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/endofline.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/endofline.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/endofline.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/endofline.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/endofline.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=endofline.wordpress.com&blog=1733911&post=24&subd=endofline&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://endofline.wordpress.com/2009/04/28/opengem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">AdamSanderson</media:title>
		</media:content>
	</item>
	</channel>
</rss>