<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
  <channel>
    <title>Planet Ruby on Rails Feed</title>
    <description>Combines top rails blogs feeds into one.</description>
    <link>http://feeds.feedburner.com/PlanetRails</link>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PlanetRails" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Upcoming Pathfinder Appearances</title>
      <description>&lt;div class="right"&gt;
&lt;a href="http://www.windycityrails.org"&gt;&lt;br /&gt;
&lt;img src="http://windycityrails.org/images/badge_speaker.png" alt="" border="0" width="" height="" class="right"/&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;br clear="all"/&gt;&lt;br /&gt;
&lt;span class="right" style="font-size: smaller"&gt;&lt;br /&gt;
&lt;a href="http://www.windycityrails.org"&gt;Windy City Rails is September 12, 2009&lt;/a&gt;&lt;br /&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Here are a couple of upcoming Ruby and Rails-based appearances by Pathfinder personnel:&lt;/p&gt;
&lt;p&gt;On Tuesday, June 23, Noel Rappin (referring to himself in the third person) will be the guest speaker at &lt;a href="http://www.chicagoruby.org/articles/2009/05/26/rails-test-prescriptions-downtown/"&gt;the Chicago Ruby.org monthly meeting&lt;/a&gt;. The meeting starts at 6:00 at Chicago Ruby's downtown loop meeting location, see the link for details. The working title of my talk is "I'd Like To Start Testing. Now What?" and it'll be an informal discussion of testing tools and good practice.&lt;/p&gt;
&lt;p&gt;The schedule for &lt;a href="http://windycityrails.org/"&gt;WindyCityRails&lt;/a&gt; was announced this week. The conference is September 12, 2009 at the Westin Chicago River North. John McCaffrey from Pathfinder will be presenting "Super-easy PDF Generation with Prawn and Prawnto", and I'll be up there with "How To Test Absolutely Anything". &lt;/p&gt;
&lt;p&gt;Other speakers include Ryan Singer from 37signals, Ben Scofield from Viget Labs, and Yehuda Katz from Engine Yard.&lt;/p&gt;
&lt;p&gt;Registration through August 1st is $99, there are a couple of tutorial sessions also available for purchase.&lt;/p&gt;
&lt;p&gt;This was a very well-run regional conference last year, and I'm excited for this year's edition. Hope to see you there.&lt;/p&gt;
&lt;p&gt;&lt;hr&gt;
&lt;a href="http://www.pathf.com/"&gt;Pathfinder is a software development firm. Hire us to build complex software that's easy to use.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BBkPMlbxbbQsve1PWV2jWh8HbQA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BBkPMlbxbbQsve1PWV2jWh8HbQA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BBkPMlbxbbQsve1PWV2jWh8HbQA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BBkPMlbxbbQsve1PWV2jWh8HbQA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 19 Jun 2009 14:14:15 +0000</pubDate>
      <link>http://www.pathf.com/blogs/2009/06/upcoming-pathfinder-appearances/</link>
      <guid>5a72239d468c73fef77e9ea4d2b54013</guid>
    </item>
    <item>
      <title>Double Shot #478</title>
      <description>&lt;div class='snap_preview'&gt;&lt;br /&gt;&lt;p&gt;The best thing about working for a global company is waking up to find some things already done.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://pagehand.com/"&gt;Pagehand&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Interesting-looking new word processor for OS X, using PDF as its storage format.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://faithfulgeek.org/ruby-on-rails-101-updated.html"&gt;Ruby on Rails 101&lt;/a&gt;&lt;/strong&gt; &amp;#8211; A collection of links for people just starting out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://nex-3.com/posts/83-sass-and-less"&gt;Sass and Less&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Looks like Sass is going to pick up some of the ideas that people liked from Less.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://tomayko.com/src/rack-cache/"&gt;rack-cache&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Drop-in HTTP caching for your Rails (and other Rack-based) applications.&lt;/li&gt;
&lt;/ul&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/afreshcup.wordpress.com/974/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/afreshcup.wordpress.com/974/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/afreshcup.wordpress.com/974/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/afreshcup.wordpress.com/974/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/afreshcup.wordpress.com/974/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/afreshcup.wordpress.com/974/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/afreshcup.wordpress.com/974/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/afreshcup.wordpress.com/974/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/afreshcup.wordpress.com/974/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/afreshcup.wordpress.com/974/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=afreshcup.com&amp;blog=5073669&amp;post=974&amp;subd=afreshcup&amp;ref=&amp;feed=1" /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iO0uxJ_wTcvSsztNOZyWKEl0mvM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iO0uxJ_wTcvSsztNOZyWKEl0mvM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iO0uxJ_wTcvSsztNOZyWKEl0mvM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iO0uxJ_wTcvSsztNOZyWKEl0mvM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 19 Jun 2009 10:21:05 +0000</pubDate>
      <link>http://afreshcup.com/2009/06/19/double-shot-478/</link>
      <guid>c20d3a061bdd396977c067b389a2504a</guid>
    </item>
    <item>
      <title>Using GitHub Through Draconian Proxies</title>
      <description>&lt;p&gt;Great blog post. Useful whether you&amp;#8217;re on Unix or Windows.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://returnbooleantrue.blogspot.com/2009/06/using-github-through-draconian-proxies.html"&gt;Using GitHub Through Draconian Proxies&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Thanks Jeff! (And sorry you&amp;#8217;re stuck behind a proxy :)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IEvf8VQLi2-IdwKg65NQpFqSHms/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IEvf8VQLi2-IdwKg65NQpFqSHms/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IEvf8VQLi2-IdwKg65NQpFqSHms/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IEvf8VQLi2-IdwKg65NQpFqSHms/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 19 Jun 2009 09:18:21 +0000</pubDate>
      <link>http://github.com/blog/446-using-github-through-draconian-proxies</link>
      <guid>236a9de0770b9d7aca52c3be861488f8</guid>
    </item>
    <item>
      <title>What value isn’t</title>
      <description>&lt;blockquote&gt;&lt;p&gt;"I have tried Campfire, and I'm still not quite sure why people pay for it. I think you can take simplicity too far personally. It could be replicated on a weekend (As was done at google with huddlechat) so I don't see the value proposition there." &lt;a href="http://news.ycombinator.com/item?id=618516"&gt;Source&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;With apologies to Mike Godwin, I like to think of the following as Nolker's Law: &lt;em&gt;As any technical discussion of a web 2.0 product grows longer, the probability of a claim that it can be built in a weekend approaches 1.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id="more-2780"&gt;&lt;/span&gt;&lt;br /&gt;
Inevitably, it's part of a larger claim: X is trivial to implement, therefore X is not valuable. You see variations on this argument everywhere: Netbooks are made of cheap components and yesterday's technology, therefore they're a fad. My 6 year old could paint that Rothko.&lt;/p&gt;
&lt;p&gt;For the last time:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; How expensive it is to build.&lt;br /&gt;
&lt;strong&gt;Value:&lt;/strong&gt; How much your customers will pay for it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://crave.cnet.co.uk/gadgets/0,39029552,49296926-6,00.htm"&gt;They're&lt;/a&gt; &lt;a href="http://www.fuckedcompany.com/"&gt;not&lt;/a&gt; &lt;a href="http://crave.cnet.co.uk/gadgets/0,39029552,49296926-8,00.htm"&gt;even&lt;/a&gt; &lt;a href="http://www.excite.com/"&gt;close&lt;/a&gt; &lt;a href="http://www.pathfinder.com/pathfinder/index.html"&gt;to&lt;/a&gt; &lt;a href="http://geocities.yahoo.com/"&gt;the&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/TheGlobe.com"&gt;same&lt;/a&gt; &lt;a href="http://uk.techcrunch.com/2006/11/24/boocom-to-relaunch/"&gt;thing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;hr&gt;
&lt;a href="http://www.pathf.com/"&gt;Pathfinder is a software development firm. Hire us to build complex software that's easy to use.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NMQEgIVvolAZ99SptXG2lfBPrzQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NMQEgIVvolAZ99SptXG2lfBPrzQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NMQEgIVvolAZ99SptXG2lfBPrzQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NMQEgIVvolAZ99SptXG2lfBPrzQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 18 Jun 2009 16:56:38 +0000</pubDate>
      <link>http://www.pathf.com/blogs/2009/06/what-value-isnt/</link>
      <guid>fdca991fe68cc2b668f8ae8d5f3964b1</guid>
    </item>
    <item>
      <title>Anti anti frame busting</title>
      <description>&lt;div class='snap_preview'&gt;&lt;br /&gt;&lt;p&gt;In &lt;a href="http://coderrr.wordpress.com/2009/02/13/preventing-frame-busting-and-click-jacking-ui-redressing/"&gt;this post&lt;/a&gt; I presented a way to prevent a site you were (i)framing from frame busting out.  Jeff Atwood recently contacted me to see if I knew a way to get around the prevention (to prevent sites from framing &lt;a href="http://stackoverflow.com"&gt;stackoverflow.com&lt;/a&gt;), which of course I didn&amp;#8217;t, but I told him I&amp;#8217;d think about it and see if I could come up with something.  A week later I had come up with a few ideas but none actually worked.&lt;/p&gt;
&lt;p&gt;But, due to some motivation from his &lt;a href="http://www.codinghorror.com/blog/archives/001277.html"&gt;post today&lt;/a&gt; (which links to my original post), I may have just come up with something.&lt;/p&gt;
&lt;pre name="code" class="javascript"&gt;

  if (top != self) {
    top.location.replace(&amp;#039;http://www.google.com/&amp;#039;)
    alert(&amp;#039;busting you, please wait...&amp;#039;)
  }
&lt;/pre&gt;
&lt;p&gt;It&amp;#8217;s so stupid simple, but it seems to actually work.  If you present an &lt;code&gt;alert()&lt;/code&gt; box immediately after changing &lt;code&gt;top.location&lt;/code&gt; you prevent the browser from running any more JS, either from your framed site or from the framing site.  But you &lt;b&gt;don&amp;#8217;t&lt;/b&gt; prevent the browser from loading the new page.  So as long as the alert box stays up for a few seconds until the browser has loaded enough of the new page to stop script running on the old page, then the anti-framebusting code never runs and you successfully are busted out once the user clicks OK on the alert.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve just done a preliminary test of this in FF3 and IE7 and it worked in both.  So I&amp;#8217;m calling it, anti-anti-frame-busting is here!&lt;/p&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderrr.wordpress.com/718/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderrr.wordpress.com/718/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderrr.wordpress.com/718/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderrr.wordpress.com/718/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderrr.wordpress.com/718/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderrr.wordpress.com/718/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderrr.wordpress.com/718/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderrr.wordpress.com/718/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderrr.wordpress.com/718/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderrr.wordpress.com/718/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderrr.wordpress.com&amp;blog=1719123&amp;post=718&amp;subd=coderrr&amp;ref=&amp;feed=1" /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QCJtoxpsjo8W95E3E5YOApfceQI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QCJtoxpsjo8W95E3E5YOApfceQI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QCJtoxpsjo8W95E3E5YOApfceQI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QCJtoxpsjo8W95E3E5YOApfceQI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 18 Jun 2009 16:21:58 +0000</pubDate>
      <link>http://coderrr.wordpress.com/2009/06/18/anti-anti-frame-busting/</link>
      <guid>798129a1e7469a43232fed32922dec42</guid>
    </item>
    <item>
      <title>Double Shot #477</title>
      <description>&lt;div class='snap_preview'&gt;&lt;br /&gt;&lt;p&gt;Stay tuned&amp;#8230;I&amp;#8217;ll be releasing an ebook in a few days that may be of interest to Rails freelancers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://blog.phusion.nl/2009/06/17/phusion-passenger-223-released-bug-fix-edition/"&gt;Phusion Passenger 2.2.3 released &amp;#8211; Bug Fix Edition&lt;/a&gt;&lt;/strong&gt; &amp;#8211; A round of consolidation for Passenger.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2691"&gt;Poster&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Firefox addin for constructing and sending web service requests and analyzing the results.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://survey.hamptoncatlin.com/"&gt;Hampton&amp;#8217;s Ruby Survey 2009&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Your chance to make your voice heard in this completely unscientific survey of the Ruby community.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://webdesignledger.com/freebies/all-the-small-icons-youll-ever-need"&gt;All the Small Icons You&amp;#8217;ll Ever Need&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Roundup of links to 20+ icon sets.&lt;/li&gt;
&lt;/ul&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/afreshcup.wordpress.com/972/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/afreshcup.wordpress.com/972/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/afreshcup.wordpress.com/972/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/afreshcup.wordpress.com/972/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/afreshcup.wordpress.com/972/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/afreshcup.wordpress.com/972/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/afreshcup.wordpress.com/972/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/afreshcup.wordpress.com/972/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/afreshcup.wordpress.com/972/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/afreshcup.wordpress.com/972/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=afreshcup.com&amp;blog=5073669&amp;post=972&amp;subd=afreshcup&amp;ref=&amp;feed=1" /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YJQdBwNjXSZYwuw9RahS1KTyi_E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YJQdBwNjXSZYwuw9RahS1KTyi_E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YJQdBwNjXSZYwuw9RahS1KTyi_E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YJQdBwNjXSZYwuw9RahS1KTyi_E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 18 Jun 2009 10:25:17 +0000</pubDate>
      <link>http://afreshcup.com/2009/06/18/double-shot-477/</link>
      <guid>aca88d6c3156992565cf9ef7fd77e85c</guid>
    </item>
    <item>
      <title>JavaScript gotcha: storing objects in an associative array</title>
      <description>&lt;p&gt;I just ran into a tricky gotcha in JavaScript.&lt;/p&gt;


	&lt;p&gt;I was trying to store some objects in an associative array. Based on my experience with Java, Ruby, and other languages, I expected that given code like this:&lt;/p&gt;


&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td title="click to toggle" class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre&gt;&lt;span class="r"&gt;var&lt;/span&gt; dictionary = {};&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;var&lt;/span&gt; obj1 = {}; &lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;var&lt;/span&gt; obj2 = {};&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;dictionary[obj1] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;foo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;dictionary[obj2] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;p&gt;The result of &lt;code&gt;dictionary[obj1]&lt;/code&gt; would be ‘foo’ and &lt;code&gt;dictionary[obj2]&lt;/code&gt; would be ‘bar’.&lt;/p&gt;


	&lt;p&gt;This is not the case!&lt;/p&gt;


	&lt;p&gt;The problem is that JavaScript objects are not really hash tables. They’re associative arrays, and the key can &lt;em&gt;only&lt;/em&gt; be a String. When you insert an object into a associative array, &lt;code&gt;toString()&lt;/code&gt; is called and that is used as the key. Unfortunately, the default &lt;code&gt;toString&lt;/code&gt; implementation for JavaScript objects returns “[object Object]”...which is not only very unhelpful when debugging, but doesn’t provide you with a unique key for your associative array.&lt;/p&gt;


	&lt;p&gt;You can work around this problem by overriding &lt;code&gt;toString&lt;/code&gt;. Or you can figure out another way to associate your object with a value. D’oh!&lt;/p&gt;
          &lt;img src="http://feeds2.feedburner.com/~r/RailSpikes/~4/DScbpAz3dIw" height="1" width="1"/&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ec4xQrmdC7B4UU7pVzaB1xuLdHo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ec4xQrmdC7B4UU7pVzaB1xuLdHo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ec4xQrmdC7B4UU7pVzaB1xuLdHo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ec4xQrmdC7B4UU7pVzaB1xuLdHo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 17 Jun 2009 20:51:00 +0000</pubDate>
      <link>http://railspikes.com/2009/6/17/javascript-gotcha-storing-objects-in-an-associative-array</link>
      <guid>2d474770a15783143f8f8d937e174b20</guid>
    </item>
    <item>
      <title>How to learn a new programming language or framework</title>
      <description>&lt;p&gt;&lt;img src="http://www.pathf.com/blogs/wp-content/uploads/2009/06/bunny-tutorial.jpg" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; DISPLAY: inline; FLOAT: left; MARGIN: 2px; BORDER-LEFT: #000000 1px solid; WIDTH: 349px; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 238px" height="238" alt="bunny_tutorial.jpg" width="349"/&gt;While never untrue, it is more of a necessity now, that a programmer should know more than just one language or framework. After being a focussed Java/J2EE developer for a long time since college, in the last couple of years, I plunged into .NET, Ruby/Rails and then Javascript/prototype/jQuery etc and now onto groovy/grails. With name like Erlang, Scala, Compass, git, blueprint, flex flying around us everywhere, it can be overwhelming and we need a plan to pick, peruse, acquire them. Here is a list of things I do when learning a new skill.&lt;/p&gt;
&lt;p&gt; &lt;span id="more-2772"&gt;&lt;/span&gt;
&lt;p&gt;&lt;strong&gt;Start with Basics: Books, Tutorials etc.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes, getting hands dirty is the first thing. If you are "programmers don't read manuals" type and/or you know enough about the new language, just download and give it a ride. Or you can pick a book or two, read getting started tutorials and then give it a try. The gist is start relating what we learn to what we already know and ask questions. How can I upload file in the new framework, how do I do testing, how can I write library/reusable-code etc.&lt;/p&gt;
&lt;p&gt;All major language framework now-a-days have atleast 2 types of mailing lists: user and developer. It's a good idea to subscribe to user mailing list and start reading it from a few weeks or months ago depending on how fast the language is changing and how relevent the posts are to current version.&lt;/p&gt;
&lt;p&gt;All this may get you coding and get by for the day but you haven't really understood the framework. Fear not, here are a couple of things you can do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download and Peruse Example Apps&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Most frameworks come with an example application where it is being used to exhibit its strengths. If not, it shouldn't be difficult a reputed open-source project even if the framework itself if proprietory. This is a good place to learn best practicies and design patterns as it applies to that framework.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscribe to Bug Tracker&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bugs and new feature requests are a great way to learn about the the "other" side of a cool framework, the deficiencies that is. No quick tutorials focus on the internal nitty-gritty that we run into as soon as you start on a non-trivial project. The discussions that happen on whether something is a bug or a design choice becomes clear from this place. Again, not a bad idea to go a little back in timeline to read fixed bugs, and finished features.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscribe to Core mailing-list&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Peek into the future that is. Here is where the core maintainers discuss what is the next high priority items are and how to implement them. While it may be too early to contribute here, it is a place to learn some advanced stuff.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download and Peruse Source Code &amp; Tests&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This takes time but it has tremendous advantages. The code is the full truth. Besides good coding practices, it also helps us understand the undocumented features of a framework. And, if code is the full truch, tests are the key to that truth. Tests help us understand what was being achieved in a piece of code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pair and Ask Questions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pair with somebody who has had a head start with the new language. This can quickly give us the soft side tools: the efficiencies your pair spent time building and websites, blogs they use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;blogs/wiki/screencasts&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tutorials, API documentations, technical articles has always been there and are important. Blogs and Screencasts are even better since they are the most current and most applicable to current state of affairs with the language or framework. They are always&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blog your experience&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes, blogging about your experience will help us learn a new framework. Others who read your blog will point out what you have missed and point you in the right direction. It is also a place where you have documented your journey to refer back to.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Work for Consulting Company&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No, this is not entirely madeup &lt;img src='http://www.pathf.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /&gt; Keeping up with latest technologies are a survival strait for any consulting company and its employees. This is where we can meet other motivated folks with different interests and keep up with what is new out there. With plethora of new languages and frameworks coming and going each day, you have to be able to pick winners to add to your tool box. Blogs, RSS feeds help but a lunch time remarks from experienced gurus can go a lot further.&lt;/p&gt;
&lt;p&gt;Photo Credit: &lt;a href="http://www.flickr.com/photos/danielvoyager/"&gt;Daniel Voyager&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;hr&gt;
&lt;a href="http://www.pathf.com/"&gt;Pathfinder is a software development firm. Hire us to build complex software that's easy to use.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W5-sdpNdeFnvkJbLrvsCn3ALdSs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W5-sdpNdeFnvkJbLrvsCn3ALdSs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W5-sdpNdeFnvkJbLrvsCn3ALdSs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W5-sdpNdeFnvkJbLrvsCn3ALdSs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 17 Jun 2009 16:03:10 +0000</pubDate>
      <link>http://www.pathf.com/blogs/2009/06/how-to-learn-a-new-programming-language-or-framework/</link>
      <guid>8cd2dab3570fec83ed9dc1a8470d6047</guid>
    </item>
    <item>
      <title>Double Shot #476</title>
      <description>&lt;div class='snap_preview'&gt;&lt;br /&gt;&lt;p&gt;It always feels good to actually *deploy* code.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://www.railsmentors.org/"&gt;Rails Mentors&lt;/a&gt;&lt;/strong&gt; &amp;#8211; The latest project sponsored by RailsBridge seems to be off to a good start.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://weblog.rubyonrails.org/2009/6/16/minor-changes-to-the-rails-security-policy"&gt;Minor Changes to the Rails Security Policy&lt;/a&gt;&lt;/strong&gt; &amp;#8211; And a reminder that you should be subscribed to the security announcement list.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://blog.zenspider.com/2009/06/hoe-2-electric-boogaloo.html"&gt;Hoe 2, Electric Boogaloo&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Something of a sales pitch for why you should be using Hoe to build gems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://effectif.com/articles/testing-rails-with-rack-test"&gt;Testing Rails with Rack::Test&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Just in case you want to
&lt;li&gt;learn yet another testing tool.&lt;/li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://applyhq.com/"&gt;ApplyHQ&lt;/a&gt;&lt;/strong&gt; &amp;#8211; New SAAS site for freelancers hunting for work.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://lesscss.org/index.html"&gt;Less&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Mixin and compiler for CSS files. Some of the same ideas as SASS, but I like that it doesn&amp;#8217;t make you learn an entirely new syntax.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://github.com/dmitryame/echowaves/tree/master"&gt;EchoWaves&lt;/a&gt;&lt;/strong&gt; &amp;#8211; &amp;#8220;Open source Social Group Chat&amp;#8221; in Rails. You can &lt;strong&gt;&lt;a href="http://www.echowaves.com/"&gt;see it in action&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/afreshcup.wordpress.com/970/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/afreshcup.wordpress.com/970/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/afreshcup.wordpress.com/970/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/afreshcup.wordpress.com/970/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/afreshcup.wordpress.com/970/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/afreshcup.wordpress.com/970/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/afreshcup.wordpress.com/970/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/afreshcup.wordpress.com/970/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/afreshcup.wordpress.com/970/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/afreshcup.wordpress.com/970/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=afreshcup.com&amp;blog=5073669&amp;post=970&amp;subd=afreshcup&amp;ref=&amp;feed=1" /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/F9IpRe6rVZuLpkhimNlHA3Yd8Gc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F9IpRe6rVZuLpkhimNlHA3Yd8Gc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/F9IpRe6rVZuLpkhimNlHA3Yd8Gc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F9IpRe6rVZuLpkhimNlHA3Yd8Gc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 17 Jun 2009 10:55:05 +0000</pubDate>
      <link>http://afreshcup.com/2009/06/17/double-shot-476/</link>
      <guid>f1fec83845a3f8a18144f2e81f97ea55</guid>
    </item>
    <item>
      <title>Join Us at Windy City Rails 2009</title>
      <description>&lt;p&gt;I’m glad to announce that I’ll be conducting the morning tutorial session at the upcoming &lt;a href="http://windycityrails.org"&gt;Windy City Rails Conference&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;It’s a 3-hour tutorial called &lt;a href="http://windycityrails.org/sessions"&gt;&lt;span class="caps"&gt;REST 101&lt;/span&gt;: Best Practices for Rails Developers&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;If you’re relatively new to Rails, especially if you’re currently a .NET or Java developer who’s trying to figure out how to really get started with Rails, this tutorial is for you. If you’re a more seasoned developer, then you should still attend the conference.  There’s a great lineup of speakers, all-day coding sessions, and more.&lt;/p&gt;


	&lt;p&gt;The conference will be held on September 12, 2009 in downtown Chicago. If you register now, you can get the early bird rate of $99 for conference admission or &lt;a href="http://windycityrails.org/register"&gt;just $199 for the conference with one tutorial session&lt;/a&gt;.  For those who might not have heard of the annual Windy City Rails conference before, the conference donates all profits to local charities, like the &lt;a href="http://www.chicagosfoodbank.org"&gt;Greater Chicago Food Depository&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;So &lt;a href="http://windycityrails.org/register"&gt;register now&lt;/a&gt; for the conference and/or tutorial.  We’ll learn a lot, have fun, and support a good cause all in one day.&lt;/p&gt;


	&lt;p&gt;Questions?  Leave a comment below and I’ll try to respond quickly.&lt;/p&gt;


	&lt;p&gt;Thanks!  See you there!&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds2.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds2.feedburner.com/~ff/SoftiesOnRails?i=WbxQ84v_kgY:3RsFYthHB1Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds2.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds2.feedburner.com/~ff/SoftiesOnRails?i=WbxQ84v_kgY:3RsFYthHB1Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds2.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds2.feedburner.com/~ff/SoftiesOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds2.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds2.feedburner.com/~ff/SoftiesOnRails?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds2.feedburner.com/~r/SoftiesOnRails/~4/WbxQ84v_kgY" height="1" width="1"/&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/e8NyNBbAXgGaxkFfHwU0gWe4PJA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e8NyNBbAXgGaxkFfHwU0gWe4PJA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/e8NyNBbAXgGaxkFfHwU0gWe4PJA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e8NyNBbAXgGaxkFfHwU0gWe4PJA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 17 Jun 2009 03:27:00 +0000</pubDate>
      <link>http://www.softiesonrails.com/2009/6/17/join-us-at-windy-city-rails</link>
      <guid>1ba68ec128214c6bac032c1c7d31a9e0</guid>
    </item>
    <item>
      <title>5 things I can do with my windows mobile phone that you can’t do with your iPhone</title>
      <description>&lt;div class="right"&gt;&lt;img class="alignright size-full wp-image-2718" title="samsung_blackjack2" src="http://www.pathf.com/blogs/wp-content/uploads/2009/06/samsung_blackjack2_lp.jpg" alt="samsung_blackjack2" width="250" height="285" /&gt;&lt;/div&gt;
&lt;div&gt;After playing with my friend's iPhone for awhile, and using the company phone for testing out our iPhone applications, I started to get really jealous of how cool it is, and how uncool my samsung windows mobile phone seems by comparison.&lt;/div&gt;
&lt;div&gt;The more I used the iPhone, the more I got upset at my windows phone and started demanding "Why can't I do this on my phone?", and the more I found that there were apps out there that I didn't even know existed, as one of big problems with the windows platform is that its not easy to find good apps.&lt;/div&gt;
&lt;div&gt;So here's my take on how to make your windows phone better, and what it can do for now that the iPhone can't do.&lt;/div&gt;
&lt;div&gt;&lt;span id="more-2714"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Powerful add on applications that really improve my phone:&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.fring.com/" target="_blank"&gt;&lt;img class="attachment-thumbnail" src="http://www.pathf.com/blogs/wp-content/uploads/2009/06/fring.png" alt="" width="150" height="74" /&gt;&lt;/a&gt; &lt;a href="http://www.fring.com/" target="_blank"&gt;Fring &lt;/a&gt;(IM/gmail/twitter all in one tool)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/mobile/" target="_blank"&gt;&lt;img class="attachment-thumbnail" src="http://www.pathf.com/blogs/wp-content/uploads/2009/06/latitude-48x48.gif" alt="" width="48" height="48" /&gt;&lt;/a&gt; &lt;a href="http://www.google.com/mobile/" target="_blank"&gt;Google mobile&lt;/a&gt; tools (maps, gmail, reader, docs)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.evernote.com/" target="_blank"&gt;&lt;img class="attachment-thumbnail" src="http://www.pathf.com/blogs/wp-content/uploads/2009/06/evernote.gif" alt="" width="150" height="39" /&gt;&lt;/a&gt; &lt;a href="http://www.evernote.com/" target="_blank"&gt;Evernote&lt;/a&gt; (pic/audio/video/text notes that you can sync easily)&lt;/li&gt;
&lt;li&gt;&lt;img class="alignnone size-full wp-image-2748" title="dashwire" src="http://www.pathf.com/blogs/wp-content/uploads/2009/06/dashwire.jpg" alt="dashwire" width="207" height="85" /&gt; &lt;a href="http://www.dashwire.com" target="_blank"&gt; &lt;/a&gt;&lt;a href="http://www.dashwire.com" target="_blank"&gt;DashWire &lt;/a&gt;(sync all of your phone data)&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;What my phone can do that an iPhone can't:&lt;/strong&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Tether **&lt;/li&gt;
&lt;li&gt;Run more than one app at a time (background processing)&lt;/li&gt;
&lt;li&gt;Support multiple browsers (IE, &lt;a href="http://www.opera.com/mini/" target="_blank"&gt;Opera&lt;/a&gt;, &lt;a href="http://www.skyfire.com/" target="_blank"&gt;skyfire&lt;/a&gt;, &lt;a href="http://www.torchmobile.com/" target="_blank"&gt;Iris&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Multimedia messaging **&lt;/li&gt;
&lt;li&gt;Use a storage card for music, pics, etc&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;** While there are plans for the iPhone to support tethering and multimedia messaging, AT&amp;T has not yet announced when it will be available.  (whereas I am writing this on the train right now, tethered to my phone, with just a basic data plan).  So I understand that it will be coming soon to the iPhone, but is not available yet.&lt;/p&gt;
&lt;p&gt;To be honest I feel strongly that the first 2 are solid points, whereas the rest kind of quickly decrease in value, but I tried my best to come up with 5 things that mater, and I previously had 'Record Video' at #3, but now the iPhone will support that, so I had to take it out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tethering&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While I saw good reviews of the &lt;a title="Consumer Reports review" href="http://blogs.zdnet.com/cell-phones/?p=375" target="_blank"&gt;Samsung BlackJack&lt;/a&gt; when I was in the market for a new phone, tethering was the #1 reason I bought the phone instead of an iPhone. Being able to get on the internet with my laptop from anywhere, at anytime is a very big deal for me. I take the train to work, and often have to rush out the door at night in order to make the schedule, but its easy for me to keep working from the train, and finish up my emails, check-in/deploy code, connect to vpn, etc. and that flexibility is huge.&lt;/p&gt;
&lt;p&gt;As a consultant it means I can provide assistance to my customers in a more flexible manner. I recently had a customer contact me with an emergency deployment issue while I was on the road, about 20mins into a 4hour drive. While still on the phone with the customer I was able to plug my usb cable in, fire up my laptop, securely connect to their network, view the logs, debug the issue, change the code/configuration, check in to github, deploy and close out the tickets over the course of 2hours, all without losing connectivity (and picking up Wendy's on the way!).&lt;/p&gt;
&lt;p&gt;At one point I had tried to find telnet/ssh tools for my phone that would allow me to do some work from the phone directly, but I find its just easier to tether and use all the tools of my laptop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Running Multiple applications&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Being able to run multiple apps at once is more important than I originally realized, as it helps me to be much more productive and connected.&lt;/p&gt;
&lt;p&gt;Some recent use cases of mine are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Using Fring to IM a colleague about an important work email, while walking to the subway, drafting a reply to that email, opening a new tab in my browser to check the bus schedule (if its on time I'll take that instead of the train)&lt;/li&gt;
&lt;li&gt;Pulling up google Maps while on the road (while someone else is driving of course) to see the route to a friend's house, using Fring to IM that friend that we'll be there soon, and looking up events going on that weekend in the area.&lt;/li&gt;
&lt;li&gt;Talking on the speakerphone to a customer while looking for some info in email and google docs&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Mulitple Browsers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This might not be a very strong point as the browsing experience on the iPhone is pretty damn good, but I am happy to have:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Multiple browsers for different uses (IE for simple mobile browsing, Iris/skyfire for a more powerful eexperience)&lt;/li&gt;
&lt;li&gt;Flash video support in the browser (YouTube, Hulu), with Skyfire and Iris&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For me the real lesson here is the 'envy' similar to what I would experience when pairing with someone using intelliJ when I was on eclipse is something that can drive you to push your app along and find ways to make it better. For windows mobile users I think it takes a bit of effort to find the things that make the phone better, and its a shame that Microsoft hasn't made this process eaiser. Once the iPhone has tethering, and with lower prices coming, its much harder to justify buying anything other than an iPhone.&lt;/p&gt;
&lt;p&gt;&lt;hr&gt;
&lt;a href="http://www.pathf.com/"&gt;Pathfinder is a software development firm. Hire us to build complex software that's easy to use.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pkB6wZG241isjU3gbZo_0kahdsI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pkB6wZG241isjU3gbZo_0kahdsI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pkB6wZG241isjU3gbZo_0kahdsI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pkB6wZG241isjU3gbZo_0kahdsI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 17 Jun 2009 00:15:59 +0000</pubDate>
      <link>http://www.pathf.com/blogs/2009/06/5-things-i-can-do-with-my-windows-mobile-phone-that-you-cant-do-with-your-iphone/</link>
      <guid>e552e2defbf5f9ad6c0cc43f8ffc37aa</guid>
    </item>
    <item>
      <title>Hosting Python on GitHub?</title>
      <description>&lt;p&gt;If so, &lt;a href="http://github.com/dinoboff"&gt;dinoboff&lt;/a&gt; has you covered! &lt;a href="http://dinoboff.github.com/github-tools/"&gt;github-tools&lt;/a&gt; includes a &amp;#8220;PasteScript template, Paver tasks and Sphinx extension to setup a new package and easily host it on GitHub (including its documentation)&amp;#8221;.&lt;/p&gt;


&lt;div align="center"&gt;&lt;a href="http://dinoboff.github.com/github-tools"&gt;&lt;img src="http://img.skitch.com/20090617-ekctwqdyqtykqxqjy18hhpqs5u.png"/&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;Get it from &lt;a href="http://pypi.python.org/pypi/github-tools/"&gt;pypi&lt;/a&gt;&lt;/p&gt;


&lt;pre&gt;
easy_install github-tools
&lt;/pre&gt;

	&lt;p&gt;Or &lt;a href="http://github.com/dinoboff/github-tools"&gt;GitHub&lt;/a&gt;:&lt;/p&gt;


&lt;pre&gt;
git clone git://github.com/dinoboff/github-tools.git
cd github-tools
python setup.py install
&lt;/pre&gt;

	&lt;p&gt;Thanks &lt;a href="http://github.com/dinoboff"&gt;dinoboff&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_n6Yx2ABDyBAeJAhc9qeqd9it0E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_n6Yx2ABDyBAeJAhc9qeqd9it0E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_n6Yx2ABDyBAeJAhc9qeqd9it0E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_n6Yx2ABDyBAeJAhc9qeqd9it0E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 16 Jun 2009 18:16:38 +0000</pubDate>
      <link>http://github.com/blog/445-hosting-python-on-github</link>
      <guid>e6a5ef7d19954d4716b683aa8c49fac1</guid>
    </item>
    <item>
      <title>GWTUML - Just Enough UML for Wikis</title>
      <description>&lt;p&gt;&lt;img style="float:right;padding:10px" title="r243screenshot" src="http://www.pathf.com/blogs/wp-content/uploads/2009/06/r243screenshot.png" alt="r243screenshot" width="210" height="117" /&gt;Florian Mounier has spent the last six months developing GWT UML, a slick little UML diagramming tool written in, obviously, GWT. It's smooth, good looking, supports class, object and sequence diagrams. You can save your diagram as a url or export it to an SVG. You wouldn't try to do model driven development with it, but for embedding in a development wiki, this thing could rock.&lt;/p&gt;
&lt;p&gt;You can find more information at the &lt;a href="http://code.google.com/p/gwtuml/" target="_blank"&gt;google code project&lt;/a&gt; and check out a demo &lt;a href="http://1.latest.gwtuml.appspot.com/GWTUMLDrawer.html#Start" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;hr&gt;
&lt;a href="http://www.pathf.com/"&gt;Pathfinder is a software development firm. Hire us to build complex software that's easy to use.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ivBCZihauhYO7kj6qix8Y1B2hG0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ivBCZihauhYO7kj6qix8Y1B2hG0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ivBCZihauhYO7kj6qix8Y1B2hG0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ivBCZihauhYO7kj6qix8Y1B2hG0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 16 Jun 2009 15:27:22 +0000</pubDate>
      <link>http://www.pathf.com/blogs/2009/06/gwtuml-just-enough-uml-for-wikis/</link>
      <guid>89c452293a410f4027554553a9b7a7ab</guid>
    </item>
    <item>
      <title>37 Signals on Launching Softly</title>
      <description>&lt;p&gt;Over at &lt;a href="http://www.37signals.com/svn/posts/1759-why-its-wise-to-launch-softly"&gt;Signal vs. Noise&lt;/a&gt;, sound advice on the advantages of launching softly:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;... You don’t need a big bang – slow evolution is what you want. Unless you absolutely must “open wide,” abandon the mass introduction strategy. Instead, launch softly.&lt;/p&gt;
&lt;p&gt;Restaurants start off by serving friends and family before they invite the media.&lt;/p&gt;
&lt;p&gt;Movie studios use test screenings to fine tune movies. The people behind the scenes know that until you get into the test screenings and see what people really think, you just never know.&lt;/p&gt;
&lt;p&gt;Likewise, Jerry Seinfeld and Chris Rock try out jokes in small clubs before hitting arenas...&lt;/p&gt;
&lt;p&gt;Soft launching lets you tweak and revise. You get the word out there and you gauge interest. You know what works and what doesn’t.&lt;/p&gt;
&lt;p&gt;Plus, you get to make mistakes while you’re still in the shadows. Messing up in front of a smaller crowd means you’ll be better off when the bright lights eventually do shine upon you.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Dead on, as usual, from the authors of &lt;a href="https://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;.  It's what we advise clients and prospects, and when they follow it, their chances of success dramatically increase.&lt;/p&gt;
&lt;p&gt;&lt;hr&gt;
&lt;a href="http://www.pathf.com/"&gt;Pathfinder is a software development firm. Hire us to build complex software that's easy to use.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-yUwLBFYUXOFVvgct8aoRHkAyzc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-yUwLBFYUXOFVvgct8aoRHkAyzc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-yUwLBFYUXOFVvgct8aoRHkAyzc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-yUwLBFYUXOFVvgct8aoRHkAyzc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 16 Jun 2009 14:13:37 +0000</pubDate>
      <link>http://www.pathf.com/blogs/2009/06/37-signals-on-launching-softly/</link>
      <guid>aeaca002eed34b16d38694b104f46d05</guid>
    </item>
    <item>
      <title>Double Shot #475</title>
      <description>&lt;div class='snap_preview'&gt;&lt;br /&gt;&lt;p&gt;Just a couple of odds and ends.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://blog.codefront.net/2009/06/15/activerecord-rails-metal-too-many-connections/"&gt;Don’t kill your app when using ActiveRecord in Rails Metal, release your database connections&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Probably better is &amp;#8220;Don&amp;#8217;t use Active Record in Metal.&amp;#8221;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://www.binarylogic.com/2009/06/15/searchlogic-v2-officially-released/"&gt;Searchlogic v2 officially released&lt;/a&gt;&lt;/strong&gt; &amp;#8211; Dynamic named scopes and search support by magic.&lt;/li&gt;
&lt;/ul&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/afreshcup.wordpress.com/968/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/afreshcup.wordpress.com/968/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/afreshcup.wordpress.com/968/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/afreshcup.wordpress.com/968/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/afreshcup.wordpress.com/968/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/afreshcup.wordpress.com/968/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/afreshcup.wordpress.com/968/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/afreshcup.wordpress.com/968/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/afreshcup.wordpress.com/968/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/afreshcup.wordpress.com/968/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=afreshcup.com&amp;blog=5073669&amp;post=968&amp;subd=afreshcup&amp;ref=&amp;feed=1" /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2gvIYt1IWa-Zl9kLgB0eSdzey9A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2gvIYt1IWa-Zl9kLgB0eSdzey9A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2gvIYt1IWa-Zl9kLgB0eSdzey9A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2gvIYt1IWa-Zl9kLgB0eSdzey9A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 16 Jun 2009 10:28:51 +0000</pubDate>
      <link>http://afreshcup.com/2009/06/16/double-shot-475/</link>
      <guid>a541d4f8a688c325b8e9fb1230483727</guid>
    </item>
  </channel>
</rss>
