<?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.intridea.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>Intridea - Company Blog</title>
  <id>tag:www.intridea.com,2010:company</id>
  
  <link href="http://intridea.com/blog/company" rel="alternate" type="text/html" />
  <updated>2010-09-08T14:42:57-04:00</updated>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.intridea.com/intridea" /><feedburner:info uri="intridea" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry xml:base="http://www.intridea.com">
    <author>
      <name>Sean Soper</name>
    </author>
    <id>tag:www.intridea.com,2010-09-08:337</id>
    <published>2010-09-08T01:25:00-04:00</published>
    <updated>2010-09-08T01:25:00-04:00</updated>
    <category term="plugin" />
    <category term="firefox" />
    <category term="jquery" />
    <category term="chrome" />
    <category term="safari" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/WWOEnZWXCB0/asynchronous-file-uploading-in-firefox-chrome-and-safari" rel="alternate" type="text/html" />
    <title>Asynchronous File Uploading in Firefox, Chrome and Safari</title>
    <content type="html">&lt;p&gt;Six years after Ajax was widely popularized with the introduction of Gmail, we are still stuck with synchronous file uploading. Certain techniques have done their best to fill this niche by using Flash apps, hidden iframes and the like, but all have felt like hacks at best. &lt;/p&gt;

&lt;p&gt;&lt;img src='http://img.skitch.com/20100908-pd3xrd39icxmn2nfgkc74wc9xt.jpg' align='right' alt='jQuery logo' style='padding-left: 10px'&gt;Enter &lt;a href="http://github.com/ssoper/jquery-binaryUpload"&gt;jquery-binaryUpload&lt;/a&gt;, a jQuery plugin I wrote to allow asynchronous file uploading in Firefox 3.5+, Chrome 5+ and Safari 4+. It works in Firefox 3.5 through the use of the &lt;a href="http://dev.w3.org/2006/webapi/FileAPI/"&gt;File object&lt;/a&gt;, while in Firefox 4+ and the other browsers it takes advantage of the &lt;a href="http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface"&gt;FormData object&lt;/a&gt;. The plugin papers over these different implementations with a clean simple interface.&lt;/p&gt;

&lt;script src="http://gist.github.com/570517.js"&gt;&lt;/script&gt;

&lt;p&gt;The included &lt;a href="http://github.com/ssoper/jquery-binaryUpload/blob/master/index.erb"&gt;sample code&lt;/a&gt; demonstrates typical usage with a Sinatra or Rails app though the plugin itself is completely framework agnostic. Callbacks are descriptive while additional options are outlined in the documentation. Please report any problems you run into or suggestions you have. Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The IE Question&lt;/strong&gt;&lt;br/&gt;
So far as I have been able to glean from my research, asynchronous uploading in Internet Explorer, short of an ActiveX control or one of the aforementioned techniques, is not currently feasible. IE does not natively support the FormData or File objects and the IE9 dev team makes no mention of it on their site. My efforts to contact their dev team have been to no avail.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/WWOEnZWXCB0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/asynchronous-file-uploading-in-firefox-chrome-and-safari</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Intridea</name>
    </author>
    <id>tag:www.intridea.com,2010-08-30:336</id>
    <published>2010-08-30T06:26:00-04:00</published>
    <updated>2010-08-30T06:26:00-04:00</updated>
    <category term="launch" />
    <category term="announcement" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/X2Jd5-x87K4/flockfeeds-launches-from-node-knockout" rel="alternate" type="text/html" />
    <title>FlockFeeds Launches From Node Knockout</title>
    <content type="html">&lt;p&gt;This past weekend was the first &lt;a href="http://www.nodeknockout.com"&gt;Node Knockout&lt;/a&gt;, a 48-hour development competition utilizing &lt;a href="http://www.nodejs.org"&gt;Node.js&lt;/a&gt;. Always up for exploring new technologies, Intridea was represented at the competition by Michael Bleigh, Sean Soper, and Jerry Cheung. 48 hours later, &lt;a href="http://flockfeeds.com"&gt;FlockFeeds&lt;/a&gt; has launched!&lt;/p&gt;

&lt;p align='center'&gt;&lt;a href='http://flockfeeds.com' target='_blank'&gt;&lt;img src='http://img.skitch.com/20100830-ejg9tccwx8124r65u2qr4rjupu.jpg' alt='FlockFeed Home'/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FlockFeeds is a simple tool that will turn your Twitter stream into a news feed. That means that you can simply add the FlockFeed to your RSS reader (such as &lt;a href="http://reader.google.com"&gt;Google Reader&lt;/a&gt;) and FlockFeeds will automatically fetch all of the links that your Twitter network posts, do its best to understand the content and parse out the important stuff, and put it into an easy-to-consume feed for you.&lt;/p&gt;

&lt;p&gt;The application is powered by &lt;strong&gt;Node.js&lt;/strong&gt;, &lt;strong&gt;Express.js&lt;/strong&gt;, &lt;strong&gt;MongoDB&lt;/strong&gt;, and &lt;strong&gt;Readability.js&lt;/strong&gt;. Look for a more in-depth technical post in the near future detailing the participants' experiences developing in Node.&lt;/p&gt;

&lt;p&gt;Not only did FlockFeeds launch, but we've decided to open up the source code to the public. Feel free to &lt;a href="http://github.com/nko/flockfeed"&gt;check out the code on GitHub&lt;/a&gt;. So give FlockFeeds a try, and don't forget to &lt;a href="http://nodeknockout.com/teams/flockfeed"&gt;vote for it&lt;/a&gt; in the competition! Voting closes Friday, September 3.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/X2Jd5-x87K4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/flockfeeds-launches-from-node-knockout</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Michael Bleigh</name>
    </author>
    <id>tag:www.intridea.com,2010-08-24:334</id>
    <published>2010-08-24T01:27:00-04:00</published>
    <updated>2010-08-24T01:27:00-04:00</updated>
    <category term="javascript" />
    <category term="heroku" />
    <category term="node" />
    <category term="npm" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/ORM9LXLl5_0/using-npm-with-heroku-node-js" rel="alternate" type="text/html" />
    <title>Using NPM with Heroku Node.js</title>
    <content type="html">&lt;p&gt;The Node Knockout is &lt;del&gt;this weekend&lt;/del&gt; &lt;strong&gt;right now&lt;/strong&gt; and I've been trying to teach myself Node and get ready in a variety of ways. One of the most important (and least clear) aspects of preparation was figuring out how to properly vendor the latest Node libraries for use in Heroku. I've got NPM up and running locally, but as of its latest release it has no built-in support for vendoring. Here's how I managed.&lt;/p&gt;

&lt;h2&gt;Updated Method&lt;/h2&gt;

&lt;p&gt;Since this post, the maintainers of NPM have released an updated version with a new command: &lt;code&gt;bundle&lt;/code&gt;. Here's how to use it (make sure you have NPM &lt;code&gt;&amp;gt;= 0.1.27&lt;/code&gt; for this to work).&lt;/p&gt;

&lt;p&gt;First, create a &lt;code&gt;package.json&lt;/code&gt; file in your project's root directory, and populate it with dependencies like so:&lt;/p&gt;

&lt;pre name='code' class='javascript'&gt;{
  "name":"yourproject",
  "version":"0.0.1",
  "dependencies":{
    "express":"1.0.0rc2",
    "ejs":""
  }
}&lt;/pre&gt;

&lt;p&gt;If you don't need a specific version, just specify a blank string. Now that you've created a &lt;code&gt;package.json&lt;/code&gt;, you need to run bundle:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;npm bundle ./vendor
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will bundle the dependencies specified into the &lt;code&gt;vendor&lt;/code&gt; directory of your project. Now you're almost done! The last step is to add the vendor directory to your load paths:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require.paths.unshift('./vendor')
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That's it! You can now require the dependencies you've specified like you would if NPM were installed normally (i.e. without special functions or directory specifiers). Happy Node-ing!&lt;/p&gt;

&lt;h2&gt;Old Method&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; I am not an experienced Node developer and I may be doing this completely wrong. However, I am happy to publish this anyway with the hope that more learned Javascripters will correct my naive ways.&lt;/p&gt;

&lt;h3&gt;NPM's Command Options&lt;/h3&gt;

&lt;p&gt;NPM provides a few helpful command options that let you specify the directory of installation when you install a library. By using the &lt;code&gt;--root&lt;/code&gt; and &lt;code&gt;--binroot&lt;/code&gt; options you can use a folder inside your local project instead of the default NPM root. For example, in my project I created a &lt;code&gt;vendor&lt;/code&gt; folder and then, to install &lt;a href="http://www.expressjs.com"&gt;Express&lt;/a&gt;, specified:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;npm install express --binroot ./vendor --root ./vendor
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now while this seems like it might do exactly what we want, it's not quite perfect. Rather than install everything in &lt;code&gt;vendor&lt;/code&gt;, it installs the important stuff in &lt;code&gt;vendor/.npm/.cache&lt;/code&gt;. This isn't the end of the world but can make for some pretty ugly &lt;code&gt;require&lt;/code&gt; statements.&lt;/p&gt;

&lt;h3&gt;The Require Blues&lt;/h3&gt;

&lt;p&gt;So now you've got your packages all nice and installed inside your project directory (probably a lot of support files that you don't need, as well, but the Node slugs on Heroku tend to be small anyway so no biggie). Now you need to include them in your application. To do this, I wrote a quick function, &lt;code&gt;vrequire&lt;/code&gt; that adds the necessary load path and then requires the library all at once:&lt;/p&gt;

&lt;pre class='javascript' name='code'&gt;vrequire = function(lib) { 
  require.paths.unshift("vendor/.npm/" + lib + "/active/package/lib");
  return require(lib); 
}&lt;/pre&gt;

&lt;p&gt;Now if I call &lt;code&gt;vrequire("express")&lt;/code&gt; it will load up from my vendored library. If I deploy my app to Heroku, it's able to find everything it needs and (cross your fingers) launch and work correctly!&lt;/p&gt;

&lt;p&gt;Hopefully some people find this little guide useful, and I look forward to someone pointing me to the "real" way to do this stuff! If you want to poke around the exploratory code I've been creating to play with Node, you can &lt;a href="http://github.com/mbleigh/nodelin"&gt;find it on GitHub&lt;/a&gt; (but don't expect much!).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/ORM9LXLl5_0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/using-npm-with-heroku-node-js</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Jerry Cheung</name>
    </author>
    <id>tag:www.intridea.com,2010-08-23:322</id>
    <published>2010-08-23T00:06:00-04:00</published>
    <updated>2010-08-23T00:06:00-04:00</updated>
    <category term="ruby" />
    <category term="gems" />
    <category term="bundler" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/tM570usXtJY/fixing-common-bundler-problems" rel="alternate" type="text/html" />
    <title>Fixing Common Bundler Problems</title>
    <content type="html">&lt;p&gt;When &lt;a href="http://gembundler.com"&gt;bundler&lt;/a&gt; first came out, I really wanted to like it. It promised a clean way to declare dependencies for your application in a single and definitive place, regardless of what kind of box your app was running on. Unfortunately, bundler has not lived up to the hype, and I've had plenty of headaches from bundler problems. Read on for a list of tips I've pulled together to save you some headache.&lt;/p&gt;

&lt;h2&gt;Ensure your local bundler is the same version as your server&lt;/h2&gt;

&lt;p&gt;Different versions of bundler may act differently:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;bundle --version  # on your local machine and your server
sudo gem install bundler --version="0.9.26"
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Explicitly specify gem versions&lt;/h2&gt;

&lt;p&gt;Did you know in HTTParty 0.4.5, there is no 'parsed_response' method on a response object? Well, neither did I when it worked fine on my local laptop (0.6.1), but not on the server (0.4.5)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gem "httparty"  # bad times if your system gem is out of date...
gem "httparty", "~&amp;gt; 0.6.1"  # better, but...
gem "httparty", "0.6.1"     # ...why not just specify the version everyone should use?
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Check that you are actually using gems installed by bundler&lt;/h2&gt;

&lt;p&gt;Once in a while, bundler will report success on install, but you'll get the wrong gems loaded in your load path. Grep your load path to double check libraries you're having trouble with:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# in script/console
&amp;gt;&amp;gt; $:.grep /http/
=&amp;gt; ["/Users/jch/.bundle/ruby/1.8/gems/httparty-0.6.1/lib"]
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Gemfile conditionals&lt;/h2&gt;

&lt;p&gt;bundler allows you to specify groups so only gems you need in one environment are loaded:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# we don't call the group :test because we don't want them auto-required
group :test do
  gem 'database_cleaner', '~&amp;gt; 0.5.0'
  gem 'rspec'
  gem 'rspec-rails', '~&amp;gt; 1.3.2', :require =&amp;gt; 'spec/rails'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;All gems you specify in your Gemfile WILL be installed regardless of what RAILS_ENV you're currently on. There's a very deceptively named option called --without that does not work as you would expect:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# weird, but this will install gems in group test
bundle install --without=test
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This can turn out to be a disaster if your linux production environment tries to install a OSX specific gem with native extensions that you use for development. An ugly fix in the meantime is to add conditionals that look for an environment variable:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;if ['test', 'cucumber'].include?(ENV['RAILS_ENV'])
  group :test do
    # your gems
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Update your capistrano&lt;/h2&gt;

&lt;p&gt;Don't forget to bundle when you deploy:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;after  "deploy:update_code", "deploy:bundle"
namespace :deploy do
  desc "Freeze dependencies"
  task :bundle, :roles =&amp;gt; :app do
    run "cd #{release_path} &amp;amp;&amp;amp; bundle install --relock --without=test"
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;NameErrors and autoloading issues&lt;/h2&gt;

&lt;p&gt;For some gems, bundler will not autoload properly.  If you start getting NameErrors or LoadErrors for a gem, &lt;a href="http://github.com/josevalim/inherited_resources/issues/issue/34"&gt;read this issue&lt;/a&gt;. The fix is to skip the require in your Gemfile and manually do the require in your environment.rb:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Gemfile
gem 'misbehaving_gem', :require_as =&amp;gt; []

# environment.rb
Rails::Initializer.run do |config|
  # ...
  config.gem 'misbehaving_gem'
  # ...
end
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Nuke .bundle&lt;/h2&gt;

&lt;p&gt;When all else fails, and you've pulled out what precious little hair you have left:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;rm -rf RAILS_ROOT/.bundle      # removes gems for this project
rm -rf ~/.bundle               # removes cached gems for your current user
rm -rf RAILS_ROOT/Gemfile.lock # lets you do a fresh 'bundle install'

# do a fresh bundle install
bundle install
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Other&lt;/h2&gt;

&lt;p&gt;Bundler is in its infancy, and it continues to get better with each release, so many of these issues might not exist in the near future. In the meantime, I hope this list will save you some time with bundler related headaches. Let me know in the comments if you've encountered other tips for resolving these problems.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/tM570usXtJY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/fixing-common-bundler-problems</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Jonathan Nelson</name>
    </author>
    <id>tag:www.intridea.com,2010-08-18:324</id>
    <published>2010-08-18T15:40:00-04:00</published>
    <updated>2010-08-18T15:40:00-04:00</updated>
    <category term="facebook" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/WvaZrt0By38/facebook-places-the-third-place-is-here" rel="alternate" type="text/html" />
    <title>Facebook Places: The Third Place is Here</title>
    <content type="html">&lt;p&gt;Today &lt;a href="http://blog.facebook.com/blog.php?post=418175202130"&gt;Facebook announced&lt;/a&gt; &amp;#8220;Facebook Places&amp;#8221; or &amp;#8220;The Third Place,&amp;#8221; a new feature that allows its 500MM users to check into a location just about anywhere.&lt;/p&gt;
&lt;p&gt;Starting today, you can immediately tell people about your favorite spot with Facebook Places. You can share where you are and the friends you&amp;#8217;re with in real time from your mobile device.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://img.skitch.com/20100819-rph5xg15mwc2nfkak2mui14pi9.jpg" title="Facebook Places" alt="Facebook Places" /&gt;&lt;/p&gt;
&lt;h1&gt;Highlights&lt;/h1&gt;
&lt;p&gt;At each location, Places lets you see your friends and other Facebook members (even if they’re not your friends), who are nearby, a feature called “People Here Now.”&lt;/p&gt;
&lt;h1&gt;Friends&lt;/h1&gt;
&lt;p&gt;You can tag your friends when you check in to a place. You have to allow proxy check-ins to have them post to your profile, but they&amp;#8217;ll still post on the Place page.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://img.skitch.com/20100819-g2r2rffk78aim1s49r8gyx2kb3.jpg" title="Facebook Places tagging friends" alt="Facebook Places tagging friends" /&gt;&lt;/p&gt;
&lt;p&gt;What does this mean for businesses?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Share where you are&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;See where your friends are&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Find new places to go&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Will be integrated into Facebook Pages&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Reporting Places (Report, Abusive, Permanently closed, Duplicate)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://img.skitch.com/20100819-jwtxib5qxbqtiqdifutahth1wr.jpg" title="Facebook Places reporting" alt="Facebook Places reporting" /&gt;&lt;/p&gt;
&lt;h1&gt;Mobile Device Support&lt;/h1&gt;
&lt;ul&gt;
	&lt;li&gt;New Facebook iPhone app with Facebook Places support is coming tonight&lt;/li&gt;
	&lt;li&gt;Android, Blackberry and all other Facebook app enabled phones will be Places enabled in the coming months&lt;/li&gt;
	&lt;li&gt;Places should work fine on any modern mobile browser&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://img.skitch.com/20100819-1dtep3qtwpg4xjxmf4qqdmghai.jpg" title="Facebook Places for iPhone" alt="Facebook Places for iPhone" /&gt;&lt;/p&gt;
&lt;h1&gt;Developers and &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/h1&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://developers.facebook.com/docs/api/#places"&gt;Places available with a read &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Write &amp;amp; Search &lt;span class="caps"&gt;API&lt;/span&gt; are in private beta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://img.skitch.com/20100819-ku4xnd5b2xd3ni5a978h9ergq5.jpg" title="Facebook Places development API" alt="Facebook Places development API" /&gt;&lt;/p&gt;
&lt;h1&gt;Places Partners&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://img.skitch.com/20100819-pwjyf5wy78ht8sdc91nqc28udi.jpg" title="Gowalla and Facebook Places" alt="Gowalla and Facebook Places" /&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Gowalla, Foursquare, Brightkite, Booyah, Yelp and more will integrate it instead of getting killed by the 500 pound gorilla&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Foursquare is a &amp;#8220;partner&amp;#8221;, but has nothing to announce concerning integration. &amp;#8220;This basically validates that we&amp;#8217;re on to something with check-ins&amp;#8221;, says Holger Luedorft from Foursquare. Foursquare says they&amp;#8217;ll continue to work on their platform and they look forward to leveraging the Facebook Places &lt;span class="caps"&gt;API&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Yelp and Keith Lee from Booyah, made a new app in three weeks using the Places &lt;span class="caps"&gt;API&lt;/span&gt;, called InCrowd. It will be available for the iPhone within the next few weeks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;General Usage&lt;/h1&gt;
&lt;ul&gt;
	&lt;li&gt;Places will be U.S. only for now. Facebook will be rolling out slowly &amp;#8211; starting tomorrow.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Reactions and Privacy&lt;/h1&gt;
&lt;ul&gt;
	&lt;li&gt;As expected, the &lt;a href="http://www.aclunc.org/issues/technology/blog/facebook_places_check_this_out_before_you_check_in.shtml"&gt;&lt;span class="caps"&gt;ACLU&lt;/span&gt;&lt;/a&gt; has its hands all over Facebook Pages concerning privacy implications.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Default for check-ins is &amp;#8220;friends-only.&amp;#8221; You can remove any tag or check-in. You can opt out of being tagged in others&amp;#8217; check-ins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://img.skitch.com/20100819-ba3uhnd9m6fpgp2cyb68k5mc8q.jpg" title="Facebook Places privacy and security" alt="Facebook Places privacy and security" /&gt;&lt;/p&gt;
&lt;h1&gt;Demo&lt;/h1&gt;
&lt;p&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bELzkerHCVs?fs=1&amp;amp;hl=en_US&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/bELzkerHCVs?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;h1&gt;Your thoughts&lt;/h1&gt;
&lt;p&gt;How do you think Places will be received by the rest of the world? Will you stop using Foursquare or GoWalla in favor of Facebook Places? Let us know in the comments.&lt;/p&gt;
&lt;h1&gt;Updates&lt;/h1&gt;
&lt;p&gt;Stay tuned, we&amp;#8217;ll keep you posted with any new updates to Facebook Places right here.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/WvaZrt0By38" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/facebook-places-the-third-place-is-here</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Renae Bair</name>
    </author>
    <id>tag:www.intridea.com,2010-08-18:323</id>
    <published>2010-08-18T00:48:00-04:00</published>
    <updated>2010-08-18T00:48:00-04:00</updated>
    <category term="ruby" />
    <category term="lonestar" />
    <category term="training" />
    <category term="lonestar ruby conference" />
    <category term="lsrc" />
    <category term="adam" />
    <category term="brendan" />
    <category term="pradeep" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/_sELUhUWruo/intridea-training-lonestar" rel="alternate" type="text/html" />
    <title>Intridea at Lonestar Ruby Conference </title>
    <content type="html">&lt;div style="center"&gt;&lt;a href="http://www.lonestarrubyconf.com/" style='border-bottom:none; float:left; padding-right: 20px; padding-top:5px'&gt;
 &lt;img src="http://img.skitch.com/20100818-bhkjn5i3g1m55xa681ihg63fhw.png"&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;For the third straight year in a row, senior-level Intrideans will be at the &lt;a href="http://www.lonestarrubyconf.com/"&gt;Lonestar Ruby Conference&lt;/a&gt;, on Thursday, August 26th, teaching students about Ruby. Students attending the &lt;a href="http://www.lonestarrubyconf.com/schedule/ruby_intrigue"&gt;Ruby Intrigue&lt;/a&gt; class will work with our Director of Mobile Development, &lt;a href="http://intridea.com/about/people/brendan"&gt;Brendan Lim&lt;/a&gt;, our Director of Development, &lt;a href="http://intridea.com/about/people/adam"&gt;Adam Bair&lt;/a&gt;, and our Director of Research and Development, &lt;a href="http://intridea.com/about/people/pradeep"&gt;Pradeep Elankumaran&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;In a small class setting, students will work on writing a web crawler, an &lt;a href="http://en.wikipedia.org/wiki/Asteroids_(video_game)"&gt;Asteroids clone&lt;/a&gt;, and an SMS server. The instructors will also discuss coding practices and methodologies along the way. In keeping with tradition, we have three instructors to ensure a laid-back and collaborative atmosphere. Students will walk away with three different hand-crafted applications, an overwhelming feeling of accomplishment, and a spiffy t-shirt designed by our creative mastermind, &lt;a href="http://intridea.com/about/people/potsiadlo"&gt;David Potsiadlo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lonestar Ruby Conference is part of the &lt;a href="http://www.lonestarrubyconf.com/about"&gt;Lonestar Ruby Foundation&lt;/a&gt;, which aims to educate the public about the Ruby Language. The conference, held in Austin, Texas, is in its fourth year and continues to boast a strong lineup of presenters and teachers. This year's lineup includes Blake Mizerany, the creator of Sinatra, Tom Preston-Wernor, co-founder of Github, Gregg Pollack, James Edward Gray II, and many other prominent members of our community. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.lonestarrubyconf.com/registration"&gt;Registration&lt;/a&gt; is still open for the conference and for the &lt;a href="http://www.lonestarrubyconf.com/schedule/ruby_intrigue"&gt;Ruby Intrigue&lt;/a&gt; class. If you're local to the area, or if you want to spend some time learning about Ruby in the "live music capital of the world", be sure to &lt;a href="http://www.lonestarrubyconf.com/registration"&gt;sign up today&lt;/a&gt;!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/_sELUhUWruo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/intridea-training-lonestar</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Jonathan Nelson</name>
    </author>
    <id>tag:www.intridea.com,2010-08-12:321</id>
    <published>2010-08-12T10:21:00-04:00</published>
    <updated>2010-08-12T10:21:00-04:00</updated>
    <category term="open source" />
    <category term="twitter" />
    <category term="gem" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/gdWnNud9_PA/new-twitter-button-rails-gem-from-intridea" rel="alternate" type="text/html" />
    <title>New Twitter Button Gem from Intridea</title>
    <content type="html">&lt;p&gt;This week &lt;a href="http://blog.twitter.com/2010/08/pushing-our-tweet-button.html"&gt;Twitter&lt;/a&gt; launched the official &amp;#8220;Tweet Button,&amp;#8221; a button for website owners to count RT&amp;#8217;s and let readers easily share content. &lt;a href="http://mashable.com/2010/08/10/twitter-official-share-buttons/"&gt;Mashable&lt;/a&gt; was first to report on this shiny new button, but we&amp;#8217;re the first to release a &lt;a href="http://github.com/intridea/tweet-button"&gt;tweet-button&lt;/a&gt; gem for your next project.&lt;/p&gt;
&lt;h1&gt;Introducing tweet-button&lt;/h1&gt;
&lt;p&gt;A new &lt;a href="http://github.com/intridea/tweet-button"&gt;Ruby on Rails gem/plugin&lt;/a&gt; to generate shiny new Twitter buttons.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mashable.com/2010/08/10/twitter-official-share-buttons/"&gt;&lt;img src="http://img.skitch.com/20100812-rfdbjrgenc282c322dwgmkw9g2.jpg" title="image provided via Mashable.com" alt="image provided via Mashable.com" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;Usage&lt;/h1&gt;
&lt;p&gt;First, include the TweetButton module into your application helper. After that, using it is as simple as adding a single method call to your views:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;%= tweet_button %&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Bam. Done. You’ll have a sweet lookin’ Tweet button all up in your view.&lt;/p&gt;
&lt;p&gt;Of course, you can customize it. The method takes a few options. &lt;em&gt;Any default can be overridden universally&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:url - The URL to share; the default is the current URL.&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;:text - The text that will appear in the tweet; the default is "Check this out!"&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;:via - The attribution. Defaults to "tweetbutton", but you should change that.&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;:lang - Set the language for the tweet (no default).&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;:related - Related Twitter accounts (no default).&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;:count - The tweet count box position (values can be "none", "horizontal", or "vertical"; default is "vertical").&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, if you wanted to tweet about Hacker News, attribute it to Peter Cooper, and add some custom text, all from a tweet button with a horizontal counter, you’d do this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;%= tweet_button(:via =&amp;gt; "peterc", :url =&amp;gt; "http://news.ycombinator.com", :text =&amp;gt; "AWESOME.")&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Simple enough, eh? Also, this method call will include the Twitter JavaScript into the page (it only does it once, even if you have multiple buttons on the page). To put this wherever you’d like (i.e., your header), then use the twitter_widgets_js_tag method. If you call this method, it will place the tag wherever you call it from (and only place it there; subsequent calls do nothing).&lt;/p&gt;
&lt;p&gt;The gem also supports the custom Twitter share links. To generate one, use the custom_tweet_button (aliased to custom_tweet_link also) method:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;%= custom_tweet_button %&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will generate a link that will link to the share page with the same default options as the standard Tweet Button generator. You can customize your custom link with text as the first argument, the same options as tweet_button (with the exception of the count parameter, which will be ignored) as the second, and &lt;span class="caps"&gt;HTML&lt;/span&gt; options as a third argument. For example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;%= custom_tweet_button('Tweet it!', {:via =&amp;gt; "myself"}, {:class =&amp;gt; "tweet-sharey-thing"})&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;Setting universal defaults&lt;/h1&gt;
&lt;p&gt;You can set a new default for any option by setting default_tweet_button_options in your application helper. For example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;module ApplicationHelper&lt;/code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;code&gt;include TweetButton&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;code&gt;TweetButton.default_tweet_button_options = {:via =&amp;gt; "myself"}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Only the options you specify will be overridden; so if you only specify a new default &lt;code&gt;+:via+&lt;/code&gt; (which you should definitely do), then the other defaults will stay intact.&lt;/p&gt;
&lt;h2&gt;Coming Soon&lt;/h2&gt;
&lt;p&gt;Tweet Buttons can also live in an iframe, so we&amp;#8217;ll probably be adding that very soon!&lt;/p&gt;
&lt;h1&gt;Plan on using this gem?&lt;/h1&gt;
&lt;p&gt;If you plan on using this gem, please let us know in the comments section! We&amp;#8217;d love to check it out :-)&lt;/p&gt;
&lt;h1&gt;Roll the credits!&lt;/h1&gt;
&lt;p&gt;This awesome sauce gem was written by our very own hackstar &lt;a href="http://intridea.com/about/people/jeremy"&gt;Jeremy McAnally&lt;/a&gt;. You can follow his tweets &lt;a href="http://twitter.com/jm"&gt;here&lt;/a&gt; and his Github &lt;a href="http://github.com/jm"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/gdWnNud9_PA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/new-twitter-button-rails-gem-from-intridea</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Brendan Lim</name>
    </author>
    <id>tag:www.intridea.com,2010-08-03:320</id>
    <published>2010-08-03T00:19:00-04:00</published>
    <updated>2010-08-03T00:19:00-04:00</updated>
    <category term="android" />
    <category term="mashable" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/6JSpmHIfNj4/mashable-now-available-for-android" rel="alternate" type="text/html" />
    <title>Mashable Now Available for Android</title>
    <content type="html">&lt;p&gt;
&lt;a href="http://mashable.com" target="_new"&gt;Mashable&lt;/a&gt; is one of the world's largest blogs focused exclusively on Web 2.0 and Social Media news, with more than 15 million monthly pageviews.   We were very excited to develop an application just for them, specific to the Android platform.   Not too long ago, we announced that we developed their iPad application.  Now, we're excited to announce that &lt;a href="http://www.androidzoom.com/web/indice/qrLink?appCode=gqte&amp;dwnId=1163537"&gt;Mashable! for Android&lt;/a&gt; (mobile specific link) is available in the Android Marketplace.
&lt;/p&gt;
&lt;p&gt;
&lt;center&gt;&lt;img src='http://img638.imageshack.us/img638/4688/storyos.png'/&gt;&lt;/center&gt;
&lt;/p&gt;
&lt;p&gt;
The Android platform is such a great platform to develop for.  There are unique challenges that make development more exciting, such as different hardware and software versions to support.  What is most exciting is the end result: a clean and intuitive application that offers the best way for any Android user to read the latest news from Mashable.  
&lt;/p&gt;
&lt;p&gt;
Reading the latest news from Mashable is just one thing you can do with the application.  With Mashable! for Android, you can also share what you're reading in several different ways.  You can e-mail the article to a friend, share it on Twitter or Facebook, and you can also save it to Read Later on Instapaper.  You can read comments for each article and even join the discussion by posting your own comments.
&lt;/p&gt;
&lt;p&gt;
Mashable! for Android is now available for free in the Android Marketplace.  Also, you can expect some exciting new features for Mashable! for Android soon.  There are some great new features that are in the works.

Intridea offers services for application development on all major mobile platforms, which include iPad, iPhone, Android, BlackBerry, and Palm webOS. If you need help with your mobile application feel free to &lt;a href="/contact/"&gt;contact us&lt;/a&gt; for a quote.
&lt;/p&gt;
&lt;div style='width: 500px; margin: 10px auto;'&gt;
&lt;div style='float: left; padding-right: 10px;'&gt;
&lt;img src="http://cdn.mashable.com/wp-content/uploads/2010/08/QR-code.jpg"/&gt;
&lt;/div&gt;
&lt;div style='float:left; width: 300px; padding-top: 10px;'&gt;
You can get the Mashable! for Android application by opening up your Barcode Scanner app, scanning the QR code to the right, then clicking on Install.
&lt;/div&gt;
&lt;div style='clear:both'&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/6JSpmHIfNj4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/mashable-now-available-for-android</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Renae Bair</name>
    </author>
    <id>tag:www.intridea.com,2010-07-30:319</id>
    <published>2010-07-30T00:52:00-04:00</published>
    <updated>2010-07-30T00:52:00-04:00</updated>
    <category term="insider" />
    <category term="ping yu" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/OKjZjyzFkGo/intridea-insider-ping" rel="alternate" type="text/html" />
    <title>Intridea Insider: Ping Yu</title>
    <content type="html">&lt;div style="float:left; padding-right: 20px;"&gt;&lt;a href="http://intridea.com/about/people/ping"&gt;
 &lt;img src="http://s3.amazonaws.com/intridea.com/production/photos/6/original.jpg" width="200" title='Ping'&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;It's a typical love story. Boy becomes a developer. Boy meets Java. Boy spends years with Java in what he believes to be a righteous and dignified relationship. He hears whispers of a better language from far away lands, and her name is Ruby. Of course, the loyal and virtuous developer dismisses the rumors as unscrupulous stories, and he clings tightly to his superior languages and the comfort they bring him. But like all truly good languages, Ruby finds her way to the developer's heart, and she makes herself at home. &lt;/p&gt;

&lt;p&gt;This week in the Intridea Insider, meet Ping Yu, Director of Asian Operations at Intridea, former Java and C++ developer, and veteran Ruby and Ruby on Rails evangelist. &lt;/p&gt;

&lt;p&gt;Ping received a Master's degree in Computer Science from the University of Maryland, and another Master's degree in Electrical Engineering from The Catholic University of America. He spent his undergraduate time studying Computer Science from a prestigious university in China, where he grew up. "A lot of my friends were applying to graduate schools in the United States. I wasn't sure what to expect, but I decided to go along with it and apply too." After finishing his degree programs in the states, he joined a Maryland fiber optical company during its startup phase, doing Java, C++ and a lot of J2EE. After surviving a tough round of layoffs, he moved to a network security company, hacking linux kernel. &lt;/p&gt;

&lt;div style='float: right; padding-left:20px'&gt;&lt;a href="http://intridea.com/about/people/ping"&gt;
  &lt;img src="http://img.skitch.com/20100730-c9b7t2xun69eifrsfkrn6r4y9f.jpg" width="300px" title='Ping &amp; Maggie'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;When Ping started college in China, he dreamed of being an architect, but a degree in Architecture was not in the cards: "You know, in China things are different. You have to get into the hottest field, and the hottest field isn't necessarily the one you like." Although Ping was exceptionally talented in programming and did well in his CS program, he always felt like he had to force himself to program. &lt;/p&gt;

&lt;p&gt;His experience at graduate school in the states was more positive and helped to shape his love for programming; when he met Dave Naffis and Pradeep Elankumaran of Intridea years later, he was enticed to learn Ruby. "Dave and Pradeep loved Ruby. But when I picked up Ruby for the first time I did not like it, since I was so used to Java and C++. Ruby was too tricky for me, especially Rails." His first encounter with Ruby wasn't love at first sight, but the fling continued. "But once I understood the language and the problems it was trying to solve, I was in love. Now I can never go back to Java or C++. The languages put too much useless burden on the programmer. They are not as fun to work with as Ruby."&lt;/p&gt;

&lt;p&gt;Ping came on board with Intridea during our infancy. He was employee #4, and has been part of the vision and culture of our company from the beginning. He has helped to grow Intridea from a group of four guys working at their dining room tables, to a company of 40+ Ruby and Rails developers and designers that span continents and multiple time zones. His work as Director of Asian Operations aims to bridge our Asian team of Rubyists with our centralized team in the states. "I believe in helping to extend Intridea into China. There is so much talent in China, it feels like a natural thing to do. Intridea has a culture of quality, and I want to bring that to these developers. They love Ruby, and they have so much energy."&lt;/p&gt;

&lt;div style='float: left; padding-right:20px'&gt;&lt;a href="http://intridea.com/about/people/ping"&gt;
  &lt;img src="http://img.skitch.com/20100730-jc9qjrqixss31xejfh181airfd.jpg" width="146px" title='Ping's dog Jojo'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Although Ping spent several years living in the MD/DC area, he now lives with his lovely wife, Maggie, in Minneapolis. He met Maggie in grad school, and she later went on to Georgetown Law School before becoming an attorney and accepting a job in Minnesota. They share their home with their beloved golden doodle, Jojo (a golden retriever and poodle mix). He prefers the warmth of the DC area to the numbing temperatures and tempestuous winters of Minneapolis, and mentions that he hopes to move back in the next few years. &lt;/p&gt;

&lt;p&gt;Ping doesn't feel any loss over his break-up with Java or C++. A lot of his friends are still using Java and C++ though, so I asked if he gets into language wars with them, and he answered with distinct clarity: "There is no need to argue. They know Ruby is better." Joining Intridea and learning Ruby sparked his passion for programming, and he is confident in the decisions he has made. "The the thing that matters is whether you choose life or life chooses you. I am glad I chose Intridea."&lt;/p&gt;

&lt;p&gt;&lt;i&gt;This post is part of a weekly series, called &lt;a href="http://intridea.com/tag/insider"&gt;"Intridea Insider"&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/OKjZjyzFkGo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/intridea-insider-ping</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Michael Bleigh</name>
    </author>
    <id>tag:www.intridea.com,2010-07-26:318</id>
    <published>2010-07-26T00:23:00-04:00</published>
    <updated>2010-07-26T00:23:00-04:00</updated>
    <category term="speaking" />
    <category term="rails 3" />
    <category term="upgrading" />
    <category term="oscon" />
    <category term="slides" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/E93YlQyn-nA/talkin-about-upgrading-to-rails3" rel="alternate" type="text/html" />
    <title>Talkin' About Upgrading to Rails 3</title>
    <content type="html">&lt;p&gt;This year at &lt;a href="http://www.oscon.com/"&gt;&lt;span class="caps"&gt;OSCON&lt;/span&gt;&lt;/a&gt; I had the pleasure of giving a talk entitled &lt;a href="http://www.oscon.com/oscon2010/public/schedule/detail/13938"&gt;Upgrading to Rails 3&lt;/a&gt;. The talk served as a high level overview of the new features of Rails 3 that are both a boon for developers and something to watch out for when trying to upgrade your Rails 2.3 applications. I followed it up with a livecoding session in which I took a to-do application (built mostly by Intridea&amp;#8217;s own Jeremy McAnally) from Rails 2.3 to Rails 3 in the space of just over 10 minutes.&lt;/p&gt;
&lt;p&gt;The slides and video are available at the end of the post, and if you&amp;#8217;re interested in really diving in-depth into the Rails 3 upgrade process, I highly recommend Jeremy McAnally&amp;#8217;s &lt;a href="http://www.railsupgradehandbook.com/"&gt;Rails Upgrade Handbook&lt;/a&gt; as an indispensable tool. With the release of Rails 3 looming ever nearer, the timing couldn&amp;#8217;t be better for you to dive in and learn what it will take to get your applications running on the next generation of Rails!&lt;/p&gt;
&lt;p align='center'&gt;&lt;object id="__sse4820978" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=upgradingtorails3-100722232257-phpapp02&amp;stripped_title=upgrading-to-rails-3" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4820978" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=upgradingtorails3-100722232257-phpapp02&amp;stripped_title=upgrading-to-rails-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;The above slides are fairly self-sufficient and give a high level overview of some of the changes Rails 3 brings and some of the tools and tricks to look for while upgrading. Below you&amp;#8217;ll find the screencast I recorded livecoding (apologies for the &amp;#8220;shouting&amp;#8221; tone of voice, conference-voice doesn&amp;#8217;t translate perfectly to screencast-voice) a transition from Rails 2.3 to Rails 3 on stage during the last 15 minutes of my talk.&lt;/p&gt;
&lt;p align='center'&gt;&lt;object width="500" height="375"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13565504&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=c9ff23&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13565504&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=c9ff23&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="375"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/E93YlQyn-nA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/talkin-about-upgrading-to-rails3</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Michael Bleigh</name>
    </author>
    <id>tag:www.intridea.com,2010-07-19:317</id>
    <published>2010-07-19T00:35:00-04:00</published>
    <updated>2010-07-19T00:35:00-04:00</updated>
    <category term="ruby" />
    <category term="conference" />
    <category term="ruby midwest" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/y3d-viBruGc/a-to-go-plate-of-ruby-midwest" rel="alternate" type="text/html" />
    <title>A To-Go Plate of Ruby Midwest</title>
    <content type="html">&lt;p&gt;This past weekend Rubyists from all over descended upon Kansas City (my hometown and new place of residence) for the &lt;a href="http://rubymidwest.com/"&gt;Ruby Midwest&lt;/a&gt; conference. Headlined with keynotes from &lt;a href="http://twitter.com/defunkt"&gt;Chris Wanstrath&lt;/a&gt; (of GitHub fame) and &lt;a href="http://twitter.com/wycats"&gt;Yehuda Katz&lt;/a&gt; (of Merb and now Rails fame), more than 150 Rubyists attended the single-track conference at the &lt;span class="caps"&gt;UMKC&lt;/span&gt; campus. Intridea was represented by four members, one talk, and by sponsoring a Kansas City Barbecue dinner for the first night of the conference.&lt;/p&gt;
&lt;p align='center'&gt;&lt;img src='http://farm5.static.flickr.com/4134/4801254668_d2da5913bd.jpg'/&gt;&lt;/p&gt;
&lt;p align='center'&gt;&lt;strong&gt;Photo courtesy of &lt;a href="http://www.flickr.com/photos/peterpunk/collections/72157624394462793/"&gt;peterpunk777&amp;#8217;s Flickr stream&lt;/a&gt; of the event.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://bbq.rubymidwest.com/"&gt;&lt;span class="caps"&gt;OMGWTFBBQ&lt;/span&gt;&lt;/a&gt; ran smoothly overall and gave more than 120 of the attendees a chance to taste some of the best of Kansas City Barbecue from &lt;a href="http://jackstackbbq.com"&gt;Jack Stack&lt;/a&gt;. In addition to some belt-loosening food, we held some lightning talks that included a particularly memorable talk by Jeremy Evans about &amp;#8220;Singleton Classes of Singleton Classes.&amp;#8221;&lt;/p&gt;
&lt;p&gt;My talk focused on the emerging standards for automatic web app interoperation via the &lt;a href="http://ostatus.org"&gt;OStatus&lt;/a&gt; protocol (and through it the &lt;a href="http://code.google.com/p/pubsubhubbub/"&gt;PubSubHubbub&lt;/a&gt;, &lt;a href="http://code.google.com/p/webfinger/"&gt;Webfinger&lt;/a&gt;, &lt;a href="http://salmonprotocol.org/"&gt;Salmon&lt;/a&gt;, and &lt;a href="http://activitystrea.ms/"&gt;ActivityStreams&lt;/a&gt; protocols). While the talk was high level, hopefully I sparked some interest in the attendees in learning more about these standards and possibly implementing them in their own applications in the near future.&lt;/p&gt;
&lt;p align='center'&gt;&lt;object id="__sse4778065" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=interoperableweb-100717130556-phpapp01&amp;stripped_title=interoperable-web-4778065" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4778065" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=interoperableweb-100717130556-phpapp01&amp;stripped_title=interoperable-web-4778065" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;We had a great time at the event and, judging from Intridea&amp;#8217;s &lt;a href="http://tweetsentiments.com/analyze?q=rubymidwest&amp;amp;topic=true&amp;amp;commit=Analyze+Tweets"&gt;TweetSentiments Analysis&lt;/a&gt;, a lot of other people had a great time too.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/y3d-viBruGc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/a-to-go-plate-of-ruby-midwest</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Renae Bair</name>
    </author>
    <id>tag:www.intridea.com,2010-07-16:316</id>
    <published>2010-07-16T00:39:00-04:00</published>
    <updated>2010-07-16T00:39:00-04:00</updated>
    <category term="insider" />
    <category term="raymond law" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/pRnySC5CA8Q/intridea-insider-ray" rel="alternate" type="text/html" />
    <title>Intridea Insider: Raymond Law</title>
    <content type="html">&lt;div style="float:left; padding-right: 20px;"&gt;&lt;a href="http://intridea.com/about/people/ray"&gt;
 &lt;img src="http://s3.amazonaws.com/intridea.com/production/photos/18/original.jpg" width="200" title='Ray'&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;He is a moderately reformed NBA fanatic and at one point knew the names of players on every NBA team. He is a serious coder, and spent six years working on battlefield simulations. You don't want to challenge him to any duels involving Physics. Or code quality. This week, meet our Senior Software Engineer, &lt;a href="http://intridea.com/about/people/ray"&gt;Raymond Law&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ray taught himself Ruby and Ruby on Rails, but not before spending years programming in Pascal, C, and C++ and teaching himself PHP. His first language was Pascal, which he learned in high school while living in Hong Kong in the early 1990's. "I started programming in Pascal back in school in Hong Kong in 1992 because it was the language used in the public exams. And since I had a functional programming background, it was easy for me to switch from Pascal to C first, and then to C++."&lt;/p&gt;

&lt;p&gt;Ray's family left Hong Kong to come to the United States when he was still in high school. He remembers struggling with leaving his life and his friends behind in Hong Kong; "I was just very sad to leave so much behind. I was on the right path to get in to a university in Hong Kong, so I didn't understand why my parents wanted to move." He later appreciated that his parents wanted to move for the potential of a better life for their family; and since he had a really good English instructor in Hong Kong, he already had a good foundation to start his new life in the states.&lt;/p&gt; 

&lt;div style='float: right; padding-left:20px'&gt;&lt;a href="http://intridea.com/about/people/ray"&gt;
  &lt;img src="http://img.skitch.com/20100716-gjbcj7a1eskqec3q2ewrdrp2ju.jpg" width="200px" title='Ray'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Armed with a love for both physics and computers, he entered college at Virginia Tech with the intention of majoring in Physics. "I liked Physics because I had a very good instructor in Hong Kong. I would tell people that the harder the exams were, the happier I was; I like the challenges of tests and applying my knowledge." He started out his first semester by taking an advanced level Physics class; "I got a bad grade on the first exam, but then I worked incredibly hard to get the highest grade on the final exam." He talks proudly about achieving that goal; "My professor personally told me: 'This is the stack of exam papers sorted by scores, and yours is on top.' I will never forget that moment."&lt;/p&gt;

&lt;p&gt;Despite his enjoyment in studying Physics, Ray later changed his major to Computer Engineering and minored in Computer Science and Mathematics and finished college in only 3 1/2 years. He explains the difference between Computer Engineering and Computer Science: "Engineering is about finding solutions to problems. CS is more focused on theoretical ideas and algorithms." He has found his background in Engineering to be incredibly useful in real world situations. "Currently, I'm working on migrating a large amount of assets from a server-based file system to Amazon S3. It's a very involved integration but I love it because I'm solving a real problem. My engineering skills are very useful in this situation." He believes in taking small steps when he's programming, and he is extremely methodical; "Change one variable at a time and look at the results. Then you can have meaningful comparisons. As programmers, a lot of times we are inclined to implement the whole solution and hope that it works. But it rarely works that way."&lt;/p&gt;

&lt;p&gt;For similar reasons, Ray believes strongly in testing and behavior-driven-development. However, he approaches testing with flexibility, based on the needs and requests of the end clients. "Realistically, some clients don't understand the value of testing and it can be hard to convince them of the advantages. I try to explain to clients that if we are allowed the time to write good tests, it will result in better quality code and it will help them down the road."&lt;/p&gt; 

&lt;div style='float: left; padding-right:20px'&gt;&lt;a href="http://intridea.com/about/people/ray"&gt;
  &lt;img src="http://img.skitch.com/20100716-1y3ng24mp3sdsygmcb2umfc25q.jpg" width="350px" title='Ray &amp; Vinly on their wedding day'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Ray really understands the dynamic of the client relationship. He talked with me about the importance of understanding where a client is coming from and noted that oftentimes the client knows what they want, but they don't have the technical knowledge to understand the process that must be taken to bring about their desired results. "It's important to explain our technology decisions and talk them through how the code works if that is what they need. Clients hire us because they don't know how to do this themselves. It's the same reason that I hire someone to do my landscaping; it's not that I'm ignorant and couldn't learn to do it myself, but I am using the time I save to do other things that I am good at. So when I respond to clients, I try to be specific and encouraging so that they understand that we are here to help them, not laugh at them. I think that is an important understanding for us to have."&lt;/p&gt;

&lt;p&gt;Perhaps it's Ray's gentle and understanding nature, combined with his explicitly genius talent for problem solving that makes him such a great developer. Whatever it is, we are fortunate to have him on our team. Ray enjoys working with us too: "I am just enjoying my life - I have a great family of my own, and a great job at Intridea where people value each other." Ray lives in Virgnia with his wife Vinly, whom he met his freshman year at Virginia Tech. Vinly majored in Architecture and found a great firm to work with after graduating. They have a baby girl, Chloe, whom they adore completely. Ray says, "Chloe is the best thing. Nothing compares to Chloe smiling at me."&lt;/p&gt; 

&lt;div style='float: right; padding-left:20px'&gt;&lt;a href="http://intridea.com/about/people/ray"&gt;
  &lt;img src="http://img.skitch.com/20100716-knc1y49kpte3dipqayjx1pscyi.jpg" width="350px" title='Ray &amp; Chloe'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Ray works from his home office, and enjoys the flexibility that being part of a distributed team affords him. "I work very effectively at night. When you work in the office, there are many distractions. So I enjoy working from home so that I can arrange my schedule in order to do my best work at nighttime. I often work until 4 or 5 am." Before joining the Intridea team, Ray worked as a DOD contractor on battlefield simulation software for TARDEC, the U.S. Army's Tank and Automotive Research, Development and Engineering Center. He spent six years with the DCS Corporation before he met &lt;a href="http://intridea.com/about/people/dave"&gt;Dave&lt;/a&gt;, Senior Partner at Intridea. By this time, Ray had already taught himself PHP, Ruby and Rails and was using Rails for several personal projects, including a list application and a small app for locating local badminton playing locations. On learning Rails, he reflects, "Learning Rails was so intuitive to me because everything seemed to make perfect sense. Stuff like convention over configuration and MVC just made sense to me. I think Rails understands the pains of developers and tries to ease or eliminate the pains so we can focus on application logic."&lt;/p&gt;

&lt;p&gt;Thinking back to his old life in Hong Kong, I ask Ray if he has any lingering regrets now about leaving his life behind and moving to the states: "Nobody knows what would have happened if I hadn't moved. So I am not looking backwards." In the end, it all worked out - a brilliant and lovely wife, adorable baby daughter, his parents and brother living nearby in Virginia, working for a company he believes in and programming in a language that he loves. &lt;/p&gt;

&lt;p&gt;美好人生 &lt;i&gt;"It's a wonderful life."&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;This post is part of a weekly series, called &lt;a href="http://intridea.com/tag/insider"&gt;"Intridea Insider"&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/pRnySC5CA8Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/intridea-insider-ray</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Brendan Lim</name>
    </author>
    <id>tag:www.intridea.com,2010-07-14:315</id>
    <published>2010-07-14T00:16:00-04:00</published>
    <updated>2010-07-14T00:16:00-04:00</updated>
    <category term="mobile" />
    <category term="iphone" />
    <category term="augmented reality" />
    <category term="car" />
    <category term="finder" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/lhptWOEehPg/car-finder-2-0-now-available-for-iphone" rel="alternate" type="text/html" />
    <title>Car Finder 2.0 Now Available for iPhone</title>
    <content type="html">&lt;p&gt;
If you have both a car and an iPhone, then you might be as excited as we are that &lt;a href="http://itunes.apple.com/app/car-finder/id335295621?mt=8"&gt;Car Finder 2.0&lt;/a&gt; is now available in the App Store! Car Finder 2.0 is chock-full of additional features and makes finding your car easier and more accurate than ever. One of the best new features of Car Finder 2.0 is Parking Meter Notification. When you mark the location of your car, you have the choice of setting a time for when your parking meter will expire and then be alerted when your parking meter is about to run out. Also, if you don't want to use the augmented reality view to find your car, there's now an option to just view your car on a regular map.
&lt;/p&gt;

&lt;br/&gt;
&lt;center&gt;&lt;img src="http://cl.ly/e0eacef43fdef057e3ef/content"&gt;&lt;/center&gt;
&lt;br/&gt;

&lt;p&gt;
For those of you who haven't heard of &lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=335295621&amp;mt=8" target="_new"&gt;Car Finder&lt;/a&gt;, it is a super smart mobile app that uses augmented reality to help you find where you parked your car.  Car Finder has been featured in many publications such as, &lt;a href="http://gizmodo.com/5576617/7-apps-for-smart-smartphone+wielding-drivers" target=_new&gt;Gizmodo&lt;/a&gt;, &lt;a href="http://www.consumerreports.org/cro/magazine-archive/2010/august/electronics-computers/smart-phone-apps/overview/index.htm" target=_new&gt;Consumer Reports&lt;/a&gt;, &lt;a href="http://www.wired.co.uk/news/archive/2009-11/06/save-face-with-the-car-finder-augmented-reality-app?page=all" target=_new&gt;Wired Magazine&lt;/a&gt;, &lt;a href="http://www.cultofmac.com/car-finder-iphone-app-uses-augmented-reality-to-find-your-wheels/20478" target=_new&gt;Cult of Mac&lt;/a&gt;, and the &lt;a href="http://www.tuaw.com/2009/11/03/use-augmented-reality-to-find-your-car/"&gt;The Unofficial Apple Weblog&lt;/a&gt;. Just last week, Consumer Reports named Car Finder one of the must have smart phone applications for smart drivers. 
&lt;/p&gt;

&lt;br/&gt;
&lt;center&gt;&lt;img src="http://cl.ly/b629300024b886923630/content"&gt;&lt;/center&gt;
&lt;br/&gt;

&lt;p&gt;
Car Finder relies on the GPS and compass in your iPhone to accurately mark the location of your vehicle. You can see the accuracy of your GPS signal in real time and you will be alerted when you are trying to set the location of your car when the accuracy is not optimal. We use augmented reality to overlay real-time information about where your car is parked while you look at the world around you with your iPhone.
&lt;/p&gt;

&lt;p&gt;
Car Finder 2.0 is available now in the App Store for $0.99. Car Finder was built by the talented mobile dev team at Intridea. Intridea offers services for application development on all major mobile platforms, including iPhone, IPad, Android, BlackBerry, and webOS.  If you need your mobile idea brought to life, &lt;a href="/contact"&gt;contact us&lt;/a&gt; for a quote.
&lt;/p&gt;

&lt;p&gt;
&lt;center&gt;&lt;a href="itms://itunes.apple.com/us/app/car-finder/id335295621?mt=8" target="_new"&gt;&lt;img src="http://cl.ly/gSc/content"/&gt;&lt;/a&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/lhptWOEehPg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/car-finder-2-0-now-available-for-iphone</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Sean Soper</name>
    </author>
    <id>tag:www.intridea.com,2010-07-13:312</id>
    <published>2010-07-13T00:08:00-04:00</published>
    <updated>2010-07-13T00:08:00-04:00</updated>
    <category term="ruby" />
    <category term="iphone" />
    <category term="objective-c" />
    <category term="cocoa" />
    <category term="mac" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/zFiFFVfyCAc/stop-the-hate-obj-c-deserves-your-love" rel="alternate" type="text/html" />
    <title>Stop The Hate: Obj-C Deserves Your Love</title>
    <content type="html">&lt;p&gt;My first foray into Objective-C was, for lack of a better description, a sink-or-swim situation. I was working for a previous employer and our lead iPhone developer had just been laid off; my old boss was in my office the next day asking me how quickly I could "get up to speed". "You know Ruby", he said, "How difficult could it be?" It was time to get some books.&lt;/p&gt;

&lt;p&gt;The first point I would like to raise is that Objective-C, while itself quite elegant (at least in comparison to its namesake), is fairly useless on the Mac platform without the Cocoa framework. And it is this framework that I think a lot of Rubyists get hung up on. The other big sticking point is manual memory management through the use of &lt;code&gt;retain&lt;/code&gt; and &lt;code&gt;release&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Cocoa's roots start all the way back in the 1980s with the NeXTSTEP operating system which tagged along with Steve Jobs when he was tapped to lead Apple again in 1996. This is why Cocoa's core classes, such as NSArray and NSString, all begin with 'NS'. The naming scheme is a holdover from that earlier OS and while those two extra characters may not seem like much hassle, to a Rubyist they represent an unnecessary burden of verbosity. In addition, Cocoa makes extensive use of the &lt;a href="http://en.wikipedia.org/wiki/Delegation_pattern"&gt;delegate pattern&lt;/a&gt;, something that is rarely seen or needed in Ruby and can make it difficult to trace an execution path for those unfamiliar with the concept. One of the limitations of Objective-C, the &lt;del&gt;inability to create&lt;/del&gt; difficulty in creating a function with a variable length argument list, is commonly resolved through the use of the poorly named hash &lt;code&gt;userInfo&lt;/code&gt;, which frequently appears in method definitions without any connotation as to its purpose. And lest we forget those wonderfully verbose method names, I think even the most die-hard and grizzled veteran of Objective-C would agree that NSString's &lt;code&gt;stringByReplacingOccurrencesOfString&lt;/code&gt;, could have been better-named.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://img.skitch.com/20100704-f8afpbnkg64dmmi43wf8dukgp2.jpg" style="float:right; margin-left: 12px; margin-bottom: 0px;"/&gt;Rubyists are proud of that fact that they don't have to worry about memory management. The more knowledgeable Rubyists could tell you that the garbage collector, or GC, works by continually scanning objects in memory once a process has accumulated eight megabytes worth, checking to see if there are any pointers to those objects and then releasing them back to the OS if they do not. But most Rubyists would refuse to venture any farther down that dark path of memory management out of a simple need to retain their sanity. Indeed, for a good few weeks I struggled with this concept until my fellow iPhone student &lt;a href="http://twitter.com/pjb3"&gt;Paul Barry&lt;/a&gt; introduced me to a book that would change my outlook. Titled "Learn Objective-C on the Mac", it proved to be a treasure trove of information on object allocation. Specifically, chapter nine, which dealt with memory management, made it crystal clear what was going on underneath the hood when an object was created, and thus retained, and when it was released. The concept itself is simple: retaining an object increases its "retain count" by one; releasing it reduces that count; and when it reaches zero that space in memory is released back to the OS. Immediately the seemingly-random crashes my applications faced were decipherable and easily fixed while my hostility to Objective-C and the Cocoa framework melted away.&lt;/p&gt;

&lt;p&gt;As Rubyists, we tend to value the simple over the complex and prefer not to sweat the small stuff. Yet on a whole we also desire learning new concepts and many of us can attest to that being the driving factor behind leaving a former language of choice behind. On occasion, such as with Objective-C and Cocoa, our preference for simplicity and our desire to learn collide, head-on. But rather than tweet about how ugly Cocoa looks or how memory management in Objective-C is beneath you, I challenge you to dive further. After all, Ruby itself is built on Objective-C's forebear, C, and no programmer has walked away worse for wear after peeking under the hood. Learning Objective-C not only opens up the world of iOS application development but also makes us better Rubyists.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/zFiFFVfyCAc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/stop-the-hate-obj-c-deserves-your-love</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Renae Bair</name>
    </author>
    <id>tag:www.intridea.com,2010-07-01:311</id>
    <published>2010-07-01T00:55:00-04:00</published>
    <updated>2010-07-01T00:55:00-04:00</updated>
    <category term="insider" />
    <category term="david potsiadlo" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/QG4DDx1T70E/intridea-insider-potsiadlo" rel="alternate" type="text/html" />
    <title>Intridea Insider: David Potsiadlo</title>
    <content type="html">&lt;div style="float:left; padding-right: 20px;"&gt;&lt;a href="http://intridea.com/about/people/potsiadlo"&gt;
 &lt;img src="http://s3.amazonaws.com/intridea.com/production/photos/22/original.png" width="200" title='Potsiadlo'&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;He can turn empty pixels into tasty bits of candy; with only a touch of his fingertips he transforms the mundane into the extraordinary. This week in the Intridea Insider, meet our prodigious web designer, &lt;a href="http://intridea.com/about/people/potsiadlo"&gt;David Potsiadlo&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;"Pots", as we call him, is loved by all of us at Intridea for his artful and brilliant designs. His most famous work at Intridea was the redesign of &lt;a href="http://intridea.com"&gt;Intridea.com&lt;/a&gt; that went live early this year. Aside from his stunningly simple and creative designs, what is most fascinating is his design process and sources of inspiration, which we talked about at length during our interview. &lt;/p&gt;

&lt;p&gt;Pots draws inspiration from several sources, with an overall approach to design shaped by the writings of the author and comparative mythology scholar &lt;a href="http://en.wikipedia.org/wiki/Joseph_Campbell"&gt;Joseph Campbell&lt;/a&gt;. "The goal with the Intridea redesign was to incorporate the spirit of the &lt;a href="http://img.skitch.com/20100622-pfs6pu46ck7upx4rh4ubbia6q6.png"&gt;old site&lt;/a&gt; (the grass, trees, and sky), while simultaneously incorporating design elements from Michael's most recent design (the fuchsia, beige, etc)."&lt;/p&gt;

&lt;p&gt;&lt;center&gt;
&lt;img src="http://img.skitch.com/20100701-r51j9a6ig6xf2e36y2wwkgg5pc.png" width="599" /&gt;
&lt;/center&gt;
&lt;/p&gt;

&lt;p&gt;Pots then explains how this quote from Campbell, "&lt;em&gt;we live today in a terminal moraine of myths and mythic symbols&lt;/em&gt;", inspired him during the preparatory stage of the design process. "What Campbell is saying is that we, in the modern world, are surrounded by the remnants of symbols and images by which people in the past used in their attempts to express the inexpressible. New mythic structures seemingly always grow out of old ones, and include symbols and that the previous ones had. This is often equally true with the forms of a visual design." Pots believes that a website can be the "visual spirit of a company." He reasons, "So, I thought it right – and perhaps more importantly, helpful – to honor the existing design (Michael’s) along with our original Intridea design." On our new site you'll see clouds, grass, hills and trees, along with some of the fuchsia and beige elements that Michael introduced in his previous design.&lt;/p&gt;

&lt;p&gt;After collecting ideas on the inspiration board, he focuses in on a specific direction and design concept. "The next step is tricky, and I think where the magic hopefully happens. The idea is to look at the old and existing, and let it pull you in a way that 'takes you past it.' The idea is not to get stuck on existing visual design items used by others." He also has to ensure that the aesthetics he used were not stuck in the cliched past, "but rather, indicative of new trends and forward motion in design." Pots talks about Campbell's interpretation of a mythic symbol and relates mythic symbols to design elements: "His interpretation is that the symbol should be 'transparent to transcendence': In other words, it should allow us to take the symbol in, and allow ourselves to not get stuck on the symbol itself, but rather what the symbol points to." Ultimately, Pots fully acknowledges that the most important aspect of all of this is whether or not the final design speaks for itself and actually works. "In the end, if the final product doesn't do its job, then all this talk about inspiration and process doesn't really matter."&lt;/p&gt;

&lt;p&gt;Although his process is alive with notions of mythological theory and visual philosophy, it can be summed up quite simply: "My process for all new sites starts like this: get a vague, abstract idea of the vision I want to achieve. Next, look for examples of sites using similar visuals. Next, I organize my inspiration into an Illustrator file. Collectively, the goal is to use these elements as a springboard to create something alive and new." Here is a look at the initial inspiration board he created for our current site design:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;
&lt;a href="http://img.skitch.com/20100622-1cssugbw825tq453qrpec8tecb.png"&gt;
&lt;img src="http://img.skitch.com/20100701-pjcxjhp7xdgwdkxjfgb631g7fr.png" width="600" /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;/p&gt;

&lt;p&gt;Pots was in the fortunate position of having a substantial amount of time to devote to this particular redesign project. He admits that in general, the constraint of time can often reduce the scale of each step in his process. "I think a big challenge as a growing designer is to realize that every site can't be the most-epic-process-ever-omg." And when he is under restrictive time constraints he finds that, "Ultimately, communicating with clients to rein in their design expectations" is important. &lt;/p&gt;

&lt;p&gt;Pots’s creative talents revealed themselves at an early age. Long before he started with Intridea, he drew Teenage Mutant Ninja Turtles for his classmates' trapper keepers in the third grade. Always inspired by his older brother, whose drawings he loved, he started drawing when he was very young;  "Sketchbooks were the medium of those days. Tons of blank pages." He had a habit of doing each new drawing on a random blank page in the sketchbook; "The idea of going through the pages in linear order was the opposite of my instincts. In a sense, this made finding a new blank page kinda tough when the book began to get full, but it was still the way I enjoyed doing it. I had to find the right blank page for my drawing at that particular moment." He loved drawing cartoonish war and battle scenes over ocean backgrounds, complete with battleships, attacking planes, helicopters, and submarines. Much of the drawings in his later years were inspired by the backstories for his favorite video games like Dragon Warrior, The Legend of Zelda, and Diablo.&lt;/p&gt;

&lt;p&gt;In between drawing Teenage Mutant Ninja Turtles for his third grade classmates and working at Intridea, he grew up in suburban Maryland where he loved exploring the forests, playing video games, piano and ice hockey. Pots went to college at the University of Maryland where he started out as a Computer Science major. He had done some programming in high-school as an extension of his gaming hobby. "One useful side effect of all the PC gaming was getting comfortable with DOS. I quickly grew comfortable learning basic command line stuff." He had several PASCAL and C++ classes in high school. "As much as we coded, we also learned how to get around the computer lab’s security codes so we could play Quake 2 on the LAN." But he wasn’t in the Computer Science program very long; "After 3 months I firmly decided to quit that major; it was lifeless to me. Not in a judgmental sense, but rather on a personal level: at that time in my life, it too closely represented the path of non-discovery." &lt;/p&gt;

&lt;div style='float: right; padding-left:20px'&gt;&lt;a href="http://www.fireflygrove.com/graphics/"&gt;&lt;img src="http://img.skitch.com/20100701-j2psmrwkyiqf2scwx2rywa3mc2.jpg" width="250px" title='Firefly Guitar Ballad'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Pots majored in American Studies which gave him the flexibility to focus on sociology and music. "Sociology allowed me to continue learning about different global situations and introduced me to my budding interest in tribal religion, which grew into a passion for comparative mythology." His music major allowed him to deepen his understanding of music theory after playing piano for ten years and augmented his passion for playing guitar, which he claims was his "unofficial major" in college. &lt;/p&gt;

&lt;p&gt;After graduating, Pots worked waiting tables, playing gigs at local bars and coffee shops, and devoted a lot of free time to creative writing. It wasn’t long though before he realized he needed a "real" job, and he got hired with the Chesapeake Research Consortium. "That gig had me handling various tasks, including maintaining a website. Best of all, they had a training budget. I could buy books dedicated to HTML, CSS, Photoshop and Illustrator. This was heaven." He looked to sources on the web like &lt;a href=" http://www.csszengarden.com/"&gt;Zen Garden&lt;/a&gt;  for guidance as he taught himself the gentle art of of web design. As he learned Illustrator and Photoshop, he discovered ways to take characters from his creative writing and put them into &lt;a href="http://fireflygrove.com/workshop/"&gt;visual form&lt;/a&gt;. His creative writing not only inspired his art, but it also motivated him to re-approach guitar from a new perspective: "I became interested in the possibilities of writing &lt;a href=" http://fireflygrove.com/"&gt;esoteric folk songs&lt;/a&gt;, instead of just playing what people in coffee shops wanted to hear." &lt;/p&gt;

&lt;p&gt;After working at CRC for a few years, he started freelancing on the side. "I was taken by the web possibilities and how it could be translated into a career. I freelanced for about a year, and did everything you see here: &lt;/p&gt;

&lt;p&gt;&lt;center&gt;
&lt;a href="http://www.skipvision.com/portfolio.php"&gt;
&lt;img src="http://img.skitch.com/20100701-gr5mw7qwugihfdcftqg5ahm5qq.jpg" width="275"/&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;/p&gt;

&lt;p&gt;He spent a year doing freelance work before he ran into &lt;a href="http://intridea.com/about/people/chris"&gt;Chris Selmer&lt;/a&gt;, Senior Partner at Intridea while he was at a DC tech event. "I was hired shortly thereafter. It was a dream," he reflects. &lt;/p&gt;

&lt;p&gt;It didn’t take anyone long to discover how talented Potsiadlo was. In addition to rolling out our new website design, he has been busy designing for several client projects, including &lt;a href="http://www.earthaid.net"&gt;EarthAid&lt;/a&gt; and &lt;a href="http://www.howaboutwe.com/"&gt;HowAboutWe&lt;/a&gt;. He works from his home in Maryland where he lives with his wife, Shannon, and their baby girl, Norah. He enjoys working at his home office, but admits that he really loves working in coffeeshops too: "Sitting in chairs previously used by others doing their own respective work, drinking from mugs once used by others while doing likewise. The ambience of creativity in these settings is one of my favorite things. I think my favorite encapsulation of all this comes from &lt;a href="http://blog.ted.com/2009/02/elizabeth_gilbe.php"&gt;this TED talk&lt;/a&gt; (author Elizabeth Gilbert, on creativity and genius.)"&lt;/p&gt;

&lt;p&gt;&lt;img src="http://img.skitch.com/20100701-bafr19khpdy5w8d4ukar5e16xh.png" style="float:left; margin-right: 12px; margin-bottom: 10px;"/&gt;Though he certainly loves music, he prefers to listen to podcasts while he works. "I think podcasts represent an awesome realm of creative use of the internet." His favorites include Leo LaPorte’s &lt;a href="http://twit.tv/"&gt;TWiT.tv&lt;/a&gt; network, the sports and pop-culture ramblings of &lt;a href="http://itunes.apple.com/us/podcast/espn-the-b-s-report-bill-simmons/id254098743"&gt;Bill Simmons&lt;/a&gt;, and geeked-out movie conversations on &lt;a href="http://slashfilm.com/filmcast/"&gt;The /Filmcast&lt;/a&gt;. When he's not having fun with his family or being creative with music, images or language, he enjoys doing work in his home's garden and watching sports on the TV.&lt;/p&gt;

&lt;p&gt;Potsiadlo could be considered a &lt;i&gt;Homo Universalis&lt;/i&gt;, a modern day Renaissance man. From his clever sketchings, to the intricate songs he plays on guitar and piano, to ice hockey, to his interests in global issues, to his love of comparative mythology, to creative writing, to the art that he creates for the web. It’s hard to believe so much talent can come from one human being. Then again, Pablo Picasso may have said it best when he reminds us that the artist is not just a set of eyes or ears, but a political being: &lt;/p&gt;

&lt;p style="clear:both"&gt;&lt;i&gt;"What do you think an artist is? An imbecile who has only his eyes if he is a painter, or his ears if he is a musician, or a lyre at every level of his heart if he is a poet, or, if he is merely a boxer, only his muscle? On the contrary, he is at the same time a political being, constantly alert to the heartrending, burning, or happy events in the world, molding himself in their likeness."&lt;/p&gt;&lt;/i&gt;

&lt;p&gt;&lt;i&gt;This post is part of a weekly series, called &lt;a href="http://intridea.com/tag/insider"&gt;"Intridea Insider"&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/QG4DDx1T70E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/intridea-insider-potsiadlo</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Brendan Lim</name>
    </author>
    <id>tag:www.intridea.com,2010-06-24:310</id>
    <published>2010-06-24T00:02:00-04:00</published>
    <updated>2010-06-24T00:02:00-04:00</updated>
    <category term="mobile" />
    <category term="ipad" />
    <category term="oilreporter" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/2enbajK3mO8/oil-reporter-now-available-for-ipad" rel="alternate" type="text/html" />
    <title>Oil Reporter Now Available for iPad</title>
    <content type="html">&lt;p&gt;Last month Intridea released &lt;a href="http://oilreporter.org"&gt;Oil Reporter&lt;/a&gt;, a mobile application for iPhone and Android devices.  Oil Reporter is currently being used by NGO's and citizens on the ground to report affected areas of the spill, including the impact to wildlife, the presence of wetlands, and the amount of oil that is present. All of the data collected by Oil Reporter users is publicly available on our website at &lt;a href="http://oilreporter.org/reports" target="_new"&gt;OilReporter.org&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;
&lt;center&gt;&lt;img src="http://cl.ly/b4e565c22dc171af10a8/content"/&gt;&lt;/center&gt;
&lt;/p&gt;

&lt;p&gt;
Now we've gone one step further and created a new &lt;a href="http://itunes.apple.com/app/oil-reporter-for-ipad/id378579550?mt=8"&gt;Oil Reporter application specifically for the iPad&lt;/a&gt;.  Oil Reporter for iPad enables you to see the latest reports as soon as they come in.  You can view a detailed mapping of all of the submitted reports along with an easy-to-read list.  You can even drill down and view detailed information about each individual report.  
&lt;/p&gt;

&lt;p&gt;
&lt;center&gt;&lt;img src="http://cl.ly/712570b1077a8d7fd9f7/content"/&gt;&lt;/center&gt;
&lt;/p&gt;

&lt;p&gt;
The code has also been open sourced on &lt;a href="http://github.com/intridea/oilreporter-ipad" target=_new&gt;GitHub&lt;/a&gt;, so feel free to help us add some great new features to this application that we can push out in later updates.  Oil Reporter for iPad is available right now and is completely free. The crowdsourced data gets analyzed by groups that can point relief efforts at the distressed areas according to the urgent reports that are filed with Oil Reporter. Start using it today!
&lt;/p&gt;

&lt;p&gt;
&lt;center&gt;&lt;a href="http://itunes.apple.com/app/oil-reporter-for-ipad/id378579550?mt=8" target="_new"&gt;&lt;img src="http://cl.ly/gSc/content"/&gt;&lt;/a&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/2enbajK3mO8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/oil-reporter-now-available-for-ipad</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Michael Bleigh</name>
    </author>
    <id>tag:www.intridea.com,2010-06-22:309</id>
    <published>2010-06-22T00:37:00-04:00</published>
    <updated>2010-06-22T00:37:00-04:00</updated>
    <category term="opinion" />
    <category term="mobile" />
    <category term="android" />
    <category term="fragmentation" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/AEykcsxE_2Q/on-android-and-custom-uis" rel="alternate" type="text/html" />
    <title>On Android and Custom UIs</title>
    <content type="html">&lt;p style='float: right; margin: 0 0 0 10px;'&gt;&lt;img src='http://img.skitch.com/20100619-jy7ypsc6ws35ikjs3xcd6rasmc.jpg' alt='Android UI Fragmentation'/&gt;&lt;/p&gt;
&lt;p&gt;Google&amp;#8217;s Android has seen an incredible rise in popularity since its first handset was launched less than two years ago. Google has worked hard to earn that popularity, regularly releasing fantastic new improvements to the platform in the form of Donut, Eclaire, and now Froyo. Unfortunately, many users of the Android ecosystem won&amp;#8217;t see these improvements for years, if at all. The reason? Manufacturers of Android handsets are building custom versions of the OS to add eye-candy and make the UI seem more attractive, at the expense of upgradeability.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;HTC&lt;/span&gt; has its &lt;strong&gt;Sense UI&lt;/strong&gt; and Motorola has &lt;strong&gt;&lt;span class="caps"&gt;MOTOBLUR&lt;/span&gt;&lt;/strong&gt;. Samsung and Sony have also thrown their hats into the &amp;#8220;heavily modified UI&amp;#8221; ring. While these packages may serve to help differentiate from the competition, they are hammering the Android ecosystem by causing fragmentation (and yes, &lt;a href="http://android-developers.blogspot.com/2010/05/on-android-compatibility.html"&gt;I do think that&amp;#8217;s the right word&lt;/a&gt;). But it isn&amp;#8217;t all their fault. One can certainly understand how, when competing against the likes of the iPhone, manufacturers would want to &amp;#8220;pretty up&amp;#8221; the Android experience. So I&amp;#8217;ve got a few words for these OEMs, and Google as well.&lt;/p&gt;
&lt;h3&gt;Dear Google&lt;/h3&gt;
&lt;p&gt;I&amp;#8217;m really happy that you&amp;#8217;re &lt;a href="http://www.androidguys.com/2010/06/18/android-team-shifting-focus-user-experience-gingerbread/"&gt;&amp;#8216;laser focused&amp;#8217; on the user experience&lt;/a&gt; for the next release. Now that you&amp;#8217;ve got it humming at lightning speed with Froyo, it&amp;#8217;s time to add some polish. Fantastic. But making a better stock UI isn&amp;#8217;t the only thing that needs to happen to prevent this fragmentation.&lt;/p&gt;
&lt;p&gt;You should be doing everything you can to prevent version fragmentation because it&amp;#8217;s hurting developers and consumers. When people with G1s see &amp;#8220;official Android Twitter client released&amp;#8221; but can&amp;#8217;t download it, they&amp;#8217;ll get frustrated. They don&amp;#8217;t know or care about the fact that the G1&amp;#8217;s limited internal storage means that it &lt;strong&gt;can&amp;#8217;t&lt;/strong&gt; get the next upgrade, they only care that they&amp;#8217;re supposed to have an Android but they can&amp;#8217;t get the software they want.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s my advice: take the feature lists of Sense and &lt;span class="caps"&gt;MOTOBLUR&lt;/span&gt; et al as a laundry list of areas where your &lt;span class="caps"&gt;API&lt;/span&gt; needs more robustness. If the capabilities of Sense and &lt;span class="caps"&gt;MOTOBLUR&lt;/span&gt; were exposed at an application level, this problem would simply disappear. You&amp;#8217;ve built your platform to be backwards-compatible; if &lt;span class="caps"&gt;HTC&lt;/span&gt; wants to build a &amp;#8220;Sense UI&amp;#8221; app that changes the appearance of the UI and adds a bunch of widgets, and they want to make that only available on their handsets, more power to them. When the next version of Android comes out, it&amp;#8217;ll all work seamlessly because they&amp;#8217;ve simply &lt;strong&gt;built an app&lt;/strong&gt;, like any other developer.&lt;/p&gt;
&lt;p&gt;So keep up the good work on Gingerbread, I&amp;#8217;m looking forward to the UI improvements. But also make your UI reachable by applications, provide hooks into the very guts of Android so that manufacturers and developers alike can really &amp;#8220;make it their own&amp;#8221; without building a custom &lt;span class="caps"&gt;ROM&lt;/span&gt;.&lt;/p&gt;
&lt;h3&gt;Dear &lt;span class="caps"&gt;HTC&lt;/span&gt;/Motorola/Samsung/Etc.&lt;/h3&gt;
&lt;p&gt;Thank you for making Android handsets. I&amp;#8217;m a huge supporter of the platform, and the level of competition and innovation on Android phones has been amazing. Keep it up! But you&amp;#8217;re doing yourselves a disservice by building these custom UIs that inhibit the Android version upgrade process.&lt;/p&gt;
&lt;p&gt;Google has huge teams of people working to continuously upgrade the Android experience. You get the fruits of this labor &lt;strong&gt;100% for free&lt;/strong&gt;. I understand that as a handset manufacturer the idea of upgradeable phones isn&amp;#8217;t necessarily the most appealing: if people can upgrade the software on their phones, maybe they won&amp;#8217;t want a new one in 2 years! But trust me, you&amp;#8217;ve shown that you&amp;#8217;ll make the hardware good enough that people &lt;em&gt;will&lt;/em&gt; want new phones.&lt;/p&gt;
&lt;p&gt;Instead of locking down a handset to a specific Android version, create an unbeatable suite of &lt;em&gt;applications&lt;/em&gt; that comes pre-loaded on your phone. Work on top of, instead of within, the Android operating system. Then you can leverage all of Google&amp;#8217;s work and all of your own work to provide customers with a great experience. Work with Google to add pieces of &lt;span class="caps"&gt;API&lt;/span&gt; that will help you provide all of the value you want to provide; I&amp;#8217;m sure Google would be happy to help as best it can.&lt;/p&gt;
&lt;p&gt;Also, while I&amp;#8217;m at it, can one of you please create a 4.3&amp;quot; handset running the stock Froyo UI sometime before November? I&amp;#8217;d love to get a big-screen phone when my contract&amp;#8217;s up, but I don&amp;#8217;t know that I can handle dealing with these custom UI jobs. It&amp;#8217;s just not for me.&lt;/p&gt;
&lt;h3&gt;Unicorns and Rainbows&lt;/h3&gt;
&lt;p&gt;I think that Android is a very important project that came along at just the right time. It has applications far beyond mobile handsets and we&amp;#8217;ll begin seeing Android in cars, tablets, and more in the very near future. This will mean &lt;em&gt;even more&lt;/em&gt; work will be poured into the Android ecosystem creating greater and greater benefits for everyone from consumers to handset manufacturers. All that needs to happen to take advantage of those benefits is for Google to help handset manufacturers free themselves of the idea that they need to &amp;#8220;make it their own&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m looking forward to the next 40 Android phones, and the 100 after that. I truly think that Android is going to dominate the mobile market five years from now (Apple will still have about the same piece of the pie, but Android will have displaced &lt;span class="caps"&gt;RIM&lt;/span&gt; and Microsoft entirely). So keep up the good work, but how about we all just get along in the meantime.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/AEykcsxE_2Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/on-android-and-custom-uis</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Renae Bair</name>
    </author>
    <id>tag:www.intridea.com,2010-06-17:308</id>
    <published>2010-06-17T00:52:00-04:00</published>
    <updated>2010-06-17T00:52:00-04:00</updated>
    <category term="michael bleigh" />
    <category term="insider" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/uMylj-QRhco/intridea-insider-michael" rel="alternate" type="text/html" />
    <title>Intridea Insider: Michael Bleigh</title>
    <content type="html">&lt;div style="float:left; padding-right: 20px;"&gt;&lt;a href="http://intridea.com/about/people/mbleigh"&gt;
 &lt;img src="http://s3.amazonaws.com/intridea.com/production/photos/7/original.png" width="200" title='Michael'&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Acts-as-taggable-on, subdomain-fu, tweetstream, seed-fu, oauth2, and multi_json. What do all of these open source projects have in common? Why, &lt;a href="http://intridea.com/about/people/mbleigh"&gt;Michael Bleigh&lt;/a&gt;, of course! This week, meet our Creative Director, Michael: expert programmer, prolific designer, and open source crusader.&lt;/p&gt;

&lt;p&gt;In his three years at Intridea, Michael has created a staggering number of open source solutions for Ruby and Ruby on Rails developers. His contributions to our community are noteworthy and it is for this reason that I start off the interview by asking him about his inspiration and passion for open source software and development. For Michael, it was simple: "I saw people doing cool things and thought, hey, I want to be like those people!". &lt;/p&gt;

&lt;p&gt;His first (and most popular) project was &lt;a href="http://github.com/mbleigh/acts-as-taggable-on"&gt;acts-as-taggable-on&lt;/a&gt;, "a tagging plugin for Rails applications that allows for custom tagging along dynamic contexts". Michael says that the project came about because, "I really needed the functionality, and I was able to get it by modifying an &lt;a href="http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids"&gt;existing plugin&lt;/a&gt;. I rewrote it and then I figured, well, I should release this. Instantly, I was hooked." He has created over twenty open source projects since he started with Intridea, and cites several of them as personal favorites, such as &lt;a href="http://github.com/mbleigh/subdomain-fu"&gt;subdomain-fu&lt;/a&gt;: "Lots of people were making Rails apps with subdomains and everyone seemed to be complaining about it. This one just took a lot of hard work and perseverance reading Rails internals to make it work right, and once it was done, subdomains just worked."&lt;/p&gt;

&lt;p&gt;Most recently, he has been working with &lt;a href="http://github.com/intridea/oauth2"&gt;OAuth2&lt;/a&gt;; "I've really gotten interested in these open standards, and when OAuth 2.0 came out I was happy to be able to write the first Ruby library for it." &lt;/p&gt;

&lt;p&gt;As our internal open source pioneer, Michael spends a lot of time focusing on creating these open source tools. But he doesn't just create open source solutions; he also points out that he uses dozens of open source projects every day. It might sounds like a high number, but Michael explains, "Anyone who develops for Rails is using a ton of open source projects. Every gem in your Rails app is someone's hard work, sweat and tears." Michael contends that more developers should make time to develop or work on open source software. "I've always wanted to give a sort of open source cheerleader talk at one of these conferences. It's so easy, there's no reason everyone can't do it."&lt;/p&gt;

&lt;p&gt;Michael is equally a programmer and a designer. From an early age he had a passion for both computing and gaming, as well as drawing. "I really enjoyed cartooning. I used to do dead-on &lt;a href="http://www.penny-arcade.com/comic/"&gt;Penny Arcade&lt;/a&gt; art style as well as a decent anime style. My freshman year of college I had a webcomic called 'Fun With Sharpies' that were just hastily drawn Sharpie comics." He has even contemplated starting a weekly webcomic for Intridea. &lt;/p&gt;

&lt;p&gt;As a designer, he laments the lack of design talent in the open source community. "Apple has a monopoly on pretty graphics with a POSIX shell (though the new Ubuntu is nice). I'd love to find a way to encourage more designers to get involved with open source and make things that cause Cupertino to be jealous instead of the other way around." Michael admits that although he makes every attempt to use open-source software, he still uses proprietary software. Mac OS X is his primary operating system due largely to the availability of Adobe's design tools.  Michael does his best to try to bridge the gap between designers and the open source community; "I've created some open source projects with a UI, like my &lt;a href='https://chrome.google.com/extensions/detail/omijijcbapdmibhiocmmlonegoehgigb'&gt;Twitter client for Google Chrome&lt;/a&gt;, but I'd like to do more."&lt;/p&gt; He notes a barrier to entry for open source design: "I think that coders can understand the open source process more easily. We deal with version control and team development all the time, but designers aren't used to that. There needs to be a channel of communication and encouragement."

&lt;p&gt;A good example of Michael's exceptional talent as both designer and developer can be seen in his RailsConf 2010 presentation, &lt;a href="http://www.slideshare.net/mbleigh/the-present-future-of-oauth"&gt;"The Present Future of OAuth"&lt;/a&gt;. "It's a subject that lots of people find confusing and boring, so making the slides fun helped keep it lively and explain things in simpler terms." He enjoyed working with simple illustrations styled after the &lt;a href=
http://www.escapistmagazine.com/videos/view/zero-punctuation"&gt;Zero Punctuation&lt;/a&gt; reviews. "Embracing constraints (like block people with circles for hands and logos for heads) can be really rewarding. My favorite slide is the one where OAuth 1.0 is looking down at the ground... I feel like it conveys a dejected emotion really well; getting emotion to translate within such constraints is a fun challenge."&lt;/p&gt;

&lt;p&gt;&lt;center&gt;
&lt;a href="http://www.slideshare.net/mbleigh/the-present-future-of-oauth"&gt;
&lt;img src="http://img.skitch.com/20100617-m66xrk9mt5bqq5syjub5k8716.jpg" /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;/p&gt;

&lt;p&gt;Michael has given a number of presentations at conferences around the world. But, surprisingly, he's a pretty shy and timid guy. "I'm not the most extroverted guy, I love to meet new people but I'm not always great at striking up conversations. That's why I love speaking at conferences." He hopes to be able to speak as early as possible at the conference so that he'll have a "jumping off point" for conversation. Michael has always enjoyed speaking; he was a member of the debate team in high school where he grew up in Olathe, KS and participated in mock trial in college at Georgia Tech.&lt;/p&gt;

&lt;div style='float: right; padding-left:20px'&gt;&lt;img src="http://img.skitch.com/20100617-rwp6n71kn9d74dxyb9jydbpa5.jpg" width="350px" title='Michael &amp; Morgan'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Although Michael is well known for his open source contributions, he spends most of his time working on internal products and client work at Intridea. He most enjoys working on products; "I have all these ideas in my head and it kills me not to be constantly making them a reality." In the coming year, Michael will be leading a structured team of our internal product developers to help bring innovative ideas to fruition. &lt;/p&gt;

&lt;p&gt;Though it may seem that he never stops working, Michael has a great life outside of the office too. He recently married his high school sweetheart. "Morgan sat next to me in a history class my junior year for reasons beyond even her understanding. I already liked her, but was too shy to say anything." Michael was pretty surprised when she agreed to go to the movies with him for the first time. "We went to see 'The Mothman Prophecies'. I was so inexperienced with dating that I didn't know that I should have picked her up and that there should have been dinner involved." But as fate would have it, she fell in love with him despite his lack of knowledge in courtship. Now he is ecstatic to be married to his "best friend"; the brilliant woman who reads manga and plays video games with him and loves zombies even more than he does. They are under contract for their first house, a loft in downtown Kansas City, and he says that one of the first things they are going to do is "get a 6'x4' matisse-style artwork of the Left 4 Dead zombies made to hang in the new loft."&lt;/p&gt;

&lt;div style='float: left; padding-right:20px'&gt;&lt;img src="http://img.skitch.com/20100617-tud1r4wxqaw95wjk883jwuykkt.jpg" width="350px" title='Michael &amp; Morgan's Wedding - Zoey trapped in veil'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;He speaks so highly of his wife that it might be hard to believe there is another woman in his life that he adores: his Pomeranian/Papillon mix dog, Zoey. "She is 10 pounds, and she acts more like a stuffed animal than a dog. She warms my feet while I code."&lt;/p&gt;

&lt;p&gt;Michael and his wife enjoy watching movies, especially going to the movie theater. "I will often want to go to the movies (and drag Morgan there) for its own sake, not because there's anything out I even remotely want to see. There's something about setting everything else aside and just experiencing someone else's story for a few hours. Watching movies at home there are too many distractions." He also enjoys "standup comedy and concerts in seedy bars." His favorite artist is Ben Folds, and he has been to seven of his shows (eight in July and five with his wife). He jokes, "Ben Folds Five was my first concert ever, back in the mid '90s. So my musical taste has really evolved."&lt;/p&gt;

&lt;p&gt;Maybe it's true that his musical taste hasn't evolved, but Michael has certainly evolved as both a designer and developer. He has made great use of his time at Intridea between his open source contributions, his product ideas and developments, and the speed and accuracy with which he can develop client projects. It's no mistake that he so widely known and appreciated in our community. He works relentlessly to follow through on projects, and has a passion for quality and excellence that is hard to match. What can I say, we love him!&lt;/p&gt;


&lt;p&gt;&lt;i&gt;This post is part of a weekly series, called &lt;a href="http://intridea.com/tag/insider"&gt;"Intridea Insider"&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/uMylj-QRhco" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/intridea-insider-michael</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Michael Bleigh</name>
    </author>
    <id>tag:www.intridea.com,2010-06-14:307</id>
    <published>2010-06-14T00:19:00-04:00</published>
    <updated>2010-06-14T00:19:00-04:00</updated>
    <category term="open source" />
    <category term="announcement" />
    <category term="gem" />
    <category term="json" />
    <category term="yajl" />
    <category term="multi_json" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/3YujLZMWZFY/multi-json-the-swappable-json-handler" rel="alternate" type="text/html" />
    <title>MultiJSON: The swappable JSON handler</title>
    <content type="html">&lt;p&gt;&lt;span class="caps"&gt;JSON&lt;/span&gt; has become ubiquitous. From Facebook and Twitter both declaring it to be the preferred (and in some cases only) option for &lt;span class="caps"&gt;API&lt;/span&gt; access to the new OAuth 2.0 draft spec declaring that &lt;span class="caps"&gt;JSON&lt;/span&gt; is the only acceptable response format for OAuth token responses, &lt;span class="caps"&gt;JSON&lt;/span&gt; is here to stay. What isn&amp;#8217;t ubiquitous, however, are people&amp;#8217;s preferred implementations.&lt;/p&gt;
&lt;p&gt;As library authors it is our duty to try to support as large a part of the community as possible and do so in a friendly manner. To that end, today we&amp;#8217;re releasing &lt;strong&gt;MultiJSON&lt;/strong&gt;, a simple library that allows you to seamlessly provide multiple &lt;span class="caps"&gt;JSON&lt;/span&gt; backends for your library with intelligent defaulting. Install with a simple &lt;code&gt;gem install multi_json&lt;/code&gt; and then get started like so:&lt;/p&gt;
&lt;pre name='code' class='ruby'&gt;require 'multi_json'

# Decode using default engine.
MultiJson.decode('{"abc":"def"}) # =&amp;gt; {"abc" =&amp;gt; "def"}

# Set an engine using a symbol.
MultiJson.engine = :active_support

# Encode using ActiveSupport
MultiJson.encode({:abc =&amp;gt; "def"}) # =&amp;gt; '{"abc":"def"}'&lt;/pre&gt;
&lt;p&gt;This gem is primarily for library authors, allowing you to use the best &lt;span class="caps"&gt;JSON&lt;/span&gt; available on the users&amp;#8217; systems without explicitly requiring one library over another. This way you can be sure that your &lt;span class="caps"&gt;JSON&lt;/span&gt; handling will work across implementations (e.g. JRuby) as well as requiring as little extra code as possible (the gem detects existing libraries before requiring more by default).&lt;/p&gt;
&lt;p&gt;Engines supported by default are:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;code&gt;yajl-ruby&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;json&lt;/code&gt; (gem)&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;active_support&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;json_pure&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We hope that this will make development of &lt;span class="caps"&gt;JSON&lt;/span&gt;-relying libraries a little bit less of a headache for library authors and users alike. The code is, as always, &lt;a href="http://github.com/intridea/multi_json"&gt;available on GitHub&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/3YujLZMWZFY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/multi-json-the-swappable-json-handler</feedburner:origLink></entry>
  <entry xml:base="http://www.intridea.com">
    <author>
      <name>Renae Bair</name>
    </author>
    <id>tag:www.intridea.com,2010-06-10:303</id>
    <published>2010-06-10T00:38:00-04:00</published>
    <updated>2010-06-10T00:38:00-04:00</updated>
    <category term="insider" />
    <category term="chris selmer" />
    <link href="http://feeds.intridea.com/~r/intridea/~3/EwkWqEGe8Tk/intridea-insider-chris" rel="alternate" type="text/html" />
    <title>Intridea Insider: Chris Selmer</title>
    <content type="html">&lt;div style="float:left; padding-right: 20px;"&gt;&lt;a href="http://intridea.com/about/people/chris"&gt;
 &lt;img src="http://s3.amazonaws.com/intridea.com/production/photos/10/original.jpg" width="275" title='Chris'&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;He runs really, really fast. He can live without sleep. And his first memory of a computer comes from playing &lt;a href="http://en.wikipedia.org/wiki/Zork"&gt;Zork&lt;/a&gt; in the 4th grade. He's our Senior Partner, Co-Founder and valiant leader of client services. Meet &lt;a href="http://intridea.com/about/people/chris"&gt;Chris Selmer&lt;/a&gt; in this week's Intridea Insider.&lt;/p&gt;

&lt;p&gt;Chris graduated from college with a degree in Mathematics, but not before considering several different majors, including Exercise Science, Chemistry and Physics. Although his first job during (and after) college was writing PHP for a web design studio in DC, he wasn't formally trained in web development. "I minored in CS, but everything I learned for the web was self-taught."&lt;/p&gt; 

&lt;p&gt;Chris discovered the world of Ruby while he was at an Intro to Ajax class, offered by the &lt;a href="http://pragmaticstudio.com/"&gt;Pragmatic Studio&lt;/a&gt;. "A lot of people were talking about how Ruby had great ajax shortcuts built in." His interest was piqued and shortly thereafter he began using Ruby on Rails professionally; "I started doing some Ruby on Rails work and some ColdFusion development for the Academic Technologies department at &lt;a href="http://www.gwu.edu/"&gt;George Washington University&lt;/a&gt;. Our department was in charge of classroom technology and researching innovative new ways to use technology in the classrooms." &lt;/p&gt;

&lt;p&gt;His position at GWU was able to benefit the Ruby community in DC; when he met &lt;a href="http://intridea.com/about/people/naffis"&gt;Dave Naffis&lt;/a&gt;, (also a co-founder and Senior Partner at Intridea), Dave was looking for a place to host the &lt;a href="http://www.meetup.com/dcruby/"&gt;DCRUG&lt;/a&gt;. Chris was able to find him a space at GWU and he has been helping to organize the DCRUG event ever since, with help from fellow Intridean, &lt;a href="http://intridea.com/about/people/joe"&gt;Joe Grossberg&lt;/a&gt;. &lt;/p&gt;

&lt;div style='float: right; padding-left:20px'&gt;&lt;img src="http://img.skitch.com/20100604-r549mkeny4r6srijh57drf83hk.jpg" width="275px" title='Chris &amp; Dogs'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Intridea was in its infancy at the time Chris came on board in 2007. He spent the majority of his time programming in Ruby on Rails for clients, but at the same time he was working hard to bring in some big, new projects. It wasn't long before he found himself running the services wing of the company. In 2007 Intridea was a start-up company of only eight employees. We've since grown to nearly 50 employees in three years, and Chris played a pivotal role in that growth by acquiring and managing a lot of projects from awesome clients. &lt;/p&gt;

&lt;p&gt;Chris is known as the "Intridean that never sleeps". He makes time to nap and eat when he must, but he's a work-force to be reckoned with. "I tend to do my most productive work from around 11pm - 2am, just because there are fewer distractions that demand my attention. So I'll often sleep 2-5 hours at night and then have a couple of 20-minutes naps during the day." Most of us marvel at how he can be so productive on so little sleep, but Chris's Mom (and fellow Intridean), &lt;a href="http://intridea.com/about/people/kathleen"&gt;Kathleen Selmer&lt;/a&gt;, reveals that he never slept much as a child either; "He was always too busy to sleep. In high school, he ran cross country and indoor/outdoor track, and was captain of the teams from sophomore-senior years. He won several state championships. He was also involved in a few school plays." She also raves about how intelligent Chris is; " Chris was always an avid reader from the time he started to read. I would say he found school unchallenging.  He got good grades, but didn't have to work too hard for them. He relied on a great recall of information." &lt;/p&gt;

&lt;p&gt;Chris was born at home in Green Meadows, Maryland with the assistance of a midwife and is the oldest of four children. He spent a good portion of his youth playing with his brothers and sister on their 6 acres of land in Pennsylvania. "About half of our land was wooded, so we spent lots of time making tree forts and running around wild." Chris now lives in Takoma Park, MD. He prefers to work in his basement office, where his Mac Pro lives. He met his wife, Stephanie, on &lt;a href="http://www.match.com"&gt;Match.com&lt;/a&gt;; "She was the first person I contacted, and we had a near-instant connection. She is really awesome." Stephanie works at NIH and is pursuing a Masters in Public Health at College Park.  In addition, she finds time to take care of their two dogs, three cats and her husband. &lt;/p&gt;

&lt;div style='float: left; padding-right:20px'&gt;&lt;img src="http://img.skitch.com/20100604-jkgpn14qae6hjkftw3ny5crge2.jpg" width="300px" title='Chris &amp; Stephanie'&gt;
&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Before I sat down with Chris for this interview, several fellow Intrideans wanted me to ask Chris whether he misses coding now that he's in a management role and a Senior Partner; "I miss getting in the zone and having hours pass by just writing code." Even though Chris isn't doing much coding anymore these days, he enjoys being able to kickstart meaningful projects, like &lt;a href="http://traduiapp.com/"&gt;Tradui&lt;/a&gt; and &lt;a href="http://oilreporter.org/"&gt;Oil Reporter&lt;/a&gt;. Plus, he likes solving client problems; "Solving problems was one of the things I really liked about coding, but it's just done on a different scale now."&lt;/p&gt;

&lt;p&gt;Chris has a side dream of one day being able to buy old houses and fix them up for a living. He got a chance to do one a few years ago and looks forward to doing it again some day. But until that days comes, we need him here at Intridea, as our unwavering, super-human battle-hardened leader of client services.&lt;/p&gt;


&lt;p&gt;&lt;i&gt;This post is part of a weekly series, called &lt;a href="http://intridea.com/tag/insider"&gt;"Intridea Insider"&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/intridea/~4/EwkWqEGe8Tk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://intridea.com/posts/intridea-insider-chris</feedburner:origLink></entry>
</feed>
