<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Sazbean &#187; Tech</title>
	<atom:link href="http://sazbean.com/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://sazbean.com</link>
	<description>Internet Marketing Strategy</description>
	<lastBuildDate>Thu, 02 Sep 2010 14:14:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>My Favorite WordPress Plugins</title>
		<link>http://sazbean.com/2010/08/19/my-favorite-wordpress-plugins/</link>
		<comments>http://sazbean.com/2010/08/19/my-favorite-wordpress-plugins/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 14:30:45 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[blog software]]></category>
		<category><![CDATA[content management systems]]></category>
		<category><![CDATA[content strategy]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[internet marketing]]></category>
		<category><![CDATA[internet marketing strategy]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[search engine optimization]]></category>
		<category><![CDATA[sitemaps]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugins]]></category>
		<category><![CDATA[world wide web]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=5736</guid>
		<description><![CDATA[
I&#8217;ve been using WordPress for several years now &#8212; I&#8217;m a big fan.  It makes it really easy to run a blog (or website) and it keeps getting better.  One of the advantages of WordPress is the ability to add your own plugins to improve the functionality of your site.  Here are some of my [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2010%2F08%2F19%2Fmy-favorite-wordpress-plugins%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2010%2F08%2F19%2Fmy-favorite-wordpress-plugins%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a title="Train Roundhouse - Tools by sazbean, on Flickr" href="http://www.flickr.com/photos/sazbean/4064699189/"><img class="alignleft" style="margin: 10px;" src="http://farm3.static.flickr.com/2577/4064699189_49e472de14_m.jpg" alt="Train Roundhouse - Tools" width="240" height="160" /></a>I&#8217;ve been using WordPress for several years now &#8212; I&#8217;m a big fan.  It makes it really easy to run a blog (or website) and it keeps getting better.  One of the advantages of WordPress is the ability to add your own plugins to improve the functionality of your site.  Here are some of my favorite WordPress plugins&#8230; (for now).<br />
<span id="more-5736"></span></p>
<h3>Disqus Comment System</h3>
<p>Disqus replaces the WordPress comment system with it&#8217;s own, which allows readers to see their comments across all the sites that use Disqus, and it has good spam collection.</p>
<h3>FD Feedburner Plugin</h3>
<p>FD Feedburner is a WordPress plugin which redirects all the blog&#8217;s feeds to Feedburner to utilize Feedburner&#8217;s stats and additional feed functionality.</p>
<h3>Google XML Sitemaps</h3>
<p>Google XML Sitemaps generates a XML site map to help search engines properly index your site.</p>
<h3>Lijit Search</h3>
<p>Lijit Search lets readers search the content on your site &#8212; can also support ads for your site (search and content-related).</p>
<h3>LinkWithin</h3>
<p>LinkWithin WordPress plugin displays other recommended stories on each article to help increase the amount of time people spend on your site.</p>
<h3>PostRank</h3>
<p>PostRank provides some social network tracking as well as top posts.  I use it to track the PostRank of each post which is also a metric used by the AdAge 150.</p>
<h3>Scribe</h3>
<p><a href="http://www.shareasale.com/r.cfm?b=229458&amp;u=386120&amp;m=25929&amp;urllink=&amp;afftrack=">Scribe</a> is a paid WordPress plugin (affiliate link) which quickly and easily provides recommendations to increase the search engine optimization for each post.  Requires a theme which supports it (I use the <a href="http://www.shareasale.com/r.cfm?b=210935&amp;u=386120&amp;m=24570&amp;urllink=&amp;afftrack=">Thesis paid theme</a> &#8212; affiliate link).</p>
<h3>ShareThis</h3>
<p>ShareThis provides links so your readers can share your content on various social networks.  Lets you control which social networks show up (and what order).  Provides stats for how many times that button is used.</p>
<h3>TweetMeme Retweet</h3>
<p>TweetMeme Retweet adds a button for each post so your readers can tweet a link to the article.  Counts the number of times the article has been tweeted (doesn&#8217;t always catch alternative ways to tweet the article).</p>
<h3>Wibiya Toolbar</h3>
<p>Wibiya Toolbar adds a bar at the bottom of your site which has links for sharing your content on social media, as well as a message (among other features).</p>
<h3>WordPress Database Backup</h3>
<p>WordPress Database Backup automates the backing up your blog&#8217;s database &#8212; can have it email a compressed copy or save to your server or computer.  Your theme along with your database are the key parts of your blog.  Having a backup of your database means you can recreate your blog if you have to.</p>
<h3>WP Greet Box</h3>
<p>WP Greet Box customize a message to your blog visitors depending on where they came from.  For example, ask visitors from Digg to Digg your post.</p>
<h3>WP Minify</h3>
<p>WP Minify WordPress plugin helps your blog run faster by combining and compressing javascript and CSS files to improve page load time.  I&#8217;ve seen a huge improvement since using this plugin.</p>
<h3>WP Super Cache</h3>
<p>WP Super Cache adds caching to your blog (which you can control) to make the pages load faster.  Site speed is now a consideration for Google&#8217;s PageRank.</p>
<p><strong>What are your favorite WordPress plugins?</strong></p>
<p><em>(photo by <a href="http://www.flickr.com/photos/sazbean/4064699189/">Sarah Worsham</a>)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2010/08/19/my-favorite-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Effective Web Hosting for Social Media Campaigns</title>
		<link>http://sazbean.com/2010/05/21/effective-web-hosting-for-social-media-campaigns/</link>
		<comments>http://sazbean.com/2010/05/21/effective-web-hosting-for-social-media-campaigns/#comments</comments>
		<pubDate>Fri, 21 May 2010 15:30:13 +0000</pubDate>
		<dc:creator>Guest Post</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Social Networks]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=5211</guid>
		<description><![CDATA[
This is a guest post from Chris Reynolds from WebHostingSearch.com, which provides web hosting listings &#38; ratings.
Today, social media sites have come to be a critical part of the world&#8217;s web surfing experience. Social media campaigns demand innovative and accommodating web hosting. Due to the variety of social media formats, from forums, weblogs, and podcasts [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2010%2F05%2F21%2Feffective-web-hosting-for-social-media-campaigns%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2010%2F05%2F21%2Feffective-web-hosting-for-social-media-campaigns%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-full wp-image-5214" style="margin: 10px;" title="server_JamisonJudd" src="http://sazbean.com/wp-content/uploads/2010/05/server_JamisonJudd.jpg" alt="" width="180" height="240" align="left" /><em>This is a guest post from Chris Reynolds from <a href="http://www.webhostingsearch.com">WebHostingSearch.com</a>, which provides <a href="http://www.webhostingsearch.com">web hosting</a> listings &amp; ratings.</em></p>
<p>Today, social media sites have come to be a critical part of the world&#8217;s web surfing experience. Social media campaigns demand innovative and accommodating web hosting. Due to the variety of social media formats, from forums, weblogs, and podcasts to wikis, web hosts have to be flexible and responsive to their clients&#8217; needs. A common thread among social networkings sites is the sharing and discussing of personal information, so any social media campaign must take this into account.<br />
<span id="more-5211"></span><br />
A successful social media campaign may generate a great deal of traffic. This means that <a href="http://en.wikipedia.org/wiki/Bandwidth">bandwidth</a> usage often is through the roof. So fast servers are a prerequisite to launching a social media effort. The demand for high bandwidth grows more critical everyday as different media elements are added to social media sites as well: applets, pictures, video, and instant messaging functionality all place extraordinary demands on today&#8217;s web hosts.</p>
<p>Responding to public interest is where web hosts have to excel. A targeted SM campaign will mean a dramatic increase in traffic as the public start responding to your message. This increases the risk of server overload, so web hosts must be proactive in accommodating high demand. Not just any site content will do, either. Timely content management is essential for not only attracting new users, but also for cementing long-term interest as well. A site that is seldom updated, poorly maintained, and/or languid and unamenable to suggestions will fail to generate and maintain substantial web traffic, the goal of any successful SM campaign.</p>
<p>Since content management is vital to social media, web hosts need to provide a variety of tools to assist with the installation and editing of web content. One outstanding software package that can aid in this regard is Drupal, which can assist individuals and enterprises with web publishing. Drupal&#8217;s built-in functions and free add-ons can assist with blogs, peer-to-peer networking, and file uploading. Another helpful instrument for web hosting is cPanel, which provides for layered administration, tight security, and a depth of features unavailable anywhere else on the market. This program is an invaluable toolkit for getting new sites up and off the ground, the most crucial phase of any SM campaign.</p>
<p>Having the right web host can make your social media campaign much more effective by handing whatever increase in traffic you&#8217;re able to achieve. And a good content management system will allow you to post and manage updated content to keep that traffic coming.</p>
<p><strong>With these tools and tips in mind, a potent social media effort is only a few clicks away! </strong></p>
<div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/jamisonjudd/2433102356/"><em><a rel="cc:attributionURL" href="http://www.flickr.com/photos/jamisonjudd/">(photo by jamisonjudd)</a> / <a rel="license" href="http://creativecommons.org/licenses/by/2.0/">CC BY 2.0</a></em></div>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2010/05/21/effective-web-hosting-for-social-media-campaigns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sazcast Episode 25 &#8211; iPad = Shiny Object or Game Changer?</title>
		<link>http://sazbean.com/2010/04/07/sazcast-episode-25-ipad-shiny-object-or-game-changer/</link>
		<comments>http://sazbean.com/2010/04/07/sazcast-episode-25-ipad-shiny-object-or-game-changer/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 17:30:47 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Sazcast]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Tech]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=4913</guid>
		<description><![CDATA[
Is Apple&#8217;s new iPad a game changer or just a shiny new toy for Apple fans? What games will it change (if any)? What niche does it fill and what impact will it have for business? Quick News &#8211; Apple, Hulu, Blockbuster.  Web Strategy &#38; Marketing News &#38; Tips.
Show notes.  Here are [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2010%2F04%2F07%2Fsazcast-episode-25-ipad-shiny-object-or-game-changer%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2010%2F04%2F07%2Fsazcast-episode-25-ipad-shiny-object-or-game-changer%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="size-full wp-image-3092 alignleft" title="sazcastlogo250" src="http://sazbean.com/wp-content/uploads/2009/10/sazcastlogo250.png" alt="sazcastlogo250" width="250" height="104" />Is Apple&#8217;s new iPad a game changer or just a shiny new toy for Apple fans? What games will it change (if any)? What niche does it fill and what impact will it have for business? Quick News &#8211; Apple, Hulu, Blockbuster.  Web Strategy &amp; Marketing News &amp; Tips.</p>
<p><object name="Video" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/quicktime/download/" standby="Loading Quicktime components..." width="400" height="50" ><param name="src" value="http://content.screencast.com/users/sazbean/folders/SazCast/media/110d1c7a-b9c5-4380-98df-e05d0b08c93b/sazcast%20episode%2025.mp3"></param><param name="autoplay" value="false"></param><param name="controller" value="true"></param><param name="enablejavascript" value="true"></param><param name="playCount" value="1"></param><param name="starttime" value="0"></param> <embed name="Video" pluginspage="http://www.apple.com/quicktime/download/" type="video/quicktime" src="http://content.screencast.com/users/sazbean/folders/SazCast/media/110d1c7a-b9c5-4380-98df-e05d0b08c93b/sazcast%20episode%2025.mp3" autoplay="false" controller="true" enablejavascript="true" starttime="0" width="400" height="50"></embed></object></p>
<p><span id="more-4913"></span></p>
<p><span style="text-decoration: underline;">Show notes</span>.  Here are the links we discussed in the podcast:</p>
<ul>
<li><a href="http://techcrunch.com/2010/04/05/ipad-day-in-numbers-300k-devices-sold-1-million-apps-and-250k-ibooks-downloaded/">iPad Day In Numbers: 300k Devices Sold, 1 Million Apps And 250k iBooks Downloaded<br />
 (TechCrunch)</a></li>
<li><a href="http://www.businessinsider.com/kleiner-perkins-ups-the-ifund-to-200-million-2010-3">Kleiner Perkins Doubles The iFund To $200 Million, Ready To Fund iPad App Makers (Silicon Alley Insider)</a></li>
<li><a href="http://www.businessinsider.com/dont-forget-the-joojoo-won-a-most-brilliant-product-of-the-year-award-before-going-on-to-sell-90-pre-orders-2010-3">Don&#8217;t Forget, The JooJoo Won A &#8216;Most Brilliant Product Of The Year&#8217; Award Before Going On To Sell 90 Pre-Orders (Silicon Alley Insider)</a></li>
<li><a href="http://www.businessinsider.com/henry-blodget-yelp-changes-site-to-make-it-less-extortionist-2010-4">Yelp Changes Site To Make It Less Extortionist (Silicon Alley Insider)</a></li>
<li><a href="http://techcrunch.com/2010/04/06/diggs-kevin-rose-diggbar-is-bad-for-the-internet-so-were-killing-it/">Digg’s Kevin Rose: DiggBar Is Bad For The Internet, So We’re Killing It (TechCrunch)</a></li>
<li><a href="http://techcrunch.com/2010/04/06/fox-and-sony-throw-blockbuster-another-lifeline/">Fox And Sony Throw Blockbuster Another Lifeline (TechCrunch)</a></li>
<li><a href="http://www.businessinsider.com/henry-blodget-hulu-turns-profitable-we-eat-crow-2010-4">Hulu Turns Profitable, We Eat Crow (Silicon Alley Insider)</a></li>
<li><a href="http://news.cnet.com/8301-13577_3-20001773-36.html">Digg CEO Jay Adelson steps down (Cnet)</a></li>
<li><a href="http://www.boingboing.net/2010/04/02/why-i-wont-buy-an-ipad-and-think-you-shouldnt-either.html">Why I won&#8217;t buy an iPad (and think you shouldn&#8217;t, either) (Boing Boing)</a></li>
<li><a href="http://radar.oreilly.com/2010/04/the-ipad-and-computings-middle.html">The iPad and computing&#8217;s middle ground (O&#8217;Reilly Radar)</a></li>
<li><a href="http://www.scripting.com/stories/2010/04/06/isIpadAGamechanger.html">Is iPad a game-changer? (Scripting News)</a></li>
<li><a href="http://roomfordebate.blogs.nytimes.com/2010/04/06/the-ipad-in-the-eyes-of-the-digerati/">The iPad in the Eyes of the Digerati (NYTimes)</a></li>
<li><a href="http://arstechnica.com/apple/reviews/2010/04/ipad-review.ars">Ars Technica reviews the iPad (Ars Technica)</a></li>
<li><a href="http://www.businessinsider.com/henry-blodget-the-ipad-backlash-begins-after-having-slept-with-her-i-am-having-morning-after-regrets-2010-4">The iPad Backlash Begins: &#8220;After having slept with her, I am having morning-after regrets.&#8221; (Silicon Alley Insider)</a></li>
</ul>
<p>Subscribe to the Sazcast podcast:</p>
<ul>
<li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=335692699">Subscribe in iTunes</a></li>
<li><a href="http://feeds.feedburner.com/Sazcast">Subscribe to the feed</a></li>
</ul>
<p>To see all the Sazcast episodes, <a href="http://sazbean.com/category/sazcast/">click here</a>.</p>
<div class="ltgreybox"><strong>Learn how to create a successful social media strategy! <a href="http://socialmediastrategyapril2010.eventbrite.com/">Register for our Crafting a Successful Social Media Strategy</a> live webinar on April 14th, 2010 at 12pm (EDT). <a href="http://socialmediastrategyapril2010.eventbrite.com/">Register Now!</a></strong></div>
<p>If you have a topic idea you&#8217;d like us to discuss, please email us at sazcast [at] sazbean [dot] com or send us a message on Twitter <a href="http://twitter.com/sazbean">@sazbean</a>. Please consider <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=335692699">reviewing us on the iTunes site</a> or emailing us your comments and ideas at sazcast@sazbean.com. Intro Music by: Band: Tripudio, Song: <a href="http://podsafeaudio.com/jamroom/bands/715/">Blue monday</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2010/04/07/sazcast-episode-25-ipad-shiny-object-or-game-changer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://content.screencast.com/users/sazbean/folders/SazCast/media/110d1c7a-b9c5-4380-98df-e05d0b08c93b/sazcast%20episode%2025.mp3" length="18269969" type="audio/mpeg" />
		</item>
		<item>
		<title>QR Codes &#8211; Adding Complexity or Providing Benefits?</title>
		<link>http://sazbean.com/2010/01/27/qr-codes-adding-complexity-or-providing-benefits/</link>
		<comments>http://sazbean.com/2010/01/27/qr-codes-adding-complexity-or-providing-benefits/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 17:49:29 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[internet marketing]]></category>
		<category><![CDATA[QR codes]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=4107</guid>
		<description><![CDATA[
You may have seen these funny little boxes around &#8211; possibly in a magazine or in a store window.  They&#8217;re called QR Codes (Quick Response Codes) and they allow the encoding of information.  For practical terms, if you were to scan one of these codes with a code reader from your phone, they&#8217;d could take [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2010%2F01%2F27%2Fqr-codes-adding-complexity-or-providing-benefits%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2010%2F01%2F27%2Fqr-codes-adding-complexity-or-providing-benefits%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://sazbean.com/wp-content/uploads/2010/01/qurified_message.png"><img class="alignleft size-full wp-image-4109" title="qurified_message" src="http://sazbean.com/wp-content/uploads/2010/01/qurified_message.png" alt="" width="132" height="132" /></a>You may have seen these funny little boxes around &#8211; possibly in a magazine or in a store window.  They&#8217;re called QR Codes (Quick Response Codes) and they allow the encoding of information.  For practical terms, if you were to scan one of these codes with a code reader from your phone, they&#8217;d could take you to a website where you could get more information.  But in order to work, they require you to install software on your phone (and to have your phone or other device with you).  So, is this making it easier or more difficult for someone to get more information?</p>
<p><span id="more-4107"></span></p>
<p><strong>Requires a Scanner</strong></p>
<p>While most of us carry a phone of some sort, not all of us have phones that support a code reader application (although that will probably improve with time).  Most of us aren&#8217;t going to go through the hassle of installing a code scanner unless we perceive some sort of benefit.  Why should I install software to read a QR code when I can just go to your website?  Or search for your product name online?</p>
<p><strong>Connecting Offline with Online</strong></p>
<p>Marketers are interested in these QR codes because they allow another way to track specific promotions offline that lead to an online visit (and lead collection or a sale).  Measuring and understanding which campaigns are working is key to knowing where to invest resources.</p>
<p><strong>Unique Information</strong></p>
<p>QR codes do allow for encoding of more information than just a website address.  So there is the possibility of providing information that could not necessarily be gathered right from a URL.  The example given for use in print advertising is scanning a code to find the location nearest you with the lowest price.  Or maybe a restaurant could offer a special discount for those who scanned in and read what the day&#8217;s discount code is.</p>
<p><strong>Providing a Benefit</strong></p>
<p>I read the MIT Tech Review (yes, in print) and they had one of these QR codes after an article offering a special report.  While I was intrigued, I wasn&#8217;t near my phone (one of the reasons I get the magazine in print is to get away from the gadgets for a few minutes).  I also wasn&#8217;t really interested in installing special software just to get the report (especially since it was described in online one sentence).  But the idea of providing valuable content only if people scan a QR code (and thus give you a lead) is interesting.  I&#8217;m just not sure how it&#8217;s different than pointing them to a web page with a unique address.</p>
<p><strong>Security Concerns</strong></p>
<p>Because the QR codes are directing mobile devices to a website, it may be possible to have the phone then run some malicious code.  Or if the code points to something else, you won&#8217;t know about it until you&#8217;ve scanned it.  These concerns are probably minor right now, but there is something to be said when humans can&#8217;t read the codes ahead of time.  (Mechanical Poetry has some more information about <a href="http://mechpoe.blogspot.com/2009/05/qr-codes-security-cross-site-scripting.html">possible security concerns with QR codes</a>).</p>
<p><strong>Intriguing Uses</strong></p>
<p>Using these QR codes instead of loyalty cards may provide a benefit that consumers would want.  Although I think that services such as Foursquare make this easier with check-ins based on location.  One thing that would be nice is the ability to scan a code and then be able to search the Internet for the best price (although this would be possible with regular barcodes).  The ability to connect offline and online is enticing.  I&#8217;m just not sure if this is the right technology to do that.</p>
<p><strong>What do you think?  Have you seen these QR codes?  Have you used them?  How could you see them being used?</strong></p>
<p><span style="text-decoration: underline;">Additional Reading</span></p>
<ul>
<li><a href="http://hughbriss.com/getting-creative-with-qr-codes-funny-little-graphics-that-contain-a-lot-of-information/">Getting Creative with QR Barcodes; Funny Little Graphics That Contain a Lot of Information (Hugh Briss)</a></li>
<li><a href="http://www.businessinsider.com/magazine-barcodes-2010-1">Magazines Still Wasting Time With Stupid Barcodes (The Business Insider)</a></li>
</ul>
<p><strong><span style="color: #800080;">Liked this post? Consider subscribing to Sazbean.com through </span><a href="http://feeds.feedburner.com/Sazbean"><span style="color: #800080;">RSS feed</span></a><span style="color: #800080;"> or by </span><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1163671&amp;loc=en_US"><span style="color: #800080;">email</span></a><span style="color: #800080;"> or </span><a href="http://twitter.com/sazbean"><span style="color: #800080;">following us on Twitter</span></a><span style="color: #800080;">.</span></strong></p>
<p><em>Technorati tags: <a rel="tag" href="http://technorati.com/tag/QR+codes">QR codes</a>, <a rel="tag" href="http://technorati.com/tag/internet+strategy">internet strategy marketing</a>, <a rel="tag" href="http://technorati.com/tag/web+strategy">web strategy</a>, <a rel="tag" href="http://technorati.com/tag/strategy">strategy</a>, <a rel="tag" href="http://technorati.com/tag/marketing">marketing</a>, <a rel="tag" href="http://technorati.com/tag/business+strategy">business strategy</a>, <a rel="tag" href="http://technorati.com/tag/business">business</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2010/01/27/qr-codes-adding-complexity-or-providing-benefits/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Your new business card starts with an @</title>
		<link>http://sazbean.com/2010/01/15/your-new-business-card-starts-with-an/</link>
		<comments>http://sazbean.com/2010/01/15/your-new-business-card-starts-with-an/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 20:31:22 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[codemash]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=3985</guid>
		<description><![CDATA[
I am wandering the halls of a technical conference, in Sandusky, Ohio this week.  Its called CodeMash.  While the presentations are solid, the real value add has been and always will be the hallway conversations with people in the tech field.  One thing I have noticed this week is a subtle but important change in business [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2010%2F01%2F15%2Fyour-new-business-card-starts-with-an%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2010%2F01%2F15%2Fyour-new-business-card-starts-with-an%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I am wandering the halls of a technical conference, in Sandusky, Ohio this week.  Its called CodeMash.  While the presentations are solid, the real value add has been and always will be the hallway conversations with people in the tech field.  One thing I have noticed this week is a subtle but important change in business protocol.  We no longer exchange business cards, we now exchange twitter handles.</p>
<p style="text-align: center;"><img class="aligncenter" style="margin-top: 10px; margin-bottom: 10px;" title="Bird Talk" src="http://farm1.static.flickr.com/130/416334508_6a4708e469.jpg" alt="" width="500" height="334" /></p>
<p><span id="more-3985"></span></p>
<p>I&#8217;m not ready to completely throw away my stack of MooCards quite yet, they are still the <em>Lingo Franco</em> of the business meeting.   But the box I have should last me for the next 30 years if the twitter trend continues because more and more people are just exchanging handles.</p>
<p>There is an efficiency to trading that simple @name that we used to get from trading email address back before spam was such a problem.  Once you have someone&#8217;s twitter name on your follow list, they are a part of your online persona wherever you are.  Want to meet up with them on a sales call, just DM them.  Interested in getting their opinion on some idea, include them in an @.  If they have a public face online, knowing their twitter address is just about the best way going to keep in contact.</p>
<p>So add your twitter handle to your business card.  If there isn&#8217;t enough room, drop something less important &#8211; like your phone number.</p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2010/01/15/your-new-business-card-starts-with-an/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Hosting &#8211; What Are You Paying For?</title>
		<link>http://sazbean.com/2009/09/08/web-hosting-what-are-you-paying-for/</link>
		<comments>http://sazbean.com/2009/09/08/web-hosting-what-are-you-paying-for/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 18:14:12 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Strategy]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=2845</guid>
		<description><![CDATA[
Choosing the right web hosting company can be difficult for a non-tech person.  There are so many price points, so many options, and so many features to choose from, most of which probably don&#8217;t make sense to the average person. I&#8217;ve met many people who are either paying too much or too little for a [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F09%2F08%2Fweb-hosting-what-are-you-paying-for%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F09%2F08%2Fweb-hosting-what-are-you-paying-for%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-full wp-image-2851" style="margin: 10px;" title="serverDeclanTM" src="http://sazbean.com/wp-content/uploads/2009/09/serverDeclanTM.jpg" alt="serverDeclanTM" width="240" height="180" />Choosing the right web hosting company can be difficult for a non-tech person.  There are so many price points, so many options, and so many features to choose from, most of which probably don&#8217;t make sense to the average person. I&#8217;ve met many people who are either paying too much or too little for a web hosting service that meets their needs.  While cheap plans are attractive, they&#8217;re not always the best choice.  Here&#8217;s some things to look for:</p>
<p><span id="more-2845"></span></p>
<p><strong>Support</strong></p>
<p>Most web hosting companies will offer some level of support, but is it by email, phone or ticketing system?  What is their response time?  Will they guarantee that they&#8217;ll get back to you within a set number of hours?  Can you pay for a higher level of support?  Support often is overlooked, but if your business relies on your website, and most businesses do to a certain extent, how long can you afford to have it down?  Businesses who run an online store will have less tolerance for downtime than other types of businesses, since the website is their business.</p>
<p><strong>Backups</strong></p>
<p>Cheaper web hosting usually doesn&#8217;t provide any type of backups, so you&#8217;ll be responsible for keeping a copy of your website (plus any changes that have been made) and any databases or applications you&#8217;re using.  Many web hosting companies have a control panel which allows you to make backups with only a few clicks.  The problem is remembering to do them (plus keeping the backup in a safe spot).  Almost all web hosting companies will have backups offered as an upgrade, and some even offer them as part of the regular service.  Backups may not seem important until there&#8217;s a server problem and you lose the website that you spent hundreds or thousands of dollars developing.  Backups area a must for any online store.</p>
<p><strong>Space</strong></p>
<p>Even the cheapest web hosting packages usually offer way more space (hard drive space) than you&#8217;ll ever need because space is pretty cheap.  However, if you have an online application or if you host a lot of images, audio or video, space may become an issue.  Take into account any costs for going over your space limit and whether the hosting company has any space upgrades.</p>
<p><strong>Bandwidth</strong></p>
<p>Bandwidth is basically a measure of how many files and pages can be downloaded or accessed from your site.  Every time someone visits your site they are using some of the bandwidth.  Bandwidth limits usually aren&#8217;t a problem unless you&#8217;re hosting a lot of video, audio or images (large files), but you still should be aware of how much is included, how much it costs to go over the limit, and whether you can upgrade your limit in the future.</p>
<p><strong>Ease of Use</strong></p>
<p>How easy is the web hosting to use?  Do they give you a control panel or some other web site that allows you to manage and upload files to your site? How important this is depends on your particular level of knowledge and what you&#8217;ll be doing with your website.</p>
<p><strong>Control</strong></p>
<p>How much control are you allowed over what can go on your site?  Does the web hosting site restrict certain types of applications or files?  Will you be able to run whatever applications you need to for your site?  Can you make changes to your site or do you have to go through support?  How much control you want depends on how comfortable you are with the technical side of things.  If you have a web developer working with you, you&#8217;ll want to make sure they can do what you&#8217;re paying them to do without too much hassle.</p>
<p><strong>Upgrades</strong></p>
<p>As your site grows, will you be able to purchase upgrades for space, bandwidth, functionality, etc.?  How long can you stay at this web hosting company without having to look for other options?  What upgrades do they offer?  Do these upgrades fit with the growth plan you have for your site?</p>
<p><strong>Guarantees</strong></p>
<p>Most reputable web hosting companies will offer some type of guarantee for uptime (99% uptime, etc.).  Some of the cheaper packages won&#8217;t have any guarantees, or will guarantee less.  Either way, how do they back their guarantee?  Will they offer you back some of the hosting costs?  What does their guarantee cover?  What about lost sales or business (usually not except with higher end hosting)?</p>
<p><strong>Security</strong></p>
<p>How important is security to the hosting company?  Do they do software and server upgrades to keep up with security patches and problems?  Some hosting companies will do this for you and some will expect you to keep up with them.  When you have to do them yourself, sometimes it&#8217;s just a matter of clicking an upgrade button on your control panel, and sometimes its much more difficult.  Security is pretty important for web hosting since a compromised server often has to be completely wiped and rebuilt.  What security is offered for online stores?  Do they have their own security practices?</p>
<p><strong>Integration &amp; Flexibility</strong></p>
<p>Related to control &#8211; how much integration does the web hosting company allow with other applications and web services?  Will you be able to use your own shopping cart or analytics software?  Do they provide applications?  Will you be able to integrate your website with internal applications?  You may not need integration to begin with, but it may be pretty important down the road.</p>
<p><strong>Freebees</strong></p>
<p>Many people get caught up in all the freebees a web hosting company offers, but many of these freebees are offered for free to anyone on the Internet.  However, sometimes hosting companies will offer more valuable freebees such as Google AdWord credits or other online advertising.  They may also offer applications that you would otherwise pay for (such as some types of shopping carts, email programs, or customer relationship management systems).  Whatever the case, figure out just how valuable these offers are to what you&#8217;re trying to do with your website.</p>
<p><strong>Looking Ahead</strong></p>
<p>Choosing the right web hosting company should start with an understanding of what you want your website to be and do &#8211; both now and down the road.  If you eventually have higher plans for your site, but want to start with cheaper hosting, that&#8217;s fine, but make sure you know how and whether you&#8217;ll be able to move/upgrade your site when you&#8217;re ready.  Pick the hosting company that works with what want to do now, has a good reputation, and easy to work with.  Ask around for recommendations.</p>
<p><strong>What&#8217;s your experience with choosing a web hosting company? What questions do you have about hosting companies?</strong></p>
<p>(photo by <a href="http://www.flickr.com/photos/declanjewell/2414158955/">DeclanTM</a> @ Flickr CC)</p>
<p><strong><span style="color: #800080;">Liked this post? Consider subscribing to our <a href="http://feeds.feedburner.com/Sazbean">RSS feed</a> or our <a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1163671&amp;loc=en_US">free email updates</a> or <a href="http://twitter.com/sazbean">following us on Twitter</a>.</span></strong></p>
<p><em>Technorati tags: <a rel="tag" href="http://technorati.com/tag/hosting">hosting</a>,  <a rel="tag" href="http://technorati.com/tag/web+hosting">web hosting</a>, <a rel="tag" href="http://technorati.com/tag/business">business</a></em>, <a rel="tag" href="http://technorati.com/tag/web+server">web server</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/09/08/web-hosting-what-are-you-paying-for/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learn the Lingo &#8211; Domain names</title>
		<link>http://sazbean.com/2009/08/25/learn-the-lingo-domain-names/</link>
		<comments>http://sazbean.com/2009/08/25/learn-the-lingo-domain-names/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 16:09:07 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=2766</guid>
		<description><![CDATA[
Have you noticed that Industry insiders like to invent their own language?  You are following along in a fascinating conversation about some interesting aspect of something and just when it is all coming together and you can sense a real strong point being made, the speaker looses you completely on some strange term or phrase [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F08%2F25%2Flearn-the-lingo-domain-names%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F08%2F25%2Flearn-the-lingo-domain-names%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="size-full wp-image-2767 alignright" style="margin: 10px;" title="conversation" src="http://sazbean.com/wp-content/uploads/2009/08/conversation.jpg" alt="conversation" width="325" height="311" />Have you noticed that Industry insiders like to invent their own language?  You are following along in a fascinating conversation about some interesting aspect of<em> something </em>and just when it is all coming together and you can sense a real strong point being made, the speaker looses you completely on some strange term or phrase or, god forbid, acronym that they just assume everyone must grok*.</p>
<p><span id="more-2766"></span></p>
<p>Tech sector is infamous for an over reliance on short hand terms and acronyms who&#8217;s only definition are even more obscure terms or acronyms.  These little words have become an invisible wall, in my opinion.   If you are in the Online Marketing industry, wouldn&#8217;t you like to have your ideas and thoughts included in the conversation instead of dismissed out of hand because you aren&#8217;t using the exact correct word in context?  It is something that really worries me about my industry.</p>
<p>I&#8217;d like to help the outsiders get back into the conversation.  Maybe this post is a start, I don&#8217;t know.</p>
<p>Domain names are something I think most of us use and have some familiarity with.  If you are in Online Marketing, domain names are a big part of your business.  Online business strategy, too, needs to know about domain names.  But most don&#8217;t really know what they are because they cannot explain them to their mother (my golden rule for when you really understand something)</p>
<p>Lets get started.  <strong>First, don&#8217;t let anyone tell you otherwise, domain names have one and only one function on this earth</strong>.  They take an internet address that is written in numbers and is easy for a computer to read and they convert that into characters that are easier for humans to read.   That is the sum total of what they were invented for.</p>
<p><strong>Addresses:</strong> So imagine that its 1918 and the modern US postal service is just getting off the ground.  They need a way for Americans to send a letter across the country without instructions like &#8216;go find Bob Jones somewhere in Seattle&#8217;.  They come up with a system of codes where, from specific to general, you can identify any house in the country.  Exact same is true of Internet Addresses, where general to specific (reading left to right) you can find any computer on the internet.  Im telling you, as a Cisco Network Engineer in a former life, anyone who tells you it is more complicated than that is confusing the point.</p>
<p><strong>Domain names early on: </strong>So clearly and IP address like 192.168.0.1 doesn&#8217;t mean much to most people.  We kinda got stuck in the telecom industry when we only gave people 9 digits on their phones, forcing them to remember long strings of numbers which had no real meaning to them personally.  Lame attempts to map letters to digits like 1-800-CALLBOB didnt really help much.  Learning from their mistake, computer people realized they needed a more flexible way to related these internet addresses to the actual people who were being the computers.  This is the important bit.  Internet Addresses were for the benefit of the computers themselves, but domain names were designed only for people; the computers could have cared less about them.  They came up with a very simple idea, keep a list that maps an IP address like 192.168.0.1 to one <strong>or more </strong>words that people can remember.  In the early days this was all it was.  An IP address pointed to a computer, lets say it was physically at the University of Berkley computer lab.  Someone decided that computer&#8217;s name was Pinky.  They updated to shared list on the internet to say that, hey if you are trying to send a message or call that computer in the Berkley lab, just remember its name is Pinky.  Bada-bing, you now have the start of domain names (host names, actually, but the same purpose).  The human types in a command to send something to Pinky, that computer doesn&#8217;t know where Pinky is, but knows where the list is to look it up.  It finds the IP and sends the message</p>
<p><strong>Modern Domain names:</strong> From these humble beginnings, modern domain&#8217;s were born.  If someone handed you a list like the one above, mapping ip addresses to single words like Pinky, you might be cool with it in the beginning.  Small number of computers, and even smaller number of people on the internet making up the names for these computers means its not too difficult to keep up to date.  But we all know that didn&#8217;t last, the number of computers and people on the internet grew, and grew quickly.  Soon there were ten different people, in different locations, fighting over calling their computer Pinky.  No problem, we will add a new level, call that the domain name, and make it something geographic or organizationally relative.  So now pinky.berkley is a completely different computer from pinky.darpa.  Do ya one better, since Berkley the college was getting nasty emails from Berkley the pizza parlor who also wants to have their computers online, we will throw in another layer that separates domain names into educational, companies, government, and others as needed. pinky.berkley.edu is a completely different computer from pinky.berkley.com  Problem solved.  These new names are now organized just the way computer people like it.  There are now plenty of names to go around, just get creative and have fun.  The name land grab begins. Ok, but now bob who maintains the list is getting sick of it and anyway, isn&#8217;t this what computers are good at?</p>
<p>Domain servers: Fine fine fine, if bob doesn&#8217;t want to keep up the list that says pinky.berkley.edu points to 192.168.0.1, we&#8217;ll use computers to do it for us.  Lucky for us, because we setup those layers of host name, domain name and TLD or top level domain, we can do something cool that we call distributed responsibility.  So in modern domain name lookup, it all still starts with a list, just like the beginning.  That list, now, no longer tells you the IP address of pinky.berkley.edu  though.  It tells you where you can ask to find out, kinda like asking the guy on the corner for directions and he telling you to go ask that other guy cuz he grew up in this neighborhood.  So at the top there are dozens of servers, run by governments and large non-profits that keep the list of who to ask for a domain.  Their responsibility is broken up by the TLD, or the end of the domain like .edu or .com  If you want Pinky.berkley.edu you ask server A but if you want Pinky.berkley.com you ask server B.  This is why it is kinda a big deal when governing bodies approve a new TLD because its is a pseudo monopoly on all those people waking up to the corner asking for directions.  So server A looks up in its list and says, for the IP address of a computer in the berkley.edu domain, go ask this server at 192.168.0.2  the computer says to itself, ok thanks for nothing, and goes to ask that other server about the IP for pinky.  Here is the magic.  That IP address that the top domain server gave you points to a server that the guys at Berkley university control.  They keep the list themselves, handing out the IP addresses they rent from their Internet Service Provider.  Thing is, since they control the specific list on berkley.edu, it is up to them to name their servers whatever they want.</p>
<p><strong>Web addresses: </strong>The web is a more recent invention compared to the internet, and as such its web site names borrows from the domain name idea above.  You have your TLD, like .com, and you have your domain name, like berkley.  You also have a host name, only usually it is www instead of pinky.  That part gets you to the server.  The rest is suppose to get you to a specific file on the server.  So http://www.berkley.edu/directory/on/server/fall_classes.doc is a combination of the server you are looking for and the location on that server of where to file and finally the name of the file you want.  That http part in the beginning is kinda your native language, like when you walk up to a stranger in the airport and say &#8216;you speak English?&#8217;</p>
<p>That&#8217;s domain names in a nutshell.  I hope this has helped.</p>
<p>I&#8217;d like to do one of these each Tuesday, but I need your suggestions.  <strong></strong></p>
<p><strong>What tech subject would you like translated into English? Email me at aaron@sazbean.com</strong></p>
<p>* An example of a word I struggled with early in my tech career because it is just assumed you have read Stranger in a Strange Land.  It means to &#8216;understand&#8217; something.</p>
<p>photo attributed to <a title="Link to polandeze's photostream" rel="dc:creator cc:attributionURL" href="http://www.flickr.com/photos/polandeze/"><strong>polandeze</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/08/25/learn-the-lingo-domain-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another Interview with James Lindenbaum, CEO of Heroku &#8211; Part 2</title>
		<link>http://sazbean.com/2009/07/23/another-interview-with-james-lindenbaum-ceo-of-heroku-part-2/</link>
		<comments>http://sazbean.com/2009/07/23/another-interview-with-james-lindenbaum-ceo-of-heroku-part-2/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 14:00:26 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web programming]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=2443</guid>
		<description><![CDATA[
Yesterday, we had part one of our interview with James Lindenbaum, CEO of Heroku, which provides hosting for Ruby on Rail applications.  We had a great conversation with James, but there was a bit much for one post, so we divided the interview into 2.  Here&#8217;s the second part of our interview&#8230;.
Sazbean: How should business [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F07%2F23%2Fanother-interview-with-james-lindenbaum-ceo-of-heroku-part-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F07%2F23%2Fanother-interview-with-james-lindenbaum-ceo-of-heroku-part-2%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-full wp-image-442" style="margin:10px;" title="heroku" src="http://sazbean.files.wordpress.com/2008/12/heroku.png" alt="heroku" width="138" height="59" align="left" />Yesterday, we had <a href="http://sazbean.com/2009/07/22/another-interview-with-james-lindenbaum-ceo-of-heroku-part-1/">part one of our interview with James Lindenbaum</a>, CEO of <a href="http://heroku.com/">Heroku</a>, which provides hosting for Ruby on Rail applications.  We had a great conversation with James, but there was a bit much for one post, so we divided the interview into 2.  Here&#8217;s the second part of our interview&#8230;.</p>
<p style="text-align:right;"><span id="more-2443"></span></p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>How should business users that are new to Ruby on Rails (ROR) use Heroku?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> There are several different things about Heroku that make it unique:</p>
<p>Firstly, it&#8217;s free to get started.  Which is great for small apps, testing, etc.  It&#8217;s very cost effective and very fast.  This means that businesses can actually develop all those good ideas without having to worry about the costs associated with hosting and deployment. Rails is so productive that you can have an app up and running in a few days or weeks &#8211; letting businesses test a lot of ideas very quickly.</p>
<p>Secondly, businesses don&#8217;t have to worry about the transition when going from an experimental application to a live application.  We handle everything for them.  We have all the heavy duty enterprise stuff you need when your app grows.</p>
<p>We also are very useful for staging.  Most companies have a very complex deployment process, with servers for development, testing, and production.  There are a lot of challenges in keeping all those environments identical, which you need to do to avoid having unforeseen problems in production.  In Heroku, all environments are identical and with staging servers, which don&#8217;t use very many resources, you pay for only what you use, making it very economical.  You can quickly create and destroy servers, so many developers are creating a new staging server for every version and leaving them in the account so they now have an audit trail to do regression testing.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>What do you feel differentiates Heroku from your competitors?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> There are a few things we do uniquely.  We&#8217;re the only place where you can deploy provisionlessly &#8211; just push your code and you&#8217;re done.  No steps to worry about.  We&#8217;re also the only multi-tenant platform, other than Google&#8217;s App Engine, so the platform is always up to date.  All improvements we make to the stack get rolled out to all applications.  Heroku is handling all the maintenance of the application for you.  Our scaling time is so fast &#8211; just drag the sliders and after a couple of seconds your application is scaled up.  This is really important so people can quickly match changes in demand for their application.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>How well does Heroku handly dynamic provisioning?  If your site gets covered in TechCrunch, how does that work?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> Right now there has to be a human decision, but it&#8217;s very quickly scaled up and we handle all the details.  We&#8217;ll do auto-scaling in the future.  We basically already have it, but we&#8217;re still at a stage where people don&#8217;t really understand how rails apps perform.  When we ask people how they want to scale an app, they don&#8217;t know.  So we need to let the community catch up so they can help figure out how apps should be scaled up and provisioned.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>Do you provide tools so people can figure out where they should be for provisioning?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> Not yet.  That&#8217;s right around the corner.  We&#8217;re coming out with some great features soon.  Most people use <a href="http://newrelic.com/">New Relic</a> right now, which is a plugin that collects performance information about your application and then provides graphs and charts so you can see exactly what&#8217;s going on.</p>
<p>We have some really interesting use cases now that we have over 30,000 apps running on the platform. <a href="http://www.heyzap.com/">HeyZap</a>, a casual gaming company, created a Swine Flu game &#8211; <a href="http://www.swinefighter.com/#heyzap_game=swinefighter">Swine Fighter</a>.  They built it and then publicized it and were featured on Times, Reuters and other news sources.  They&#8217;re running on Heroku and they came to us when they were going to be in USA Today in just 2 hours.  We told them to scale up their dynos, so they did, and that was that.  They were able to serve millions of users over just a few days.</p>
<p>We have another customer who wrote an application for a site in Hungary that&#8217;s like Facebook.  It really took off like crazy.  6 or 7 weeks ago they were doing 300-400 dynamic requests per second, sustained.  Even at night they were doing 40 requests per second. We were able to push through 1/2 billion page views, and that doesn&#8217;t count any of the caching that was going on.  We scaled up that fast in just a matter of days and they&#8217;re able to scale up and down with the demand.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>Where do you see the market growth for enterprise Ruby on Rails (ROR)?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> From our internal numbers, it&#8217;s growing, but hard to say across what industries.  We have Fortune 500 companies registering all the time.  But bigger enterprises are always slower to adopt.  So, you see what you&#8217;d expect: bigger companies are starting to use Heroku for staging, testing, rapid prototyping and smaller apps.  Some are using it for larger, mission-critical apps, but they&#8217;re still the outliers.</p>
<p>Sometimes when someone registers from a big company, we contact them to see if they’re using Ruby at work.  Last year, they’d say &#8220;no, we&#8217;re only allowed to use Java at work, I&#8217;m using Heroku for a personal project.&#8221;  Six months ago, they’d say &#8220;we&#8217;re not supposed to be using Ruby, but there are three of us working on this project, and we&#8217;re using Ruby, and don’t tell anyone.&#8221;  Then a few months ago, the story started to be &#8220;they came to us and told us we had to get this project done on a really short timeline, and we told them we could only get it done if they let us use Ruby.  They did and the project was a success, so now we&#8217;re doing a medium-sized Ruby project.&#8221;</p>
<p>We have a large company that has a 400-person development team, doing Java and Perl, and they realized they weren&#8217;t agile.  So they restructured into 20, 20-person teams, with 2 of them being Ruby teams.  Immediately, the 2 Ruby teams are just way more productive, so all the business people want their stuff going to the Ruby teams because it&#8217;ll be done in 2 weeks and it&#8217;ll be pretty.</p>
<p>We also have Ruby teams who finish projects and then they go to IT to deploy and IT says they can&#8217;t deploy it or it&#8217;ll be 3 months to provision for it.  So the Ruby guys go to upper management and say, &#8220;look we&#8217;re building these apps in a matter of weeks, and IT provisioning is taking twice as long as the entire project to deploy.  You&#8217;ve got to let us go outside.&#8221;  So, they get to go outside, but then there&#8217;s no support from IT and you have two choices: a service-driven, highly managed hosting provider with a lot of guys to help (which is very expensive), or Heroku, where things are harder to break.</p>
<p>One of our big drivers right now is the inability of IT to keep up with the rate of development.</p>
<p><span style="text-decoration:underline;">Related posts:</span></p>
<ul>
<li><a href="http://sazbean.com/2009/07/22/another-interview-with-james-lindenbaum-ceo-of-heroku-part-1/">Another Interview with James Lindenbaum, CEO of Heroku &#8211; Part 1</a></li>
<li><a href="http://sazbean.com/2009/04/24/heroku-out-of-beta-fast-easy-cheap-ruby-hosting/">Heroku Out of Beta – Fast, Easy &amp; Cheap Ruby Hosting</a></li>
<li><a href="http://sazbean.com/2008/05/30/heroku-technical-notes/">Heroku – Technical notes</a></li>
<li><a href="http://sazbean.com/2008/05/29/interview-with-james-lindenbaum-ceo-of-heroku/">Interview with James Lindenbaum, CEO of Heroku</a></li>
</ul>
<p><em>Technorati tags: <a rel="tag" href="http://technorati.com/tag/heroku">heroku</a>,  <a rel="tag" href="http://technorati.com/tag/ruby">ruby</a>, <a rel="tag" href="http://technorati.com/tag/rails">rails</a>, <a rel="tag" href="http://technorati.com/tag/programming">programming</a>, <a rel="tag" href="http://technorati.com/tag/hosting">hosting</a></em>, <a rel="tag" href="http://technorati.com/tag/ruby+on+rails">ruby on rails</a>, <a rel="tag" href="http://technorati.com/tag/ROR">ROR</a>, <a rel="tag" href="http://technorati.com/tag/web+programming">web programming</a>, <a rel="tag" href="http://technorati.com/tag/agile+development">agile development</a>, <a rel="tag" href="http://technorati.com/tag/web+development">web development</a></p>
<p><span style="color:#800080;"><em><strong>Liked this post? Consider subscribing to our <a href="http://feeds.feedburner.com/Sazbean">RSS feed</a> or our <a href="http://sazbeanconsulting.com/newsletter">monthly newsletter</a>.</strong></em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/07/23/another-interview-with-james-lindenbaum-ceo-of-heroku-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another Interview with James Lindenbaum, CEO of Heroku &#8211; Part 1</title>
		<link>http://sazbean.com/2009/07/22/another-interview-with-james-lindenbaum-ceo-of-heroku-part-1/</link>
		<comments>http://sazbean.com/2009/07/22/another-interview-with-james-lindenbaum-ceo-of-heroku-part-1/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 14:00:11 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web programming]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=2434</guid>
		<description><![CDATA[
Heroku (who we&#8217;ve covered here, here and here) provides provision-less hosting for Ruby applications, letting developers focus on developing.  The hosting service allows developers to  just push their code and it&#8217;s up in running &#8211; no worrying about running scripts, or setting up servers.  Heroku recently came out of beta and now offers commercial, paid [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F07%2F22%2Fanother-interview-with-james-lindenbaum-ceo-of-heroku-part-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F07%2F22%2Fanother-interview-with-james-lindenbaum-ceo-of-heroku-part-1%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-full wp-image-442" style="margin:10px;" title="heroku" src="http://sazbean.files.wordpress.com/2008/12/heroku.png" alt="heroku" width="138" height="59" align="left" /><a href="http://heroku.com/">Heroku</a> (who we&#8217;ve covered <a href="http://sazbean.com/2009/04/24/heroku-out-of-beta-fast-easy-cheap-ruby-hosting/">here</a>, <a href="http://sazbean.com/2008/05/30/heroku-technical-notes/">here</a> and <a href="http://sazbean.com/2008/05/29/interview-with-james-lindenbaum-ceo-of-heroku/">here</a>) provides provision-less hosting for Ruby applications, letting developers focus on developing.  The hosting service allows developers to  just push their code and it&#8217;s up in running &#8211; no worrying about running scripts, or setting up servers.  Heroku <a href="http://sazbean.com/2009/04/24/heroku-out-of-beta-fast-easy-cheap-ruby-hosting/">recently came out of beta</a> and now offers commercial, paid service.  A few weeks ago, I had the chance to speak with Heroku&#8217;s CEO, James Lindenbaum, about their recent developments:</p>
<p style="text-align:right;"><span id="more-2434"></span></p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>So it&#8217;s been a few months since the commercial launch, how have things been going?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> They&#8217;re going really well.  The uptake has been pretty incredible and we&#8217;re trying to keep up with it in terms of young billing systems, etc.  Lots of people are finding a lot of value in what we&#8217;re providing and there&#8217;s a good mix of paying customers &#8211; some previous beta customers and some new people.  Lots of people really liked our service but had a lot of questions about what the service was going to cost when it came out of beta.  Now that we&#8217;ve answered that, more people are comfortable with signing up.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>Why&#8217;d you decide to go with the tiered ala-carte pricing?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> We spent a lot of time thinking about pricing.  We tried different types of pricing with some of our beta users and got a lot of feedback. We&#8217;re in a very interesting spot.  We&#8217;re a very modern, sort of next generation platform which takes advantage of the cloud.  A lot of people wanted to see a usage-based, metered system &#8211; pay by the drink &#8211; and we&#8217;re able to do that because of the cloud infrastructure.  On the other hand, we wanted to provide a very simple, easy way to do things &#8211; the small/medium/large idea.</p>
<p>So, we&#8217;re trying to satisfy both groups with a hybrid model. If you don&#8217;t want to think about it, pick based on the size of the database, choose the appropriate dynos and go.  Or you can fine tune all of your performance options.  But, it&#8217;s still a work in progress &#8211; it&#8217;s a good first step and we&#8217;re going to continue to work on it.  It&#8217;s been very well received so far &#8211; even better than we expected.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>What was the reaction at Railsconf in May?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> It was pretty good.  We had very good acceptance.  We changed the format of Railsconf this year with 4-5 minute vinettes about different features.  People really loved it and felt it provided a lot of good information.  We had a lot of good questions in our product talk. We have 12 people at the company now, and a lot of good thought leaders in ruby, who were able to get out there and talk.  We love conferences because it&#8217;s nice to feel the enthusiasm and energy from the ruby community &#8211; and a great opportunity to get face-to-face feedback and reactions from people.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>What should non-technical business people know about Heroku?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> Most of our future development will be in the add-ons section of our service.  We&#8217;ll be providing functionality higher and higher up the stack in terms of application performance management, monitoring and data replication, which will be more business-value oriented and less technical in nature.  We&#8217;ve checked off the low-level prerequisites and more business-value oriented features are coming. It&#8217;s as easy as ever to deploy applications using our platform.  We have many people using the platform for enterprise, mission-critical applications and there are a lot of success stories where they&#8217;re either saving a lot of time or able to use a lot of agility in the development process due to our platform. We&#8217;re selling productivity, time and agility.</p>
<p><span style="color:#800080;"><strong>Sazbean:</strong></span> <strong>Why should business people want Ruby on Rails (ROR) used for their applications instead of other languages?</strong></p>
<p><span style="color:#3366ff;"><strong>James:</strong></span> Exact same story here.  You can be so much more productive using ROR.  It&#8217;s so much faster to write a usable, useful application, and a lot easier to do things the right way on rails. With rails, out of the box, as long as you don&#8217;t do anything unusual, you have an application that just works &#8211; it spits out all the proper caching headers, provides restful resources and APIs, helps you not repeat yourself, keeps your model/view/controller logic separated &#8211; just makes it easier to write a good application.</p>
<p>Java lets you do things the right way, but it&#8217;s a lot of work &#8211; it&#8217;s very heavy-handed.  And even with the newer stuff, it&#8217;s also not as flexible.  When you want to make significant changes to your business process, you have a lot more work with Java than a language like ruby.</p>
<p>Php doesn&#8217;t have enough structure.  I love php and wrote a lot of enterprise php applications.  The newer frameworks are pretty good, but it still doesn&#8217;t get you as far as you are with rails.</p>
<p>.Net is similar to Java &#8211; very heavy handed, a lot more work to do things.  It&#8217;s not rocket science, it just takes a lot of little elements to get things to work.  And if you don&#8217;t have to do all those little things, you can concentrate on the more important things.  It&#8217;s like carrying a really heavy backpack all the time &#8211; you get used to it &#8211; but one day you don&#8217;t need it anymore, so you set it down &#8211; and all of a sudden it&#8217;s incredibly liberating.</p>
<p>Heroku is trying to provide that same level of benefit for hosting that rails provides for development.</p>
<p><strong>More of the <a href="http://sazbean.com/2009/07/23/another-interview-with-james-lindenbaum-ceo-of-heroku-part-2/">interview in Part 2</a>, tomorrow&#8230;..</strong></p>
<p><span style="text-decoration:underline;">Related posts:</span></p>
<ul>
<li><a href="http://sazbean.com/2009/04/24/heroku-out-of-beta-fast-easy-cheap-ruby-hosting/">Heroku Out of Beta – Fast, Easy &amp; Cheap Ruby Hosting</a></li>
<li><a href="http://sazbean.com/2008/05/30/heroku-technical-notes/">Heroku – Technical notes</a></li>
<li><a href="http://sazbean.com/2008/05/29/interview-with-james-lindenbaum-ceo-of-heroku/">Interview with James Lindenbaum, CEO of Heroku</a></li>
</ul>
<p><em>Technorati tags: <a rel="tag" href="http://technorati.com/tag/heroku">heroku</a>,  <a rel="tag" href="http://technorati.com/tag/ruby">ruby</a>, <a rel="tag" href="http://technorati.com/tag/rails">rails</a>, <a rel="tag" href="http://technorati.com/tag/programming">programming</a>, <a rel="tag" href="http://technorati.com/tag/hosting">hosting</a></em>, <a rel="tag" href="http://technorati.com/tag/ruby+on+rails">ruby on rails</a>, <a rel="tag" href="http://technorati.com/tag/ROR">ROR</a>, <a rel="tag" href="http://technorati.com/tag/web+programming">web programming</a>, <a rel="tag" href="http://technorati.com/tag/agile+development">agile development</a>, <a rel="tag" href="http://technorati.com/tag/web+development">web development</a></p>
<p><span style="color:#800080;"><em><strong>Liked this post? Consider subscribing to our <a href="http://feeds.feedburner.com/Sazbean">RSS feed</a> or our <a href="http://sazbeanconsulting.com/newsletter">monthly newsletter</a>.</strong></em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/07/22/another-interview-with-james-lindenbaum-ceo-of-heroku-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The geeks give back to those that Give year round</title>
		<link>http://sazbean.com/2009/07/21/the-geeks-give-back-to-those-that-give-year-round/</link>
		<comments>http://sazbean.com/2009/07/21/the-geeks-give-back-to-those-that-give-year-round/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 08:50:11 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[charities]]></category>
		<category><![CDATA[charity programming]]></category>
		<category><![CDATA[givecamp]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=2465</guid>
		<description><![CDATA[
Everyone in the auditorium knew when she stood up that this was going to be an interesting weekend.  Sister Mary, dressed in a stark white Habit, stood out from the crowd of  faded jeans, Converse low-tops and silk screened Tee shirts with ironic catch phrases like some lost Lawrence Welk fan at a Neko Case [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F07%2F21%2Fthe-geeks-give-back-to-those-that-give-year-round%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F07%2F21%2Fthe-geeks-give-back-to-those-that-give-year-round%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignright" style="margin:10px;" title="Sister Mary thanks the geeks" src="http://lh3.ggpht.com/_OUf2_QDeOBw/SmO_j8ZArEI/AAAAAAAALw0/G_uZdoYCVn0/s800/IMG_4763.JPG" alt="" width="480" height="320" />Everyone in the auditorium knew when she stood up that this was going to be an interesting weekend.  Sister Mary, dressed in a stark white Habit, stood out from the crowd of  faded jeans, Converse low-tops and silk screened Tee shirts with ironic catch phrases like some lost Lawrence Welk fan at a Neko Case concert.  But what she told the audience, how passionately she expressed her excitement for what was in essence just a new website, was nothing new by then.  They had heard the same that night from a dozen other local charities and non-profits participating in <a href="http://givecamp.org">GiveCamp</a> 2009.  Each charity started the weekend thanking the programmers and developers and designers for donating the next 48 hours of their lives to creating something for their own personal cause.  So unaccustomed to this kind of appreciation for their unique gifts in this world, the audience of software and computer experts were overwhelmed to tears more than once.  At least I was overwhelmed to tears at the opening ceremony, cresting at the pique of the emotional wave with Sister Mary shouting thanks to God that &#8216;The Geeks Are Coming!&#8217;</p>
<p style="text-align:right;"><span id="more-2465"></span></p>
<p><a href="http://givecamp.org">GiveCamp.org</a> is as simple an idea as it is brilliant.  Lawyers give away their valuable time to those in need Pro Bono and doctor&#8217;s donate their expertise in free clinics in poor neighborhoods the world over.  As computers and the languages that make them run have evolved in complexity, those that truly understand them have been awkwardly elevated to a similar class of professionalism, complete with wildly expensive hourly rates.  These rates typically outpace even the broadest of charity donation bases, and come from areas first to be cut when donations slow and budgets get tight.  The community&#8217;s response to this need was GiveCamp,  a highly organize, large scale free clinic to distribute injections of software for those most in need. Software companies donate their products to the charities, hosting companies give away space on their servers and the community provides their experience and skills, free of charge, to work on one project per charity over a shotgun 48 hour weekend.</p>
<p>This was my first Give Camp, held in Ann Arbor, MI and conducted in concert with sites in columbus and Knoxville.  Eighteen local Michigan charities were selected and paired up with teams of programmers to deliver some software solution or website that the charity needed in their organization.  I understood before even arriving on Friday that this was a kind of &#8216;giving back to the community&#8217; wholly unique to computer people.  You see, we are famously known for our bursts of manic focus and obscene late night work schedules, so GiveCamp feeds these tendencies by being an all-day all-night team relay race to the finish line.  You and your charity must complete as much as you can in all 48 hours you are given.  Like a Reality TV show, Give Camp creates its own little universe where sleep is for the weak, coffee is the ambrosia of the gods, and newly introduced teammates become strong, fast friends as the obstacles mount and the enormity of the goal looms in the distance.</p>
<p>We were not in competition against each other, only against the clock and our own palatable desire to solve the charities programming puzzle and make them happy.  The local Boy Scouts, for example, were paired with my self and my teammate to create a campsite reservation site.  This hugely time consuming, mind-numbingly redundant task is one that any other company or organization with an internal IT staff would have automated before the fax machine warmed up.  For us, for two days, this problem was our whole world</p>
<p>To an outside observer Give Camp can look like an ant colony tipped on its side.  Sixty programmers and organizers running through the halls of a borrowed community college building at 3 in the morning solving each other&#8217;s problems.  &#8216;Don&#8217;t get Stuck!&#8217; one would shout, answered with &#8216;Don&#8217;t work past Stupid!&#8217;  It may not quite be exciting enough for an Aaron Sorkin drama, but it was probably more entertaining to watch than Michael Bay&#8217;s latest production.  In the small of the night, truly amazing things can and do happen.</p>
<p>It was Sunday, fifteen minutes before closing ceremony, when my team officially crossed the finish line and delivered our app to the client.  You can see it <a href="http://tehnt.heroku.com">here</a>.  Honestly what I saw when I handed the code to James, local Boy Scout administrator and our weekend contact, was all the things left we could have done.  What he saw, however, was all that it did that otherwise they would have to do themselves.  At the closing ceremony it was the same story for all the groups.  The Charities had a weekend with a team of talented programmers and what they came into the auditorium with made a huge difference in their organizations.  After another hour of speeches and applause and thanks with maybe some more crying, each developer returned home to fall soundly asleep before 8pm, maybe for the first time in their lives.</p>
<p>Give Camp is one of those richly rewarding experience that is the exclusive domain of the geeks.  We  own this space, it is ours and it is up to us to make Give Camp 2010 even better.  Go to <a href="http://givecamp.org">GiveCamp.org</a> and sign up now.</p>
<p><em>Technorati tags: <a rel="tag" href="http://technorati.com/tag/givecamp">givecamp</a>,  <a rel="tag" href="http://technorati.com/tag/code">code</a>, <a rel="tag" href="http://technorati.com/tag/programming">programming</a>, <a rel="tag" href="http://technorati.com/tag/agile+development">agile development</a>, <a rel="tag" href="http://technorati.com/tag/business">business</a></em>, <a rel="tag" href="http://technorati.com/tag/charities">charities</a>,<a rel="tag" href="http://technorati.com/tag/charity+programming">charity programming</a></p>
<p><span style="color:#800080;"><em><strong>Liked this post? Consider subscribing to our <a href="http://feeds.feedburner.com/Sazbean">RSS feed</a> or our <a href="http://sazbeanconsulting.com/newsletter">monthly newsletter</a>.</strong></em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/07/21/the-geeks-give-back-to-those-that-give-year-round/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Thoughts from KalamazooX Conference #kalx</title>
		<link>http://sazbean.com/2009/04/27/thoughts-from-kalamazoox-conference-kalx/</link>
		<comments>http://sazbean.com/2009/04/27/thoughts-from-kalamazoox-conference-kalx/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 19:45:29 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[kalamazoox]]></category>
		<category><![CDATA[kalx]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=1751</guid>
		<description><![CDATA[
I attended KalamazooX over the weekend, which was a great combination of design, business, and technical presentations.  As someone who has transitioned from a programmer into marketing &#38; strategy consulting, it was nice to see content that wasn&#8217;t just staring at code.  I believe some of the slides are up online, but here are some [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F04%2F27%2Fthoughts-from-kalamazoox-conference-kalx%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F04%2F27%2Fthoughts-from-kalamazoox-conference-kalx%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignright size-full wp-image-1757" title="kalx" src="http://sazbean.files.wordpress.com/2009/04/kalx.png" alt="kalx" width="323" height="88" />I attended <a href="http://kalamazoox.org">KalamazooX</a> over the weekend, which was a great combination of design, business, and technical presentations.  As someone who has transitioned from a programmer into marketing &amp; strategy consulting, it was nice to see content that wasn&#8217;t just staring at code.  I believe some of the slides are up online, but here are some thoughts, not from every presentation, but from some of my favorites:</p>
<p><a href="http://www.davidgiard.com/">Dave Giard</a> &#8211; Effective Customer Communication</p>
<ul>
<li>Communications is a two-way street &#8211; both sides are responsible.</li>
<li>It&#8217;s important to get/give feedback early and often.</li>
<li>You need to add value for the customer &#8211; what does the customer feel adds value? &#8211; need to know this up front.</li>
<li>Weekly status of what you did, what you plan to do next week, any issues/problems.</li>
<li>A daily standup (including the client) is better.</li>
<li>The most important part of verbal communications (any communications) is listening.</li>
</ul>
<p><a href="http://twitter.com/JamesBender">James Bender</a> &#8211; Organizational Dynamics</p>
<ul>
<li>Plug into the company&#8217;s information highway (water cooler, wiki, blog, intranet, etc.).</li>
<li>Be someone in the know.</li>
<li>Evangelize yourself and your ideas (and also your team!).</li>
<li>Build coalitions.</li>
<li>Learn the right way to gripe.</li>
</ul>
<p><a href="http://www.joshholmes.com/blog/">Josh Holmes</a> &#8211; The Art of Simplicity</p>
<ul>
<li>The definition of simplicity from Websters includes: lack of sophisitcation, good sense or intelligence &#8211; which is how technologists often think.</li>
<li>Systems need to be designed so the user knows immediately what to do and starts doing it.</li>
<li>A simple design does not mean that the problem solved was simple.</li>
<li>Users may not see a request as complex &#8211; they just know it will make their experience better.</li>
<li>Agile is a buzzword, but it&#8217;s what techs need to be in order to solve problems.</li>
<li>The right solution is not the one other technologists understand &#8211; its the one the user does.</li>
<li>Enterprise automatically adds ten times the complexity.</li>
<li>Consumer space has solved bigger issues in simpler ways.</li>
<li>We usually don&#8217;t understand who are users are &#8211; the top 3 things they do.</li>
<li>Use the right tool for the job.</li>
<li>Solving someone&#8217;s problem adds value.</li>
</ul>
<p><a href="http://twitter.com/brianhprince">Brian Prince</a> &#8211; 5 Easy Ways to Be More Agile</p>
<ul>
<li>Be Subversive &#8211; start doing things without permission, without changing what you&#8217;re doing, help people see value.</li>
<li>Stand up Meetings &#8211; what was done yesterday, doing today, roadblocks.  Don&#8217;t solve problems &#8211; have speaking token.</li>
<li>Keep &#8211; Stop &#8211; Start Meetings &#8211; Introspectives at end of each iteration.  What should we keep doing, what needs to stop, what do we need to start doing &#8211; assign people to solve by next iteration.</li>
<li>Must &#8211; Should &#8211; Could &#8211; Won&#8217;t Priorities (from user&#8217;s view).  Keep quality and priority in the picture.  Use quality in equation always.</li>
<li>Keep users and client as close as possible (not usually the same).  Ask &#8211; share &#8211; show.  Tell stories.  Use simple planning wall.</li>
</ul>
<p><a href="http://fallenrogue.com/">Leon Gersing</a> &#8211; Change</p>
<ul>
<li>Make little changes until you don&#8217;t realize that you&#8217;ve changed.</li>
<li>Be open to change.</li>
<li>Know who you are.</li>
<li>Don&#8217;t let others define who you are.</li>
<li>There are 3 states in life &#8211; job, career, enjoying life &#8211; which are not always the same.  Know which you&#8217;re in.</li>
<li>Change where you work (not always the employer, but sometimes the environment, or your state of mind).</li>
<li>If nothing ever changed, there would be no butterflies.</li>
</ul>
<p>Technorati Tags: <a rel="tag" href="http://technorati.com/tag/development">development</a>, <a rel="tag" href="http://technorati.com/tag/code">code</a>, <a rel="tag" href="http://technorati.com/tag/kalamazoox">kalamazoox</a>, <a rel="tag" href="http://technorati.com/tag/code">code</a>, <a rel="tag" href="http://technorati.com/tag/coding">coding</a>, <a rel="tag" href="http://technorati.com/tag/programming">programming</a></p>
<p><strong><span style="color:#800080;">Liked this post? Consider subscribing to our <a href="http://feeds.feedburner.com/Sazbean">RSS feed</a> or our <a href="http://sazbeanconsulting.com/newsletter">weekly newsletter</a>.</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/04/27/thoughts-from-kalamazoox-conference-kalx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heroku Out of Beta &#8211; Fast, Easy &amp; Cheap Ruby Hosting</title>
		<link>http://sazbean.com/2009/04/24/heroku-out-of-beta-fast-easy-cheap-ruby-hosting/</link>
		<comments>http://sazbean.com/2009/04/24/heroku-out-of-beta-fast-easy-cheap-ruby-hosting/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 17:12:31 +0000</pubDate>
		<dc:creator>Sarah Worsham</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=1735</guid>
		<description><![CDATA[
Heroku, who we previously covered here and here, offers quick and easy Ruby hosting.  Today their service came out of beta, with a commercial, paid version of it&#8217;s service.  Web developers can focus on development, leaving deployment, hosting and scaling of the application to Heroku.  Meant to provide affordable services which easily scale, packages start [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F04%2F24%2Fheroku-out-of-beta-fast-easy-cheap-ruby-hosting%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F04%2F24%2Fheroku-out-of-beta-fast-easy-cheap-ruby-hosting%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://heroku.com"><img class="alignleft size-full wp-image-442" style="margin:10px;" title="heroku" src="http://sazbean.files.wordpress.com/2008/12/heroku.png" alt="heroku" width="138" height="59" />Heroku</a>, who we previously covered <a href="http://sazbean.com/2008/05/30/heroku-technical-notes/">here</a> and <a href="http://sazbean.com/2008/05/29/interview-with-james-lindenbaum-ceo-of-heroku/">here</a>, offers quick and easy Ruby hosting.  Today their service came out of beta, with a commercial, paid version of it&#8217;s service.  Web developers can focus on development, leaving deployment, hosting and scaling of the application to Heroku.  Meant to provide affordable services which easily scale, <a href="http://heroku.com/pricing">packages</a> start around $36/month.  As the popularity of an application increase, Heroku can <a href="http://heroku.com/how/architecture">match demand</a>, allowing developers to start small but scale up on the same platform.</p>
<p>Developers can customize their hosting by choosing database performance and size, http performance, and add-ons.  Databases start with 5MB of storage for free and run up to 20 compute units and 2 TB of storage for $1600.  Http performance, which Heroku calls dynos, representing one process of an application, and are priced by hour starting at 1 dyno for free and 40 dynos for $1.95/hour.  There are recommended amounts of dynos for each type of database, starting at 2 for the smallest, free version.  Add-ons include additional backups or crons (some are included), with wildcard domains and delayed jobs in beta, and memcaching, workling, and AMQP planned soon.</p>
<p>More coverage:</p>
<ul>
<li><a href="http://gigaom.com/2009/04/23/heroku-to-exit-beta-start-charging-for-cloud-computing/">Heroku to Exit Beta, Start Charging for Cloud Computing</a> (GigaOM)</li>
<li><a href="http://blog.heroku.com/archives/2009/4/24/commercial_launch/">Commerical Launch</a> (Heroku)</li>
</ul>
<p>Technorati Tags: <a rel="tag" href="http://technorati.com/tag/heroku">heroku</a>, <a rel="tag" href="http://technorati.com/tag/rails">rails</a>, <a rel="tag" href="http://technorati.com/tag/ruby+on+rails">ruby on rails</a>, <a rel="tag" href="http://technorati.com/tag/ror">ror</a>, <a rel="tag" href="http://technorati.com/tag/rails+hosting">rails hosting</a>, <a rel="tag" href="http://technorati.com/tag/internet+consulting">internet consulting</a></p>
<p><strong><span style="color:#800080;">Liked this post? Consider subscribing to our <a href="http://feeds.feedburner.com/Sazbean">RSS feed</a> or our <a href="http://sazbeanconsulting.com/newsletter">weekly newsletter</a>.</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/04/24/heroku-out-of-beta-fast-easy-cheap-ruby-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum, Agile, Extreme &#8211; when programmers get ahold of a thesaurus.</title>
		<link>http://sazbean.com/2009/02/27/programmers_find_a_thesaurus/</link>
		<comments>http://sazbean.com/2009/02/27/programmers_find_a_thesaurus/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 18:53:16 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[xp]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=1161</guid>
		<description><![CDATA[
Computer people just love to name things.   The server guy who names all his machines after Star Wars characters competes with the network guy who names all his routers and switches after Star Trek characters to see who has the more obscure references.  Usually the Desktop guy wins with his collection of Windows PCs named [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F27%2Fprogrammers_find_a_thesaurus%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F27%2Fprogrammers_find_a_thesaurus%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-full wp-image-1163" style="margin:10px;" title="agile" src="http://sazbean.files.wordpress.com/2009/02/agile.jpg" alt="agile" width="175" height="240" />Computer people just love to name things.   The server guy who names all his machines after Star Wars characters competes with the network guy who names all his routers and switches after Star Trek characters to see who has the more obscure references.  Usually the Desktop guy wins with his collection of Windows PCs named after Transformer characters, but that&#8217;s beside the point.  It sounds like it is all in fun, but there is a very important reason we all do it.  Technology is hard for humans to relate to.  It is cold and lacks personality.  Names help give definition to the undefined. They help give things context.</p>
<p>Programmers, being computer people,  really get into the naming of languages and processes.  I&#8217;d like to take this post to identify and briefly explain some of the terms you may have heard your programmers using.</p>
<p><strong>Agile development</strong></p>
<p>If San Francisco could be considered not just a place but a lifestyle, Agile development would have a similar vibe in the programming world.  Typically it refers to the 12 guidelines people in software teams follow when working together on software projects, though there are widely different ways to actually put those guidelines into practice.  The ideal behind an Agile development team is that it is small, it meets all the time with each other and with the clients, and it writes code in small chunks that the customer sees working every couple weeks.  Agile was a reaction to the inflexibility of older programming procedures that didn&#8217;t allow the customer any flexibility to change their mind late in the delivery cycle.  Since customers are constantly rethinking their needs, Agile was developed to allow the code to change with the requirements.  Below are the 12 principals of the <a href="http://agilemanifesto.org/principles.html" target="_blank">Agile Manifesto</a>.</p>
<ol>
<li>Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.</li>
<li>Welcome changing requirements, even late in development. Agile processes harness change for the customer&#8217;s competitive advantage.</li>
<li>Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.</li>
<li>Business people and developers must work together daily throughout the project.</li>
<li> Build projects around motivated individuals.  Give them the environment and support they need, and trust them to get the job done.</li>
<li>The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.</li>
<li>Working software is the primary measure of progress.</li>
<li>Agile processes promote sustainable development.  The sponsors, developers, and users should be able to maintain a constant pace indefinitely.</li>
<li>Continuous attention to technical excellence and good design enhances agility.</li>
<li>Simplicity&#8211;the art of maximizing the amount of work not done&#8211;is essential.</li>
<li>The best architectures, requirements, and designs emerge from self-organizing teams.</li>
<li>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.</li>
</ol>
<p><strong>Scrum</strong></p>
<p>HR, Sales and Accounting may have meetings, but only programmers can take the basic idea of getting together in the same room and rename it a &#8217;scrum&#8217;.  Borrowed from the term used to describe a huddle in rugby, <a href="http://en.wikipedia.org/wiki/Scrum_(development)" target="_blank">a scrum</a> is a highly organized, short daily meeting of all people involved in an agile project.  It has the singular goal of keeping people focused on the project, which is really important since a &#8217;sprint&#8217;, or stretch of time allotted to write working code, is usually only two weeks.   Guidelines for scrums can sound harsh, only three questions are asked, everyone should remain standing, only people with a stake in the project should speak, but it was invented in direct contrast to pointless time-wasting mega-meetings that the Dilbert comic made an empire satirizing.</p>
<p><strong>Extreme Programming &amp; Test Driven Development<br />
</strong></p>
<p>Who wouldn&#8217;t want to work on an something with the word &#8216;Extreme&#8217; in it, huh?  Extreme Programming (XP) is very similar to Agile, or it might be more accurate to say that it is a good case study of Agile programming before there was such a term.  The real big take home from XP that sets it apart is its absolute devotion to the idea of testing.  Now, as a lil programmer, I thought testing code was for suckers who worked government jobs.  Then I was turned onto the wonders to full stack testing and how it changed my whole outlook on my craft.  Testing is really the only way to write Enterprise ready code.  Some guys saw that if you wrote your tests first, then wrote code that made the tests pass, your applications would have fewer bugs.  They called it Test Driven Development (TDD).   Turns out testing is becoming the rock star of the programming world thanks to web frameworks like Ruby on Rails and Symfony having it baked into the package.</p>
<p>This post just scratched the surface of the terms programmers (and computer people) love to throw around.  If you know of a term that you want a little help with, add it down in the comments and I&#8217;ll try to reshape it into something that hopefully makes more sense.  I&#8217;ve been known to use puppets with clients before, so anything&#8217;s possible</p>
<p>photo attributed to <strong><strong><a href="http://www.flickr.com/photos/foxtongue/">Foxtongue</a></strong></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/02/27/programmers_find_a_thesaurus/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What were they expecting?</title>
		<link>http://sazbean.com/2009/02/26/what-were-they-expecting/</link>
		<comments>http://sazbean.com/2009/02/26/what-were-they-expecting/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 14:38:50 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[customer service]]></category>
		<category><![CDATA[customer-centric]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[software management]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=1145</guid>
		<description><![CDATA[
Succeed at managing your customers expectation and you can never fail.  Fail to manage your customers expectations and you can never succeed. ~ me
This is one of my all time favorite universal lessons I have gleaned from business.  There isn&#8217;t really any part of my life that involves other people which doesn&#8217;t benefit from the [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F26%2Fwhat-were-they-expecting%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F26%2Fwhat-were-they-expecting%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p><img class="alignright size-full wp-image-1151" style="margin:10px;" title="the-conversation" src="http://sazbean.files.wordpress.com/2009/02/the-conversation.jpg" alt="the-conversation" width="240" height="180" />Succeed at managing your customers expectation and you can never fail.  Fail to manage your customers expectations and you can never succeed. ~ me</p></blockquote>
<p>This is one of my all time favorite universal lessons I have gleaned from business.  There isn&#8217;t really any part of my life that involves other people which doesn&#8217;t benefit from the practiced art of managing the expectations of those I&#8217;m interacting with.  When another human knows exactly what they can expect from you, on your terms, and when you consistently meet or beat that expectation on their terms, you have set the stage for a powerful ally in business; trust.</p>
<p>The reason this is so important is because people on a whole are very self-referential, which means they see their own perceptions and actions within the conversations and interactions they have with other people.   Imagine two people talking business over lunch.  The speaker could say &#8216;it will be a short project that we can deliver with limited resources and for a reasonable amount of money&#8217;.  The listener will build context around the statements with their own assumptions, drawn from their own experiences of what is short, limited and reasonable, that will ultimately create very different picture than the speaker meant to convey.  At that moment, an expectation was set in the mind of the client that may or may not be ironed out in the contract negotiations but will greatly influence the customers satisfaction when the project is completed.</p>
<p>I worked with a fantastic colleague on the team that had a very bad habit of responding to challenging technical requests with an automatic &#8216;Not sure yet, but that should be doable&#8217;.  What he meant to deliver was &#8216;It SHOULD be doable, but of course I won&#8217;t know until I work on it&#8221; and what the customer heard was &#8220;That WILL be EASY and there is no reason it won&#8217;t be done on time&#8221;.  So when said colleague moved heaven and earth to deliver on what turned out to be a very difficult task, the customer was unimpressed.  They had already expected it to be done without effort and was maybe a little disappointed that the colleague didn&#8217;t work on some of the other, less important features.  This is what I would call a &#8216;<strong>Technical win and an Expectation fail</strong>&#8216;</p>
<p>Here are some tools and tricks I use when working with other people to help set the expectation</p>
<ul>
<li>Pictures and mockups.  When you are working in the web industry, their really isn&#8217;t an excuse to not mockup what you are seeing in your mind for the customer.  A tool I like to use is <a href="http://www.balsamiq.com/" target="_blank">Balsamiq</a>, which is a Flash based web mockup framework that is quick and easy to use</li>
<li><a href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">Agile Development</a>.  The agile process focuses on rapid delivery of code, typically every two weeks, that gives the customer something to wrap their head around.  I think Ill do a full post on agile tomorrow</li>
<li>Closing summaries.  When I talk with customers, I have developed a technique of always closing out a conversation by saying &#8216;So, what I understand you want is&#8230;&#8217; and just re-summing everything you&#8217;ve been talking about.  Etiquette might frown on dragging on a conversation past what the listener wants to endure, but I almost always find mismatching expectations in the closing summaries.</li>
</ul>
<p>What do you do to manage someone&#8217;s expectations?</p>
<p>photo attributed to <strong><a href="http://www.flickr.com/photos/polandeze/">polandeze</a></strong></p>
<p>Technorati tags: <a rel="tag" href="http://technorati.com/tag/software">software</a>, <a rel="tag" href="http://technorati.com/tag/software+development">software development</a>, <a rel="tag" href="http://technorati.com/tag/software+management">software management</a>, <a rel="tag" href="http://technorati.com/tag/agile">agile</a>, <a rel="tag" href="http://technorati.com/tag/agile+development">agile development</a>, <a rel="tag" href="http://technorati.com/tag/customer-centric">customer-centric</a>, <a rel="tag" href="http://technorati.com/tag/customer+service">customer service</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/02/26/what-were-they-expecting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JSON and the Argonauts</title>
		<link>http://sazbean.com/2009/02/11/json_and_the_argonauts/</link>
		<comments>http://sazbean.com/2009/02/11/json_and_the_argonauts/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 17:31:43 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript object notation]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[xml]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=1002</guid>
		<description><![CDATA[
The Greeks sure were fond of super-hero team titles.  There was Jason, commander of the Argo and her crew of the best of the best, pitted against irresistible forces beyond moral man&#8217;s endurance.   What does this have to do with JSON, the JavaScript Object Notation standard used by the web 2.0&#8217;s best of the best [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F11%2Fjson_and_the_argonauts%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F11%2Fjson_and_the_argonauts%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignright size-full wp-image-1003" style="margin:10px;" title="greek-statue" src="http://sazbean.files.wordpress.com/2009/02/greek-statue.jpg" alt="greek-statue" width="160" height="240" />The Greeks sure were fond of super-hero team titles.  There was Jason, commander of the Argo and her crew of the best of the best, pitted against irresistible forces beyond moral man&#8217;s endurance.   What does this have to do with JSON, the JavaScript Object Notation standard used by the web 2.0&#8217;s best of the best of overcome an accent foe called Same Origin Policy?  Can&#8217;t think of a thing, I just really liked the title.</p>
<p><strong>A funny thing happened on the way to the Mashup.</strong> I&#8217;m sure someone somewhere, maybe even here, told you that RSS feeds were going to revolutionize the way we distribute information.  We were all so right in so many ways because RSS, or ATOM if you prefer, has opened up the world to the unimagined possibilities available online.  Think of some way that you want to consume information.  Go ahead, I&#8217;ll wait.  Ok, you are all right you can consume information that way. Oh, heh, I mean almost all of you are right.  That guy in the back with the <a href="http://blacktshirt.wordpress.com/2007/07/08/helvetica-metallica-logo-tshirt/" target="_blank">Helvetica shirt in Metalica </a>font, I&#8217;m sorry but we can&#8217;t help you with your idea.  Thing is, as much as you may want to have a single page that can then pull and update XML based RSS feeds from any site in the world from within the browser without refreshing, you&#8217;re not allowed.  It is for your own protection actually.  We call it the Same Origin Policy.</p>
<p>Here is the idea.  When your web browser pulls down a web page&#8217;s code from a modern site, it is usually pulling down a collection of HTML, Stylesheets, Javascript.  That HTML tells the page what content goes where and what images to place by the content.  The Stylesheet (CSS) tells the browser how to make that content look and how to make it act on the page.  Then the Javascript is there to give the page life, make it interact with events, make it do impressive things that we have come to love and cherrish.  In the AJAX world, those impressive things involve grabbing information from the server and updating the page without screen refresh.  Javascript is nye omnipotent in the browser, and yet there are some quantum limitations built into the works.  Beyond the sandboxing of JS, there is one little design decision from Netscape 2.0 that has totally altered the web 2.0 landscape.  Netscape decided that a browser would only allow scripts to interact with domains that the page came from.  If a page is loaded from www.bobsdiscountlasers.com then AJAX calls are limited to bobsdiscountlasers.com.  The grand illumination of mashups, where data flows from many different locations onto one page in a relevant way, almost never happened because of this.</p>
<blockquote><p>Web browsers weren&#8217;t designed with mashups in mind, and &#8216;the warts have been there from day one&#8217;, [David Boloker, cofounder of the OpenAjax Alliance and IBM's CTO of Emerging Internet Technologies] says. Browsers contain a security feature called the same-origin policy that&#8217;s meant to keep malicious code hosted on one site from grabbing data, such as stored credentials, off another site. The same-origin policy prevents websites from one domain from requesting data belonging to another domain. ~ <a href="http://www.infoq.com/news/2008/04/security-for-mashups" target="_blank">Security services and Mashups</a></p></blockquote>
<p>But, of course, Mashups do exist.  We see Google Maps on thousands of pages not under the google.com domain.  How is it done?  We&#8217;ll get to the hero of the day in a second, for now lets look at other popular workarounds</p>
<ul>
<li>Mashup at the Server Side:  Since the JS limitation is browser based, you could do all of your mashups at the server.  The server could serve as the collector of the different sources of information, combine them intellegently and cache the results.  At best this idea is inconvenient because it adds layers where they need not normally be.  At worst this does not scale when you have a single location for distributed information</li>
<li>Flash/Flex:  The Flash VM doesn&#8217;t have the Cross Domain limitation that plagues JavaScript.  A file on the server gives a list of permitted sites that the Flex app can pull data from.  I have talked with Adobe Evangalists about this option and they seemed to hint that this design decision was intented to hit javascript where it was weakest.</li>
<li>AJAX Proxy.  Similar to the first method, a proxy allows the client to pull the information through it.  It isn&#8217;t stored on the proxy, though it can be cached, and no combination is done.  Again, this is a scaling issue</li>
</ul>
<p><strong>Stop passing code, start passing data.</strong> What all of these work arounds do is bypass the security concern with Same Origin Policy (SOP).  SOP was originally intended to combat early attempts at Cross Site Scripting (XSS).  Modern XSS has a nasty list of <a href="http://en.wikipedia.org/wiki/Cross-site_scripting" target="_blank">exploits</a> that I don&#8217;t have time for here, but one way to think about it is this:  If you let Javascript pull code from untrustworthy places you are inviting problems.  One possible approach to this issue was to stop the push and pull of code but to allow the pushing and pulling raw data.  That is what JSON is, a way to encode data to be pushed and pulled using AJAX calls.  Though the X in AJAX stands for XML, AJAX really is more often using JSON because SOP will allow it to be used cross-domain.  So with JSON you can pull in Google Maps and that list of Micro Brewerys right in the browser, Mash them up using Javascript, and asyncroniously keep the data refreshed, the app reactive, and your buzz in good spirits (You are <strong><em>walking</em></strong> to these pubs, right?)</p>
<p>My prediction; RSS feeds are going to move away from XML and on to JSON in the future.  Or at minimum, support both.  John Resig, the creator of jQuery, even has a <a href="http://ejohn.org/projects/rss2json/" target="_blank">converter</a> to get us all started.</p>
<p>Photo attributed to <strong><a href="http://www.flickr.com/photos/jasonrphotography/">jasonr611</a></strong></p>
<p>Technorati tags: <a rel="tag" href="http://technorati.com/tag/software">software</a>, <a rel="tag" href="http://technorati.com/tag/json">json</a>, <a rel="tag" href="http://technorati.com/tag/javascript">javascript</a>, <a rel="tag" href="http://technorati.com/tag/javascript+object+notation">javascript object notation</a>, <a rel="tag" href="http://technorati.com/tag/rss">rss</a>, <a rel="tag" href="http://technorati.com/tag/atom">atom</a>, <a rel="tag" href="http://technorati.com/tag/xml">xml</a>, <a rel="tag" href="http://technorati.com/tag/mashup">mashup</a>, <a rel="tag" href="http://technorati.com/tag/web+development">web development</a>, <a rel="tag" href="http://technorati.com/tag/code">code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/02/11/json_and_the_argonauts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>For &#039;Bleeding Edge&#039; prepare to pay in blood</title>
		<link>http://sazbean.com/2009/02/04/for-bleeding-edge-prepare-to-pay-in-blood/</link>
		<comments>http://sazbean.com/2009/02/04/for-bleeding-edge-prepare-to-pay-in-blood/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 16:09:44 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[News & Notes]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[software management]]></category>
		<category><![CDATA[web development]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=925</guid>
		<description><![CDATA[
If you are in software development, take a good hard look at the code you are writing right now.  If the string of Roman characters resemble Java or .Net or C/C++ then I have some wonderfully awful predictions about the next ten years of your life; That language is your scarlet letter and will follow/define [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F04%2Ffor-bleeding-edge-prepare-to-pay-in-blood%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F02%2F04%2Ffor-bleeding-edge-prepare-to-pay-in-blood%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-thumbnail wp-image-929" style="margin:10px;" title="knife-edge" src="http://sazbean.files.wordpress.com/2009/02/knife-edge.jpg?w=128" alt="knife-edge" width="128" height="85" />If you are in software development, take a good hard look at the code you are writing right now.  If the string of Roman characters resemble Java or .Net or C/C++ then I have some wonderfully awful predictions about the next ten years of your life; That language is your scarlet letter and will follow/define you for the next two jobs you end up accepting.  That sounds bad but you are the blessed among the damned &#8211; You can and will find that next job.  For Bleeding Edgers, the road is not so well paved.</p>
<p>In my last job I was a Bleeding Edger.  You know one if you work with one, always looking at the latest release of the newest language to see if it has a better solution to your particular problem.   In my case as a Software Manager, being a Bleeding Edger meant an obsession with ROI in our software solutions.  Links to anything that could trim development time and/or expense filled my Delicious feed.  I pushed my team to move beyond Java&#8217;s heavy web frameworks and to adopt Rails as a rapid application prototyping framework.  We cranked out good, solid software solutions 4 times faster than our java days and I was happy.  When a project came along that could use Flash, we wrote it in Flex instead because knowing how this company worked, they&#8217;d want a desktop and an offline version in the future.  A year later we were cross compiling the Flex code into an AIR application and saving a tremendous amount of time, and we were happy.</p>
<p>But being a Bleeding Edger means there will be dark days to contrast the brilliantly sunny ones.   Our ROI figures were not enough to protect all of us throughout this economic upheaval and some would have to make the sacrifice for the rest.  I would like to say that, as the manager, I fell on my sword for them but that&#8217;s not really the case.  The decision never reached my level.  I was the highest compensated on the team and so I was killed by simple, cold math.  The blood spilled that day is still dripping.  It still hurts.</p>
<p>The software job market is a rigged system.  Heavyweights in the market put enough momentum behind enough Java and .Net and C/C++ projects that they can be considered perpetual motion machines.  A class hierarchy between Java and .Net, perpetuated by recruiters with a simple word match on a job board, stacks the deck against the Bleeding Edgers in the mainstream.  You are a Hatfield or you are a McCoy or you are an innocent bystander likely to get shot in the crossfire.  The mainstream is not a system able to help the Bleeding Edger.  Sure, there will be the occasional posting that isn&#8217;t in your location and is looking for some bizarrely specific, must have requirement that categorically eliminates all humans including the guy who originally wrote the book on the library they are using.  In the end, Bleeding Edgers need to work outside of the system.</p>
<p>For the young, there are no unemployed Bleeding Edgers only uncompensated open source code contributors.  If you have the ability to live on nearly nothing, working outside the system can be a very rewarding and ultimately fulfilling life choice.  For the responsibility burdened older generations, there are really only two options as a Bleeding Edger.  The first, and likely most chosen, is to re-assimilate into the collective; scrub your resume of all references to Ruby and Jython, and  Grail, prop up your sun certifications if you have them, and become a team player.  The rest of us Bleeding Edgers, the ones the economy hasn&#8217;t driven to ditch digging, will become the countries next batch of serial startup founders.  We will be easy to spot, just look for the scars.</p>
<p>Technorati Tags:  <a rel="tag" href="http://technorati.com/tag/code">code</a>,   <a rel="tag" href="http://technorati.com/tag/ruby+on+rails">ruby on rails</a>,  <a rel="tag" href="http://technorati.com/tag/ROR">ROR</a>, <a rel="tag" href="http://technorati.com/tag/software">software</a>, <a rel="tag" href="http://technorati.com/tag/software+management">software management</a>, <a rel="tag" href="http://technorati.com/tag/software+development">software development</a>, <a rel="tag" href="http://technorati.com/tag/web+development">web development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/02/04/for-bleeding-edge-prepare-to-pay-in-blood/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CodeMash Jam Session</title>
		<link>http://sazbean.com/2009/01/10/codemash-jam-session/</link>
		<comments>http://sazbean.com/2009/01/10/codemash-jam-session/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 02:25:27 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[codemash]]></category>
		<category><![CDATA[codemash2009]]></category>
		<category><![CDATA[jam session]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=670</guid>
		<description><![CDATA[
CodeMash Jam Session on Vimeo « SazbeanBefore there was Rock Band, people spent time playing actual instruments.  This pickup band were amazing musicians independently, but riffing off each other they were just outstanding.
CodeMash Jam Session from Sazbean on Vimeo.
]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F10%2Fcodemash-jam-session%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F10%2Fcodemash-jam-session%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://vimeo.com/2786441">CodeMash Jam Session on Vimeo « Sazbean</a>Before there was Rock Band, people spent time playing actual instruments.  This pickup band were amazing musicians independently, but riffing off each other they were just outstanding.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2786441&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=2786441&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/2786441">CodeMash Jam Session</a> from <a href="http://vimeo.com/sazbean">Sazbean</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/01/10/codemash-jam-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeMash 2009 &#8211; Friday Morning Sessions</title>
		<link>http://sazbean.com/2009/01/09/codemash-2009-friday-morning-sessions/</link>
		<comments>http://sazbean.com/2009/01/09/codemash-2009-friday-morning-sessions/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 21:45:47 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[codemash]]></category>
		<category><![CDATA[codemash2009]]></category>
		<category><![CDATA[edgecase]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[testing]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=657</guid>
		<description><![CDATA[
The guy who wrote Rails was clearly brilliant.  He just didn&#8217;t have alot of real world experience ~ Joe O&#8217;Brien, talking about the limitations of testing within Rails
So Joe O&#8217;Brien, from EdgeCase, is one of those really exciting presenters to watch because it is a certainty that both you and him are both going to [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F09%2Fcodemash-2009-friday-morning-sessions%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F09%2Fcodemash-2009-friday-morning-sessions%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p><img class="alignright" style="margin:10px;" title="CodeMash 2009" src="http://iterativerose.com/files/CodeMash-logo-small.gif" alt="" width="85" height="85" />The guy who wrote Rails was clearly brilliant.  He just didn&#8217;t have alot of real world experience ~ Joe O&#8217;Brien, talking about the limitations of testing within Rails</p></blockquote>
<p>So Joe O&#8217;Brien, from <a href="http://edgecase.com" target="_blank">EdgeCase</a>, is one of those really exciting presenters to watch because it is a certainty that both you and him are both going to learn something within 30 minutes.  Throwing the presentation safety net away and going off the map, Joe tackled the tangled subject of testing in rails by the only way that makes sense, actually doing it. Here is a bit of what you missed:</p>
<ol>
<li>Make a rails project, open a test file and make some assertions.</li>
<li>Fix your errors and make more assertions.</li>
<li>goto step 2</li>
</ol>
<p>This was a great way to see they subject matter come alive, warts and all.  If Joe had the courage to start hacking away at a program&#8217;s test code in front of 30 people, maybe it wont be so scary when you try it in the comfort and protection of your cube next week.   So here are some of the things we all learned from this demonstration:</p>
<ul>
<li>Mock up things to make tests more isolated can be proven by breaking the fixtures layer and demonstrating how brittle it really is.</li>
<li>Separating controller tests from models and views is a good thing!</li>
<li>Integration test that doesn&#8217;t start with the brower isn&#8217;t really integrated</li>
<li>Changing from QUERTY to Devorak keyboard mappings a week before a live demo makes for awesome typos</li>
</ul>
<p>Look to March for the marriage of Merb and Rails for an alternative to the ActiveRecord ORM.  Also, learn to love mocking in test and find a moching library that you like, be it RSpec or Mocha or FlexMock (which they use in EdgeRails because it WAS actually invented there).  Also, look to the Pragmatic Programmers for a screencast on testing from Joe and Jim sometime soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/01/09/codemash-2009-friday-morning-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeMash &#8211; Thursday Afternoon sessions</title>
		<link>http://sazbean.com/2009/01/09/codemash-thursday-afternoon-sessions/</link>
		<comments>http://sazbean.com/2009/01/09/codemash-thursday-afternoon-sessions/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 21:30:02 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[codemash]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[functional programming]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=648</guid>
		<description><![CDATA[
Remember fear is the mind killer, so just get over it and learn Functional Programming ~ Kevin Smith talking about Erlang
The two afternoon sessions, Erlang the Basics and Functional Concepts for OOP Developers, were one &#8211; two punches to the gut, in a good way.  If you tried to read a Functional Programming tutorial, maybe [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F09%2Fcodemash-thursday-afternoon-sessions%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F09%2Fcodemash-thursday-afternoon-sessions%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p><img class="alignright" style="margin:10px;" title="Codemash 2009" src="http://iterativerose.com/files/CodeMash-logo-small.gif" alt="" width="85" height="85" />Remember fear is the mind killer, so just get over it and learn Functional Programming ~ Kevin Smith talking about Erlang</p></blockquote>
<p>The two afternoon sessions, Erlang the Basics and Functional Concepts for OOP Developers, were one &#8211; two punches to the gut, in a good way.  If you tried to read a Functional Programming tutorial, maybe waded into the Lamda Calculus pool and found it didn&#8217;t have a bottom, you&#8217;re not alone.  I remember just innocently hitting Wikipedia for a definition of Functional Programming only to be turned back by the first sentence comprised entirely of mathematical symbols and polysyllabic words without definitions that didn&#8217;t also have mathematical symbols and polysyllabic words.</p>
<p>Thankfully, for the cost of gas, a room and a cheap ticket to this conference, I got the opportunity to let real functional programming masters explain it to me in English.</p>
<p>Kevin Smith, of EngineYard, does Erlang for a living.  That kind of makes him a grand pooba of Functional Languages in my book since OOP just about buries the list of code written today.  Still, as Kevin noted in his talk, there are high profile sites using Erlang today &#8211; Facebook is using it for chat, Amazon uses it as does CouchDB.  Unlike Haskell with its academic background, Erlang is the programmers functional programming languages &#8216;to make hard things eas(ier)&#8217;.  So what are those really hard things?  Well concurrency is the big one.</p>
<p>Not long ago, programmers had a one-machine-one-CPU view of the world that served them well in the Object Oriented Programming universe.  Software was rarely written to work as a unit over more than one CPU at a time because it was 1) very very hard and 2) impractical and unneeded for most cases.  Today, however, programmers are realizing that the multi-core growth path of hardware manufacturers has hijacked the stage, forcing us all to become concurrency experts. While OOP languages are saddled with the baggage of supporting shared memory and mutable variables, reducing them to a one legged man in a ass kicking contest, their distant cousin Functional Programming Languages aren&#8217;t feeling the same strain.  FP&#8217;s have immutable &#8216;variables&#8217; (really they are unchanging pointers, so more like constants) and a very low cost for spinning up processes.  This frees them to run in a highly distributed way on many cores and many machines collaboratively. Erlang, written by the team at Computer Science Labs at Ericisson, had a real world need for a highly concurrent language to write their phone system on.  Its design works wonderfully to harness that 8 core desktop you have sitting under your desk.</p>
<p>Bryan Weber was kind enough to expond on this foundation talk by exploring Functional Concepts for OOP Developers.  My take home from this talk was the message model used by most Erlang programmers to achieve concurrency.  Like Scala, Erlang uses a mailbox with a send and receive paring to smoothly weave a web of interconnected processes that can be located anywhere on the network.  Simply spawn a process, which gives you a pid in response.  Now send a message to the pid.  The spawned process does a recieve to check the mailbox for the message.  Want to send a response, no problem.  Have the spawned process send to the parent and have the parent check the mailbock.  Done, you just did concurrent work.  This little scene is played out using Actors, which naturally, is an apt analogy.</p>
<p>I don&#8217;t know yet if FP will make it into my world any time soon.  Our concurrency neeeds are small so far.  I would say that Functional Programming isn&#8217;t the solution to all problems, but it just may be the answer to that tricky problem defying all other solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/01/09/codemash-thursday-afternoon-sessions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CodeMash 2009 &#8211; Thursday Morning Sessions</title>
		<link>http://sazbean.com/2009/01/08/codemash-2008-thursday-morning-sessions/</link>
		<comments>http://sazbean.com/2009/01/08/codemash-2008-thursday-morning-sessions/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 21:20:06 +0000</pubDate>
		<dc:creator>Aaron Worsham</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[clr]]></category>
		<category><![CDATA[codemash]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[ruby]]></category>
		<guid isPermaLink="false">http://sazbean.com/?p=634</guid>
		<description><![CDATA[
Whould you want your surgeon to have a dull knife? ~ Nathaniel Schutta defending dynamic languages like Ruby as &#8217;sharper tools&#8217;
Travel issues prevented me from seeing the very early sessions of CodeMash, which was a shame because I was very interested in Eric Meyer&#8217;s talk on how JavaScript Will Save Us All!  (I added the [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: right; margin-left:2px; margin-bottom:2px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F08%2Fcodemash-2008-thursday-morning-sessions%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsazbean.com%2F2009%2F01%2F08%2Fcodemash-2008-thursday-morning-sessions%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p><img class="alignright" style="margin:10px;" title="CodeMash 2009" src="http://iterativerose.com/files/CodeMash-logo-small.gif" alt="" width="85" height="85" />Whould you want your surgeon to have a dull knife? ~ Nathaniel Schutta defending dynamic languages like Ruby as &#8217;sharper tools&#8217;</p></blockquote>
<p>Travel issues prevented me from seeing the very early sessions of CodeMash, which was a shame because I was very interested in Eric Meyer&#8217;s talk on how JavaScript Will Save Us All!  (I added the exclamation marks because I think that&#8217;s what he really intended).  Still, I made it early enough to sit through a couple very good presentations before lunch, both of which followed a bit of a theme.  One was a love fest for Dynamic Languages as a persecuted, second class citizen given expertly by Nathaniel Schutta.  His message is simple, programmers need to be Polyglots and if you can&#8217;t handle learning different languages than you should get out of the business.  Harsh, but dead on accurate.  One of the languages you should have in your tool belt, Nathaniel tells us, is a Dynamic Language and that you can do a whole lot worse than Ruby.  I am already sold on this idea, or was years ago when I was nearly alone in lecture rooms during similar presentations.  Since then the crowd has gotten bigger but the message is still the same.  Most of this revolves around dismantling the arguments for the need of static typing to prevent errors from bad programmers.  Truth is, bad programmers don&#8217;t get better when they have a wet nurse hand out brainless advice through compiler warnings or errors.  Take off the training wheels already and let&#8217;s get some code written already.</p>
<blockquote><p>You go though more hoops to do it, but you can do it ~ <span style="text-decoration:line-through;">Venkat Subramanian</span> Mads Torgersen talking about Dynamic languages on C#</p></blockquote>
<p><span style="text-decoration:line-through;">Venkat</span> Mads works for Microsoft on the C# language.  Now I am not genetically predispositioned towards this kind of talk, but since it was while I ate my ham on marbled rye, I felt no great persuasion to not hearing the good gentleman out.  Glad I did, though, because there were some interesting things going on in the CLR camp.  CLR itself was a happening idea, a VM that was designed from the beginning to be a shared platform (Common Language Runtime) so the pieces where already there to do something interesting.  However, it seems that early decisions were made to optimise speed for the C# type base on the CLR, leaving non-microsoft languages somewhat at a disadvantage and me somewhat bewildered by the earlier statements.  Dynamic languages, for example, run though a DLR library to get to the CLR.  This Dynamic Language Runtime handles the bindings to Ruby and Python, so IronRuby and IronPython handle the mappings between DLR and CLR maybe?  I was somewhat confused.  If you type something in your code as &#8216;Dynamic&#8217; it is a Dynamic type in the compiler but then reverts to its true type in runtime to allow for the dynamic langages to duck type the thing.  For a complacated problem, the fact that this solution made perfect sense to someone as slow as me is a good sign that they might be on to something.</p>
]]></content:encoded>
			<wfw:commentRss>http://sazbean.com/2009/01/08/codemash-2008-thursday-morning-sessions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
