<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ronin coder &#187; tech</title>
	<atom:link href="http://rcoder.net/content/tag/tech/feed" rel="self" type="application/rss+xml" />
	<link>http://rcoder.net</link>
	<description>Code, food, pinball, beer, and bikes. It&#039;s hard living in a place this awesome.</description>
	<lastBuildDate>Mon, 26 Jul 2010 20:30:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Tale of Two Conferences</title>
		<link>http://rcoder.net/content/a-tale-of-two-conferences</link>
		<comments>http://rcoder.net/content/a-tale-of-two-conferences#comments</comments>
		<pubDate>Mon, 26 Jul 2010 20:30:50 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[osbridge]]></category>
		<category><![CDATA[oscon]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=453</guid>
		<description><![CDATA[This summer, I attended (and gave presentations at) two conferences here in Portland: Open Source Bridge and OSCON. Broadly, the subject matter and target audience for these two events are similar (web developers, open source programmers, sysadmins, and mobile developers) but their approach, culture, and (for lack of a better word) &#8220;personalities&#8221; are quite different.
Overall, [...]]]></description>
			<content:encoded><![CDATA[<p>This summer, I attended (and gave presentations at) two conferences here in Portland: <a href="http://opensourcebridge.org/">Open Source Bridge</a> and <a href="http://oscon.com/">OSCON</a>. Broadly, the subject matter and target audience for these two events are similar (web developers, open source programmers, sysadmins, and mobile developers) but their approach, culture, and (for lack of a better word) &#8220;personalities&#8221; are quite different.</p>
<p>Overall, I think that OSBridge more effectively captured the spirit of the community from which it springs. The lack of the usual sponsored keynotes, expo hall stuffed with vendors, and &#8220;big shot&#8221; community leaders made the software itself, and the community building it, the main attraction. OSCON, by contrast, is much more focused on <em>products</em> in the OSS space, and talks are often a sales presentation wrapped in a technical overview.</p>
<p>On the downside, the quality of talks at OSBridge was highly variable. With fewer proposals to choose from, it was inevitable that some weaker or less-experienced speakers would end up on the program. (Hell, they even let <em>me</em> speak.) OSCON attracts a pretty stellar level of presentation, with rare exceptions (again, yours truly) and has an air of legitimacy that helps convince employers and sponsors to support the event.</p>
<p>I also don&#8217;t think that the commercial focus of OSCON is inherently a <em>bad</em> thing. I for one am happy to get paid to work with and on open source software, and I don&#8217;t begrudge those attempting to derive their livelihood entirely from it a few minutes to pitch their wares. If anything, I think the Portland tech community should be <em>more</em> focused on commercializing their projects, the better to sustain and improve the pool of talented developers who choose to live and work here.</p>
<p>Unfortunately, OSCON has two critical flaws. First and foremost, it&#8217;s too expensive. While the catered lunches, free coffee, and after-hours parties are all lovely in their own right, the total cost of the conference (around $1200 for the normal sessions only, and closer to $1800 with a full set of tutorials, plus airfare and lodging) puts it out of reach for many developers who simply want to get together and hack and share tips with their peers.</p>
<p>Secondly, many of the &#8220;keynote&#8221; presentations are simply apologia from proprietary OS and platform vendors, and really shouldn&#8217;t have a place in a conference focused on open source. I don&#8217;t mind hearing a pitch from a talented speaker, but market-speak-centric presentations on &#8220;cloud computing&#8221; and &#8220;open standards&#8221; are anathema to the DIY spirit of a true hacker&#8217;s conference.</p>
<p>Sadly, addressing both of these issues concurrently is a serious challenge, as I can only presume that Microsoft, et. al., paid handsomely for the opportunity to present themselves. Other events manage to keep costs down, however, so I assume there&#8217;s some room for cost savings that wouldn&#8217;t require moving the event to a spare O&#8217;Reilly warehouse and catering it entirely with Folger&#8217;s coffee and stale PB&#038;J sandwiches.</p>
<p>Personally, I find I have more fun (and often learn more) at smaller, more focused events like JSConf, Ruby Future, DjangoCon. Emerging Languages Camp was another perfect example of this &#8212; by stripping down the focus of the event, the organizers and speakers crammed an incredible amount of high-quality content into two days. </p>
<p>I find myself wondering if OSCON might not work better if it were split into an &#8220;executive&#8221; event focused on platform and service offerings, and the &#8220;hacker&#8221; gathering which narrowed in on code, tooling, and collaboration. I still very much enjoy getting to see community leaders like Rob Pike and Larry Wall speak, and will happily continue attending OSCON if I can do so safe in the knowledge that I don&#8217;t be inundated with salesdroids throughout the week.</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/a-tale-of-two-conferences/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Never do today what you can put off &#8217;til tomorrow</title>
		<link>http://rcoder.net/content/never-do-today</link>
		<comments>http://rcoder.net/content/never-do-today#comments</comments>
		<pubDate>Fri, 06 Mar 2009 00:58:18 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=352</guid>
		<description><![CDATA[In many ways, this is a golden age for web developers: we have a bunch of good, high-level frameworks for writing apps in highly-productive dynamic languages and a solid corpus of best practices for testing, service API design, and data serialization. We don&#8217;t have to deal with dog-slow CGI scripts, complicated J2EE stacks, or proprietary [...]]]></description>
			<content:encoded><![CDATA[<p>In many ways, this is a golden age for web developers: we have a bunch of <a href="http://rubyonrails.org/">good</a>, <a href="http://github.com/sinatra/sinatra">high-level</a> <a href="http://www.djangoproject.com/">frameworks</a> for writing apps in <a href="http://ruby-lang.org/">highly-productive</a> <a href="http://python.org/">dynamic</a> <a href="http://php.net/">languages</a> and a solid corpus of best practices for <a href="http://rspec.info/">testing</a>, service <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">API design</a>, and <a href="http://www.json.org/">data serialization</a>. We don&#8217;t have to deal with dog-slow CGI scripts, complicated J2EE stacks, or proprietary ColdFusion code that only runs atop expensive application servers.</p>
<p>Unfortunately, all is not wine and roses (or scotch and bacon, or whatever). The major dynamic webapp frameworks push you by convention into doing the bulk of your application work syncronously in the request-processing loop, rather than asynchronously in a background thread. All of the accumulated wisdom about building responsive graphical user interfaces gets thrown out and re-discovered by each framework&#8217;s user community, resulting in a <a href="http://github.com/purzelrakete/workling/tree/master">multitude</a> <a href="http://backgroundrb.rubyforge.org/">of</a> <a href="http://codeforpeople.rubyforge.org/svn/bj/trunk/README">solutions</a> for the basic problem of pushing work into a queue and dealing with it later.</p>
<p>As the fine folks at Twitter so famously <a href="http://www.slideshare.net/Blaine/scaling-twitter">discovered</a>, synchronous processing puts a hard upper limit on how much (and how quickly) you can scale an application. Even at the much more modest loads my <a href="http://kenai.com/">current project</a> at work receives, there are quite a few performance problems that can&#8217;t be solved by simply throwing more stuff in memcached and hoping for the best.</p>
<p><a href="http://www.paperplanes.de/archives/2008/10/6/merbs_run_later_coming_to_a/">Some</a> <a href="http://blog.urbantastic.com/post/81336210/tech-tuesday-the-fiddly-bits">folks</a> are starting to catch on, and bake asynchronous processing into their frameworks by default, but the solutions tend to either be limited to very particular deployment and application models, or <a href="http://yaws.hyber.org/">esoteric</a> in the extreme. Meanwhile, desktop application authors continue to politely chuckle at all of our bumbling, and old-skool enterprise developers look at our hackish background-worker implementations and (rightly) consider them to be toys compared to the classic &#8220;big boy&#8221; <a href="http://www.sun.com/software/products/message_queue/index.xml">message</a> <a href="http://www-01.ibm.com/software/integration/wmq/">queueing</a> <a href="http://www.microsoft.com/windowsserver2003/technologies/msmq/default.mspx">solutions</a>, or even the newer <a href="http://www.rabbitmq.com/">open source</a> <a href="http://activemq.apache.org/">alternatives.</a></p>
<p>The next generation of web application frameworks should be designed around the idea that work is done asynchronously <em>by default</em>, with a fallback to syncronous jobs only in cases where a user needs to see the result immediately. Since applications also need to scale across a potentially large and heterogenous set of CPUs and servers, those delayed jobs also may not be running in the same memory space as the web application itself. That means machine and language-agnostic serialization, <a href="http://incubator.apache.org/thrift/">fast network IPC</a>, and callback and event-driven programming.</p>
<p>Developers who grok these concepts now will have a leg up on the competition when building tomorrow&#8217;s crop of web applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/never-do-today/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Quick status update</title>
		<link>http://rcoder.net/content/quick-status-update</link>
		<comments>http://rcoder.net/content/quick-status-update#comments</comments>
		<pubDate>Tue, 16 Dec 2008 00:07:29 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[short]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=328</guid>
		<description><![CDATA[It&#8217;s been two weeks since I posted, which is a bit embarassing. I&#8217;ve been pretty busy with the new job, though, and generally sticking to Twitter to get the word out about how I&#8217;m doing.
The quick version is: the Project Kenai team is turning out to be just about as good a group to work [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been two weeks since I posted, which is a bit embarassing. I&#8217;ve been pretty busy with the new job, though, and generally sticking to Twitter to get the word out about how I&#8217;m doing.</p>
<p>The quick version is: the Project Kenai team is turning out to be just about as good a group to work with as I could hope for. We&#8217;ve got enough to do to keep things from getting boring, but it&#8217;s the <em>good</em> kind of work: interesting + challenging, but nothing that feels like a death march. Plus, every time I fire up an editor to look at a new piece of code and see the GPL license in the header comments, I feel a little better about the company as a whole. Being somewhere that open source is the default (rather than a special case for which you have to lobby) is a pretty cool feeling for a OSS nerd like me.</p>
<p>Otherwise, things are pretty normal. As my family and friends all give in to the gravitational pull of SE Portland, I also find that my social life is less and less about going out, and more about staying in for social meals + conversation, which suits me just fine, especially in the winter.</p>
<p>That&#8217;s it for now. Expect more on the technical side of the work I&#8217;m doing after Christmas, when I have some time to write up my impressions of doing JRuby on Rails, and working in a heterogenous Solaris/Linux/OS X environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/quick-status-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>24 hours of Android</title>
		<link>http://rcoder.net/content/24-hours-of-android</link>
		<comments>http://rcoder.net/content/24-hours-of-android#comments</comments>
		<pubDate>Mon, 10 Nov 2008 18:47:54 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=303</guid>
		<description><![CDATA[After many frustrating delays, I finally managed to get my new G1 handset up and running on my T-Mobile account. It is, in short, a quirky but highly-promising device, and unless some major new deficiency rears its head in the coming days, I will count myself a happy Android user for some time to come.
I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://twitter.com/rcoder/status/996966167">many</a> <a href="http://twitter.com/rcoder/status/997664441">frustrating</a> <a href="http://twitter.com/rcoder/status/997693009">delays</a>, I finally managed to get my new G1 handset up and running on my T-Mobile account. It is, in short, a quirky but highly-promising device, and unless some major new deficiency rears its head in the coming days, I will count myself a happy Android user for some time to come.</p>
<p>I&#8217;ve been a BlackBerry user for the last year, and have also spent a decent amount of time messing with friends&#8217; iPhones since the original 1st-gen release. In terms of polish and consistency, the Android UI lies somewhere between these two poles: you need to do a bit more context-switching in normal app operation than is required on the iPhone, but 3rd-party apps aren&#8217;t the unpredictable crapfest they are on the CrackBerry.</p>
<p>Performance is also somewhere between these two &#8212; while the entire system is quite stable, and response to hardware events (button presses, incoming calls, etc.) is good, some of the apps could obviously benefit from further performance optimization, as they tend to get bogged down on screens with a lot of redraw, or fail to offload as much processing into background tasks as they should to maintain UI responsiveness.</p>
<p>The keyboard is an almost-unmixed blessing. I&#8217;ve become a bit too accustomed to the layout of my BB Curve, so I&#8217;m not quite back to full &#8220;touch typing&#8221; mode on the G1, but I&#8217;m already far more proficient and confident in my typing than I&#8217;ve been able to get on the iPhone touchpad. Having the ability to close the keyboard and use the entire screen for text, images, or video is a definite win over the split-face Blackberry layout, as I&#8217;m one of those masochists who actually tends to read long-format text (blog posts, Wikipedia entries, and email) on my mobile device on a regular basis.</p>
<p>The Android platform application ecosystem is obviously far less mature and complete than the iPhone App Store. While I have a decent Twitter app (<a href="http://twidroid.com/">Twidroid</a>) and SSH client (<a href="http://code.google.com/p/connectbot/">ConnectBot</a>), there aren&#8217;t many compelling games or productivity apps available yet. Of course, I&#8217;m a coder, so there&#8217;s one obvious solution for this: write the damn things myself. Once things settle down a bit with the new job, I&#8217;m hoping to have some time to do just that.</p>
<p>Overall, though, I think the most interesting thing about Android is not what it offers in terms of competition for Apple, Microsoft, and Nokia (though that is a compelling argument in and of itself). What I see foreshadowed when poking around in this system is an absolutely <em>kick-ass</em> netbook or non-real-time embedded operating system. Given the performance Android is able to maintain on the ARM-based G1 hardware, I think it would <em>scream</em> on an Atom-based ultraportable like the ones Wind and Asus are manufacturing these days, especially if both a touchscreen and usably-large QWERTY keyboard were available on the system.</p>
<p>Android may not do much to stop Apple&#8217;s ascendence to smartphone domination, but it does offer a glimpse of how a truly usable, efficient Linux desktop environment might work.</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/24-hours-of-android/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Where the rubber meets the road</title>
		<link>http://rcoder.net/content/where-the-rubber-meets-the-road</link>
		<comments>http://rcoder.net/content/where-the-rubber-meets-the-road#comments</comments>
		<pubDate>Thu, 06 Nov 2008 18:59:17 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[politics]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=299</guid>
		<description><![CDATA[The election is over. We (meaning the progressive youth vote) won. Time to lean back, relax, and enjoy the victory, right?
Wrong.
Now that we&#8217;ve elected Obama, increased the Democratic majority in the House and Senate, and (in Oregon, at least) added a bunch of smart, young, enthusiastic new legislators, it is incumbent upon the electorate to [...]]]></description>
			<content:encoded><![CDATA[<p>The election is over. We (meaning the progressive youth vote) won. Time to lean back, relax, and enjoy the victory, right?</p>
<p><em>Wrong.</em></p>
<p>Now that we&#8217;ve elected Obama, increased the Democratic majority in the House and Senate, and (in Oregon, at least) added a bunch of smart, young, enthusiastic new legislators, it is incumbent upon the electorate to help set the policy agenda. We can&#8217;t afford to let our current momentum die down one iota if we want to insure that the promises of the campaign season are actually fulfilled.</p>
<p>For myself, that means moving into a &#8220;citizen lobbyist&#8221; role. I&#8217;ve started the groundwork for that (along with a few of my like-minded friends) with <a href="http://policyinmotion.org/">Policy in Motion</a>, but we haven&#8217;t yet completely figured out how to sip from the massive firehose that is an active legislative body.</p>
<p>I definitely believe that having one party control most major offices + both legislative bodies in the state means that transparency and access to information will be especially critical. Working towards open government, using both technological and volunteer-driven tools, is going to be a huge part of that. (And it just so happens to be part of Obama&#8217;s <a href="http://change.gov/agenda/technology/#transparent-democracy">transitional agenda</a>, as well.)</p>
<p>Regardless of the issues we choose, our government is not magically going to serve us well, simply because we voted in the right column on Nov. 4th.</p>
<p><b>Update:</b> Digby seems to <a href="http://digbysblog.blogspot.com/2008/11/making-him-do-it-by-digby-i-was-reading.html">agree</a>, at least in principal.</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/where-the-rubber-meets-the-road/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erlang warts</title>
		<link>http://rcoder.net/content/erlang-warts</link>
		<comments>http://rcoder.net/content/erlang-warts#comments</comments>
		<pubDate>Thu, 04 Sep 2008 00:59:56 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=234</guid>
		<description><![CDATA[After more than a year of complaining about the syntax, I&#8217;m forcing myself to finally sit down and learn some Erlang. Between CouchDB, EjabberD, and all the other interesting projects people are implementing in Erlang, I would be remiss as a systems engineer to not at least pick up the basics.
Unfortunately, I&#8217;m still chafing a [...]]]></description>
			<content:encoded><![CDATA[<p>After more than a year of complaining about the syntax, I&#8217;m forcing myself to finally sit down and learn some <a href="http://erlang.org">Erlang</a>. Between <a href="http://couchdb.org">CouchDB</a>, <a href="http://ejabberd.im">EjabberD</a>, and all the <a href="http://tsung.erlang-projects.org/">other interesting projects</a> people are implementing in Erlang, I would be remiss as a systems engineer to not at least pick up the basics.</p>
<p>Unfortunately, I&#8217;m still chafing a bit at a number of little annoyances:</p>
<ul>
<li>The REPL is basically crippled since you can&#8217;t define functions. Being forced to think in terms of compilation units (rather than simple expressions) pisses me off.</li>
<li>Why oh why do I need to explicitly list the module name in my file header if I&#8217;m also bound by the restriction that filenames and module names have to be the same? The old Java package/file path ties were always a big annoyance when I was stuck in that environment.</li>
<li>For a functional language, there&#8217;s an awful lot of syntactic vinegar for basic operations like <code>map</code> and <code>fold</code>. I appreciate having a concise syntax for lambdas, but writing <code>fun my_function/2</code> smells a bit.</li>
<li>Records (as syntactic sugar for tuples) are a poor substitute for a real type system. Both tutorial and real-world Erlang code I&#8217;ve seen is basically full of tagged tuples, which means you get the verbosity of a strongly-typed language without any of the ability of real type checking to catch errors at compilation time.</li>
</ul>
<p>I want to stick with it long enough to find the real gems underneath all this noise. I mean, if I can sit through extended sessions reading and writing Perl, I should be able to find something to love about Erlang. Furthermore, most of the complaints I make above are inapplicable to mainstream languages &#8212; i.e., C and Java dont have an REPL or lambdas, and Ruby and Perl don&#8217;t have anything resembling a traditional compiler &#8212; not miraculously better.</p>
<p>I definitely think that learning a new language should make you feel a little bit uncomfortable. Unfortunately, right now Erlang leaves me feeling uncomfortable in all the wrong ways: I <em>understand</em> everything that&#8217;s going on with the language, and <em>just don&#8217;t like it</em>.</p>
<p>I&#8217;m going to keep plugging away for at least a little bit longer, though. Next up: reading the source to EJabberD to (hopefully) get a sense for idiomatic language use in a context where its unique features (lightweight concurrency + distributed computing) are a real advantage.</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/erlang-warts/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Thank you, Steven Frank</title>
		<link>http://rcoder.net/content/thank-you-steven-frank</link>
		<comments>http://rcoder.net/content/thank-you-steven-frank#comments</comments>
		<pubDate>Mon, 18 Aug 2008 21:58:51 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=227</guid>
		<description><![CDATA[For those who don&#8217;t already know, Steven Frank (a.k.a. stevenf on many sites) is a developer at Panic, Inc., a multiple-award-winning Mac software shop here in Portland. He (and his firm) are unapologetic Mac boosters, and have based their entire business around producing applications which appeal in large part to the aesthetic and functional preferences [...]]]></description>
			<content:encoded><![CDATA[<p>For those who don&#8217;t already know, <a href="http://stevenf.com/">Steven Frank</a> (a.k.a. stevenf on many sites) is a developer at <a href="http://www.panic.com/">Panic, Inc.</a>, a multiple-award-winning Mac software shop here in Portland. He (and his firm) are unapologetic Mac boosters, and have based their entire business around producing applications which appeal in large part to the aesthetic and functional preferences of the most die-hard Apple fans.</p>
<p>I&#8217;m unlikely to work as a proprietary desktop software developer any time soon, given that I haven&#8217;t tried to write a desktop GUI application in about five years, but I do appreciate the work that Panic puts into polishing their user experience, and have a great deal of respect for them as a development team. And so, it was extremely refreshing to me to see many of the fears and frustrations I&#8217;ve expressed about the iPhone/App Store platform lock-in as an outside <a href="http://stevenf.com/archive/on-the-app-store.php">being echoed</a> by someone who is working within that ecosystem.</p>
<p>One realization I had early on in my IT career was that almost any two firms could easily become competitors. Given the rate at which a competent team can develop most any class of application on the planet, and the generality of the platforms on which our code runs, it is entirely conceivable that your platform vendor of choice today (or your client buying your tools or OS) could become a direct competitor tomorrow. For that very reason, trusting the future of your business to the continuing benevolence of a vendor is a very risky decision.</p>
<p>Every developer working on applications for the iPhone/iTouch platform is in exactly that precarious position right now. Those innovative applications that drive sales of the platform could easily be incorporated into the next release of the OS, since Apple has more than enough resources to re-implement any 3rd-party app without breaking a sweat. (There is certainly precedent for this: just ask the developers of <a href="http://www.karelia.com/watson/">Watson</a> what it&#8217;s like to one-up Apple in the system utility space.) Even worse, truly disruptive applications that offer capabilities beyond Apple&#8217;s comfort zone (or that of one or more of their mobile network providers) could find themselves <a href="http://www.engadget.com/2008/08/01/netshare-iphone-tethering-app-reappears-in-the-app-store/">summarily dropped</a> from the App Store, effectively strangling any business the developer hoped to build around the product.</p>
<p>This is, to me at least, an unacceptable bargain, and I&#8217;m surprised that so many other developers seem to have no problem with the arrangement. (Have I mentioned how much I <a href="http://blogs.zdnet.com/mobile-gadgeteer/?p=676">can&#8217;t wait</a> for <a href="http://code.google.com/android/">Android</a>?)</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/thank-you-steven-frank/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Presumption</title>
		<link>http://rcoder.net/content/presumption</link>
		<comments>http://rcoder.net/content/presumption#comments</comments>
		<pubDate>Fri, 01 Aug 2008 17:29:34 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[short]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=166</guid>
		<description><![CDATA[From the Apple Podcast Producer Administration Guide:
Podcast Producer does to the production of podcasts what the assembly line did to automobile production.
ORLY?
]]></description>
			<content:encoded><![CDATA[<p>From the Apple Podcast Producer Administration Guide:</p>
<blockquote><p>Podcast Producer does to the production of podcasts what the assembly line did to automobile production.</p></blockquote>
<p>ORLY?</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/presumption/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distributed (useful) data</title>
		<link>http://rcoder.net/content/distributed-data</link>
		<comments>http://rcoder.net/content/distributed-data#comments</comments>
		<pubDate>Sat, 26 Jul 2008 19:53:24 +0000</pubDate>
		<dc:creator>lennon</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[long]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[vague]]></category>

		<guid isPermaLink="false">http://rcoder.net/?p=149</guid>
		<description><![CDATA[I think that the infrastructure for the next generation of interesting network-aware applications is being built right now, and that it&#8217;s going to change the way people think about data, collaboration, and connectivity.
What are these projects? Simple: the distributed storage and merging tools. The most successful example is probably Git, but a bunch of other interesting [...]]]></description>
			<content:encoded><![CDATA[<p>I think that the infrastructure for the next generation of interesting network-aware applications is being built right now, and that it&#8217;s going to change the way people think about data, collaboration, and connectivity.</p>
<p>What are these projects? Simple: the distributed storage and merging tools. The most successful example is probably <a href="http://git-scm.com/">Git</a>, but a bunch of other interesting related projects (<a href="http://hallettj.lighthouseapp.com/projects/13028/home">CloudRCS</a>, <a href="http://gears.google.com/">Google Gears</a>, <a href="http://syncwith.us/">Prophet</a>, etc.) are all exploring a similar space. Basically, the proposition is that, given the right kind of atomic update operations, data can be modified on a bunch of different nodes, and merges can happen asynchronously (if at all) when time, connectivity, or workflow permits it.</p>
<p>To explain why I think these tools are important, and where I think the opportunity exists for the next crop of interesting applications, let me offer examples from two different conferences I&#8217;ve attended in recent months.</p>
<p>First, an example of where distributed authoring tools succeeded: at <a href="http://rubyfringe.com/">RubyFringe</a>, almost every presentation which featured code included a <a href="http://github.com/">GitHub</a> link and invitation to fork the project and push back changes. In fact, one of the presenters introduced <a href="http://gist.github.com/">Gist</a>, a tool designed to allow even throw-away &#8220;<a href="http://pastie.org/">pasties</a>&#8221; of code to be version-controlled and shared using Git as a backend. </p>
<p>Anyone interested in checking out a copy of the code, making some tweaks, and pushing them back to the original author just needed a copy of Git. They didn&#8217;t have to do the work online, and didn&#8217;t even have to use GitHub if they didn&#8217;t want to, and their work would still be version-tracked and shareable with other developers.</p>
<p>In contrast, while at the <a href="http://nitle.org/index.php/nitle/the_institute/upcoming_events/2008/moodle_user_community_meeting/moodle_user_community_meeting_call_for_proposals">NITLE Moodle User Meeting</a> in Tacoma back in June, I struggled to share an outline for a presentation I made with my co-presenter. The hotel where the conference was happening had effectively useless &#8216;net access, so Google Docs and other online services were out of the question. We eventually just had to sit down next to each other the night before the talk in front of my laptop and edit the outline as plaintext, and then copy the file as a whole to his machine for conversion to Keynote slides.</p>
<p>Now we have a simple text file containing the outline, and a PDF generated from the Keynote slides, but no way to show the evolution of the presentation over the days of the conference, or to track changes for future adaptations of the material. Furthermore, if one of us wants to make changes and share with the other, we&#8217;re stuck with email attachments (or the glorified Web 2.0 FTP-clones like <a href="http://www.getdropbox.com/">Dropbox</a>) to keep up to date.</p>
<p>Programmers have figured out the value of distributed authoring, and understand the necessity for sane merging and conflict-resolution practices from long, painful experience. Knowledge workers in other fields have been using the &#8220;track changes&#8221; features in Word for just as long, but haven&#8217;t yet made the leap to fully-shared authoring. Even when they do, it tends to look more like a Wiki than an offline, sync-able tool like Git.</p>
<p>There&#8217;s a huge potential in this space for applications other than source code and other plaintext formats. Tabular data like spreadsheets, outline editors and presentation tools, and PIM and calendaring systems could all benefit from asynchronous, distributed authoring and merging. There&#8217;s some work being done at the OS level, (iSync/<a href="http://developer.apple.com/macosx/syncservices.html">SyncServices</a>, <a href="https://www.mesh.com/Welcome/Welcome.aspx">Live Mesh</a>, etc.) but I think that the really interesting stuff is going to happen out at the edge, amongst the startups and small app developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://rcoder.net/content/distributed-data/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
