AdvocacyDevBlogs

July 25, 2008

Kellan

Twitter, or Architecture Will Not Save You

&lt;p&gt;&lt;a href="http://twitter.com" border="0"&gt;&lt;img src="http://laughingmeme.org/img/maintenance.gif"&gt;&lt;/a&gt;&lt;br /&gt; &lt;small&gt;(circa 2006 Twitter maintenance cat)&lt;/small&gt;&lt;/p&gt; &lt;p&gt;Along with a whole slew of smart folks, I&amp;#8217;ve been playing the current think game de jour, &amp;#8220;How would you re-architect Twitter?&amp;#8221;. Unlike most I&amp;#8217;ve been having this conversation off and on for a couple of years, mostly with &lt;a href="http://romeda.org"&gt;Blaine&lt;/a&gt;, in my unofficial &amp;#8220;Friend of Twitter&amp;#8221; capacity. (the same capacity that I wrote the first Twitter bot in, and have on rare occasion logged into their boxes to play &amp;#8220;spot the run away performance issue.&amp;#8221;)&lt;/p&gt; &lt;p&gt;For my money Leonard&amp;#8217;s &lt;a href="http://randomfoo.net/blog/id/4182"&gt;Brought to You By the 17th Letter of the Alphabet&lt;/a&gt; is probably the best proposed architecture I&amp;#8217;ve seen &amp;#8212; or at least it matches my own biases when I sat down last month to sketch out &lt;a href="http://laughingmeme.org/2008/04/05/quiet-saturday-thoughts/"&gt;how build a Twitter-like thing&lt;/a&gt;. But when Leonard and I were chatting last week about this stuff, I was struck what was missing from the larger Blogosphere&amp;#8217;s conversation: the issues Twitter is actually facing. &lt;/p&gt; &lt;p&gt;Folks both &lt;a href="http://dev.twitter.com/2008/05/twittering-about-architecture.html"&gt;within Twitter&lt;/a&gt; and &lt;a href="http://assetbar.wordpress.com/2008/02/08/twitter-proxy-any-interest/"&gt;without&lt;/a&gt; have framed the conversation as an architectural challenge. Meanwhile the &lt;a href="http://www.techcrunch.com/2008/05/22/twitter-at-scale-will-it-work/"&gt;nattering classes&lt;/a&gt; have struck on the fundamental challenge of &lt;strong&gt;all&lt;/strong&gt; social software (namely the network effects) and are reporting that they&amp;#8217;ve gotten confirmation from &amp;#8220;an individual who is familiar with the technical probelms at Twitter&amp;#8221; that indeed Twitter is a social software site!&lt;/p&gt; &lt;h3&gt;Living and Dying By the Network&lt;/h3&gt; &lt;p&gt;All social software has to deal with the &lt;a href="http://en.wikipedia.org/wiki/Network_effect"&gt;network effect&lt;/a&gt;. At scale it&amp;#8217;s hard. And all large social software has had to solve it. If you&amp;#8217;re looking for the roots of Twitter&amp;#8217;s special challenges, you&amp;#8217;re going to have to look a bit farther a field. &lt;/p&gt; &lt;p&gt;Though you can hedge your bets with this stuff by making less explicit promises than &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt; does (everything from my friends in a timely fashion is pretty hard promise to keep). &lt;a href="http://flickr.com"&gt;Flickr&lt;/a&gt; mitigates some of this impact by making promises about &lt;a href="http://flickr.com/photos/me/friends"&gt;recent contacts&lt;/a&gt;, not recent photos (there are a fewer people than photos), meanwhile Facebook can hide a slew of sins behind the fact that their newsfeeds are &amp;#8220;editorialized&amp;#8221;, no claims of completeness anywhere in site. (there is a figure floating around that at least at one point Facebook was dropping 80% of their updates on the floor)&lt;/p&gt; &lt;p&gt;So while architectures that strip down Twitter to queues, and logs could be a huge win, and while thinking about new architectures is the sexy, hard problem we all want to fix, Twitter&amp;#8217;s problems are really of a more pedestrian hard, plumbing and ditch digging nature. Which is less fun, but reality.&lt;/p&gt; &lt;h3&gt;Growth&lt;/h3&gt; &lt;p&gt;Their first problem is growth. Honest to god hockey stick growth is so weird, and wild, and hard, thats it&amp;#8217;s hard to imagine and cope with if you haven&amp;#8217;t been through it at least once. To &lt;a href="http://randomfoo.net/blog/id/4171"&gt;quote Leonard again&lt;/a&gt; (this from a &lt;a href="http://www.techcrunch.com/2008/04/23/amateur-hour-over-at-twitter/"&gt;few weeks ago&lt;/a&gt; back when TC thought they&amp;#8217;d figured out that &lt;a href="http://www.techcrunch.com/2008/04/23/amateur-hour-over-at-twitter/"&gt;Twitter&amp;#8217;s problems were Blaine&lt;/a&gt;):&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;#8220;Even if you&amp;#8217;re architecturally sound, you&amp;#8217;re dealing with development with extremely tight timelines/pressures, so you have to make decisions to pick things that will work but will probably need to eventually be replaced (e.g. DRb for Twitter) &amp;#8212; usually you won&amp;#8217;t know when and what component will be the limiting factor since you don&amp;#8217;t know what the uses cases will be to begin with. Development from prototype on is a series of compromises against the limited resources of man-hours and equipment. In a perfect world, you&amp;#8217;d have perfect capacity planning and infinite resources, but if you&amp;#8217;ve ever experienced real-world hockey-stick growth on a startup shoestring, you know that&amp;#8217;s not the case. If you have, you understand that scaling is the brick that hits you when you&amp;#8217;ve gone far beyond your capacity limits and when your machines hit double or triple digit loads. Architecture doesn&amp;#8217;t help you one bit there.&amp;#8221;&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Growth is hard. Dealing with growth is rarely sexy. When your growth goes non-linear you&amp;#8217;re tempted to think you&amp;#8217;ve stumbled into a whole class of new problems that need wild new thinking. Resist. New ideas should be applied judiciously. Because mostly its plumbing. Tuning your databases, getting your thread buffer sizes right, managing the community, and the abuse.&lt;/p&gt; &lt;h3&gt;Intelligence and Monitoring&lt;/h3&gt; &lt;p&gt;Growth compounds the other hard problem that Twitter (and almost every sites I&amp;#8217;ve seen) has, thery&amp;#8217;re running black boxes. Social software is hard to heartbeat, socially or technically. It&amp;#8217;s one of the places where our jobs are actually harder than those real time trading systems, and other five nines style hard computing systems. &lt;/p&gt; &lt;p&gt;And it&amp;#8217;s a problem Twitter is still struggling to solve. (really you never stop solving it, your &lt;a href="http://laughingmeme.org/2008/02/20/steve-loughran-how-do-you-know-you-have-a-spof-single-point-of-failure-you-always-have-one-how-do-you-find-it-you-dont-it-finds-you/"&gt;next SPOF will always come find you&lt;/a&gt;, and then you have something new to monitor) Twitter came late in life to &lt;a href="http://ganglia.info/"&gt;Ganglia&lt;/a&gt;, and haven&amp;#8217;t had the time to really burnish it. And Ganglia doesn&amp;#8217;t ship by default with a graph for &lt;a href="http://blog.evanweaver.com/articles/2008/05/21/twitter/"&gt;what to do when your site needs its memcache servers &lt;strong&gt;hot&lt;/strong&gt;&lt;/a&gt; to run. And what do you do when Ganglia starts telling you your recent framework upgrade is causing a 10x increase in data returned from your DBs for the same QPS. Or that your URL shortening service is starting to slow down sporadically adding an extra 30ms burn to message handling. (how do you even graph that?)&lt;/p&gt; &lt;h3&gt;Beyond LAMP Needs Better Intelligence&lt;/h3&gt; &lt;p&gt;Monitoring and intelligence get even harder as you start to embrace these new architectures. Both because the systems are more complex, but largely because we don&amp;#8217;t know what monitoring and resourcing for Web scale queues of data, and distributed hash tables look like. And we don&amp;#8217;t yet have the scars from living through the failure scenarios. And we&amp;#8217;re rolling our own solutions as it is early days, without the battle hardened tweaks and flags of an Apache or MySQL.&lt;/p&gt; &lt;p&gt;We all know that &lt;a href="http://www.jabber.org/"&gt;Jabber&lt;/a&gt; has different performance characteristics than the Web (that&amp;#8217;s rather the point), but we don&amp;#8217;t have the data to quantify what it looks like at network effect impacted scale. (the big IM installs, particularly LJ and Google have talked a bit in public, but their usage patterns tend to be pretty different than stream style APIs. Btw I&amp;#8217;ll be &lt;a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4359"&gt;talking about this a bit in Portland at OSCON&lt;/a&gt; in a few months!)&lt;/p&gt; &lt;h3&gt;Recommendations&lt;/h3&gt; &lt;p&gt;So I&amp;#8217;d add to &lt;a href="http://randomfoo.net/blog/id/4182"&gt;Leonard&amp;#8217;s architecture&lt;/a&gt; (and I know Leonard is thinking about this), and the various other cloud architectures emerging that to make it work you need build monitoring and resourcing in from the ground up, or you&amp;#8217;re distributed in the cloud queues are going to fail.&lt;/p&gt; &lt;p&gt;And solve the growth issues, with appropriate solutions for growth, which rarely involves architectural solutions.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Khoi Vinh: Investing Strategies for iPhone Customers

&lt;p&gt;&amp;#8220;It’s certainly not as steep a trend as my iPhone’s devaluation, but it’s significant. In the year since I bought my first iPhone, AAPL has gained roughly 50% in value. If I’d spent that original US$599 on Apple stock instead, I’d be able to buy a new iPhone 3G and have about US$599 in assets to my name. Oh well.&amp;#8221;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

AOEMedia Sponsoring Magpie

&lt;p&gt;&lt;a href="http://www.aoemedia.com/"&gt;AOE media&lt;/a&gt;, a &lt;a href="http://www.aoemedia.de/typo3-agentur.html"&gt;TYPO3 &amp;amp; open source provide&lt;/a&gt; from Germany, recently agreed to become a sponsor on Magpie. Which is very exciting! &lt;/p&gt; &lt;p&gt;Looking around I see being sponsored by &lt;a href="http://aoemedia.com"&gt;AOE Media&lt;/a&gt; puts me in good company as they sponsor a number of interesting projects, including my favorite wiki software &lt;a href="http://wiki.splitbrain.org/wiki:dokuwiki"&gt;Doku&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I&amp;#8217;m hoping this will allow me to actually spend a little time with Magpie, maybe finally find the time to re-vamp the website into something a little more functional. &lt;/p&gt; &lt;p&gt;And last if you&amp;#8217;re someone interested in sponsorship work as a whole on Magpie, or specific feature development get in touch.&lt;/p&gt; &lt;p&gt;Thanks again &lt;a href="http://aoemedia.com"&gt;AOE Media&lt;/a&gt;.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

John Waters: &#8220;Moving [to New York] proves that you believe in irony&#8221;

&lt;p&gt;On New York&amp;#8217;s facsimile driven aesthetics. &lt;a href="http://twitter.com/buzz/statuses/826647115"&gt;via Buzz&lt;/a&gt;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Moving to New York

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/curlyjazz/1352006895/" title="new york, ny by curlyjazz, on Flickr"&gt;&lt;img src="http://farm2.static.flickr.com/1318/1352006895_b28403d8ff.jpg" width="500" height="375" alt="new york, ny" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Some of you have heard, some of you haven&amp;#8217;t, but Jasmine and I are getting up next week (June 12th) and moving to New York. &lt;/p&gt; &lt;p&gt;The plan is to go on working for Flickr, and fly back to SF once a month or so. So if you could plan your camps/parties/meetups/conferences accordingly that would be swell.&lt;/p&gt; &lt;p&gt;Looking forward to seeing you all on the East Coast. (And while we haven&amp;#8217;t really gotten a feel for the new apartment [in Williamsburg], its looking like we might even have something resembling a guest room.)&lt;/p&gt; &lt;p&gt;We&amp;#8217;ll be driving back via the not most direct route (which will surprise no one who knows us) that takes us past the Grand Canyon, Austin, and New Orleans. (thats as far as the map I&amp;#8217;m looking at goes) So any suggestions for anything from sights, to food, to places to stay, to good people along those stretches, to great audiobooks to fill up empty bits in the road are all appreciated.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

10 Years

&lt;p&gt;&lt;a href="http://protest.net"&gt;&lt;img src="http://laughingmeme.org/img/pnet_10.png"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And what a long, strange 10 years it&amp;#8217;s been.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

&lt;p&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2573743803"&gt;&lt;img src="http://farm4.static.flickr.com/3175/2573743803_1d02392ba7_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2575152441"&gt;&lt;img src="http://farm4.static.flickr.com/3113/2575152441_c758bb852d_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2579852208"&gt;&lt;img src="http://farm4.static.flickr.com/3063/2579852208_fac2933bbb_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2579077679"&gt;&lt;img src="http://farm4.static.flickr.com/3019/2579077679_f36c14c161_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2579924483"&gt;&lt;img src="http://farm4.static.flickr.com/3046/2579924483_1b097ba504_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2584756790"&gt;&lt;img src="http://farm4.static.flickr.com/3163/2584756790_705a8c1d8c_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2583949291"&gt;&lt;img src="http://farm4.static.flickr.com/3101/2583949291_e8fbe3d1b0_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2584884598"&gt;&lt;img src="http://farm4.static.flickr.com/3178/2584884598_bd9e3f3b9b_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2587548502"&gt;&lt;img src="http://farm4.static.flickr.com/3063/2587548502_c24dea0a20_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2586716263"&gt;&lt;img src="http://farm4.static.flickr.com/3097/2586716263_fb343c21ca_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2586723161"&gt;&lt;img src="http://farm4.static.flickr.com/3270/2586723161_f9c5d07e55_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2586747307"&gt;&lt;img src="http://farm4.static.flickr.com/3058/2586747307_5663d73fb0_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2587615366"&gt;&lt;img src="http://farm4.static.flickr.com/3036/2587615366_a1dc65dd65_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2586787845"&gt;&lt;img src="http://farm4.static.flickr.com/3175/2586787845_f0b03e16dc_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2586811563"&gt;&lt;img src="http://farm4.static.flickr.com/3066/2586811563_759ef122d7_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2586841601"&gt;&lt;img src="http://farm4.static.flickr.com/3034/2586841601_3918a2f0b2_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2587720760"&gt;&lt;img src="http://farm4.static.flickr.com/3041/2587720760_50051d04f3_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2587733700"&gt;&lt;img src="http://farm4.static.flickr.com/3183/2587733700_a83197d0c8_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2587751262"&gt;&lt;img src="http://farm4.static.flickr.com/3136/2587751262_52fc91fd18_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2581786671"&gt;&lt;img src="http://farm4.static.flickr.com/3135/2581786671_f00aa06496_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2585851230"&gt;&lt;img src="http://farm4.static.flickr.com/3040/2585851230_701586d8a7_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2586994623"&gt;&lt;img src="http://farm4.static.flickr.com/3156/2586994623_23f53847a1_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2587050507"&gt;&lt;img src="http://farm4.static.flickr.com/3163/2587050507_b0453ee23f_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2592655255"&gt;&lt;img src="http://farm4.static.flickr.com/3289/2592655255_fe4ca8b9e2_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2597072813"&gt;&lt;img src="http://farm4.static.flickr.com/3132/2597072813_9f126b9b02_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2597921162"&gt;&lt;img src="http://farm4.static.flickr.com/3156/2597921162_9200318ebd_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2597932920"&gt;&lt;img src="http://farm4.static.flickr.com/3245/2597932920_2b70843479_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2598051406"&gt;&lt;img src="http://farm4.static.flickr.com/3023/2598051406_263dbf4294_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2597220101"&gt;&lt;img src="http://farm4.static.flickr.com/3118/2597220101_ab3d32c3c0_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2598056312"&gt;&lt;img src="http://farm4.static.flickr.com/3111/2598056312_7689754420_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2597057457"&gt;&lt;img src="http://farm4.static.flickr.com/3072/2597057457_cc064396d6_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2597910614"&gt;&lt;img src="http://farm4.static.flickr.com/3199/2597910614_ec0a7e0746_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2597246531"&gt;&lt;img src="http://farm4.static.flickr.com/3161/2597246531_fe82eda7da_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2603497070"&gt;&lt;img src="http://farm4.static.flickr.com/3098/2603497070_33fe118436_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602677567"&gt;&lt;img src="http://farm4.static.flickr.com/3173/2602677567_ee41fb8d51_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602683981"&gt;&lt;img src="http://farm4.static.flickr.com/3167/2602683981_9e16fc194b_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2603524714"&gt;&lt;img src="http://farm4.static.flickr.com/3194/2603524714_629c351c09_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602695399"&gt;&lt;img src="http://farm4.static.flickr.com/3043/2602695399_75aab45ab9_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602697179"&gt;&lt;img src="http://farm4.static.flickr.com/3281/2602697179_0650d3c699_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2603528408"&gt;&lt;img src="http://farm4.static.flickr.com/3111/2603528408_9214be8651_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602698015"&gt;&lt;img src="http://farm4.static.flickr.com/3177/2602698015_bd2d96bbed_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2603530804"&gt;&lt;img src="http://farm4.static.flickr.com/3066/2603530804_0df3883424_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602702287"&gt;&lt;img src="http://farm4.static.flickr.com/3003/2602702287_50645cf98a_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2603535518"&gt;&lt;img src="http://farm4.static.flickr.com/3012/2603535518_f02ddaacf6_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602713417"&gt;&lt;img src="http://farm4.static.flickr.com/3133/2602713417_363015c04c_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2604861424"&gt;&lt;img src="http://farm4.static.flickr.com/3112/2604861424_f9533e7584_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/51035734193@N01/2601354037"&gt;&lt;img src="http://farm4.static.flickr.com/3280/2601354037_4b591ac785_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602727249"&gt;&lt;img src="http://farm4.static.flickr.com/3049/2602727249_879650e582_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602728355"&gt;&lt;img src="http://farm4.static.flickr.com/3026/2602728355_d4808226f9_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2602756043"&gt;&lt;img src="http://farm4.static.flickr.com/3132/2602756043_4034fd82a2_s.jpg" border="0"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/63105678@N00/2603593314"&gt;&lt;img src="http://farm4.static.flickr.com/3012/2603593314_fda48b94b7_s.jpg" border="0"&gt;&lt;/a&gt;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

From the road

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/curlyjazz/2586723161/" title="IMG_3518 by curlyjazz, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3270/2586723161_f9c5d07e55.jpg" width="500" height="375" alt="IMG_3518" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.flickr.com/photos/curlyjazz/2587751262/" title="IMG_3795 by curlyjazz, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3136/2587751262_52fc91fd18.jpg" width="500" height="375" alt="IMG_3795" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.flickr.com/photos/kellan/2585851230/" title="2008/06/16 by kellan, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3040/2585851230_701586d8a7.jpg" width="500" height="375" alt="2008/06/16" /&gt;&lt;/a&gt;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Sierra Nevadas in the rear view mirror

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/curlyjazz/2584840610/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3148/2584840610_65ec609767.jpg" class="flickr-photo" alt="" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="flickr-caption"&gt;&lt;a href="http://www.flickr.com/photos/curlyjazz/2584840610/"&gt;IMG_3450&lt;/a&gt;, originally uploaded by &lt;a href="http://www.flickr.com/people/curlyjazz/"&gt;curlyjazz&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

A family ritual

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/curlyjazz/2507901346/" title="photo sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2011/2507901346_7839f1e04c.jpg" class="flickr-photo" alt="" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="flickr-caption"&gt;&lt;a href="http://www.flickr.com/photos/curlyjazz/2507901346/"&gt;A family ritual&lt;/a&gt;, originally uploaded by &lt;a href="http://www.flickr.com/people/curlyjazz/"&gt;curlyjazz&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;p class="flickr-yourcomment"&gt; We go for coffee at Gayles every Saturday morning I&amp;#8217;m in Santa Cruz. &lt;/p&gt;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Big Picture: Water Water Everywhere

&lt;p&gt;Wow.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Yuiblog: Patterns for Designing a Reputation System

&lt;p&gt;Excellent, pragmatic, Christopher Alexander style patterns for building online community. With really cute graphic.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

A Couple of Caveats on Queuing

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/europeanasian/1511203391/" title="“The Great Rotary Duck Race,” benefiting agencies that fight child abuse. by europeanasian, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3237/2646221471_125fc7a156_o.jpg" width="500" alt="“The Great Rotary Duck Race,” benefiting agencies that fight child abuse." /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Les&amp;#8217; &lt;a href="http://decafbad.com/blog/2008/07/04/queue-everything-and-delight-everyone"&gt;&amp;#8220;Delight Everyone&amp;#8221;&lt;/a&gt; post is latest greatest addition to the &lt;a href="http://randomfoo.net/blog/id/4182"&gt;17th letter of the alphabet for savior&lt;/a&gt; conversation.&lt;/p&gt; &lt;p&gt;And believe me I&amp;#8217;m a huge fan, and am busy carving out a night sometime this week to play with the &lt;a href="http://www.lshift.net/blog/2008/07/01/rabbitmq-xmpp-gateway-released"&gt;RabbitMQ/XMPP bridge&lt;/a&gt; (/waves &lt;a href="http://del.icio.us/alexisrichardson"&gt;hi Alexis&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;But&lt;/strong&gt; &amp;#8230;. there are a couple of caveats:&lt;/p&gt; &lt;h3&gt;1) Some writes need to be real time.&lt;/h3&gt; &lt;p&gt;Les notes this as well, but I just wanted to emphasize because really, they do. &lt;/p&gt; &lt;p&gt;If you can&amp;#8217;t see your changes take effect in a system your understanding of cause and effect breaks down. It doesn&amp;#8217;t matter that your understanding is &lt;em&gt;wrong&lt;/em&gt;, you still need one to function. Ideally a physical analogy too. There are no real world effects that get queued for later application. Violate the principle of (falsely) seeming to respect real world cause and effect and your users will remain forever confused.&lt;/p&gt; &lt;p&gt;del.icio.us showing you the wrong state when you use the inline editing tool, and Flickr taking a handful of seconds to index a newly tagged photo are both good examples of subtly broken interfaces that can really throw people.&lt;/p&gt; &lt;p&gt;My data, now real time. Everyone else can wait (how long depends on how social your users are).&lt;/p&gt; &lt;h3&gt;2) You&amp;#8217;ve got to process that queue eventually.&lt;/h3&gt; &lt;p&gt;Ideally you can add processing boxes in parallel forever but if your dequeuing rate falls below your queuing rate you are, in technical terms, screwed. &lt;/p&gt; &lt;p&gt;Think about it, if you&amp;#8217;re falling behind 1 event per second, processing 1,000,000 events a second, but adding 1,000,001 for example, at the end of the day your 86,400 events in debt and counting. It&amp;#8217;s likes losing money on individual sales, but trying to make it up in volume. &lt;/p&gt; &lt;p&gt;Good news: &lt;a href="http://radar.oreilly.com/archives/2008/06/the-new-internet-traffic-spike.html"&gt;Traffic is spiky&lt;/a&gt; and most sites see daily cycles with quiet times. &lt;/p&gt; &lt;p&gt;Bad news: Many highly tuned systems exhibit slow down properties as their backlogs increase. Like a credit card, processing debt can get exponentially unmanageable. &lt;/p&gt; &lt;p&gt;In practice this means that most of the time your queue consumers should be sitting around bored. (see Allspaw&amp;#8217;s &lt;a href="http://www.slideshare.net/jallspaw/velocity2008-capacity-management1-484676"&gt;Capacity Planning slides&lt;/a&gt; for more on that theme.)&lt;/p&gt; &lt;p&gt;If you can&amp;#8217;t guarantee those real time writes for thems that cares, and mostly bored queue consumers the rest of the time then your queues might not delight you after all.&lt;/p&gt; &lt;p&gt;See also: &lt;a href="http://laughingmeme.org/2008/05/28/twitter-or-architecture-will-not-save-you/"&gt;Twitter, or Architecture Will Not Save You&lt;/a&gt;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Pahlka Dot: A couple of things about my Prius

&lt;p&gt;Apropos of nothing other then I laughing out loud several times while reading it.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

&#8220;On a rooftop in Brooklyn&#8230;&#8221;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/kellan/2641517483/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3255/2641517483_20b1a31f0e.jpg" class="flickr-photo" alt="" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;We tromped up to our roof with friends and neighbors to watch the fireworks in the rain.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Yahoo: Do What You’re Great At

&lt;p&gt;&amp;#8220;&amp;#8230; snort news off the tits of more news.&amp;#8221;&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Leonard for Obama &#8216;08

&lt;p&gt;Congratulations to the Obama campaign, this is going to be awesome.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Beyond REST? Building data services with XMPP

&lt;p&gt;The slides from &lt;a href="http://anarchogeek.com"&gt;Rabble&lt;/a&gt; and my talk at &lt;a href="http://en.oreilly.com/oscon2008/"&gt;OSCON 08&lt;/a&gt;. This was our XMPP outsiders look at how to hijack XMPP to solve the problems of RSS and polling at &amp;#8220;quantum&amp;#8221; and &amp;#8220;relativistic&amp;#8221; scales. (small and rare, or huge fast and raging).&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Perfect Villager Play, and Werewolf Variants

&lt;p&gt;It was about a year ago I sat down and did the math and figured out that Werewolf is essentially a &lt;a href="http://en.wikipedia.org/wiki/Perfect_play"&gt;solved problem&lt;/a&gt;. It made me sad. Jane has a &lt;a href="http://avantgame.blogspot.com/2008/07/memories-of-dead-seer-werewolf-at.html"&gt;long great blog post&lt;/a&gt; up on the same topic. Which for some reason doesn&amp;#8217;t make her as sad.&lt;/p&gt; &lt;p&gt;Interestingly enough their experiment this year with their zero werewolves variant was run as con game. I&amp;#8217;ve seen (and/or heard) about this run differently. &lt;/p&gt; &lt;p&gt;Shuffled role decks is one way, nobody knows who is in play, but everybody knows no one knows. (this rather nicely scotches Optimal Villager Strategy)&lt;/p&gt; &lt;p&gt;Another variant that evolved in the rapidly mutating (under pressure presumably) game that my &lt;a href="http://sedesdraconis.livejournal.com/"&gt;brother&lt;/a&gt; plays every Friday is werewolves choosing targets in turn, and the villager only dies if a majority of remaining werewolves managed to pick the same target. (&amp;#8221;Werewolf 1 wake up&amp;#8221;, &amp;#8220;Werewolf 1 go back to sleep&amp;#8221;, &amp;#8220;Rover wake up&amp;#8221;, etc) This makes for several meta games, where werewolves are under pressure to share information, villagers are confused, and there are valid strategic reasons for killing off your fellow wolves. (they were too hard to communicate with) No seer needed.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Photos from an undiscovered country

&lt;p&gt;Checkout the cluster of photos appearing in the Yellow Sea mapping its emergence.&lt;/p&gt; </content>

by Kellan at July 25, 2008 02:00 PM

Gaba

July 25, 2008 02:00 PM

July 24, 2008

Evan

The Open Web Foundation - Why Do It?

&lt;p&gt;So i&#8217;ve not been involved in the newly launched &lt;a href='http://openwebfoundation.org'&gt;Open Web Foundation&lt;/a&gt; but i have been following along as various folks i know worked on &lt;a href='http://openid.net/'&gt;OpenID&lt;/a&gt; and &lt;a href='http://oauth.net/'&gt;OAuth&lt;/a&gt;. Is it a great idea, or yet another structure? I&#8217;m not sure.&lt;/p&gt; &lt;p&gt;Here&#8217;s my understanding. Most standards traditionally have been heavy vendor driven processes. Even when you don&#8217;t need $$$ or to be a big company to participate, you do need to have the resources to fly around the world to the meetings, like &lt;span class='caps'&gt;IETF&lt;/span&gt;. It&#8217;s painful and nasty.&lt;/p&gt; &lt;p&gt;There are a series of standards which are created using more open source / hacker / collaborative ways which are emerging from code, like extracting a framework from your application, you extract the standard from your work and best practices. It&#8217;s easy, lightweight, great, works.&lt;/p&gt; &lt;p&gt;Some of these extracted open sourcey standards get picked up and big companies want to start implementing them. This is great, just look at how OAuth has gotten adopted all over the place.&lt;/p&gt; &lt;p&gt;But there is a problem, these big companies have lawyers and their lawyers are both stupid and evil. Lawyers created the stupid and evil system of intellectual property. These lawyers all seem to have adopted a particularly brain dead view of what my happens with related to participation and patents and intellectual property rights.&lt;/p&gt; &lt;p&gt;They think that unless you have a magic paragraph which says you don&#8217;t grant patents and intellectual property rights just by participating in a standards process, or even &lt;span class='caps'&gt;USING&lt;/span&gt; or &lt;span class='caps'&gt;READING&lt;/span&gt; a standard, the big corps loose their rights to enforce their patents.&lt;/p&gt; &lt;p&gt;Yes it&#8217;s super stupid, but that&#8217;s what you get when you let lawyers run your world.&lt;/p&gt; &lt;p&gt;So the &lt;a href='http://openwebfoundation.org'&gt;Open Web Foundation&lt;/a&gt; is about creating something which will shut the lawyers up and let these bottom up, extracting standards folks still work without having to die the death of a thousand meetings with legal.&lt;/p&gt;</content>

by admin at July 24, 2008 07:01 PM

Beyond REST? Building Data Services with XMPP PubSub

&lt;p&gt;&lt;a href='http://laughingmeme.org'&gt;Kellan&lt;/a&gt; and I gave a talk today at OSCON about some ideas we've been playing with around how to make web services work as things keep getting bigger and faster. Apparently it was well received. &lt;/p&gt; &lt;p&gt; UPDATE: There's a great write up by Robert Kaye &lt;a href='http://radar.oreilly.com/2008/07/oscon-day-1-beyond-rest-buildi.html'&gt;about the talk by on O'Reilly Radar&lt;/a&gt; and Joshua Schachter &lt;a href='http://joshua.schachter.org/2008/07/beyond-rest.html'&gt;confirmed similar use / abuse pattern for delicious&lt;/a&gt;. &lt;/p&gt; &lt;div id='__ss_525883' style='width:350px;text-align:left'&gt;&lt;a href='http://www.slideshare.net/rabble/beyond-rest-building-data-services-with-xmpp-pubsub?src=embed' title='Beyond REST? Building Data Services with XMPP PubSub' style='font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;'&gt;Beyond REST? Building Data Services with XMPP PubSub&lt;/a&gt;&lt;object height='355' width='350' style='margin:0px'&gt;&lt;param name='movie' value='http://static.slideshare.net/swf/ssplayer2.swf?doc=beyond-rest-narrative-1216853401785467-9' /&gt;&lt;param name='allowFullScreen' value='true' /&gt;&lt;param name='allowScriptAccess' value='always' /&gt;&lt;embed allowfullscreen='true' type='application/x-shockwave-flash' src='http://static.slideshare.net/swf/ssplayer2.swf?doc=beyond-rest-narrative-1216853401785467-9' allowscriptaccess='always' height='355' width='350'&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style='font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;'&gt;view &lt;a href='http://www.slideshare.net/rabble/beyond-rest-building-data-services-with-xmpp-pubsub?src=embed' title='View Beyond REST? Building Data Services with XMPP PubSub on SlideShare'&gt;presentation&lt;/a&gt; (tags: &lt;a href='http://slideshare.net/tag/xmpp' style='text-decoration:underline;'&gt;xmpp&lt;/a&gt; &lt;a href='http://slideshare.net/tag/pubsub' style='text-decoration:underline;'&gt;pubsub&lt;/a&gt; &lt;a href='http://slideshare.net/tag/rest' style='text-decoration:underline;'&gt;rest&lt;/a&gt; &lt;a href='http://slideshare.net/tag/oscon' style='text-decoration:underline;'&gt;oscon&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;</content>

by admin at July 24, 2008 12:00 AM

July 20, 2008

Evan

Does genuine tech innovation happen better in a recession?

&lt;p&gt;I know this may sound a little counter intuitive, but bear with me. There are some important kinds of innovation in technology which require a recession and not full employment. In the late 90&#8217;s there was the huge dot.com boom, everybody who could code at all was working from dawn to dusk. Some people made huge amounts of money, some also lost it, others just worked endless hours.&lt;/p&gt; &lt;p&gt;Then there was a collapse, huge numbers of geeks were unemployed, hundreds of thousands in the san francisco bay area alone. Out of that collapse there was time for people experiment, play with stuff, do things which were not required for meeting the next deadline. That recession and massive underemployment of geeks created blogging as we know it today.&lt;/p&gt; &lt;p&gt;It also laid the groundwork for the small agile startups which optimize the whole web 2.0 thing. Ludicorp which could go from building a multiplayer game to &lt;a href='http://flickr.com'&gt;photosharing site&lt;/a&gt;. &lt;a href='http://37signals.com'&gt;Design shops&lt;/a&gt; who have time to &lt;a href='http://rubyonrails.org'&gt;roll their own web framework&lt;/a&gt; in an &lt;a href='http://ruby-lang.org'&gt;obscure programming language from japan&lt;/a&gt;, and the like.&lt;/p&gt; &lt;p&gt;When you are busy and having paying clients banging on the door, you don&#8217;t have time to focus on exploring new areas, discovering the depth and meaning of your medium. When i was working at &lt;a href='http://odeo.com'&gt;odeo&lt;/a&gt; we were all heads down, coding, fixing, building, getting the damned thing done. There was real competition, apple and yahoo were both wanting to crush us with their huge legacy advantages of userbases and platforms. It was only once we realized we&#8217;d lost, that Odeo wasn&#8217;t going to be the podcasting platform we&#8217;d envisioned, that &lt;a href='http://evhead.com'&gt;Ev&lt;/a&gt; decided to do a series of hack weeks, play with new ideas, see if there wasn&#8217;t something new which could be created. That playing around seemed like floundering to me at the time. I was frustrated and burned out. But that process is what helped &lt;a href='http://gu.st'&gt;Jack&lt;/a&gt; pickup some ideas he&#8217;d had floating around in his head for years, but no time to work on. Those ideas became &lt;a href='http://twitter.com'&gt;twitter&lt;/a&gt;, called &lt;a href='http://twttr.com'&gt;twttr&lt;/a&gt; at the time.&lt;/p&gt; &lt;p&gt;The dot bomb wasn&#8217;t the only time when many techies were underemployed. I was reading &lt;a href='http://casperfabricius.com/blog/2008/04/02/ruby-fools-matzs-keynote/'&gt;a review of Matz&#8217;s keynote at Ruby Fools&lt;/a&gt; in denmark a few months ago and something jumped out at me. &lt;blockquote&gt;&#8220;The recession in Japan meant that Matz &#8211; while not unemployed &#8211; didn’t have many assignments at work, so he secretly started to hack away at Ruby at the office.&#8221; &lt;/blockquote&gt;&lt;/p&gt; &lt;p&gt;Not only was blogging the result of industry wide underemployment of geeks, and twitter the result of a similar thing within a single company, but Ruby was created in a very similar environment during the recession in Japan in the 90&#8217;s.&lt;/p&gt; &lt;p&gt;To the vast majority of programmers, it&#8217;s a job, they&#8217;re the &lt;a href='http://www.codinghorror.com/blog/archives/001002.html'&gt;%80 who are vocational programmers&lt;/a&gt;. They program during their work day, and go home to do other things, on the weekend they aren&#8217;t working on their own projects. Then there are the people who are obsessed, the geek&#8217;s geek as it where. We believe in learning &lt;a href='http://weblog.raganwald.com/2007/10/challenge-of-teaching-yourself.html'&gt;a new programming language every year&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Real innovation in software seems to happen when we have underemployment of the true geeks. Either inside of companies where the geeks are allowed to explore, or outside of companies through economic forces. Long hours and tight focus is often needed to get a startup going, or ship software, but it&#8217;s not what creates something really new.&lt;/p&gt; &lt;p&gt;It&#8217;s ironic, the very forces of modern capitalism which praise the internet economy as being the ultimate in friction free globalized markets hold back real innovation. It&#8217;s the down cycles, either within companies or in the broader labor market, which give the innovators space to risk walking down dead ends. It&#8217;s a cliché to say that you need to be able to fail if you are going to take real risks. When geeks are free to hack on their own then no deadlines, just interesting spaces to explore. It&#8217;s then that we see real innovation.&lt;/p&gt; &lt;p&gt;I spent a year working at Yahoo Brickhouse, we were supposed to be &lt;a href='http://www.businessweek.com/technology/content/feb2007/tc20070209_179924.htm'&gt;yahoo&#8217;s &#8216;inner startup&#8217;&lt;/a&gt;. We were going to find a way to create new stuff, employed to wander in the woods and come back with amazing ideas. We were told that it was ok to fail 9 times out of 10. We built several things which never made it out the door, two which made it to beta launch, &lt;a href='http://waxy.org/2007/12/exclusive_yahoo/'&gt;Bravo Nation&lt;/a&gt;, and &lt;a href='http://fireeagle.yahoo.net'&gt;Fire Eagle&lt;/a&gt;. I&#8217;m not sure what the future of Bravo Nation is, but i know Fire Eagle is going to launch and it&#8217;ll be a major part of making location based systems interoperate. Fire Eagle was a project which was started by &lt;a href='http://plasticbag.org'&gt;Tom Coates&lt;/a&gt;, &lt;a href='http://www.paulhammond.org/'&gt;Paul Hammond&lt;/a&gt;, and &lt;a href='http://simonwillison.net'&gt;Simon Willison&lt;/a&gt;, they were working from London and largely ignored by everybody at Yahoo. Before they could finish they were taken off of the project to finish higher priority things. Then &lt;a href='http://www.yahooresearchberkeley.com/'&gt;Yahoo Research Berkeley&lt;/a&gt; said, oh there are some neat ideas here, and they played with it for a while, they were also ignored by the larger yahoo who focused on shipping things rather than playing with interesting concepts. Eventually Tom talked Brickhouse in to joining in on this crazy location broker idea and it took another 6 months of work to get a beta out the door. The whole process went round and round all the while yahoo was doing it&#8217;s own internal soul searching. At the end of the day Brickhouse had to make either BravoNation or Fire Eagle succeed or it was getting restructured in to who knows what. The day of the big layoffs back in February, Brickhouse lost it&#8217;s director, &lt;a href='http://salimismail.com/?p=83'&gt;Salim Ismail&lt;/a&gt;, and his boss yahoo vice president &lt;a href='http://www.elatable.com/blog/2008/02/14/on-leaving-yahoo/'&gt;Bradley Horowitz&lt;/a&gt;. &lt;a href='http://www.caterina.net/'&gt;Caterina&lt;/a&gt;, who had the brickhouse idea in the first place, had already left on maternity leave. &lt;a href='http://www.chaddickerson.com/'&gt;Chad Dickerson&lt;/a&gt; was left in charge and did amazing work to help fire eagle get out the door and support &lt;a href='http://live.yahoo.com'&gt;Yahoo Live&lt;/a&gt;. Clearly we weren&#8217;t actually allowed to go off and fail 9 times out of 10 in the process of coming up with a crazy new and important idea.&lt;/p&gt; &lt;p&gt;What i find truly ironic about the process is we did end up coming up with a pretty damned good idea. That of using &lt;a href='http://oauth.net'&gt;oauth&lt;/a&gt; and webservices to broker information between other applications and services on the web while leaving the user in control and protecting privacy. Were we the only ones who came up with it? No, innovation is about a community of thinkers, there were many people involved who work at many places including twitter, pownce, magnolia, six apart, wesabe, flickr, many others, and of course yahoo and google. You see it now with interest in federated social network, the &lt;a href='http://www.gnipcentral.com/'&gt;gnip project&lt;/a&gt;, and other stuff which is still in the works.&lt;/p&gt; &lt;p&gt;Shipping a product and being innovative are often not compatible goals. The innovation happens in the downtime, then once an idea has gelled, the innovation stops and the work of creating production code begins. Sometimes it&#8217;s the same folks, most of the time it&#8217;s different folks. Often there is a long gap between the ideas being created and somebody building something useful on top of them.&lt;/p&gt; &lt;p&gt;We need recessions and underemployment of the innovators for them to have time to do their work. In a more ideal world, we would support this just like we should support having artists in society. Until we change it, we&#8217;re stuck with dumb brutish capitalism which has lucked in to creating these spaces for innovation.&lt;/p&gt; &lt;p&gt;Update: I fixed some of the spelling and grammar problems, thanks. :)&lt;/p&gt;</content>

by admin at July 20, 2008 04:00 AM

July 16, 2008

Evan

Dear Lazyweb: What's a good prosumer soho wifi / router / access point?

&lt;p&gt;So i&#8217;m sick of flaky wifi / routers / access points. I&#8217;ve had netgear&#8217;s, d-link&#8217;s, belkin&#8217;s, and linksys routers. To me they all were about the same, which is to say they worked some of the time.&lt;/p&gt; &lt;p&gt;Before i go back to getting one more of the same to replace my now limping netgear, i&#8217;ve thought, what if i got something more than the cheapest consumer class wifi router. I know that hotels, conference centers, and all sorts of other places have wifi which doesn&#8217;t need to be restarted on a regular basis, that doesn&#8217;t suck. Sure some have wifi which sucks, but some don&#8217;t. The same goes with companies, at Yahoo! there was good wifi coverage all over campus, their crazy vpn made it hard to use, but the coverage was there.&lt;/p&gt; &lt;p&gt;So then my question becomes, what are my options one level up? So far a little searching around i found the &lt;a href='http://www.cisco.com/en/US/products/ps5678/Products_Sub_Category_Home.html'&gt;Cisco Aironet&#8217;s&lt;/a&gt; which start around $200 for the lower end models and the &lt;a href='http://www.zyxel.com/web/product_family_detail.php?PC1indexflag=20040908175941&#38;CategoryGroupNo=81AD76FF-54E8-484F-A2C5-4B2C83DFD32B'&gt;ZyXAL&#8217;s ZyWALL 2WG&lt;/a&gt; router which supports 3G as a backup connection in addition to being a wifi router at $250+.&lt;/p&gt; &lt;p&gt;Are those good routers? What are the alternatives in that quality range? Has anybody tried and used either of those?&lt;/p&gt; &lt;p&gt;Dear lazyweb, please help&#8230;.&lt;/p&gt;</content>

by admin at July 16, 2008 05:00 PM

July 10, 2008

Evan

iPhones in Argentina, Uruguay, and Paraguay

&lt;p&gt;So while everybody up north is getting ready for the introduction of the 3G iPhone, it&#8217;s also arriving down at the bottom of the world. Apple chose the mexican company, Claro, formerly &lt;span class='caps'&gt;CTI&lt;/span&gt; Movil, to sell iPhones in latin america, probably because they could go with provider and get the whole region.&lt;/p&gt; &lt;p&gt;While Claro hasn&#8217;t been very clear about exactly how much the iPhone will cost, when it&#8217;ll be for sale, or really anything except to say that it&#8217;s coming. I do have some information.&lt;/p&gt; &lt;p&gt;According to their &lt;a href='http://es.engadget.com/2008/06/21/los-precios-del-iphone-en-mexico/'&gt;prices posted for mexico&lt;/a&gt; the monthly plans will cost between $45 &lt;span class='caps'&gt;USD&lt;/span&gt; per month and $85 &lt;span class='caps'&gt;USD&lt;/span&gt; per month. The &lt;a href='http://www.fayerwayer.com/2008/06/%C2%BFlos-precios-y-planes-del-iphone-de-claro/'&gt;rumors for chile&lt;/a&gt; had similar prices. The phone will cost between $450 &lt;span class='caps'&gt;USD&lt;/span&gt; and $0 &lt;span class='caps'&gt;USD&lt;/span&gt; depending on contract, 8gb vs 16gb, etc&#8230; Taxes included, which in latin america are substantial, here in Uruguay the &lt;span class='caps'&gt;IVA&lt;/span&gt; sales tax is %21.&lt;/p&gt; &lt;p&gt;How many iphones are coming down south? Well i don&#8217;t know all the numbers, but Claro&#8217;s confirmation page when you request notice about the phones says that they have imported 20,000 phones to Argentina, Uruguay, and Paraguay each. On the surface that seems fare, each country gets a nice shipment. The problem is, Argentina is a &lt;span class='caps'&gt;MUCH&lt;/span&gt; bigger country than the guay&#8217;s. Argentina&#8217;s population is 40.6 million, Paraguay&#8217;s 6.8, and Uruguay&#8217;s 3.4. The data i found is from 2006, but Argentina&#8217;s cell phone penetration is better than %76. Uruguay&#8217;s is %67, and Paraguay&#8217;s is %47. So not only did Argentina get fewer phones, they&#8217;ve got more people are likely to &lt;span class='caps'&gt;WANT&lt;/span&gt; one. There are 13.5 times more iphones for sale when adjusted for the cellphone ownership market in Uruguay than Argentina!&lt;/p&gt; &lt;p&gt;Given that it&#8217;s a couple hour ferry ride across the river from Argentina to Uruguay i expect there might be a grey market of Argentines buying their iPhone from Claro Uruguay if Claro Argentina sells out.&lt;/p&gt; &lt;p&gt;There have been come claims that &lt;a href='http://www.elpais.com.uy/Suple/Empresario/08/06/13/elempre_351671.asp'&gt;Movistar (owned by the spanish telefonica) also will be selling iPhones in latin america&lt;/a&gt;, but clearly it&#8217;s not at launch, because there&#8217;s nothing on their websites about it.&lt;/p&gt; &lt;p&gt;I&#8217;ll followup when they actually release their prices and say when they will start selling them.&lt;/p&gt;</content>

by admin at July 10, 2008 09:00 PM

July 07, 2008

Evan

The ascendancy of Hacker News & the gentrification of geek news communities

&lt;p&gt;I&#8217;ve been reading the reddit clone site, &lt;a href='http://news.ycombinator.com/'&gt;Hacker News&lt;/a&gt; from ycombinator more lately. It&#8217;s got a nice combination of alpha geek tech and small / agile startup topics. While i like the political news on &lt;a href='http://reddit.com'&gt;reddit&lt;/a&gt;, honestly it&#8217;s stopped being very topical for me&#8230; to much taken over by link spammers i think who are gaming the system for traffic. The subsites like &lt;a href='http://ruby.reddit.com'&gt;ruby.reddit.com&lt;/a&gt; are still a great source of traffic.&lt;/p&gt; &lt;p&gt;What has surprised me is that Hacker News seems to have found me about the same time i found it. When i went to go do a post i thought might be relevant to the community, about moving email from using smtp to xmpp, i posted it on hacker news. Only after did i discover that &lt;a href='http://news.ycombinator.com/item?id=223085'&gt;somebody had already posted a link to it&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Then yesterday i did wrote another blog post, this time about leaving yahoo brickhouse, and again over half the traffic came from &lt;a href='http://news.ycombinator.com/item?id=238362'&gt;another link posted to hacker news&lt;/a&gt;. So what&#8217;s going on here? Well first the community of folks has shifted. It&#8217;s previous semi-private places have been lost and new places created.&lt;/p&gt; &lt;p&gt;For me long ago i read &lt;a href='http://slashdot.org'&gt;slashdot&lt;/a&gt;, then &lt;a href='http://www.kuro5hin.org/'&gt;kuro5hin&lt;/a&gt;, then &lt;a href='http://del.icio.us/network/rabble'&gt;my delicious network&lt;/a&gt;, then &lt;a href='http://reddit.com'&gt;, then &lt;a href='http://news.ycombinator.com/'&gt;Hacker News&lt;/a&gt;. There were others in there too, i get lots of links from reading topical blogs like &lt;a href='http://rubyinside.com'&gt;rubyinside&lt;/a&gt;, activist news from &lt;a href='http://indymedia.org'&gt;indymedia&lt;/a&gt;, etc&#8230;&lt;/p&gt; &lt;p&gt;The shift of online communities resembles urban development and the gentrification of many hip neighborhoods. The artists and hackers move in first, they are in development parlance, risk tolerant. For urban neighborhoods that means they&#8217;ll deal with crime if they can get cool warehouses to take over. Then slowly the neighborhood transforms, and gets some nice cafes and clubs, gets known as the place where the hip kids play, and more people come. Rent gets driven up, the crowds come, it becomes to crowded, and the hipsters have to move on. Just replace hipsters with alpha geeks and you get the same process.&lt;/p&gt; &lt;p&gt;We are creating virtual communities and then by our very own actions gentrifying them!&lt;/p&gt; &lt;p&gt;So why do i like the small sites, not just hacker news, but &lt;a href='http://www.dzone.com/'&gt;dzone&lt;/a&gt;, &lt;a href='http://rubyflow.com/'&gt;rubyflow&lt;/a&gt; and a bunch of others? Well for one because they work well for me. I can submit a link, or in the case of hacker news, somebody else in the community links to my stuff, and then i get traffic. A lot of traffic really, I can get 7 votes, but that translates in to 300 to 3000 visits to the article. It&#8217;s much harder to get on the front page of reddit, or dare say digg where the true unwashed masses of tech news junkies hang out these days. It&#8217;s even harder to get on top of yahoo buzz, where a few hours on the top page can lead to millions of page views.&lt;/p&gt; &lt;p&gt;Are we doomed to keep creating these communities, enjoying them for a while, then having to abandon them and move on? When i helped start &lt;a href='http://indymedia.org'&gt;indymedia.org&lt;/a&gt; back in 1999, we thought open publishing, the ability to put on the internet your own articles, videos, pictures about news was revolutionary. It was a big deal, this was before you could just create a blogspot or wordpress site. Our enemy was &lt;a href='http://CNN.com'&gt;&lt;span class='caps'&gt;CNN&lt;/span&gt;&lt;/a&gt; the site which only showed you the news they wanted&#8230; But today cnn has &lt;a href='http://www.ireport.com/'&gt;Unedited. Unfiltered. News. iReport.com&lt;/a&gt; which is pretty damned similar to what we were doing with indymedia. Then then take some of the news created on ireport and integrate it to cnn.com&#8217;s site and use it in the news. The &lt;span class='caps'&gt;BBC&lt;/span&gt; does something similar.&lt;/p&gt; &lt;p&gt;The point is, we won. We took an idea, which said that the masses should be able to make their own media, and we did it as an example and eventually the people we were fighting against started copying us. No we didn&#8217;t win all of what we wanted, we had a political agenda which we able to advance here and there, we stopped the &lt;span class='caps'&gt;WTO&lt;/span&gt; round, ended the &lt;span class='caps'&gt;FTAA&lt;/span&gt; (free trade area of the americas), but in may ways we won.&lt;/p&gt; &lt;p&gt;So what does that mean to online communities, generating and finding news? Well first off it turns out that we, the broader hacker community is doing a good job at coming up with models which change the world. From blogs to wikis to link voting and collaborative editing, we&#8217;re coming up with ideas which other people are copying. Or sometimes the hacker community&#8217;s tools become mainstream. But we also face the reality that there is a tremendous value in influencing what gets seen.&lt;/p&gt; &lt;p&gt;If you can make a website which gets a lot of traffic, there is money to be made there. That&#8217;s the attraction of the &lt;span class='caps'&gt;SEO&lt;/span&gt; / &lt;span class='caps'&gt;SEM&lt;/span&gt; world. They&#8217;re not respected by true hackers, but they are huge, and they come in and destroy communities like reddit.&lt;/p&gt; &lt;p&gt;One option is we just keep moving, which is what we&#8217;ve been doing. From slashdot to kuro5hin, from digg to reddit from reddit to hacker news.. The other option is we try and build in to our systems anti-SEO / &lt;span class='caps'&gt;SEM&lt;/span&gt; protections. Find ways to use emergent behavior to find real and relevant content without having it be gameable. Twitter stopped spammers by using tinyurl for all links&#8230; Delicious did it by making it so my network is people i choose. The link voting sites will have a hard time. Perhaps we&#8217;ll just switch sites every 6 months to a year, but there&#8217;s got to be a better way.&lt;/p&gt;</content>

by admin at July 07, 2008 04:00 PM

July 06, 2008

Evan

Good Bye To The Purple Mothership: Leaving Yahoo

&lt;p&gt;I just realized that i forgot to post anything on my blog about this&#8230; woops! I left Yahoo Brickhouse in April. I twittered about it, but wasn&#8217;t sure what to say in a blog. While at Yahoo i got to do the architecture work and a lot of the development of Yahoo! &lt;a href='http://fireeagle.yahoo.net'&gt;Fire Eagle&lt;/a&gt;. We launched the first rails app at Yahoo and were the first to release a working OAuth implementation. Working with Brickhouse was amazing, a great group of people who worked incredibly hard to release an amazing product.&lt;/p&gt; &lt;p&gt;Working with, or rather for Yahoo, was not so great. It was a constant painful struggle. Maybe at some point i&#8217;ll sit down and write about the relationship the reform movement part of yahoo had with the mothership. While i tried to make things better, i&#8217;m not sure that improving the quality of a fortune 500 company is really my cup of tea.&lt;/p&gt; &lt;p&gt;I have looked at a number of options since leaving Yahoo, and decided to spend some time coding along side the amazing geeks at &lt;a href='http://entp.com'&gt;entp.com&lt;/a&gt;. One time at a foocamp i heard somebody say, &#8220;find the smartest group of people you can and work with them.&#8221; Entp makes &lt;a href='http://lighthouseapp.com/'&gt;Lighthouse&lt;/a&gt; a ticket tracking system that rails itself uses, and a few other apps.&lt;/p&gt; &lt;p&gt;Moving to a small agile company is a breath of fresh air. Instead of we need to have a meeting about it, my questions get answered with, &#8220;sounds good, &lt;a href='http://edgibbs.com/2007/04/23/josh-susser-on-contributing-to-rails/'&gt;pdi&lt;/a&gt;&#8221;. Instead of being told that subversion is on the timeline for 2 years from now, everybody&#8217;s using git.&lt;/p&gt; &lt;p&gt;In addition to working with entp i&#8217;m also doing some work as an adviser to &lt;a href='http://mapufacture.com'&gt;mapufacture&lt;/a&gt;, &lt;a href='http://change.org'&gt;change.org&lt;/a&gt;, and others helping them with scaling, architecture and tech strategy.&lt;/p&gt;</content>

by admin at July 06, 2008 10:00 PM

June 23, 2008

Eugene

Nigeria, Day 2: Trust and Travel

My last post stirred up concern and sympathy among friends and family, which felt reassuring on the one hand and a bit embarrassing on the other. If you're in a position where you can have a bad experience, then immediately find sympathetic ears from worried friends and colleagues both on the ground and over the Internet, then you're really not in a bad place. I pulled out my camera last night at dinner, and Fatima, who works with JudithWalker at dRPC and who's been taking care of us, teased, "You can take as many pictures as you want here, and we won't take your camera away!"    (N09)

The truth of the matter is, my travel experiences -- both now and in Ethiopia and India -- have been mightily skewed by the fact that (a) I've had trusted locals in each place who have embraced and taken care of me; and (b) I've stayed in the equivalent of luxury hotels everywhere I've gone. When I returned from India and Ethiopia, I told people that if I had to go back a second time, I'd be completely useless because my hosts took such great care of me, I didn't have to do anything. Even when I've spent time with villagers in extremely rural conditions, I've always returned to a hotel with running water and, in several cases, Internet. High-bandwidth Internet is a huge, huge luxury in many of the countries I've been working in, particularly Nigeria, and I've had good enough access here to Twitter regularly. Roughing it I am not.    (N0A)

There are two levels of challenges when visiting a developing country. The first has to do with base-level needs. If you're intimidated by poor plumbing and strange foods, you're not going to have a good time. I'm staying at the Tahir Hotel here in Kano, which is where MadelineAlbright stayed when she visited. (MagdalenaLopez is staying in the room Albright stayed in, her prize for having arrived first.) While the service and security here has been first class, the quality of the lodgings has been about equivalent to a decent, but not great hotel in a developed country. The water pressure is very low, the hot water doesn't work, the toilets don't take toilet paper, and the power goes out often. These are all functions of the infrastructural challenges of the location and don't reflect on the hotel itself. We still have it a million times better than most people here in Kano.    (N0B)

If you can deal with the rougher living conditions, then the main challenge in developing countries is finding people you can trust. You can see this right when you exit the airport, when you are bombarded with people offering to help you, the vast majority of whom are looking to scam you. How are you supposed to filter through all of these offers and find someone trustworthy? There are plenty of scam artists in most large cities, but in the States, you can be fairly certain that cabbies aren't going to rip you off (too badly) or that security isn't going to solicit a bribe by stealing your camera.    (N0C)

In Nigeria, people in the know don't exchange their currency at banks. Thieves hang out there, looking to rob newly weighed down patrons, not to mention the thieves inside the bank who rip you off with poor exchange rates. People in the know have a "guy." (We met ours in front of a Chinese restaurant on the streets of Kano, negotiated a great rate, did our business, and moved on without ever leaving our car.) There are, of course, no directories of trusted "guys," at least none that I'm aware of. Choose badly, and you could end up with a handful of counterfeit money. Or worse.    (N0D)

http://farm4.static.flickr.com/3127/2605947618_4e9b44a087_m.jpg    (N0O)

HaddisMulugeta told me that, up until about ten years ago, people took it for granted that they would need to include a bribe inside their passport in order to gain entry into Nigeria. Stuff like this is what makes travel hard in these countries. You have to build trust to operate; you can't trust the formal institutions. In developed countries, trust is institutionalized.    (N0E)

What's sad and bad is that these challenges have a way of coloring one's attitude about the people, which is totally wrong. Internationally, Nigerians have a reputation for scams and running drugs. However, letting this affect your judgement of the people as a whole is like saying that all Arabs are terrorists or that all Americans are ignorant and arrogant. I've heard nasty stories about muggings and shootings, especially near the Niger Delta. Well, I grew up in a safe neighborhood in suburban LosAngeles, and the guy living across the street from us got shot in his own home. It happens. I've spent time in cities all over the world, but I've only been mugged once in my life, and that was at the Newark Airport. Based on my experiences, I might argue that NewJersey is the scariest place on Earth. That happens to be true, but in most cases, generalizing like this is really stupid.    (N0F)

I had a rough start to my trip, but I had a great first day here, and I'm starting to get excited. I got to see a bit of Kano, and I learned a few words in Hausa. More importantly, I'm around amazing people.    (N0G)

Of course, the one thing that is guaranteed to get me excited is the food. At lunch today, CherylFrancisconi told JudithWalker, our host, that I want nothing less than the authentic, local experience. Judith turned to me and asked with some surprise and delight, "Are you okay with cow tails?" Uh, yeah. If you've never had my Mom's ox tail soup, then you haven't lived. It turns out that KamylaMarvi is also an adventurous eater, and Cheryl is no slouch herself, so this is going to be fun. I don't know exactly what Judith and Fatima have in store for us, but I heard the words "goat's head" and "brain" bandied about, so they're not fooling around.    (N0H)

by Eugene Eric Kim at June 23, 2008 09:40 AM

June 22, 2008

Eugene

Nervous in Nigeria

My project with the LDM program for reproductive health leaders in developing countries took me to India and Ethiopia in March, and today, it has taken me to Kano, Nigeria. I arrived here safe-and-sound, although I had a somewhat traumatizing run-in with security at the airport in Abuja. More on this in a sec.    (MYX)

I'm here to meet with the in-country managers of the project's participating countries. I'll get to see CherylFrancisconi, SanjayPandey, and HaddisMulugeta again, and I'll be meeting JudithAnnWalker, KamylaMarvi, and MagdalenaLopez in the flesh for the first time. I came here with AdamThompson from GIIP, who's been working on the technology side of the project, and ScottReed, who's also with GIIP.    (MYY)

Strangely enough, I'm more nervous about this trip than I was about my previous one. You would think that my previous experiences, which were overwhelmingly positive, would have made me a hardened, confident traveler. But the vibe leading up to this trip has been much different.    (MYZ)

One of my best and oldest friends, GbengaAjilore, is Nigerian. So is one of BlueOxen's advisors, AdeMabogunje. I spoke with both of them before the trip, and they were excited about me coming here. The reaction from other friends and colleagues was quite the opposite. Most of the non-Nigerian Africans I spoke to do not think highly of Nigerians for reasons that I don't quite understand. Several of my well-traveled friends had horror stories to share, although none of them had actually visited here. Cheryl is the most fearless and experienced traveler I know, and even she had some scary stories.    (MZ0)

On the plane ride over, I read a report written by Adam's boss at GIIP, PaulLubeck, who has researched this country for 30 years. It's about how the U.S. has a strong interest in West Africa and particularly Nigeria because of the oil there. Nigeria provides 10-12 percent of U.S. oil imports, and that number is expected to grow significantly. The bad news is that Nigeria is a volatile country as it is, and the demand for oil is only making it worse. Corruption is rampant, and violence is widespread. Predictably, U.S. policy over the past seven years has only worsened the situation.    (MZ1)

You can see why I was nervous. But on the plane today, I was mostly just tired. We arrived safely in Abuja on a stopover to Kano, and they asked us to deplane. While in the waiting area, I decided to snap a picture of Adam and Scott.    (MZ2)

Out of nowhere, a stocky man dressed in a white dashiki grabbed my camera in my hand, and exclaimed, "What are you doing? Why are you doing that? Come with me!" I thought this guy was nuts. "What are you doing?" I responded, increasing my hold on my camera and looking around for help. As far as I could tell, everyone was doing an excellent job of pretending nothing was happening.    (MZ3)

My reaction just agitated the man, who kept insisting that I come with him and who said that I wasn't allowed to take pictures. I kept my cool, but I also kept my grip, and I insisted a number of times that he tell me who he was and show me some identification. "I don't have to show you anything!" he barked. "Come with me!"    (MZ4)

He was wearing some kind of badge around his neck, which was obscured by his arms. I wasn't making the situation better, so I decided to go with him. Both of us continued to hold onto the camera. Every time I saw someone in uniform, I explained to them what this strange man had done. Enough people said that I needed to follow this guy that I continued to cooperate, but I was not going to let go of my camera, and I wasn't going to shut up.    (MZ5)

Eventually, we ran into two official looking men who asked me why I was taking pictures. "I was just taking pictures of my friends," I explained to them, showing them the pictures.    (MZ6)

"Why would anyone take pictures in an airport? What were you doing?"    (MZ7)

I explained to them that I had no idea this was not allowed, and that I took pictures in airports all the time. The security guy then claimed I tried to fight him, which infuriated me. Still, I kept my cool. "Why were you harassing this man?" they asked me.    (MZ8)

"I wasn't harassing anyone. What would you do if a strange man came out of nowhere and just grabbed your camera?"    (MZ9)

"Why didn't you ask for ID?"    (MZA)

"I asked several times, and he wouldn't show me."    (MZB)

The security guy then responded, "He never asked me for ID."    (MZC)

I looked at him disgustedly, but I was surprisingly resigned. So this was how it was going to be. "I have a number of witnesses who can verify that I asked for his ID."    (MZD)

I then explained, "Look, I'm not trying to cause any trouble. All I want to do is get back on my plane. I didn't know this was a policy, and I was taken aback by how this man reacted. I will happily erase the pictures."    (MZE)

The men agreed to that and told the security guy to take me back. I breathed a sigh of relief.    (MZF)

As we walked back to the room, the security guy turned to me and asked, "Why are you so arrogant?"    (MZG)

I couldn't believe what he had just said, but again, I kept my cool. "I wasn't being arrogant. I didn't know the policy, and I had no idea you were anyone official. How would you have reacted if someone had come out of the blue and grabbed your camera? In any case, I'm sorry for any trouble that I caused."    (MZH)

Surprisingly, that seemed to satisfy him, and when we got back to the room, he held out his hand. I shook it, and that was that.    (MZI)

Scott and Adam looked relieved when I returned, and Scott observed that he would have just let the guy take the camera. If the circumstances had been different, I would have also, but we were surrounded by people, and he did have that badge (even though he wouldn't show it to me). It happened to turn out for the best, but it was a good kick in the pants for me to stay on my toes while I'm here.    (MZJ)

by Eugene Eric Kim at June 22, 2008 01:12 AM

June 20, 2008

Evan

The Future of Email: From SMTP to XMPP

&lt;p&gt;Email is dead! Long live email!&lt;/p&gt; &lt;p&gt;Email has long been the killer app of the internet. It has taken us to a world were everybody has an address and anybody can send an email to anybody else. Email works incredibly well.&lt;/p&gt; &lt;p&gt;At the same time, email is totally broken. Address books are painful to maintain, and they don&#8217;t tell us about somebody&#8217;s ability to actually reach another person. Spam is a major problem, i have no easy way of saying who i want to be able to send me messages, no way of saying, i don&#8217;t want messages from you any more. Spam, and getting around spam filters with legitimate email is a huge problem. The vast majority of email is spam.&lt;/p&gt; &lt;p&gt;There is a reason the myspace/facebook generation hardly use email. They&#8217;ve got a system which solves the spam issue, built in is a buddylist which lets you define who can send you messages. It&#8217;s also a realtime system rather than a store and forward system expecting users to be mostly offline. The problem is these message systems are walled gardens.&lt;/p&gt; &lt;p&gt;Jabber, and it&#8217;s &lt;span class='caps'&gt;XMPP&lt;/span&gt; protocol, were built for IM, but they made it super flexible. It can easily be used for email to solve the delivery permission / address book issues. Now i can easily authorize people to send me messages.&lt;/p&gt; &lt;p&gt;The addresses are even compatible, so you can have a bridge, attempt to deliver via xmpp and if the domain doesn&#8217;t handle xmpp roll back to smtp.&lt;/p&gt; &lt;p&gt;Of course i&#8217;m far from the first person to have thought of this, it&#8217;s come up in &lt;a href='http://mibus.cgcommunity.com/index.php?id=405'&gt;2004&lt;/a&gt;, &lt;a href='http://www.deepdarc.com/2006/03/30/email-via-xmpp/'&gt;2006&lt;/a&gt; and &lt;a href='http://singpolyma.net/2007/07/replacing-smtp-with-xmpp/'&gt;2007&lt;/a&gt;. So the question is, why hasn&#8217;t it happened. Well first off, these things don&#8217;t just happen on their own, somebody has to do the work, write software, organize it, make the change you want to see.&lt;/p&gt; &lt;p&gt;How could we get from here to there? Kill email so that email can live free?&lt;/p&gt; &lt;p&gt;Well the way i see it there are several things which need to happen. It&#8217;s a chicken and egg issue, nobody is sending email via xmpp because nobody can receive email via xmpp, the clients don&#8217;t exist. Nobody&#8217;s building xmpp email clients because nobody&#8217;s sending email via xmpp to receive.&lt;/p&gt; &lt;p&gt;There are some things working towards adoption of xmpp for email. Critically, the email address can stay the same. Many of the alpha geeks already use the same address for their email and their jabber IM accounts. The email address is deeply embedded in the culture and any attempt to vary from it would doom the move to email over xmpp.&lt;/p&gt; &lt;p&gt;The second thing which can help lead to adoption of xmpp email is the integration of email / messaging and IM. You see it in yahoo mail, facebook, and myspace. The big email / messaging providers are already routing IM messages alongside the email.&lt;/p&gt; &lt;p&gt;The third third thing which will help is we don&#8217;t actually have to get very many providers to adopt xmpp email to get critical mass. Despite email&#8217;s incredibly federated nature, there are a few providers who have hundreds of millions of accounts. Get one, or several of those providers to switch and provide xmpp email support &lt;b&gt;in addition to&lt;/b&gt; smtp email, and you&#8217;d be able to use that to shift everybody over. The promise of getting out of spam filters will be enough to get the big senders to jump over, and once you&#8217;ve got both sides, then it can take years for the rest of the net to move over, it has to be a gradual process. Once you&#8217;ve got a big provider who accepts email via xmpp, then you can work on building out library support, create the email extensions to ejabberd, openfire, etc&#8230; and bridges to sendmail, exim, postfix, etc..&lt;/p&gt; &lt;p&gt;The obvious people to do this are the google gtalk &#38; gmail teams. They&#8217;ve already pushed the idea that my gmail address IS both email and IM. They&#8217;ve got the servers running in parallel. It&#8217;s simply a matter of building out a test setup, defining how the standard will work, and getting gmail to support it.&lt;/p&gt; &lt;p&gt;This is not to say that there aren&#8217;t others who could do it. My ex-employer, Yahoo! could do it, but fixing the future of email is probably not a high priority. Microsoft could do it, but they have a hard time adopting open standards and wouldn&#8217;t be trusted by the open source developer community who maintain the current technology stack which makes email work. Other than google, the only other player who i could adopting this and pushing it forward is actually &lt;span class='caps'&gt;AOL&lt;/span&gt;. While mostly ignored, &lt;span class='caps'&gt;AOL&lt;/span&gt; has been pretty decent at adopting and pushing new technology and could see this as a way of getting back in to the lead setting trends for the future.&lt;/p&gt; &lt;p&gt;While we wait for somebody big to adopt it, building proofs of concept, making a system which will work, would probably push forward the case for replacing smtp with xmpp as our global email delivery system.&lt;/p&gt;</content>

by rabble at June 20, 2008 03:00 AM

May 02, 2008

Evan

Speaking about Fire Eagle

&lt;p&gt;Last month I spoke about &lt;a href='http://fireeagle.yahoo.com'&gt;Yahoo! Fire Eagle&lt;/a&gt; at the &lt;a href='http://ecommmedia.com/'&gt;Emerging Communications Conference&lt;/a&gt;. Lee did a great job putting together the conference, and had everything recorded. I feel i did an ok job explaining Fire Eagle, but perhaps i had too much coffee to make up for being on the tail end of a dozen straight days of conferences.&lt;/p&gt; &lt;p&gt;So if you&#8217;re interested in Fire Eagle as it relates to the mobile and telephony world, this is a good talk. The slides &lt;a href='http://www.slideshare.net/rabble/liberating-location-fire-eagle-ecomm-2008/'&gt;are online at slideshare.net&lt;/a&gt;.&lt;/p&gt; &lt;embed type='application/x-shockwave-flash' src='http://video.google.com/googleplayer.swf?docid=3606496010130914256&#38;hl=en' id='VideoPlayback' flashvars='' style='width:350px;height:276px'&gt; &lt;/embed&gt; &lt;p&gt;It&#8217;s humbling to see a video of yourself speaking. Public speaking is really hard. I&#8217;ve been trying to work on my presentations, and i&#8217;m getting better over time.&lt;/p&gt; &lt;p&gt;Next week i&#8217;m going to be speaking at xtech in dublin in &lt;a href='http://2008.xtech.org/public/schedule/detail/646'&gt;a longer talk about Fire Eagle&lt;/a&gt;. I&#8217;ll get in to the actual api&#8217;s and bit about building apps with Fire Eagle. In July i&#8217;ll be co-speaking with &lt;a href='http://laughingmeme.org'&gt;Kellan&lt;/a&gt; about using jabber for web services in &lt;a href='http://en.oreilly.com/oscon2008/public/schedule/detail/4359'&gt;Beyond &lt;span class='caps'&gt;REST&lt;/span&gt;? Building Data Services with &lt;span class='caps'&gt;XMPP&lt;/span&gt; PubSub&lt;/a&gt; at &lt;a href='http://en.oreilly.com/oscon2008/public/content/home'&gt;&lt;span class='caps'&gt;OSCON 2008&lt;/span&gt;&lt;/a&gt;. In between i&#8217;ll be at &lt;a href='http://www.caboo.se/articles/2008/1/30/caboose-conf-2008'&gt;Google IO&lt;/a&gt; and &lt;a href='en.oreilly.com/rails2008/'&gt;Rails Conf&lt;/a&gt; / &lt;a href='http://www.caboo.se/articles/2008/1/30/caboose-conf-2008'&gt;Caboose Conf&lt;/a&gt;, but thankfully i won&#8217;t be speaking, unless i get inspired to do a lightning talk.&lt;/p&gt;</content>

by rabble at May 02, 2008 02:00 AM

April 30, 2008

Evan

Funny OLPC Story - How do you delete files?

&lt;p&gt;So today i sat in on a meeting with some folks in the Uruguayan government who were trying to get ebook type educational material to laptops of the kids who have them now in uruguay. There are about 200,000 laptops being distributed, and it would cost too much to print books with the material, so they figured these laptop things might be a good way of doing it. In the discussion they told me this little story about tech support and the &lt;span class='caps'&gt;OLPC&lt;/span&gt; or Project Ceibal as it&#8217;s called in Uruguay.&lt;/p&gt; &lt;p&gt;It seems that during the first trial in the Florida Department of Uruguay they were having a problem. The kids it seems were downloading too much stuff from the internet. The laptops have a 1 gb flash drive, so it&#8217;s pretty easy to see how it could fill up. So the teachers told the ceibal folks that this was a problem, the drives were filling up and nobody knows how to delete files.&lt;/p&gt; &lt;p&gt;Well this is a problem, so there were meetings, and more meetings, how to delete files, they called up the University of Uruguay&#8217;s Engineering Faculty and investigated further. After four months of back and forth they had the answer and somebody traveled up to Florida (the uruguayan florida) with the answers and a training to teach the teachers how to delete files. It was after all what they asked for.&lt;/p&gt; &lt;p&gt;When they got there the teachers said, &#8220;oh, that! The kids figured out how to delete the files and manage them months ago.&#8221; Which is of course the whole point of &lt;span class='caps'&gt;OLPC&lt;/span&gt;, the kids can use the tech, it&#8217;s open, hackable, and explorable.&lt;/p&gt; &lt;p&gt;Another story is a friend of mine was visiting his cousin and the cousin was excited because he just got one of the laptops. But he said there was a problem, some of the interface was in english. My friend, being a programer, sat down and tried to figure it out. It seems that was some problem with the packages, he&#8217;s not exactly sure what&#8217;s wrong. But at one point &#8220;Save&#8221; was translated as &#8220;Salvar&#8221; instead of &#8220;Guardar&#8221; Salvar does mean save, but in the kind of way that Jesus Saves. Not the kind of thing you&#8217;d do with files, which is Guardar which might literally be translated something more like &#8216;to put away&#8217; than &#8216;save&#8217;. I asked the &lt;span class='caps'&gt;OLPC&lt;/span&gt; folks about it on irc, and they said that perhaps the build being shipped out in uruguay is out of date with what they currently have released. Clearly they need a good logistics person / team to do release management and handling lots of branched distributions. Not an easy task.&lt;/p&gt; &lt;p&gt;On the whole people seem excited about &lt;span class='caps'&gt;OLPC&lt;/span&gt;. It would be good if the Uruguayan government could do something about class size, 1 teacher for 40 students is the &lt;span class='caps'&gt;REAL&lt;/span&gt; education problem, but the laptops help.&lt;/p&gt;</content>

by rabble at April 30, 2008 09:00 PM

April 25, 2008

Evan

Two conversations about tests and software development

&lt;p&gt;I&#8217;ve had the privilege of working with many developers over the years on a diversity of projects. I like tests, i think they make the software development process more reliable and help keep code from being unmaintainable disasters. So i find it interesting to see why inspires people to write tests, and why they give up on them.&lt;/p&gt; &lt;p&gt;Recently i had a very similar conversation with two very different developers, one i&#8217;ll call TestFail and the other i&#8217;ll call TestHeavy.&lt;/p&gt; &lt;blockquote&gt;&lt;b&gt;Rabble:&lt;/b&gt; &#8220;I see there are tests on this project, but they don&#8217;t seem to pass anymore.&#8221;&lt;br /&gt; &lt;b&gt;TestFail:&lt;/b&gt; &#8220;Yes, I was writing tests but then things got busy and I couldn&#8217;t keep them up. The tests feel out of sync with the application 6 months ago. I was the only developer on the project and i just couldn&#8217;t keep up the tests and getting releases out the door.&#8221;&lt;/blockquote&gt; &lt;p&gt;Then i had another conversation with a different developer on the same subject.&lt;/p&gt; &lt;blockquote&gt;&lt;b&gt;Rabble:&lt;/b&gt; &#8220;I see there are a lot of tests for this project.&#8221;&lt;br /&gt; &lt;b&gt;TestHeavy:&lt;/b&gt; &#8220;Yes. The thing is when a project gets really pressured for time it&#8217;s the tests which make it possible to add features and keep moving forward. Normally I just develop on my own and don&#8217;t tend to work with other developers on projects. I found having tests means i can keep getting releases out the door.&#8221;&lt;/blockquote&gt; &lt;p&gt;In both cases i&#8217;m paraphrasing from memory, but the thing which struck me is that two smart developers used the same two reasons to come up with totally different conclusions around testing. The two principal points are, i&#8217;m working on my own, and there is heavy time pressure on releases.&lt;/p&gt; &lt;p&gt;The code bases in question, i&#8217;ll keep this all anonymous to respect privacy, are also really different. First off, the applications do totally different things, but it&#8217;s enough to say that they are both fairly complicated web applications built in rails.&lt;/p&gt; &lt;p&gt;TestFail&#8217;s application has 44075 lines of application code and 778 lines of tests. Over the last year the code base has grown by over %50. On the other hand, TestHeavy&#8217;s code base is 4014 lines of application code and 4802 lines of tests (technically specs as it uses rspec). TestHeavy&#8217;s code base is younger, but over the last 6 months it&#8217;s only added a couple hundred lines of new code. Many new features have been added, but the size of the application has stated more or less the same.&lt;/p&gt; &lt;p&gt;While i clearly prefer TestHeavy&#8217;s approach, what puzzles me is the path taken by TestFail. There are many interesting things to be learned by watching the techniques of an effective test driven developer, but that&#8217;s kind of an easy problem. Just watch what they do and document it.&lt;/p&gt; &lt;p&gt;Harder is to understand why somebody fails. When somebody starts writing tests but finds they aren&#8217;t a useful part of their software development practice. It could be considered the &#8216;falling off the wagon&#8217; problem. Really to me it&#8217;s a question of why is testing not the path of least resistance. What needs to happen for a developer to internalize testing.&lt;/p&gt; &lt;p&gt;If tests are written, and they are relevant to the the functionality of the application, the code base stays smaller, faster, and is more maintainable. But telling people that it&#8217;s a good idea to write tests, even getting them started and using tests isn&#8217;t enough. Figuring how to help people continue is even more important. I suspect that a large part of the problem is that people partially start using tests, but they don&#8217;t ever get a development environment which is setup to encourage testing. It&#8217;s painful and difficult as opposed to making debugging easier and development faster.&lt;/p&gt; &lt;p&gt;Does anybody have experience with trying and failing to stick with testing. Why was it?&lt;/p&gt;</content>

by rabble at April 25, 2008 08:00 PM

April 23, 2008

Eugene

Amateur Hour Over At TechCrunch?

MichaelArrington's recent trashing of BlaineCook is one of the most egregious pieces of crap I've ever read. Here's a guy who wouldn't know code from Sanskrit passing technical judgement on one of the most stellar technical people I know based on the following "arguments":    (MXY)

Twitter had scaling problems because it was successful beyond anyone's imagination. Twitter hired additional people because, well, that's what you do when you're dealing with success. If you're going to criticize someone's technical skill, do it based on facts, not on irresponsible musings. And there's never any excuse to trash a person's character like that.    (MY2)

I would be thanking my lucky stars to have Blaine as my Chief Architect, my Chief Technical Officer, or just on my team period. He's a great talent and an even better human being, and companies will be lining up to get him now that he's moving on.    (MY3)

by Eugene Eric Kim at April 23, 2008 06:04 PM

April 14, 2008

Evan

Building flex 3 (flash) swc libraries on mac os x with ant and flex builder 3

&lt;p&gt; I strongly believe in learning new languages and platforms. While i&#8217;m super happy with the &lt;a href='http://ruby-lang.org'&gt;ruby&lt;/a&gt; / &lt;a href='http://rubyonrails.org'&gt;rails&lt;/a&gt; / &lt;a href='http://www.merbivore.com/'&gt;merb&lt;/a&gt; world, I know it has it&#8217;s limits. Most of the time when i look farther afield i think of hacking on lua, erlang, or smalltalk&#8230; But recently i had an app idea which struck me as something which really was a good fit for &lt;a href='http://www.adobe.com/products/air/'&gt;Air&lt;/a&gt;. Adobe&#8217;s version of Flash to run desktop applications. Let me say at first I though Air was stupid, but over time i&#8217;ve come to realize that for some applications, it makes lots of sense. It&#8217;s similar to my thinking Flash was stupid until it &lt;a href='http://anarchogeek.com/articles/2006/06/01/video-sites-indymedia-and-the-future-of-non-linear-television'&gt;changed the world of online video&lt;/a&gt;, and ActionScript was some stupid director derived toy language until I realized that these days it&#8217;s &lt;span class='caps'&gt;EMCA&lt;/span&gt; script, basically the same damned thing as Javascript. &lt;/p&gt;&lt;p&gt; So i set out on the path of building an Air app. I asked my old buddy, &lt;a href='http://dom.net'&gt;Dom&lt;/a&gt; and he said there were two &lt;span class='caps'&gt;IDE&lt;/span&gt;&#8217;s for Flex development, &lt;a href='http://www.adobe.com/products/flex/'&gt;flex&lt;/a&gt; is the updated version of flash which is more programming like vs Director scripting like. Flex draws on the java world&#8217;s traditions more than the scripting world, a sin may be forgivable if i am able to build this cool app i&#8217;ve thought up. For Flex there are two &lt;span class='caps'&gt;IDE&lt;/span&gt;&#8217;s &lt;a href='http://www.aptana.com/studio'&gt;Apatna &lt;/a&gt; (free and &#8216;professional&#8217; edition) and Adobe&#8217;s own &lt;a href='http://www.adobe.com/go/flex_trial'&gt;Flex Builder 3&lt;/a&gt; which is payware, but you get a 90 free trial to play with. The core is actually free, the &lt;span class='caps'&gt;SDK&lt;/span&gt; to build flex apps and it comes with no &lt;span class='caps'&gt;IDE&lt;/span&gt;, but just command line tools. &lt;/p&gt;&lt;p&gt; Flex draws on Java, there are tools like &lt;a href='http://ant.apache.org/'&gt;ant&lt;/a&gt; which are used for all the build processes. Really the &lt;span class='caps'&gt;IDE&lt;/span&gt;&#8217;s are both based on customized versions of eclipse. I&#8217;m not a fan of &lt;span class='caps'&gt;IDE&lt;/span&gt;&#8217;s they seem to be needed when the development processes has gotten to complicated to fit inside your head and try and make everything point and click. Silliness. Flex can use html to render an interface, but it also has it&#8217;s own proprietary xml for laying out interface elements. It creates a dom like thing, which you can attach action script events to&#8230; Once you get over how different it is from real web development, at some level it&#8217;s the same damned thing. It&#8217;s worth stating, that you &lt;a href='http://www.adobe.com/accessibility/index.html'&gt;&lt;b&gt;can&lt;/b&gt;&lt;/a&gt; make flash as standards compliant, open, accessible, etc as html and unobtrusive javascript, but nobody seems to actually do it. Just yesterday i was noticing that yahoo map&#8217;s flash app wouldn&#8217;t let me paste in an address. Just like rails and django encourage you to do the right thing by default, flash defaults to clunky custom interface elements with broken accessibility. &lt;/p&gt;&lt;p&gt; Anyway, back to what i was saying. How to make this stuff work. There are it seems a lot of people with &lt;a href='http://weblogs.macromedia.com/mxna/index.cfm?query=bySmartCategory&#38;smartCategoryId=4&#38;smartCategoryName=Flash&#38;smartCategoryKey=D03946CE-BE57-8C18-7F13A6688166DAA8'&gt;flash / flex development blogs&lt;/a&gt; which is useful, but on the whole i&#8217;ve been very unimpressed with the documentation. There&#8217;s a &lt;span class='caps'&gt;HUGE&lt;/span&gt; amount about how to do various UI widget things, and very little about toolsmithing, libraries, building out flex as a platform. &lt;/p&gt;&lt;p&gt; The thing is, i know how a rails app works, how php plays with apache and a load balancer. I don&#8217;t know how these flex apps come together. It found lots of tutorials on building toy apps, but not a one ever mentioned using a library you find online and incorporating it in to your application. I suspect it&#8217;s because the open source tradition is pretty week in the flash world. Just like in VB and Java, because you pay for the &lt;span class='caps'&gt;IDE&lt;/span&gt;, it creates a culture of pay to play. It stands in stark contrast to the scripting world of Perl, &lt;span class='caps'&gt;PHP&lt;/span&gt;, Python, and Ruby. In the scripting world we build libraries for our own uses, then release them for the community to use and help maintain. The only libraries i&#8217;ve found to be released so far in the flex world, come from Adobe employees themselves. Clearly it&#8217;s a failure of community that there is repository of open source libraries like &lt;a href='http://search.cpan.org'&gt;&lt;span class='caps'&gt;CPAN&lt;/span&gt;&lt;/a&gt;, &lt;a href='http://www.gemtacular.com'&gt;Ruby Gems&lt;/a&gt;, &lt;a href='http://pear.php.net/'&gt;&lt;span class='caps'&gt;PEAR&lt;/span&gt;&lt;/a&gt;, and the &lt;a href='http://pypi.python.org/pypi'&gt;Python Package Index&lt;/a&gt;. What the adobe does have is &lt;a href='http://www.riaforge.org/'&gt;&lt;span class='caps'&gt;RIA&lt;/span&gt; Forge&lt;/a&gt;, as far as i can tell &lt;a href='http://en.wikipedia.org/wiki/Rich_Internet_application'&gt;&lt;span class='caps'&gt;RIA&lt;/span&gt;&lt;/a&gt; is some term Macrodobe made up. The thing is, &lt;span class='caps'&gt;RIA&lt;/span&gt; forge is just a directory linking to libraries around the web, kind of like &lt;a href='http://raa.ruby-lang.org/'&gt;&lt;span class='caps'&gt;RAA&lt;/span&gt;&lt;/a&gt;. It has no build process, no clearly defined way in which libraries are included in your larger application. It solves the, how do i find what&#8217;s out there problem, but not really the how do i easily include it in to what i&#8217;m building. &lt;/p&gt;&lt;p&gt; Which brings me to the whole reason i wrote this blog post. I spent the last day or two trying to figure out what to do with libraries like these: &lt;a href='http://code.google.com/p/as3corelib/'&gt;as3corelib&lt;/a&gt; and &lt;a href='http://code.google.com/p/as3awss3lib/'&gt;as3awss3lib&lt;/a&gt;. They are the core action script 3 libraries for things like md5 hashing, json serialization, and general string, date, and time functionality. The second one is action script 3 library for working with amazon web services. Pretty useful and straight forward stuff. Don&#8217;t ask my why the as3corelib isn&#8217;t just included for use everywhere all the time, it&#8217;s an extreme case of &lt;a href='http://www.python.org/about/'&gt;batteries not included&lt;/a&gt;. In ruby i&#8217;d run &#8216;sudo gem install aws-s3&#8217; and i&#8217;d magically get the libraries i need. There are pretty straight forward alternatives php, python, and perl. &lt;/p&gt;&lt;p&gt; But these libraries aren&#8217;t distributed as binaries, packages, nor anything easily installable. What do you do get is a note saying: &#8220;There is currently no zip archive available. Please check the code out using subversion. &#8221; That&#8217;s pretty much it. When you do check out the svn repo you get this:&lt;/p&gt; &lt;pre&gt; bas1:~/code/as3awss3lib-read-only rabble$ tree . . `-- src `-- com `-- adobe `-- webapis `-- awss3 |-- AWSS3.as |-- AWSS3Event.as |-- Bucket.as `-- S3Object.as 5 directories, 4 files&lt;/pre&gt; &lt;p&gt; For files, in a nested set of directories which seems pretty straight forward. I want to be able to access these files from my app, so i simply did the obvious thing, from a scripting background, copied the whole com dir and children over to my lib directory in the app i&#8217;m building. Needless to say that didn&#8217;t work. I tried moving around the files to various other directories and that didn&#8217;t work either. I read everything I could find in the documentation and on various community created sites, dead ends. I tried asking in the #flex irc channel, nobody seemed to even understand my question. I tried pinging friends who work on flash stuff at Adobe as well, i got blank stares and silence. &lt;/p&gt;&lt;p&gt; What was going on here? Clearly somebody at Adobe had build this library, clearly it was intended to be used. No where did i find any documentation on how to build these things. The as3awss3lib had more files than as3awss3lib, but still there was no clear path as to what to do with it. Adobe has spent millions of dollars on documentation, help, blogs, building libraries, and trying to create a community around their platform, and I couldn&#8217;t figure out how to use a simple library to add to my code? &lt;/p&gt;&lt;p&gt; I think a lot of it comes down to assumptions. People in flash/flex are mostly focused on user facing eye candy and not on the underlying libraries. There isn&#8217;t a lot of discussion about the libraries or the work which goes in to them. Many apps are build and left running as they are. They aren&#8217;t things which are maintained and run over time with updates. &lt;/p&gt;&lt;p&gt; Eventually i tracked down what i needed to do. It is assumed that although the repositories are called libraries, the thing you want to do is compile them in to &lt;a href='http://livedocs.adobe.com/flex/3/html/help.html?content=building_overview_5.html'&gt;swc files&lt;/a&gt;. You can&#8217;t just include other people&#8217;s code as libraries in to your own code tree, you&#8217;ve got to compile them. These compiled libraries and &#8216;assets&#8217; (i guess you can have a &#8216;library&#8217; of non-code things like images) are called swc files. These files need to be compiled and included in your application, before and separate from the build process for your own code. Again this is a little java like. Not necessarily wrong, but quite different from how most dynamic languages work. ActionScript &lt;b&gt;is&lt;/b&gt; a dynamic language, somebody at Adobe clearly fell in love with java as the way enterprise professionals do things, and added some clunky extra steps to the process. &lt;/p&gt;&lt;p&gt; So now that we know that you can&#8217;t just include code in the lib directory of your app and have it be available to your app at run time. This is a big leap. It&#8217;s part of why i&#8217;ve found nobody who understood my questions. Once i made the leap then it was pretty easy to figure out that i needed to use ant to build the app i tried running ant and got errors. A command line utility and errors, that&#8217;s something i can debug! To run ant you simply cd to the build directory and type ant. &lt;/p&gt; &lt;pre&gt; bas1:~/code/as3corelib-read-only/build rabble$ ant Buildfile: build.xml properties: lib: BUILD FAILED /Users/rabble/code/as3corelib-read-only/build/build.xml:63: Execute failed: java.io.IOException: C:/Program Files/Adobe/Flex Builder 2 Plug-in/Flex SDK 2/bin/compc.exe: not found Total time: 0 seconds &lt;/pre&gt; &lt;p&gt; This brings me to my other issue which i find so surreal about the Flash / Flex / Adobe world. It&#8217;s a windows world, everybody else is an after thought. It&#8217;s full of arcane paths, and executables have their own funny little suffixes so that the OS can figure out that they are executable. In the unix world, which includes linux, bsd, cygwin on windows, and of course mac os x, there are standard conventions for figuring out the paths to libraries, executables, etc&#8230; &lt;/p&gt;&lt;p&gt; Ant didn&#8217;t seem to like spaces in file names so i fixed that, but then there was still a big problem. &lt;/p&gt; &lt;pre&gt; ## Change this: # The location of the Flex 2 SDK on your sytem. flex2sdk.bin.dir = C:/Program Files/Adobe/Flex Builder 2 Plug-in/Flex SDK 2/bin flex2sdk.lib.dir = C:/Program Files/Adobe/Flex Builder 2 Plug-in/Flex SDK 2/frameworks/libs ## To this: # The location of the Flex 2 SDK on your sytem. flex2sdk.bin.dir = /Applications/Adobe_Flex_Builder_3/sdks/3.0.0/bin flex2sdk.lib.dir = /Applications/Adobe_Flex_Builder_3/sdks/3.0.0/lib &lt;/pre&gt; &lt;p&gt; And and now ant gets a little farther down the path of working. &lt;/p&gt;&lt;p&gt; &lt;pre&gt;bas1:~/code/as3corelib-read-only/build rabble$ ant Buildfile: build.xml properties: lib: [exec] /Applications/Adobe_Flex_Builder_3/sdks/3.0.0/