<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>GrokCode</title>
	
	<link>http://grokcode.com</link>
	<description />
	<lastBuildDate>Fri, 27 Apr 2012 00:48:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GrokCode" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="grokcode" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><thespringbox:skin xmlns:thespringbox="http://www.thespringbox.com/dtds/thespringbox-1.0.dtd">http://feeds.feedburner.com/GrokCode?format=skin</thespringbox:skin><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">GrokCode</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Dear Python, Why Are You So Ugly?</title>
		<link>http://grokcode.com/746/dear-python-why-are-you-so-ugly/</link>
		<comments>http://grokcode.com/746/dear-python-why-are-you-so-ugly/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 12:04:02 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[UX design]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=746</guid>
		<description><![CDATA[Dear Python, something has been bothering me for a while. Its just that, well, ummm&#8230;you&#8217;re kind of ugly. Look, you are beautiful inside: Python is a beautiful language and the Python community is open and welcoming. But Python resources are ugly enough to affect usability and adoption. This is damaging to the community. Documentation and [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Python, something has been bothering me for a while. Its just that, well, ummm&#8230;you&#8217;re kind of ugly. Look, you are beautiful inside: Python is a beautiful language and the Python community is open and welcoming. But Python resources are ugly enough to affect usability and adoption. This is damaging to the community.<span id="more-746"></span> </p>
<p>Documentation and tutorials are often difficult to navigate. Products built with Python don&#8217;t put any thought into design. Blogging software written in Python helps create more ugly blogs about Python. Pythonistas just don&#8217;t care about presentation.</p>
<p>Let&#8217;s compare the usability and design of some different Python and Ruby sites. Ruby is a good reference point since it occupies a similar niche in the programming language ecosystem and is roughly the same age.</p>
<p><a href="http://www.learnpython.org/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/learn-python-tutorial.png" alt="Python Interactive Tutorial" width="322" height="240" class="alignleft size-full wp-image-756" /></a><a href="http://tryruby.org/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/ruby-tutorial-Code-School-TryRuby.png" alt="Ruby Interactive Tutorial" width="322" height="240" class="alignright size-full wp-image-754" /></a></p>
<p>Above are online interactive tutorials for learning Python vs. Ruby. Learnpython.org isn&#8217;t ugly exactly, it&#8217;s just that Try Ruby is so much more polished. It&#8217;s obvious that a professional designer had a hand in Try Ruby, whereas the design of learnpython.org was thrown together by a programmer who later slapped a few ads on it and called it done. Which tutorial would you rather use?  </p>
<p><a href="https://www.djangoproject.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/django-framework2.png" alt="Django web framework" width="322" height="240" class="alignleft size-full wp-image-760" /></a><a href="http://rubyonrails.org/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/ruby-on-rails-framework1.png" alt="Ruby on Rails web framework" width="322" height="240" class="alignright size-full wp-image-761" /></a></p>
<p>Here are the homepages for Django and Ruby on Rails, popular web frameworks. Django&#8217;s homepage is poorly organized. The entire page is just a mess of links with no clear emphasis on anything. In contrast, the Ruby on Rails homepage does a good job of introducing people to Rails and pointing them to different areas of the site.</p>
<p><a href="http://www.holovaty.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/Adrian-Holovaty.png" alt="Adrian Holovaty's Homepage" width="322" height="240" class="alignleft size-full wp-image-763" /></a><a href="http://david.heinemeierhansson.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/David-Heinemeier-Hansson.png" alt="David Heinemeier Hansson's Homepage" width="322" height="240" class="alignright size-full wp-image-762" /></a></p>
<p>Homepage of Django co-creator Adrian Holovaty vs. Ruby on Rails creator David Heinemeier Hansson. Both are well organized, but it is obvious at a glance who places importance on professional design and who doesn&#8217;t.</p>
<p><a href="https://developers.google.com/appengine/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/Google-App-Engine.png" alt="Google App Engine hosting" width="322" height="240" class="alignleft size-full wp-image-769" /></a><a href="http://www.heroku.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/Heroku-Cloud-Application-Platform.png" alt="Heroku cloud hosting" width="322" height="240" class="alignright size-full wp-image-768" /></a></p>
<p>Cloud hosting: Google App Engine vs. Heroku. Once again the Ruby side is sexier.</p>
<p><a href="http://www.blogofile.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/Blogofile.png" alt="Blogofile blogging software" width="322" height="240" class="alignleft size-full wp-image-773" /></a><a href="http://jekyllrb.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/jekyll.png" alt="Jekyll bloggin software" width="322" height="240" class="alignright size-full wp-image-770" /></a></p>
<p><a href="http://tinkerer.bitbucket.org/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/tinkerer.png" alt="Tinkerer Python blogging software" width="322" height="240" class="alignleft size-full wp-image-772" /></a><a href="http://octopress.org/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/Octopress.png" alt="Octopress Ruby blogging software" width="322" height="240" class="alignright size-full wp-image-771" /></a></p>
<p>Python blogging software vs Ruby blogging software. The Python blog designs are uninspiring and unpolished, while the Ruby designs are striking. And who doesn&#8217;t love octopodes?</p>
<p><a href="http://www.egenix.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/egenix1.png" alt="eGenix Python consulting" width="322" height="240" class="alignleft size-full wp-image-778" /></a><a href="http://norbauerinc.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/ruby-on-rails-consulting.png" alt="Norbauerinc ruby consulting" width="322" height="240" class="alignright size-full wp-image-774" /></a></p>
<p><a href="http://www.tummy.com/Services/Consulting/python.html"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/tummy.png" alt="Tummy Python consulting" width="322" height="240" class="alignleft size-full wp-image-776" /></a><a href="http://littlelines.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/littlelines.png" alt="Littlelines Ruby consulting" width="322" height="240" class="alignright size-full wp-image-775" /></a></p>
<p>Some top Google search results for &#8220;python consulting&#8221; vs. &#8220;ruby consulting&#8221;. The Python results look painfully outdated.</p>
<p>Maybe Ruby has an advantage because it is more tightly focused on web programming? It seems likely that consultants for web apps would have nicer web pages than consultants working on, say, scientific problems. To eliminate any unfair advantage, below are some top Google search results for &#8220;django consulting&#8221; vs. &#8220;ruby on rails consulting&#8221;.</p>
<p><a href="http://www.fezconsulting.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/fez-consulting.png" alt="Fez Django consulting" width="322" height="240" class="alignleft size-full wp-image-780" /></a><a href="http://integrumtech.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/scrum-and-agile-coaching.png" alt="Scrum and agile rails consulting"  width="322" height="240" class="alignright size-full wp-image-781" /></a></p>
<p>It doesn&#8217;t matter. Python is still the ugly duckling.</p>
<p>This wasn&#8217;t a scientific comparison &#8211; somebody could try show the opposite conclusion by cherry-picking a different set of sites &#8211; but I think the screenshots I used are pretty representative. I also think that most people who have spent a little bit of time in both communities will agree that Python sites <em>are</em> ugly compared to Ruby sites.</p>
<h2>Why does this happen?</h2>
<p>Either Pythonistas aren&#8217;t pairing with designers as often as Rubyists, Pythonistas have less design talent, or Pythonistas simply don&#8217;t care enough about design to spend the time to do it right. I&#8217;m not really sure which is the case.</p>
<h2>Does it matter?</h2>
<p>Yes! This stuff matters. </p>
<p>It&#8217;s not just that Python sites are ugly (even though they are). It&#8217;s that the uglyness makes sites hard to navigate and hard to use. It&#8217;s that nobody is inspired by uglyness and nobody wants to use ugly products when there are better options. Nobody wants to hire someone who builds ugly web apps. It is unprofessional and sloppy to be so ugly.</p>
<p>This damages the Python community.</p>
<h2>How can we fix it?</h2>
<p>If you are a Python coder (or any type of coder who doesn&#8217;t fully grok design), spend some time learning basic design principles. Try <a href="http://www.amazon.com/gp/product/1119998956/ref=as_li_ss_tl?ie=UTF8&#038;tag=grok-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1119998956">Design for Hackers</a>, <a href="http://bootstrappingdesign.com/">Bootstrapping Design</a>, or <a href="http://sachagreif.com/ebook/">Step by Step UI Design</a>. [Edit: Also check out this lightening talk on <a href="http://t.co/nS6vG0cj">attracting designers to your project</a>.] Then make friends with designers and know when to call them.</p>
<img src="http://feeds.feedburner.com/~r/GrokCode/~4/quP_2lXpfEs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/746/dear-python-why-are-you-so-ugly/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>Startup Sheep Vs. Non-Startup Goats (Or Transitioning From Coder to Founder)</title>
		<link>http://grokcode.com/741/startup-sheep-vs-non-startup-goats-or-transitioning-from-coder-to-founder/</link>
		<comments>http://grokcode.com/741/startup-sheep-vs-non-startup-goats-or-transitioning-from-coder-to-founder/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 12:23:32 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[coder]]></category>
		<category><![CDATA[founder]]></category>
		<category><![CDATA[launching]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[startups]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=741</guid>
		<description><![CDATA[There is some famous research, by Saeed Dehnadi and Richard Bornat, about &#8220;programming sheep and non-programming goats.&#8221; The gist is that educators find that there are two populations of students, those who can program, and those who can&#8217;t. Each population has it&#8217;s own independent bell curve. This &#8220;double hump&#8221; persists despite variations in programming language, [...]]]></description>
			<content:encoded><![CDATA[<p>There is some <a href="http://www.eis.mdx.ac.uk/research/PhDArea/saeed/">famous research</a>, by Saeed Dehnadi and Richard Bornat, about &#8220;programming sheep and non-programming goats.&#8221; The gist is that educators find that there are two populations of students, those who can program, and those who can&#8217;t. Each population has it&#8217;s own independent bell curve. This &#8220;double hump&#8221; persists despite variations in programming language, application type, IDE, and student motivation.<span id="more-741"></span></p>
<p>So, there are natural born programmers. And there are natural born non-programmers.</p>
<p>Most natural born programmers notice this at some point (consciously or not), but often the conclusion they draw from it is overly general. Coders who can code may naively expect to found startups that, ermm, start. Or they may expect to be naturally good at other things that are only tangentially related to coding.</p>
<p>Lets take the example of a founder working on a software startup. Our founder is a programmer, at the top end of the programming bell curve. He is a really smart guy, he has done some reading on startups, but he hasn&#8217;t launched anything before, and he is entirely unaware that he has developed a severe case of <a href="http://steve-yegge.blogspot.com/2009_04_01_archive.html">shit&#8217;s easy syndrome</a> regarding the non-programming tasks that need to get done before launch.</p>
<p>As programmers, we learn to be <a href="http://grokcode.com/722/be-a-paranoid-pessimistic-programmer/">obsesively paranoid with our requirements analysis, timelines, and code</a> otherwise the project will run off the rails. But we don&#8217;t apply that same rigor for business tasks, because well, that shit&#8217;s easy, right?</p>
<h2>Turning a project into a product &#8211; that shit&#8217;s not easy</h2>
<p>Packaging a programming project into a product that can be sold is a complex process. Assuming that the programming side is a beautiful finely-tuned instrument ticking along perfectly, there are still a behemothic number of things that need to be done to get it into the hands of paying customers, and each decision that needs to be made opens up into a fractally expanding rabbit hole leading to an infinite number of other decisions.</p>
<p>It starts off innocently enough: OK I need a website to sell this thing. How about a site with a free theme plus some marketing copy explaining the product tied into a simple shopping cart so customers can buy the product.</p>
<p>Which quickly turns into: How about a site with a free theme (which themes are optimized for SEO, which are optimized for conversions, how about some A/B testing, hey why is my site full of spam<sup>[<a href="http://grokcode.com/741/startup-sheep-vs-non-startup-goats-or-transitioning-from-coder-to-founder/#footnote_0_741" id="identifier_0_741" class="footnote-link footnote-identifier-link" title=" Why you should never search for free WordPress themes ">1</a>]</sup> &#8230;) plus some marketing copy explaining the product (what kind of copy sells, OK &#8220;benefits&#8221; are better than &#8220;features&#8221;, but now what are the product&#8217;s benefits&#8230;) tied into a simple shopping cart (secure digital delivery, payment processing, cart software, should I write some of this myself, will this stack work with an affiliate program&#8230;) so customers (who exactly are my customers, what &#8220;tribe&#8221; are they in, how do I find them, should I try advertising, where&#8230;) can buy the product. And spirals out of control from there.</p>
<p>It&#8217;s becoming obvious how &#8220;hello world hooked up to a random number generator&#8221; requires a super-smart, full-time guy doing the business tasks.<sup>[<a href="http://grokcode.com/741/startup-sheep-vs-non-startup-goats-or-transitioning-from-coder-to-founder/#footnote_1_741" id="identifier_1_741" class="footnote-link footnote-identifier-link" title="This is in reference to Patrick McKenzie&amp;#8216;s Bingo Card Creator software, which is technically pretty unsophisticated itself, but is supported by complex mechanisms for A/B testing, scalable content generation, conversion tracking, and various other types of optimization.">2</a>]</sup></p>
<p>Meanwhile, all of the startup guru expert guys are in my head screaming, &#8220;JUST LAUNCH! Iterate later,&#8221; but at this point I have lost all sense of what is absolutely necessary to prevent everything from blowing up in my face, what will just make me look stupid if it breaks, and what I can launch without and add later.</p>
<p>This launch paralysis is a problem for startups on down to micro-startups and coders that are just trying to make a bit of side money off of a weekend project. Programmers are probably more susceptible to launch paralysis because we are used to just naturally &#8216;getting it&#8217; (remember, we have our own bell curve), and when confronted with mushy tasks like research or copywriting that don&#8217;t require the rigor of programming, we tend to fall into the shit&#8217;s easy trap.</p>
<h2>A Tiny Example</h2>
<p>My idea was to launch a weekend project, and use the experience to identify problems and iron out glitches in my workflow before tackling something bigger. I uncovered more than just glitches. Everything took drastically longer than expected, and some things I didn&#8217;t plan for at all. </p>
<p><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/time-to-launch-actual-vs-estimated.png" alt="Time to Launch: Planned vs. Actual" width="615" height="375" class="aligncenter size-full wp-image-743" /></p>
<p>The graph above is data from a tiny project that makes some head-smackingly simple changes to Amazon links so that WordPress blogs earn worldwide commissions instead of just US commissions. I assumed it would be easy to sell since the purchase is so easy to justify &#8211; once a blog has a certain threshold of earnings from amazon.com, the plugin is pretty much guaranteed to pay for itself. If you are interested, <a href="http://geotargeter.net">click here to see how the plugin increases earnings</a>.</p>
<p>This wasn&#8217;t a startup. Calling it a micro-startup would be generous. It&#8217;s a WordPress plugin. We&#8217;re talking 700 lines of code, tops. But it still took 5 months to launch it. I was only working on it part time, but still, the number of hours spent getting ready to launch such a simple project is staggering.</p>
<p>Much of that time was spent researching different tools, not actually integrating them. Luckily, most of that knowledge will transfer to future projects. Now I have a standard toolchain that handles design, digital delivery, payment processing, A/B testing, etc. I will be able to put this type of site together much faster in the future.</p>
<h2>So, it finally launched. Sheep or goat?</h2>
<p>Sales so far have been lower than expected, and certainly less than spectacular. At times it feels a lot like a big goat failure. But there are still some sheep to be found. After <a href="http://www.jasonshen.com/2011/getting-your-groove-back/">stepping back for a bit of perspective</a>, I remember that this little failure created some big wins. First, all of that research gave me a standard toolchain for launching mini software startups (<a href="http://grokcode.com/732/launch-faster-the-tools-to-do-it-without-looking-like-a-fool/">see my toolchain here</a>). Next time things will move much faster. Second, even though the plugin hasn&#8217;t earned much through sales, having it installed on my own sites has given a nice bump to passive income.</p>
<p>The launch isn&#8217;t really the end of the story. After launch comes a whole new rabbit hole of customer acquisition and iterating the product. It&#8217;s a bit too early to make a success or failure call. Everyone says that an overnight success takes years.</p>
<ol class="footnotes"><li id="footnote_0_741" class="footnote"> <a href="http://wpmu.org/why-you-should-never-search-for-free-wordpress-themes-in-google-or-anywhere-else/">Why you should never search for free WordPress themes</a> </li><li id="footnote_1_741" class="footnote">This is in reference to <a href="http://www.kalzumeus.com/">Patrick McKenzie</a>&#8216;s Bingo Card Creator software, which is technically pretty unsophisticated itself, but is supported by complex mechanisms for A/B testing, scalable content generation, conversion tracking, and various other types of optimization.</li></ol><img src="http://feeds.feedburner.com/~r/GrokCode/~4/3W-kFqdcqFM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/741/startup-sheep-vs-non-startup-goats-or-transitioning-from-coder-to-founder/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Launch Faster – The Tools To Do It Without Looking Like a Fool</title>
		<link>http://grokcode.com/732/launch-faster-the-tools-to-do-it-without-looking-like-a-fool/</link>
		<comments>http://grokcode.com/732/launch-faster-the-tools-to-do-it-without-looking-like-a-fool/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 15:35:33 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Books & Tools]]></category>
		<category><![CDATA[a/b testing]]></category>
		<category><![CDATA[affiliate programs]]></category>
		<category><![CDATA[fetchapp]]></category>
		<category><![CDATA[fivvr]]></category>
		<category><![CDATA[freshbooks]]></category>
		<category><![CDATA[launching]]></category>
		<category><![CDATA[sales]]></category>
		<category><![CDATA[startups]]></category>
		<category><![CDATA[stripe]]></category>
		<category><![CDATA[themeforest]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=732</guid>
		<description><![CDATA[Launching is only trivial if: 1) you have done it tons of times and already have a standard toolchain or 2) you don&#8217;t care about user experience, conversion optimization, design, or looking like a fool. My intent is to give recommendations that will be of use to other programmers who are trying to quickly turn [...]]]></description>
			<content:encoded><![CDATA[<p>Launching is only trivial if: 1) you have done it tons of times and already have a standard toolchain or 2) you don&#8217;t care about user experience, conversion optimization, design, or looking like a fool. My intent is to give recommendations that will be of use to other programmers who are trying to quickly turn a side project into a professional product. If you have a &#8220;real startup&#8221; with more resources, this article will be less valuable.<span id="more-732"></span></p>
<p>Assuming you already have a working side project or product (no small feat in itself, but not difficult for a coder to put together), the biggest missing piece is a website for getting that project into the hands of customers. It&#8217;s easy to underestimate how much work it takes to do this part well if you have never done it before &#8211; design, conversion optimization, payment processing, secure digital product delivery, analytics, affiliate programs&#8230; </p>
<p>Researching this stuff is a <em>huge</em> time suck. Here are the tools I recommend for getting a professional site done quickly. This setup has no monthly fees and low per transaction fees, but does require some glue code to get working. </p>
<p><a href="http://themeforest.net?ref=grokcode"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/themeforest.jpg" alt="themeforest screenshot" width="360" height="209" class="alignleft size-full" /></a><a href="http://themeforest.net?ref=grokcode">ThemeForest</a> is an online marketplace for site templates and themes.</p>
<p>Even if you plan on moving to a custom design later, using a pre-built theme at first will save time and let you launch sooner. Plus the initial feedback from customers who bought the product on the themed site will help to guide the custom design.</p>
<p>I prefer ThemeForest because all themes are manually reviewed by the ThemeForest staff before being added to the store &#8211; this means no secret spam links or malicious code embedded in your themes. (This is a huge problem with free themes.)</p>
<p>Professional looking themes typically sell for between $8 and $15. <a href="http://themeforest.net?ref=grokcode">Browse themes here.</a></p>
<p>A stock theme will still need some customization. For custom graphics, try <a href="http://fiverr.com/">Fivvr</a>.</p>
<p>I add a few extra pages to the theme to handle checkout: a payment page, a verify purchase page, and a thank-you or payment received page. These pages contain a bit of custom glue code to use my preferred payment processor, digital delivery method, and affiliate program tracker. The other benefit of handling these pages myself, instead of passing control off to an external cart or payment processor, is that it allows more control over the checkout process.  This is valuable for gathering data about cart abandonment rates, providing opportunities for upselling, and optimizing these pages for conversion. </p>
<p><a href="https://stripe.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/stripe.jpg" alt="stripe screenshot" width="360" height="209" class="alignleft size-full" /></a>Previously, writing or hosting those pages yourself would be a huge security risk and a PCI compliance nightmare, but with <a href="http://stripe.com">Stripe</a> to do the heavy lifting it&#8217;s a secure option.</p>
<p>Stripe makes it easy to accept credit cards on the web.</p>
<p>Payments take place through stripe.js, so your customers never leave your site during the checkout process, and you skip most PCI requirements since the transaction itself happens on Stripe&#8217;s servers, not yours.</p>
<p>The API is a joy to work with, and there are Stripe employees hanging out in the Campfire room at all hours of the day and night who can answer integration questions.</p>
<p>Cost is 2.9% plus $0.30 per successful charge. There are no hidden fees. Earnings are transfered to your account an a 7 day rolling basis.</p>
<p>Unlike most forms of accepting online payments, the sign up process is painless, and you can start with the test API right away. <a href="https://stripe.com/">Sign up for Stripe.</a></p>
<p><a href="http://fetchapp.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/fetch.jpg" alt="fetch screenshot" width="360" height="209" class="alignleft size-full" /></a>Once payment has been processed, <a href="http://fetchapp.com/">FetchApp</a> provides secure delivery of digital files.</p>
<p>Each purchase triggers the creation of a unique download link. You can configure the length of time the link is valid and the number of times it can be used.</p>
<p>There is simple online interface and an equally slick API to manage products, orders, and customers. The feature set includes the ability to send free trials and notify customers when a new version of a product is available.</p>
<p>FetchApp integrates with a number of shopping carts and payment providers out of the box, but my setup uses the API.</p>
<p>Pricing is based on amount of storage required, not number of sales. The free plan covers up to 1MB. <a href="http://app.fetchapp.com/signup?ref=r5bf">FetchApp sign up page.</a> </p>
<p>The above services mixed with some good marketing copy will get you up and running, but you will certainly want to setup a few extras like analytics, A/B testing, and possibly an affiliate program.</p>
<p><a href="http://www.google.com/analytics/">Google analytics</a> is the standard choice for analytics &#8211; it is easy to setup and provides tons of useful information.</p>
<p><a href="http://www.google.com/websiteoptimizer"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/google-website-optimizer.jpg" alt="google website optimizer screenshot" width="360" height="209" class="alignleft size-full" /></a><a href="http://www.google.com/websiteoptimizer">Google Website Optimizer</a> provides A/B and Multivariate Testing.</p>
<p>There are a number of different options for this type of testing. I prefer GWO because it is easy to setup and the reports are simple to understand.</p>
<p>Another avenue for increasing sales is to set up an affiliate program, giving people who promote your product a cut of the sales. Companies like <a href="http://www.cj.com/">Commission Junction</a> and <a href="http://www.clickbank.com/index.html">ClickBank</a> will handle this &#8211; they help affiliates find your program and track their sales. </p>
<p>However I don&#8217;t recommend either of those programs. Their fee structures are too complicated, and affiliates are often hit with hidden fees. Also, they use &#8220;hop links&#8221; to track purchases. These &#8220;hop links&#8221; don&#8217;t provide SEO value and look suspicious to customers (a typical link will look something like http://chdxsld.com/kdkd2002kdk before the customer is redirected to your site).</p>
<p>A self-hosted affiliate program will avoid those problems &#8211; you can customize the payout percent and affiliate links will look something like http://example.com/ref=ID, but the drawback is you need to publicize the program yourself and handle the affiliate payments. </p>
<p>At the moment, I use the open source <a href="http://idevspot.com/idev-affiliates.php">idev-affiliates</a> with some code customizations to make it work within my cart and payment stack. I&#8217;m not happy with it, and will be swapping idev-affiliates out for something else next time. It is written in fairly messy PHP, and idevspot.com offers a money back guarantee, however, <em>they will not honor it</em> if there is a problem with your purchase.</p>
<p>Anyone have recommendations for self-hosted affiliate software?</p>
<p><a href="http://www.freshbooks.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/freshbooks.jpg" alt="freshbooks screenshot" width="360" height="209" class="alignleft size-full" /></a>Bonus recommendation: if you intend to support a fledgling startup with contract work on the side, or if charging for support is part of your revenue model, <a href="http://www.freshbooks.com/">Freshbooks</a> is the best option I&#8217;ve seen for creating professional invoices.</p>
<p>The Freshbooks web app is an absolute pleasure to work with.</p>
<p>Pricing is based on the number of clients, with up to 3 clients on the free plan. <a href="https://grokcode.freshbooks.com/refer/www">Use this invite to sign up a free 30 day trial of Freshbooks.</a></p>
<p>You can see this software stack in action at <a href="http://geotargeter.net">Geotargeter for WordPress &#8211; a plugin for Amazon Affiliates</a>.</p>
<img src="http://feeds.feedburner.com/~r/GrokCode/~4/iyGwM7QGvWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/732/launch-faster-the-tools-to-do-it-without-looking-like-a-fool/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Be a Paranoid Pessimistic Programmer</title>
		<link>http://grokcode.com/722/be-a-paranoid-pessimistic-programmer/</link>
		<comments>http://grokcode.com/722/be-a-paranoid-pessimistic-programmer/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 06:04:34 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[paranoia]]></category>
		<category><![CDATA[pessimism]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming advice]]></category>
		<category><![CDATA[the pragmatic programmer]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=722</guid>
		<description><![CDATA[We aren&#8217;t copy writers or social media experts; we&#8217;re programmers. We need to constantly foresee and prevent problems before they happen. Cultivating a healthy paranoia and a heavily pessimistic attitude is the path to becoming a better programmer. Why Be Paranoid and Pessimistic Being paranoid and pessimistic will save your ass constantly. Before even talking [...]]]></description>
			<content:encoded><![CDATA[<p>We aren&#8217;t copy writers or social media experts; we&#8217;re programmers. We need to constantly foresee and prevent problems before they happen. Cultivating a healthy paranoia and a heavily pessimistic attitude is the path to becoming a better programmer.<span id="more-722"></span> </p>
<h2>Why Be Paranoid and Pessimistic</h2>
<p>Being paranoid and pessimistic will save your ass constantly. Before even talking about actual code, backups, debuggers, <a href="http://grokcode.com/717/how-to-use-source-control-effectively/">source control</a>, error logging, automated deployment scripts, and almost all tools of the programming trade are predicated on the pessimistic idea that stuff goes wrong often, and there must be procedures in place to identify, correct, and prevent errors.</p>
<p>Another side effect of being paranoid is coding defensively. No matter if you are coding against libraries, code written by other developers on your team, or code written by yourself, it is important to code defensively, because everybody and everything is fallible.</p>
<p>Defensive code makes fewer assumptions and carefully handles error cases instead of failing silently or producing undefined behavior. This leads to code that is easier to maintain and less prone to bugs.</p>
<p>Libraries are updated, frameworks evolve, requirements change. Programmers are <a href="http://www.kalzumeus.com/2011/11/17/i-saw-an-extremely-subtle-bug-today-and-i-just-have-to-tell-someone/">constantly fighting against entropy</a>. Defensive programming guards against the effects of software entropy by reducing the possibility that changes in one part of a system will cause subtle bugs somewhere else.</p>
<p>It is important expect the unexpected in all things. </p>
<blockquote><p>It seems that there&#8217;s a mantra that every programmer must memorize early in his or her career. It is a fundamental tenet of computing, a core belief that we learn to apply to requirements, designs, code, comments, just about everything we do. It goes</p>
<p>THIS CAN NEVER HAPPEN&#8230;</p>
<p><cite>- <a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&#038;tag=grok-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=020161622X">The Pragmatic Programmer</a> by Andrew Hunt &#038; David Thomas</cite></p></blockquote>
<p>Embracing paranoia and pessimism will automatically lead to wonderful things like:</p>
<ul>
<li>Explicitly stating preconditions, postconditions, and invariants</li>
<li>If it can&#8217;t happen, using assertions to ensure that it won&#8217;t</li>
<li>Always using source control</li>
<li>Crashing early &#8211; a dead program normally does a lot less damage than a cripple one</li>
</ul>
<p>All of the above are widely considered good practice, and techniques recommended in <a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&#038;tag=grok-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=020161622X">The Pragmatic Programmer</a>.</p>
<h2>When to stop being paranoid and pessimistic</h2>
<p>You should never stop being paranoid or pessimistic, but when interacting with non-technical people, you need to change your game face.</p>
<p>Let&#8217;s say you get a phone call from your boss who is a search engine optimization guy. He is wondering if you can build a tool to check how a website ranks in the search engines for various keywords. </p>
<p>You are a good programmer. A paranoid programmer. A pessimistic programmer. You immediately start thinking about the most significant challenges involved. That to do this project right, you will need to account for differences in search results across geographic areas. That means a distributed architecture of some kind, and most likely reports with combined rankings plus rankings broken out by geographic area. Now, if we use too many geographic areas and check them too often, we will significantly change the search volume for a particular term, which can have indirect effects on rankings. Plus scraping results is probably against Google&#8217;s ToS&#8230;</p>
<p><em>Swallow those words.</em></p>
<p>Your boss is a marketer at heart. He is an optimist. He needs to be an optimist in order to sell stuff. He doesn&#8217;t want to hear about worst case scenarios or most significant challenges. He needs to know about them, but wrap them up in a language he is better equipped to understand.   </p>
<p>&#8220;Hrmmm. There are already similar tools out there, so I&#8217;m sure this is something we can do. However, I don&#8217;t think creating this tool will be as simple as it first appears. The most straightforward way to collect the data is to do some searches programmatically and then scrape the page to get rankings, but I think this is against Google&#8217;s ToS, and could get us in hot water with Google. We will also have to account for things like geographical rankings differences. I&#8217;m sure there are ways around these issues, but I&#8217;m not sure what the solution will look like yet without doing a bit more research.&#8221;</p>
<p>See the difference? Instead of your boss getting what sounds to him like a litany of problems, he is now getting some reassurance that it can be done, it just isn&#8217;t as easy as he probably thinks it is, and will take some thought to get everything right.</p>
<p>The only problem with pessimistic problem solving is that it is often misunderstood by optimists (read: management, sales, marketing, etc.). You don&#8217;t want to be known as the person who spits out a list of problems at every new idea. Try instead to be known as the person who solves problems before anyone else realizes that a problem exists.</p>
<p>So unless you are communicating with optimists, go forth and spread paranoia and pessimism.</p>
<img src="http://feeds.feedburner.com/~r/GrokCode/~4/BAUkmniL7LM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/722/be-a-paranoid-pessimistic-programmer/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>What Is This Cloud Thing Anyway?</title>
		<link>http://grokcode.com/724/cloud-computing/</link>
		<comments>http://grokcode.com/724/cloud-computing/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 19:42:41 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Extras]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[Paas]]></category>
		<category><![CDATA[SaaS]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=724</guid>
		<description><![CDATA[Cloud computing is the most poorly-defined, over-hyped technology that has hit the tech sector for a long time. The technology behind cloud computing isn&#8217;t particularly new or innovative, and the hype is all out of proportion to the tech involved. The true innovation of the cloud isn&#8217;t the tech at all. The promises of cloud [...]]]></description>
			<content:encoded><![CDATA[<p>Cloud computing is the most poorly-defined, over-hyped technology that has hit the tech sector for a long time. The technology behind cloud computing isn&#8217;t particularly new or innovative, and the hype is all out of proportion to the tech involved. The true innovation of the cloud isn&#8217;t the tech at all.<span id="more-724"></span></p>
<h2>The promises of cloud computing</h2>
<p>Its hard to do any reading on cloud computing without running into promises that sound too good to be true: &#8220;With the cloud, individuals and small businesses can snap their fingers and instantly set up enterprise-class services.&#8221;<sup>[<a href="http://grokcode.com/724/cloud-computing/#footnote_0_724" id="identifier_0_724" class="footnote-link footnote-identifier-link" title=" Roy Stephan, Director of IT architecture and engineering &amp;#8211; Intelligent Decisions in CNNMoney Why the cloud is now the hottest trend in tech. ">1</a>]</sup> Or to hear people proclaiming that the cloud is the <em>only</em> solution: &#8220;The future is the cloud. Not because it is trendy but because only the cloud can scale.&#8221;<sup>[<a href="http://grokcode.com/724/cloud-computing/#footnote_1_724" id="identifier_1_724" class="footnote-link footnote-identifier-link" title=" Sean McGrath in ITWorld Only the cloud can scale ">2</a>]</sup></p>
<h2>The reality</h2>
<p>Despite the cloud being billed as the next evolution of the internet, the reality is that cloud computing has been around for a long time under different monikers: hosted services, Software as a Service (SaaS), shared infrastructure. For the most part, the cloud is made up of all the same technology that existed before the cloud hype got started. It is composed of standard operating systems, databases, load balancers, management tools, and so on.</p>
<p>The innovation isn&#8217;t in the tech at all &#8211; it is in the operations model.</p>
<p>The innovation is that individuals and small businesses now have access to resources on-demand and at scale without having to maintain the hardware and the expertise to run it in-house. It allows them to experiment and iterate cheaply and quickly.</p>
<p>Individuals have the ability to quickly provision a <a href="http://grokcode.com/709/ruby-on-rails-cloud-hosting-reviews/">ruby on rails setup</a>, deploy their application, and then crank up the power if the application becomes popular, or simply throw the instance away if it doesn&#8217;t work out. That is the true power of cloud computing. It gives individuals and small businesses access to resources that were previously only cost-effective for the enterprise.</p>
<h2>Confusion and angst in the tech sector</h2>
<p>There is tension in the tech sector because cloud computing is such a poorly defined concept, and it is usually defined in terms of the technology. When looking only at the tech involved, the amount of hype around cloud computing is completely disproportionate to any advancements in tech needed to create cloud products.</p>
<blockquote><p>The cloud hype is getting thicker and smellier every day. All the cloud excitement is coming from those who hope to profit from it, the vendors and breathless tech journalists who can&#8217;t think of anything worthwhile to write about. They&#8217;re working very hard to make it sound like a wonderful thing, a miracle of rare device that will transform life as we know it.<cite>Carla Schroder, Editor &#8211; LinuxToday.com on <a href="http://blog.linuxtoday.com/blog/2010/03/keep-your-cloud-1.html">Keep your cloud</a></cite></p></blockquote>
<p>Even worse, &#8220;cloud&#8221; has become just a catchy word that is sprinkled over marketing copy to boost customer acquisition and increase buy-in (or something).</p>
<blockquote><p>The interesting thing about cloud computing is that we&#8217;ve redefined cloud computing to include everything that we already do. I can&#8217;t think of anything that isn&#8217;t cloud computing with all of these announcements. The computer industry is the only industry that is more fashion-driven than women&#8217;s fashion. Maybe I&#8217;m an idiot, but I have no idea what anyone is talking about. What is it? It&#8217;s complete gibberish. It&#8217;s insane. When is this idiocy going to stop? We&#8217;ll make cloud computing announcements. I&#8217;m not going to fight this thing. But I don&#8217;t understand what we would do differently in the light of cloud.<cite>Larry Ellison, CEO &#8211; Oracle Corporation</cite></p></blockquote>
<p>Anyway, that&#8217;s my take on the cloud. The innovative part has nothing to do with the tech and everything to do with the operations model. I suppose <a href="http://www.amazon.com/gp/product/0470484705/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=0470484705">Cloud Computing For Dummies</a> will tell you something very different.</p>
<ol class="footnotes"><li id="footnote_0_724" class="footnote"> Roy Stephan, Director of IT architecture and engineering &#8211; Intelligent Decisions in CNNMoney <a href="http://money.cnn.com/2011/02/09/technology/cloud/index.htm">Why the cloud is now the hottest trend in tech.</a> </li><li id="footnote_1_724" class="footnote"> Sean McGrath in ITWorld <a href="http://www.itworld.com/offbeat/53445/only-cloud-can-scale">Only the cloud can scale</a> </li></ol><img src="http://feeds.feedburner.com/~r/GrokCode/~4/dJbKoEKdhYg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/724/cloud-computing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To Use Source Control Effectively</title>
		<link>http://grokcode.com/717/how-to-use-source-control-effectively/</link>
		<comments>http://grokcode.com/717/how-to-use-source-control-effectively/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 13:58:29 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Tips & Tutorials]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[revision control]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=717</guid>
		<description><![CDATA[There are a number of great version control[1] systems out there; the most important thing is to pick one and learn to use it effectively. No matter which source control system you decide to use, there are a number of universal principles that will help you to get the most out of source control. Always [...]]]></description>
			<content:encoded><![CDATA[<p>There are a number of great version control<sup>[<a href="http://grokcode.com/717/how-to-use-source-control-effectively/#footnote_0_717" id="identifier_0_717" class="footnote-link footnote-identifier-link" title="The terms &amp;#8216;version control&amp;#8217;,  &amp;#8216;source control&amp;#8217;, and &amp;#8216;revision control&amp;#8217; are used interchangeably here.">1</a>]</sup> systems out there; the most important thing is to pick one and learn to use it effectively. No matter which source control system you decide to use, there are a number of universal principles that will help you to get the most out of source control.<span id="more-717"></span></p>
<h2><em>Always</em> use source control</h2>
<p>There is no reason not to use source control. Even for a solo project. Even for a toy project. Even if you never make mistakes. Just use it. Source control offers so many benefits like rollbacks, code diffs, backups, and commit logs that every project will benefit from it.</p>
<h2>Don&#8217;t break the build</h2>
<p>Don&#8217;t commit code if it breaks the build. You don&#8217;t want to force other people to sift through your code looking for the problem that broke the build before they can continue with their own work.</p>
<h2>Commit early, commit often</h2>
<p>Don&#8217;t go dark. Committing early and often gives you a backup, an incremental log of progress, easier merges, and lets the team know what you are doing.</p>
<h2>Remove unused code immediately</h2>
<p>Don&#8217;t commit code with large blocks of old code commented out or unused, deprecated functions. If you need to get this code back at some point, you can always get it from the repository. Keep the current working copy of the source as clean and cruft-free as possible.</p>
<h2>Keep a good commit log</h2>
<p>Leave good comments in the commit log. Searching the commit log should allow you to find which commits implemented a specific feature or fixed a specific bug. Skimming the commit log should provide a good history of the project and give some hints as to it&#8217;s maturity.</p>
<h2>Whitespace</h2>
<p>Don&#8217;t commit whitespace, formatting, or code style changes at the same time as other changes. If you must make these types of changes to the code base, commit them separately. This will keep the diffs vastly more readable.</p>
<h2>Minimal Changeset</h2>
<p>When doing bugfixes, make the minimal set of changes needed to fix the bug. If a rewrite of a module is really in order, do the rewrite, but err on the side of making the absolute minimal set of changes needed to fix the bug. This way the changelog will clearly reflect the exact source of the bug and the changes needed for the fix.</p>
<h2>One bugfix per commit</h2>
<p>Again, keep the changelog clear by doing only one bugfix per commit (unless multiple bugs are very closely related). One bugfix per commit makes rollbacks easier and leaves a clear track of how the bug was fixed that will be valuable later if a regression test fails or if the fix created unintended side effects.</p>
<h2>Notify the team of new commits</h2>
<p>Other team members working on the code base should be immediately and automatically notified of any changes that have the potential to affect them. This could be setup in different ways depending on the project and the workflow used by the team. One of the easiest and most effective ways to set this up is an automated email including the commit message and the diff to all members of the team working on that particular module. Notifications keep all team members appraised of the current state of the code and give them a heads up if they are likely encounter problems merging their own code.</p>
<h2>Integrate source control with other tools</h2>
<p>Source control should be integrated with other tools used on the project like bug tracking, continuous integration, and IDEs. This makes it easy to cross-reference the commit that fixed a bug, created a bug, or broke the build. Integration with an IDE gives you the option to do source control operations like diff, status, and commit within the IDE without having to drop to the command line or a separate tool.</p>
<p>The above basic principles of version control will make you effective with any type of version control system out there. Have more source control tips? Leave them in the comments. </p>
<ol class="footnotes"><li id="footnote_0_717" class="footnote">The terms &#8216;version control&#8217;,  &#8216;source control&#8217;, and &#8216;revision control&#8217; are used interchangeably here.</li></ol><img src="http://feeds.feedburner.com/~r/GrokCode/~4/hP8qbachOfM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/717/how-to-use-source-control-effectively/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails Cloud Hosting Reviews</title>
		<link>http://grokcode.com/709/ruby-on-rails-cloud-hosting-reviews/</link>
		<comments>http://grokcode.com/709/ruby-on-rails-cloud-hosting-reviews/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 15:57:46 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud hosting]]></category>
		<category><![CDATA[cloud platform]]></category>
		<category><![CDATA[dotcloud]]></category>
		<category><![CDATA[engine yard]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[winnie cloud]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=709</guid>
		<description><![CDATA[Cloud platforms are extremely useful when launching a minimum viable product because most of the system administration is handled by the hosting provider, while reserving the option to scale up later if required. Some cloud platforms offer free starter plans to bootstrap applications without making an initial investment. Here is a look at the available [...]]]></description>
			<content:encoded><![CDATA[<p>Cloud platforms are extremely useful when launching a minimum viable product because most of the system administration is handled by the hosting provider, while reserving the option to scale up later if required. Some cloud platforms offer free starter plans to bootstrap applications without making an initial investment. Here is a look at the available options for Ruby on Rails cloud hosting providers, including comments on which one is most appropriate for various types of projects.<span id="more-709"></span></p>
<p>The hosting platforms covered below provide a Rails environment right out of the box. It is certainly possible to run directly on AWS (or another cloud platform) with a bit more setup work, but that is beyond the scope of this article. </p>
<p><a href="http://www.engineyard.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/engineyard-ruby-hosting.png" alt="Engine Yard Ruby on Rails Hosting" width="360" height="184" class="alignleft size-full wp-image-711" /></a></p>
<h2><a href="http://www.engineyard.com/">Engine Yard</a></h2>
<p><em>Setup and deploy process:</em> After creating an Engine Yard account, setup and deploy is as simple as <code>gem install engineyard</code> then <code>ey deploy</code> from within the app directory.</p>
<p><em>Starter plan:</em> Engine Yard offers 500 free compute hours on a High-CPU Medium instance to test out the service.</p>
<p><em>Other plans:</em> Plans are completely customizable. You choose the number and type of instances, and then pay per hour for instances, plus extra storage and bandwidth costs. Full pricing details are <a href="http://www.engineyard.com/products/appcloud/pricing">here</a>.</p>
<p><em>Version Control:</em> Must use Git for version control.</p>
<p><em>Conclusion:</em> Engine Yard&#8217;s pricing structure is geared towards projects that require compute time, not 24/7 availability, making it most appropriate for data crunching. For web apps that need to be available all the time, but may be idle or nearly idle much of the time, another provider will be more cost effective.  </p>
<p><a href="http://www.heroku.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/heroku-ruby-hosting.png" alt="Heroku Ruby on Rails Hosting" width="360" height="184" class="alignleft size-full wp-image-710" /></a></p>
<h2><a href="http://www.heroku.com/">Heroku</a></h2>
<p><em>Setup and deploy process:</em> Simple git based workflow. <code>sudo gem install heroku</code> then <code>heroku create sushi</code> will create an app called sushi. Deploying is as easy as <code>git push heroku master</code>.</p>
<p><em>Starter plan:</em> The free starter plan includes one worker (a background process running your code and processing jobs from a queue) and a 5MB shared database.</p>
<p><em>Other plans:</em> The number of dynos and workers can be adjusted dynamically to handle traffic spikes or provide more proccessing power. Dynos and workers are priced by the hour, and dedicated databases are priced based on the size and number of connections required. See the <a href="http://heroku.com/pricing">full pricing details</a> for your particular situation.</p>
<p><em>Version Control:</em> Must use Git for version control.</p>
<p><em>Conclusion:</em> Heroku&#8217;s free starter plan makes it an ideal choice for bootstrapping a web application and scaling up as needed.</p>
<p><a href="http://www.winniecloud.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/winnie-cloud-ruby-hosting.png" alt="Winnie Cloud Ruby Hosting" width="360" height="184" class="alignleft size-full wp-image-712" /></a></p>
<h2><a href="http://www.winniecloud.com/">Winnie Cloud</a></h2>
<p><em>Setup and deploy process:</em> Push to a Git repo managed by Winne Cloud. </p>
<p><em>Starter plan:</em> Free 30 day trial of the staging environment.</p>
<p><em>Other plans:</em> Winnie Cloud offers either a production working instance or a staging working instance. PostgreSQL, MongoDB, and Redis are available at extra cost.</p>
<p><em>Version Control:</em> Must use Git for version control.</p>
<p><em>Conclusion:</em> It appears that Winnie Cloud started as an internal product of Rails programming shop Ragnarson. It doesn&#8217;t seem to be as mature as the other Ruby on Rails platforms, but might be a good option for those who are looking for both Ruby on Rails consulting and a cloud hosting platform in one package.  </p>
<p><a href="http://www.dotcloud.com/"><img src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/dotcloud-ruby-hosting.png" alt="Dotcloud Ruby Hosting" width="360" height="184" class="alignleft size-full wp-image-712" /></a></p>
<h2><a href="http://www.dotcloud.com/">DotCloud</a></h2>
<p><em>Setup and deploy process:</em> After creating a DotCloud account, setup and deploy operations are done via the DotCloud command line interface. The CLI handles setting up the stack, deploy, rollback, and a number of other operations. The CLI integrates with Git and Murcurial.  </p>
<p><em>Starter plan:</em> DotCloud offers a free starter plan with two services, where a service is a single connection to a stack component. Or if you were lucky enough to get in during the private beta, there is a free VIP plan. </p>
<p><em>Other plans:</em> The pro plan at $99 per month allows four services, and a flexible enterprise plan is also available with pricing depending on the requirements of the project.</p>
<p><em>Version Control:</em> Works with all types of version control, although Git and Mercurial have the best integration with DotCloud&#8217;s CLI. </p>
<p><em>Conclusion:</em> DotCloud is a more general platform than the others; it allows developers to mix and match stack components. Currently in beta: Java, PHP, PostgreSQL, Python, Redis, Ruby, and SMTP. There are a number of other components in alpha or on the roadmap for future support. It&#8217;s most appropriate for people who need support for a variety of stack components and don&#8217;t mind running on a beta platform.</p>
<h2>Final Words</h2>
<p>Each RoR platform has its particular strength, and picking the right one at the beginning will save headaches and money further down the road. This article covers the technical details of the different cloud platforms, but glosses over other important considerations like the reliability, transparency, and quality of support offered by the platform. </p>
<p>Please chime in with a comment describing your experiences if you have used any of the above cloud platforms. </p>
<img src="http://feeds.feedburner.com/~r/GrokCode/~4/_FpgrGjONBs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/709/ruby-on-rails-cloud-hosting-reviews/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The Ergonomic Keyboard Productivity Myth</title>
		<link>http://grokcode.com/701/the-ergonomic-keyboard-productivity-myth/</link>
		<comments>http://grokcode.com/701/the-ergonomic-keyboard-productivity-myth/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 15:45:56 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Books & Tools]]></category>
		<category><![CDATA[ergonomics]]></category>
		<category><![CDATA[goldtouch]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://grokcode.com/?p=701</guid>
		<description><![CDATA[Keyboard manufacturers would have you believe that ergonomic keyboards increase worker productivity, reduce injuries, and increase typing speed, but the real benefits are murky. The body of research on ergonomic keyboards is inconclusive, with a number of studies showing that ergonomic keyboards are of dubious value or that they decrease productivity. There are a few [...]]]></description>
			<content:encoded><![CDATA[<p>Keyboard manufacturers would have you believe that ergonomic keyboards increase worker productivity, reduce injuries, and increase typing speed, but the real benefits are murky. The body of research on ergonomic keyboards is inconclusive, with a number of studies showing that ergonomic keyboards are of dubious value or that they decrease productivity.<span id="more-701"></span></p>
<p>There are a few different ergonomic keyboard designs, the most popular are shown below from left to right: the split keyboard, the angled split keyboard (sometimes called a Klockenburg keyboard), and the contoured keyboard.</p>
<p><a href="http://www.amazon.com/gp/product/B000A6PPOK/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000A6PPOK"><img class="alignleft size-full wp-image-708" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/keyboard-split.jpg" alt="Split Ergonomic Keyboard" width="220" /></a><a href="http://www.amazon.com/gp/product/B0006VJE82/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0006VJE82"><img class="alignleft size-full wp-image-706" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/keyboard-goldtouch.jpg" alt="Goldtouch Ergonomic Keyboard" width="220" /></a><a href="http://www.amazon.com/gp/product/B000LVJ9W8/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000LVJ9W8"><img class="alignleftlast size-full wp-image-705" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/keyboard-contoured.jpg" alt="Contoured Ergonomic Keyboard" width="220" /></a></p>
<p>So which of these will make you the most productive? The most likely to prevent carpal tunnel and other injuries dreaded by programmers? Probably none of them.</p>
<p>There is research showing that ergonomic keyboards increase typing speed. There is research showing that the same keyboard decreases typing speed. Studies show that ergonomic keyboards increase productivity, that they decrease productivity, that they decrease injuries, and that they have no effect on the number or severity of injuries. Whatever conclusion you wish to show regarding ergonomic keyboards, you are bound to find at least a few studies supporting that conclusion.</p>
<p>Sifting through the research, the only clear trend that emerges is that much of the research showing the benefits of ergonomic keyboards was done by manufacturers of ergonomic keyboards, by companies who are in the business of injury prevention consultation, or companies that have some other vested interest in the success of ergonomic keyboards. Further muddying the waters, Google Scholar search results on the topic of ergonomic keyboards are polluted by marketing documents disguised as research, such as this <a href="https://www.goldtouch.com/Resources/Studies/GoldtouchCostSavings.pdf">document</a> by Goldtouch, a popular brand of adjustable split angled keyboards.</p>
<p><a href="http://www.amazon.com/gp/product/B001IOHAVO/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001IOHAVO"><img class="alignleft size-full wp-image-707" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/keyboard-normal.jpg" alt="Standard Keyboard" width="300" height="185" /></a>So which keyboard should you buy? Scientifically speaking, it probably doesn&#8217;t make a damn bit of difference as long as you are comfortable and have had sufficient time to adapt to any peculiarities of your keyboard. Test a few out and then get a keyboard that you like. No matter if that is an ergonomic keyboard, a <a href="http://www.amazon.com/gp/product/B001IOHAVO/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001IOHAVO">cheapo minimalist keyboard</a>, an <a href="http://www.amazon.com/gp/product/B002WPNUIU/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399349&amp;creativeASIN=B002WPNUIU">old school mechanical keyboard with backlighting</a>, a<a href="http://www.amazon.com/gp/product/B003XWLDGM/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399349&amp;creativeASIN=B003XWLDGM"> medical grade waterproof keyboard</a>, or whatever keyboard makes you happy.</p>
<p>There are plenty of other tweaks you can make to your work environment that <em>do</em> increase productivity (and are backed by solid scientific evidence). Read more about <a href="http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/">how to increase productivity by reordering your office</a>, but forget about ergonomic keyboards.</p>
<img src="http://feeds.feedburner.com/~r/GrokCode/~4/aPgj9pQAvrI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/701/the-ergonomic-keyboard-productivity-myth/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Scientifically Proven Tips For a More Productive Office</title>
		<link>http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/</link>
		<comments>http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 16:58:50 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[ambient temperature]]></category>
		<category><![CDATA[color temperature]]></category>
		<category><![CDATA[ergonomic chair]]></category>
		<category><![CDATA[ergonomics]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[increase productivity]]></category>
		<category><![CDATA[nature]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[office productivity]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://grokcode.com/dev/?p=655</guid>
		<description><![CDATA[Research shows that reordering your office can significantly boost productivity. Here are four simple tweaks, all backed by scientific research, that you can make to your work environment today to increase your productivity. Bring Nature into the Office Studies have shown that certain types of environments are restorative: they reduce mental fatigue, increase the ability [...]]]></description>
			<content:encoded><![CDATA[<p>Research shows that reordering your office can significantly boost productivity. Here are four simple tweaks, all backed by scientific research, that you can make to your work environment today to increase your productivity.<span id="more-655"></span></p>
<h2 id="nature">Bring Nature into the Office</h2>
<p><a href="http://www.amazon.com/gp/product/B002F914G8?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002F914G8"><img class="alignleft size-full wp-image-694" title="Bamboo Plant" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/bamboo-plant2.jpg" alt="Bamboo Plant" width="224" height="300" /></a></p>
<p>Studies have shown that certain types of environments are restorative: they reduce mental fatigue, increase the ability to concentrate, and improve health, leading to an increase in productivity. One of the most effective restorative environments is nature. An office with a window that has a natural view is enough to trigger the benefits.</p>
<blockquote><p>Those with a view of nature felt less frustrated and more patient, found their job more challenging, expressed greater enthusiasm for it, and reported higher life satisfaction as well as overall health.<sup>[<a href="http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/#footnote_0_655" id="identifier_0_655" class="footnote-link footnote-identifier-link" title="Rachel Kaplan, The role of nature in the context of the workplace, Landscape and Urban Planning, Volume 26, Issues 1-4, Special Issue Urban Design Research, October 1993, Pages 193-201, ISSN 0169-2046, DOI: 10.1016/0169-2046(93)90016-7.">1</a>]</sup></p></blockquote>
<p>Colorful, diverse landscapes with natural composition are preferred, and views of trees, water, and sky can increase the restorative effect.</p>
<h3>Take action to increase productivity</h3>
<p>Take micro-breaks throughout the day to gaze at the natural elements around you. If you aren&#8217;t lucky enough to have an office with a window, or if your view is a cityscape instead of a landscape, you can still bring touches of nature to your office. <a href="http://www.amazon.com/gp/product/B002F914G8?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002F914G8">Live plants</a>, <a href="http://www.amazon.com/gp/product/B000BSDY0E/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000BSDY0E">tabletop fountains</a>, or <a href="http://www.amazon.com/gp/product/B0033YWCXS/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0033YWCXS">posters of nature scenes</a> will do the job as well.</p>
<hr class="fancy" />
<h2 id="light">Use High Color Temperature Light Sources</h2>
<p>Research has shown that working under light with a high color temperature has a number of benefits such increased mental acuity, vitality, and alertness, increased work performance, reduced fatigue, reduced daytime sleepiness, and improved mental health.</p>
<p>&#8220;Color temperature&#8221; refers to the color of the light produced; it is independent of the brightness of the bulb. Bluer lights increase productivity and alertness, while yellower lights promote relaxation. Most compact fluorescent bulbs have a color temperature of 2700K or 2850K, and the highest color temperature that is readily available commercially is 6500K. </p>
<p>Studies have shown that the 7500K light sources are correlated with higher mental acuity compared to 3000K light sources.<sup>[<a href="http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/#footnote_1_655" id="identifier_1_655" class="footnote-link footnote-identifier-link" title="Deguchi T, Sato M: The effect of color temperature of lighting sources on mental activity level. Ann Physiol Anthropol 1992, 11:37-43.">2</a>]</sup> 5000K sources are correlated with reduced drowsiness compared to 3000K.<sup>[<a href="http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/#footnote_2_655" id="identifier_2_655" class="footnote-link footnote-identifier-link" title="Noguchi H, Sakaguchi T: Effect of illuminance and color temperature on lowering of physiological activity. Appl Human Sci 1999, 18:117-123.">3</a>]</sup> 17,000K sources are correlated with improved concentration and thought clarity compared to 4000K.<sup>[<a href="http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/#footnote_3_655" id="identifier_3_655" class="footnote-link footnote-identifier-link" title="Peter R Mills, Susannah C Tomkins, and Luc JM Schlangen, The effect of high correlated colour temperature office lighting on employee wellbeing and work performance, Journal of Circadian Rhythms 2007, 5:2 DOI:10.1186/1740-3391-5-2">4</a>]</sup></p>
<h3>Take action to increase productivity</h3>
<p>Choose light bulbs that have a high color temperature and a comfortable brightness. Try these <a href="http://www.amazon.com/gp/product/B00481HIBG/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00481HIBG">23 watt bulbs</a>, or these <a href="http://www.amazon.com/gp/product/B0041DLW3G/ref=as_li_ss_tl?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0041DLW3G">26 watt (equivalent to 100w incandecents) bulbs</a>.</p>
<hr class="fancy" />
<h2 id="chair">Use a Highly Adjustable Chair</h2>
<p><img class="alignleft size-full wp-image-697" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/ergonomic-chair-pain.png" alt="Pain reduction and productivity increases" width="400" height="363" /></p>
<p>A highly adjustable chair combined with ergonomics training has been shown to improve health by reducing the incidence of musculoskeletal pain an injury. A reduction in bodily pain was observed throughout the day, and the study found a significant economic benefit in investing in an ergonomic chair.</p>
<blockquote><p>[...] the chair-with-training intervention is associated with productivity improvements of $354 per worker per day and has a benefit-to-cost ratio of 22:1<sup>[<a href="http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/#footnote_4_655" id="identifier_4_655" class="footnote-link footnote-identifier-link" title="Amick, Benjamin C. III, PhD; Robertson, Michelle M. PhD; DeRango, Kelly PhD; Bazzani, Lianna MPH; Moore, Anne PhD; Rooney, Ted MPH; Harrist, Ron PhD, Effect of Office Ergonomics Intervention on Reducing Musculoskeletal Symptoms, Spine, Volume 28, Issue 24, 15 December 2003, Pages 2706-2711">5</a>]</sup></p></blockquote>
<p>An ergonomic char is one of the more expensive workspace changes to implement, but the benefit-to-cost ratio clearly shows that it is worth it.</p>
<h3>Take action to increase productivity</h3>
<p>Invest in a highly adjustable chair and learn how to use it properly. Have a look at <a href="http://www.amazon.com/gp/product/B0014YGGKE?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0014YGGKE">Herman Miller&#8217;s line of highly adjustable Aeron chairs</a>. Use a chair with adjustable armrests in height, width, and pivot, adjustable chair height, a flexible back support, adjustable firmness support in the lower back, adjustable seat depth, and a gliding mechanism that allows the seat to glide forward as you recline.</p>
<hr class="fancy" />
<h2 id="temp">Keep the Ambient Temperature Comfortable</h2>
<p>There has been quite a bit of research on the effect temperature has on productivity. The graph below is taken from a meta-study which summarizes the findings of a number of studies on the relationship between temperature and performance.</p>
<p><img class="aligncenter size-full wp-image-700" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/productivity-decrease-by-temperature.png" alt="Productivity Decrease Versus Temperature" width="700" height="397" /></p>
<p>There is a lot of variation in the optimal temperature in terms of productivity. This may be caused by personal variations in comfort zone temperature, seasonal variations, or climate differences between the locales where the studies were conducted. </p>
<p>Further muddying the issue is that some studies provide evidence that for optimal work performance the temperature should be in the comfort zone, but other studies show that temperatures outside of the comfort zone cause arousal effects that increase performance.    </p>
<blockquote><p>Based on our review, available data do not provide compelling or consistent evidence that temperature variations within the comfort zone significantly affect worker performance. However, performance decrements are more clearly established for temperatures outside of the comfort zone. Decrements are most clearly documented for high temperatures.<sup>[<a href="http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/#footnote_5_655" id="identifier_5_655" class="footnote-link footnote-identifier-link" title="Seppanen, Olli, Fisk, William J., &amp;amp; Faulkner, David. (2003). Cost benefit analysis of the night-time ventilative cooling in office building. Lawrence Berkeley National Laboratory: Lawrence Berkeley National Laboratory. LBNL Paper LBNL-53191.">6</a>]</sup></p></blockquote>
<h3>Take action to increase productivity</h3>
<p>Maintain an ambient temperature that is comfortable or slightly cooler than your comfort zone. Avoid working in high temperatures.</p>
<ol class="footnotes"><li id="footnote_0_655" class="footnote">Rachel Kaplan, <a href="http://deepblue.lib.umich.edu/bitstream/2027.42/30542/1/0000175.pdf">The role of nature in the context of the workplace</a>, Landscape and Urban Planning, Volume 26, Issues 1-4, Special Issue Urban Design Research, October 1993, Pages 193-201, ISSN 0169-2046, DOI: 10.1016/0169-2046(93)90016-7.</li><li id="footnote_1_655" class="footnote">Deguchi T, Sato M: The effect of color temperature of lighting sources on mental activity level. Ann Physiol Anthropol 1992, 11:37-43.</li><li id="footnote_2_655" class="footnote">Noguchi H, Sakaguchi T: <a href="http://www.jstage.jst.go.jp/article/ahs/18/4/117/_pdf">Effect of illuminance and color temperature on lowering of physiological activity</a>. Appl Human Sci 1999, 18:117-123.</li><li id="footnote_3_655" class="footnote">Peter R Mills, Susannah C Tomkins, and Luc JM Schlangen, <a href="http://www.jcircadianrhythms.com/content/5/1/2">The effect of high correlated colour temperature office lighting on employee wellbeing and work performance</a>, Journal of Circadian Rhythms 2007, 5:2 DOI:10.1186/1740-3391-5-2</li><li id="footnote_4_655" class="footnote">Amick, Benjamin C. III, PhD; Robertson, Michelle M. PhD; DeRango, Kelly PhD; Bazzani, Lianna MPH; Moore, Anne PhD; Rooney, Ted MPH; Harrist, Ron PhD, <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90.2069&amp;rep=rep1&amp;type=pdf">Effect of Office Ergonomics Intervention on Reducing Musculoskeletal Symptoms</a>, Spine, Volume 28, Issue 24, 15 December 2003, Pages 2706-2711</li><li id="footnote_5_655" class="footnote">Seppanen, Olli, Fisk, William J., &amp; Faulkner, David. (2003). <a href="http://escholarship.org/uc/item/3j82f642.pdf">Cost benefit analysis of the night-time ventilative cooling in office building</a>. Lawrence Berkeley National Laboratory: Lawrence Berkeley National Laboratory. LBNL Paper LBNL-53191.</li></ol><img src="http://feeds.feedburner.com/~r/GrokCode/~4/gosiOs_psHQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/655/how-to-increase-productivity-by-reordering-your-office/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Meta: The Anatomy of the GrokCode Redesign</title>
		<link>http://grokcode.com/667/grokcode-redesign-is-now-live/</link>
		<comments>http://grokcode.com/667/grokcode-redesign-is-now-live/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 16:57:00 +0000</pubDate>
		<dc:creator>Jess Johnson</dc:creator>
				<category><![CDATA[Extras]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[grokcode]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[redesign]]></category>

		<guid isPermaLink="false">http://grokcode.com/dev/?p=667</guid>
		<description><![CDATA[The grokcode.com redesign is now live. GrokCode is built on WordPress, and uses a custom theme. It is valid HTML5 and CSS3. Here is a quick overview of what&#8217;s new, what&#8217;s changed, and what&#8217;s still broken. Also a few notes on browser and operating system compatibility. This is the third design since GrokCode went live [...]]]></description>
			<content:encoded><![CDATA[<p>The grokcode.com redesign is now live. GrokCode is built on WordPress, and uses a custom theme. It is valid HTML5 and CSS3. Here is a quick overview of what&#8217;s new, what&#8217;s changed, and what&#8217;s still broken. Also a few notes on browser and operating system compatibility.<span id="more-667"></span></p>
<p>This is the third design since GrokCode went live in 2007. Unfortunately I don&#8217;t have a screenshot of the first design, but it was ugly enough that perhaps it is better off forgotten.</p>
<p><img class="alignleft wp-image-682" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/grokcode1.png" alt="GrokCode before" width="340px" height="180px" /><img class="wp-image-681" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/grokcode2.png" alt="GrokCode after" width="340px" height="180px" /></p>
<h2>What&#8217;s different?</h2>
<p>There are quite a few changes, but they all tie back to 3 main goals: keep the emphasis on the articles, include more information for prospective clients, and try not to be so ugly.</p>
<h3>Emphasize the articles</h3>
<p>The programming and software development articles are the heart of GrokCode, and I wanted that to be obvious. The article pages are now less cluttered and there are fewer distractions.</p>
<p>GrokCode has never been ad-heavy, and the new design further reduces the number of ads. Many pages are add-free, and there is never more than one ad per page. If you would like to support the continued creation of new articles, you can buy yourself a few <a href="http://grokcode.com/11/the-top-9-in-a-hackers-bookshelf/">computer science and programming books</a> (or anything else) from <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2F&amp;tag=grok-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957">Amazon</a>.</p>
<p>Other tweaks to improve readability and keep the layout neat include cleaning up the sidebar, moving comments to their own page, and switching to a fixed-width layout.</p>
<h3>Meet new clients</h3>
<p>The old design had virtually no information for prospective clients. There was a portfolio of work, but no information about how I work, what I do, and nothing to even really suggest that I am taking new projects. The new design remedies this with new information on <a href="http://grokcode.com/hire/">working with me</a>, a better <a href="http://grokcode.com/about/">about page</a>, and an <a href="http://grokcode.com/programmer-portfolio/">updated portfolio</a>. The idea is to make this info accessible and obvious, but not in-your-face.</p>
<h3>Don&#8217;t be ugly</h3>
<p>Even though I am not a designer or a frontend developer, I do all of the GrokCode designs myself from scratch to get a peek into how the other half lives. I was aiming for a beautiful, minimalist, and a slightly retro look, and I spent quite a bit of time reading and learning about logo design, color selection, typography, copy writing, etc. In the end I&#8217;m satisfied that it&#8217;s not ugly.</p>
<p>Design critiques are welcome in the comments.</p>
<h2>What&#8217;s broken?</h2>
<p>The switch went off without too many problems. Other than a problem with the feeds, all of the remaining issues that I am aware of are all &#8220;won&#8217;t fixes&#8221; or &#8220;can&#8217;t fixes.&#8221;</p>
<h3>Feeds</h3>
<p>The only lingering issue that I have on my list to fix is that the feeds aren&#8217;t working quite right yet. If you are subscribed to the feed via RSS or email, you probably saw that a bunch of old articles were marked as new and resent. You may also be seeing an excerpted feed. Sorry about that. If you haven&#8217;t yet subscribed to the feed, you can <a href="http://grokcode.com/feed/">subscribe here</a>; things will be back to normal shortly.</p>
<h3>Details</h3>
<p>A few of the details are &#8220;broken by design,&#8221; which is to say that some of the nice extras degrade gracefully on older browsers and some browsers don&#8217;t properly render valid HTML5. Since this is a personal site, I have the luxury of saying that I don&#8217;t care too much if things are a little wonky on browsers that don&#8217;t comply with standards.</p>
<p><img class="alignleft size-full wp-image-686" title="firefox" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/firefox.png" alt="" width="180" height="139" /><img class="alignleft size-full wp-image-689" title="ie" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/ie.png" alt="" width="180" height="139" />If you are one of the 17% of GrokCode visitors using an outdated or non-standards compliant browser (*cough* IE) things just won&#8217;t look as nice. Have a look at Firefox 3.5 vs. IE 8.</p>
<p>The retro style is a bit spoiled by the boxy links, and the some of the finer details like rounded corners and transparency are lost.</p>
<h3>Fonts</h3>
<p>Again, the fonts aren&#8217;t exactly broken, but some people will have a better experience than others.</p>
<p><img class="alignleft size-full wp-image-687" title="font-ubuntu" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/font-ubuntu.png" alt="" width="180" height="280" /><img class="alignleft size-full wp-image-688" title="font-windowsxp" src="http://d39znwhk65ctob.cloudfront.net/wordpress/wp-content/uploads/font-windowsxp.png" alt="" width="180" height="280" />If you are one of the 32% of GrokCode readers on Windows XP, the fonts will be rendered poorly. This isn&#8217;t just a problem with GrokCode or web pages in general &#8211; Windows XP is just bad at fonts. I had no idea that the problem was this bad until doing cross-browser testing, and I used to use XP quite often. I had to modify the original design so that it would be readable on XP (I believe Vista and 7 are better).</p>
<p>Have a look at the side by side of Ubuntu and Windows XP. You are looking at the difference between aliased and anti-aliased text.</p>
<p>Other than that, I think everything is working fine. If you see anything strange or something doesn&#8217;t seem to be working, please let me know via comments or <a href="mailto:jess@grokcode.com">email</a>. Friendly advice and constructive criticism on the redesign are also welcome.</p>
<img src="http://feeds.feedburner.com/~r/GrokCode/~4/gxTTxQgMmVQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grokcode.com/667/grokcode-redesign-is-now-live/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.805 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-17 16:04:49 --><!-- Compression = gzip -->

