<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>Thought Into Motion</title>
    
    
    <link rel="alternate" type="text/html" href="http://www.thoughtintomotion.com/" />
    <id>tag:typepad.com,2003:weblog-1421751</id>
    <updated>2009-11-11T20:48:34-05:00</updated>
    <subtitle>Experiments in programming</subtitle>
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/typepad/treadpath/thoughtintomotion" /><feedburner:info uri="typepad/treadpath/thoughtintomotion" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
        <title>Flex 4 (Gumbo), and what it will do for you!!</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/_eHlt9CLNm0/gumbo-and-what-it-will-do-for-you.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/11/gumbo-and-what-it-will-do-for-you.html" thr:count="1" thr:updated="2010-01-25T18:37:22-05:00" />
        <id>tag:typepad.com,2003:post-68209397</id>
        <published>2009-11-11T20:48:34-05:00</published>
        <updated>2009-06-17T14:44:23-04:00</updated>
        <summary>I have started looking into Flex 4 (Gumbo) and below are a couple of links that I have stumbled across with more information about Flex 3 &amp; Flex 4. As I find more links I will try and keep this...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>I have started looking into Flex 4 (Gumbo) and below are a couple of links that I have stumbled across with more information about Flex 3 &amp; Flex 4.  As I find more links I will try and keep this list updated.   Please add any additional links through the comments or send me an email and I will make sure.</p><p>Links:</p><p><a href="http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html" target="_blank">Differences Between Flex 3 and Flex 4 beta</a>:  Written by Joan Lafferty, this article focuses more on low level styles and changes and is well suited for someone looking into the visual aspects of the new platform.  Overall I felt that the content was excellent and a nice walk through on some of the key differences in the two releases. </p><p><a href="http://www.adobe.com/devnet/flex/articles/flex4sdk_whatsnew.html" target="_blank">What's New In Flex 4</a>:  Matt Chotin gives a very high level overview on some of the new visual features in flex 4.   The article is more for a 10,000 foot overview on the key design changes, but offers some good links to other more technical articles.</p><p><a href="http://www.adobe.com/devnet/flex/articles/flex4builder_whatsnew.html" target="_blank">What's New in Flash Builder 4 Beta</a>:  I have to admit that I am more of a data guy then a graphics person and so far most of the changes where about the display side of things.  This article highlights a new "Data Centric Development" method that focuses more on the data side of things.   Tim Buntel gives a high level and intriguing look at some of the data enhancements to the platform.   I am sure this will be a topic for more posts. </p></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/11/gumbo-and-what-it-will-do-for-you.html</feedburner:origLink></entry>
    <entry>
        <title>Publish Feed Stories With Facebooker &amp; Rails</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/-x7SGUuzBXo/publish-feed-stories-with-facebooker-rails.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/06/publish-feed-stories-with-facebooker-rails.html" thr:count="4" thr:updated="2010-02-09T04:41:30-05:00" />
        <id>tag:typepad.com,2003:post-67989909</id>
        <published>2009-06-11T12:55:33-04:00</published>
        <updated>2009-06-11T13:10:55-04:00</updated>
        <summary>Facebooker is a rails plugin that wraps the Facebook REST API's. If you are not a facebook developer, then learning how to use facebooker can be somewhat of a bear. To make things easier there are three links that you...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Facebook Connect" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby On Rails" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Web/Tech" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Facebooker is a rails plugin that wraps the <a href="http://facebooker.rubyforge.org/" target="_blank">Facebook</a> <a href="http://facebooker.rubyforge.org/" target="_blank">REST API's</a>.   If you are not a facebook developer, then learning how to use facebooker can be somewhat of a bear.  To make things easier there are three links that you should first look at when you have any issues. </p><div><ul>
<li><a href="http://developer.facebook.com/" target="_blank">Facebook Developer Tools</a>: You will need to be logged into facebook to see this site.  The developer tools section contains important API's as well as tools and documentation to help you use <a href="http://" /><a href="http://developers.facebook.com/connect.php" target="_blank">facebook connect</a>.</li>
<li><a href="http://www.madebymany.co.uk/tutorial-for-restful_authentication-on-rails-with-facebook-connect-in-15-minutes-00523" target="_blank">Restfull Authentication &amp; Facebook Connect</a>:  This is a great tutorial about how to hookup the two plugins and get an out of the box simple authentication system integrated with Facebook Connect.  </li>
<li><a href="http://facebooker.rubyforge.org/" target="_blank">Facebooker Home Page</a>:  This link takes you to the facebooker documentation.  Some of the links are outdated but the API appears to be updated.   </li>
</ul>
</div><div><span /></div><br /><div>For this post we are going to assume that you are somewhat familiar with facebook and the facebook connect concepts.  If you are not take a couple of minutes and read up on the links mentioned above. </div><br /><div>Feed stories are published using the <strong>Facebooker::Rails::Publisher </strong>class which works very smilier to the way that action mailer works.    First you define a publisher class extending from the facebooker Facebooker::Rails::Publisher class.   Then you create different templates for one line, short story, and full post feeds to publish your content.  Finally you then call your actions from your model and if you have a valid facebook session you will see something like the following:<br /></div><br /><div><a href="http://treadpath.typepad.com/.a/6a00e54ede02148833011570f59f19970b-pi" style="display: inline;"><img alt="Publish" border="0" class="at-xid-6a00e54ede02148833011570f59f19970b image-full " src="http://treadpath.typepad.com/.a/6a00e54ede02148833011570f59f19970b-800wi" title="Publish" /></a> <br /></div><br /><br /><div>We are going to show you how you publish a simple short story feed in three simple steps. </div><br /><div><strong>Step 1.</strong>  Define your story templates and actions within your new publisher class.  To do this create an new model for your application and have it inherit from the Facebooker::Rails::Publisher class as you see below:</div><br /><div><div><span style="color: #0000bf; font-family: Courier; ">class FacebookPublisher &lt; Facebooker::Rails::Publisher</span></div><div><span style="white-space: pre; color: #0000bf; font-family: Courier; ">	</span><span style="color: #0000bf; font-family: Courier; "># Add template and actions here</span></div><div><span style="color: #0000bf; font-family: Courier; ">end</span></div></div><br /><div>    Now that you have your class you need to define your templates for publishing the stories.   The naming convention for templates is the name of the action followed by an _template.  If the concept of templates and feed stories are foreign to you, I would recommend checking out the <a href="http://developer.facebook.com/tools.php?feed" target="_blank">Feed Template Tool</a> from the facebook developer site.  This tool will takes you through the steps of defining the templates and acts as a great primer for the terminology and definition of a feed template.   Once you are familiar with the concepts of feeds creating your own will be a snap.  For our example, below is the template for publishing a battle on <a href="http://2contenders.com" target="_blank">2contenders.com</a>:</div><br /><div style="overflow-x: auto;"><span style="color: #0000ff; "><span style="font-family: Courier;">def publish_battle_template</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    one_line_story_template "{*actor*} posted a new 2contenders battle: {*battle_title*}"</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    short_story_template "{*actor*} posted a new 2contenders battle", "&lt;a href='{*battle_url*}'&gt;{*battle_title*}&lt;/a&gt;: {*question*}"</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">end </span></span></div><div><span color="#0000FF" style="font-family: Courier, Verdana, sans-serif;"><br /></span></div><div><span color="#0000FF" style="font-family: Courier, Verdana, sans-serif;"><span style="color: #000000; font-family: 'Trebuchet MS', Verdana, sans-serif; ">    Once you have the template defined you will create the action to populate the data within the template.  Your method will need to create a couple of the key elements such as the type of action, the person who is sending the action and finally the data to be used by the template.  There are a couple of different types of actions available and I would suggest referring the the facebooker documentation for more information.  In this case we are going to publish a user action.   The from user should be retrieved from the current facebook session.  The data section is a hash of elements to match your variables within the feed template.  Below is the code to fill in the feed template for our example:</span></span></div><br /><div><div><span style="color: #0000ff; "><span style="font-family: Courier;">def publish_battle(battle, contender1, contender2, facebook_session)</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    send_as :user_action</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    from facebook_session.user</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    data :images=&gt;[image(battle.comment_image(contender1.id),contender1.plain_url),image(battle.comment_image(contender2.id),contender2.plain_url)], :actor =&gt; facebook_session.user.first_name, :battle_title=&gt;battle.show_title, :battle_url=&gt;battle.plain_url, :question=&gt;battle.question</span></span></div><div><span style="color: #0000ff; font-family: 'Trebuchet MS'; "><span style="font-family: Courier;">end</span><br /></span></div></div><div><span color="#0000FF" style="font-family: Courier, Verdana, sans-serif;"><span style="color: #000000; font-family: 'Trebuchet MS', Verdana, sans-serif; "> </span>  </span></div><div><span color="#0000FF" style="font-family: Courier, Verdana, sans-serif;"><span style="color: #000000; font-family: 'Trebuchet MS', Verdana, sans-serif; ">    As you might have noticed in the data we reference the data element "images" but we don't use that element in our feed template.  The "images" data element is inherent to all feed templates and takes an array of image objects.   If you are going to be passing images to your template you need to make sure this is the first element in the data hash.  Placement is important and if the images element is not first it will be ignored. </span><br /></span></div><br /><div>   Now that we have introduced the different elements of our publisher, your final class should look like the following:  </div><br /><div><div><span style="color: #0000ff; "><span style="font-family: Courier;">class FacebookPublisher &lt; Facebooker::Rails::Publisher</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;"><br /></span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">     def publish_battle_template</span></span></div><div><span style="white-space: pre; color: #0000ff; "><span style="font-family: Courier;">	</span></span><span style="color: #0000ff; "><span style="font-family: Courier;">  one_line_story_template "{*actor*} posted a new 2contenders battle: {*battle_title*}"</span></span></div><div><span style="white-space: pre; color: #0000ff; "><span style="font-family: Courier;">	</span></span><span style="color: #0000ff; "><span style="font-family: Courier;">  short_story_template "{*actor*} posted a new 2contenders battle", "&lt;a href='{*battle_url*}'&gt;{*battle_title*}&lt;/a&gt;: {*question*}"</span></span></div><div><span style="color: #0000ff; "><span style="white-space: pre;"><span style="font-family: Courier;">  </span></span><span style="font-family: Courier;">end</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;"><br /></span></span></div><div><span style="color: #0000ff; "><span style="white-space: pre;"><span style="font-family: Courier;">  </span></span><span style="font-family: Courier;">def publish_battle(battle, contender1, contender2, facebook_session)</span></span></div><div><span style="white-space: pre; color: #0000ff; "><span style="font-family: Courier;">	</span></span><span style="color: #0000ff; "><span style="font-family: Courier;">  send_as :user_action</span></span></div><div><span style="white-space: pre; color: #0000ff; "><span style="font-family: Courier;">	</span></span><span style="color: #0000ff; "><span style="font-family: Courier;">  from facebook_session.user</span></span></div><div><span style="white-space: pre; color: #0000ff; "><span style="font-family: Courier;">	</span></span><span style="color: #0000ff; "><span style="font-family: Courier;">  data :images=&gt;[image(battle.comment_image(contender1.id),contender1.plain_url),image(battle.comment_image(contender2.id),contender2.plain_url)], :actor =&gt; facebook_session.user.first_name, :battle_title=&gt;battle.show_title, :battle_url=&gt;battle.plain_url, :question=&gt;battle.question</span></span></div><div><span style="color: #0000ff; "><span style="white-space: pre;"><span style="font-family: Courier;">  </span></span><span style="font-family: Courier;">end</span></span></div><div><span style="font-family: Courier;"><br /></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">end</span></span></div></div><br /><div><span color="#0000FF" style="font-family: Courier, Verdana, sans-serif;"><br /></span></div><div><span style="font-family: Courier, Verdana, sans-serif;"><span style="font-family: 'Trebuchet MS', Verdana, sans-serif; font-weight: bold; ">Step 2.  </span><span style="font-family: 'Trebuchet MS', Verdana, sans-serif; ">Now that our template class has been created you have completed 90% of the work involved in publish a feed story to facebook.   One of the things that the facebooker plugin does behind the scenes is submit and register our feed template with facebook.   Once the template has been registered it is stored in the database for retrieval.   In order to do this you will need to create a new table in your database to store the templates.     Add the following database migration to your rails application:</span><br /></span></div><br /><div><div><span style="color: #0000ff; "><span style="font-family: Courier;">class CreateFacebookTemplates &lt; ActiveRecord::Migration</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">  def self.up</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    create_table :facebook_templates, :force =&gt; true do |t|      </span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">      t.string :template_name, :null =&gt; false</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">      t.string :content_hash, :null =&gt; false</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">      t.string :bundle_id, :null =&gt; true</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    end</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    add_index :facebook_templates, :template_name, :unique =&gt; true</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">  end</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;"><br /></span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">  def self.down</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    remove_index :facebook_templates, :template_name</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">    drop_table :facebook_templates</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">  end</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">end</span></span></div><br /><br /><div><span style="font-weight: bold; ">Step 3.  </span>Finally now that you have created your publisher and the database table to hold the registered templates you need to call the template from your controller.   As we mentioned before the syntax for calling your method is very similar to the way you invoke an action mailer method.    To call your method you simply add the word "create_" in front of the method call.  For our example you would use the following syntax to invoke the publish_battle method:<br /></div><br /><div><span style="color: #0000ff; "><span style="font-family: Courier;">flash[:user_action_to_publish] = FacebookPublisher.create_publish_battle(@battle, @battle.contenders[0], @battle.contenders[1], session[:facebook_session])</span></span><br /></div></div><div><span style="font-family: Courier, Verdana, sans-serif;"><br /></span></div><div><span style="font-family: Courier, Verdana, sans-serif;">  </span><span style="font-family: 'Trebuchet MS';">The returned value is the FBXML that is needed to call this action via the Facebook API.   Since this is done through javascript you will need to add a section to your site layout to display the new content.  In our case we only wanted this to be called after your battle was initially created so we used the flash[] mechanism as a way to invoke our content.  To do this add the following code to the head section of your site layout:</span></div><div><span style="font-family: Courier, Verdana, sans-serif;"><br /></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">&lt;%= fb_connect_javascript_tag %&gt;</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">&lt;% init_fb_connect "XFBML","Api" do %&gt;</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">      &lt;%= fb_user_action(flash[:user_action_to_publish]) if flash[:user_action_to_publish] %&gt;</span></span></div><div><span style="color: #0000ff; "><span style="font-family: Courier;">&lt;% end %&gt;</span></span></div><div><span style="font-family: Courier, Verdana, sans-serif;"> </span></div><div><span style="font-family: Courier, Verdana, sans-serif;"><br /></span></div><div><span style="font-family: 'Trebuchet MS';">Congratulations you did it.  Hopefully you found this post to be useful and you are well on your way to publishing content back to facebook.  In our next post we are going to talk about how to publish the fb_user_action in response to an AJAX call. </span></div><div><span style="font-family: Courier, Verdana, sans-serif;"><br /></span></div><div><span style="font-family: Courier, Verdana, sans-serif;"><br /></span></div><div><span style="font-family: Courier, Verdana, sans-serif;"><br /></span></div></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/06/publish-feed-stories-with-facebooker-rails.html</feedburner:origLink></entry>
    <entry>
        <title>2Contenders Gets Facebook Connect </title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/OsMLdGL9Dyw/2contenders-gets-facebook-connect-.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/06/2contenders-gets-facebook-connect-.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-67640115</id>
        <published>2009-06-04T15:42:05-04:00</published>
        <updated>2009-06-04T15:45:52-04:00</updated>
        <summary>We have been fighting with integration facebook connect into 2contenders now for the better part of 2 weeks. I am happy to announce that the changes have gone live. While we are still shaking out some of the bugs the...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="2contenders" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Facebook Connect" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby On Rails" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>We have been fighting with integration <a href="http://developers.facebook.com/connect.php" target="_blank">facebook connect</a> into <a href="http://2contenders.com" target="_blank">2contenders</a> now for the better part of 2 weeks.   I am happy to announce that the changes have gone live.  While we are still shaking out some of the bugs the new features are great.   Now when you hit 2contenders you can create a local account or sign up using your facebook information.    If you already had a local account you can still click the facebook connect and link your local and facebook accounts.  This will enable you to use all the features on the site.   Below is a list of the new Facebook Connect features.</p><ul>
<li>Publish New Battles To Facebook</li>
<li>Publish New Comments To Facebook</li>
<li>Publish Ratings To Facebook</li>
<li>Publish Voting To Facebook </li>
</ul>
<br /><div>One of the best features is that each post must be confirmed by you.  While this sounds like it might become a pain, we have found this is a nice option.  While all services can be truned on or off from your profile sometimes you don't want things to be shared and this will allow you to control the information flow without causing to much of an interruption in service.   </div><p><span><br /><br />Finally for the developers in us, we have learned a couple of things during this process and we will be sharing more blog posts about technical stuff in the next couple of posts.   But for now, we are just happy it we got this promoted. </span></p><br /><div>Next Up:  Twitter Integration</div><br /><div>Please feel free to post any comments or thoughts you might have regarding 2contenders or what you might want to see from our Facebook Connect posts. </div></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/06/2contenders-gets-facebook-connect-.html</feedburner:origLink></entry>
    <entry>
        <title>Google Does It Again</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/_VNeu20jG0A/google-does-it-again.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/05/google-does-it-again.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-67422577</id>
        <published>2009-05-29T16:22:33-04:00</published>
        <updated>2009-05-29T16:22:33-04:00</updated>
        <summary>It's friday and we have stumbled across a fantastic product announcement. It seems google has been working on how to bring real time collaboration to the web and they have released a demo of their product. While the demo is...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Google" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="HTML5" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Web/Tech" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>It's friday and we have stumbled across a fantastic product announcement.   It seems google has been working on how to bring real time collaboration to the web and they have released a demo of their product.   While the demo is a little long it flies by as the product is pretty impressive.</p><div><br /><div><a href="http://wave.google.com/"><a href="http://wave.google.com/" target="_blank">Watch The Demo</a></a></div></div></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/05/google-does-it-again.html</feedburner:origLink></entry>
    <entry>
        <title>2contenders Updates</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/0QEXKgVgSxc/2contenders-updates.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/04/2contenders-updates.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-65869817</id>
        <published>2009-04-22T12:13:31-04:00</published>
        <updated>2009-04-22T12:13:31-04:00</updated>
        <summary>Over the weekend we rolled out some new changes to the 2contenders website. Most of the changes are visual. Profile pages have been completely redone to show more information but also make it easier to navigate. One the back-end we...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="2contenders" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Games" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby On Rails" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Web/Tech" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Over the weekend we rolled out some new changes to the <a href="http://2contenders.com" target="_blank">2contenders</a> website.  Most of the changes are visual.  Profile pages have been completely redone to show more information but also make it easier to navigate.    One the back-end we have started to roll up the user activity so that we can add in some graphs and show your activity versus the average user.  We feel that this will add to the competition element of the site.   Listed below is small list highlighting the big changes. </p><br /><div>New Features:</div><div><ul>
<li>New profile pages</li>
<li><span>New direct messaging interface</span> </li>
<li>Improved friends list with larger images and more information. </li>
<li><span>New random avatars for people who haven't posted a picture.  We were all getting annoyed with the grey box.</span> </li>
<li><span>New user ranking based on the boxing weight classes.</span> </li>
</ul>
</div><br /><div>We are not done though!!   We are looking to finish up and roll out over the next 2 weeks some more new features.  </div><br /><div>Upcoming Features:</div><div><ul>
<li>Twitter &amp; Facebook integration</li>
<li><span>User stats pages with graphs</span> </li>
<li>A mini-widget for embedding battles into your sites. </li>
</ul>
<div>As always please feel free to send us any thoughts of suggestions at suggestions@2contenders.com</div><div>Thanks and let the battling begin.</div> <br /></div></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/04/2contenders-updates.html</feedburner:origLink></entry>
    <entry>
        <title>What is coworking?</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/exfdjmErdJ0/what-is-coworking.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/02/what-is-coworking.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-62446701</id>
        <published>2009-02-05T16:52:04-05:00</published>
        <updated>2009-02-05T16:52:04-05:00</updated>
        <summary>I have been research a relatively new twist on the old concept of business incubators. This new twist has been given a great new term.... coworking. "Coworking is an emerging trend for a new pattern for working. Typically work-at-home professionals...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="coworking" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>I have been research a relatively new twist on the old concept of <a href="http://en.wikipedia.org/wiki/Business_incubator" target="_blank">business incubators</a>.  This new twist has been given a great new term.... <a href="http://en.wikipedia.org/wiki/Coworking">coworking</a>.  </p><p>"<strong class="selflink">Coworking</strong> is an emerging trend for a
new pattern for working. Typically work-at-home professionals or
independent contractors or people who travel frequently end up working
in relative isolation.  Coworking is the social gathering of a group of people, who are still working independently, but who share values and who are interested in the synergy that can happen from working with talented people in the same space."</p><p>Speaking as a business person who works out of his home I was very excited when I started looking into this idea.   There is no currently available coworking spaces where I live, so I have decided to change that.  </p><p>If you are curious in more information please check out <a href="http://www.protegecafe.com">www.protegecafe.com</a> </p><p>Also there is a great wiki with a list of spaces.  I would suggest checking and seeing if there is a space around you.  Most place allow potential members to drop in for a day and check out the place.  </p><p><a href="http://coworking.pbwiki.com/">Coworking Wiki</a> </p></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/02/what-is-coworking.html</feedburner:origLink></entry>
    <entry>
        <title>mysql gem installation problems with osx</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/CT5CQSwAg_M/mysql-gem-installation-problems-with-osx.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/01/mysql-gem-installation-problems-with-osx.html" thr:count="1" thr:updated="2009-04-17T20:53:08-04:00" />
        <id>tag:typepad.com,2003:post-61103830</id>
        <published>2009-01-09T11:51:39-05:00</published>
        <updated>2009-01-09T11:51:39-05:00</updated>
        <summary>Recently we upgraded our development environments to rails 2.2.2. All was good until we realized that they had removed the bundled mysql connection library and we needed to install the gem on our OSX boxes. After running the install command:...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="OSX" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby On Rails" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Recently we upgraded our development environments to rails 2.2.2.  All was good until we realized that they had removed the bundled mysql connection library and we needed to install the gem on our OSX boxes.  </p><p>After running the install command:</p><p><span style="color: #0000bf; font-family: Courier;">sudo gem install mysql</span><br /><br />We received the following errors:<br /><span style="color: #0000bf; font-family: Courier;"><br />ERROR:  Error installing mysql:</span><br /><span style="color: #0000bf; font-family: Courier;">    ERROR: Failed to build gem native extension.</span></p><p><span style="color: #0000bf; font-family: Courier;">/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql</span><br /><span style="color: #0000bf; font-family: Courier;">checking for mysql_query() in -lmysqlclient... no</span><br /><span style="color: #0000bf; font-family: Courier;">checking for main() in -lm... yes</span><br /><span style="color: #0000bf; font-family: Courier;">checking for mysql_query() in -lmysqlclient... no</span><br /><span style="color: #0000bf; font-family: Courier;">checking for main() in -lz... yes</span><br /><span style="color: #0000bf; font-family: Courier;">checking for mysql_query() in -lmysqlclient... no</span><br /><span style="color: #0000bf; font-family: Courier;">checking for main() in -lsocket... no</span><br /><span style="color: #0000bf; font-family: Courier;">checking for mysql_query() in -lmysqlclient... no</span><br /><span style="color: #0000bf; font-family: Courier;">checking for main() in -lnsl... no</span><br /><span style="color: #0000bf; font-family: Courier;">checking for mysql_query() in -lmysqlclient... no</span><br /><span style="color: #0000bf; font-family: Courier;">*** extconf.rb failed ***</span><br /><span style="color: #0000bf; font-family: Courier;">Could not create Makefile due to some reason, probably lack of</span><br /><span style="color: #0000bf; font-family: Courier;">
necessary libraries and/or headers.  Check the mkmf.log file for more</span><br /><span style="color: #0000bf; font-family: Courier;">
details.  You may need configuration options.</span><br />
<span style="color: #0000bf; font-family: Courier;">etc...</span></p><p>Google searches revealed so good solutions but none of them worked.  The most popular methods required us to change the mysql.c file, and that is not something I general like to mess with.   Given our reluctance to start messing with header files, we keep looking for they combination of command line options that would work knowing we always had the other posts to fall back on.  </p><p>Finally we came up with a command that worked without having to modify the mysql.c file.  If you are running into problems getting the gem installed and you don't want to mess with the mysql.c file please try the command below.   It worked for us:</p><p><span style="color: #0000bf; font-family: Courier;">sudo gem install mysql -- --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config</span></p></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/01/mysql-gem-installation-problems-with-osx.html</feedburner:origLink></entry>
    <entry>
        <title>It's Alive!!!</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/ez3Jzj235bs/its-alive.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/01/its-alive.html" thr:count="1" thr:updated="2009-01-06T00:30:59-05:00" />
        <id>tag:typepad.com,2003:post-60890724</id>
        <published>2009-01-05T11:22:52-05:00</published>
        <updated>2009-01-05T11:22:52-05:00</updated>
        <summary>Well 2contenders is officially up. I just wanted to give a big thank you to all the people who helped us out in making the site. It was alot of fun working on this project and I know you guys...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="2contenders" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Well 2contenders is officially up.   I just wanted to give a big thank you to all the people who helped us out in making the site.  It was alot of fun working on this project and I know you guys will have fun playing around with it.</p><p>Thanks again!!!</p><p>Check out <a href="http://www.2contenders.com">2Contenders.com </a>for more details.</p></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/01/its-alive.html</feedburner:origLink></entry>
    <entry>
        <title>2Contenders Launches!!</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/Sr62u9c3tzk/2contenders-launches.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2009/01/2contenders-launches.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-60738110</id>
        <published>2009-01-02T21:42:10-05:00</published>
        <updated>2009-01-02T21:42:10-05:00</updated>
        <summary>Where to being. 2Contenders is a website that we have been playing with as a pet project and we have decided to launch it as a real site for everyone to use. The concept was born from a couple of...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="2contenders" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Programming" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby On Rails" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Where to being.   2Contenders is a website that we have been playing with as a pet project and we have decided to launch it as a real site for everyone to use.  The concept was born from a couple of simple arguments over movies, games, and hypothetical situations.  The site allows users to pit any two contenders against each other in a fictional battle.  Other users then vote on who they feel should win the battle. </p><div>Over the next couple of posts I am going to be talking about some of the unique challenges we encountered while building the site, and how we got around them.</div><br /><div>But in the meantime.  Please check out the site, and join the fun.</div><br /><div><a href="http://www.2contenders.com">www.2contenders.com</a><br /><br /><br /></div></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2009/01/2contenders-launches.html</feedburner:origLink></entry>
    <entry>
        <title>Session Data Storing Not Storing?</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/typepad/treadpath/thoughtintomotion/~3/Y0ZQv4PAlSs/session-data-storing-not-storing.html" />
        <link rel="replies" type="text/html" href="http://www.thoughtintomotion.com/2008/12/session-data-storing-not-storing.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-60235476</id>
        <published>2008-12-19T18:32:40-05:00</published>
        <updated>2008-12-19T18:32:40-05:00</updated>
        <summary>So today I had to debug a problem I had with one of my clients applications. In the session I was storing how a page was being sorted. The problem was that the sort was not saving to the session...</summary>
        <author>
            <name>Chris Schmitt</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Programming" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby On Rails" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://www.thoughtintomotion.com/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>So today I had to debug a problem I had with one of my clients applications.  In the session I was storing how a page was being sorted.   The problem was that the sort was not saving to the session properly.  My model was setup with a has_many relationship to another model.   It was in the second model that I was storing some information. But when I would retrieve it from the session the values were going back to the default.   Below is a example of how I was using the session.</p><br /><div><span style="color: #0000bf; "><span style="font-family: Courier;">sort.columns.set_id = 2</span></span></div><div><span style="color: #0000bf; "><span style="font-family: Courier;">session[:sort] = sort</span></span></div><br /><div>Now at the beginning of my list action I would pull back the sort from the session so I could compare the values.  </div><br /><div style="color: #0000bf; "><span style="font-family: Courier;">col_id = session[:sort].columns.set_id</span></div><br /><div>I was expecting to get 2 when I checked the value of col_id.   Instead I got the default of 1.   It seems that the session was not saving the stored value for the column object.   I might be doing this wrong but I would have expected the columns model to persist the correct value as it was being accessed through the sort model and the sort model was being saved to the session.</div><br /><div>To make a long story short, be careful what you store in your session, and always check your values before assuming they are right. </div></div>
</content>


    <feedburner:origLink>http://www.thoughtintomotion.com/2008/12/session-data-storing-not-storing.html</feedburner:origLink></entry>
 
</feed><!-- ph=1 --><!-- nhm:dynamic-ssi -->
