<?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>Roblag</title>
	<atom:link href="http://blog.robla.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.robla.net</link>
	<description>Just like a diary, only without a way to dot the i's with hearts; robla, margl, and hazel's blog</description>
	<lastBuildDate>Thu, 08 Jul 2010 03:10:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>New gig: Wikimedia Foundation</title>
		<link>http://blog.robla.net/2010/new-gig-wikimedia-foundation/</link>
		<comments>http://blog.robla.net/2010/new-gig-wikimedia-foundation/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 03:10:02 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=245</guid>
		<description><![CDATA[As of last week, I&#8217;m officially an employee of the Wikimedia Foundation. Here&#8217;s the the official announcement of WMF hiring me. I&#8217;ve been working there as a contractor for the past couple of months, and it&#8217;s been a great experience so far. I&#8217;m working with a lot of really smart people that I stand to [...]]]></description>
				<content:encoded><![CDATA[<p>As of last week, I&#8217;m officially an employee of the Wikimedia Foundation.  Here&#8217;s the <a href="http://permalink.gmane.org/gmane.org.wikimedia.community.announce/17">the official announcement of WMF hiring me</a>.  I&#8217;ve been working there as a contractor for the past couple of months, and it&#8217;s been a great experience so far.  I&#8217;m working with a lot of really smart people that I stand to learn a great deal from.  I&#8217;m pretty used to being the &#8220;open source guy&#8221; at the companies I&#8217;ve worked at in the past, so it&#8217;s going to be an interesting twist to work somewhere where publishing the source code (and most everything else, for that matter) is just a given.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/new-gig-wikimedia-foundation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>On Diaspora</title>
		<link>http://blog.robla.net/2010/on-diaspora/</link>
		<comments>http://blog.robla.net/2010/on-diaspora/#comments</comments>
		<pubDate>Sun, 16 May 2010 20:23:17 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=229</guid>
		<description><![CDATA[There&#8217;s been a lot of hubbub about Facebook&#8217;s ongoing tone-deafness regarding privacy. As a result, there has also been a lot of hubbub about the Diaspora project, with both wildly optimistic projections of their success, as well as more skeptical assessments. I&#8217;m skeptical about Diaspora specifically, because it reminds me a lot of an effort [...]]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s been a lot of <a href="http://eu.techcrunch.com/2010/05/10/facebooks-byzantine-privacy-controls-produce-more-confusion/">hubbub about Facebook&#8217;s ongoing tone-deafness regarding privacy</a>.  As a result, there has also been a lot of hubbub about the <a href="http://www.joindiaspora.com/">Diaspora project</a>, with both <a href="http://www.nytimes.com/2010/05/12/nyregion/12about.html">wildly optimistic</a> projections of their success, as well as <a href="http://twitter.com/aviel/status/13960806410">more</a> <a href="http://blog.ginsudo.com/2010/05/11/the-nature-of-their-game/">skeptical</a> assessments.
<p />
<p>I&#8217;m skeptical about Diaspora specifically, because it reminds me a lot of an effort to take RealNetworks down a peg more than a decade ago.  In 1999, the <a href="http://web.archive.org/web/20000620191251/http://www.free-expression.org/">Free Expression Project</a> was started to &#8220;help people distribute their content to other people without being beholden to any corporation&#8221;.  A laudable goal, and one that earned them a <a href="http://news.cnet.com/RealNetworks-besieged-by-open-source-plans/2100-1023_3-224699.html">fawning writeup on CNet News</a>, which claimed that Real was under siege by these folks.  The project never seemed to make it much further than a website with a few diagrams, and nothing that came even close to challenging the streaming media hegemony we enjoyed at the time. (I was at Real from 1996-2005)
<p />
<p>However, that&#8217;s not really the whole story.  What the fawning press coverage indicated was that there were a lot of people who <i>wanted</i> Real to be taken down a peg or two.  I imagine that the CNet reporter was as skeptical as anyone about the ability of the Free Expression Project to deliver, but he wrote the story anyway because he knew that people would eat it up.  He knew that story would generate traffic because people would see his headline, think &#8220;Thank GOD!&#8221;, and click through to read the story.  He was probably right.
<p />
<p>It ultimately wasn&#8217;t a ragtag band of open source developers that toppled Real&#8217;s dominant position, but rather a one-two punch from Microsoft then Macromedia/Adobe.  Still, their job was made a lot easier by the prevailing mood.  When we <a href="http://www.nytimes.com/2002/07/22/technology/22REAL.html">tried to rally the open source community a few years later</a>, despite our success in landing deals with hardware vendors (which it <a href="https://helixcommunity.org/products/partner_spotlight">appears they are still successful with</a>), we didn&#8217;t get a lot of <a href="http://blog.robla.net/2008/hard-problem/">organic contribution</a>.  By then, MPlayer, GStreamer, Xine, VLC and other efforts were already underway, and contributors to those projects had little incentive to join forces with us at that point.  The developers on those projects thought: &#8220;we can do this better, and why would we want to help Real anyway?&#8221;
<p />
<p>Facebook has a pretty solid network lock-in going for them, so its not as though we&#8217;re about to witness a sudden collapse of their market position.  However, they&#8217;ve got a serious problem with their brand, and I wouldn&#8217;t be surprised if Zuckerberg is in complete denial about it, preferring to think about the privacy controversy as a storm that will blow over soon enough.  It&#8217;d be easy for the Facebook crew to believe that no one is going to be able to pull together all of the elements needed for head-to-head competition.  I&#8217;m betting that&#8217;s not how it plays out.  My guess is that someone like Twitter or Google figures out how to add just enough functionality that <a href="http://www.prospect.org/cs/articles?article=farewell_facebook">many more people feel comfortable giving up on Facebook</a>.  Moreover, if I were going into competition with Facebook, I think I&#8217;d try to turn their strength into a weakness.  For example, for many younger people, a network not overrun with parents, grandparents and extended relatives <a href="http://www.youtube.com/watch?v=o_QePidL750">might just be a selling point</a>.
<p>I&#8217;m not deleting my Facebook account anytime soon, but I know <a href="http://mediacommons.futureofthebook.org/content/cultivated-play-farmville">I don&#8217;t need everything Facebook currently offers</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/on-diaspora/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pronouncing Eyjafjallajökull</title>
		<link>http://blog.robla.net/2010/pronounce-iceland-volcano/</link>
		<comments>http://blog.robla.net/2010/pronounce-iceland-volcano/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 22:31:16 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=224</guid>
		<description><![CDATA[I got curious if there was a pronunciation on Wikipedia of &#8220;Eyjafjallajökull&#8221;, which of course there was. In the really helpful IPA alphabet, which is: &#8220;ˈɛɪjaˌfjatlaˌjœːkʏtl̥&#8221;. I got about halfway through deciphering this when I gave up. Fortunately, there&#8217;s a recording of a native speaker. Did you catch that? Me neither. Finally, looking on the [...]]]></description>
				<content:encoded><![CDATA[<p>I got curious if there was a pronunciation on Wikipedia of &#8220;Eyjafjallajökull&#8221;, which of course there was.  In the really helpful IPA alphabet, which is: &#8220;ˈɛɪjaˌfjatlaˌjœːkʏtl̥&#8221;.  I got about halfway through deciphering this when I gave up.</p>
<p>Fortunately, there&#8217;s a <a href="http://upload.wikimedia.org/wikipedia/commons/1/10/Eyjafjallaj%C3%B6kull.ogg">recording of a native speaker</a>.  Did you catch that?  Me neither.  Finally, looking on the talk page, there is <a href="http://en.wikipedia.org/wiki/Talk:Eyjafjallajökull#Right_sound_bite.3F_.2F_New_pronunciation.2C_please">a great discussion</a>.  One useful resource in that section is <a href="http://abcnews.go.com/GMA/video/pronounce-eyjafjallajokull-10392613">this clip from ABC News</a>.</p>
<p>So, here&#8217;s what I was able to ascertain is the best way to describe it in text.  You say: &#8220;AY-ya-fyot-lah-yoe-kdl&#8221; with a particular emphasis on the &#8220;AY-ya&#8221; part to distinguish it from all of the other silly fyot-lah-yoe-kdls (mountain glaciers) that they have a million of in Iceland.</p>
<p>According to the <a href="http://cityroom.blogs.nytimes.com/2010/04/16/iceland-volcano-spews-consonants-and-vowels/">New York Times blog</a>, if you&#8217;re a native English speaker, your best chance of saying this is to mumble &#8220;Hey ya forgot the yogurt&#8221;.  They&#8217;ve also got perhaps better text versions of how to say it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/pronounce-iceland-volcano/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Doing the conferency talky thing</title>
		<link>http://blog.robla.net/2010/doing-the-conferency-talky-thing/</link>
		<comments>http://blog.robla.net/2010/doing-the-conferency-talky-thing/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 23:01:59 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=201</guid>
		<description><![CDATA[I didn&#8217;t do much in the way of public speaking last year, but I&#8217;m starting to make up for it this year. Here&#8217;s a few things I&#8217;ve got coming up: April 13 &#8211; Lighting talk at the Seattle Django Users Group &#8211; this will be about jsonwidget, which is shaping up nicely. I&#8217;m toying with [...]]]></description>
				<content:encoded><![CDATA[<p><div id="attachment_204" class="wp-caption alignright" style="width: 310px"><a href="http://blog.robla.net/wp-content/uploads/2010/04/rob-hazel-2010-400x300px1.jpg"><img src="http://blog.robla.net/wp-content/uploads/2010/04/rob-hazel-2010-400x300px1-300x225.jpg" alt="" title="rob-hazel-2010-400x300px" width="300" height="225" class="size-medium wp-image-204" /></a><p class="wp-caption-text">That's me giving a lecture to my daughter about the importance of proper modularization in large scale development</p></div><br />
I didn&#8217;t do much in the way of public speaking last year, but I&#8217;m starting to make up for it this year.  Here&#8217;s a few things I&#8217;ve got coming up:</p>
<ul>
<li>April 13 &#8211; <a href="http://www.djangoseattle.org/blog/2010/mar/30/april-13th-django-lawnchair-lightning-talks/">Lighting talk at the Seattle Django Users Group</a> &#8211; this will be about <a href="http://robla.net/jsonwidget">jsonwidget</a>, which is shaping up nicely.  I&#8217;m toying with the idea of making a Django interface for jsonwidget which will be the main point of the discussion.
</li>
<li>April 24 or 25 (tbd) <a href="http://linuxfestnorthwest.org/sessions/using-urwid-and-python-console-applications">LinuxFest Northwest (Bellingham) &#8211; Using urwid and Python for console applications</a> &#8211; I&#8217;ve had a pretty good experience working with <a href="http://excess.org/urwid/">Urwid</a> over the past couple of months or so, and I&#8217;m planning to share what I&#8217;ve learned.
</li>
<li>July 21-22 &#8211; Two talks at <a href="http://www.oscon.com/oscon2010">O&#8217;Reilly&#8217;s Open Source Convention in Portland</a>:
<ul>
<li>July 21 &#8211; <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13417">Financial Incentives in Open Source<br />
</a> &#8211; this is a panel I&#8217;ll be moderating, with a lot of really interesting people with a pretty broad range of experience.  <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/4708">Stormy Peters</a> has given a lot of <a href="http://www.youtube.com/watch?v=vzyaM7VWqOg">really</a> <a href="http://video.google.com/videoplay?docid=-6000071462331877503">good</a> <a href="http://video.google.com/videoplay?docid=-5661144261834801321">talks</a> on the subject already.  <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/8837">Leslie Hawthorn</a> has been the community manager for the <a href="http://code.google.com/soc/">Google Summer of Code program</a> for the past several years. <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6786">Mike Milinkovich</a> is executive director at Eclipse Foundation, which among many things, is host to the <a href="http://www.eclipse.org/org/foundation/eclipseawards/">Eclipse Community Awards</a>.  Last but not least, <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/77067">Todd Crowe</a> is an independent web developer who has a lot of experience <a href="http://www.elance.com/experts/cloverdale_/php_mysql/2326470">working with freelance sites like Elance</a>.  Additionally, Todd has done a lot of work for <a href="http://www.lovemachineinc.com/">Love Machine, Inc.</a>, a startup that&#8217;s taking <a href="http://www.lovemachineinc.com/2010/03/extreme-velocity/">a pretty innovative approach</a> to organizing their work.</li>
<li>July 22 &#8211; <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13958">Great User Interfaces in the Terminal Window</a> &#8211; This will be similar to my April talk about Urwid at LFNW, but will be a broader overview of the various approaches.  When I was hunting for Urwid, I evaluated some of the alternatives, so the idea behind this talk is to step through the advantages/disadvantages of the various approaches.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/doing-the-conferency-talky-thing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Thoughts on dual licensing and contrib agreements</title>
		<link>http://blog.robla.net/2010/thoughts-on-dual-licensing-and-contrib-agreements/</link>
		<comments>http://blog.robla.net/2010/thoughts-on-dual-licensing-and-contrib-agreements/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 04:25:12 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=142</guid>
		<description><![CDATA[photo by kwc There&#8217;s been a lot of chatter lately about dual licensing in open source and its much-maligned companion the contributor license agreement. Since my last two community management gigs involved dual licensing and CLAs, I have a few thoughts on the subject. These tools certainly make it harder to build a community. As [...]]]></description>
				<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 250px"><a href="http://www.flickr.com/photos/kwc/42567298/"><img alt="Two-headed Camel" src="http://farm1.static.flickr.com/29/42567298_9884092bd5_m.jpg" title="Two-headed Camel" width="240" height="160" /></a>
<p class="wp-caption-text"><a href="http://creativecommons.org/licenses/by/2.0/" title="Attribution License" target="_blank"><img src="http://blog.robla.net/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> photo by <a href="http://flickr.com/people/kwc/" title="kwc" target="_blank">kwc</a></p>
</div>
<p>There&#8217;s been a lot of chatter lately about <a href="http://en.wikipedia.org/wiki/Multi-licensing">dual licensing in open source</a> and its much-maligned companion the <a href="http://en.wikipedia.org/wiki/Contributor_License_Agreement">contributor license agreement</a>.  Since my last two community management gigs involved dual licensing and CLAs, I have a few thoughts on the subject.</p>
<p>These tools certainly make it harder to build a community.  As Brian Aker pointed out in <a href='http://krow.livejournal.com/684329.html'>Drizzle, Licensing, Having Honest Conversations with your Community</a>:</p>
<blockquote><p>How do you have an honest conversation with someone where you say &#8220;yes, I will need the work you did for free, to be assigned over to me, so that I can make money on it&#8221;?
</p></blockquote>
<p>It&#8217;s not hard to understand that argument.  As anyone who has ever tried to build a community will tell you, contributors don&#8217;t grow on trees.  It&#8217;s a lot of hard work getting a community excited and motivated to work on your project. Having a single-minded focus on the thought process of your contributor community is probably the only way to build a community of any size or consequence.<br />
<span id="more-142"></span><br />
From the perspective of the potential contributor, being asked for a contribution agreement by the project sponsor is really pushing it.  The sponsor is already receiving hours, or maybe even days or weeks worth of free labor.  Asking the contributor to sign a seemingly one-sided agreement is asking too much.  Most open source contributors probably don&#8217;t have a lawyer on retainer (except for the employees of companies big enough to have legal staff), and few lawyers probably understand the benefit of signing these things.</p>
<div class="wp-caption alignleft" style="width: 172px"><a href="http://www.flickr.com/photos/buttepubliclibrary/4256596239/"><img alt="Frank S. Lusk" src="http://farm5.static.flickr.com/4058/4256596239_ced5c48062_m.jpg" title="Frank S. Lusk" width="172" height="240" /></a>
<p class="wp-caption-text"><a href="http://creativecommons.org/licenses/by/2.0/" title="Attribution License" target="_blank"><img src="http://blog.robla.net/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> photo from <a href="http://www.flickr.com/photos/buttepubliclibrary/" title="Butte-Silver Bow Public Library" target="_blank">Butte-Silver Bow Public Library</a></p>
</div>
<p>So, that&#8217;s the view from the contributor side, but what about the project sponsor?  I&#8217;m sure there&#8217;s at least as many views as there are project sponsors, but let me try to paint a general picture.  When a corporate entity invests in creating a new piece of software, they&#8217;re adding an asset to their balance sheet that they&#8217;ve got complete freedom to do with what they want. One thing they can do is release the source code under an open source license, which we all celebrate as a great thing. They lose resale value, but they don&#8217;t lose the ability to relicense it.  Even if there is no intention to ever relicense that code, the mere ability to do so adds to the balance sheet of a company.  For example, I really doubt that MySQL Inc would have sold for $1 billion had the company not had exclusive ownership of the MySQL database.  It&#8217;s doubtful <a href="http://www.businessweek.com/globalbiz/content/jan2008/gb20080128_783831.htm">Nokia would have forked over $153 million for Trolltech</a> had Trolltech already licensed Qt under LGPL.</p>
<p>Contributors who balk at contribution agreements probably don&#8217;t fully understand how companies arrive at their decision to insist on them, and so ascribe it to malice or <a href="http://despair.com/meetings.html">big company stupidity</a>, when in fact it&#8217;s probably neither.  </p>
<p>Open source projects of all stripes rarely get big, tangible features they truly lust after as outside contributions. Those big features are generally developed as separate projects. Instead, they get lots of small patches and improvements as outside contributions.</p>
<p>Taken individually, each patch is valuable, but not a game changer. So, for any one of these patches, as a sponsor of the project, the tradeoff between taking that one patch versus forever losing the ability to relicense the source code is no brainer. As in &#8220;no, don&#8217;t take the patch&#8221;. If the contributor can be convinced to relicense the patch, great, but otherwise, forget it.</p>
<p>While it may be possible to argue that the cumulative value of the delta between those patches one gets with a contributor agreement versus those that one would have gotten without requiring one is worth it over time, it&#8217;s very difficult to know what that delta is. Since that number is almost certainly unknowable, so is the benefit. And therein lies the rub.</p>
<p>Many of the arguments against having contribution agreements seem to be rooted in the idea that the patch contributor is the one who is being the most altruistic, and that the original provider of the source is the one who should be grateful.  While it&#8217;s absolutely true that the one receiving the patch should be grateful, it&#8217;s important to understand that <a href="http://www.lullabot.com/articles/best_practices_in_open_source_development">there&#8217;s a mutual exchange of value occuring</a>.  The contributor is partly avoiding the fate of needing to keep a downstream fork in sync with an ever changing upstream.  Moreover,<a href="http://blogs.techrepublic.com.com/security/?p=460"> as was discovered in the Debian/OpenSSH fiasco</a>, it&#8217;s often the case that the upstream has a valuable service to provide in merely saying &#8220;ur doing it rong&#8221;.</p>
<p>This is all my longwinded way of saying that potential contributors shouldn&#8217;t walk away from a project solely because the project requires contributor agreements.  Projects can have very good reasons for needing them, and there can be substantial value in a good working relationship with these providers.</p>
<p>That&#8217;s not to say I&#8217;m in love with contribution agreements and the dual licensing model.  They bring with them all of the problems that Brian and others describe.  It&#8217;s way more work explaining to your community the need for contribution agreements and GPL licensing than it is to just do away with them and run a more community-oriented project.  However, it&#8217;s one of the few ways that the open source community has proven worthy of significant financial investment and payoff, so we shouldn&#8217;t be <i>too</i> eager to cast it aside.</p>
<p>The only good reason to cast it aside is if there are better models out there, which <a href='http://redmonk.com/sogrady/2010/02/25/data-vs-dual-licensing/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+tecosystems+%28tecosystems%29&#038;utm_content=Google+Reader'>Stephen O&#8217;Grady suggests there might be</a>.  Here&#8217;s the pitch:</p>
<blockquote><p>But what if open source vendors could leverage their primary strength &#8211; distribution &#8211; more effectively as a direct revenue stream? I&#8217;ve been predicting for <a href="http://redmonk.com/sogrady/2007/08/20/more_money/">three years</a> or so that they would do just that, via data aggregation and analytics. The alignment of customer and vendor goals is better in this model than in virtually any other. The simplest example of this model outside of open source is Google, who provides users with search at no cost, receiving in return massive volumes of data which they monetize both directly (contextual ad placement) and indirectly (algorithmic improvement, machine learning, intelligence for product planning strategy, etc). Why couldn&#8217;t software vendors employ a similar model, trading free software for user generated telemetry data? The answer is, they can. <a href="http://www.spiceworks.com/">SpiceWorks</a>, for one, is doing just that now, quite successfully, albeit not with open source software.
</p></blockquote>
<p>I agree this is a pretty neat trick if you can pull it off.  I think Google, for one, is big enough to pull it off.  But I also don&#8217;t think its an accident that Stephen had to resort to mentioning a closed-source vendor (SpiceWorks) to make his point.  The problem with using open source with this type of strategy is that your downstream distributors can cut you out of the loop, stripping out key revenue and data generating tethers back to the mothership, as <a href="http://arstechnica.com/open-source/news/2010/01/ubuntus-default-search-engine-to-change-in-deal-with-yahoo.ars">Canonical recently did with Firefox</a>.  Since Ubuntu users don&#8217;t represent a huge portion of Firefox&#8217;s user base, it&#8217;s probably not that big of a deal for Mozilla, but just imagine what would happen to Mozilla&#8217;s revenues if Microsoft started distributing Firefox rewired to point to Bing.
<div class="wp-caption alignright" style="width: 240px; top:500px"><a href="http://www.flickr.com/photos/archiemcphee/2698737051/"><img alt="Angry Mob comin at ya!" src="http://farm4.static.flickr.com/3262/2698737051_6c4c2a2a83_m.jpg" title="Angry Mob comin at ya!" width="240" height="180" /></a>
<p class="wp-caption-text"><a href="http://creativecommons.org/licenses/by-nc/2.0/" title="CC Attribution-Noncommercial 2.0 Generic" target="_blank"><img src="http://blog.robla.net/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> photo from <a href="http://www.flickr.com/photos/archiemcphee/" title="Archie McPhee Seattle" target="_blank">Archie McPhee Seattle</a></p>
</div>
<p> The only real leverage that an upstream producer of open source software has in this case is withholding their trademark, and <a href="http://arstechnica.com/old/content/2008/09/ubuntu-firefox-eula-dustup-reignites-oss-licensing-debate.ars">we all know how much the community loves that</a>.</p>
<p>As I said before, open source contributors aren&#8217;t easy to attract to projects.  They don&#8217;t grow on trees.  Then again, neither do compelling, commercially-competitive open source applications.  Since we&#8217;ve established we can&#8217;t plant orchards of contributor and application provider trees to get a lot of both, let&#8217;s make sure we&#8217;re brokering good deals for both sides to attract many more of both.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/thoughts-on-dual-licensing-and-contrib-agreements/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Easy form building for terminal windows: jsonwidget-python</title>
		<link>http://blog.robla.net/2010/jsonwidget-python/</link>
		<comments>http://blog.robla.net/2010/jsonwidget-python/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 05:51:28 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[jsonwidget]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=101</guid>
		<description><![CDATA[I&#8217;ve been working on a project to make building forms really simple. My latest work is &#8220;jsonwidget-python&#8221; for terminal-based applications (like you would use via SSH or local terminal on Linux and Mac). It&#8217;s all very retro, but terminal windows are still very much in use for buzzword-compliant activities like configuring virtual machines for cloud [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been working on <a href="http://robla.net/jsonwidget/">a project to make building forms really simple</a>.  My latest work is &#8220;jsonwidget-python&#8221; for terminal-based applications (like you would use via SSH or local terminal on Linux and Mac).  It&#8217;s all very retro, but terminal windows are still very much in use for buzzword-compliant activities like configuring virtual machines for cloud computing, in addition to being the preferred user interface for a lot of people out there (*cough* nerds *cough*).</p>
<p>This new project builds on some earlier work that I&#8217;ve retroactively renamed &#8220;<a href="http://robla.net/jsonwidget#javascript">jsonwidget-javascript</a>&#8220;.  jsonwidget-javascript is AJAX-y generation of forms inside a browser based on a JSON schema.  jsonwidget-python is intended for terminal users at first, but will extend to other contexts as well.</p>
<p>Here&#8217;s a simple screenshot to show what&#8217;s going on:<br />
<div id="attachment_102" class="wp-caption alignleft" style="width: 410px"><a href="http://blog.robla.net/wp-content/uploads/2010/02/simpleaddr-screenshot-1.png"><img src="http://blog.robla.net/wp-content/uploads/2010/02/simpleaddr-screenshot-1.png" alt="Simple Address Entry in jsonwidget-python" title="Simple Address Entry in jsonwidget-python" width="400" height="284" class="size-medium wp-image-102" /></a><p class="wp-caption-text">Simple Address Entry in jsonwidget-python</p></div><br />
<span id="more-101"></span><br />
There&#8217;s nothing too fancy in this screenshot, but this is probably the most typical case.  What you see there is deceptively simple, but there&#8217;s a lot of complicated stuff going on under the hood.  Most of the complicated parts (drawing the fields, handling focus, handling keyboard shortcuts) is being provided by <a href="http://excess.org/urwid/">urwid</a>, an excellent Python-based library for building terminal-based user interfaces.  jsonwidget is providing a further abstraction that hopefully makes it even simpler to provide this type of interface, though sacrificing much of the flexibility of programming directly against urwid.  Here is the <a href="http://robla.net/jsonwidget/simpleaddr-schema.json.txt">complete configuration file (the schema) describing that address entry form</a>, as well as the <a href="http://robla.net/jsonwidget/jsonschema">documentation for the schema format</a>.  jsonwidget-python is compatible with jsonwidget-javascript, so <a href="http://robla.net/jsonwidget/example.php?sample=simpleaddr">the same schema also works in jsonwidget-javascript</a>.</p>
<p><div id="attachment_115" class="wp-caption alignleft" style="width: 310px"><a href="http://blog.robla.net/wp-content/uploads/2010/02/jsonwidget-javascript-shot.png"><img src="http://blog.robla.net/wp-content/uploads/2010/02/jsonwidget-javascript-shot-300x183.png" alt="jsonwidget-javascript screenshot with simple address entry form" title="jsonwidget-javascript screenshot with simple address entry form" width="300" height="183" class="size-medium wp-image-115" /></a><p class="wp-caption-text">jsonwidget-javascript screenshot with the same simple address entry form</p></div>One nice feature on display even in the simple demo is the ability to have arrays as fields.  You&#8217;ll notice that the phone number field has two phone numbers, and offers to let you add a third.  There&#8217;s no artificial limit on the number of phone numbers that one can enter using this tool, beyond the usual limits of computer memory, patience, etc.</p>
<p>It also handles more complicated schemas if your application calls for it.  For example, let&#8217;s say that one wanted to build a <i>real</i> address book application.  Clearly a lot more flexibility would be needed than merely allowing multiple phone numbers.  Here&#8217;s a screenshot showing a much more sophisticated schema that&#8217;s more like what real address book applications allow:</p>
<div id="attachment_118" class="wp-caption alignnone" style="width: 510px"><a href="http://blog.robla.net/wp-content/uploads/2010/02/complexaddr-screenshot-1.png"><img src="http://blog.robla.net/wp-content/uploads/2010/02/complexaddr-screenshot-1.png" alt="More complicated data entry with jsonwidget-python" title="More complicated data entry with jsonwidget-python" width="500" height="375" class="size-full wp-image-118" /></a><p class="wp-caption-text">More complicated data entry with jsonwidget-python</p></div>
<p>So, what is this good for?  Well, I think it&#8217;ll be good for a lot of stuff.  I suspect it might be a very good user interface to stick in front of a <a href="http://augeas.net/">augeas-based</a> user interface.  I think it might also be a good tool for building a terminal-based frontend for editing <a href="http://couchdb.apache.org/">CouchDB</a> and similar databases.  In particular, I&#8217;m thinking about making a <a href="http://www.freedesktop.org/wiki/Specifications/desktopcouch">desktop-couch</a> interface for contact editing.  Another idea I&#8217;ve dabbled with is automatically building a UI based on parameters to <a href="http://docs.python.org/library/optparse.html">Python&#8217;s optparse</a>.  Yet another thought is an editor for <a href="http://docs.python.org/library/configparser.html">Python&#8217;s ConfigParser</a> or alternatively <a href="http://www.voidspace.org.uk/python/configobj.html">ConfigObj</a>.  Lots of different possibilities here.</p>
<p>I&#8217;m particularly interested in suggestions for applications that people would use.  So, if you have an application for this type of thing that you&#8217;re reasonably sure you&#8217;d use if I did a good enough job implementing, let me know.</p>
<p>Of course, that&#8217;s probably getting a little ahead of myself.  There&#8217;s a number of things <a href="http://bitbucket.org/robla/jsonwidget-python/src/tip/TODO.txt">on the roadmap</a> to do, such as more kosher packaging for easy_install and for Linux distros, as well as the ability to edit arbitrary JSON.  I also need to investigate SitePen&#8217;s <a href="http://json-schema.org/">JSON schema</a> work, which they appear to be well along toward some sort of RFC (probably informational, but that can be enough for something like this).</p>
<p>Anyway, if this sort of thing is up your alley, please give it a whirl and let me know what you think.  You can download jsonwidget-python and give it a spin.   I&#8217;ve set up a <a href="http://lists.robla.net/listinfo.cgi/jsonwidget-robla.net">jsonwidget mailing list</a> which you&#8217;re more than welcome to use, but you can also just post a comment here or contact me via email.</p>
<p><strong>Update: March 9</strong> &#8211; there&#8217;s now several ways of getting jsonwidget:</p>
<ul>
<li><a href="http://pypi.python.org/pypi/jsonwidget/">Latest version at PyPI</a>
</li>
<li><a href="https://launchpad.net/jsonwidget">Ubuntu users: PPA on Launchpad</a>
</li>
<li><a href="http://bitbucket.org/robla/jsonwidget-python/">Bitbucket repository</a>
</li>
<li><a href="http://robla.net/jsonwidget">off of my website</a>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/jsonwidget-python/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Sorry about the NASCAR-looking comment area</title>
		<link>http://blog.robla.net/2010/sorry-about-the-nascar-looking-comment-area/</link>
		<comments>http://blog.robla.net/2010/sorry-about-the-nascar-looking-comment-area/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 01:01:54 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=124</guid>
		<description><![CDATA[As you may have noticed if you visited blog.robla.net directly, the comment area is handled via Intense Debate. I did that to get myself out of the account management business while still maintaining a modicum of control over my site. Other than then weird blue flaming logo and the name &#8220;intense debate&#8221; on a blog [...]]]></description>
				<content:encoded><![CDATA[<p>As you <i>may</i> have noticed if you visited blog.robla.net directly, the comment area is handled via Intense Debate.  I did that to get myself out of the account management business while still maintaining a modicum of control over my site.  Other than then weird blue flaming logo and the name &#8220;intense debate&#8221; on a blog that I don&#8217;t anticipate intense debate on, it&#8217;s rather nice.</p>
<p>One new feature that I just enabled is the ability to comment using Facebook or Twitter login.  It appears as though if you use it via Facebook, you&#8217;ll get the &#8220;allow to automatically post to your wall&#8221;, which is something that I don&#8217;t intend to exploit.  If anyone with Facebook Developer-fu knows how to tweak it so it doesn&#8217;t ask for that permission, I&#8217;d be grateful if you clued me in.</p>
<p>The downside, of course, is that now there is 15 different logos down in the comment area now, not counting the additional 9 or so that pop up when you hover over the little orange RSS icon.  Who knows, given the lack of color in the plain-jane theme I&#8217;ve recently switched to, maybe that&#8217;s a feature.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/sorry-about-the-nascar-looking-comment-area/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Python&#8217;s simpleparse module</title>
		<link>http://blog.robla.net/2010/simpleparse/</link>
		<comments>http://blog.robla.net/2010/simpleparse/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 01:09:11 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=91</guid>
		<description><![CDATA[I&#8217;m working on a project that required a bit more from the JSON parser than the stock JSON parser with Python allowed for. After doing some hunting around, I came to the unfortunate conclusion that I&#8217;d probably need to write my own. Thankfully, Python&#8217;s simpleparse module lived up to its billing (thanks in large part [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/balakov/2452020557/"><img src="http://farm4.static.flickr.com/3185/2452020557_6cb5c3399b_m.jpg" title="&quot;Raising the flag on Iwo Jima&quot; by Mike Stimpson" width="240" height="192" class="alignright" /></a><br />
I&#8217;m working on a project that required a bit more from the <a href="http://json.org">JSON</a> parser than the stock JSON parser with Python allowed for.  After doing some hunting around, I came to the unfortunate conclusion that I&#8217;d probably need to write my own.</p>
<p>Thankfully, <a href="http://simpleparse.sourceforge.net/">Python&#8217;s simpleparse module</a> lived up to its billing (thanks in large part to JSON having such trivial syntax)  Here&#8217;s the working BNF suitable for passing to simpleparse:<br />
<span id="more-91"></span></p>
<blockquote><p><code>&lt;ws>        := [ \t\n\r]*</p>
<p>>string_json&lt; := string_single_quote / string_double_quote<br />
key := string_json<br />
array := "[", ws, ( value, (ws, ",", ws, value)* )?, ws, "]"</p>
<p>member := key, ws, ":", ws, value<br />
object := "{", ws, ( member, ( ws, ",", ws, member )* )?, ws, "}"</p>
<p>true  := "true"<br />
false := "false"<br />
null  := "null"<br />
>value&lt; := false / null / true / object / array / float / int / string_json<br />
>document&lt; := ws, value, ws<br />
</code></p></blockquote>
<p>This is also available in source code form here: <a href="http://bitbucket.org/robla/jsonwidget-python/src/tip/jsonwidget/jsonorder.py">jsonorder.py</a>.  jsonorder.py is part of a larger project, but it also works as a standalone library (albeit not a terribly useful one for most uses)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2010/simpleparse/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Matthew Yglesias » Who’s “Ideological” in the Health Care Debate?</title>
		<link>http://blog.robla.net/2009/matthew-yglesias-%c2%bb-who%e2%80%99s-%e2%80%9cideological%e2%80%9d-in-the-health-care-debate/</link>
		<comments>http://blog.robla.net/2009/matthew-yglesias-%c2%bb-who%e2%80%99s-%e2%80%9cideological%e2%80%9d-in-the-health-care-debate/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 05:46:06 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=87</guid>
		<description><![CDATA[Great insight from Matthew Yglesias: The habit of insisting that only the right and the left have “ideologies” and that people in the center don’t is one of the absolute most frustrating elements of conventional political discussion in the United States. The fact of the matter is that “centrist” ideological taboos have been the big [...]]]></description>
				<content:encoded><![CDATA[<p><a href='http://yglesias.thinkprogress.org/archives/2009/12/whos-ideological-in-the-health-care-debate.php'>Great insight from Matthew Yglesias</a>:</p>
<blockquote><p>The habit of insisting that only the right and the left have “ideologies” and that people in the center don’t is one of the absolute most frustrating elements of conventional political discussion in the United States. The fact of the matter is that “centrist” ideological taboos have been the big story of the Obama administration. That starts with the imposition of an arbitrary cap on the size of the stimulus bill, it continues to the utterly merciless and fanatical centrist opposition to the existence of any public option, to the Fed’s refusal to undertake further monetary easing, to the unwillingness to contemplate really stern measures against bailed-out banks and their executives, and on and on and on.</p></blockquote>
<p>The idea of a &#8220;centrist&#8221; ideology is easiest to apply to the &#8220;left-right&#8221; political spectrum in the U.S., but it holds true in other areas as well (e.g. proprietary versus open).  While the &#8220;correct&#8221; answer is often between two extremes, that&#8217;s not always the case.  People who tend to favor shades of grey are not necessarily more reasonable, just more prone to picking shades of grey.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2009/matthew-yglesias-%c2%bb-who%e2%80%99s-%e2%80%9cideological%e2%80%9d-in-the-health-care-debate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moving on</title>
		<link>http://blog.robla.net/2009/moving-on/</link>
		<comments>http://blog.robla.net/2009/moving-on/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 06:07:11 +0000</pubDate>
		<dc:creator>robla</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.robla.net/?p=82</guid>
		<description><![CDATA[I&#8217;ve decided to leave my current job at Linden Lab. Those of you interested in the ins-and-outs of Second Life may want to look at my post to &#8220;sldev&#8221; (our open source development mailing list). It was a tough decision to leave, and even tougher to make without having my next move totally nailed down, [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve decided to leave <a href="http://wiki.secondlife.com/wiki/User:Rob_Linden">my current job at Linden Lab</a>.  Those of you interested in the ins-and-outs of Second Life may want to look at <a href="https://lists.secondlife.com/pipermail/sldev/2009-November/015579.html">my post to &#8220;sldev&#8221; (our open source development mailing list)</a>.  It was a tough decision to leave, and even tougher to make without having my next move totally nailed down, but so far it feels like the right decision.  Ask me in a couple months how I feel  <img src='http://blog.robla.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Without going into too much detail about what I&#8217;m working on, suffice it to say that it involves open source in a pretty big way.  Even if this immediate opportunity doesn&#8217;t pan out, the scope of stuff I&#8217;ll be looking at is going to be pretty narrowly focused on facilitating the creation of open source software.  I&#8217;ll write more here as things get clearer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robla.net/2009/moving-on/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
