<?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.antipode.ca/~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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Antipode</title>
	
	<link>http://www.allenpike.com</link>
	<description>Allen Pike on gidgets and gazmos.</description>
	<lastBuildDate>Mon, 06 Feb 2012 22:41:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.antipode.ca/antipode" /><feedburner:info uri="antipode" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.antipode.ca%2Fantipode" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.antipode.ca%2Fantipode" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.antipode.ca%2Fantipode" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.antipode.ca/antipode" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.antipode.ca%2Fantipode" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.antipode.ca%2Fantipode" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.antipode.ca%2Fantipode" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Anchoring startups</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/31hb_YQ5O4s/</link>
		<comments>http://www.allenpike.com/2012/anchoring-startups/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 22:09:18 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Bootstrapping]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Vancouver]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=2139</guid>
		<description><![CDATA[Yesterday I put fuel on Jesse&#8217;s fire by talking about the importance of helping startups be physically close to one another. Work spaces are a small part of the bigger issue: how do we get great tech companies to grow and anchor in our city? Greg and Danny at BCIC put it thusly: Anchoring means [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right"  class="alignnone size-full wp-image-2154"  title="A couple hard-working hippies."  src="http://www.antipode.ca/wp-content/uploads/2012/02/woz-jobs.jpg"  alt=""  width="150"  height="150"   style="float: right; padding-bottom: 10px; padding-left: 10px"/>Yesterday I <a href="http://www.allenpike.com/2012/homes-for-vancouver-startups/" >put fuel</a> on<a href="http://id8.ca/two-problems-with-vancouver-and-three-ways-to-fix-it" > Jesse&#8217;s fire</a> by talking about the importance of helping startups be physically close to one another. Work spaces are a small part of the bigger issue: how do we get great tech companies to grow and anchor in our city?</p>
<p>Greg and Danny at BCIC <a href="http://www.bcic.ca/blog/191-general/1449-the-rationale-for-bcics-support-of-startups" >put it thusly</a>:</p>
<blockquote><p>Anchoring means that a company has hit a level of maturity where it starts to give back to the community in the form of creating jobs, educating the talent pool, adding credibility to the region, inspiring young entrepreneurs, and spinning out new entrepreneurs, and tax revenue. This is the ultimate goal, and the ideal outcome. However, it doesn&#8217;t happen often, so the question becomes how do we make it happen more &#8211; or &#8211; how do we increase conversion?</p></blockquote>
<p>Nailed it.</p>
<p>When people talk about Silicon Valley they focus on the investors and the schools &#8211; but the large anchor companies are the core of it all. Companies like Apple and HP have spent decades attracting top talent, training them, making them wealthy, and spinning out fresh founders. Their profits fuel that ecosystem.</p>
<p>So we&#8217;ve identified the goal: we want an HP, a Microsoft, or a RIM to start here, grow here, and stay here<sup>1</sup>. Once that happens, we become Palo Alto, Redmond, or Waterloo respectively. Once you&#8217;ve become Palo Alto, your existence may bring neighbours Cupertino and Mountain View into existence, and a technology Mecca is born<sup>2</sup>.</p>
<p>So how do we get an HP, Microsoft, or RIM in Vancouver? BCIC says to simply <a href="http://www.bcic.ca/blog/191-general/1449-the-rationale-for-bcics-support-of-startups" >increase the number of startups</a>. Jesse says to <a href="http://id8.ca/two-problems-with-vancouver-and-three-ways-to-fix-it" >increase the number of startups that exit</a>. Boris says to <a href="http://blog.bmannconsulting.com/build-more-startups-in-vancouver" >increase the number of startups that exit or get to Series A</a>. None of these will hurt.</p>
<p>However, anchor companies are not born from landing a big investment, building a revenueless consumer app and selling to Google.</p>
<p>Anchor companies are born from smart people who love where they live, bootstrapping a company to profitability, then growing the shit out of that company.</p>
<p>Companies that are built to be acquired won&#8217;t stay in their home town. Acquisitions that happen for talent usually come with the requirement that the employees move to their new HQ<sup>3</sup>. On the other hand, if a company buys you because you&#8217;re profitable, they&#8217;ll often let you keep doing your thing.</p>
<p>I&#8217;ve been called &#8220;old fashioned&#8221;<sup>4</sup>, because I have a great fondness for bootstrapping and profitability. As far as I know, Nitobi, Mobify, and iQmetrix were all bootstrapped to profitability. As were HP, Microsoft, and RIM. As was Lululemon, a company that could only have been started in Vancouver. 37signals put Chicago on the tech map with only a couple dozen employees.</p>
<p>So how do we get companies to stay here? We help founders build profitable companies &#8211; then grow them.</p>
<ol class="footnotes" ><li id="footnote_0_2139"  class="footnote" >I pick these examples because they are tech giants that grew where there was no giant before.</li><li id="footnote_1_2139"  class="footnote" >For those who aren&#8217;t familiar with Silicon Valley anthropology, HP started in Palo Alto, helping turn the surrounding valley into Silicon Valley. Steve Wozniak worked at HP, but founded Apple in neighbouring Cupertino because HP wouldn&#8217;t get on board with his idea of building a personal computer. Like a nuclear chain reaction, success fuelled success and most large tech companies are now founded by ex-employees of other Valley companies.</li><li id="footnote_2_2139"  class="footnote" >It&#8217;s worth recognizing that people returning to their hometown after a big Valley exit are good candidates for later bootstrapping an anchor company here.</li><li id="footnote_3_2139"  class="footnote" >&#8220;Old Fashioned&#8221; was the title <a href="http://liningthingsup.com/#06-Allen-Pike" >the Lining Things Up episode I was on</a> recently, referring to my fondness for making things and selling those things.</li></ol><div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=31hb_YQ5O4s:M9bf5mL9QCw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=31hb_YQ5O4s:M9bf5mL9QCw:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/31hb_YQ5O4s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2012/anchoring-startups/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2012/anchoring-startups/</feedburner:origLink></item>
		<item>
		<title>Homes for Vancouver startups</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/WBTDOqDQpBM/</link>
		<comments>http://www.allenpike.com/2012/homes-for-vancouver-startups/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 21:18:01 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Steam Clock]]></category>
		<category><![CDATA[Vancouver]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=2128</guid>
		<description><![CDATA[A vital element of a startup community is the relationships between startups. Companies band together to get office space, forward leads to one another, and refer each other to good suppliers. Your neighbour may be your customer #1, or being their customer #1 might give you a competitive advantage. Growing startups hire good people from [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right"  class="alignnone size-full wp-image-2135"  title="A bright, warm space for bright, warm startups."  src="http://www.antipode.ca/wp-content/uploads/2012/02/coworking.jpg"  alt=""  width="150"  height="150"   style="float: right; padding-bottom: 10px; padding-left: 10px"/>A vital element of a startup community is the relationships between startups. Companies band together to get office space, forward leads to one another, and refer each other to good suppliers. Your neighbour may be your customer #1, or being their customer #1 might give you a competitive advantage. Growing startups hire good people from dying startups, and acquired companies fuel the growth of new ones.</p>
<p>So far at Steam Clock, we&#8217;ve had close relationships with Nitobi and Mobify<sup>1</sup>. We&#8217;ve shared space with them, worked for them, had beer with them, and been inspired by their ass-kicking. Our relationship with these two larger startups has helped shape our success so far &#8211; how could you not stay on the cutting edge of mobile when surrounded by these folks?</p>
<p>New founders don&#8217;t yet have these relationships, so where do they come from? For us, most of our startup relationships started through SFU, VanJS, or simply from being in Gastown. The Gastown area proves that higher the startup density, the more easily relationships form &#8211; and the highest possible density of startups is at a coworking space.</p>
<p>The premier Gastown-area coworking spaces right now are <a href="http://www.thenetworkhub.ca/" >The Network Hub</a> and <a href="http://www.hivevancouver.com/" >The HiVE</a>. Prior to that, WorkSpace served as our startup nexus, and helped inspire me to start Steam Clock. If you participate in an accelerator like GrowLab you&#8217;ll likely share space with other startups in the program.</p>
<p>Jesse Heaslip, in an <a href="http://id8.ca/two-problems-with-vancouver-and-three-ways-to-fix-it" >otherwise interesting post</a> about getting startups to stay in Vancouver, has announced a new startup space called <a href="http://hackhut.ca/" >Hack Hut</a>. Uninspiring name aside<sup>2</sup>, it will likely be a good option for startups growing past the home office but who aren&#8217;t yet able to sublease from another larger, growing company. The price is nice (although it sounds like a money-losing proposition unfortunately) and as long as they don&#8217;t end up some distant part of Railtown it should be pretty plugged in to the community.</p>
<p>Bringing startups close to one another is, dollar for dollar, more helpful to the Vancouver ecosystem than tax breaks ever could be.</p>
<ol class="footnotes" ><li id="footnote_0_2128"  class="footnote" >&#8230;and Mozilla, and Joyent, and iQmetrix, and Foodtree, and Spacelist, and a host of other awesome Vancouver companies.</li><li id="footnote_1_2128"  class="footnote" >Both the word &#8220;Hack&#8221; and the word &#8220;Hut&#8221; feel unprofessional, making the combo pretty weak. It makes me think of a back room where college students can play with Arduinos.</li></ol><div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=WBTDOqDQpBM:4MQBQBxER4k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=WBTDOqDQpBM:4MQBQBxER4k:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/WBTDOqDQpBM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2012/homes-for-vancouver-startups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2012/homes-for-vancouver-startups/</feedburner:origLink></item>
		<item>
		<title>The pain of text formatting on iOS</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/dq64U04ii9s/</link>
		<comments>http://www.allenpike.com/2012/the-pain-of-text-formatting-on-ios/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 00:26:01 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=2118</guid>
		<description><![CDATA[Today Buzz Andersen highlighted the biggest hole in Cocoa Touch: there is no simple way to format text. What we really need is a facility that provides access to at least some subset of WebKit HTML rendering capabilities at a level between CoreText and UIWebView—something that doesn’t require developers to essentially re-invent HTML and CSS [...]]]></description>
			<content:encoded><![CDATA[<p>Today Buzz Andersen highlighted the biggest hole in Cocoa Touch: <a href="http://log.scifihifi.com/post/16834335332/a-plea-for-better-ios-text-facilities" >there is no simple way to format text</a>.</p>
<blockquote><p>What we really need is a facility that provides access to at least some subset of WebKit HTML rendering capabilities at a level between CoreText and UIWebView—something that doesn’t require developers to essentially re-invent HTML and CSS but allows them to render at least some level of HTML formatted text to a native view without the overhead and inflexibility of UIWebView—basically, a next generation version of Mac OS X Cocoa’s NSAttributedString</p></blockquote>
<p>My favourite &#8220;why is native iOS development sometimes expensive&#8221; story is the Tale of the Bold Username. In an alpha version of the iPhone app we built for Foodtree, we displayed comments like so:</p>
<blockquote><p>Allen: These are some great-looking blueberries! This year I&#8217;m buying a few pounds and freezing them.</p></blockquote>
<p>We&#8217;d just hired Angelina, who had a background in web development, and her first task was to change the formatting to look like this:</p>
<blockquote><p><b style="font-weight: bold; color: #C75B12;" >Allen</b>&nbsp; These are some great-looking blueberries! This year I&#8217;m buying a few pounds and freezing them.</p></blockquote>
<p>She was surprised that we estimated it would take her two days. In HTML this would take a few seconds &#8211; possibly a few minutes. Sure enough, it took two full days to get the text layout reimplemented in the low-level C APIs, called CoreText<sup>1</sup>.</p>
<p>As soon as we changed to a formatted multi-line label, we had to do a whole pile of work just to lay out the text, specify the character range we wanted to format, wrap the text, actually render, and then get the dimensions of the final output. Things were further complicated by the fact we needed to get the dimensions of the output for every row in the table before it could be displayed, since this determined the height of the rows and therefore the scrolling metrics.</p>
<p>Why not just use a WebView? In most cases we would, but this is was one little element that may appear hundreds of times in a scrolling TableView. The table needs to be able to <a href="/2011/providing-joy-at-60-fps/" >scroll at 60fps</a>, and there&#8217;s no way we can tear down and set up WebView fast enough.</p>
<p>Worse, in order to get the proper scrollbar height at load time, you&#8217;d need to render the whole content in every WebView for the entire table. We could reimplement the entire main view of the app in a WebView, but that would have a whole other set of performance and UI consequences, and be a lot of work. </p>
<p>I think Buzz&#8217; conclusion is apt:</p>
<blockquote><p>I think the absence of such an API on iOS is holding the platform back as a media platform more than almost anything else I can think of.</p></blockquote>
<ol class="footnotes" ><li id="footnote_0_2118"  class="footnote" >Uncharacteristically, we didn&#8217;t bill for the time &#8211; partly because she was learning, and partly because it seemed so ridiculous.</li></ol><div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=dq64U04ii9s:7tFCc-MlgHc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=dq64U04ii9s:7tFCc-MlgHc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/dq64U04ii9s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2012/the-pain-of-text-formatting-on-ios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2012/the-pain-of-text-formatting-on-ios/</feedburner:origLink></item>
		<item>
		<title>Design your way out of that paper bag</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/0is_B28Uqlc/</link>
		<comments>http://www.allenpike.com/2011/design-your-way-out-of-that-paper-bag/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 02:07:08 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Prism]]></category>
		<category><![CDATA[Steam Clock]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[Visual Design]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=2071</guid>
		<description><![CDATA[There are a dozen apps that do the same thing as yours1. To stand out, your users must to be delighted by your product &#8211; from icon to settings screen. You get there by designing, aligning, and refining each screen, nook, and edge case. Most programmers act as if their ability to program prevents them [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2092"  class="wp-caption alignright"  style="width: 101px" ><a href="http://www.antipode.ca/wp-content/uploads/2011/12/prism-add-buttons1.png" ><img align="right"  class="size-medium wp-image-2092"  title="Prism design iteration."  src="http://www.antipode.ca/wp-content/uploads/2011/12/prism-add-buttons1-91x300.png"  alt=""  width="91"  height="300"   style="float: right; padding-bottom: 10px; padding-left: 10px"/></a><p class="wp-caption-text" >Watch me learn design via Prism&#39;s add button iterations.</p></div>
<p>There are a dozen apps that do the same thing as yours<sup>1</sup>. To stand out, your users must to be delighted by your product &#8211; from icon to settings screen. You get there by designing, aligning, and refining each screen, nook, and edge case.</p>
<p>Most programmers act as if their ability to program prevents them from making something look good. This is bullshit. There are hundreds of counterexamples, ranging from <a href="https://twitter.com/atebits" >Loren Brichter</a> to <a href="http://flyosity.com/" >Mike Rundle</a>. You get good at design exactly the same way you get good at programming: you do it badly enough times to become mediocre, then you do it mediocrally until you become good.</p>
<p>Maybe you don&#8217;t enjoy design, which is fine. However, most engineers haven&#8217;t really tried it because they think they&#8217;re incapable. If you&#8217;re really unsure where to start, do a bit of reading about spacing and alignment. Spend some time trying to reproduce a nice-looking button or effect. Pull apart somebody&#8217;s .psd and reverse-engineer it.</p>
<p>Then here&#8217;s what you do: next time you&#8217;re tasked with adding a feature, take a serious shot at how it should look. Do your best to line up that new button with the existing ones. If the existing styles in the app clearly won&#8217;t work, try tweaking one until it&#8217;s close.</p>
<p>Your goal is to add a new feature, then have the designer that usually fixes your &#8220;programmer art&#8221; leave it alone<sup>2</sup>. It may start small &#8211; an error message or edge case, or a new element that just needs to be well aligned and balanced with what&#8217;s already there.</p>
<p>The more design practice you get, the more opportunities it will open. The prototypes you present to superiors will become more impressive. Your personal website will stop looking like it&#8217;s from 1998. The designer time spent on your features will go to polish and &#8220;wow&#8221; instead of just getting things up to par with the rest of the product.</p>
<p>Before you know it<sup>3</sup>, you will have become a unicorn. That&#8217;s right, every startup&#8217;s dream: <a href="https://twitter.com/johnallsopp/status/148906621056196608" >a Desingineer</a>. You&#8217;ll likely continue to focus on programming, but you&#8217;ll have become more powerful than you could possibly imagine.</p>
<p>Or at least, you&#8217;ll make wonderful looking products that people want to use. That&#8217;s a good start.</p>
<ol class="footnotes" ><li id="footnote_0_2071"  class="footnote" >If there aren&#8217;t, you&#8217;re either crazy, or there will be soon.</li><li id="footnote_1_2071"  class="footnote" >Admittedly this was very hard at Apple, but I got pretty good at it. The trick was to find some function or edge case that had yet to be mocked up by Design, and implement it so well that it looked like it had been reviewed.</li><li id="footnote_2_2071"  class="footnote" >Well actually, after thousands of hours of practice, but close enough.</li></ol><div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=0is_B28Uqlc:PSFsURbaGtU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=0is_B28Uqlc:PSFsURbaGtU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/0is_B28Uqlc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2011/design-your-way-out-of-that-paper-bag/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2011/design-your-way-out-of-that-paper-bag/</feedburner:origLink></item>
		<item>
		<title>Prism, the image browser</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/HzHoecH0HPE/</link>
		<comments>http://www.allenpike.com/2011/prism-the-image-browser/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 00:07:16 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Prism]]></category>
		<category><![CDATA[Steam Clock Software]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=2059</guid>
		<description><![CDATA[Today, Steam Clock Software launches Prism. A year ago, we wondered, &#8220;Why isn&#8217;t there an Instapaper for images?&#8221; Photo galleries like The Big Picture and Reddit&#8217;s &#8220;Earth Porn&#8221; are kind of a pain to browse on the iPad, and nobody who had tackled the problem of image browsing gave you a distraction-free, full-screen experience where [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.steamclocksw.com/prism/" ><img align="right"  class="alignnone size-full wp-image-2060"  title="Prism, the best image browsing app for iPad."  src="http://www.antipode.ca/wp-content/uploads/2011/12/prism-image-browser.png"  alt=""  width="150"  height="150"   style="float: right; padding-bottom: 10px; padding-left: 10px"/></a>Today, Steam Clock Software launches <a href="http://www.steamclocksw.com/prism/" >Prism</a>. A year ago, we wondered, &#8220;Why isn&#8217;t there an Instapaper for images?&#8221; Photo galleries like <a href="http://www.boston.com/bigpicture/" >The Big Picture</a> and <a href="http://www.reddit.com/r/earthporn" >Reddit&#8217;s &#8220;Earth Porn&#8221;</a> are kind of a pain to browse on the iPad, and nobody who had tackled the problem of image browsing gave you a distraction-free, full-screen experience where the images load faster than you flip through them.</p>
<p>The first 10% of our work on Prism was getting full-screen images loading from a few sites. The other 90% was crazy amounts of polish: captions, multi-threaded loading, Recommended Galleries, generating nice thumbnails, storing images for offline use, not storing too many images for offline use, and so on. We had to make a judgement call between being the best at we do (pulling images out of HTML) or instead focusing on supporting every site in the world. Looking at Prism 1.0, I think we made the right call.</p>
<p>Looking forward, there are a lot of sites we&#8217;d like to add support for &#8211; Twitter, Facebook, Google Reader, and Flickr are some big ones, but the sites users request will get support first. If you&#8217;re interested, please <a href="itms://itunes.apple.com/app/prism-the-image-browser/id488236799?mt=8" >give Prism a try</a> and let me know what you think.</p>
<p>Onward!</p>
<div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=HzHoecH0HPE:zZCDm6_Mees:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=HzHoecH0HPE:zZCDm6_Mees:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/HzHoecH0HPE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2011/prism-the-image-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2011/prism-the-image-browser/</feedburner:origLink></item>
		<item>
		<title>Web technology in native apps</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/MKtrTLuyq28/</link>
		<comments>http://www.allenpike.com/2011/web-technology-in-native-apps/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 06:15:52 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mobile Safari]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=2050</guid>
		<description><![CDATA[When discussing mobile apps, we&#8217;re often asked, &#8220;native or HTML5&#8243;? For some products it really makes sense to build a mobile web site, for others a 100% native app is the best approach. What often surprises people is when we recommend some of each. Once you&#8217;ve made the call to distribute using the App Store, [...]]]></description>
			<content:encoded><![CDATA[<p>When discussing mobile apps, we&#8217;re often asked, &#8220;native or HTML5&#8243;? For some products it really makes sense to build a mobile web site, for others a 100% native app is the best approach. What often surprises people is when we recommend some of each. Once you&#8217;ve made the call to distribute using the App Store, you have both technologies at your disposal and should build each part of your app using the best tool.</p>
<p>Buzz Andersen, a longtime Objective-C developer, has a good example in  <a href="http://log.scifihifi.com/post/13084982465/the-facebook-app-fuck-ups-seem-to-be-because" >his post about dogmatic Native vs. Web arguments</a>:</p>
<blockquote><p>To me, one of the textbook examples of something the web is <em>made</em> for but is practically rocket science on iOS is text rendering. While users are accustomed to thinking of iOS apps as exceptionally beautiful and visually sophisticated, UIKit’s text rendering capabilities turn out to be frustratingly primitive, making it quite a challenge for even expert iOS developers to match the advanced page layout and text formatting capabilities of web browsers.</p></blockquote>
<p>The point is that although ignoring the great strengths of native code can lead to an inferior app, ignoring the great strengths of Webkit can also lead to an inferior app. Dogma doesn&#8217;t help build wonderful products &#8211; choosing the right tools does.</p>
<div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=MKtrTLuyq28:nCIsoibaWIs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=MKtrTLuyq28:nCIsoibaWIs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/MKtrTLuyq28" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2011/web-technology-in-native-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2011/web-technology-in-native-apps/</feedburner:origLink></item>
		<item>
		<title>Video: Making a JS meetup blow minds</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/dPJOh_7c4L0/</link>
		<comments>http://www.allenpike.com/2011/video-making-a-js-meetup-blow-minds/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 00:56:01 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JSConf]]></category>
		<category><![CDATA[VanJS]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=2017</guid>
		<description><![CDATA[In May I gave this 15 minute talk at JSConf about putting together a great tech meetup, based on my experience putting on VanJS. JSConf was the largest crowd I&#8217;ve presented to so far (about 200 by my count) but it was worth the pressure for sure. Any feedback on my presentation style would be [...]]]></description>
			<content:encoded><![CDATA[<p>In May I gave <a href="http://blip.tv/jsconf/jsconf2011-allen-pike-5454838" >this 15 minute talk at JSConf</a> about putting together a great tech meetup, based on my experience putting on VanJS.</p>
<p><iframe src="http://blip.tv/play/g_Mngsz4WgI.html"  width="510"  height="320"  frameborder="0"  allowfullscreen="" ></iframe><embed type="application/x-shockwave-flash"  src="http://a.blip.tv/api.swf#g_Mngsz4WgI"  style="display:none" ></embed></p>
<p>JSConf was the largest crowd I&#8217;ve presented to so far (about 200 by my count) but it was worth the pressure for sure. Any feedback on my presentation style would be really helpful. Maybe next year I&#8217;ll give a talk entitled &#8216;Eliminating all the &#8220;uh&#8221;s and head bobbing you see in videos of yourself giving talks&#8217;.</p>
<div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=dPJOh_7c4L0:ItC3lWzSDN4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=dPJOh_7c4L0:ItC3lWzSDN4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/dPJOh_7c4L0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2011/video-making-a-js-meetup-blow-minds/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2011/video-making-a-js-meetup-blow-minds/</feedburner:origLink></item>
		<item>
		<title>Providing joy at 60 fps</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/dVd5obqHbDA/</link>
		<comments>http://www.allenpike.com/2011/providing-joy-at-60-fps/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 20:52:51 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.allenpike.com/?p=1972</guid>
		<description><![CDATA[At Steam Clock we go to a lot of effort to make sure we ship apps with a high level of polish. Making your app solve the user&#8217;s problems well is the first 90% of building a great app. Polishing the hell out of that experience so it&#8217;s a joy to use is the final [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right"  class="alignnone size-full wp-image-1985"  title="A sweet progress pie."  src="http://www.antipode.ca/wp-content/uploads/2011/07/progress.png"  alt=""  width="150"  height="150"   style="float: right; padding-bottom: 10px; padding-left: 10px"/>At Steam Clock we go to a lot of effort to make sure we ship apps with a high level of polish. Making your app solve the user&#8217;s problems well is the first 90% of building a great app. Polishing the hell out of that experience so it&#8217;s a joy to use is the final 90% of the work.</p>
<p>A huge component of that polish is responsiveness: giving the user an instant reaction to everything they do. Making your app faster and more efficient is good, but there&#8217;s more to responsiveness than speed.</p>
<p><strong>60 frames</strong></p>
<p>Your goal is 60 frames per second: the natural frame rate of the device, faster than the user can perceive. During animations and transitions, 60fps means a smooth transition with no stuttering. Although this is important for all animations, it is crucial in animations that are responding to a user&#8217;s touch. Even a very subtle delay between touch and response will give the feeling that the app is sluggish. This is a big reason that JavaScript &#8220;fake scrolling&#8221; gets such a negative response from users.</p>
<p>When responding to user feedback, 60fps means no stalling. If your app stalls for a frame on any supported device, it&#8217;s a bug. As long as the delay is small it might not be a high priority bug, but it is still an opportunity. Profile your app to get an idea of where your frame rate drops. It&#8217;s often worth keeping an older device to do this testing on, since if you can even get the older device up to 30fps, you&#8217;ll be in good shape on newer devices.</p>
<p>Actually getting a faster frame rate often involves either avoiding waste like drawing offscreen views, unnecessary opacity, or inefficient algorithms. Often though, getting a smooth frame rate involves moving work off of the main UI thread.</p>
<p><strong>Threading</strong></p>
<p>By default, any code you write runs on the main UI thread. If you do anything on the main thread that takes more than 16 milliseconds, you&#8217;ve dropped a frame and there will be a perceptible stutter. 16 milliseconds is a really long time, especially on newer hardware, so this isn&#8217;t as dire as it sounds.</p>
<p>Your biggest thread-blocking monsters are I/O operations. If you read or write a file or do any network operation, you need to do it in a background thread. On iOS this is a lot simpler than it is in plain C. The <code>NSURLConnection</code> class works asynchronously by default, plus Grand Central Dispatch and Blocks make most things straightforward to make asynchronous.</p>
<p>Although moving file, network, and data crunching to separate threads is important for any app, it&#8217;s doubly vital on mobile. Your phone doesn&#8217;t have a wait cursor, and its network quality can be incredibly bad. If you block for long enough, the OS will kill your app.</p>
<p><strong><img align="right"  class="alignnone size-full wp-image-1995"  title="Perception in UI."  src="http://www.antipode.ca/wp-content/uploads/2011/07/perception2.png"  alt=""  width="330"  height="300"   style="float: right; padding-bottom: 10px; padding-left: 10px"/>Spinning</strong></p>
<p>Now that your work is asynchronous, you need to let the user know something is happening. Provide a progress indicator if possible and worthwhile. Otherwise, get spinning.</p>
<p>Activity indicators (whether spinning, pulsing, or jiving) let your user know that you&#8217;re on the job and should go up after any perceptible delay. Without feedback, your app could have crashed, or it could have finished but without the results the user expected. You never want people wondering what your app is doing.</p>
<p>A special kind of activity indicator is placeholder content. Users can sometimes navigate through your app faster than you can render content, especially if you need to fetch something from the internet. For things like avatars and other peripheral information, a tasteful placeholder is definitely preferable to a distracting spinner.</p>
<p><strong>Backend responses</strong></p>
<p>So you have spinners now, but want to show them as briefly as possible. Although ideally you respond within 16ms, users are used to waiting for internet content to be delivered, especially when they know their wireless connection is weak. Even on a good wifi connection, your app&#8217;s request will have perceptible latency to get to the server and come back with a simple response.</p>
<p>Unfortunately, any time your backend servers take in responding is in addition to that latency. Every moment it takes for you to get a response back to the user is more frustration and impatience. Your goal should be to get content back to the user in 100ms<sup>1</sup>. After one second, users lose their feeling of task flow. On the web, users are intolerant of waiting for servers to respond. Within a mobile app, they are even less tolerant &#8211; if you can&#8217;t provide a faster experience than a normal web site, you might as well just have a web site.</p>
<p><strong>Launch time</strong></p>
<p>While launching an entire app in one frame is not likely, launching before the user feels a wait is possible, and launching in a second is often straightforward. Launch time affects the most important use case for your app: first use. If you can&#8217;t get the app loaded and fully functional in a second, you should at least get it awake and giving activity indication in that time.</p>
<p>Doing some simple profiling of app launch will usually reveal unnecessary work you&#8217;re doing at launch. Whether it&#8217;s building views that aren&#8217;t being displayed yet, loading content that isn&#8217;t necessary, or blocking on some operation that could be threaded, you can often get some easy wins without a lot of work.</p>
<p><strong>Tap highlights</strong></p>
<p>Every tap should have consequences when you lift your finger. First, though, comes an indication of a successful tap when you touch down. This provides a visual response for actions that cause a few frames to drop but last less than 100ms. Unlike with a keyboard or mouse, the user has no tactile feedback that they tapped successfully. They have no way of knowing they tapped on the right thing until it highlights.</p>
<p><strong>Result: Joy</strong></p>
<p>Congratulations! You now have a responsive app that is a joy to use. Of course, it also needs to be functional, usable, beautiful, and useful. But that is for another day.</p>
<ol class="footnotes" ><li id="footnote_0_1972"  class="footnote" >IBM did this research decades ago, but <a href="http://www.useit.com/papers/responsetime.html" >Jakob Nielsen has various explorations of it</a> online.</li></ol><div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=dVd5obqHbDA:GsjruEaTJos:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=dVd5obqHbDA:GsjruEaTJos:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/dVd5obqHbDA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2011/providing-joy-at-60-fps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2011/providing-joy-at-60-fps/</feedburner:origLink></item>
		<item>
		<title>Micro-subscriptions are here</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/jfZd9vJvwvA/</link>
		<comments>http://www.allenpike.com/2011/micro-subscriptions-are-here/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 23:49:11 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.antipode.ca/?p=1952</guid>
		<description><![CDATA[For years, subscription software has been kicking ass. 37signals, Github, and many of my favourite companies support their products this way. It&#8217;s the best possible economics for building an app &#8211; your revenue is recurring and predictable. If you make something great, people will keep paying. If you don&#8217;t, they&#8217;ll stop. However, consumers have never [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right"  src="http://www.antipode.ca/wp-content/uploads/2011/02/micro.png"  alt=""  title="$0.01 is probably too little for a subscription, but still."  width="150"  height="150"  class="alignnone size-full wp-image-1957"   style="float: right; padding-bottom: 10px; padding-left: 10px"/>For years, subscription software has been kicking ass. 37signals, Github, and many of my favourite companies support their products this way. It&#8217;s the best possible economics for building an app &#8211; your revenue is recurring and predictable. If you make something great, people will keep paying. If you don&#8217;t, they&#8217;ll stop.</p>
<p>However, consumers have never bought in. Businesses do, prosumers do, enthusiasts do, but normal people don&#8217;t. For a decade people have tried to make &#8220;micro-subscriptions&#8221; a reality &#8211; a way for normal people to pay a small amount to get a content or service. They&#8217;ve all failed utterly.</p>
<p>There is no way people will put in their credit card info into various sites and apps to pay a $1/mo fee. The cognitive pain of creating accounts, entering and maintaining payment info, and being billed for it makes the whole thing a complete non-starter to most consumers. And so, consumer apps continue to be offered as advertising-supported affairs that need giant scale to be profitable, or, more recently, pay-once apps.</p>
<p><a href="http://arstechnica.com/apple/news/2011/02/apples-in-app-subscriptions-if-we-bring-in-subscribers-we-deserve-a-cut.ars" >iOS subscriptions</a> finally change this. Although Apple takes 30%<sup>1</sup>, the one-click nature of the process and safety net of the App Store means for the mass market you&#8217;ll get way more than a 30% boost in sales.</p>
<p>The same app offering the same value to the mass market is going to get <strong>50x as many customers</strong> through one-click subscribing at $1/mo than it would get through sending them to enter their credit card information on some website. I may be wrong &#8211; it may be more like 500x.</p>
<p>Entire products that were infeasible before are now feasible. Micro-subscriptions are here. Enough writing &#8211; back to writing an app that kicks ass with them.</p>
<ol class="footnotes" ><li id="footnote_0_1952"  class="footnote" >I am aware Apple&#8217;s cut makes the &#8220;you must offer in-app if you have subscriptions&#8221; rule a slap in the face for some business models. Apple can&#8217;t really charge much less than 30% because they sell iTunes cards at retail, plus it would provide a way to route around their cut for app sales. Still, forcing everything through them sucks.</li></ol><div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=jfZd9vJvwvA:5lAv2FmahKM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=jfZd9vJvwvA:5lAv2FmahKM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/jfZd9vJvwvA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2011/micro-subscriptions-are-here/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2011/micro-subscriptions-are-here/</feedburner:origLink></item>
		<item>
		<title>The Chrome Web Store: get paid to make things</title>
		<link>http://feeds.antipode.ca/~r/antipode/~3/eputm8th61Y/</link>
		<comments>http://www.allenpike.com/2010/the-chrome-web-store-get-paid-to-make-things/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 00:12:22 +0000</pubDate>
		<dc:creator>Allen</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Bootstrapping]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://www.antipode.ca/?p=1693</guid>
		<description><![CDATA[The Chrome Web Store launched today. In a nutshell, it&#8217;s a marketplace for installable web apps. Chrome&#8217;s New Tab page now has a Web Store link, along with app icons for all the apps you&#8217;ve installed. There&#8217;s nothing technically interesting going on here &#8211; the &#8220;apps&#8221; are just thin wrappers around links to websites. The [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right"  class="alignnone size-full wp-image-1920"  title="How the Web Store appears in Chrome."  src="http://www.antipode.ca/wp-content/uploads/2010/12/chromestore.png"  alt=""  width="150"  height="150"   style="float: right; padding-bottom: 10px; padding-left: 10px"/>The Chrome Web Store launched today. In a nutshell, it&#8217;s a marketplace for installable web apps. Chrome&#8217;s New Tab page now has a Web Store link, along with app icons for all the apps you&#8217;ve installed. There&#8217;s nothing technically interesting going on here &#8211; the &#8220;apps&#8221; are just thin wrappers around links to websites. The Chrome App Store is really only one thing: a way for consumers to pay you for your web app. Which, believe it or not, is a huge deal.</p>
<p>Now, it&#8217;s true there are some ways to make money from web apps already. There are actually three<sup>1</sup>:</p>
<ol>
<li>Sell advertising on your multimillion-user site. Often this requires VC to ramp up to a huge user base.</li>
<li>Sell your app as a service to companies that subscribe. This can be quite profitable but consumers aren&#8217;t willing to do this.</li>
<li>Get paid directly to build custom web apps.</li>
</ol>
<p>The Chrome App Store is irrelevant for the above categories of software since they&#8217;re profitably humming away. However, there are a lot of potential web apps that don&#8217;t fit into the above categories. Specifically, consumer-oriented apps that aren&#8217;t appropriate for the &#8220;scale huge, sell ads&#8221; model. Some examples:</p>
<ul>
<li>Games</li>
<li>Specialty consumer software (like <a href="http://steamclocksw.com/weddingdj/" >WeddingDJ</a>)</li>
<li>Personal productivity and finance software</li>
<li>Magazines and newspapers</li>
<li>Most stuff on the iOS App Store</li>
</ul>
<p>Most web developers in the above markets attempted to do the obvious: charge customers to use their sites. However, having to put in your credit card info or jump through a PayPal hoop to pay for something online is a pain in the ass. It can&#8217;t be understated: a credit card entry form is a brick wall to most consumers. The vast majority of them would never consider putting their credit card info in to pay for a web site, no matter how good it is.</p>
<p>Those same people don&#8217;t think twice about paying for apps, especially as a one-time fee. Hence, the great success of the iOS App Store. The App Store, and iTunes before it, and Amazon before it, showed that people will pay to buy things online if they can just click. Developers flocked to the iPhone because you can make money there, myself included.</p>
<p>A lot of people would love to make web apps for consumers, but their ideas aren&#8217;t viable under the advertising model. It&#8217;s insanely hard to bootstrap a consumer-facing web startup because of this. As a consequence, startups that would have been building web apps five years ago are now building iOS apps. The web is a great platform, but if consumers aren&#8217;t paying you, then you&#8217;re limited in what you can build.</p>
<p>So now we wait and see if consumers embrace the Chrome Web Store. If they do, expect to see a whole new wave of web apps.</p>
<ol class="footnotes" ><li id="footnote_0_1693"  class="footnote" >Arguably, the fourth way to make money on a web app is to wrap it in PhoneGap and stick it on the iOS app store. While tangential, the fact this is a popular route reinforces my argument.</li></ol><div class="feedflare">
<a href="http://feeds.antipode.ca/~ff/antipode?a=eputm8th61Y:QihJuZbk0M0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/antipode?i=eputm8th61Y:QihJuZbk0M0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/antipode/~4/eputm8th61Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.allenpike.com/2010/the-chrome-web-store-get-paid-to-make-things/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.allenpike.com/2010/the-chrome-web-store-get-paid-to-make-things/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.729 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-08 14:39:07 -->

