<?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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>skwpspace: musings on ruby, rails, software by Yan Pritzker</title>
	
	<link>http://skwpspace.com</link>
	<description>It's pronounced 'scoop'. Thoughts on ruby and software development inspired by my role as founder &amp; developer of the new social planning service Planypus (http://planyp.us).</description>
	<pubDate>Tue, 29 Sep 2009 21:22:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<geo:lat>41.953256</geo:lat><geo:long>-87.662904</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Skwpspace" type="application/rss+xml" /><feedburner:emailServiceId>Skwpspace</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Five Rules for Writing Good Code</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/zvEM7OfRqrk/</link>
		<comments>http://skwpspace.com/2009/09/29/five-rules-for-writing-good-code/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 21:22:55 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[code]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[conventions]]></category>

		<category><![CDATA[habits]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/09/29/five-rules-for-writing-good-code/</guid>
		<description>1. Write for an audience
Code tends to outlive jobs. When we create code, we are not writing for ourselves, but for an audience of peers and progeny that will look upon it and have to maintain it. Do we want them to do so with awe and respect, or with fear and disgust? Writing maintainable [...]</description>
			<content:encoded><![CDATA[<p>1. Write for an audience</p>
<p>Code tends to outlive jobs. When we create code, we are not writing for ourselves, but for an audience of peers and progeny that will look upon it and have to maintain it. Do we want them to do so with awe and respect, or with fear and disgust? Writing maintainable code not only makes our life easier, but the lives of those around us, and garners admiration, praise, and rewards - if not always financial, at the very least karmic.</p>
<p>2. Establish a clean framework for future changes</p>
<p>If we start writing new code, and the pattern we establish is that we&#8217;ve copied and pasted a line across ten functions, what will happen when someone else comes along to add an eleventh function? Let&#8217;s face it, even the neatest programmers can get lazy. If something has been copy-pasted ten times, it will get copy-pasted for the 11th time, and a year later, when we find out we have to change the logic or content of that line, we are now changing 50 lines where we could have had one. Untangling code is always a lot harder than writing it, and we could have prevented the spread of the copy-paste disease by evaluating our code initially for repetitive statements. Always establish a <i>framework</i> for others to follow by writing clean code that reduces repetition, and encourages maintainability by isolating each piece of logic and content to one spot only.</p>
<p>3. Be brief, self-descriptive, and avoid inline comments</p>
<p>Five line functions with descriptive names are easy to understand. They require no comments. Thirty line functions take quite a bit of brainpower to digest, and usually have smelly comments scattered all throughout trying to explain bits of the function. Hundred line functions are an assault on all that is holy and stink to high heaven. If we see lots of comments interspersed in a method, it is a good sign that the code cannot be easily understood. Break it down into lots of little functions with descriptive names, and all of a sudden our code reads like a very clear and concise recipe, and we find that the comments become redundant. Most comments that live inside functions are parasitic organisms, treat them with suspicion.</p>
<p>4. Follow language standards and community conventions</p>
<p>If we break conventions, the next person to read our code will wonder why we did so. When our code raises questions about its style, the reader may start wondering if there was some specific reason that we coded it that way. Worse, they may perpetuate our unusual style through imitation and copy-paste tactics. This makes code harder to understand and wastes other people&#8217;s time. I&#8217;ve heard an argument from more than one person that they will code with the style they are comfortable with rather than follow language convention. This is especially true of people migrating from one language to another without investing their time in learning new habits and techniques. Remember that most of the time, we are writing code that <i>someone else</i> will be maintaining. Make their job easier by conforming to widely acknowledged standards, so they don&#8217;t have to spend any extra mental energy reading through it. It may take we a larger effort initially, but it will pay off with dividends when it comes to maintenance.</p>
<p>5. Really learn the language and the framework</p>
<p>Lots of bad code is written because of language or framework ignorance. If we don&#8217;t know the framework we use, we might reinvent the wheel or write obtuse code because we&#8217;re not taking advantage of the conventions and helpers already created for us. No need to be a walking encyclopedia, but remember to occasionally open up that encyclopedia and read through it so that you know at least what&#8217;s out there. I am sometimes surprised by new things I find in a framework I&#8217;ve used for quite a while, that makes my life a whole lot easier. Don&#8217;t neglect the docs, and don&#8217;t neglect to keep up with blogs that discuss new techniques.</p>
<p>I&#8217;m not really back, I&#8217;m just pretending. That&#8217;s all for now :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=zvEM7OfRqrk:3gRIVSmUv9U:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=zvEM7OfRqrk:3gRIVSmUv9U:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/zvEM7OfRqrk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/09/29/five-rules-for-writing-good-code/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/09/29/five-rules-for-writing-good-code/</feedburner:origLink></item>
		<item>
		<title>How Facebook can dramatically improve Pages</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/b_zqnPF_wVQ/</link>
		<comments>http://skwpspace.com/2009/06/18/how-facebook-can-dramatically-improve-pages/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 15:16:57 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[design]]></category>

		<category><![CDATA[usability]]></category>

		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/06/18/how-facebook-can-dramatically-improve-pages/</guid>
		<description>Despite all the bitching and moaning, I think the recent facebook redesign is great. Focusing on the stream, and the ease of sharing a variety of content works very well. But Facebook Pages feel like an afterthought that was tacked on, hacked on, and clearly never thought through. And now, let the Airing of Grievances [...]</description>
			<content:encoded><![CDATA[<p>Despite all the bitching and moaning, I think the recent facebook redesign is great. Focusing on the stream, and the ease of sharing a variety of content works very well. But Facebook Pages feel like an afterthought that was tacked on, hacked on, and clearly never thought through. And now, let the Airing of Grievances begin.</p>
<ol>
<li>Music pages need a prominent and centered Music Player. For all the fail of Myspace the one thing they got right is that a band&#8217;s page is about its music. The first thing front and center needs to be a Music Player. Instead we get a half-assed music player option which either has to sit quietly in the bottom left hand corner below the fold, or on the Boxes page (if you make Boxes page the default), but then your page looks fairly stupid, because the rest of the good content (Wall) is elsewhere. So - a very quick and dramatic improvement would be to place the Music Player box right at the top of the Wall tab, so that visitors can hear the music and read the news and talk with the band at the same time.</li>
<li>A Page&#8217;s administrators need a way to get a solid news stream from the page including all comments, likes, and etc. Without this feature it is difficult to communicate with fans. I run a <a href="http://facebook.com/pages/Yan-Pritzker-Photography/104996292362">page for my photography</a> on facebook, but I find there is no good way to get all the comments. Instead I have to notice that someone commented, then find the photoset and look at the photoset&#8217;s comments to find the actual comment. There is no good way to know that someone&#8217;s written on the page&#8217;s wall either, unless you have the wall display in Page + Fans mode, and physically check back. A page can only be an effective tool if it enables the administrators to communicate with the people, but without a feed it&#8217;s nearly useless.</li>
<li>RSS. Come on facebook, it&#8217;s 2009! What is the excuse for not having an RSS feed for the page? What&#8217;s more, several places on the site have very carefully hidden RSS links (such as Notes), but they don&#8217;t even bother putting in the proper HTML LINK element to get it to show up in the browser&#8217;s url bar. Get with the program, please.</li>
</ol>
<p>I don&#8217;t doubt that facebook&#8217;s engineers are busy cooking up the next redesign and improvement, but I think that if facebook wants Pages to be a successful tool for businesses, bands, and other commercial-ish entities that are starting to make facebook their home, then that area should be their next target for a redesign and rethink.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=b_zqnPF_wVQ:0ColEuiQDfs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=b_zqnPF_wVQ:0ColEuiQDfs:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/b_zqnPF_wVQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/06/18/how-facebook-can-dramatically-improve-pages/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/06/18/how-facebook-can-dramatically-improve-pages/</feedburner:origLink></item>
		<item>
		<title>Three tips for better street photos</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/Z_uTLW64oCQ/</link>
		<comments>http://skwpspace.com/2009/05/27/three-tips-for-better-street-photos/#comments</comments>
		<pubDate>Wed, 27 May 2009 06:08:36 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/05/27/three-tips-for-better-street-photos/</guid>
		<description>1. Frame without the camera
I got rid of my zoom lens and use typically a 35mm or a 50mm lens on my camera. Looking through one focal length all the time really trains your eye to see that box around everything you look at. Not only does it help you to spot good shots, but [...]</description>
			<content:encoded><![CDATA[<p>1. Frame without the camera</p>
<p>I got rid of my zoom lens and use typically a 35mm or a 50mm lens on my camera. Looking through one focal length all the time really trains your eye to see that box around everything you look at. Not only does it help you to spot good shots, but it also makes you less conspicuous if you don&#8217;t have a gigantic lens glued to your face at all times. I often frame something in my mind before I even bring the camera to my eye. This is just not very easy to do with a zoom lens, but if you know your favorite focal length by heart, you can do much of the thinking ahead of time, so you don&#8217;t miss the moment. Even better is to get a rangefinder camera, or maybe just a standalone viewfinder that you can look through.</p>
<p>2. Manual focus can be faster</p>
<p>Autofocus has several disadvantages. First, many cameras, including my Pentax K20D will not fire the shot in AF mode unless the AF has locked. This means you may miss the decisive moment. The second disadvantage of AF is that when it misses, it misses big. So instead of focusing on your subject you might focus on the background, completely ruining the shot. With manual focus you might the focus a little bit, but the shot may be plenty useable, just soft. Especially when shooting at small apertures like f8 and up, and with wider lenses, MF becomes quite useable, especially if you take advantage of <a href="http://www.great-landscape-photography.com/hyperfocal.html">hyperfocal focusing</a>. Third, AF is a bit noisy, and often nearly useless in dim light.</p>
<p>3. Meter ahead of time</p>
<p>When an interesting scenario presents itself, you don&#8217;t want to miss it because your camera settings are wrong. Sure on gray days with low contrast scenes your camera&#8217;s meter might get the exposure right. But if you find yourself in a complex lighting scenario, I find it&#8217;s better to prepare ahead of time by setting your camera to manual exposure and figuring out the right exposure as the light changes. For this, it&#8217;s best to take a test shot and look at the histogram and make sure nothing is over or underexposed, or just use your eyes if you don&#8217;t have a histogram. You can use the camera&#8217;s suggested metering as a starting point and adjust from there. Keep your eyes on the light around you and make sure that when it changes you have updated your camera settings in preparation for the next shot. And don&#8217;t forget to adjust the ISO appropriate to the light around you - typically 100-200 for bright days, 400 for overcast conditions, 800 and 1600 for indoor lighting. For a fun bonus, learn the <a href="http://en.wikipedia.org/wiki/Sunny_16">sunny f16 rule</a> and <a href="http://www.fredparker.com/ultexp1.htm">try using your eyes as a meter</a>.</p>
<p>Shameless plug: check out <a href="http://flickr.com/skwp9">my photography on flickr</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=Z_uTLW64oCQ:QxTA88EJUVQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=Z_uTLW64oCQ:QxTA88EJUVQ:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/Z_uTLW64oCQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/05/27/three-tips-for-better-street-photos/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/05/27/three-tips-for-better-street-photos/</feedburner:origLink></item>
		<item>
		<title>How to land a job 2.0</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/LOv3YOncIg0/</link>
		<comments>http://skwpspace.com/2009/05/13/how-to-land-a-job-20/#comments</comments>
		<pubDate>Thu, 14 May 2009 03:32:38 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/05/13/how-to-land-a-job-20/</guid>
		<description>Yesterday 37 Signals announced they were hiring a new designer. How did Jason land a job at a place hundreds of designers are dying to work at? He didn&amp;#8217;t just send them a resume, he started a conversation by creating a tailor-made website just for 37 Signals. Not only did the site explain exactly why [...]</description>
			<content:encoded><![CDATA[<p>Yesterday 37 Signals <a href="http://www.37signals.com/svn/posts/1726-the-newest-signal-jason-zimdars-designer">announced they were hiring a new designer</a>. How did Jason land a job at a place hundreds of designers are dying to work at? He didn&#8217;t just send them a resume, he <a href="http://jasonzimdars.com/svn/">started a conversation by creating a tailor-made website</a> just for 37 Signals. Not only did the site explain exactly why he was the right fit for that specific job and company, but he went further and <a href="http://jasonzimdars.com/svn/backpack.html">redesigned the company&#8217;s Backpack website</a>. And, importantly, the medium was the message - he didn&#8217;t just talk about his skills, he proved it by making a well designed website to deliver his pitch.</p>
<p>To land your dream job, you need to target your employer. Pretend to work for them and do something that proves you&#8217;re the person for the job. Show them your thought process by keeping a blog and being active in online communities. Show them your work by participating in projects and displaying them to the world.</p>
<p>At the same time, employers need to start getting more creative to find the talent they seek. Posting your job requests on monster with the same dry templated &#8220;5 years of experience with these 15 things&#8221; speak isn&#8217;t going to get you very far.</p>
<p>Why did I go to interview at <a href="http://cohesiveft.com">CohesiveFT</a>? It was their craigslist post that got me interested. They were quick to spot emerging trends (three years ago that was Ruby on Rails, and using Macs as dev machines), and used creative language that showed me that they were thoughtful and had personality. They stood out from a sea of dry and robotic postings produced by HR departments listing unrealistic requirements while sorely lacking a clue. And why did they hire me? I was an early adopter, I wanted to use exactly the technologies and platforms they found exciting, I had a blog where I shared my thoughts, and I had a project that demonstrated my skills in a way a standard resume could not.</p>
<p>Here&#8217;s the thing - it&#8217;s still early days for personal branding. Most of your peers are mass-blasting companies on Monster with the same resume template. Most of them don&#8217;t have much of an Internet presence beyond Facebook and LinkedIn. There is still a ton of room to stand out and get employers to notice you.</p>
<p><strong>How to get a competitive advantage over your peers</strong> and land your job 2.0:</p>
<ul>
<li>Know what job you want and tailor make a website/resume/portfolio for it.</li>
<li>Participate online - blog, tweet, etc.</li>
<li>Get your name all over the interweb - would your employer rather hire/interview someone they know nothing about, or someone they can get to know in advance by googling?</li>
<li>If you don&#8217;t know about <a href="http://en.wikipedia.org/wiki/Search_engine_optimization">SEO</a>, ask a friend or use a blog platform like <a href="http://wordpress.com/">Wordpress</a> which does much of the work for you. This will help you get in the top ranks on Google for your name.</li>
<li>Update your site regularly to get more Google juice.</li>
<li>Look for job opportunities in unlikely places, where fewer people are looking (facebook, twitter, linkedin, craigslist, niche job boards like jobs.37signals.com). Forget about Monster and the other big job sites.</li>
<li>Follow the companies you want to work for - their blogs, their tweets, their employees etc. Start conversations with them.</li>
<li>Create things that are of interest to your future employer. Pretend you work for them and execute a project that would make them envy your work.</li>
</ul>
<p></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=LOv3YOncIg0:d4S37YpGo8w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=LOv3YOncIg0:d4S37YpGo8w:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/LOv3YOncIg0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/05/13/how-to-land-a-job-20/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/05/13/how-to-land-a-job-20/</feedburner:origLink></item>
		<item>
		<title>Why proactive customer service works</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/KLQRgD0cEwc/</link>
		<comments>http://skwpspace.com/2009/05/08/why-proactive-customer-service-works/#comments</comments>
		<pubDate>Fri, 08 May 2009 20:29:27 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[customer service]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/05/08/why-proactive-customer-service-works/</guid>
		<description>Don&amp;#8217;t wait for your users to complain. If you notice a problem, contact the user and tell him you&amp;#8217;re working on it. Users often wait way too long to report problems. Usually at the point that they do, they are already filled with rage.
Such has been the story with me and Comcast. I get one [...]</description>
			<content:encoded><![CDATA[<p>Don&#8217;t wait for your users to complain. If you notice a problem, contact the user and tell him you&#8217;re working on it. Users often wait way too long to report problems. Usually at the point that they do, they are already filled with rage.</p>
<p>Such has been the story with me and Comcast. I get one disconnection, I shrug it off. I get another at 1am, and I take it as a sign to go to bed early, but today I had several disconnects during the day, while I was working, when I needed my connection to do work. At this point I was already filled with emotions built up from having terrible service over the last three days. So when I tweeted about it, I was already in a very negative mindset. Luckily, Comcast is one of the few companies that actually has very competent twitter support that can actually solve problems.</p>
<p>Nonetheless, how much better would it be if Comcast paid attention to the data that they already have. They know how many times my modem disconnected in the last week. If it happens once, send me an email telling me it was a minor hiccup. If it happens twice, have customer support notified right away. Don&#8217;t wait for my complaint! Email me, tell me you know the source of the problem, and when it will be fixed. How much cheaper will it be than dealing with crabby negative customers like me after 3 days of bad service?</p>
<p>This post takes me back to the saga I had with bluehost, who for several months would not admit that the box I was being hosted on was being oversold so badly that the database was down on a regular basis. Don&#8217;t let it get to that point. Be proactive in your customer support and your customers will love you.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=KLQRgD0cEwc:q1vzNpHPwZY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=KLQRgD0cEwc:q1vzNpHPwZY:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/KLQRgD0cEwc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/05/08/why-proactive-customer-service-works/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/05/08/why-proactive-customer-service-works/</feedburner:origLink></item>
		<item>
		<title>What cloud computing is NOT</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/wUIsMmZfcxY/</link>
		<comments>http://skwpspace.com/2009/03/27/what-cloud-computing-is-not/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 17:11:24 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[cloud computing]]></category>

		<category><![CDATA[elasticserver]]></category>

		<category><![CDATA[cloud]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/03/27/what-cloud-computing-is-not/</guid>
		<description>The Wall Street Journal just published an article trying to define cloud computing. Although hardly anyone can be faulted for not understanding the cloud (ahem) of jargon spewing from every marketing department of every IT department scrambling to be relevant without actually innovating, I wanted to help by offering a sort of proof by contradiction.
By [...]</description>
			<content:encoded><![CDATA[<p>The Wall Street Journal just published an <a href="http://online.wsj.com/article/SB123802623665542725.html">article trying to define cloud computing</a>. Although hardly anyone can be faulted for not understanding the cloud (ahem) of jargon spewing from every marketing department of every IT department scrambling to be relevant without actually innovating, I wanted to help by offering a sort of proof by contradiction.</p>
<p>By examining the types of companies and technologies claimed to be &#8220;cloud computing&#8221; (by themselves, or others), and then showing that what they are providing has been around for many years and already has its own label, we can hopefully narrow down what exactly is the important bit about cloud computing.</p>
<p>So&#8230;<strong>what cloud computing is NOT&#8230;</strong></p>
<ul>
<li>Gmail, google docs, salesforce.com, and etc. These things are simply web-based services, or <a href="http://en.wikipedia.org/wiki/Software_as_a_Service">SaaS</a>, or even <a href="http://en.wikipedia.org/wiki/Platform_as_a_service">PaaS</a> if you want to get fancy. This type of technology has been around and evolving at least for a decade. It may be getting popular and significant now, but it doesn&#8217;t warrant a new jargon term.</li>
<li>Running your software distributed among many computers. This is called grid computing, parallel computing, and so on. It&#8217;s been around in one form or another for decades, and again, does not warrant a new jargon term.</li>
<li>From the WSJ article: &#8220;In it&#8217;s broadest sense, <span style="font-family: Arial; font-size: 13px; line-height: 19px;">cloud computing describes [...] Information is stored and processed on computers somewhere else &#8212; &#8220;in the clouds&#8221; &#8212; and brought back to your screen.&#8221;. No, that&#8217;s called the Internet. See also client/server, server side processing, thin clients, take your pick.</span></li>
<li><span style="font-family: Arial; font-size: 13px; line-height: 19px;">&#8220;A company&#8217;s backroom mass of servers and switches is cloudlike.&#8221; - No, that&#8217;s a datacenter. There&#8217;s nothing significantly more cloudlike about it today than there was ten years ago.</span></li>
<li><span style="font-family: Arial; font-size: 13px; line-height: 19px;">Just a marketing term. <strong>Cloud computing is a significant change in how businesses acquire and pay for computing resources.</strong></span></li>
</ul>
<p>See more: <a href="http://skwpspace.com/2008/08/26/storing-your-stuff-online-is-not-cloud-computing/">Storing your stuff online is not cloud computing</a>, <a href="http://skwpspace.com/2008/06/20/what-is-cloud-computing/">What is Cloud Computing?</a></p>
<p>Shameless plug: <a href="https://elasticserver.com/">Elastic Server</a> will have you running in the cloud in minutes.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=wUIsMmZfcxY:lPdqK5mTrnw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=wUIsMmZfcxY:lPdqK5mTrnw:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/wUIsMmZfcxY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/03/27/what-cloud-computing-is-not/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/03/27/what-cloud-computing-is-not/</feedburner:origLink></item>
		<item>
		<title>Hulu’s long form ads and the future of pull advertising</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/d59SOzW3uhc/</link>
		<comments>http://skwpspace.com/2009/03/02/hulus-long-form-ads-and-the-future-of-pull-advertising/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 15:59:52 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[thoughts]]></category>

		<category><![CDATA[advertising]]></category>

		<category><![CDATA[analysis]]></category>

		<category><![CDATA[hulu]]></category>

		<category><![CDATA[media]]></category>

		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/03/02/hulus-long-form-ads-and-the-future-of-pull-advertising/</guid>
		<description>Hulu is testing a new feature which lets you select whether you want the regular 30 second spots spaced throughout the show you watch, or one long (2 minute) clip from one sponsor. Here&amp;#8217;s why I think this is a great move:

30 second spots interrupt you right as you&amp;#8217;re watching a show so your annoyance [...]</description>
			<content:encoded><![CDATA[<p>Hulu is testing a new feature which lets you select whether you want the regular 30 second spots spaced throughout the show you watch, or one long (2 minute) clip from one sponsor. Here&#8217;s why I think this is a great move:</p>
<ul>
<li>30 second spots interrupt you right as you&#8217;re watching a show so your annoyance factor is high.</li>
<li>With a 2 minute spot, the advertiser <em>has to work to capture your attention.</em> This is a key aspect. One recent commercial I saw was a 2 minute short film about Honda racing. The film was actually relatively interesting to watch and a lot more palatable and engaging than a 30 second spot involving jingles and a radio announcer voice.</li>
<li>The 2 minute spot will give advertisers more creativity to deliver content that is actually interesting to users, rather than resorting to traditional 30 second spot limitations of drilling messages into your brain.</li>
<li>I am more likely to associate a positive experience with a brand if they&#8217;ve earned my respect. By showing me an interesting clip and then leaving me at peace to watch my show, the brand wins.</li>
</ul>
<p>I found one blog that claims an <a href="http://parksassociates.blogspot.com/2008/12/coming-soon-long-form-online-ads-from.html">88% response rate in favor of the 2 minute ads</a>. They also talk about how it would be potentially hard for advertisers to come up with good content, making a point that a 2 minute long commercial about Wal-Mart may be hard to swallow. This is a Good Thing. <strong>Advertisers</strong> <strong>should</strong> <strong>work for our attention.</strong> If they can&#8217;t muster up an interesting 2 minute clip, then they don&#8217;t deserve our attention.</p>
<p>The age of push marketing is coming to a rapid close as our primary content delivery method shifts to the Internet and on-demand technologies. We&#8217;re not going to sit there and wait for our shows to come on, we&#8217;re just going to click a button and watch what we want, when we want.</p>
<p><strong>But we need to make ads just as pullable as we do our content.</strong> If I&#8217;m gonna have to watch a 2 minute ad, why shouldn&#8217;t I <em>choose</em> which ad I want to see? If I&#8217;m presented with 2 or 3 choices I might click on an 2 minute long ad about rock climbing because I&#8217;m really into that, or a funny short advertising The Office, but I&#8217;m not really into shopping at Wal-Mart so I&#8217;m going to ignore that one whether they like it or not. With pull advertising, the publishers also get my attention data, because I chose to watch their ad over several others. They get data about how they&#8217;re doing demographically, and they get data about how they stack up against competitors.</p>
<p>Hulu would also get an interesting idea about advertising demographics and determine ad popularity. Eventually they could use this data to figure out which ads people would like based on ads they&#8217;ve watched in the past and attention data from the rest of the community. This could usher in a new age of advertising where crappy uninteresting ads float to the bottom and out of sight, creating a competition for quality of ads by the publishers.</p>
<p>When the ad content gets interesting, user attention is captured, users aren&#8217;t annoyed by bad and irrelevant ads, everybody wins.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=d59SOzW3uhc:pSXQMunmDKk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=d59SOzW3uhc:pSXQMunmDKk:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/d59SOzW3uhc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/03/02/hulus-long-form-ads-and-the-future-of-pull-advertising/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/03/02/hulus-long-form-ads-and-the-future-of-pull-advertising/</feedburner:origLink></item>
		<item>
		<title>Why Safari 4’s new tab layout is detrimental to usability</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/-Ci-llw3IUY/</link>
		<comments>http://skwpspace.com/2009/02/25/why-safari-4s-new-tab-layout-is-detrimental-to-usability/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 05:20:51 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[usability]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[desgin]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/02/25/why-safari-4s-new-tab-layout-is-detrimental-to-usability/</guid>
		<description>While there were many good improvements made to Safari 4 beta, I hope that Apple considers bringing the tabs back to their rightful place, or at least offering an option for classic tab view. Here are the reasons I believe the new tab layout is actually detrimental to usability.

Fitts&amp;#8217;s law. When I click to open [...]</description>
			<content:encoded><![CDATA[<p>While there were many good improvements made to Safari 4 beta, I hope that Apple considers bringing the tabs back to their rightful place, or at least offering an option for classic tab view. Here are the reasons I believe the new tab layout is actually detrimental to usability.</p>
<ol>
<li>Fitts&#8217;s law. When I click to open a new tab, I previously had immediate visual feedback that this had occurred. Now I have to look past two additional rows of screen real estate (the shortcut bar, and the url bar) to spot the change. I have already had a few times where I command-clicked a link to open in a tab and had a bit of trouble spotting that the tab had actually opened. Not only does it affect the distance my gaze has to travel, but also my mouse, when going from page content to clicking between tabs I now have to pass two additional rows.</li>
<li>Inconsistency. Up to the release of Safari 4, all Mac applications had a uniform title bar. The top line of the window was reserved as a place to display the window title. Now the top line is taken up by tabs, making this application behave differently than every other. Not only is this visually inconsistent, but if you click the corner of a tab you can end up dragging the tab instead of the window. You can also (with admittedly small probability) land on the close tab icon when trying to drag the window, which will not enable you to drag at all. While both of these events have small target areas, and thus low probability of being hit, the fact that it&#8217;s possible makes it a worse choice for usability.</li>
</ol>
<p>Why did they do it? I am guessing that eliminating the standard title bar and using that real estate for tabs enables us to gain about 25 pixels more vertical space for actual page content. But I don&#8217;t think 25 pixels of content is a fair tradeoff for the usability problems introduced by the change.</p>
<p><b>Update:</b> Restore your sanity:</p>
<pre style='font-size:10px'>
defaults write com.apple.Safari DebugSafari4TabBarIsOnTop -bool NO
</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=-Ci-llw3IUY:Gh3jnayPiDE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=-Ci-llw3IUY:Gh3jnayPiDE:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/-Ci-llw3IUY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/02/25/why-safari-4s-new-tab-layout-is-detrimental-to-usability/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/02/25/why-safari-4s-new-tab-layout-is-detrimental-to-usability/</feedburner:origLink></item>
		<item>
		<title>Just good enough</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/H1qfP59PQUY/</link>
		<comments>http://skwpspace.com/2009/01/29/just-good-enough/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 04:49:25 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2009/01/29/just-good-enough/</guid>
		<description>I recently finished Malcom Gladwell&amp;#8217;s Outliers , a really interesting look at some of the most well known success stories including Bill Gates, the Beatles, and Jewish lawyers, among others. The book covers a range of topics but one of the central premises is that what we perceive is talent is more like an affinity [...]</description>
			<content:encoded><![CDATA[<p>I recently finished Malcom Gladwell&#8217;s <a href="http://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/0316017922/planypus09-20">Outliers</a> , a really interesting look at some of the most well known success stories including Bill Gates, the Beatles, and Jewish lawyers, among others. The book covers a range of topics but one of the central premises is that what we perceive is <em>talent</em> is more like an affinity to work your ass off and practice, practice, practice.</p>
<p>The book presents lots of interesting evidence for this, and even throws out a number - you need 10,000 hours of practice at something to achieve expert level. Gladwell says getting started young and having access to the environment they needed to spend those ten thousand hours perfecting their art helped Bill Gates, Mozart, and the Beatles to become great.</p>
<p>The other key notion in the book is that you have to be <em>just good enough</em>. For example, to win a Nobel prize, statistically you need an IQ of about 130. But it turns out that having an IQ of 150 or 200 does not increase your chances of getting the Nobel prize. In other words, there is a particular threshold above which you are <em>good enough</em> to get a Nobel prize. The rest is up to how hard you work, the hours you put in to practice and get great at what you do.</p>
<p>Not all of us can be Nobel prize winners, but most of us are probably <em>good enough</em> in our areas of specialty to have a chance at greatness. So the only thing standing in our way is practice. There&#8217;s my inspirational thought for the day&#8230;time to go practice :-)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=H1qfP59PQUY:HTG2nfJXB-w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=H1qfP59PQUY:HTG2nfJXB-w:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/H1qfP59PQUY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2009/01/29/just-good-enough/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2009/01/29/just-good-enough/</feedburner:origLink></item>
		<item>
		<title>Identity photo project: casting call</title>
		<link>http://feedproxy.google.com/~r/Skwpspace/~3/sIWnZT2A7vc/</link>
		<comments>http://skwpspace.com/2008/12/28/identity-photo-project-casting-call/#comments</comments>
		<pubDate>Sun, 28 Dec 2008 20:26:44 +0000</pubDate>
		<dc:creator>yan</dc:creator>
		
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://skwpspace.com/2008/12/28/identity-photo-project-casting-call/</guid>
		<description>I&amp;#8217;m starting a photo project this month that will investigate the concept of identity by looking at your hobbies. I want to take two shots of each person. The first will illustrate you in the personality of your favorite hobby. Whether it involves a particular costume, set, environment, props, we will capture this identity. The [...]</description>
			<content:encoded><![CDATA[<p>I&#8217;m starting a photo project this month that will investigate the concept of identity by looking at your hobbies. I want to take two shots of each person. The first will illustrate you in the personality of your favorite hobby. Whether it involves a particular costume, set, environment, props, we will capture this identity. The second shot will be something you&#8217;ve always wanted to do but haven&#8217;t done for whatever reason. We will come up with the idea for the shot together, once you tell me your chosen identities.</p>
<p>No previous modeling experience is necessary, and shooting will take place on saturdays and sundays in Chicago and Evanston, at locations of your choosing, as long as they&#8217;re easy to get to by public transportation. Please contact me at yan AT pritzker DOT ws with your two identities (it&#8217;s ok if you need time to think about them) and your availability over the next two months if interested. You will receive a CD with the full resolution photos for printing or publishing on the web. Thanks!</p>
<p><b>Update:</b> Please see the <a href="http://skwp.backpackit.com/pub/1658261"/>  scheduling page</a> for my availability.</p>
<p><img src="http://farm3.static.flickr.com/2277/2350119259_c0f090bac0_m.jpg" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Skwpspace?a=sIWnZT2A7vc:OJ9h09FtpRw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Skwpspace?a=sIWnZT2A7vc:OJ9h09FtpRw:ZpG_KDbvXlY"><img src="http://feeds.feedburner.com/~ff/Skwpspace?d=ZpG_KDbvXlY" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Skwpspace/~4/sIWnZT2A7vc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://skwpspace.com/2008/12/28/identity-photo-project-casting-call/feed/</wfw:commentRss>
		<feedburner:origLink>http://skwpspace.com/2008/12/28/identity-photo-project-casting-call/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.749 seconds -->
