<?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>Nobody Listens Anyway</title>
	<atom:link href="http://www.justinball.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justinball.com</link>
	<description>Life is an optimization issue</description>
	<lastBuildDate>Sat, 31 Jul 2010 16:47:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
		<item>
		<title>Textmate RSpec Bundle Error</title>
		<link>http://www.justinball.com/2010/07/31/textmate-rspec-bundle-error/</link>
		<comments>http://www.justinball.com/2010/07/31/textmate-rspec-bundle-error/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:46:36 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[rpsec]]></category>
		<category><![CDATA[rspec bundle]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1396</guid>
		<description><![CDATA[After installing the Textmate RSpec bundle I started getting this error:

/Applications/TextMate.app/Contents/SharedSupport/Support/lib/builder.rb:86:in `blank_slate_method_added': stack level too deep (SystemStackError) from /Applications/TextMate.app/Contents/SharedSupport/Support/lib/builder.rb:86:in `blank_slate_method_added' from /Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib/blankslate.rb:84:in `method_added' from /Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib/blankslate.rb:104 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' from /Users/jbasdf/projects/red/vendor/rails/activesupport/lib/active_support/basic_object.rb:21 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' ... 32 levels... from /Users/jbasdf/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/spec/../spec/mate/runner.rb:36:in `chdir' from /Users/jbasdf/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/spec/../spec/mate/runner.rb:36:in `run' from /Users/jbasdf/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/spec/../spec/mate/runner.rb:24:in `run_focussed' from [...]]]></description>
			<content:encoded><![CDATA[<p>After installing the <a href="http://github.com/rspec/rspec-tmbundle">Textmate RSpec bundle</a> I started getting this error:</p>
<p>
/Applications/TextMate.app/Contents/SharedSupport/Support/lib/builder.rb:86:in `blank_slate_method_added': stack level too deep (SystemStackError) from /Applications/TextMate.app/Contents/SharedSupport/Support/lib/builder.rb:86:in `blank_slate_method_added' from /Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib/blankslate.rb:84:in `method_added' from /Library/Ruby/Gems/1.8/gems/builder-2.1.2/lib/blankslate.rb:104 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' from /Users/jbasdf/projects/red/vendor/rails/activesupport/lib/active_support/basic_object.rb:21 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' ... 32 levels... from /Users/jbasdf/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/spec/../spec/mate/runner.rb:36:in `chdir' from /Users/jbasdf/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/spec/../spec/mate/runner.rb:36:in `run' from /Users/jbasdf/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/spec/../spec/mate/runner.rb:24:in `run_focussed' from /tmp/textmate-command-31296.rb:3
</p>
<p>The solution is pretty simple. Just add this to spec_helper.rb:</p>
<pre class="ruby">&nbsp;
$:.<span style="color:#9900CC;">reject</span>! <span style="color:#006600; font-weight:bold;">&#123;</span> |e| e.<span style="color:#9966CC; font-weight:bold;">include</span>? <span style="color:#996600;">'TextMate'</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/07/31/textmate-rspec-bundle-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cervelo eRide Came to Logan</title>
		<link>http://www.justinball.com/2010/07/25/cervelo-eride-came-to-logan/</link>
		<comments>http://www.justinball.com/2010/07/25/cervelo-eride-came-to-logan/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 02:01:43 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Cycling]]></category>
		<category><![CDATA[cervelo]]></category>
		<category><![CDATA[eride]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1391</guid>
		<description><![CDATA[Cervelo brought their test ride wagon through town yesterday so I jumped at the chance to go out and pound on someone else's expensive bike. I and Joel took a couple of S3s up Smithfield Canyon. Cervelo calls the S3 the fastest bike in the peleton due to it's aerodynamic design. The guys at the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cervelo.com/">Cervelo</a> brought their test ride wagon through town yesterday so I jumped at the chance to go out and pound on someone else's expensive bike. I and Joel took a couple of S3s up Smithfield Canyon. Cervelo calls the S3 the fastest bike in the peleton due to it's aerodynamic design. The guys at the demo claimed a 15 watt savings. Their site says 10. I wondered how big of a difference it could make.</p>
<p>Turns out it makes a big difference. I normally ride a Madone 6.9 which is a pretty nice ride. The S3 felt faster. It is a bike that flies. Now the S3 comes with Zipp 404s while I ride XXX Lites. I'd really like to throw those wheels on my bike and get a feel for the ride difference (I'm thinking I might need some wheels for Christmas). </p>
<p>We had a great time. The fit on the S3 was great. I was frequently surprised at how fast I was going given the power output. I have a good feel for how fast I should be going at a given effort and the difference was noticeable. It is a super light bike. It is an incredibly fun bike. It accelerated fast. It was easy to keep going fast. However, it sends up a lot more road noise than some of the other super bikes I've ridden (like my Madone or a Time). It wasn't as comfortable as my current bike but on shorter rides old guys like me wouldn't notice/care.</p>
<p>Would I buy this bike? I think so. It was a heck of a lot of fun and I think I would buy it just for that. However, it's probably a couple down on my list. My next bike will likely be a custom titanium from <a href="http://www.strongframes.com/">Carl Strong</a>. Someday I'd like to buy one from <a href="http://www.crumptoncycles.com/">Crumpton</a> or <a href="http://www.calfeedesign.com/">Calfee</a>. You don't drop 7-10k on a bike everyday and so in that class there is a lot of incredible hardware to choose from. Also, I feel like for the money those bikes deserve a higher place in the queue. The Cervelo is made in China and is <a href="http://forums.cervelo.com/forums/p/5956/42332.aspx">rumored to have a few quality problems</a>. In the end the ride and the fun is what matters but those factors being equal I'd pick the higher quality bike with the sexier pedigree.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/07/25/cervelo-eride-came-to-logan/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Userfly Ruined My Weekend &#8211; &#8220;jQuery(&#8220;form.ajax&#8221;).ajaxForm is not a function&#8221;</title>
		<link>http://www.justinball.com/2010/07/20/userfly-ruined-my-weekend-jqueryform-ajax-ajaxform-is-not-a-function/</link>
		<comments>http://www.justinball.com/2010/07/20/userfly-ruined-my-weekend-jqueryform-ajax-ajaxform-is-not-a-function/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 00:09:23 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[userfly]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1386</guid>
		<description><![CDATA[I've been a big fan of Userfly because they make usability testing easy. Their tool is really quite amazing. However, this last weekend and into today I've become less of a fan. After a late night deploy last week on a site I've been working on I noticed that none of my javascript worked. Lucky [...]]]></description>
			<content:encoded><![CDATA[<p>I've been a big fan of <a href="http://userfly.com/">Userfly</a> because they make usability testing easy. Their tool is really quite amazing. However, this last weekend and into today I've become less of a fan. After a late night deploy last week on a site I've been working on I noticed that none of my javascript worked. Lucky for me Firefox reports the errors. The errors were annoying things like "jQuery("form.ajax").ajaxForm is not a function". I knew for a fact that jquery.form.js was loaded. I could see the code. On occasion I've had problems with the javascript caching that Rails uses - it merges all the files together. I turned that off and it wasn't it</p>
<p>I could only see the error in production. In development everything worked fine. I swore a lot because that is the worst kind of error. yYou feel like you need to debug on the server or setup a staging server. Running my local box in 'production' mode didn't help. I couldn't reproduce the error until I remembered a recent <a href="http://railscasts.com/episodes/221-subdomains-in-rails-3">RailsCast about subdomains in Rails 3</a>. He had mentioned a couple of domains you can use that others have kindly set to point at localhost. I used 'http://smackaho.st:3000/'. Sure enough, the javascript errors started showing up which led me to do a bit more searching. I discovered that if you load jQuery and then load it again it will essentially reset your environment. I searched all my code to make sure I wasn't committing this sin and sure enough I wasn't. </p>
<p>The fact that the error only showed up when the domain changed to a production style domain led me to the javascript that we've inserted into the site to make third party services work. I started removing them one at a time and sure enough as soon as I removed userfly everything started working again.</p>
<p>I didn't investigate their code in depth but I'm betting they load jQuery and that it resets the jQuery environment essentially dumping everything I load.</p>
<p>Lesson learned, sort of. These days we rely on third-party services for everything from analytics to usability to comments and the list goes on. It's hard to not use these services as they make your life a lot easier but don't be afraid to throw them aside if you start getting random errors on your site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/07/20/userfly-ruined-my-weekend-jqueryform-ajax-ajaxform-is-not-a-function/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Get 3G internet access in Paris, France on your iPad</title>
		<link>http://www.justinball.com/2010/06/27/get-3g-internet-access-in-france-on-your-ipad/</link>
		<comments>http://www.justinball.com/2010/06/27/get-3g-internet-access-in-france-on-your-ipad/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 06:32:55 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[France iPad Internet access]]></category>
		<category><![CDATA[Paris]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1367</guid>
		<description><![CDATA[If you are a true geek and you are visiting Paris and you have an iPad (if you are a true geek then you do) then your first stop has to be the Louvre. Mary Magdelene may not be buried under the upside down pyramid but there is a shrine just as holy right there [...]]]></description>
			<content:encoded><![CDATA[<p>If you are a true geek and you are visiting Paris and you have an iPad (if you are a true geek then you do) then your first stop has to be the Louvre. Mary Magdelene may not be buried under the upside down pyramid but there is a shrine just as holy right there - an Apple store!<br />
<a href="http://www.justinball.com/2010/06/27/get-3g-internet-access-in-france-on-your-ipad/apple-louvre/" ><img src="http://www.justinball.com/wp-content/uploads/2010/06/apple-louvre.jpg" alt="Apple Store at the Louvre" title="Apple Store at the Louvre" width="400" height="600" class="alignnone size-full wp-image-1372" /></a></p>
<p>Drop in there and chat with any of the guys in blue shirts. Tell them you want an SFR 3G microsim card. Most of the guys speak English and are really nice. The card will get you three days of unlimited data access and costs 9 euros. After that you can recharge the card at any kiosk around town - one day costs 6 euros. Do the math. Buying more sim cards is cheaper than trying to find a so I just bought two.</p>
<p>Don't buy the ATT international plan before you come over and do take your microsim card out on the plane. If you don't have a plan data costs about $24 a meg. If you do have a plan it costs a bit more than $1 per meg.</p>
<p>One other thing. You likely activated your iPad in the US so you won't have the right settings for the new SIM. Go into Cellular Data -> APN settings and then type in websfr for the APN. </p>
<p>You should be good to go.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/06/27/get-3g-internet-access-in-france-on-your-ipad/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>What is in my Pants?</title>
		<link>http://www.justinball.com/2010/06/04/what-is-in-my-pants/</link>
		<comments>http://www.justinball.com/2010/06/04/what-is-in-my-pants/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 15:53:14 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Devin]]></category>
		<category><![CDATA[Funny]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1360</guid>
		<description><![CDATA[I have three daughters. They are moody and emotional but relatively non-violent unless they are playing with dolls together in which case they fight like cats. It actually reminds me of the news the day after Thanksgiving. Some woman has to have the toy, dress, whatever and decks some other woman. I guess they never [...]]]></description>
			<content:encoded><![CDATA[<p>I have three daughters. They are moody and emotional but relatively non-violent unless they are playing with dolls together in which case they fight like cats. It actually reminds me of the news the day after Thanksgiving. Some woman has to have the toy, dress, whatever and decks some other woman. I guess they never grow out of it.</p>
<p>Devin is different. His approach to violence is far more, well, violent. He screams at his sisters, "I hate you!". At least he used to. We threatened to feed him soap so now he says, "I hate ...., I don't like it when you do that." I've been trying to teach him to say, "you vex my soul!"</p>
<p>He's the first of our kids to make guns out of anything he can find and he frequently 'shoots' his sisters and tells them he's going to 'kill them'. We don't let him watch anything but the Disney channel. I've not taken him shooting and don't own a gun. There's just something in the DNA that comes coded ready to shoot, kill, yell, jump, hunt.....</p>
<p>Anyway,  I'm in my office today coding my brains out 'cause that what I do all day when all of a sudden I hear a loud explosion and then a boom. Being the good dad that I am I yell, "what the hell?!!!" and run upstairs. Devin has found the latest box of junk we ordered from Amazon and is jumping on the packaging to make the air packets explode. To boys things that explode are really cool. Boys don't grow out of that. The explosions just get bigger and more colorful.</p>
<p>Last sunday in church, at full volume Devin screams out "What's in my pants? What is in my pants?!!!!"</p>
<p>I should have been horrified, but instead I laughed out loud. You can't imagine how many times I've wanted to yell that in the middle of a sermon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/06/04/what-is-in-my-pants/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fireeagle and PortableContacts Don&#8217;t Get Along. That Makes Daddy Mad.</title>
		<link>http://www.justinball.com/2010/06/02/fireeagle-and-portablecontacts-dont-get-along-that-makes-daddy-mad/</link>
		<comments>http://www.justinball.com/2010/06/02/fireeagle-and-portablecontacts-dont-get-along-that-makes-daddy-mad/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 06:14:03 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[fireeagle]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[Oauth]]></category>
		<category><![CDATA[portablecontacts]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1356</guid>
		<description><![CDATA[I have some code that looks like this:
&#160;
  user.google.portable_contacts.all
&#160;
As long as user.google is a valid token provided by oauth you will get back a list of the user's contacts from gmail.
That is unless you have the Fireeagle gem included in your application. In that case you will spend the night swearing like a sailor [...]]]></description>
			<content:encoded><![CDATA[<p>I have some code that looks like this:</p>
<pre class="ruby">&nbsp;
  user.<span style="color:#9900CC;">google</span>.<span style="color:#9900CC;">portable_contacts</span>.<span style="color:#9900CC;">all</span>
&nbsp;</pre>
<p>As long as user.google is a valid token provided by oauth you will get back a list of the user's contacts from gmail.</p>
<p>That is unless you have the Fireeagle gem included in your application. In that case you will spend the night swearing like a sailor and then weeping openly like a little girl. If you include fireeagle 0.8.0.1 in your project and make that call you will get an error like this:</p>
<pre>
ActionView::TemplateError (wrong number of arguments (1 for 0)) on line #7 of /Library/Ruby/Gems/1.8/gems/muck-invites-0.1.12/app/views/invites/_gmail_oauth.erb:
    /Library/Ruby/Gems/1.8/gems/oauth-0.4.0/lib/oauth/consumer.rb:154:in `create_http'
    /Library/Ruby/Gems/1.8/gems/oauth-0.4.0/lib/oauth/consumer.rb:154:in `request'
    /Library/Ruby/Gems/1.8/gems/oauth-0.4.0/lib/oauth/tokens/consumer_token.rb:25:in `request'
    /Library/Ruby/Gems/1.8/gems/oauth-0.4.0/lib/oauth/tokens/access_token.rb:11:in `request'
    /Library/Ruby/Gems/1.8/gems/oauth-0.4.0/lib/oauth/tokens/access_token.rb:24:in `get'
    /Library/Ruby/Gems/1.8/gems/portablecontacts-0.1.0/lib/portable_contacts.rb:55:in `get'
    /Library/Ruby/Gems/1.8/gems/portablecontacts-0.1.0/lib/portable_contacts.rb:43:in `all'
    /Users/jbasdf/projects/muck-oauth/app/helpers/muck_oauth_helper.rb:32:in `gmail_contacts'
    /Users/jbasdf/projects/muck-oauth/app/helpers/muck_oauth_helper.rb:16:in `gmail_contacts_as_array'
</pre>
<p>Naturally you will follow the stack trace down to the call in the oauth gem to create_http. Then you will look at the call to it and everything will look fine. The oauth gem works for everyone else. Why does it not work? WTF? Stupid code. I should have dropped out of engineering and become a business major. Seriously WTF? This code is never even called. What the hell!!!!!</p>
<p>Then you will remember that ruby is the best, most awesome language ever and you can replace methods dynamically on the fly, and  you will figure out that the create_http method being called is not the one in the file you are looking at.</p>
<p>Next you get to figure out what method is being called. It took a lot of colorful language, some lost hair, my wife almost left me, but by luck I found it:</p>
<pre class="ruby">&nbsp;
<span style="color:#008000; font-style:italic;"># FireEagle addition to the &lt;code&gt;OAuth::Consumer&lt;/code&gt; class</span>
<span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#6666ff; font-weight:bold;">OAuth::Consumer</span>
  alias_method <span style="color:#ff3333; font-weight:bold;">:create_http_with_verify</span>, <span style="color:#ff3333; font-weight:bold;">:create_http</span>
  <span style="color:#008000; font-style:italic;"># Monkey patch to silence the SSL warnings</span>
  <span style="color:#9966CC; font-weight:bold;">def</span> create_http_without_verify <span style="color:#008000; font-style:italic;">#:nodoc:</span>
    http_object             = create_http_with_verify
    http_object.<span style="color:#9900CC;">verify_mode</span> = <span style="color:#6666ff; font-weight:bold;">OpenSSL::SSL::VERIFY_NONE</span> <span style="color:#9966CC; font-weight:bold;">if</span> uri.<span style="color:#9900CC;">scheme</span>==<span style="color:#996600;">&quot;https&quot;</span>
    http_object
  <span style="color:#9966CC; font-weight:bold;">end</span>
  alias_method <span style="color:#ff3333; font-weight:bold;">:create_http</span>, <span style="color:#ff3333; font-weight:bold;">:create_http_without_verify</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;</pre>
<p>Death to the bastard that wrote that code.</p>
<p>Here's what the code inside oauth looks like:</p>
<pre class="ruby">&nbsp;
    <span style="color:#008000; font-style:italic;"># Instantiates the http object</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> create_http<span style="color:#006600; font-weight:bold;">&#40;</span>_url = <span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">if</span> _url.<span style="color:#0000FF; font-weight:bold;">nil</span>? || _url<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span> =~ /^\//
        our_uri = <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>site<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">else</span>
        our_uri = <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>_url<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
      <span style="color:#9966CC; font-weight:bold;">if</span> proxy.<span style="color:#0000FF; font-weight:bold;">nil</span>?
        http_object = <span style="color:#6666ff; font-weight:bold;">Net::HTTP</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>our_uri.<span style="color:#9900CC;">host</span>, our_uri.<span style="color:#9900CC;">port</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">else</span>
        proxy_uri = proxy.<span style="color:#9900CC;">is_a</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">URI</span><span style="color:#006600; font-weight:bold;">&#41;</span> ? proxy : <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>proxy<span style="color:#006600; font-weight:bold;">&#41;</span>
        http_object = <span style="color:#6666ff; font-weight:bold;">Net::HTTP</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>our_uri.<span style="color:#9900CC;">host</span>, our_uri.<span style="color:#9900CC;">port</span>, proxy_uri.<span style="color:#9900CC;">host</span>, proxy_uri.<span style="color:#9900CC;">port</span>, proxy_uri.<span style="color:#9900CC;">user</span>, proxy_uri.<span style="color:#9900CC;">password</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
      http_object.<span style="color:#9900CC;">use_ssl</span> = <span style="color:#006600; font-weight:bold;">&#40;</span>our_uri.<span style="color:#9900CC;">scheme</span> == <span style="color:#996600;">'https'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
      <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#0066ff; font-weight:bold;">@options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:ca_file</span><span style="color:#006600; font-weight:bold;">&#93;</span> || CA_FILE
        http_object.<span style="color:#9900CC;">ca_file</span> = <span style="color:#0066ff; font-weight:bold;">@options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:ca_file</span><span style="color:#006600; font-weight:bold;">&#93;</span> || CA_FILE
        http_object.<span style="color:#9900CC;">verify_mode</span> = <span style="color:#6666ff; font-weight:bold;">OpenSSL::SSL::VERIFY_PEER</span>
        http_object.<span style="color:#9900CC;">verify_depth</span> = <span style="color:#006666;">5</span>
      <span style="color:#9966CC; font-weight:bold;">else</span>
        http_object.<span style="color:#9900CC;">verify_mode</span> = <span style="color:#6666ff; font-weight:bold;">OpenSSL::SSL::VERIFY_NONE</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
      http_object
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;</pre>
<p>Notice that the new method in the oauth gem takes optional parameters while the monkey patched version doesn't? MonkeyPatching causes me to use words that destroy my eternal salvation. Stop it.</p>
<p>I couldn't figure out why no one else has had this problem. Maybe someone has but it was the combination of gems I was playing with that caused the problem. I dropped fireeagle from the project and everything magically started working.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/06/02/fireeagle-and-portablecontacts-dont-get-along-that-makes-daddy-mad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Upgrade to Rails 2.3.8 Unless You Really Mean It</title>
		<link>http://www.justinball.com/2010/05/26/dont-upgrade-to-rails-2-3-8-unless-you-really-mean-it/</link>
		<comments>http://www.justinball.com/2010/05/26/dont-upgrade-to-rails-2-3-8-unless-you-really-mean-it/#comments</comments>
		<pubDate>Wed, 26 May 2010 15:14:25 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1354</guid>
		<description><![CDATA[I just got a new laptop which means re-installing everything. This included Rails and I ended up with 2.3.8. Most of my projects use 2.3.5. I figured no big deal since various Rails versions have always played together in the past. I installed 2.3.5 with gem install rails -v=2.3.5 and figured all would be well.
I [...]]]></description>
			<content:encoded><![CDATA[<p>I just got a new laptop which means re-installing everything. This included Rails and I ended up with 2.3.8. Most of my projects use 2.3.5. I figured no big deal since various Rails versions have always played together in the past. I installed 2.3.5 with gem install rails -v=2.3.5 and figured all would be well.</p>
<p>I would be wrong in that assumption.</p>
<p>Instead of just working anytime I try to run a 2.3.5 app (most of my apps at the moment). I get this:</p>
<p>Missing the Rails 2.3.5 gem. Please `gem install -v=2.3.5 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.</p>
<p>So my next step was to uninstall 2.3.8. I still get the error. I uninstalled and then reinstalled Rails and things seem to be working.</p>
<p>Heroku has the answer: <a href="http://docs.heroku.com/rails236">http://docs.heroku.com/rails236</a>.</p>
<p>This is why it's usually a good idea to wait a little while after a Rails update. I have to keep reminding myself of that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/05/26/dont-upgrade-to-rails-2-3-8-unless-you-really-mean-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting Up mysql as utf8 for Ruby on Rails using homebrew</title>
		<link>http://www.justinball.com/2010/05/25/setting-up-mysql-as-utf8-for-ruby-on-rails-using-homebrew/</link>
		<comments>http://www.justinball.com/2010/05/25/setting-up-mysql-as-utf8-for-ruby-on-rails-using-homebrew/#comments</comments>
		<pubDate>Tue, 25 May 2010 22:29:44 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql gem]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1349</guid>
		<description><![CDATA[It took me far to much time to get this to work right so hopefully this is helpful for someone (probably me at some point in the future).
The hashrocket guys have a great writeup on configuring your development environment. I didn't need some of their bash configuration but it's a great starting place.
Once you have [...]]]></description>
			<content:encoded><![CDATA[<p>It took me far to much time to get this to work right so hopefully this is helpful for someone (probably me at some point in the future).</p>
<p>The <a href="http://blog.therubymug.com/blog/2010/05/20/the-install-osx.html">hashrocket guys have a great writeup on configuring your development environment</a>. I didn't need some of their bash configuration but it's a great starting place.</p>
<p>Once you have mysql installed with homebrew it can still be handy to customize your mysql configuration. <a href="http://darwinweb.net/articles/87">Here's an article on how to configure my.cnf</a>.</p>
<p>My configuration ended up looking like the code below which I got from this <a href="http://hugofrappier.wordpress.com/2010/01/01/rails-1-2-x-ruby-1-8-6-snow-leopard-the-missing-link/">article</a>. <a href="http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html">Here's more info on the values you can specify</a>. I placed the code into '/etc/my.cnf'. That's probably more global than most people want, but it works great for me.</p>
<pre>
[mysqld]
#Max packetlength to send/receive from to server.
max_allowed_packet=64M
#socket = /var/mysql/mysql.sock
character-set-server = utf8
default-character-set = utf8

#This option makes InnoDB to store each created table into its own .ibd file.
innodb_file_per_table

[mysql]
default-character-set = utf8

[client]
#socket = /var/mysql/mysql.sock
default-character-set=utf8
</pre>
<p>Here's how I ended up installing the mysql gem. (Always a pain to get this right).</p>
<pre>
sudo env ARCHFLAGS="-arch x86_64" gem install mysql --no-rdoc --no-ri -- --with-mysql-config=/usr/local/bin/mysql_config
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/05/25/setting-up-mysql-as-utf8-for-ruby-on-rails-using-homebrew/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Men in Tights</title>
		<link>http://www.justinball.com/2010/05/07/men-in-tights/</link>
		<comments>http://www.justinball.com/2010/05/07/men-in-tights/#comments</comments>
		<pubDate>Fri, 07 May 2010 07:06:37 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Cycling]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2010/05/07/men-in-tights/</guid>
		<description><![CDATA[My MacBook died today. When you write code for a living that really sucks. Then I ran out of M&#038;Ms.  That sucks a lot too.
 Snow be damned when everything else falls apart you simply must ride so I and Joel headed up Left Hand Fork in a spring blizzard because, well, after you [...]]]></description>
			<content:encoded><![CDATA[<p>My MacBook died today. When you write code for a living that really sucks. Then I ran out of M&Ms.  That sucks a lot too.</p>
<p> Snow be damned when everything else falls apart you simply must ride so I and Joel headed up Left Hand Fork in a spring blizzard because, well, after you get dressed up in tights there's no going back.</p>
<p>When we parked the truck the snow was falling pretty hard. The sky was darkening. It was getting cold. We had driven all that way so turning back wasn't an option.</p>
<p>Further and further we ascending, snow attempting to drive us back to the warmth of the truck, but by hell we were men in tights and guys with that level of resolve don't turn back.</p>
<p>Then the weather cleared and we did what any self-respecting guy would do we kept going higher and higher. Time finally forced us to turn back and in a way time was finally on our side. Not long into our decent the snow returned for revenge and our epic spring ride began. Unable to feel our fingers we gave up on using the brakes (real men don't need them anyway). Faster and faster we rode, the snow piled in our path, wolves howled in the distance. We faced the pedaled to the very edge of death and came back victors.</p>
<p>Back at the truck I warmed my fingers just enough to find the keys hidden in my jacket. As the blood returned to our extremities the sting, more than a normal human could bear, reminded us what it means to be alive.</p>
<p>You might think us crazy for riding in the mountains, far from help, snow and cold pushing us towards death, but you'd be wrong. That's not what makes us crazy. That we're going to do it again tomorrow is what makes us crazy (oh and the tights probably mark us as a bit nuts too).  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/05/07/men-in-tights/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>I&#8217;m Back</title>
		<link>http://www.justinball.com/2010/03/26/im-back/</link>
		<comments>http://www.justinball.com/2010/03/26/im-back/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 21:26:51 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://www.justinball.com/?p=1339</guid>
		<description><![CDATA[The blog has been down for a few days. Once or twice a year I like to give my technology a break. Let the electrons spin free for a while that sort of thing.
I thought I would move the blog from bluehost to webbynode and so I've spent the past few days trying to do [...]]]></description>
			<content:encoded><![CDATA[<p>The blog has been down for a few days. Once or twice a year I like to give my technology a break. Let the electrons spin free for a while that sort of thing.</p>
<p>I thought I would move the blog from bluehost to webbynode and so I've spent the past few days trying to do just that. I had high hopes for using webbynode as a low cost host where I could put my blog and then stage a Rails site or run a few experiments. After several tries rebuilding the server and trying different deploys I gave up and now I'm back to my old account.</p>
<p>I still think Webbynode is a great service. They make putting up a Rails app a trivial process. I don't think that running a php app (Wordpress in my case) next to your Rails app is very good idea unless you move up to the larger plans which means spending a lot of money just to run a blog. If you're going to end up paying that much more you may as well keep a basic account for the blog and run a separate account for your Rails experiments.</p>
<p>Anyway, electron vacation is over and the site's back up. I know you missed me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2010/03/26/im-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
