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

<channel>
	<title>spiral_code</title>
	<atom:link href="http://blog.trydionel.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.trydionel.com</link>
	<description></description>
	<lastBuildDate>Thu, 01 Apr 2010 02:20:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Meet Rack::UpsideDownTernet</title>
		<link>http://blog.trydionel.com/2010/03/31/meet-rackupsidedownternet/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=meet-rackupsidedownternet</link>
		<comments>http://blog.trydionel.com/2010/03/31/meet-rackupsidedownternet/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 02:17:48 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rack]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[upsidedownternet]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=170</guid>
		<description><![CDATA[One of my coworkers recently tweeted his interested in a Rack-compliant version of the upside-down-ternet. Inspired by the upcoming April Fools&#8217; Day, I took the challenge and created Rack::UpsideDownTernet. Check it out at GitHub! Fun Stuff Just like the original, &#8230; <a href="http://blog.trydionel.com/2010/03/31/meet-rackupsidedownternet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of my coworkers recently <a href="http://twitter.com/jasonnoble/status/11389845850">tweeted</a> his interested in a Rack-compliant version of <a href="http://www.ex-parrot.com/pete/upside-down-ternet.html">the upside-down-ternet</a>.  Inspired by the upcoming April Fools&#8217; Day, I took the challenge and created Rack::UpsideDownTernet. <a href="http://github.com/trydionel/rack-upside-down-ternet">Check it out at GitHub!</a></p>
<h2>Fun Stuff</h2>
<p>Just like the original, this middleware downloads all the images on a page, transforms them with ImageMagick (<code>-flip</code> is the default transformation) and renders out the updated images.  Pure.  Simple.  Fun.</p>
<p>Setup is just like any other middleware.  Bonus: set your own image transformations!</p>
<pre class="brush: ruby;">
# environment.rb
require 'rack_upside_down_ternet'
config.middleware.use Rack::UpsideDownTernet, '-blur 10 -flip'
</pre>
<h2>Broken Stuff</h2>
<ul>
<li>Uses curl instead of just grabbing the file out of the images directory</li>
<li>Doesn&#8217;t even kinda work with remote/absolute URL images</li>
<li>Requires unicorn (or any multi-worker setup).  Make sure you have at least 2 workers running, as your first request will block curl from downloading images</li>
<li>Requires that you create <code>PROJECT_DIR/tmp</code> and <code>PROJECT_DIR/images/mod</code></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/03/31/meet-rackupsidedownternet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Unicode tips for Ruby</title>
		<link>http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=some-unicode-tips-for-ruby</link>
		<comments>http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 01:54:01 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=141</guid>
		<description><![CDATA[I recently released a <a href="http://japanese.trydionel.com">Japanese word search builder</a> (see the discussion in the <a href="http://news.ycombinator.com/item?id=1191826">Hacker News post</a>).  This was my first foray into the world of multibyte characters, and I quickly discovered the pain involved in simply printing "ありがと" to the screen.  Below are some of the details I found to help me through this trial. <a href="http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style>
.italic { font-style: italic; }
</style>
<p>I recently released a <a href="http://japanese.trydionel.com">Japanese word search builder</a> (see the discussion in the <a href="http://news.ycombinator.com/item?id=1191826">Hacker News post</a>).  This was my first foray into the world of multibyte characters, and I quickly discovered the pain involved in simply printing &#8220;ありがと&#8221; to the screen.  Below are some of the details I found to help me through this trial.</p>
<h3>Tips to make your Unicode+Ruby experience easier</h3>
<ol start=0>
<li>Read James Edward Gray&#8217;s <a href="http://blog.grayproductions.net/articles/understanding_m17n">Understanding m17n</a> series.  Every word. Period.</li>
<li>If at all possible, use Ruby 1.9+.  As James describes, Unicode support is <span class="italic">far</span> better than in 1.8.x.</li>
<li>In spite of Ruby 1.9&#8242;s superior Unicode support, it still doesn&#8217;t read files as UTF8 by default.  This means that loading any files which include Unicode characters will cause Ruby to lash out at you with complaints about multi-byte characters.  To get around this, set the file&#8217;s encoding type at the start of the file.
<pre class="brush: bash;">
# encoding: UTF-8
... unicode goes here ...
</pre>
</li>
<li>If you can&#8217;t use 1.9, make sure you use the Jcode library.  It&#8217;s included with Ruby and adds lots of useful Unicode-oriented features to String and Regexp.  The only disadvantage is that the original methods remain in place (e.g., you&#8217;ll have to make sure you call String#jsize rather than String#size).
<pre class="brush: ruby;">
require 'jcode'
&quot;ありがと&quot;.size
# =&gt; 12
&quot;ありがと&quot;.jsize
# =&gt; 4
</pre>
</li>
<li>If you plan for your Ruby file to be run directly, make sure you add the <code>-KU</code> flag to your shabang line.  This will tell Ruby to be open to UTF8 data.
<pre class="brush: bash;">
#!/usr/local/bin/env ruby -KU
... Ruby goes here ...
</pre>
</li>
<li>Familiarize yourself with <code>iconv</code> &mdash; both the Ruby library and the command line tool.  This tool will allow you to translate data easily between various character encodings.</li>
<li>While not strictly required these days, it&#8217;s still recommended when serving HTML with Unicode data to set the content type both in a meta tag on the page <span class="italic">and</span> the in HTTP header.
<pre class="brush: xml;">
HTTP/1.1 200 OK
Server: nginx/0.6.39
Date: Wed, 24 Mar 2010 00:39:47 GMT
Content-Type: text/html; charset=utf-8
...

&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot;  content=&quot;text/html; charset=utf-8&quot; /&gt;
...
</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lightning-Quick Redis Viewer</title>
		<link>http://blog.trydionel.com/2010/02/27/lightning-quick-redis-viewer/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=lightning-quick-redis-viewer</link>
		<comments>http://blog.trydionel.com/2010/02/27/lightning-quick-redis-viewer/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 21:34:10 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=135</guid>
		<description><![CDATA[I&#8217;ve had the opportunity to work with the Redis datastore this week. If you&#8217;re not familiar with it, Redis is a blindingly-fast, in-memory key-value store. It supports several nice features such as string, list and set support (complete with set &#8230; <a href="http://blog.trydionel.com/2010/02/27/lightning-quick-redis-viewer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had the opportunity to work with the Redis datastore this week.  If you&#8217;re not familiar with it, Redis is a blindingly-fast, in-memory key-value store.  It supports several nice features such as string, list and set support (complete with set operations) and the ability to persist data to disk.  Check out the <a href="http://code.google.com/p/redis/">official site</a> for lots more info.</p>
<p>My project revolved around data collection, and I pretty quickly ran into the need to see what I was actually shoving into the database.  After 10 minutes and only ~50 lines, I came up with a Sinatra backed Redis viewer.  See the code below, or check out <a href="http://gist.github.com/316957">my gist on Github</a>!</p>
<pre class="brush: ruby;">
# app.rb
require 'rubygems'
require 'haml'
require 'sinatra'
require 'redis'

helpers do
  def redis
    @redis ||= Redis.new
  end
end

get &quot;/&quot; do
  @keys = redis.keys(&quot;*&quot;)
  haml :index
end

get &quot;/:key&quot; do
  @key = params[:key]
  @data = case redis.type(@key)
  when &quot;string&quot;
    Array(redis[@key])
  when &quot;list&quot;
    redis.lrange(@key, 0, -1)
  when &quot;set&quot;
    redis.set_members(@key)
  else
    []
  end
  haml :show
end

# views/index.haml
%html
%body
  %h1 Current Keys
  %ul
    - @keys.each do |key|
      %li
        %a{:href =&gt; &quot;/#{key}&quot;}= key

# views/show.haml
%html
%body
  %h1= &quot;Data stored in '#{@key}'&quot;
  %ul
    -@data.each do |data|
      %li
        %p= data
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/02/27/lightning-quick-redis-viewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Sunspot with Cucumber</title>
		<link>http://blog.trydionel.com/2010/02/06/testing-sunspot-with-cucumber/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=testing-sunspot-with-cucumber</link>
		<comments>http://blog.trydionel.com/2010/02/06/testing-sunspot-with-cucumber/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 19:07:43 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[pickle]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[sunspot]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=124</guid>
		<description><![CDATA[I&#8217;ve been using Sunspot as my full-text search provider for a few months now. It&#8217;s a very enjoyable library &#8212; it hooks itself into Rails, provides an extension to disable itself in RSpec and even throws in a few convenient &#8230; <a href="http://blog.trydionel.com/2010/02/06/testing-sunspot-with-cucumber/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using Sunspot as my full-text search provider for <a href="http://blog.trydionel.com/2009/11/19/a-few-sunspot-tips/">a few months now</a>.  It&#8217;s a very enjoyable library &#8212; it hooks itself into Rails, provides an extension to disable itself in RSpec and even throws in a few convenient rake tasks.  This fun came to a quick end, though, when I started delving into Cucumber again.  Any feature involving finding a Sunspot-enabled item failed completely, but without any helpful errors.  After a shameful amount of time banging my head against the desk, I finally got everyone to play nicely.</p>
<h2>The Code</h2>
<p>Let&#8217;s just drop the code in and discuss it afterwards:</p>
<pre class="brush: ruby;">
# config/sunspot.yml
# copy the test settings into the cucumber environment
test: &amp;TEST
  solr:
    hostname: localhost
    port: 8981
    log_level: WARNING

cucumber:
  &lt;&lt;: *TEST

# features/support/config.rb
# start the Solr server and give it a few seconds to initialize
Sunspot::Rails::Server.start
sleep 5

# make sure that pickle calls #index! on our appropriate models
require File.join(File.dirname(__FILE__), 'pickle')
module Pickle
  module Session

    def create_model_with_sunspot(a_model_name, fields = nil)
      result = create_model_without_sunspot(a_model_name, fields)

      model = model(a_model_name)
      model.index! if model.respond_to?(:index!)

      result
    end
    alias_method_chain :create_model, :sunspot

  end
end

# clean out the Solr index after each scenario
After do
  Post.remove_all_from_index!
end

# shut down the Solr server
at_exit do
  Sunspot::Rails::Server.stop
end
</pre>
</p>
<h2>The Details</h2>
<p>This method was heavily influenced by <a href="http://opensoul.org/2009/6/1/cucumber-scenarios-that-depend-on-sphinx">Brandon Keeper&#8217;s post on using Cucumber with ThinkingSphinx</a>.  Thanks Brandon!  So in my setup, I&#8217;m using Sunspot, Cucumber and Pickle (see Ryan Bates&#8217; <a href="http://railscasts.com/episodes/186-pickle-with-cucumber">railscast on using Pickle with Cucumber</a> for more details on the wonderful Pickle gem).</p>
<p>First and foremost is getting the testing Solr server running.  It will look for settings in <code>config/sunspot.yml</code> according to the environment we&#8217;re running in, so we need to duplicate the test environment for cucumber.  I&#8217;ve found that it takes 3-5 seconds for Solr to properly spin up, so we&#8217;re <code>sleep</code>ing for a few seconds to avoid the problem.</p>
<p>Next we need to ensure that each model gets loaded into Solr&#8217;s index when created.  If you&#8217;re instantiating models on your own, this boils down to calling <code>#index!</code> on any models that you create.  Since I&#8217;m using Pickle (and didn&#8217;t want to rework the included <code>pickle_steps.rb</code>), I needed a bit more invasive measure.  A bit of <code>alias_method_chain</code> voodoo lets me call <code>#index!</code> on every instantiated model that responds to it.  This ensures that Pickle always adds it&#8217;s models to Solr&#8217;s index.  I was pleased to find that I didn&#8217;t have to disable transactional fixtures </p>
<p>Finally, we need to ensure that our index is fresh for each scenario, so we clear the Solr index out after each scenario is run.  If you want a more targeted approach, you can use</p>
<pre class="brush: ruby;">
# features/support/config.rb
# clear Solr index only if we've actually used it
After('@sunspot') do
  Post.remove_all_from_index!
end
</pre>
<p>to only clear the Solr index after stories which are tagged with <code>@sunspot</code>.  Once all the stories are run, shut down the server.  Viola!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/02/06/testing-sunspot-with-cucumber/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Now on Tumblr</title>
		<link>http://blog.trydionel.com/2010/02/06/now-on-tumblr/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=now-on-tumblr</link>
		<comments>http://blog.trydionel.com/2010/02/06/now-on-tumblr/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 14:59:14 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=119</guid>
		<description><![CDATA[Much to my own distaste, I&#8217;ve been slowly migrating towards becoming a link-blog (see examples 1, 2, 3 and 4). I enjoy sharing random pages with the community, but feel that (what&#8217;s intended to be) a technical blog isn&#8217;t necessarily &#8230; <a href="http://blog.trydionel.com/2010/02/06/now-on-tumblr/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Much to my own distaste, I&#8217;ve been slowly migrating towards becoming a link-blog (see examples <a href="http://blog.trydionel.com/2009/12/19/links/">1</a>, <a href="http://blog.trydionel.com/2009/12/28/link-v2/">2</a>, <a href="http://blog.trydionel.com/2010/01/14/links-v3/">3</a> and <a href="http://blog.trydionel.com/2010/01/22/links-v4/">4</a>).  I enjoy sharing random pages with the community, but feel that (what&#8217;s intended to be) a technical blog isn&#8217;t necessarily the best medium.  Fortunately, I saw someone mention <a href="http://tumblr.com">tumblr</a> over the weekend, and after a 3-minute setup, I&#8217;m now using tumblr for all my link-blogging needs!  You can <a href="http://tumblr.trydionel.com">follow all of my linky goodness there</a> from now on, and I&#8217;ll save this blog for actual posts (which I&#8217;m well overdue on anyway).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/02/06/now-on-tumblr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Git Pivotal</title>
		<link>http://blog.trydionel.com/2010/01/30/announcing-git-pivotal/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=announcing-git-pivotal</link>
		<comments>http://blog.trydionel.com/2010/01/30/announcing-git-pivotal/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 21:30:48 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git pivotal]]></category>
		<category><![CDATA[pivotal tracker]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=103</guid>
		<description><![CDATA[<p>I'm pleased to release the (highly alpha) Git Pivotal gem!  This gem contains a toolkit to smooth the integration between git and Pivotal Tracker. <a href="http://github.com/trydionel/git-pivotal">Learn more at github.</a></p> <a href="http://blog.trydionel.com/2010/01/30/announcing-git-pivotal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Using git effectively</h2>
<p>Like most of the developer blogosphere, I was thoroughly excited to read Vincent Driessen&#8217;s post on <a href="http://nvie.com/archives/323">branch management in git.</a>  It captured a simple and repeatable methodology for extracting a great deal of power from git without having to really dive down into its belly.  Given that Vincent&#8217;s methodology relies heavily on feature and bugfix branches, I began looking for techniques on combining <a href="http://www.pivotaltracker.com">Pivotal Tracker</a> &mdash; which I&#8217;ve been using recently for all of my project management needs &mdash; with git.  I found some advice in Rein Henrichs&#8217; article which suggests <a href="http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html">using Pivotal Tracker story ids as branch identifiers</a>, but not much else on how to really tighten the two together.</p>
<h2>Moving towards smoother integration</h2>
<p>Further Googling didn&#8217;t reveal any tools to aide my new objective, so I set out to create my own toolkit.  After a few evenings digging through Pivotal Tracker&#8217;s API (which actually changed from v2 to v3 while I worked <img src='http://blog.trydionel.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ), I&#8217;m ready to announce my work: <a href="http://github.com/trydionel/git-pivotal">Git Pivotal</a>.  It&#8217;s a very alpha release currently, but I have some work in development that will (hopefully) stabilize it soon.</p>
<h2>Git Pick</h2>
<p>The first (and currently only) tool is <code>git pick</code>.  After <a href="http://github.com/trydionel/git-pivotal#config">some simple configuration</a>, this will grab your top-most available feature story from Pivotal Tracker, display some simple info about it and offer to create a feature branch for it off of your current branch.</p>
<h2>What&#8217;s coming</h2>
<p>I plan to add some additional commands for marking current feature branches as finished, managing bugs and bugfix branches and possibly integrating release stories as well.  If you&#8217;re a fan of git and Pivotal Tracker, keep an eye on this project!</p>
<p>So what do you think?  Is this useful?  Share your thoughts below!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/01/30/announcing-git-pivotal/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Links! (v4)</title>
		<link>http://blog.trydionel.com/2010/01/22/links-v4/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=links-v4</link>
		<comments>http://blog.trydionel.com/2010/01/22/links-v4/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 03:30:19 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=100</guid>
		<description><![CDATA[More linky goodness. Also, I&#8217;d like to thank David Trasbo and Maxim Chernyak for picking up my post on my experiences with the Rails Bugmash. Thanks for the link-love guys! Case Study: Continuous deployment makes releases non-events &#8212; A developer &#8230; <a href="http://blog.trydionel.com/2010/01/22/links-v4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>More linky goodness.  Also, I&#8217;d like to thank <a href="http://caffeinedd.com/">David Trasbo</a> and <a href="http://mediumexposure.com/">Maxim Chernyak</a> for picking up my post on <a href="http://blog.trydionel.com/2010/01/16/rails-bugmash-2010/">my experiences with the Rails Bugmash</a>.  Thanks for the link-love guys!</p>
<ul>
<li><a href="http://www.startuplessonslearned.com/2010/01/case-study-continuous-deployment-makes.html">Case Study: Continuous deployment makes releases non-events</a> &mdash; A developer shares his experiences with continuous deployment.  Perhaps a bit aggressive for my blood, but it&#8217;s a very interesting technique.</li>
<li><a href="http://nvie.com/archives/323">A successful Git branching model</a> &mdash; A fantastic write-up on using git effectively.  Plus it has pretty pictures!  I know how much you love pretty pictures.</li>
<li><a href="http://www.lessonsoffailure.com/developers/real-reason-outsourcing-fails/">The Real Reason Outsourcing Continues To Fail</a> &mdash; I hope to not run into the issue of outsourcing at all, but I&#8217;m more well-prepared now if I do.</li>
<li><a href="http://m.onkey.org/2010/1/22/active-record-query-interface">Active Record Query Interface 3.0</a> &mdash; @lifo details the exciting new finder methods for Rails 3.  Super impressive stuff.</li>
<li><a href="http://ignorethecode.net/blog/2010/01/21/realism_in_ui_design/">Realism in UI Design</a> &mdash; I&#8217;m fascinated by principles of design right now.  @lkm shines light on a subtle but interesting point.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/01/22/links-v4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Bugmash 2010</title>
		<link>http://blog.trydionel.com/2010/01/16/rails-bugmash-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rails-bugmash-2010</link>
		<comments>http://blog.trydionel.com/2010/01/16/rails-bugmash-2010/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 23:47:37 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[bugmash]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=86</guid>
		<description><![CDATA[The Rails Bugmash 2010 is well under way. I&#8217;ve compiled a few notes about what I&#8217;ve seen. will_paginate The current version of the gem (v2.3.12) doesn&#8217;t work, as it relies on the now-removed scope method. It looks like there&#8217;s a &#8230; <a href="http://blog.trydionel.com/2010/01/16/rails-bugmash-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The Rails Bugmash 2010 is well under way.  I&#8217;ve compiled a few notes about what I&#8217;ve seen.</p>
<h2>will_paginate</h2>
<p>The current version of the gem (v2.3.12) doesn&#8217;t work, as it relies on the now-removed <code>scope</code> method.  It looks like there&#8217;s a <a href="http://github.com/packagethief/will_paginate/commit/10e06e6451080d57a4bc914f6d9d3c21c9cffcb9">fork out there which resolves the issue</a>, but it hasn&#8217;t been merged into master yet.</p>
<h2>Formtastic</h2>
<p>The current version of the gem (v0.9.7) seems to work just fine.  All you need is an initializer to set the gem up and load it into rails:</p>
<pre class="brush: ruby;">
require 'formtastic'

# from formtastic's rails/init.rb
ActionView::Base.send :include, Formtastic::SemanticFormHelper
</pre>
<h2>validation_reflection</h2>
<p>You can use validation_reflection (v.0.3.1) with Formtastic by simply requiring it in the initializer:</p>
<pre class="brush: ruby;">
require 'formtastic'

# from formtastic's rails/init.rb
ActionView::Base.send :include, Formtastic::SemanticFormHelper

require 'validation_reflection'
</pre>
<h2>Authlogic</h2>
<p>Not sure about the working state of the gem yet, but the 2.x style generator is clearly not working.  I&#8217;ve forked <a href="http://paulbarry.com/articles/2010/01/13/customizing-generators-in-rails-3">Paul Berry&#8217;s list of Rails 3 generators</a> and <a href="http://github.com/trydionel/rails3-generators">added a simple user session generator.</a><br />
<b>Edit:</b> Actually, the gem doesn&#8217;t work either.  Seems to rely on a <code>before_persisting</code> callback which isn&#8217;t there anymore.</br><br />
<b>Edit II:</b> The <code>before_persisting</code> callback is actually built by Authlogic.  It seems the Authlogic::Session::Base module isn&#8217;t loading callbacks like it should.
</p>
<h2>RSpec</h2>
<p>This is also a no-go in Rails 3.  David Chelimsky, being the always-on-top-of-it developer, is <a href="http://blog.davidchelimsky.net/2010/01/12/rspec-2-and-rails-3/">already planning for RSpec 2.0</a> as a working partner for Rails 3.  No sign of it yet in the github repo though.  If you&#8217;re interesting in playing around anyway, you can find some RSpec generators at the link above.<br />
<h2>Bundler</h2>
<p>The new gem bundler is indeed pretty sexy.  Unfortunately, with all that great work it does, it doesn&#8217;t actually load the gems into your Rails environment.  Neither do any of the config files (boot.rb, application.rb, etc etc).  <a href="http://caffeinedd.com/guides/348-upgrading-to-rails-3">David Trasbo had some luck adding <code>Bundler.require_env</code> to the end of the environment.rb file bundler creates</a>, though he&#8217;s run into load-order troubles.  José Valim recommends placing the line at the end of application.rb to ensure the Rails core is loaded first.  This takes care of loading all the gems, so you can skip the initializers above.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/01/16/rails-bugmash-2010/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Links! (v3)</title>
		<link>http://blog.trydionel.com/2010/01/14/links-v3/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=links-v3</link>
		<comments>http://blog.trydionel.com/2010/01/14/links-v3/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 01:09:12 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://blog.trydionel.com/?p=81</guid>
		<description><![CDATA[I&#8217;ll write a real post one day. I promise. Hacking DNS &#8212; A great guide to mixing DynDNS with PairNIC. A review of the Mac mini with Snow Leopard Server &#8212; Considering getting one of these. Ars gives a great &#8230; <a href="http://blog.trydionel.com/2010/01/14/links-v3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll write a real post one day.  I promise.</p>
<ul>
<li><a href="http://www.garfieldtech.com/blog/hacking-dns">Hacking DNS</a> &mdash; A great guide to mixing DynDNS with PairNIC.</li>
<li><a href="http://arstechnica.com/apple/reviews/2010/01/mac-mini-with-snow-leopard-server-review.ars">A review of the Mac mini with Snow Leopard Server</a> &mdash; Considering getting one of these.  Ars gives a great writeup.</li>
<li><a href="http://railsfreak.com/post/320115371/mocking-and-stubbing-can-be-evil">Mocking and Stubbing can be evil</a> &mdash; I&#8217;m still up in the air on the topic of test mocks.  I have more to say about this soon.</li>
<li><a href="http://evhead.com/2005/11/ten-rules-for-web-startups.asp">Ten Rules for Web Startups</a> &mdash; Never know when you may want to build a web startup.</li>
<li><a href="http://www.freddesign.co.uk/2009/12/archive/rules-for-good-typography/">Simple rules for good typography</a> &mdash; I&#8217;m currently trying to learn more about design fundamentals.  Some good pointers here.</li>
<li><a href="http://measuringmeasures.blogspot.com/2010/01/you-release-late-and-infrequently.html">You Release Late and Infrequently</a> &mdash; As the lead developer on a death march of a web site, I find a great deal of encouragement in this article.</li>
<li><a href="http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/">jQuery 1.4 Released: The 15 Features you Must Know</a> &mdash; In case you&#8217;ve just woken from a coma, jQuery 1.4 is out.  Nettuts gives a good roundup of some of the neat new features.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2010/01/14/links-v3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Links! (v2)</title>
		<link>http://blog.trydionel.com/2009/12/28/link-v2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=link-v2</link>
		<comments>http://blog.trydionel.com/2009/12/28/link-v2/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 22:50:24 +0000</pubDate>
		<dc:creator>Jeff Tucker</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://trydionel.wordpress.com/?p=64</guid>
		<description><![CDATA[Okay, I promise I&#8217;m not trying to start a link blog (I think). My browsers have just found themselves buried in tabs this month. The Rails 3 Router: Rack It Up &#8212; A post from Yahuda Katz detailing some of &#8230; <a href="http://blog.trydionel.com/2009/12/28/link-v2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Okay, I promise I&#8217;m not trying to start a link blog (I think).  My browsers have just found themselves buried in tabs this month.</p>
<ul>
<li><a href="http://yehudakatz.com/2009/12/26/the-rails-3-router-rack-it-up/">The Rails 3 Router: Rack It Up</a> &mdash; A post from Yahuda Katz detailing some of the new capabilities awaiting us in Rails 3</li>
<li><a href="http://afreshcup.com/home/2009/9/2/migrating-to-snow-leopard-for-rails-development-a-definitive.html">Migrating to Snow Leopard for Rails Development &#8211; A Definitive Guide</a> &mdash; This is old news by now, but I finally picked up Snow Leopard this weekend.</li>
<li><a href="http://learnyouahaskell.com/chapters">Learn You a Haskell for Great Good!</a> &mdash; This circled the web a while back too, though I just ran into a few days ago.  I have a few too many languages on my plate right now, so this one&#8217;s going on the shelf for a while.</li>
<li><a href="http://arstechnica.com/security/news/2009/12/how-to-get-set-with-a-secure-sertificate-for-free.ars">How to obtain and install an SSL/TLS certificate, for free</a> &mdash; Everybody likes free stuff.</li>
<li><a href="http://www.vimeo.com/channels/fulldisclojure">Full Disclojure</a> &mdash; A series of screencasts on learning Clojure!</li>
<li><a href="http://beautifului.tumblr.com/">beautifului</a> &mdash; An exhibit of great web UIs [h/t @rbates]</li>
<li><a href="http://webcreme.com">Web Creme</a> &mdash; A site highlighting inspiring web designs</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.trydionel.com/2009/12/28/link-v2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
