<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>ok with failure - Home</title>
  <id>tag:okwithfailure.com,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  <link href="http://okwithfailure.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://okwithfailure.com/" rel="alternate" type="text/html"/>
  <updated>2008-08-11T00:27:50Z</updated>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-08-11:4731</id>
    <published>2008-08-11T00:21:00Z</published>
    <updated>2008-08-11T00:27:50Z</updated>
    <category term="quote"/>
    <link href="http://okwithfailure.com/2008/8/11/quite-relevant-quote-from-_why" rel="alternate" type="text/html"/>
    <title>quite relevant quote from _why</title>
<content type="html">
            &lt;blockquote&gt;
		&lt;p&gt;when you don&#8217;t create things, you become defined by your tastes rather than ability. your tastes only narrow &#38; exclude people. so create.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;&lt;a href=&quot;http://twitter.com/_why&quot;&gt;_why&#8217;s twitter&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;so go out and create something!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-05-25:4344</id>
    <published>2008-05-25T21:11:00Z</published>
    <updated>2008-05-25T21:33:22Z</updated>
    <category term="attachment_fu"/>
    <category term="quick hacks"/>
    <category term="rails"/>
    <category term="Rails"/>
    <category term="ruby"/>
    <category term="Ruby"/>
    <link href="http://okwithfailure.com/2008/5/25/recreating-thumbnails-with-attachment_fu" rel="alternate" type="text/html"/>
    <title>Recreating thumbnails with attachment_fu</title>
<content type="html">
            &lt;p&gt;In one of my apps, the need arose to use a new thumbnail size (using attachment_fu). My problem was I had a ton of existing images that I would have to create this thumbnail size for. But how? A google search didn&#8217;t turn up much.  So i threw together a little instance method that would make quick and short work or creating (or re-creating) a thumbnail for images i already had in my database. I just stuck it in an initializer with my other attachment_fu hacks. It goes a little something like this&lt;/p&gt;


&lt;pre&gt;

module Technoweenie 
  module AttachmentFu
    module InstanceMethods
      def create_thumbnail_size(target_size)
        actual_size = self.attachment_options[:thumbnails][target_size]
        raise &quot;this class doesn't have a thubnail size for #{target_size}&quot; if actual_size.nil?
        tmp = self.create_temp_file
        self.create_or_update_thumbnail(tmp, target_size.to_s, actual_size)
        FileUtils.rm_rf(Dir.glob(File.join(RAILS_ROOT, 'tmp', 'attachment_fu', '*')))
      end
    end
  end
end

&lt;/pre&gt;

	&lt;p&gt;nothing fancy and by no means the &#8220;best it could be&#8221; but meh, it gets the job done for me. Here an example of usage:&lt;/p&gt;


Say you have an Avatar class that you stuck your &#8220;has_attachment&#8221; on and you&#8217;ve decided you want to generate thumbnails of a new size. You designate this new size as &#8220;smaller&#8221; (in your has_attachment options, you&#8217;ve added it like so, :thumbnails =&amp;gt; {:thumb =&amp;gt; &#8216;75&#215;75&amp;gt;&#8217;, :smaller =&amp;gt; &#8216;25&#215;25&amp;gt;&#8216;}).  To create &#8220;smaller&#8221; avatar thumbnails, you&#8217;d grab all the avatars that need one and call create_thumbnail_size on each one. Like so&#8230;
&lt;pre&gt;
avatar. create_thumbnail_size(:smaller)
&lt;/pre&gt;

	&lt;p&gt;Voila. Thumbnails are recreated and you can move on. cheers!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-05-21:4159</id>
    <published>2008-05-21T08:28:00Z</published>
    <updated>2008-05-21T09:37:07Z</updated>
    <category term="TED"/>
    <link href="http://okwithfailure.com/2008/5/21/ted-talks-are-excellent-distractions" rel="alternate" type="text/html"/>
    <title>TED talks are excellent distractions</title>
<summary type="html">&lt;p&gt;As I was waiting for these very pages to load will finishing this little redesign, I decided to watch a few &lt;span class=&quot;caps&quot;&gt;TED&lt;/span&gt; talks videos to keep me awake. I&#8217;m glad I did. The talks I watched were the right mix of engaging, intriguing and inspiring. I&#8217;ll post a few of the ones I dug after the jump&#8230;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;As I was waiting for these very pages to load will finishing this little redesign, I decided to watch a few &lt;span class=&quot;caps&quot;&gt;TED&lt;/span&gt; talks videos to keep me awake. I&#8217;m glad I did. The talks I watched were the right mix of engaging, intriguing and inspiring. I&#8217;ll post a few of the ones I dug after the jump&#8230;&lt;/p&gt;
&lt;h3&gt;Andrew Mwenda&#8217;s talk on Africa Aid&lt;/h3&gt;
&lt;div&gt;&amp;lt;object height=&quot;285&quot; width=&quot;320&quot;&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;embed src=&quot;http://static.videoegg.com/ted/flash/loader.swf&quot; height=&quot;285&quot; width=&quot;320&quot;&gt;&amp;lt;/object&gt;&lt;p&gt; thanks @StaceyMonk for the tip!&lt;/p&gt;&lt;/div&gt;

&lt;h3&gt; Brian Greene&#8217;s talk on superstring theory &lt;/h3&gt;
&lt;div&gt; &amp;lt;object height=&quot;285&quot; width=&quot;320&quot;&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;embed src=&quot;http://static.videoegg.com/ted2/flash/loader.swf&quot; height=&quot;285&quot; width=&quot;320&quot;&gt;&amp;lt;/object&gt;&lt;/div&gt;

&lt;h3&gt; Gever Tulley&#8217;s talk on 5 dangerous things your kids should play with &lt;/h3&gt;
&lt;div&gt; &amp;lt;object height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;embed src=&quot;http://static.videoegg.com/ted/flash/loader.swf&quot; height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;/object&gt; &lt;/div&gt;

&lt;h3&gt; Stephen Hawking on our place in the universe &lt;/h3&gt;
&lt;div&gt; &amp;lt;object height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;embed src=&quot;http://static.videoegg.com/ted2/flash/loader.swf&quot; height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;/object&gt; &lt;/div&gt;

&lt;h3&gt; Mark Bittman on the horrid food we feast on &lt;/h3&gt;
&lt;div&gt; &amp;lt;object height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;embed src=&quot;http://static.videoegg.com/ted2/flash/loader.swf&quot; height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;/object&gt;  &lt;p&gt;i think i saw Jim Jeffers post this on Facebook so thanks!&lt;/p&gt;&lt;/div&gt;

&lt;h3&gt; Brian Cox&#8217;s talk on the &lt;span class=&quot;caps&quot;&gt;LHC&lt;/span&gt; (Large Hadron Collider at &lt;span class=&quot;caps&quot;&gt;CERN&lt;/span&gt;) and why it exists &lt;/h3&gt;
&lt;div&gt; &amp;lt;object height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;embed src=&quot;http://static.videoegg.com/ted2/flash/loader.swf&quot; height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;/object&gt; &lt;/div&gt;

&lt;h3&gt;  Robert Ballard&#8217;s talk on why we need to be doing more ocean exploration &lt;/h3&gt;
&lt;div&gt; &amp;lt;object height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;param&gt;&amp;lt;embed src=&quot;http://static.videoegg.com/ted2/flash/loader.swf&quot; height=&quot;285&quot; width=&quot;432&quot;&gt;&amp;lt;/object&gt; &lt;/div&gt;

	&lt;p&gt;Fascinating stuff really. I hope I get the chance to attend this conference some year.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-22:798</id>
    <published>2008-03-22T08:01:00Z</published>
    <updated>2008-05-21T04:33:15Z</updated>
    <category term="SXSW2k8"/>
    <link href="http://okwithfailure.com/2008/3/22/my-sxsw2k8-story-as-told-in-pictures" rel="alternate" type="text/html"/>
    <title>My SXSW2k8, as told in pictures</title>
<summary type="html">&lt;p&gt;I&#8217;m mostly not well known for two things:&lt;/p&gt;


	&lt;p&gt;1. My stunning good looks
2. My horrid picture taking.&lt;/p&gt;


	&lt;p&gt;So it&#8217;s not surprising that a lot of the photos I took (or that had the sad misfortune of being taken were taken by my camera), ended up a tad on the blurry side. After combing through the batch and picking out the ones I thought were the most awesome (see if you can notice the trend), I decided to post a few of them here to give the world a sense of what my first &lt;span class=&quot;caps&quot;&gt;SXSW&lt;/span&gt; experience was like. This first one&#8217;s free and the rest are after the jump&#8230;&lt;/p&gt;


&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3040/2350931281_8964abc96c.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt;no place like home&#8230;&lt;/div&gt;&lt;/div&gt;</summary><content type="html">
            &lt;p&gt;I&#8217;m mostly not well known for two things:&lt;/p&gt;


	&lt;p&gt;1. My stunning good looks
2. My horrid picture taking.&lt;/p&gt;


	&lt;p&gt;So it&#8217;s not surprising that a lot of the photos I took (or that had the sad misfortune of being taken were taken by my camera), ended up a tad on the blurry side. After combing through the batch and picking out the ones I thought were the most awesome (see if you can notice the trend), I decided to post a few of them here to give the world a sense of what my first &lt;span class=&quot;caps&quot;&gt;SXSW&lt;/span&gt; experience was like. This first one&#8217;s free and the rest are after the jump&#8230;&lt;/p&gt;


&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3040/2350931281_8964abc96c.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt;no place like home&#8230;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3192/2351761854_28f706a67f.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; casa de integrum for SXSW2k8, that&#8217;s how we roll &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3165/2351762628_1e0415ed24.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; and to think, I only lost it once &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3234/2351762910_ec4f3bf97c.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; &#8220;if we build it, they will come&#8221;, if we build it, they will come&#8221;  &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3008/2350933827_7ea76b4e0f.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; awesome panel on moving fast, wanted to chat but didn&#8217;t want to fight those in line &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2270/2350934873_3382d3ab54.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; who&#8217;s tall, dark, handsome and loves &lt;a href=&quot;http://gothamist.com/2007/06/28/matt_the_ice_cr.php&quot;&gt;free ice cream&lt;/a&gt;? me too! &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3261/2351765770_77152bd358.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; me and &lt;a href=&quot;http://en.wikipedia.org/wiki/Kevin_Rose&quot;&gt;kevin rose&lt;/a&gt; are like this &#38;, we&#8217;re both avid tea drinkers &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2144/2350935775_5171065f4f.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; yeah, i&#8217;m a digg fanboy &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3155/2351766352_c6af30d3ac.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; it&#8217;s ok &lt;a href=&quot;http://scobleizer.com&quot;&gt;robert scoble&lt;/a&gt;, telescopes make me cry too  &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3189/2351766676_7a47626c38.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; &lt;a href=&quot;http://evhead.com/&quot;&gt;evan williams&lt;/a&gt; (not the whiskey) and i, stoic..iconic even &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3200/2351766946_9ee9a7c7cf.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; hey! it&#8217;s that guy! &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2129/2351767226_a0a1958688.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; thank you &lt;a href=&quot;http://leahculver.com/&quot;&gt;leah culver&lt;/a&gt; and &lt;a href=&quot;http://davemorin.com/blog/&quot;&gt;dave morin&lt;/a&gt; for not punching me in the face, didn&#8217;t mean to &#8220;pownce&#8221; on you guys, hahahahahahah (ok, now you can hit me)  &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2286/2350937185_c2db4c38eb.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt;  animal lover &#8220;Ted &#8220;who let the dogs out!&lt;a href=&quot;http://www.dogster.com/about/team.php&quot;&gt; Rheingold&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2251/2351767784_5b2b739ab4.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt;my name is curtis, and I approve this interview&#8230;.sadly, I did not get a picture with the zuck. he is inhumanly fast. &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3166/2350937763_732c8e56c3.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; it&#8217;s the icanhascheezeburger guy (on the left), and the guy who bought his site! really sucks that all the cheeseburgers were gone by the time the panel was over :(&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2092/2351768626_1e99045c78.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; bowling champs &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3172/2351768908_86bfbd4f68.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; our fearless leader. his back is now stuck like that. &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2320/2351769096_6a4c13bd66.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; &#8220;why yes &lt;a href=&quot;http://mashable.com/&quot;&gt;pete cashmore&lt;/a&gt;, my collar is popped&#8221;  &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3296/2351769234_c249b905b8.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt;pete and my Doppleganger (who&#8217;s name is also Curtis)  &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3017/2350939171_f76bba232d.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; bowling pins about to get pwned &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2005/2351769810_dda31102bd.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; &lt;a href=&quot;http://www.horsepigcow.com/&quot;&gt;Tara Hunt&lt;/a&gt; is my hero  &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2048/2351770362_40fb44f8f1.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; Judge Dredd and me, bffs4life! &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2263/2350940687_d8aea9d9e7.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; always good to know &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2047/2351771462_cefda5c24b.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; what I wish I said:&lt;br /&gt;&lt;b&gt;&#8220;Hi &lt;a href=&quot;http://en.wikipedia.org/wiki/Jane_McGonigal&quot;&gt;Jane McGonigal&lt;/a&gt; , I really respect you as a person and admire your work&#8221;&lt;/b&gt;&lt;br /&gt;what I did say:&lt;br /&gt; &#8220;durrrr jane! can I take a picture!&#8221; d&#8217;oh!  &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2280/2351771736_c395ff6c81.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; &lt;a href=&quot;http://www.justin.tv/ijustine&quot;&gt;iJustine&lt;/a&gt;, &lt;a href=&quot;http://www.iamcal.com/&quot;&gt;Cal Henderson&lt;/a&gt; and good lookin (me..well, all three of us i guess, &#8220;me&#8221; is just a force of habit) &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2410/2350941719_b4e469fa31.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; no &lt;a href=&quot;http://tv.winelibrary.com/&quot;&gt;Gary V&lt;/a&gt;, I don&#8217;t know who she is either&#8230; &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3042/2351772310_b2c4c84bcb.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; &lt;a href=&quot;http://www.blogmaverick.com/&quot;&gt;mark cuban&lt;/a&gt; and I were both totally stoked to be front in line for the port-o-lets &lt;/div&gt;&lt;/div&gt;

&lt;div&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2152/2350942301_7d60289a88.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;div&gt; tried to make it look like I was wearing the hat, ended up taking an awesome picture of my shirt :) &lt;/div&gt;&lt;/div&gt;

	&lt;p&gt;&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;So all in all, my first &lt;span class=&quot;caps&quot;&gt;SXSW&lt;/span&gt; experience was &lt;span class=&quot;caps&quot;&gt;AWESOME&lt;/span&gt;! Thanks to all who were kind enough to pose a second or two (or 8 in Gary V&#8217;s case, sorry! I&#8217;m new to cameras!) and take a picture with me. I deeply respect and admire pretty much everyone who was there. Good times, good booze and good people. See you next year!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-08:700</id>
    <published>2008-03-08T23:00:00Z</published>
    <updated>2008-03-09T07:07:23Z</updated>
    <category term="SXSW2k8"/>
    <link href="http://okwithfailure.com/2008/3/8/sxsw-2k8-social-marketing" rel="alternate" type="text/html"/>
    <title>SXSW 2k8: Social Marketing</title>
<content type="html">
            &lt;p&gt;My notes from the Social Media panel. The panel is going to discuss how to sell social media marketing to companies and why they should be doing it if they aren&#8217;t.&lt;/p&gt;


	&lt;p&gt;-A good way to sell social media marketing to the big wigs would be to speak to what they&#8217;re interested in. Gaining more exposure, getting in touch with users etc&#8230;&lt;/p&gt;


	&lt;p&gt;-Metrics are still a big deal for companies.&lt;/p&gt;


	&lt;p&gt;and that&#8217;s about it because i was bored out of of mind. Maybe I&#8217;ll just post about the panels that move me to do so.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-08:699</id>
    <published>2008-03-08T21:33:00Z</published>
    <updated>2008-03-08T22:59:01Z</updated>
    <category term="SXSW2k8"/>
    <link href="http://okwithfailure.com/2008/3/8/sxsw-2k8-the-art-of-speed" rel="alternate" type="text/html"/>
    <title>SXSW 2k8: The Art of Speed</title>
<content type="html">
            &lt;p&gt;Figured I&#8217;d do some &lt;span class=&quot;caps&quot;&gt;SXSW&lt;/span&gt; blogging while I&#8217;m here so , here it goes.&lt;/p&gt;


	&lt;p&gt;I&#8217;m currently sitting in the Art of Speed panel discussion with the kick ass panel of Mike Cassidy (currently of BenchMark Capital), Evan Williams (currently of Twitter), Cali Lewis (of GeekBrief.TV) and  Tim Ferriss (of The Four Hour Work Week). I&#8217;ll be listing my own notes here for my own selfish reasons (a personal archive of sorts) and for your perusal. Hope it&#8217;s worthwhile.&lt;/p&gt;


	&lt;p&gt;-Mike Cassidy has a really impressive resume.&lt;/p&gt;


	&lt;p&gt;-Evan Williams is speaking about reaching critical mass and how &lt;span class=&quot;caps&quot;&gt;SWSX 2007&lt;/span&gt; helped Twitter skyrocket.&lt;/p&gt;


	&lt;p&gt;- Twitter is apparently really big in Japan.&lt;/p&gt;


	&lt;p&gt;-The more Evan Williams is talks about how &lt;span class=&quot;caps&quot;&gt;SXSW&lt;/span&gt; helped Twitter get huge, the more I realize &#8220;mass adoption&#8221; is more about having something usable and ready to go when the right time comes. &#8220;Luck favors the well prepared&#8221; comes to mind.&lt;/p&gt;


	&lt;p&gt;-Note to self: go where the market takes you.&lt;/p&gt;


	&lt;p&gt;-Cali is talking about how passion is key and can&#8217;t truly be faked. Doing what you&#8217;re naturally interested in allows you to put in what ever amount of work is required to make it work.&lt;/p&gt;


	&lt;p&gt;-I really need to start watching GeekBrief.tv, see what&#8217;s it&#8217;s like.&lt;/p&gt;


	&lt;p&gt;-Thought-Leaders and the Traffic-Leaders are not necessarily the same people. Good point. People seem to always go after the Traffic-Leaders (the Scbole&#8217;s and Arrington&#8217;s of the world).&lt;/p&gt;


	&lt;p&gt;-Wait a sec, Cassidy invented Xfire? He&#8217;s totally got to be into WoW.&lt;/p&gt;


	&lt;p&gt;-Cassidy touches on how you need to go above and beyond to get the right people. He invites recruits over to his house for dinner and sends congratulation flowers over to new hires, welcoming them to the team. Also mentioned how he&#8217;ll pay more for the right developers.&lt;/p&gt;


	&lt;p&gt;-Evan Williams says they don&#8217;t have a real big &#8220;feature implementation&#8221; process and how they try to understand how customers feel but being customer&#8217;s themselves.&lt;/p&gt;


	&lt;p&gt;-Evan makes an interesting point on how tricky it can be to balance the appeasement of the power users while planning for &#8220;regular&#8221; users down the road. An example: to use Blogger when it first launched, you had to put in your &lt;span class=&quot;caps&quot;&gt;FTP&lt;/span&gt; info. While the hosting of content didn&#8217;t come until later, the ftp features are still there to this day (...i think)&lt;/p&gt;


	&lt;p&gt;-From Cali &#8211; Don&#8217;t promote your goodness too early. Give yourself some time (or a few shows if you&#8217;re a vlogger) to work out the kinks and to find your voice and flow.&lt;/p&gt;


	&lt;p&gt;-Ready.Fire.Aim. &#8211; the key to quick development&lt;/p&gt;


	&lt;p&gt;-Things you shouldn&#8217;t do too quickly: handling internal team morrale issues, talking and meeting with people (don&#8217;t skimp just to meet more people in a shorter amount of time).&lt;/p&gt;


	&lt;p&gt;- Cassidy &#8220;if moral is high, the team can go 6 months without salary&#8221; (paraphrased) &#8211; interesting&#8230;&lt;/p&gt;


	&lt;p&gt;now it&#8217;s on to Q&#38;A, I don&#8217;t think I&#8217;ll post any of them unless there&#8217;s something really compelling.&lt;/p&gt;


	&lt;p&gt;Overall, good panel.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-06:690</id>
    <published>2008-03-06T04:22:00Z</published>
    <updated>2008-03-06T04:26:40Z</updated>
    <category term="Silverlight"/>
    <link href="http://okwithfailure.com/2008/3/6/silverlight-is-cool-and-all-but-really" rel="alternate" type="text/html"/>
    <title>Silverlight is cool and all but really</title>
<content type="html">
            &lt;p&gt;Couldn&#8217;t the &lt;a href=&quot;http://memorabilia.hardrock.com/&quot;&gt;Hard Rock Cafe Memorabilia site&lt;/a&gt; have been done in Flash?&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-06:689</id>
    <published>2008-03-06T04:19:00Z</published>
    <updated>2008-03-06T04:22:16Z</updated>
    <category term="APIs"/>
    <category term="google"/>
    <category term="Google"/>
    <link href="http://okwithfailure.com/2008/3/6/google-announces-google-contacts-api" rel="alternate" type="text/html"/>
    <title>Google announces Google Contacts API</title>
<content type="html">
            &lt;p&gt;Cheers to Google for making it easier to grab a user&#8217;s GMail contacts with their brand spanking new (to us) &lt;a href=&quot;http://googledataapis.blogspot.com/2008/03/3-2-1-contact-api-has-landed.html&quot;&gt;Google Contacts &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt;&lt;/a&gt;. No, there&#8217;s no OAuth support but this is an awesome start.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-06:688</id>
    <published>2008-03-06T04:08:00Z</published>
    <updated>2008-03-06T04:15:51Z</updated>
    <category term="facebook"/>
    <category term="Facebook"/>
    <category term="Finance"/>
    <link href="http://okwithfailure.com/2008/3/6/free-financial-times-subscr-for-facebookers" rel="alternate" type="text/html"/>
    <title>Free Financial Times Subscr. for Facebookers</title>
<content type="html">
            &lt;p&gt;Financial Times is going to be giving students (apparently you really do have to be a student, what about those of us who are students of the school of Hard Knox?) &lt;a href=&quot;http://www.paidcontent.co.uk/entry/419-ftcom-to-give-facebook-students-free-four-year-subs/&quot;&gt;free subscriptions&lt;/a&gt; to all who want. The subscriptions will only last for a year at a time, but those interested will be able to renew the subscriptions for free for up to 4 years.&lt;/p&gt;


	&lt;p&gt;I can&#8217;t say I read the mag (because I don&#8217;t) but I wonder if this can be seen as getting a kind of free financial education of sorts.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-06:687</id>
    <published>2008-03-06T03:56:00Z</published>
    <updated>2008-03-06T04:04:24Z</updated>
    <category term="Internet Explorer 8"/>
    <link href="http://okwithfailure.com/2008/3/6/internet-explorer-8-get-it-here" rel="alternate" type="text/html"/>
    <title>Internet Explorer 8, get it here</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2008/3/6/Picture_4.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
And by &#8220;here&#8221; I really mean over &lt;a href=&quot;http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/Install.htm&quot;&gt;there&lt;/a&gt; . I really like how Microsoft just kind of dropped &lt;span class=&quot;caps&quot;&gt;IE8&lt;/span&gt; on everyone today. There really wasn&#8217;t a lot of &#8220;IE8 is coming soon!!!&#8221; going on in the community prior to &lt;span class=&quot;caps&quot;&gt;MIX&lt;/span&gt; today and I think that was in large part due to Microsoft&#8217;s silence. More specifically, the &lt;span class=&quot;caps&quot;&gt;IE8&lt;/span&gt; team&#8217;s silence. Now granted, they made sure everyone knew that &lt;span class=&quot;caps&quot;&gt;IE8&lt;/span&gt; passed the &lt;span class=&quot;caps&quot;&gt;ACID2&lt;/span&gt; test but other than that, there really wasn&#8217;t a lot of noise from there camp. 

	&lt;p&gt;That&#8217;s different from them, and a bit refreshing. I still hate how I can&#8217;t just hack together a Silverlight-app as easy as I could a Ruby app but meh, I don&#8217;t have the time these days anyway.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-03-06:686</id>
    <published>2008-03-06T03:54:00Z</published>
    <updated>2008-03-06T03:55:56Z</updated>
    <category term="SXSW"/>
    <link href="http://okwithfailure.com/2008/3/6/sxsw-will-be-so-much-better-this-year" rel="alternate" type="text/html"/>
    <title>SXSW will be so much better this year...</title>
<content type="html">
            &lt;p&gt;...because I&#8217;ll be there! I&#8217;ll be the shining ray of sunshine and awesome easily spotted in any crowd. If you see me, feel free to say &#8220;hi&#8221; or &#8220;ZOMG it&#8217;s really you!&#8221; or whatever. I get them all.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-02-05:618</id>
    <published>2008-02-05T07:02:00Z</published>
    <updated>2008-02-05T07:07:11Z</updated>
    <category term="api"/>
    <category term="myspace"/>
    <category term="social networks"/>
    <link href="http://okwithfailure.com/2008/2/5/the-myspace-developer-site-is-open" rel="alternate" type="text/html"/>
    <title>The MySpace Developer site is open!</title>
<content type="html">
            &lt;p&gt;Oh, now it&#8217;s on!&lt;/p&gt;


	&lt;p&gt;I&#8217;m loving how they&#8217;re approaching the launch of their &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; by sticking by keeping everything sandboxed and letting everyone play on a level playing field (no one got early access to the api). It&#8217;ll be fun to see what people do with it (and you know I have stuff brewing!).&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://developer.myspace.com/community/&quot;&gt;Myspace &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; Documents&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-01-14:572</id>
    <published>2008-01-14T06:43:00Z</published>
    <updated>2008-01-14T06:51:44Z</updated>
    <category term="facebook"/>
    <category term="Facebook"/>
    <category term="Joyent"/>
    <link href="http://okwithfailure.com/2008/1/14/hooray-for-free-joyent-accelerators" rel="alternate" type="text/html"/>
    <title>Hooray for free Joyent Accelerators!</title>
<content type="html">
            &lt;p&gt;So I finally got accepted into Joyent&#8217;s &#8220;free Accelerator&#8217;s for Facebook appications&#8221; program. I plan on documenting working through a Facebook app with Rails from beginning to end in this big push to relaunch this site. I may even release the source code too but that more or less depends on how &#8220;generous&#8221; I&#8217;m feeling. Oh and by &#8220;generous&#8221; I mean if more than 2 people read that post and actually want the source or not. We&#8217;ll see.&lt;/p&gt;


	&lt;p&gt;Also, If there are any other aspiring Ruby/Rails/Human Facebook devs out there interested in &lt;a href=&quot;http://www.joyent.com/developers/facebook&quot;&gt;Joyent&#8217;s free Accelerator&lt;/a&gt; program*, you should know that it took me a few weeks to of waiting to get my account. Your time could be longer or shorter depending on demand. I personally was expecting something a little quicker and despite my inner-pulling to let you feel the same patience-pain I felt, I decided it was my duty as a decent netizen to let you know. So, enjoy!&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;- free for one year of course ;)&lt;/li&gt;
	&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2008-01-07:565</id>
    <published>2008-01-07T07:28:00Z</published>
    <updated>2008-01-07T07:32:33Z</updated>
    <category term="mephisto"/>
    <category term="Mephisto"/>
    <link href="http://okwithfailure.com/2008/1/7/running-the-edge-mephisto-and-edge-rails" rel="alternate" type="text/html"/>
    <title>Running edge Mephisto and edge Rails</title>
<content type="html">
            &lt;p&gt;I had a few problems trying to get the Mephisto trunk to run with the current edge Rails, my &#8220;few problems&#8221; really just being unable to run &lt;b&gt;rake db:bootstrap&lt;/b&gt; without getting a &lt;b&gt;wrong number of arguments (1 for 0)&lt;/b&gt; error. After trying a few things, it looked like my problems were rooted in old rubygems and rake versions, upgrading both allowed me to bootstrap just fine. Figured I&#8217;d throw this out there incase anyone else was having problems.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-20:544</id>
    <published>2007-12-20T04:48:00Z</published>
    <updated>2007-12-20T04:53:49Z</updated>
    <category term="Edge Rails"/>
    <link href="http://okwithfailure.com/2007/12/20/new-in-edge-rails-roll-your-own-controller-cache-engine" rel="alternate" type="text/html"/>
    <title>New in Edge Rails: Roll your own Controller cache engine</title>
<content type="html">
            &lt;p&gt;Or, go with one of the given options:&lt;/p&gt;


&lt;pre&gt;
 ActionController::Base.cache_store = :memory_store
ActionController::Base.cache_store = :file_store, &quot;/path/to/cache/directory&quot; 
ActionController::Base.cache_store = :drb_store, &quot;druby://localhost:9192&quot; 
ActionController::Base.cache_store = :mem_cache_store, &quot;localhost&quot; 
&lt;/pre&gt;

	&lt;p&gt;It&#8217;s also easier now to roll your own caching system by subclassing the ActiveSupport::Cache::Store and writing your own implementation of the read, write, delete and delete_matched methods. Ryan &#8220;Edge Rails&#8221; umm Johnson? (no idea what his last name but I had to use something, I couldn&#8217;t just leave it as his first name then a nickname, that would be silly) &lt;a href=&quot;http://ryandaigle.com/articles/2007/12/19/what-s-new-in-edge-rails-pluggable-controller-caching&quot;&gt;has the scoop&lt;/a&gt; and by &#8220;scoop&#8221; I mean more than what my lazy bum is going to write.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-20:543</id>
    <published>2007-12-20T04:43:00Z</published>
    <updated>2007-12-20T04:47:00Z</updated>
    <category term="Mac OSX"/>
    <link href="http://okwithfailure.com/2007/12/20/hook-ruby-files-into-spotlight" rel="alternate" type="text/html"/>
    <title>Hook ruby files into Spotlight</title>
<content type="html">
            &lt;p&gt;I like the idea of being able to find content in my ruby files via the native Mac Spotlight tool, I&#8217;m just leery, like &lt;a href=&quot;http://pragdave.blogs.pragprog.com/pragdave/2007/12/ruby-importer-f.html&quot;&gt;Dave Thomas&lt;/a&gt;, of how &#8220;heavy&#8221; that could be for my poor abused Macbook. The little guy gets no sleep. You can get the Spotlight plugin &lt;a href=&quot;http://www.apple.com/downloads/macosx/spotlight/rubyimporter.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-20:542</id>
    <published>2007-12-20T04:36:00Z</published>
    <updated>2007-12-20T04:38:49Z</updated>
    <category term="rails"/>
    <category term="Rails"/>
    <link href="http://okwithfailure.com/2007/12/20/advanced-rails-recipies-beta-hits" rel="alternate" type="text/html"/>
    <title>Advanced Rails Recipies beta hits</title>
<content type="html">
            &lt;p&gt;The first Recipies book was the first book that really got me deep into Rails so I&#8217;m excited to see what comes of it&#8217;s sequel, &lt;a href=&quot;http://pragprog.com/titles/fr_arr&quot;&gt;Advanced Rails Recipies&lt;/a&gt;, which is now in available in it&#8217;s beta stage.&lt;/p&gt;


	&lt;p&gt;You know you&#8217;ve grown as a Rails dev when &#8220;Advanced&#8221; topics actually start to make a little sense. Gotta love it :)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-20:541</id>
    <published>2007-12-20T04:32:00Z</published>
    <updated>2007-12-20T04:33:30Z</updated>
    <category term="Firefox"/>
    <link href="http://okwithfailure.com/2007/12/20/firefox-3-beta-2-get-now" rel="alternate" type="text/html"/>
    <title>Firefox 3 beta 2, get.now.</title>
<content type="html">
            &lt;p&gt;Firefox 3 beta 2. Better.Faster.Stronger. &lt;a href=&quot;http://www.appleinsider.com/articles/07/12/19/mac_os_x_10_5_2_to_deliver_sprawling_list_of_fixes_for_leopard.html&quot;&gt;Get it&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-20:540</id>
    <published>2007-12-20T04:24:00Z</published>
    <updated>2007-12-20T04:31:41Z</updated>
    <category term="Mac OSX"/>
    <link href="http://okwithfailure.com/2007/12/20/new-mac-update-to-contain-all-kinds-of-fixes" rel="alternate" type="text/html"/>
    <title>New Mac update to contain all kinds of fixes</title>
<content type="html">
            &lt;p&gt;The &lt;a href=&quot;http://www.appleinsider.com/articles/07/12/19/mac_os_x_10_5_2_to_deliver_sprawling_list_of_fixes_for_leopard.html&quot;&gt;Mac &lt;span class=&quot;caps&quot;&gt;OSX 10&lt;/span&gt;.5.2 update&lt;/a&gt; is going to be packing numerous fixes spanning from Dock to the Airport implementation. All in all, the beta update that was recently released to select devs ran around 350-360MB. The final update is said to contain fixes for around 76 issues.&lt;/p&gt;


	&lt;p&gt;Curent rumors have pegged the update, which will be the first Lepoard update to be be distributed externally, as being released sometime early next year when some new hardware is supposed to hit.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-20:539</id>
    <published>2007-12-20T04:17:00Z</published>
    <updated>2007-12-20T04:22:54Z</updated>
    <category term="Internet Explorer 8"/>
    <link href="http://okwithfailure.com/2007/12/20/internet-explorer-8-is-acid2compliant" rel="alternate" type="text/html"/>
    <title>Internet Explorer 8 is Acid2compliant</title>
<content type="html">
            &lt;p&gt;Big news in optimistic IE land today, the Internet Explorer 8 team &lt;a href=&quot;http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx&quot;&gt;reached the milestone&lt;/a&gt; of actually having Internet Explorer 8 render the &lt;a href=&quot;http://en.wikipedia.org/wiki/Acid2&quot;&gt;Acid2&lt;/a&gt; face.&lt;/p&gt;


	&lt;p&gt;Hooray for increaing support for real-world web-standars! I say real word because while the Acid2 is not a &#8220;real&#8221; official &#8220;standard&#8221;, it is a good litmus test.&lt;/p&gt;


	&lt;p&gt;As far as when &lt;span class=&quot;caps&quot;&gt;IE8&lt;/span&gt; will actually be released, expect a beta sometime in the first half of 2008&#8230;hopefully.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-15:535</id>
    <published>2007-12-15T11:27:00Z</published>
    <updated>2007-12-15T11:30:06Z</updated>
    <category term="mech"/>
    <link href="http://okwithfailure.com/2007/12/15/spider-mechs-ftw" rel="alternate" type="text/html"/>
    <title>Spider Mechs ftw</title>
<content type="html">
            &lt;div&gt;&amp;lt;object height=&quot;355&quot; width=&quot;425&quot;&gt;&amp;lt;param&gt;&amp;lt;/param&gt;&amp;lt;param&gt;&amp;lt;/param&gt;&amp;lt;embed src=&quot;http://www.youtube.com/v/Gz9kZh8PNVM&amp;amp;#38;rel=1&quot; height=&quot;355&quot; width=&quot;425&quot;&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;&lt;/div&gt;Seeing a real life spider-mech is both surreal and awesome at the same time. I wonder how long until I can buy one? There is no other ride I&#8217;d rather drop my 2nd grade daughter off at her bus stop in.
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-15:534</id>
    <published>2007-12-15T09:25:00Z</published>
    <updated>2007-12-15T09:30:29Z</updated>
    <category term="kthnxtees"/>
    <link href="http://okwithfailure.com/2007/12/15/introducing-kthnxtees" rel="alternate" type="text/html"/>
    <title>introducing KTHNXtees</title>
<content type="html">
            &lt;p&gt;Us &lt;a href=&quot;http://www.integrumtech.com/&quot;&gt;integrumers&lt;/a&gt; often find ourselves saying, &#8220;that&#8217;d make a great t-shirt!&#8221; and after a while, we decided that the next evolutionary step would be to actually make those shirts a reality. So I, and everyone else at integrum, present to you &lt;a href=&quot;http://www.kthxtees.com/&quot;&gt;KTHNXtees&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;How can you not love the &#8220;Reduce, Reuse, Refactor&#8221; shirt!&lt;/p&gt;


&lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/15/LzSma.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-15:533</id>
    <published>2007-12-15T09:12:00Z</published>
    <updated>2007-12-15T09:19:05Z</updated>
    <category term="books"/>
    <category term="ruby"/>
    <category term="Ruby"/>
    <link href="http://okwithfailure.com/2007/12/15/with-ruby-1-9-comes-an-updated-version-of-the-pickaxe" rel="alternate" type="text/html"/>
    <title>With Ruby 1.9 comes an updated version of the PickAxe!</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/15/ruby3_cover_small.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;With Ruby 1.9 on the horizon it&#8217;s good to see the Pargmatic crew release an &lt;a href=&quot;http://pragprog.com/titles/ruby3&quot;&gt;updated version&lt;/a&gt; of their Programming Ruby book, also known by it&#8217;s one-word moniker, the PickAxe. This book has singlehandedly taught scores of people the inner nuances of Ruby and without it, learning the language would&#8217;ve been that much harder.

	&lt;p&gt;The &lt;a href=&quot;http://pragprog.com/titles/ruby3&quot;&gt;Ruby 1.9 PickAxe&lt;/a&gt; is currently only available in beta form but the $59.95 for the beta and paperback version is sure to be money well spent.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-15:532</id>
    <published>2007-12-15T09:03:00Z</published>
    <updated>2007-12-15T09:11:24Z</updated>
    <category term="Moo.com"/>
    <link href="http://okwithfailure.com/2007/12/15/insight-into-moo-com" rel="alternate" type="text/html"/>
    <title>Insight into Moo.com</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/15/302_moo.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;There&#8217;s a nice long &lt;a href=&quot;http://uk.intruders.tv/Richard-Moross,-Stefan-Magdalinski-and-Lisa-Rodwell-of-MOO_a254.html&quot;&gt;video interview&lt;/a&gt; over at Intruders.tv with Richard Moross (Founder and &lt;span class=&quot;caps&quot;&gt;CEO&lt;/span&gt;), Stefan Magdalinski (CTO) and Lisa Rodwell (VP of Sales and Marketing) of Moo.com that delves a bit into their process and inspiration. 

	&lt;p&gt;I&#8217;ve never personally Moo.com for anything yet but I love how &#8220;high quality&#8221; just seems to emanate from their clean and colorful site.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-15:531</id>
    <published>2007-12-15T08:54:00Z</published>
    <updated>2007-12-15T09:02:22Z</updated>
    <category term="ruby"/>
    <category term="Ruby"/>
    <link href="http://okwithfailure.com/2007/12/15/breaking-down-what-s-new-in-ruby-1-9" rel="alternate" type="text/html"/>
    <title>Breaking down what's new in Ruby 1.9</title>
<content type="html">
            &lt;p&gt;For the Rubists out there who didn&#8217;t know, there&#8217;s a nice breakdown of what&#8217;s new in Ruby 1.9 over at &lt;a href=&quot;http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9#l5&quot;&gt;Eigenclass&lt;/a&gt; and by &#8220;breakdown&#8221; I mean extremely long list. It makes for pretty decent &#8220;casual perusal&#8221; material.&lt;/p&gt;


	&lt;p&gt;I like the &lt;span class=&quot;caps&quot;&gt;JSON&lt;/span&gt;-esque literal Hash syntax and how File.exists? is deprecated. Always wondered about why &#8220;exists?&#8221; and &#8220;exist?&#8221;, umm, existed.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-15:530</id>
    <published>2007-12-15T08:43:00Z</published>
    <updated>2007-12-15T08:48:45Z</updated>
    <category term="google"/>
    <category term="Google"/>
    <link href="http://okwithfailure.com/2007/12/15/google-reader-opens-up-to-your-friends" rel="alternate" type="text/html"/>
    <title>Google Reader opens up to your friends</title>
<content type="html">
            &lt;p&gt;Got this today when I logged in to Google Reader&#8230;&lt;/p&gt;


&lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/15/Picture_1.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;

	&lt;p&gt;Which means that Google is basically allowing your friends to see your shared items from Google Reader and vice versa. Great idea and definitely a useful feature, especially since Google lets you pick and choose who to share with.&lt;/p&gt;


	&lt;p&gt;Check out the &lt;a href=&quot;http://googlereader.blogspot.com/2007/12/reader-and-talk-are-friends.html&quot;&gt;Google blog&lt;/a&gt; for the official announcement.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-14:527</id>
    <published>2007-12-14T17:27:00Z</published>
    <updated>2007-12-14T17:27:34Z</updated>
    <category term="RuleBy"/>
    <link href="http://okwithfailure.com/2007/12/14/ruleby-a-new-rule-engine-in-ruby" rel="alternate" type="text/html"/>
    <title>RuleBy: A new rule engine in ruby</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://codeaspects.com/wiki/Ruleby&quot;&gt;RuleBy&lt;/a&gt; for Ruby is a new rule engine that makes use of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Rete_algorithm&quot;&gt;Rete&lt;/a&gt; (pronounced &lt;span class=&quot;caps&quot;&gt;REET&lt;/span&gt;) algorithm to make rule-based tasks easier to manage. A rule engine in general is comprised of three parts, facts (the data), rules (the conditional checks) and the interference engine (what actually checks the rules against the facts).&lt;/p&gt;


	&lt;p&gt;So basically, you define a few rules of which you&#8217;ll be able to check data against. Here&#8217;s what a rule looks like in RuleBy&lt;/p&gt;


&lt;pre&gt;
rule [Message, :m, m.status == :HELLO] do |e,v|
  puts v[:m].message
  v[:m].message = &quot;Goodbye world&quot; 
  v[:m].status = :GOODBYE
  e.modify v[:m]
end
&lt;/pre&gt;

	&lt;p&gt;What this says is that a Message object with a status of &lt;span class=&quot;caps&quot;&gt;HELLO&lt;/span&gt; must exist a collection of given facts.&lt;/p&gt;


	&lt;p&gt;Now here&#8217;s how you&#8217;d use the rule:&lt;/p&gt;


&lt;pre&gt;
engine :hello_engine do |e|
  HelloWorldRulebook.new(e).rules
  assert e, Message.new(:HELLO, 'Hello World')
  e.match
end
&lt;/pre&gt;

	&lt;p&gt;Surely the assert is recognizable ;)&lt;/p&gt;


	&lt;p&gt;I&#8217;d imagine this could be useful in managing business logic in complex systems or even reducing crazy large nested IF statements. Go nuts.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://www.adaruby.com/2007/12/07/ruleby-the-rule-engine-for-ruby/&quot;&gt;source&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-14:524</id>
    <published>2007-12-14T07:19:00Z</published>
    <updated>2007-12-14T07:31:33Z</updated>
    <category term="google"/>
    <category term="Google"/>
    <link href="http://okwithfailure.com/2007/12/14/google-guns-for-wikipedia-and-squidoo" rel="alternate" type="text/html"/>
    <title>Google guns for Wikipedia and Squidoo</title>
<summary type="html">&lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/14/thumb.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;Udi Manber posted on the &lt;a href=&quot;http://googleblog.blogspot.com/2007/12/encouraging-people-to-contribute.html&quot;&gt;official Google blog&lt;/a&gt; about the company&#8217;s foray into the authoritative content space currently occupied by the likes of Wikipedia and, umm, Squidoo (in case you happened past the title of this article). Googlers are currently calling these pages &#8220;knols&#8221; and hope that they will be penned by genuine people who intimately know a given topic. Not only will a &#8220;knol&#8221; be attached to a &#8220;name&#8221;, which would in turn make it a more serious source to reference since the main author&#8217;s reputation will be on the line, but they will also have wiki-like functionality. People will be able to submit questions, comments and edits to be included on the &#8220;knol&#8221; and even the author will be able to choose to display ads on the page (from which Google will take a cut).  Hit the jump for the full picture of an example &#8220;knol&#8221;. Imagine all the spam ;)</summary><content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/14/thumb.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;Udi Manber posted on the &lt;a href=&quot;http://googleblog.blogspot.com/2007/12/encouraging-people-to-contribute.html&quot;&gt;official Google blog&lt;/a&gt; about the company&#8217;s foray into the authoritative content space currently occupied by the likes of Wikipedia and, umm, Squidoo (in case you happened past the title of this article). Googlers are currently calling these pages &#8220;knols&#8221; and hope that they will be penned by genuine people who intimately know a given topic. Not only will a &#8220;knol&#8221; be attached to a &#8220;name&#8221;, which would in turn make it a more serious source to reference since the main author&#8217;s reputation will be on the line, but they will also have wiki-like functionality. People will be able to submit questions, comments and edits to be included on the &#8220;knol&#8221; and even the author will be able to choose to display ads on the page (from which Google will take a cut).  Hit the jump for the full picture of an example &#8220;knol&#8221;. Imagine all the spam ;)
&lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/14/knol_lg.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-14:523</id>
    <published>2007-12-14T07:11:00Z</published>
    <updated>2007-12-14T07:19:33Z</updated>
    <category term="MacBook"/>
    <link href="http://okwithfailure.com/2007/12/14/my-mac-needs-a-hug" rel="alternate" type="text/html"/>
    <title>My Mac needs a "hug"</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/14/2091570876_14e0ae47d0.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;Kudos to the &lt;a href=&quot;http://www.carsonified.com&quot;&gt;Carsonified&lt;/a&gt; crew for crafting up a few free Macbook and iPhone covers and giving them away for free to a lucky select few. Submissions for those wanting to shield their Macvices (better than a device, it&#8217;s a Macvice!) from the cold, harsh realities of the world had to be in by yesterday (nooooo!) but in any case, the covers are still nice to &lt;a href=&quot;http://www.hugmymac.com/#sectionProducts&quot;&gt;look at&lt;/a&gt;. Even nicer is the story of how &lt;a href=&quot;http://www.hugmymac.com&quot;&gt;HugMyMac&lt;/a&gt; came to be. The Carsonified-ers basically &lt;a href=&quot;http://www.carsonified.com/carsonified/idea-week-building-a-product-in-one-week&quot;&gt;shut-down their office for a week&lt;/a&gt; to just jam on a creative and fun project. HugMyMac was the result. Hooray for fun!
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-14:522</id>
    <published>2007-12-14T06:59:00Z</published>
    <updated>2007-12-14T07:06:21Z</updated>
    <category term="textmate"/>
    <category term="TextMate"/>
    <link href="http://okwithfailure.com/2007/12/14/textmate-snippet-for-generating-restful-controller" rel="alternate" type="text/html"/>
    <title>TextMate snippet for generating RESTful Controller</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/14/dock-20071213-200101.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;If your Rails app has more than one resource or might someday have more than one resource, &lt;a href=&quot;http://www.softiesonrails.com/2007/12/14/textmate-snippet-for-restful-controller&quot;&gt;this snippet&lt;/a&gt; will make your life just a little bit eaiser. Not only is Jeff&#8217;s snippet useful, but his post also gives a little insight into writing your own custom TextMate snippets. That&#8217;s hot.

	&lt;p&gt;&lt;i&gt;Thanks &lt;a href=&quot;http://millarian.com/&quot;&gt;Millarian&lt;/a&gt; for the tip!&lt;/i&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-14:521</id>
    <published>2007-12-14T06:57:00Z</published>
    <updated>2007-12-14T06:58:34Z</updated>
    <category term="MooTools"/>
    <link href="http://okwithfailure.com/2007/12/14/mootools-dev-gets-fired" rel="alternate" type="text/html"/>
    <title>MooTools dev gets "fired"</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/14/Haterade.gif&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;Ex-MooTools dev Olmo Maldonado apparently got &#8220;fired&#8221; from any further official MooTools development for basically trashing jQuery and Prototype in a &lt;a href=&quot;http://blog.mootools.net/2007/12/12/introduction-to-mootools-presentation&quot;&gt;presentation&lt;/a&gt; he gave at the &lt;a href=&quot;http://web.meetup.com/34/&quot;&gt;LA Web Application Developers Meetup&lt;/a&gt;. After reading Valerio Proietti post to the MooTools blog &lt;a href=&quot;http://blog.mootools.net/2007/12/13/an-open-apology-to-the-authors-of-jquery-prototype-and-others&quot;&gt;apologizing&lt;/a&gt; for Olmo&#8217;s remarks, I had to watch the video. Surely there would be some class A mud-slinging, maybe some yelling and definitely some grade-a cursing. 

	&lt;p&gt;So how was the video of the presentation itself? Meh. Nobody got rowdy and from what I can tell, no actual violence occurred per se but Olmo did bash pretty hard against jQuery, even going so far as to say they stole haphazardly copied some of the MooTools effects code. In nerd-dev land, them&#8217;s fighting words.&lt;/p&gt;


	&lt;p&gt;He doesn&#8217;t come down too harshly on prototype but overall, it&#8217;s a bit sad to see that his presentation was really nothing more of a &#8220;we&#8217;re better than the other js frameworks, and here&#8217;s why&#8221; type of presentation. I would have much rather preferred to see some actual code.&lt;/p&gt;


	&lt;p&gt;Here&#8217;s the video for those interested&#8230;&lt;/p&gt;


&lt;div&gt;&amp;lt;object height=&quot;300&quot; width=&quot;400&quot;&gt;    &amp;lt;param /&gt;    &amp;lt;param /&gt;    &amp;lt;param /&gt;    &amp;lt;param /&gt;&amp;lt;/object&gt;&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-12-13:518</id>
    <published>2007-12-13T22:34:00Z</published>
    <updated>2007-12-13T22:39:40Z</updated>
    <category term="flickr"/>
    <category term="Flickr"/>
    <link href="http://okwithfailure.com/2007/12/13/flickr-makes-with-the-stats" rel="alternate" type="text/html"/>
    <title>Flickr makes with the stats</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/12/13/Picture_1.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;Flickr has finally released &lt;a href=&quot;http://blog.flickr.com/en/2007/12/13/stats-stats-baby/&quot;&gt;photo stats&lt;/a&gt; for Pro Flickr account holders. It looks like it takes a minute for Flickr to actually aggregate the stats once you activate stats for your account but I&#8217;m sure it&#8217;s a wait well worth it. I wonder if some kind of revenue sharing plan is in the cards?
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-11-26:450</id>
    <published>2007-11-26T05:39:00Z</published>
    <updated>2007-11-26T06:26:36Z</updated>
    <category term="facebook"/>
    <category term="Facebook"/>
    <category term="rFacebook"/>
    <category term="rfacebook"/>
    <link href="http://okwithfailure.com/2007/11/26/rails-tip-of-the-day-2" rel="alternate" type="text/html"/>
    <title>Rails tip of the Day (#2, new style for Facebook user invites)</title>
<content type="html">
            &lt;p&gt;ok, so i know i said i was going to continue with routes with my next tip post, but to be honest, I almost fell asleep just trying to plan the post out. Needless to say, my heart really wasn&#8217;t in it. So instead, here&#8217;s a facebook developers tip!&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://developers.facebook.com/news.php?blog=1&amp;amp;#38;story=31&quot;&gt;Recently-ish&lt;/a&gt; Facebook made it loads easier for app developers to add &#8220;invite your friends!&#8221; functionality into your app and since they don&#8217;t have any examples of how to use it in Rails, here you go.&lt;/p&gt;


	&lt;p&gt;First with the action in the controller, I grab all of the friends of the current user and pull out the ones who already have the app installed&lt;/p&gt;


&lt;pre&gt;
    def invite
    fql =  &quot;SELECT uid, name FROM user WHERE uid IN&quot; +
        &quot;(SELECT uid2 FROM friend WHERE uid1 = #{@current_user.fb_user_id}) &quot; +
        &quot;AND has_added_app = 1&quot; 
    xml_friends = fbsession.fql_query :query =&amp;gt; fql
    @friends = Hash.new
    xml_friends.search(&quot;//user&quot;).map do|usrNode| 
      @friends[(usrNode/&quot;uid&quot;).inner_html] = (usrNode/&quot;name&quot;).inner_html
    end
    @friend_ids = []
    @friends.each do |uid, name|
      @friend_ids &amp;lt;&amp;lt; uid
    end
    @friend_ids = @friend_ids.join(',')
  end
&lt;/pre&gt;

	&lt;p&gt;now for the view, here is the fbml I stuck in my canvas page (notice the using of the @friend_ids in the exclude_ids paramter, sneaky sneaky)...&lt;/p&gt;


&lt;pre&gt;
    &amp;lt;fb:fbml&amp;gt; 
    &amp;lt;fb:request-form action=&quot;&amp;lt;%= facebook_send_invites_path %&amp;gt;&quot; method=&quot;POST&quot; invite=&quot;true&quot; type=&quot;social gamer&quot; 
                    content=&quot;social gamer is the best app for gamers who actually game! 
                    once you join, you can rate games, review games and even loan out your games to 
                    your friends. &amp;lt;fb:req-choice url='http://www.facebook.com/add.php?api_key=724faa99b85cde63ed19088ca917e482' label='check out social gamer...now' /&amp;gt;&quot;&amp;gt; 
    &amp;lt;fb:multi-friend-selector showborder=&quot;false&quot; actiontext=&quot;invite your friends to use Social Gamer...now&quot; exclude_ids=&quot;&amp;lt;%= @friend_ids %&amp;gt;&quot;&amp;gt; 
    &amp;lt;/fb:request-form&amp;gt; 
  &amp;lt;/fb:fbml&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;yeah, hawt innit? now sure the controller code can be refactored (like only parsing out the uids probably instead of the actual users), but this is what I was able to just convert from the old code I had. If I think the refactor is good enough after I dig back into the xml I have to parse I&#8217;ll post it but this should be good enough to get you started.  Also note that I&#8217;m using rFacebook here which I believe now depends on hpricot so you&#8217;ll need at least those two gems to do this.&lt;/p&gt;


	&lt;p&gt;You can dig more into the fb:request-form tag on the &lt;a href=&quot;http://wiki.developers.facebook.com/index.php/Fb:request-form&quot;&gt;facebook fbml wiki page&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-11-22:451</id>
    <published>2007-11-22T08:14:00Z</published>
    <updated>2007-11-26T16:58:04Z</updated>
    <category term="jQuery is the new hawtness"/>
    <link href="http://okwithfailure.com/2007/11/22/jquery-rails-jrails" rel="alternate" type="text/html"/>
    <title>jQuery + Rails = jRails</title>
<content type="html">
            &lt;p&gt;We all knew it was only a matter of time before someone created a jQuery replacement for Prototype and here it is, &amp;lt;s&gt;jQuery&amp;lt;/s&gt;jRails. It&#8217;s a 0.1 release so it may not cover all edge cases well, but it does provide support for &lt;strong&gt;all&lt;/strong&gt; of the functionality found in the built in Rails prototype_helper and some of the built in scriptaculous helpers.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://ennerchi.com/projects/jrails&quot;&gt;jQuery for Rails via jRails&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-11-22:449</id>
    <published>2007-11-22T07:05:00Z</published>
    <updated>2007-11-22T07:36:21Z</updated>
    <category term="Routing in Rails is like plumbing"/>
    <link href="http://okwithfailure.com/2007/11/22/rails-tip-of-the-day-1" rel="alternate" type="text/html"/>
    <title>Rails tip of the day (#1)</title>
<content type="html">
            &lt;h2&gt;Tip #1 &#8211; Know your routes&lt;/h2&gt;

	&lt;p&gt;Knowing how your routes work in your Rails project is crucial. Knowing how what routes to where or how to force requests for one thing into a certain direction are all key to bending your app to your will. Here&#8217;s what I think are the most important route shenanigans to know about:&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Using the command line to cheat&lt;/b&gt;
Two shortcuts you need to know about here. The first one takes place in script/console. After you pop into script/console, type&lt;/p&gt;


&lt;pre&gt;
 app.
&lt;/pre&gt;

	&lt;p&gt;followed by the beginning of what you think you&#8217;re route may be, like the object&#8217;s class or something. For example,&lt;/p&gt;


&lt;pre&gt;
app.book
&lt;/pre&gt;

	&lt;p&gt;Hit tab twice and you&#8217;ll be shown all of the routes generated for that object.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;rake routes&lt;/b&gt;
The second tip is the &#8220;rake routes&#8221; rake task. Type and run &#8220;rake routes&#8221; from your project root and marvel at the list of routes it cooks up.&lt;/p&gt;


	&lt;p&gt;Tomorrow I&#8217;ll go over a few more route tips, promise.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-11-02:416</id>
    <published>2007-11-02T08:41:00Z</published>
    <updated>2007-11-02T08:58:24Z</updated>
    <category term="OpenSocial"/>
    <link href="http://okwithfailure.com/2007/11/2/open-social-is-now-live" rel="alternate" type="text/html"/>
    <title>Open social is now live!</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/11/2/opensocial.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;Time to dig into and see if this OpenSocial is all Google and everyone but Facebook is hyping it up to be. So far, it looks like the only site live with the integration is Orkut and you need an &lt;a href=&quot;http://www.orkut.com&quot;&gt;Orkut&lt;/a&gt; account to jam although, I think your existing Gmail account will have you covered. 

	&lt;p&gt;So go create one and immerse yourself in reading &lt;a href=&quot;http://code.google.com/apis/opensocial/&quot;&gt;with me&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;&lt;a href=&quot;http://code.google.com/apis/opensocial/&quot;&gt;OpenSocial front page&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href=&quot;http://code.google.com/apis/opensocial/docs/&quot;&gt;Api Docs&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href=&quot;http://code.google.com/apis/orkut/&quot;&gt;Orkut Sandbox&lt;/a&gt;&lt;/h3&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-10-31:410</id>
    <published>2007-10-31T04:40:00Z</published>
    <updated>2007-10-31T05:10:30Z</updated>
    <category term="the internet school of hard-knox"/>
    <link href="http://okwithfailure.com/2007/10/31/how-to-really-survive-the-digg-effect-with-your-blog" rel="alternate" type="text/html"/>
    <title>How to really survive the digg effect with your blog</title>
<content type="html">
            &lt;p&gt;So I was purusing digg this evening and saw the digg titled, &lt;a href=&quot;http://digg.com/programming/Prevent_digg_from_killing_your_server?t=10038059#c10038059&quot;&gt;Prevent Digg from Killing your server.&lt;/a&gt;&lt;/p&gt;


Here&#8217;s the pic (notice the url)
&lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/10/31/Picture_2.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
I go to visit the url and I&#8217;m greeted with this&#8230;
&lt;br /&gt;
&lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/10/31/Picture_3.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;

	&lt;p&gt;I thought I would be shown some glorious way to help reinforce my server in case of an inevitable digging but Iinstead,  was graced with sweet sweet irony! Honestly man, you can&#8217;t submit a digg like that and have your server go down.&lt;/p&gt;


	&lt;p&gt;Want to know the real secret to keeping your server up amidst a strong digg? Here&#8217;s what you do.&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;&lt;h3&gt;For Wordpress. &lt;/h3&gt;
1. &lt;b&gt;Get &lt;a href=&quot;http://mnm.uib.es/gallir/wp-cache-2/&quot;&gt;Wp-Cache&lt;/a&gt;&lt;/b&gt; &#8211; I used to run this old gaming blog that got plenty of diggs in it&#8217;s hayday (managed to get dugg 5 times in one week even without spamming or paying for&#8217;em even, promise!) and the only real digg-safety net I had in place on my shared server was Wp-Cache. We cleared over 100k &lt;b&gt;unique&lt;/b&gt; hits in that week alone and never heard a peep from our hosts. 
&lt;/li&gt;

&lt;li&gt;&lt;h3&gt;For any other blog you&#8217;re managing yourself on your own server&lt;/h3&gt;
2. &lt;b&gt;Get &lt;a href=&quot;http://wordpress.org/&quot;&gt;WordPress&lt;/a&gt;&lt;/b&gt; &#8211; see number 1.
&lt;/li&gt;

&lt;li&gt;&lt;h3&gt;Use Mephisto&lt;/h3&gt;
3. &lt;b&gt;&lt;a href=&quot;http://mephistoblog.com/&quot;&gt;Mephisto&lt;/a&gt; has caching built-in&lt;/b&gt; &#8211; Since I&#8217;m a diehard Ruby/Rails-nut, of course I was going to throw this in. Don&#8217;t go on my word alone though, I have this other blog that is Mephisto ran that took a good-ish digg and I never heard a peep from the shared host I had the site on. Yeah, and that&#8217;s Mephisto out of the box.
&lt;/li&gt;
&lt;/ul&gt;

	&lt;p&gt;So there you go. Go on, write some odd-yet-irresistible &#8220;30 reasons why &lt;em&gt;__&lt;/em&gt;&#8221; blog post, submit it to digg and slowly take over the world!!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-10-21:403</id>
    <published>2007-10-21T09:40:00Z</published>
    <updated>2007-10-21T09:48:40Z</updated>
    <category term="rFacebook"/>
    <link href="http://okwithfailure.com/2007/10/21/a-fix-for-this-rfacebook-bug" rel="alternate" type="text/html"/>
    <title>A fix for this rFacebook bug</title>
<content type="html">
            &lt;p&gt;So I updated to the latest rFacebook gem and unpacked it in one of my Rails powered Facebook apps and lo and behold, things started breaking in my main app. See, I have this main app (which I&#8217;ll reveal soon) which has a Facebook side to it. Well, installing the latest gem wreaked havoc on a few named routes. &lt;/p&gt;

&lt;p&gt;I was getting this odd error&#8230;&lt;/p&gt;

&lt;pre&gt;
wrong number of arguments (2 for 1) : 
in /rfacebook-0.9.7/lib/rfacebook_on_rails/controller_extensions.rb:463:in `url_for__ALIASED'
&lt;/pre&gt;

&lt;p&gt;from this route&#8230;&lt;/p&gt;

&lt;pre&gt;
 redirect_to users_path
&lt;/pre&gt;

&lt;p&gt;Odd eh?
So line 463 in the controller_extensions file looks like this&#8230;&lt;/p&gt;

&lt;pre&gt;
path = url_for__ALIASED(options, *parameters)
&lt;/pre&gt;

&lt;p&gt;Looks ok I guess but when I checked out what the options and parameters were, changing the above link to this&#8230;&lt;/p&gt;

&lt;pre&gt;
path = options
&lt;/pre&gt;

&lt;p&gt;Fixed the error for me. I don&#8217;t think this should have any adverse effect anywhere else, but if I&#8217;m wrong, feel free to enlighten me. :D&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-10-01:390</id>
    <published>2007-10-01T04:37:00Z</published>
    <updated>2007-10-01T04:50:33Z</updated>
    <category term="the more you know"/>
    <link href="http://okwithfailure.com/2007/10/1/keeping-tighter-control-of-your-flash-messages" rel="alternate" type="text/html"/>
    <title>Keeping tighter control of your flash messages</title>
<content type="html">
            &lt;p&gt;Now this is something I&#8217;m sure we&#8217;ve all ran across. You assign a flash variable to some string in a certain controller of yours like so&lt;/p&gt;


&lt;pre&gt;
flash[:teherrorz] = &quot;oh noes! it's borked!&quot; 
render :action =&amp;gt; 'edit'
&lt;/pre&gt;

	&lt;p&gt;As you&#8217;ve most likely noticed, the flash message stays not only for the rendering of &#8216;edit&#8217;, but also for wherever the next request takes you. That&#8217;s no fun and can certainly confuse users. So what&#8217;s the solution? Use flash.now of course! Here&#8217;s the above code given the good what-fer&#8230;&lt;/p&gt;


&lt;pre&gt;
flash.now[:teherrorz] = &quot;oh noes! it's borked!&quot; 
render :action =&amp;gt; 'edit'
&lt;/pre&gt;

	&lt;p&gt;What I also didn&#8217;t know is that there are ways you can speifically call out certain keys in the flash hash and specify which ones you want to hang around, via flash.keep, or discard, via flash.discard, after the current request.&lt;/p&gt;


	&lt;p&gt;Good to know.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://giantrobots.thoughtbot.com/2007/9/27/all-the-kings-horses&quot;&gt;inspiration&lt;/a&gt; &lt;br /&gt;
&lt;a href=&quot;http://rails.rubyonrails.com/classes/ActionController/Flash/FlashHash.html&quot;&gt;the docs&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-10-01:389</id>
    <published>2007-10-01T03:58:00Z</published>
    <updated>2007-10-01T04:19:57Z</updated>
    <category term="rails gets ever better"/>
    <link href="http://okwithfailure.com/2007/10/1/what-i-dig-about-rails-2-dot-oh" rel="alternate" type="text/html"/>
    <title>What I dig about Rails 2 dot oh!</title>
<content type="html">
            &lt;p&gt;So David &#8220;Iron Man&#8221; Hanimawhatshisface Hansson &lt;a href=&quot;http://weblog.rubyonrails.com/2007/9/30/rails-2-0-0-preview-release&quot;&gt;just posted&lt;/a&gt; about the Rails 2.0 &#8220;we&#8217;re pretty much done release&#8221; and detailed a few of the niceties that those who don&#8217;t always run edge rails will be able to dig into now.&lt;/p&gt;


	&lt;p&gt;The goodies I&#8217;ve been digging are new debugger because I was a serial breakpointer (maybe i should do up a post on how to use this?), the sweet new routes and record identification (link_to book.title, book), the &lt;a href=&quot;http://dev.rubyonrails.org/changeset/6667&quot;&gt;sexy migrations&lt;/a&gt; and the new &#8220;rake routes&#8221; task.&lt;/p&gt;


	&lt;p&gt;Gotta love it.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-09-29:388</id>
    <published>2007-09-29T06:37:00Z</published>
    <updated>2007-10-01T04:20:14Z</updated>
    <category term="Compilers are teh hawt"/>
    <category term="JRuby is for Desperados"/>
    <link href="http://okwithfailure.com/2007/9/29/congrats-to-the-jruby-team" rel="alternate" type="text/html"/>
    <title>Congrats to the JRuby team</title>
<content type="html">
            &lt;p&gt;Looks like Nutter and team have &lt;a href=&quot;http://headius.blogspot.com/2007/09/compiler-is-complete.html&quot;&gt;achieved a pretty major milestone&lt;/a&gt; as far as JRuby and even Ruby is concerned. They have finished the first ever complete and &#8220;fully functional&#8221; Ruby 1.8 compiler. Making it even easier to beautify Java code everywhere with the programmatical sugar that is  Ruby. I don&#8217;t do any Java code these days but I&#8217;m sure there are plenty of other devs out there who will be able to appreciate this more than I.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-09-02:351</id>
    <published>2007-09-02T23:28:00Z</published>
    <updated>2007-09-02T23:31:44Z</updated>
    <link href="http://okwithfailure.com/2007/9/2/note-to-self" rel="alternate" type="text/html"/>
    <title>note to self</title>
<content type="html">
            &lt;div&gt; &lt;img src=&quot;http://okwithfailure.com/assets/2007/9/2/Picture_5.png&quot; alt=&quot;&quot; /&gt; &lt;/div&gt;When google searching for certain open source forum software, be &lt;em&gt;a lot&lt;/em&gt; more specific&#8230;a lot. Oh, and never click the &#8220;I&#8217;m feeling lucky&#8221; link&#8230;.just in case.
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-08-29:346</id>
    <published>2007-08-29T07:43:00Z</published>
    <updated>2007-08-29T07:45:22Z</updated>
    <link href="http://okwithfailure.com/2007/8/29/ruby-hoedown-vids-are-online" rel="alternate" type="text/html"/>
    <title>Ruby Hoedown vids are online</title>
<content type="html">
            &lt;p&gt;Videos os the Ruby Hoedown presentations are now up. Figured I&#8217;d let all who may be interested know since the presenters all look like good people. &lt;/p&gt;

&lt;p&gt;I&#8217;m going right to the &lt;em&gt;Charity Workshop: Ruby and Rails Testing Techniques&lt;/em&gt; and &lt;em&gt;Using C to Tune Your Ruby (or Rails) Application&lt;/em&gt; videos first. Enjoy!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-08-14:326</id>
    <published>2007-08-14T04:24:00Z</published>
    <updated>2007-08-14T04:32:26Z</updated>
    <link href="http://okwithfailure.com/2007/8/14/sometimes-people-do-confuse-me-with-dhh" rel="alternate" type="text/html"/>
    <title>Sometimes people do confuse me with DHH</title>
<content type="html">
            &lt;p&gt;&lt;div&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/8/14/Picture_1_1.png&quot;&gt;&lt;/div&gt;&lt;p&gt;It&#8217;s ok &#8221;&lt;a href=&quot;http://workingwithrails.com&quot;&gt;Working with Rails&lt;/a&gt;&#8221;, I know we look similar and all but believe it or not, I happen to NOT be David Heinemeier Hansson. I know, I know, I get it all the time and to be fair to him, he&#8217;s an almost handsome chap&#8230;almost.&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Honestly, why is there a picture of DHH on my Edit Profile page on the &#8220;Working with Rails&#8221; site? It just comes off as odd to me to see a random picture of DHH when I&#8217;m editing my profile. &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-07-15:311</id>
    <published>2007-07-15T21:46:00Z</published>
    <updated>2007-07-15T21:48:54Z</updated>
    <link href="http://okwithfailure.com/2007/7/15/you-know-what-really-ticks-me-off" rel="alternate" type="text/html"/>
    <title>You know what really ticks me off?</title>
<content type="html">
            &lt;p&gt;Every once in a while, I&#8217;ll run into a problem where it seems like what ever changes I make, to a certain file or block of code or whatever, has no effect on the desired output. Every time I run into this it has always been because I was looking at either the wrong file or the right file in the wrong place. After the 25th time, this gets very annoying. Ugh.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-06-12:148</id>
    <published>2007-06-12T22:32:00Z</published>
    <updated>2007-06-12T22:52:53Z</updated>
    <link href="http://okwithfailure.com/2007/6/12/css-for-heroes" rel="alternate" type="text/html"/>
    <title>CSS for heroes</title>
<content type="html">
            &amp;lt;center&gt;&lt;img src=&quot;http://okwithfailure.com/assets/2007/6/12/heroes_big.jpg&quot;&gt;&amp;lt;/center&gt;

	&lt;p&gt;So i just gave a little presentation on &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; and wanted to dump the links I had mentioned somewhere more stable than my fragile laptop. My l337 5killz frequently bring it to tears so I figured I would throw up the links here. I would&#8217;ve put up my presentation too but my laptop ate the last few slides and I didn&#8217;t want to put up something that wasn&#8217;t finished. This also gives me a chance to add a few I didn&#8217;t chat about but should&#8217;ve. So, here they are&#8230;&lt;/p&gt;


For inspiration theres&#8230;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://csstux.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; Tux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.csszengarden.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; Zen Garden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://k10k.net/&quot;&gt;k10k.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://komodomedia.com/blog/index.php/2007/01/20/css-star-rating-redux/&quot;&gt;Komodo Media&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://alternateidea.com/&quot;&gt;Alternate Idea&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cameronmoll.com/&quot;&gt;Cameron Moll&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
and for cheating there&#8217;s&#8230;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/&quot;&gt;Smashing Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.oswd.org/&quot;&gt;Open Source Web Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.code-sucks.com/css%20layouts/&quot;&gt;Css Layouts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-27:138</id>
    <published>2007-05-27T06:35:00Z</published>
    <updated>2007-05-27T06:59:46Z</updated>
    <link href="http://okwithfailure.com/2007/5/27/self-referential-associations-with-has_many-through" rel="alternate" type="text/html"/>
    <title>Self Referential Associations with has_many :through</title>
<content type="html">
            &lt;p&gt;Woah, that was a mouthful. I just spent some time racking the old and stunningly handsome ticker on how to get self-referential associations to work using has_many :through and since I couldn&#8217;t find any really easy to grasp posts on the subject (susser has one up &lt;a href=&quot;http://blog.hasmanythrough.com/2006/4/21/self-referential-through&quot;&gt;here&lt;/a&gt; but it&#8217;s a little dense, still good though), so I figured I&#8217;d roll my own and post something here.&lt;/p&gt;


	&lt;p&gt;Basically, what I was trying to do was similar to creating a relationship between my User and Friend models, so that a user could have many friends but could also be a friend to multiple users. Sound a bit confusing? It&#8217;s ok, took me a second to wrap my head around it to. There may be some other or easier way to do this, but here&#8217;s what I came up with:&lt;/p&gt;


	&lt;p&gt;Two models, User and Friend, and their migrations. Migrations first.&lt;/p&gt;


&lt;pre&gt;
class CreateFriends &amp;lt; ActiveRecord::Migration
  def self.up
    create_table :friends do |t|
      t.integer :user_id, :friend_id
      t.datetime :created_at, :modified_at
    end
  end

  def self.down
    drop_table :friends
  end
end
&lt;/pre&gt;
and User
&lt;pre&gt;
class CreateUsers &amp;lt; ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.string :username, :name
      t.datetime :created_at, :modified_at
    end
  end

  def self.down
    drop_table :users
  end
end
&lt;/pre&gt;

	&lt;p&gt;Using the new migration syntax even. So Friend is our join model, it holds a user_id and a friend_id and User is our &#8220;parent&#8221; class. A User has many friends. Sounds like a good time to look into the models.&lt;/p&gt;


&lt;pre&gt;
class User &amp;lt; ActiveRecord::Base
  has_many :friendships, :foreign_key =&amp;gt; 'friend_id', :class_name =&amp;gt; 'Friend'
  has_many :friends, :through =&amp;gt; :friendships, :source =&amp;gt; :user
end
&lt;/pre&gt;
and the Friend model
&lt;pre&gt;
class Friend &amp;lt; ActiveRecord::Base
  belongs_to :user, :foreign_key =&amp;gt; 'user_id', :class_name =&amp;gt; 'User'
end
&lt;/pre&gt;

	&lt;p&gt;Got it? Me neither, and I just wrote it. I&#8217;ll take a stab at it though. A User has many friends through our invisible join table friendships. Our friends are really just Users though so we add the &lt;i&gt;:source =&amp;gt; :user&lt;/i&gt; to tell that association that it&#8217;s really a user. The User table is the &#8220;source&#8221; for our friends.&lt;/p&gt;


	&lt;p&gt;So if you were to trace the association starting at user, it would go from User down to the has_many :friends which would say &#8220;hey, this says i need to go :through friendships with my :source, User in this case, and it&#8217;s id &#8221;. Then it goes to friendships and follows it through the Friend class (thanks to class_name) and looks to the friend_id. And at that point it looks for what ever user matches up with that friend_id. So, in your friend table, the user_id column holds the user for which this friend entry was created and the friend_id column holds the user_id of just added friend. Whew. I need to go lay down, that blew my mind. It&#8217;s a touch late when I&#8217;m writing this so my apologies if this doesn&#8217;t make sense.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-18:111</id>
    <published>2007-05-18T20:21:00Z</published>
    <updated>2007-05-18T20:32:30Z</updated>
    <category term="SSH Trickery"/>
    <link href="http://okwithfailure.com/2007/5/18/copying-files-and-folders-through-ssh" rel="alternate" type="text/html"/>
    <title>Copying files and folders through SSH</title>
<content type="html">
            &lt;p&gt;This is a neat little trick I knew was possible but didn&#8217;t exactly know how to do. i was kind of hoping I could just think about it real hard and then all of a sudden I would know how to do it. When that didn&#8217;t happen, and I was brutally forced to look up the answer, I figured I&#8217;d post it for you other holistic programmers out there.&lt;/p&gt;


	&lt;p&gt;On a mac, all you have to is crack open terminal and browse into what ever directory you want to copy your files into. You don&#8217;t have to, but it&#8217;s easier this way. Once you&#8217;re there, type in something like this:&lt;/p&gt;


&lt;pre&gt;
scp username@thatremotedomain.com: path/to/stuffs/i/want .
&lt;/pre&gt;

	&lt;p&gt;Now I&#8217;ll break it down. The &lt;span class=&quot;caps&quot;&gt;SCP&lt;/span&gt; stands for Super Cockeyed Protocol or something similar I&#8217;m sure with the &lt;i&gt;username@thatremotedomain.com&lt;/i&gt; being your login to your remote machine of choice. Then after the colon you put in the path to the file or folder you want to grab. The space dot at the end just says to copy that remote stuff into your current directory.&lt;/p&gt;


	&lt;p&gt;If you wanted to pull down a folder and all of it&#8217;s subfolders and all that, throw in a -r (for recursive) to make that magic happen. In that case, the above statement would look like this&#8230;&lt;/p&gt;


&lt;pre&gt;
scp -r username@thatremotedomain.com: path/to/stuffs/i/want .
&lt;/pre&gt;

	&lt;p&gt;You&#8217;re welcome.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-18:110</id>
    <published>2007-05-18T18:21:00Z</published>
    <updated>2007-05-18T18:33:41Z</updated>
    <category term="Programming"/>
    <link href="http://okwithfailure.com/2007/5/18/staying-on-your-a-game" rel="alternate" type="text/html"/>
    <title>Staying on your "A" Game</title>
<content type="html">
            &lt;p&gt;It's quite the coincidence that I just came across Dave Thomas' &lt;a href=&quot;http://codekata.pragprog.com/2007/01/code_kata_backg.html#more&quot;&gt;CodeKata&lt;/a&gt; website while I was thinking of ways that I could keep developing my l337 programming skils. If you didn't know, Dave's &lt;a href=&quot;http://codekata.pragprog.com/&quot;&gt;Code Kata&lt;/a&gt; site is a place where he throws out (don't forget the air quotes here) &quot;Katas&quot; on a semi regular (is it regular? i couldn't tell if it was or not) basis. With &quot;katas&quot; being &quot;problems&quot; for &quot;programmers&quot; to &quot;figure out&quot; how to &quot;solve&quot;. The whole point is to get you to keep thinking about programming and how you would approach problems, to basically retain knowledge through repetition, trying new problems and by being able to focus.&lt;/p&gt;

&lt;p&gt;I love this idea because I know that sometimes, for me personally, a certain technique or skill doesn't really stick with me until I've done it at least 247 times. I do remember reading somewhere that most developers don't spend most of their time on figuring out how to do something, but in looking up the proper way to do it. I would think these code katas would help in being able to remember how and/or what to use in certain situations. &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-15:109</id>
    <published>2007-05-15T14:18:00Z</published>
    <updated>2007-05-15T14:27:00Z</updated>
    <category term="rails"/>
    <category term="Rails"/>
    <category term="routes"/>
    <link href="http://okwithfailure.com/2007/5/15/how-to-show-all-of-your-defined-routes" rel="alternate" type="text/html"/>
    <title>How to show all of your defined routes</title>
<content type="html">
            &lt;p&gt;Sometimes, you just want to see all of the routes you have defined. To do so, throw this somewhere,&lt;/p&gt;


&lt;pre&gt;
ActionController::Routing::Routes.routes.each do |r|
  puts r
end
&lt;/pre&gt;

	&lt;p&gt;You&#8217;ll get a nice little list of all of your defined routes in your terminal (or whatever) window.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-11:106</id>
    <published>2007-05-11T09:36:00Z</published>
    <updated>2007-05-11T09:40:10Z</updated>
    <category term="Projects"/>
    <category term="projects"/>
    <category term="rails"/>
    <category term="Rails"/>
    <link href="http://okwithfailure.com/2007/5/11/say-hi-to-the-spreaditor" rel="alternate" type="text/html"/>
    <title>Say hi to the Spreaditor</title>
<content type="html">
            &lt;p&gt;Introducing, the &lt;a href=&quot;http://www.spreaditor.com&quot;&gt;Spreaditor&lt;/a&gt;. It&#8217;s just a little something I was thinking I wanted to build out, so I did.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-11:105</id>
    <published>2007-05-11T07:42:00Z</published>
    <updated>2007-05-11T08:14:21Z</updated>
    <category term="Feeds"/>
    <category term="rails"/>
    <category term="Rails"/>
    <category term="Simply Helpful"/>
    <link href="http://okwithfailure.com/2007/5/11/quick-easy-and-relatively-painless-rss-and-atom-feeds-with-rails" rel="alternate" type="text/html"/>
    <title>Quick, easy and relatively painless Rss and Atom feeds with Rails</title>
<content type="html">
            &lt;p&gt;So you have this gee-whiz-bang web 2 dot oh app that even has it&#8217;s own reflective icon and gradient background, but yet, it&#8217;s still missing that something special. Chances are, that &#8220;something&#8221; pulling at your conscious is a need to provide Rss and/or Atom feeds for your data. I&#8217;m going to quickly walk through how you too can &#8220;feed&#8221; out your content to the world at large. Hold on tight&#8230;.&lt;/p&gt;


	&lt;p&gt;First up, you&#8217;ll need the resource_feeder plugin and simply_helpful plugin..&lt;/p&gt;


for you non-piston users&#8230;
&lt;pre&gt;
script/plugin install resource_feeder
&lt;/pre&gt;

For the piston users&#8230;
&lt;pre&gt;
piston import http://dev.rubyonrails.com/svn/rails/plugins/resource_feeder vendor/plugins/resource_feeder
&lt;/pre&gt;

	&lt;p&gt;Ahhhh, so close. That was pretty much half the battle. After you&#8217;re done staring at your magificent mastery of your console window, feel free to continue.&lt;/p&gt;


Now, we code. Say you have a &#8220;books&#8221; controller which has an &#8220;index&#8221; action. The &#8220;index&#8221; view, lists out all of your &#8220;books&#8221;, ok? So in your &#8220;books&#8221; controller under the index method, add this (you can leave out the setting of the &#8221;@books&#8221; instance variable if you already have it)..
&lt;pre&gt;
@books = Book.find(:all)
options = options = { :feed =&amp;gt; {:title =&amp;gt; &quot;Books, Glorious Books!&quot;} }

respond_to do |format|
      format.html # index.erb
      format.xml  { render :xml =&amp;gt; @books.to_xml }
      format.rss { render_rss_feed_for @books, options}
    end
&lt;/pre&gt;

	&lt;p&gt;Woah. To see this, fire up your page and browse to your &#8220;books&#8221; controller and check out the &#8220;index&#8221; page. Everything should look exactly the same. To see your Rss feed, in the address window of your browser append &#8221;?format=rss&#8221; (so your path looks something like http://localhost:3000/books?format=rss) to see your feed. That&#8217;s all fine and dandy but 103% of all people who surf the web, do not do so by typing whatever they feel into their address bar. So how do you link to this rss feed of your books?&lt;/p&gt;


First, pick up a spiffy Rss icon from &lt;a href=&quot;http://www.feedicons.com/&quot;&gt;feed icons&lt;/a&gt; and shove it into your Rails Project&#8217;s public/images folder. Now you can use the following link_to to link to your &#8220;books&#8221; feed&#8230;
&lt;pre&gt;
&amp;lt;%= link_to &quot;#{image_tag(&quot;/images/feed_icon.gif&quot;)}&quot;, formatted_books_path(:rss) %&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;Double woah. Now, when you click on that link, you&#8217;ll get take to your books.rss page which will happily display an Rss feed of your books.&lt;/p&gt;


	&lt;p&gt;Now for displaying an atom feed&#8230;replace every instance of Rss on this page with Atom and you&#8217;re good to go. That&#8217;s it. Really.&lt;/p&gt;


	&lt;p&gt;Now say you wanted to change some of the standard attributes of your feed. Well, you&#8217;re in luck. You can stick all kinds of options in that options hash that you can see in the above controller code. You can get a pretty good idea of what the options default values are by looking in the actual plugin itself.&lt;/p&gt;


Here&#8217;s a good look at the default Rss option values&#8230;
&lt;pre&gt;
      options[:feed][:title]    ||= klass.name.pluralize
      options[:feed][:link]     ||= SimplyHelpful::PolymorphicRoutes.polymorphic_url(new_record, options[:url_writer])
      options[:feed][:language] ||= &quot;en-us&quot; 
      options[:feed][:ttl]      ||= &quot;40&quot; 

      options[:item][:title]           ||= [ :title, :subject, :headline, :name ]
      options[:item][:description]     ||= [ :description, :body, :content ]
      options[:item][:pub_date]        ||= [ :updated_at, :updated_on, :created_at, :created_on ]
&lt;/pre&gt;

and here&#8217;s a good look at the default Atom option values&#8230;
&lt;pre&gt;
      options[:feed][:title] ||= klass.name.pluralize
      options[:feed][:id]    ||= &quot;tag:#{request.host_with_port}:#{klass.name.pluralize}&quot; 
      options[:feed][:link]  ||= SimplyHelpful::PolymorphicRoutes.polymorphic_url(new_record, options[:url_writer])

      options[:item][:title]       ||= [ :title, :subject, :headline, :name ]
      options[:item][:description] ||= [ :description, :body, :content ]
      options[:item][:pub_date]    ||= [ :updated_at, :updated_on, :created_at, :created_on ]
      options[:item][:author]      ||= [ :author, :creator ]
&lt;/pre&gt;

	&lt;p&gt;And that&#8217;s really all there is to it. For super extra fun, re-read everything I just wrote and make the &#8220;air quotation marks&#8221; with your hands for every quoted word you read. Good times. Now go change the world.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-04:101</id>
    <published>2007-05-04T16:05:00Z</published>
    <updated>2007-05-04T16:11:37Z</updated>
    <link href="http://okwithfailure.com/2007/5/4/getting-into-rspec-just-got-a-little-easier" rel="alternate" type="text/html"/>
    <title>Getting into BDD just got a little easier</title>
<content type="html">
            &lt;p&gt;If you&#8217;ve been waiting to make the full on jump to Behavior Driven Development and Rspec you may want to check out christian neukirchen&#8217;s &lt;a href=&quot;http://chneukirchen.org/blog/archive/2007/01/announcing-test-spec-0-3-a-bdd-interface-for-test-unit.html&quot;&gt;test/spec&lt;/a&gt; which basially wraps Test::Unit in a nice spec blanket. This would allow you to retain all of your old Test::Unit tests while you ease yourself into a &lt;span class=&quot;caps&quot;&gt;BDD&lt;/span&gt; world of wonder.&lt;/p&gt;


	&lt;p&gt;Thanks to Chris at &lt;a href=&quot;http://errtheblog.com/post/4268&quot;&gt;Err&lt;/a&gt; for pointing this out.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-04:98</id>
    <published>2007-05-04T13:14:00Z</published>
    <updated>2007-05-04T16:04:29Z</updated>
    <category term="enhancing your laziness"/>
    <category term="rake"/>
    <category term="Ruby on Rails"/>
    <category term="ruby on rails"/>
    <link href="http://okwithfailure.com/2007/5/4/creating-and-dropping-your-databases" rel="alternate" type="text/html"/>
    <title>Two rake tasks for creating and dropping your databases [UPDATE]</title>
<content type="html">
            &lt;p&gt;&lt;b&gt;update&lt;/b&gt; &#8211; yeah, you could either read this article and go right to the good stuff, a plugin a few friends and co-workers created just to make it easier on any and everyone who&#8217;s into being lazy&#8230;or even more so. Here&#8217;s the repository for all who may be interested&#8230; http://svn.integrumtech.com/public/plugins/rake_tasks/
thanks Matt for pointing that out! &lt;/p&gt;

&lt;p&gt;While working on a little side project of mine, I quickly grew tired of constantly manually deleting and recreating my development databases. It got old probably around the 4th or 5th time. After that 4th or 5th time, while I began to ponder if web development was really worth having to manually create and drop your database, I rememberd, &#8220;hey, this is ruby dammit, I can bend it to my will!&#8221;. I remembered that I could easily throw some rake tasks up to make my life easier. The fact that we were using similar rake tasks at work helped with my enlightenment too.&lt;/p&gt;

&lt;p&gt;So, enter enhancing your laziness tip 2, how to use rake tasks to drop and create database. For my use, I decided to do up two rake tasks, one for creating my databases and one for dropping my development database. I wanted to learn how to do this on my own, so I didn&#8217;t dare to peek at the ones we were using at work&#8230;at least, for not too long. Here&#8217;s what I came up with&#8230;&lt;/p&gt;

&lt;p&gt;First, in my project&#8217;s lib folder, I created a file called &#8220;database_fun.rake&#8221;. The title isn&#8217;t too important so don&#8217;t get too hung up. Here are it&#8217;s base contents&#8230;&lt;/p&gt;

&lt;pre&gt;
namespace :db do

end
&lt;/pre&gt;

&lt;p&gt;Then I added my database creation task&#8230;&lt;/p&gt;

&lt;pre&gt;
namespace :db do
  desc &quot;Creates your database&quot; 
  task :create =&amp;gt; :environment do

    ActiveRecord::Base.configurations.each_value do |mode|
     p &quot;creating #{mode[&quot;database&quot;] }&quot; 
     ActiveRecord::Base.establish_connection(mode.merge({'database' =&amp;gt; nil}))
     ActiveRecord::Base.connection.create_database mode[&quot;database&quot;]     
    end
    p &quot;moving on to migrate&quot; 
    ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['development'])
    Rake::Task[&quot;rake:db:migrate&quot;].invoke
  end
end
&lt;/pre&gt;

&lt;p&gt;Gorgeous ain&#8217;t she? And now, the deletion task&#8230;&lt;/p&gt;

&lt;pre&gt;
namespace :db do
  desc &quot;Creates your database&quot; 
  task :create =&amp;gt; :environment do

    ActiveRecord::Base.configurations.each_value do |mode|
     p &quot;creating #{mode[&quot;database&quot;] }&quot; 
     ActiveRecord::Base.establish_connection(mode.merge({'database' =&amp;gt; nil}))
     ActiveRecord::Base.connection.create_database mode[&quot;database&quot;]     
    end
    p &quot;moving on to migrate&quot; 
    ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['development'])
    Rake::Task[&quot;rake:db:migrate&quot;].invoke
  end

  desc &quot;drops your dev database&quot; 
  task :drop =&amp;gt; :environment do
    mode = ActiveRecord::Base.configurations['development']
    ActiveRecord::Base.establish_connection(mode)
    ActiveRecord::Base.connection.drop_database(mode['database'])
    p &quot;dropped!&quot; 
  end

end
&lt;/pre&gt;

&lt;p&gt;Rad innit? Since this is in the &#8220;lib&#8221; directory, rails loads it up everytime you fire up your app and because the file has a .rake extension, rake knows to look into it to find your tasks. To invoke the creation task, in this case, you just call&#8230;&lt;/p&gt;

&lt;pre&gt;
rake:db:create
&lt;/pre&gt;

&lt;p&gt;and to drop the development database (I only wanted to be able to drop that one for now)...&lt;/p&gt;

&lt;pre&gt;
rake:db:drop
&lt;/pre&gt;

&lt;p&gt;Let that flash of inspiration sink in for a minute and give it a good look over. Have any questions or a better way to do it? Feel free to enlighten me in the comments.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-05-01:97</id>
    <published>2007-05-01T06:39:00Z</published>
    <updated>2007-05-01T07:54:28Z</updated>
    <category term="ruby"/>
    <category term="Ruby"/>
    <category term="Silverlight"/>
    <link href="http://okwithfailure.com/2007/5/1/zomg-microsoft-shows-ruby-some-serious-love" rel="alternate" type="text/html"/>
    <title>ZOMG Microsoft shows Ruby some serious love</title>
<content type="html">
            &lt;p&gt;Microsoft pretty much shocked and awed the whole world today with a number of announcements they unleashed today at &lt;a href=&quot;http://www.visitmix.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MIX07&lt;/span&gt;&lt;/a&gt;, most of which were about their &#8220;does everything&#8221; &lt;a href=&quot;http://silverlight.net/&quot;&gt;Silverlight&lt;/a&gt; platform. The platform itself, and it&#8217;s ability to stream 720p content at native full screen size, is fun and exciting but what puts that glazed cherry on top is that Microsoft has added a little &lt;span class=&quot;caps&quot;&gt;CLR&lt;/span&gt; to Silverlight, that includes support for Ruby! That&#8217;s right, all you Ruby developers will now be able to shower the world with gifts of cross-browser and cross-platform awesomeness. Silverlight also supports Javascript and some other languages but seriously, Ruby is the only one you needed to know about (well, the python bit is cool too).&lt;/p&gt;


	&lt;p&gt;I cannot wait to get a crack at programming some goodies on this Silverlight platform. The piece on &lt;a href=&quot;http://www.techcrunch.com/2007/04/30/silverlight-the-web-just-got-richer/&quot;&gt;TechCrunch&lt;/a&gt; spoke of a demo that sounded pretty rad. Goodbye Actionscript, hello Ruby&#8230;again.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://blog.jonudell.net/2007/04/30/a-conversation-with-john-lam-about-the-dynamic-language-runtime-silverlight-and-ruby/&quot;&gt;Here&#8217;s&lt;/a&gt; an interview with the creator of the RubyCLR, John Lam.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-04-29:95</id>
    <published>2007-04-29T14:33:00Z</published>
    <updated>2007-04-29T16:02:38Z</updated>
    <category term="enhancing laziness"/>
    <category term="rake"/>
    <category term="Ruby on Rails"/>
    <category term="ruby on rails"/>
    <link href="http://okwithfailure.com/2007/4/29/what-you-may-want-to-know-if-you-want-to-create-your-own-rake-tasks" rel="alternate" type="text/html"/>
    <title>What you may want to know if you want to create your own rake tasks</title>
<content type="html">
            &lt;p&gt;I&#8217;m a big fan of enhancing. I like enhancing my meals with flavorful spices and herbs, I like enhancing my breath by chewing minty gum and I love enhancing my laziness with useful &lt;a href=&quot;http://rake.rubyforge.org/&quot;&gt;rake&lt;/a&gt; tasks. When I started out to write a few tasks I thought I would find helpful I realized, I know jack all about actually writing a rake task, and even less when it came to writing one for use in a rails project. So, I figured I&#8217;d throw out a couple of hints just in case you too wanted to enhance your laziness (That&#8217;s sounds so zen-like doesn&#8217;t it?)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tip #1&lt;/b&gt; &#8211; Martin Fowler wrote up a &lt;a href=&quot;http://www.martinfowler.com/articles/rake.html&quot;&gt;pretty good piece&lt;/a&gt; on using the rake build language. It&#8217;s everything you&#8217;d expect from a Fowler article, it&#8217;s long, thorough and chock full of good rake detail. &lt;/li&gt;

&lt;li&gt;&lt;b&gt;tip #2&lt;/b&gt; &#8211; &lt;a href=&quot;http://snippets.dzone.com/tag/rake/2&quot;&gt;Dzone&lt;/a&gt; has some pretty good and useful rake code snippets. I&#8217;m sure you&#8217;d be able to find some at &lt;a href=&quot;http://pastie.caboo.se&quot;&gt;Pastie&lt;/a&gt; too.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;tip #3&lt;/b&gt; &#8211; In your rake file, you can access your database.yml configurations via calling&#8230; &lt;pre&gt;ActiveRecord::Base.configurations&lt;/pre&gt;. You could also create a new connection via ActiveRecord::Base.connection or use any other ActiveRecord methods but the Base methods are probably the ones you&#8217;ll use the most.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;tip #4&lt;/b&gt; &#8211; You can call other rake tasks from within your rake task like so&#8230;
&lt;pre&gt;Rake::Task['db:migrate']&lt;/pre&gt; &lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Next up, actual rake tasks!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-04-27:94</id>
    <published>2007-04-27T13:05:00Z</published>
    <updated>2007-04-27T13:37:18Z</updated>
    <category term="moo.fx"/>
    <category term="Ruby on Rails"/>
    <category term="ruby on rails"/>
    <category term="scriptaculous"/>
    <link href="http://okwithfailure.com/2007/4/27/add-some-spice-to-scriptaculous" rel="alternate" type="text/html"/>
    <title>Add some spice to Scriptaculous</title>
<content type="html">
            &lt;p&gt;One thing I dig about the &lt;a href=&quot;http://moofx.mad4milk.net/&quot;&gt;moo.fx&lt;/a&gt; javascript library, besides it&#8217;s inspiring small size of course, are the wicked cool transitions library it comes bundled with. What makes it a touch cooler than the Scriptaculous transitions are the &lt;a href=&quot;http://www.robertpenner.com/&quot;&gt;Robert Penner&lt;/a&gt;-certified easing and elasticity equations. It sure would be nice to be able to have access to those transitions with Scriptaculous wouldn&#8217;t it? You can probably see where I&#8217;m going with this, thanks to the title of this post especially, but if you don&#8217;t, here&#8217;s a hint. I&#8217;m going to show you add to get this bouncy goodness into Scriptaculous so you too can make all kinds of bad UI decisions. &lt;/p&gt;

&lt;p&gt;Lucky for us, Ken Snyder did the footwork on porting over the actual equations to be easily compatible with Scriptaculous. Too bad &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;#38;ct=res&amp;amp;#38;cd=1&amp;amp;#38;url=http%3A%2F%2Fcode.smartfitdesign.com%2Fdemos%2FEffectTransition%2F&amp;amp;#38;ei=ofUxRorUIqSSgwPh9-CPAw&amp;amp;#38;usg=AFrqEzcY156m1qMxclTwpiNR6RX9yOY9jA&amp;amp;#38;sig2=kiwqor_9UR4KLdBmFJ1B3Q&quot;&gt;his site&lt;/a&gt; is harder to get into than the trendiest nightclub (yeah, I couldn&#8217;t think of the name of a club because to go out to clubs you have to be three things, single, kidless and a little unstable) on a Friday night. Good thing I sat there for at least 5 minutes one day, refreshing the hell out of that page until I got something. I&#8217;ll stick the actual code after this post so you can copy and paste it and do what ever you want with it. &lt;/p&gt;

&lt;p&gt;Once you have the code, you can either plug it directly into the Scriptaculous effects.js file, under the &#8220;transitions&#8221; section, or in it&#8217;s own file. I opted to stick it in it&#8217;s own file so I wouldn&#8217;t have to keep replacing it every time I updated to a newer version of Scriptaculous. So following my lead, stick the actual code in a file called &#8220;transitions.js&#8221; and place it in your rails_project_root/public/javascripts folder.&lt;/p&gt; 

&lt;p&gt;Now you have to add the call to load it in your layout file of choice. A good place to start is in your application.html.erb (application.erb or application.rhtml or whatever, you get the gist). Add this to the &amp;lt;head&gt; section of the page..&lt;/p&gt;

&lt;pre&gt; &amp;lt;%= javascript_include_tag 'transitions' %&amp;gt; &lt;/pre&gt;

&lt;p&gt;Now, you have to be careful where you add this. You have to add it below the call to load Scriptaculous and Prototype because that&#8217;s just how Javascript works and I like making your life difficult. So, when all&#8217;s said and done, your &amp;lt;head&gt; should have these calls&#8230;.&lt;/p&gt;

&lt;pre&gt;
  &amp;lt;%= javascript_include_tag :defaults %&amp;gt;
  &amp;lt;%= javascript_include_tag 'transitions' %&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Now you&#8217;re free to use the many transitions where ever you darn well please. I&#8217;ve used it recently to make a login box in one of my side project apps do all kinds of unneccessary bouncing. To actual use one of these transitions with a Scriptaculous effect, like the &lt;a href=&quot;http://wiki.script.aculo.us/scriptaculous/show/Effect.MoveBy&quot;&gt;Effect.MoveBy&lt;/a&gt; for example, you could call it out using the Rails link_to_function helper like so&#8230;&lt;/p&gt;

&lt;pre&gt;
&amp;lt;%= link_to_function &quot;Login&quot;, 
          &quot;new Effect.MoveBy( $('login_box'), 140, 0, {duration: 1, transition: Effect.Transitions.Bounce}); new Effect.Fade('pull_down', { queue: 'end' } )&quot; %&amp;gt;
&lt;/pre&gt;

&lt;p&gt;&#8220;login_box&#8221; is the id of my, you guessed it, div that holds the log in form. What this basically does is fire off the Scriptaculous MoveBy to move the div to a certain place and uses our slick new Bounce transition to get the div there. Oh it&#8217;s good stuff. Feel free to unleash your inner UI expert and go wild. 

	&lt;p&gt;Now here&#8217;s the actual code since that smartfitdesign seems to forever be in hibernation.&lt;/p&gt;&lt;/p&gt;


&lt;code&gt;
&lt;pre&gt;
/*
transitions.js

Based on Easing Equations v2.0
(c) 2003 Robert Penner, all rights reserved. 
This work is subject to the terms in http://www.robertpenner.com/easing_terms_of_use.html

Adapted for Scriptaculous by Ken Snyder (kendsnyder ~at~ gmail ~dot~ com) June 2006
*/

/*
Overshooting Transitions
*/
// Elastic (adapted from &quot;EaseOutElastic&quot;)
Effect.Transitions.Elastic = function(pos) {
    return -1*Math.pow(4,-8*pos) * Math.sin((pos*6-1)*(2*Math.PI)/2) + 1;
};
// SwingFromTo (adapted from &quot;BackEaseInOut&quot;)
Effect.Transitions.SwingFromTo = function(pos) {
    var s = 1.70158;
    if ((pos/=0.5) &amp;lt; 1) return 0.5*(pos*pos*(((s*=(1.525))+1)*pos - s));
    return 0.5*((pos-=2)*pos*(((s*=(1.525))+1)*pos + s) + 2);
};
// SwingFrom (adapted from &quot;BackEaseIn&quot;)
Effect.Transitions.SwingFrom = function(pos) {
    var s = 1.70158;
    return pos*pos*((s+1)*pos - s);
};
// SwingTo (adapted from &quot;BackEaseOut&quot;)
Effect.Transitions.SwingTo = function(pos) {
    var s = 1.70158;
    return (pos-=1)*pos*((s+1)*pos + s) + 1;
};

/*
Bouncing Transitions
*/
// Bounce (adapted from &quot;EaseOutBounce&quot;)
Effect.Transitions.Bounce = function(pos) {
    if (pos &amp;lt; (1/2.75)) {
        return (7.5625*pos*pos);
    } else if (pos &amp;lt; (2/2.75)) {
        return (7.5625*(pos-=(1.5/2.75))*pos + .75);
    } else if (pos &amp;lt; (2.5/2.75)) {
        return (7.5625*(pos-=(2.25/2.75))*pos + .9375);
    } else {
        return (7.5625*(pos-=(2.625/2.75))*pos + .984375);
    }
};
// BouncePast (new creation based on &quot;EaseOutBounce&quot;)
Effect.Transitions.BouncePast = function(pos) {
    if (pos &amp;lt; (1/2.75)) {
        return (7.5625*pos*pos);
    } else if (pos &amp;lt; (2/2.75)) {
        return 2 - (7.5625*(pos-=(1.5/2.75))*pos + .75);
    } else if (pos &amp;lt; (2.5/2.75)) {
        return 2 - (7.5625*(pos-=(2.25/2.75))*pos + .9375);
    } else {
        return 2 - (7.5625*(pos-=(2.625/2.75))*pos + .984375);
    }
};

/*
Gradual Transitions
*/
// EaseFromTo (adapted from &quot;Quart.EaseInOut&quot;)
Effect.Transitions.EaseFromTo = function(pos) {
    if ((pos/=0.5) &amp;lt; 1) return 0.5*Math.pow(pos,4);
    return -0.5 * ((pos-=2)*Math.pow(pos,3) - 2);    
};
// EaseFrom (adapted from &quot;Quart.EaseIn&quot;)
Effect.Transitions.EaseFrom = function(pos) {
    return Math.pow(pos,4);
};
// EaseTo (adapted from &quot;Quart.EaseOut&quot;)
Effect.Transitions.EaseTo = function(pos) {
    return Math.pow(pos,0.25);
};
&lt;/pre&gt;
&lt;/code&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-04-27:92</id>
    <published>2007-04-27T06:40:00Z</published>
    <updated>2007-04-27T06:57:55Z</updated>
    <category term="Housekeeping"/>
    <category term="MacBook"/>
    <category term="Ruby on Rails"/>
    <link href="http://okwithfailure.com/2007/4/27/just-a-recap-of-where-i-m-coming-from" rel="alternate" type="text/html"/>
    <title>Just a recap of where I'm coming from</title>
<content type="html">
            &lt;p&gt;As far as Rails blogging is concerned, I have moved permanently from my old Ruby on Rails blogging get up at &lt;a href=&quot;http://noobonrails.blogspot.com/&quot;&gt;NoobOnRails&lt;/a&gt; over to this here, Ok with Failure. I didn't really do as much blogging back then as I would have liked but I was really in cram mode trying to learn as much as I could about any and everything web related. Now that I've got a full on Ruby on Rails gig at the oh-so-awesome &lt;a href=&quot;http://www.integrumtech.com/&quot;&gt;integrum&lt;/a&gt;, I've decided to jump back into this whole &quot;blogging&quot; thing and give'er a good what for. &lt;/p&gt;

&lt;p&gt;The Ruby on Rails landscape has changed quite a bit since I stopped posting at NoobOnRails, and there's a lot on that site that doesn't really apply anymore. For anyone who's read anything I wrote on that blog, here's a quick rundown of what is or isn't important or what has or hasn't changed. &lt;/p&gt;

&lt;p&gt;First off, acts_as_taggable is long gone my friends. Once upon a time, there was an &lt;a href=&quot;http://rubyforge.org/projects/taggable/&quot;&gt;acts_as_taggable plugin&lt;/a&gt; that was pretty nifty when it came out. It did it's thing for a while, then everyone freaked out when there seemed to be an &quot;official&quot; acts_as_taggable plugin coming from DHH himself. Well, they're both pretty much &quot;dead&quot;. The plugin may still scratch a few itches out there, but that old hotness has been replaced with Evan Weaver's &quot;&lt;a href=&quot;http://blog.evanweaver.com/pages/has_many_polymorphs&quot;&gt;has_many_polymorphs&lt;/a&gt;&quot; hotness.&lt;/p&gt; 

&lt;p&gt;Second, I'm still learning awesome MacBook tips everyday. A good one I've learned recently is that you can zoom in and out right there on your desktop. Just hold &quot;ctrl&quot; and do the two-finger scoll thing on your trackpad and watch your world get rocked. It's been great to have something that easy to fine tune CSS placements. All I need know is a &quot;do that thing I could do on my pc, no, not that, yeah, that one&quot; shortcut of somekind and I'll be set. &lt;/p&gt;

&lt;p&gt;Third, hmm, well, I think that really covers anything that anyone may have read on my other blog so yeah, I'll get back to posting goodies here. &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://okwithfailure.com/">
    <author>
      <name>curtis</name>
    </author>
    <id>tag:okwithfailure.com,2007-04-27:91</id>
    <published>2007-04-27T06:36:00Z</published>
    <updated>2007-04-27T06:39:24Z</updated>
    <category term="Housekeeping"/>
    <link href="http://okwithfailure.com/2007/4/27/welcome-to-my-new-pad" rel="alternate" type="text/html"/>
    <title>Welcome to my new pad</title>
<content type="html">
            &lt;p&gt;Welcome to my little spot on the web where I plan on posting, well, what ever I pretty much please. &#8220;What I please&#8221; so far is Ruby on Rails, web development as a grander whole and learning as much as I can about everything. Hope you enjoy the ride!&lt;/p&gt;
          </content>  </entry>
</feed>
