<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>My Own Pirate Radio</title>
	<link>http://myownpirateradio.com</link>
	<description>Intermittent broadcasts from Oshoma Momoh</description>
	<pubDate>Tue, 22 Jul 2008 14:01:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<item>
		<title>True Public Service: MyTTC is Live</title>
		<link>http://myownpirateradio.com/2008/07/22/true-public-service-myttc-is-live/</link>
		<comments>http://myownpirateradio.com/2008/07/22/true-public-service-myttc-is-live/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 14:01:09 +0000</pubDate>
		<dc:creator>Oshoma Momoh</dc:creator>
		
	<dc:subject>general</dc:subject>
		<guid isPermaLink="false">http://myownpirateradio.com/2008/07/22/true-public-service-myttc-is-live/</guid>
		<description><![CDATA[Kieran Huggins and Kevin Branigan have been working on an online trip planner for the Toronto Transit system called MyTTC.ca. It&#8217;s been a fun side project for them over the past year or so.&#160; Kieran just announced the site is now available for public tire-kicking and feedback. Their site is cool&#8230; you should go give [...]]]></description>
			<content:encoded><![CDATA[<p>Kieran Huggins and Kevin Branigan have been working on an online trip planner for the Toronto Transit system called <a href="http://MyTTC.ca" onClick="javascript:urchinTracker ('/outbound/article/MyTTC.ca');">MyTTC.ca</a>. It&#8217;s been a fun side project for them over the past year or so.&#160; Kieran just <a href="http://groups.google.com/group/torcamp/browse_thread/thread/7edf22d57eefa64a" onClick="javascript:urchinTracker ('/outbound/article/groups.google.com');">announced</a> the site is now available for public tire-kicking and feedback. Their site is cool&#8230; you should go <a href="http://MyTTC.ca" onClick="javascript:urchinTracker ('/outbound/article/MyTTC.ca');">give it a try</a>.</p>
<p>The backstory is interesting. As Kieran writes on the site, he and Kevin are <em>not the TTC</em>. They&#8217;re just two software developers who decided this needed to be done. As they detail on the <a href="http://myttc.ca/about" onClick="javascript:urchinTracker ('/outbound/article/myttc.ca');">MyTTC About page</a>, the idea was born out of frustration with the <a href="http://ttc.ca/" onClick="javascript:urchinTracker ('/outbound/article/ttc.ca');">official TTC site</a>, which has always been impossibly hard to plan trips with. </p>
<p>I share their pain. Several times after moving to Toronto I tried using the official transit web site to figure out how to get around the city. After much wailing and gnashing of teeth, I simply gave up. All the route maps were and still are provided only in PDF format, instead of simpler and smaller GIF or JPEG images. The <a href="http://www.toronto.ca/ttc/schedules/index.htm" onClick="javascript:urchinTracker ('/outbound/article/www.toronto.ca');">system maps</a> &#8212; which are the only way to figure out which route map you need &#8212; are gigantic PDFs that take ages to download and render. (Don&#8217;t try to find these maps from the main page of the TTC website, which for some reason links prominently to <a href="http://map.toronto.ca/imapit/iMapIt.jsp?app=TOMaps" onClick="javascript:urchinTracker ('/outbound/article/map.toronto.ca');">even stranger and less useful maps</a> on the Toronto.ca site.) Meanwhile, the <a href="http://www.beta.ttc.ca/" onClick="javascript:urchinTracker ('/outbound/article/www.beta.ttc.ca');">new beta TTC site</a> has no system map yet, and no trip planner. A forlorn spot on the beta site home page proclaims, &quot;Future home of Trip Planner&quot;. </p>
<p>Tragic.</p>
<p>So if you&#8217;re an entrepreneur who wants to buld your own trip planner, how do you get the data? Woe betide you, for the TTC won&#8217;t give it to you. The information sits in a database somewhere in the bowels of the organization, where it is periodically used to generate the aforementioned PDF route maps and now the new route pages on the beta web site. But the TTC won&#8217;t make the raw data available for public use. So Kieran and Kevin had to compile an entirely new dataset of their own by pulling the information out of hundreds of PDF route documents. Then they had to scrub it, by hand, because the data was buggy buggy buggy. The scrubbing continues.</p>
<p>Wow. </p>
<p>Unlike the TTC, Kieran and Kevin are making their dataset available to anyone who wants to play with it. This means <em>anyone </em>can build their own Toronto transit map or trip planner now. It also means we are a step closer to having <a href="http://www.google.com/transit" onClick="javascript:urchinTracker ('/outbound/article/www.google.com');">Google Transit</a> support, since all that&#8217;s needed to enable that is a suitable data feed. (Google has offered in the past to set up Google Transit for Toronto. <a href="http://www.google.com/maps?ie=UTF8&amp;dirflg=r&amp;ll=49.188123,-122.922592&amp;spn=0.175470,0.375594" onClick="javascript:urchinTracker ('/outbound/article/www.google.com');">Vancouver</a>, <a href="http://www.google.com/maps?ie=UTF8&amp;dirflg=r&amp;ll=45.555410,-73.623505&amp;spn=0.743314,1.248322" onClick="javascript:urchinTracker ('/outbound/article/www.google.com');">Montreal</a>, <a href="http://www.google.com/maps?ie=UTF8&amp;dirflg=r&amp;ll=45.324877,-75.646080&amp;spn=0.389545,0.655119" onClick="javascript:urchinTracker ('/outbound/article/www.google.com');">Ottawa</a>, and even <a href="http://www.google.com/maps?ie=UTF8&amp;dirflg=r&amp;ll=45.964993,-66.616287&amp;spn=0.277302,0.519791" onClick="javascript:urchinTracker ('/outbound/article/www.google.com');">Fredericton</a> have Google Transit support. Toronto? Sorry. No data from the TTC.)</p>
<p>Shame on you, TTC. Shame on government organizations that hoard power by keeping public data under lock and key. </p>
<p>And congratulations, Kieran and Kevin, for rolling up your sleeves and building a great public service that Toronto really needs.</p>
<p>&#160;</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:82d5fbce-d4d2-4e5d-8bb6-5a733c05cd1b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/TTC" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">TTC</a>,<a href="http://technorati.com/tags/Toronto" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">Toronto</a>,<a href="http://technorati.com/tags/trip%20planner" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">trip planner</a>,<a href="http://technorati.com/tags/MyTTC" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">MyTTC</a></div>
<p><font size="1">[cross-posted on <a href="http://blog.mukodu.com" onClick="javascript:urchinTracker ('/outbound/article/blog.mukodu.com');">Mukodu Blog</a></font><font size="1">]</font></p>
]]></content:encoded>
			<wfw:commentRss>http://myownpirateradio.com/2008/07/22/true-public-service-myttc-is-live/feed/</wfw:commentRss>
		</item>
		<item>
		<title>If it Smells Bad, Throw it Out</title>
		<link>http://myownpirateradio.com/2008/07/09/if-it-smells-bad-throw-it-out/</link>
		<comments>http://myownpirateradio.com/2008/07/09/if-it-smells-bad-throw-it-out/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 18:42:25 +0000</pubDate>
		<dc:creator>Oshoma Momoh</dc:creator>
		
	<dc:subject>general</dc:subject>
		<guid isPermaLink="false">http://myownpirateradio.com/2008/07/09/if-it-smells-bad-throw-it-out/</guid>
		<description><![CDATA[Or, &#34;Bigger is not Better&#34;.
I&#8217;ve learned to use Ruby and Rails over the last year and a half. Along the way I&#8217;ve been watching how the Rails core team evolves their project, and how Matz evolves Ruby. As a result, I&#8217;ve become more convinced of something I first started thinking about &#8212; but was always [...]]]></description>
			<content:encoded><![CDATA[<p>Or, &quot;Bigger is not Better&quot;.</p>
<p>I&#8217;ve learned to use Ruby and Rails over the last year and a half. Along the way I&#8217;ve been watching how the <a href="http://www.rubyonrails.org/core" onClick="javascript:urchinTracker ('/outbound/article/www.rubyonrails.org');">Rails core team</a> <a href="http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done" onClick="javascript:urchinTracker ('/outbound/article/weblog.rubyonrails.org');">evolves their project</a>, and how <a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto" onClick="javascript:urchinTracker ('/outbound/article/en.wikipedia.org');">Matz</a> <a href="http://www.ruby-forum.com/topic/136553" onClick="javascript:urchinTracker ('/outbound/article/www.ruby-forum.com');">evolves Ruby</a>. As a result, I&#8217;ve become more convinced of something I first started thinking about &#8212; but was always too timid to fight for &#8212; when I worked on Windows: every once in a while, you need to just throw out the old stuff and start afresh.</p>
<p>On Ruby, and moreso on Rails, the development team is willing to not just deprecate smelly old crap, but actively remove it. New versions of the Ruby language and the Rails platform are generally <em>expected </em>to remove obsolete or badly implemented features. This happens when code contributors come up with a significantly better replacement, or the team realizes the features are no longer essential to the project. Non-core stuff gets either recast as an optional plugin, or binned. For a good example of this, see the <a href="http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done" onClick="javascript:urchinTracker ('/outbound/article/weblog.rubyonrails.org');">Rails 2.0 announcement</a> and scroll down to &quot;Active Record: Shedding some weight&quot;.</p>
<p>I&#8217;m sure this approach makes most old-school developers out there cringe, or scoff, or both. <em>&quot;Are those Rails guys crazy? What about backwards compatibility? Don&#8217;t they care about their customers? I guess they don&#8217;t have any customers, or not any real ones, at least.&quot;</em> </p>
<p>I&#8217;ve wondered those things too. Especially right before I decided to make a bet on Rails for building <a href="http://5BlocksOut.com" onClick="javascript:urchinTracker ('/outbound/article/5BlocksOut.com');">5 Blocks Out</a>. But at the same time, I&#8217;ve worked on Windows. I&#8217;ve seen up close and personal what happens when you commit a product to backwards compatibility at all costs, and it ain&#8217;t pretty. Let&#8217;s look at the outcomes. </p>
<p>First, the benefits: </p>
<p>1) Apps built for platform version N can run on version N+1. </p>
<p>2) App developers can use their knowledge of platform-and-tools version N to write apps for version N+1. </p>
<p>OK. That&#8217;s about it for benefits. </p>
<p>Really. We&#8217;re done with the upside. </p>
<p>Now for the downsides: </p>
<p>1) The platform bloats in on-disk size and resource usage (RAM, CPU cycles) as new features get layered atop old. Obsolete technologies, instead of being removed, stick around forever, and&#8230; s l o w&#8230; e v e r y t h i n g. . . d o w n. It&#8217;s like the nightmare guests that overstay their welcome at a party: drinking all the booze they can find, gobbling up everything good in the fridge, and then staggering around for hours smashing into things and making a nuisance of themselves before crashing somewhere horribly inconvenient. What a drag.</p>
<p>2) Life gets worse for application developers. Yes, those who learned version N can apply all their learning to N+1. But let&#8217;s be realistic here: N+1 is big, and N+2 is even bigger, and N+3 is, whooo, geez, immense. Eventually, no mere mortal can comprehend the entire platform API. And that means they won&#8217;t take advantage of new features properly. What&#8217;s worse, they&#8217;ll probably be embarassed about that, so don&#8217;t expect to hear them admit it. </p>
<p>3) Life gets worse for platform developers and testers, too. Not only do they have to deal with platform bloat, but more and more of their jobs become &#8212; sorry, I have to say the dreaded &#8216;m&#8217; word &#8212; maintenance. Eventually they are forced to perform truly unnatural acts. Like this: <em>&quot;Hey, does anyone know what this SuperDuperComplexJujuMagic library does? This thing is seriously fugly, and all of our code is linked into it like spaghetti.&quot; &quot;Oh, that&#8217;s been around since version 1. Bob wrote that. It&#8217;s part Prolog, part assembler, part Esperanto. Unfortunately, nobody else understands the code. And Bob left last week to go work for Google. He&#8217;s buying a yacht and a new Hummer! Isn&#8217;t that great? So, uhh&#8230; just work around it.&quot;</em> </p>
<p>Sound familiar? Old features become stale and mysterious, especially when the creators and maintainers leave the building for greener pastures. New features must be implemented in bizarre ways to work around old cruft. And new platform versions must remain not only compatible, but bug-for-bug compatible with old versions. So the poor devs end up having to write ugly, <a href="http://en.wikipedia.org/wiki/Code_smell" onClick="javascript:urchinTracker ('/outbound/article/en.wikipedia.org');">smelly code</a>. Code so ugly and smelly you&#8217;d be ashamed to tell your mama about it. </p>
<p>4) Customer resistance to upgrades increases over time.<em> &quot;My developers want to skip version N+1. We have no problem waiting for N+2.&quot;&#160; &quot;The sales team can&#8217;t afford to buy upgrades for all of our apps this year. We&#8217;ll just wait.&quot;&#160; &quot;Our IT department takes 18 months to test your OS for bugs before rolling it out, so we only want to do that at most once every 3 years.&quot;</em> This is real. This is the conversation Microsoft sales reps have with their big customers every time a new version of Office or Windows rolls out. It is the reason marketing teams argue about whether a release should be positioned as a &quot;dot&quot; release or a &quot;major&quot; one.&#160; It&#8217;s why Microsoft has been trying for years to move to a service-and-subscription model, where customer payments look like an annuity stream instead of once-every-few-years-big-bang. It is also the reason they are belatedly <a href="http://www.techcrunch.com/2008/07/08/microsoft-launch-hosted-exchange-deals/" onClick="javascript:urchinTracker ('/outbound/article/www.techcrunch.com');">getting serious about running their apps in hosted server environments</a>. </p>
<p>Imagine what would happen if innovation in general worked this way. Picture, if you will, Honda telling their designers to create a car that customers would love, with the caveat that they would have to keep all the anachronisms from every previous car model they had ever made. <em>&quot;Sorry, I know the gas tank in the &#8216;02 was prone to explosion on impact, and it only gets 3 miles to the gallon, but we have to keep it around because of our commitment to backwards compatibility&quot;. </em>Sounds crazy, doesn&#8217;t it? But this sort of conversation happens in big software shops every day.</p>
<p>You could argue Ford and GM have been doing this for years with their trucks and SUVs: selling ever-more-glitzy and ever-more-hulking body designs atop inefficient and increasingly archaic platforms. (The platform is car innards in this case&#8230; the engine, chassis, and other nasty bits). Now, as gas prices are imposing a resource cap, <a href="http://www.democratandchronicle.com/apps/pbcs.dll/article?AID=/20080709/NEWS01/807090351/1002/NEWS" onClick="javascript:urchinTracker ('/outbound/article/www.democratandchronicle.com');">reality</a> <a href="http://www.southcoasttoday.com/apps/pbcs.dll/article?AID=/20080709/NEWS/807090347" onClick="javascript:urchinTracker ('/outbound/article/www.southcoasttoday.com');">bites</a>. The lipstick-on-a-chicken strategy is finally failing.</p>
<p>Seemingly unlimited resources have a lot to do with this sort of piggish behavior. Resource scarcity, in contrast, is actually a good thing. But that&#8217;s another whole topic.<font size="1">[1]</font></p>
<p>Imagine how much better Windows would be if the people working on it were allowed to do spring cleaning once in a while and throw out smelly old stuff.<font size="1">[2] </font>Yes, there would be a cost, both internal and external, but the benefits would be legion. App developers would appreciate writing code atop a more modern, constantly rejuvenated platform. Platform developers and testers (and their mothers) would be far happier, because they&#8217;d be writing elegant and clean code, code worth writing home about.&#160; And most importantly, customers would enjoy running fast, reliable, and cleanly designed products, instead of cluttered unstable resource pigs.<font size="1">[3]</font></p>
<p>Software innovators need to get into the habit of throwing old stuff out, just like people who design other types of products and services do. And software companies need to avoid &#8212; or extricate themselves from &#8212; business models that prevent it. </p>
<p>&#160;</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7f605ea8-548a-4f57-a5d2-339729ae6129" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/backwards%20compatibility" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">backwards compatibility</a>,<a href="http://technorati.com/tags/code%20smell" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">code smell</a>,<a href="http://technorati.com/tags/minimalism" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">minimalism</a>,<a href="http://technorati.com/tags/scarcity" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">scarcity</a>,<a href="http://technorati.com/tags/evolution" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">evolution</a>,<a href="http://technorati.com/tags/happiness" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">happiness</a></div>
<p>&#8212;-</p>
<p>[1] Remember the old days of personal computing, when there was a very real cap on memory and disk space? This was the case for the Commodore 64, and the old Apple computers, and most video game consoles and mobile phones created thus far. You simply couldn&#8217;t offer backwards compat, because resource constraints wouldn&#8217;t permit the bloat. These days, on PCs, the resource constraint is gone, but the reality is we have hit a bunch of other constraints: the size of app developers brains, the depth of app purchasers&#8217; wallets, and the limited desire of customers to roll out big bang product releases. </p>
<p>[2] My comments aren&#8217;t directed solely at Windows. It&#8217;s highly likely that MacOS, Solaris, and other mainstream commercial OSes suffer from exactly the same problem. But I&#8217;ll stick to what I know best here.</p>
<p>[3] Sorry, I&#8217;m feeling a little harsh today. Anyone want to debug my Toshiba Portege, which slows to a crawl and locks up? Or perhaps Katrin&#8217;s MacBook, which refuses to go on standby.</p>
]]></content:encoded>
			<wfw:commentRss>http://myownpirateradio.com/2008/07/09/if-it-smells-bad-throw-it-out/feed/</wfw:commentRss>
		</item>
		<item>
		<title>24&#215;7 software? must&#8230;get&#8230; sleep.</title>
		<link>http://myownpirateradio.com/2008/06/17/24x7-software-mustget-sleep/</link>
		<comments>http://myownpirateradio.com/2008/06/17/24x7-software-mustget-sleep/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 20:06:01 +0000</pubDate>
		<dc:creator>Oshoma Momoh</dc:creator>
		
	<dc:subject>general</dc:subject>
		<guid isPermaLink="false">http://myownpirateradio.com/2008/06/17/24x7-software-mustget-sleep/</guid>
		<description><![CDATA[One of the big challenges in running a small software startup is service availability and support. This was, perhaps, a little easier in the bad old days when software shipped in boxes and &#34;support&#34; meant picking up a phone between 9-5 on business days, then mailing out a CD or floppy disc (remember those?) with [...]]]></description>
			<content:encoded><![CDATA[<p>One of the big challenges in running a small software startup is service availability and support. This was, perhaps, a little easier in the bad old days when software shipped in boxes and &quot;support&quot; meant picking up a phone between 9-5 on business days, then mailing out a CD or floppy disc (remember those?) with updated bits. Nowadays, much of the software people are building &quot;ships&quot; as a service running 24&#215;7 on the web, or at least has a online service component to it. What&#8217;s more, customers increasingly reside around the world, and expect near-realtime responses, especially if their business depends on your software service. You can imagine, then, that for a 1- or 2-person dev shop, making a web service highly available to customers is a particularly daunting challenge. </p>
<p>There are &quot;business&quot; solutions you can use, including limiting your support service level agreement and hiring more support people, perhaps in different time zones around the world. These may be appropriate depending on your customer needs and your budget. </p>
<p>You can also throw technology at it. Here&#8217;s what we are trying to do in that vein, on 5 Blocks Out:</p>
<p><strong>(1) Ship quality software.</strong> This is motherhood and apple pie, but bears repeating. Lots of software companies still imagine they can somehow cut costs by shipping half-baked code. Sorry, it doesn&#8217;t work. If you don&#8217;t invest in writing good code in the first place, you will pay orders of magnitude more for it later in support costs and frustrated customers. The only valid exception I can think of is prototype code. </p>
<p>I feel like we have lots more to do here, but for small fry we&#8217;re doing well thus far. We try to be thoughtful and minimalist about what we build in the first place. Then, if it gets built, it gets tested. Rails&#8217; built-in testing facilities and various plugins like test/spec help a great deal. <a href="http://capify.org" onClick="javascript:urchinTracker ('/outbound/article/capify.org');">Capistrano</a> (for automated deployment and rollback) and Firebug have also proven to be vital. Next on the list is <a href="http://github.com/engineyard/eycap/tree/master" onClick="javascript:urchinTracker ('/outbound/article/github.com');">eycap</a>.</p>
<p><strong>(2) Outsource work to a Web Host.</strong> For a software startup, the question is not whether to do this, but with whom. Outsourcing the heavy lifting of buying/building and maintaining server farms, managing network bandwidth, and handling some of the basic application-level services is a no-brainer. Pay as you go, and use the time saved to focus on your core competencies. If and when your businesses gets big enough, you can always pull some of the strategic responsibilities in-house. </p>
<p>We currently use <a href="hostingrails.com">Hosting Rails</a>. Generally speaking, their servers run well and their rates are reasonable. I have run into reliability problems lately, though, and despite responsive support it is becoming time to consider other hosters. <a href="http://www.slicehost.com/" onClick="javascript:urchinTracker ('/outbound/article/www.slicehost.com');">Slicehost</a>, <a href="http://3tera.com/" onClick="javascript:urchinTracker ('/outbound/article/3tera.com');">3Tera</a>, and the increasingly fashionable Amazon S3 are on the &quot;must review&quot; list. I&#8217;ve also taken a brief look at Google App Engine, and concluded its platform is too high-level for our needs.</p>
<p><strong>(3) Automate monitoring</strong>. Automated watchdogs can stay up 24&#215;7. You, my friend, cannot. Put down the Red Bull and get yourself a suite of automated watchdogs to monitor your software&#8217;s health. </p>
<p>We&#8217;re getting going on this now. For starters, the <a href="http://dev.rubyonrails.org/svn/rails/plugins/exception_notification/" onClick="javascript:urchinTracker ('/outbound/article/dev.rubyonrails.org');">Exception Notification plugin</a> has proven itself mighty useful for after-the-fact diagnosis and debugging of Rails apps. If you&#8217;re running a Rails app, I highly recommend this plugin.</p>
<p>Next, you need some 3rd party ping action. <a href="www.planettroy.com">Troy</a> tells me <a href="http://alertra.com/" onClick="javascript:urchinTracker ('/outbound/article/alertra.com');">Alertra</a> is also supposed to be a good quality monitoring service. We are currently trying out <a href="www.pingdom.com">Pingdom</a>. The idea behind these services is to hit your site every minute (or 5 minutes, or 15&#8230; you decide) from a series of servers around the world, and let you know whether and how quickly your service is responding to HTTP, pings, and so on. When something goes wrong you get notified by email and/or SMS text message. Pingdom also collects and aggregates the data so you can look at reports over time. </p>
<p>Happily, Pingdom has already paid for itself: immediately after turning it on I found our service was bouncing daily (well, middle-of-nightly), sometimes down for many minutes at a time. HostingRails gave us a month of additional free hosting as compensation, and promised to watch the server more closely. We&#8217;ve had zero downtime since then.&#160; </p>
<p>Going a level deeper is also essential: you need realtime monitoring built into the service itself, so that you can detect and resolve problems when their symptoms first surface, or even before then. <a href="http://www.tildeslash.com/monit/" onClick="javascript:urchinTracker ('/outbound/article/www.tildeslash.com');">Monit</a>, <a href="http://god.rubyforge.org/" onClick="javascript:urchinTracker ('/outbound/article/god.rubyforge.org');">God</a>, and <a href="http://munin.projects.linpro.no/wiki/faq#QHowtomonitorWindowsXPboxesviaSNMPplugins" onClick="javascript:urchinTracker ('/outbound/article/munin.projects.linpro.no');">Munin</a> are on my &quot;must review&quot; list for this sort of thing.</p>
<p>I&#8217;d love to hear back on other tools and tactics startup developers are using to build and run high-availability software services. Without losing sleep, that is. </p>
<p>Happy zzz&#8230;.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1283207c-818f-40f8-8aea-045c5e9bd8b6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/monitoring" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">monitoring</a>,<a href="http://technorati.com/tags/software%20services" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">software services</a>,<a href="http://technorati.com/tags/availability" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">availability</a>,<a href="http://technorati.com/tags/startup" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">startup</a>,<a href="http://technorati.com/tags/sleep" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">sleep</a></div>
]]></content:encoded>
			<wfw:commentRss>http://myownpirateradio.com/2008/06/17/24x7-software-mustget-sleep/feed/</wfw:commentRss>
		</item>
		<item>
		<title>fire it up!</title>
		<link>http://myownpirateradio.com/2008/06/06/fire-it-up/</link>
		<comments>http://myownpirateradio.com/2008/06/06/fire-it-up/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 14:32:08 +0000</pubDate>
		<dc:creator>Oshoma Momoh</dc:creator>
		
	<dc:subject>general</dc:subject>
		<guid isPermaLink="false">http://myownpirateradio.com/2008/06/06/fire-it-up/</guid>
		<description><![CDATA[I promised a few weeks back to join Katrin on the Mukodu Blog. This is my first Mukodu post, co-authored with Katrin, and cross-posted on MyOwnPirateRadio. Sorry, no pictures. :-)
People have been asking what we&#8217;re up to with Mukodu. While we can&#8217;t talk in detail yet on the specifics of what we&#8217;re doing, we are [...]]]></description>
			<content:encoded><![CDATA[<p>I promised a few weeks back to join Katrin on the <a href="http://blog.mukodu.com" onClick="javascript:urchinTracker ('/outbound/article/blog.mukodu.com');">Mukodu Blog</a>. This is my first Mukodu post, co-authored with Katrin, and cross-posted on <a href="http://myownpirateradio.com" >MyOwnPirateRadio</a>. Sorry, no pictures. :-)</p>
<p>People have been asking what we&#8217;re up to with Mukodu. While we can&#8217;t talk in detail yet on the specifics of what we&#8217;re doing, we are ready to share with you our vision, our motivation, and the company culture we intend to build. </p>
<p>Over the past ten years Katrin and I have lived in two countries, three different cities, and five different homes. We&#8217;ve also had the good fortune of travelling broadly. In doing so, we&#8217;ve recognized a common challenge: more and more people live in and move between urban areas, where they seek new opportunities, new friendships, and increased quality of life. Yet newcomers often don&#8217;t know where to begin, or how to get connected in a city, despite being surrounded by people. At the same time, &quot;old-timers&quot; often get so caught up in the routine of daily life &#8212; working, commuting, connecting with friends and family &#8212; that they fall out of touch with the changes going on around them, and with the people and resources right outside their front doors. It&#8217;s a great irony: despite living in populous, thriving, dynamic cities, we are so often disconnected. Thus the inspiration for the Mukodu blog, and for our first product, <a href="http://5BlocksOut.com" onClick="javascript:urchinTracker ('/outbound/article/5BlocksOut.com');">5 Blocks Out</a>.</p>
<p>5 Blocks Out is about connecting people with local life and culture. If you&#8217;re new to an area and trying to figure out which neighbourhood to call home, 5 Blocks Out will help you. If you want to learn what&#8217;s happening in the nooks and crannies of the city around you, 5 Blocks Out will keep you informed and up to date. If you want to hear what real people like you have to say about local places, events, and issues, 5 Blocks Out will help you to tap into urban word of mouth. And if you&#8217;re interested in helping others find &#8220;nearby good stuff&#8221;, thereby supporting local communities (yay!) and reducing environmental footprint (yay!), 5 Blocks Out plans to help you there too.&#160; </p>
<p>Why work on a challenge like this? Because we love the places we&#8217;ve lived, and the friendships we&#8217;ve made there, and we want more of the same for everyone. We believe cities whose people engage in neighbourhood life, local culture, and civic discourse have unlimited potential as places to live. We believe healthy connections between people within neighbourhoods are essential. We believe the collective voice and wisdom of a city&#8217;s inhabitants is more interesting and, indeed, more personally relevant, than the voice of popular media. And so we&#8217;re setting out to create a community powered by the people, for the people, with the goal of making cities great places to live.</p>
<p>Mukodu is just getting going: for roughly the past year it&#8217;s been Katrin and myself, working together in true startup fashion: 25 hour days, 8 days a week, 1 to 2 minor miracles per day. We&#8217;re learning how to bootstrap a business on a shoestring, design and build products together, and leap tall buildings in a single bound. We&#8217;ve spent a great deal of time analyzing, debating strategy, and thinking through minute design and implementation details. We&#8217;ve learned a lot, and built the beginnings of something we think you&#8217;ll love. It&#8217;s been thrilling, and terrifying, and the most fun we&#8217;ve ever had &quot;working&quot;. We count ourselves very fortunate to be doing something we&#8217;re passionate about, day in and day out. We owe huge thanks to all of you who have supported us thus far.</p>
<p>Mukodu is also growing, and we&#8217;re looking forward to growing further. We&#8217;ve recently had a great boost with part-time help from Katy, Aaron, and Troy. We&#8217;re plugged in to a wonderful community and office space at the Centre for Social Innovation. And we&#8217;re starting to bring on some trusted advisors to kick the tires on our product and provide more guidance as we near public release. </p>
<p>While we aren&#8217;t in a position to hire people yet, we soon hope to be. We&#8217;ll need help: in particular, more software engineering and operations talent to build and run a kick-ass software service; advisors and board members to guide us; and angels to help prime the pump. We&#8217;re looking for these folks, starting now. We want people who share our values, passion, and hunger to change the world. We want people who are smart, scrappy, and get things done. We want people with creativity and a love for data analysis and problem-solving. We want people who understand that &quot;going live on the web&quot; is just the beginning; we must also have the humility to continually seek feedback and iteratively build something that actually works for customers and solves their needs. We want people who can handle the uncertainty and risk inherent in a startup environment, and whose instinctive response to a challenge is, &quot;Can do!&quot;. If that sounds like you, or someone you know, let&#8217;s talk.&#160; </p>
<p>We&#8217;re excited. We are getting great feedback. And with your help, we will make a real change.</p>
<p>Fire it up!</p>
<p>Osh and Katrin</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4150c47a-8390-416f-b637-1d942f7a731c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Mukodu" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">Mukodu</a>,<a href="http://technorati.com/tags/5%20Blocks%20Out" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">5 Blocks Out</a>,<a href="http://technorati.com/tags/inspiration" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">inspiration</a></div>
]]></content:encoded>
			<wfw:commentRss>http://myownpirateradio.com/2008/06/06/fire-it-up/feed/</wfw:commentRss>
		</item>
		<item>
		<title>spring has sprung and Mukodu is growing</title>
		<link>http://myownpirateradio.com/2008/05/15/spring-has-sprung-and-mukodu-is-growing/</link>
		<comments>http://myownpirateradio.com/2008/05/15/spring-has-sprung-and-mukodu-is-growing/#comments</comments>
		<pubDate>Fri, 16 May 2008 03:04:16 +0000</pubDate>
		<dc:creator>Oshoma Momoh</dc:creator>
		
	<dc:subject>technology and society</dc:subject>
		<guid isPermaLink="false">http://myownpirateradio.com/2008/05/15/spring-has-sprung-and-mukodu-is-growing/</guid>
		<description><![CDATA[ 
Hi all, I have some exciting news to share.
Some of you know that Katrin and I have been collaborating on putting together a web startup. We are extending the core idea she&#8217;s been blogging about on Mukodu: namely, discovering local &#8220;good stuff&#8221; by tapping into the knowledge of your friends and neighours. So&#8230; [drum [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://myownpirateradio.com/Images/springhassprungandMukoduisgrowing_1445C/image.png" ><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="281" alt="mmm-spring" src="http://myownpirateradio.com/Images/springhassprungandMukoduisgrowing_1445C/image_thumb.png" width="500" border="0" /></a> </p>
<p>Hi all, I have some exciting news to share.</p>
<p>Some of you know that Katrin and I have been collaborating on putting together a web startup. We are extending the core idea she&#8217;s been blogging about on <a href="http://blog.mukodu.com" onClick="javascript:urchinTracker ('/outbound/article/blog.mukodu.com');">Mukodu</a>: namely, discovering local &#8220;good stuff&#8221; by tapping into the knowledge of your friends and neighours. So&#8230; [drum roll]&#8230; moving forward, we will both be blogging about our brand new startup &#8212; Mukodu, Inc. &#8212; and the projects we&#8217;re working on together under that umbrella.</p>
<p>Don&#8217;t worry, I promise to keep on writing obscure, geeky, niche stuff here on MyOwnPirateRadio, just like I always have. I don&#8217;t want the readership numbers to dip into single digits, after all. But from time to time I will also post on the <a href="http://blog.mukodu.com" onClick="javascript:urchinTracker ('/outbound/article/blog.mukodu.com');">Mukodu Blog</a>, especially when it&#8217;s a topic of general interest regarding our startup work. </p>
<p>The first project we&#8217;re working on is called &#8220;5 Blocks Out&#8221;. The web site is currently under development, and all going well, we&#8217;ll begin opening it up for public trial later this summer. If you&#8217;d like an invitation to participate in the Beta release, visit <a href="http://www.5BlocksOut.com" onClick="javascript:urchinTracker ('/outbound/article/www.5BlocksOut.com');">www.5BlocksOut.com</a>, drop us your email via the signup form, and we&#8217;ll let you know when we&#8217;re ready for you to kick the tires.</p>
<p>In the meantime, stay tuned to <a href="http://blog.mukodu.com" onClick="javascript:urchinTracker ('/outbound/article/blog.mukodu.com');">Mukodu</a> for more!</p>
<p>Osh</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4dbb378d-12c5-4d8f-ae28-76a24c1c222b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/handmade" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">handmade</a>,<a href="http://technorati.com/tags/homemade" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">homemade</a>,<a href="http://technorati.com/tags/Toronto" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">Toronto</a></div>
]]></content:encoded>
			<wfw:commentRss>http://myownpirateradio.com/2008/05/15/spring-has-sprung-and-mukodu-is-growing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Work-Shifting: Work Where You Want</title>
		<link>http://myownpirateradio.com/2008/05/14/work-shifting-work-where-you-want/</link>
		<comments>http://myownpirateradio.com/2008/05/14/work-shifting-work-where-you-want/#comments</comments>
		<pubDate>Wed, 14 May 2008 13:51:40 +0000</pubDate>
		<dc:creator>Oshoma Momoh</dc:creator>
		
	<dc:subject>general</dc:subject>
		<guid isPermaLink="false">http://myownpirateradio.com/2008/05/14/work-shifting-work-where-you-want/</guid>
		<description><![CDATA[If you&#8217;re working at home, I strongly encourage you to think about a shared or &#34;co-working&#34; arrangement for at least part of your week. 
I am bumping into a lot more people these days who are working at home or considering it. Perhaps it&#8217;s just coincidence, or maybe the people I hang out with are [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re working at home, I strongly encourage you to think about a shared or &quot;co-working&quot; arrangement for at least part of your week. </p>
<p>I am bumping into a lot more people these days who are working at home or considering it. Perhaps it&#8217;s just coincidence, or maybe the people I hang out with are hitting some magic age where career change is necessary. Perhaps more of us will begin work-shifting, in addition to time-shifting?</p>
<p>Personally, I&#8217;ve worked from home for the last few years, with about half of that time spent jointly on a project with Katrin. It&#8217;s been fun: we get to structure our work space and work day just the way we like it, and there is a subtle luxury in the freedom to opt into &quot;weekend activities&quot; on weekdays. But it can also be challenging: you can get stir-crazy, lonely, burnt out due to lack of working schedule boundaries, or unproductive due to distractions. After experiencing a taste of all these things, we recently decided to rent out some part-time office space at the <a href="http://www.socialinnovation.ca/"title="Home Centre for Social Innovation"  onClick="javascript:urchinTracker ('/outbound/article/www.socialinnovation.ca');">Centre for Social Innovation</a>, and have begun splitting time between the two office spaces. So far, so good.</p>
<p>Toronto is lacking coworking options right now. <a href="http://indoorplayground.ning.com/" onClick="javascript:urchinTracker ('/outbound/article/indoorplayground.ning.com');">Indoor Playground</a> ran for about a year and a half and <a href="http://markdowds.typepad.com/weblog/2008/01/indoor-playgrou.html" onClick="javascript:urchinTracker ('/outbound/article/markdowds.typepad.com');">closed up shop</a> around the end of 2007 when their landlord hiked the rents. <a href="http://www.socialinnovation.ca/"title="Home Centre for Social Innovation"  onClick="javascript:urchinTracker ('/outbound/article/www.socialinnovation.ca');">Centre for Social Innovation</a> offers workspace rentable by the hour or by the month, with shared access to networking, printing, a kitchen, and so on. But as their name suggests and <a href="http://communitynorth.ca/2008/05/14/coworking-spaces/" onClick="javascript:urchinTracker ('/outbound/article/communitynorth.ca');">David Crow points out</a>, CSI&#8217;s focus is on social innovation, and they require all tenants to have that as part of their agenda. </p>
<p>Wayne Lee posted on TorCamp this morning about organizing a <a href="http://www.eventbrite.com/event/116040079" onClick="javascript:urchinTracker ('/outbound/article/www.eventbrite.com');">meeting to gauge interest in creating a new Toronto coworking space</a>. Check it out:</p>
<blockquote><p>We&#8217;re trying to gauge interest in developing a permanent dedicated coworking space in downtown Toronto. This might include shared office    <br />space, some anchor offices, meeting and training space, and a private cafe. It could be any or all of those. Let&#8217;s have a discussion with a brief presentation to explore what it might be and why you might want to be a part of this.
<p>Where: Epicure Cafe, 2nd fl, 502 Queen St W, between Spadina and Bathurst </p>
<p>When: Tue May 27, 7:00-8:30pm </p>
<p>Please register at http://www.eventbrite.com/event/116040079</p>
</blockquote>
<p>On the more casual end of the spectrum, there are lots of cafes that tolerate laptop customers for a while, but I haven&#8217;t yet found any other than the <a href="http://linuxcaffe.ca/" onClick="javascript:urchinTracker ('/outbound/article/linuxcaffe.ca');">Linux Caffe</a> on Harbord street in Little Italy that actively encourage mobile workers. It&#8217;s an odd contrast to Seattle and San Francisco, where mobile working is de rigeur, and it&#8217;s easy to find hangout spots where you can be productive and &#8212; shock! &#8212; <em>welcome</em> for a few hours.</p>
<p>Here&#8217;s hoping the coworking trend will tick upwards in Toronto too. </p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a9e4b8f2-e52c-4878-b27d-d1d93bd0c973" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Toronto" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">Toronto</a>,<a href="http://technorati.com/tags/co-working" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">co-working</a>,<a href="http://technorati.com/tags/mobile%20work" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">mobile work</a></div>
]]></content:encoded>
			<wfw:commentRss>http://myownpirateradio.com/2008/05/14/work-shifting-work-where-you-want/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The New &#34;Beta&#34; is Forever</title>
		<link>http://myownpirateradio.com/2008/05/01/the-new-beta-is-forever/</link>
		<comments>http://myownpirateradio.com/2008/05/01/the-new-beta-is-forever/#comments</comments>
		<pubDate>Thu, 01 May 2008 13:54:44 +0000</pubDate>
		<dc:creator>Oshoma Momoh</dc:creator>
		
	<dc:subject>general</dc:subject>
		<guid isPermaLink="false">http://myownpirateradio.com/2008/05/01/the-new-beta-is-forever/</guid>
		<description><![CDATA[A friend asked me the other day, what does &#34;Beta&#34; mean in the software industry?
I wasn&#8217;t really sure what to answer at first. &#34;Beta&#34; used to mean an interim test phase on the way to a &#34;final&#34; and &#34;supported&#34; product release. But over the last five years or so, as we&#8217;ve shifted from the boxed-product [...]]]></description>
			<content:encoded><![CDATA[<p>A friend asked me the other day, what does &quot;Beta&quot; mean in the software industry?</p>
<p>I wasn&#8217;t really sure what to answer at first. &quot;Beta&quot; used to mean an interim test phase on the way to a &quot;final&quot; and &quot;supported&quot; product release. But over the last five years or so, as we&#8217;ve shifted from the boxed-product software world to the online service software world, the term has taken on a very different meaning.</p>
<p>Here&#8217;s what Google CEO Eric Schmidt had to say about it in a recent <a href="http://www.businessweek.com/print/magazine/content/08_19/b4083054277984.htm" onClick="javascript:urchinTracker ('/outbound/article/www.businessweek.com');">Business Week interview</a>:</p>
<blockquote><p><strong>How do you make sure all these Google engineering projects actually turn into useful services?</strong></p>
<p>The No. 1 thing we do require is: You can do whatever you want as long as you track it. We have very sophisticated measurement systems at every stage of launch. We have what is called trusted testers. <strong>Then beta test, which is forever. </strong>We do these 1% launches where we float something out and measure that. We can dice and slice in any way you can possibly fathom. </p>
</blockquote>
<p>No real support guarantee, although I doubt . He should know. Pretty much every Google offering has a Beta label on it, with the notable exception of Web search.</p>
<p>So&#8230; the new &quot;Beta&quot; means continuous testing, measurement, and improvement. The product is never really &quot;finished&quot;, per se&#8230; it just evolves. As for support and product quality expectations, it&#8217;s much harder these days to get explicit statements or promises from vendors on that sort of thing. Thus &quot;Beta&quot; is also a convenient marketing label to hide behind &#8211;&#160; just like it always has been &#8212; except that now you can hide forever. (That said, if a so-called Beta service like Gmail went down, you can bet the support would be fast and furious.)</p>
<p>The last point in Schmidt&#8217;s answer is also interesting, and to the point on how Google decides whether a service is actually successful:</p>
<blockquote><p>What&#8217;s more important than the absolute number is the relative growth rate. <strong>High growth solves virtually all problems. </strong>If the growth rate is low, or negative, you&#8217;ve got a serious problem. </p>
</blockquote>
<p>Test, measure, improve.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:58b217fe-5a08-4299-8f69-555e14409dd9" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/beta" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">beta</a>,<a href="http://technorati.com/tags/software%20as%20a%20service" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">software as a service</a>,<a href="http://technorati.com/tags/software%20development" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">software development</a>,<a href="http://technorati.com/tags/marketing" rel="tag" onClick="javascript:urchinTracker ('/outbound/article/technorati.com');">marketing</a></div>
]]></content:encoded>
			<wfw:commentRss>http://myownpirateradio.com/2008/05/01/the-new-beta-is-forever/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
