<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Allison Randal</title>
	<atom:link href="http://allisonrandal.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://allisonrandal.com</link>
	<description>here be unicorns</description>
	<lastBuildDate>Fri, 12 Apr 2013 20:21:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='allisonrandal.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Allison Randal</title>
		<link>http://allisonrandal.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://allisonrandal.com/osd.xml" title="Allison Randal" />
	<atom:link rel='hub' href='http://allisonrandal.com/?pushpress=hub'/>
		<item>
		<title>Mythbusters &#8211; Why I (still) Love Perl</title>
		<link>http://allisonrandal.com/2013/03/31/mythbusters-why-i-still-love-perl/</link>
		<comments>http://allisonrandal.com/2013/03/31/mythbusters-why-i-still-love-perl/#comments</comments>
		<pubDate>Sun, 31 Mar 2013 17:18:29 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=379</guid>
		<description><![CDATA[At the very beginning, I should probably make it clear that this post is not a declaration of exclusivity in my relationship to Perl. I love programming languages. I first learned to program about the same time I first learned to read (English) and first studied French. My love for programming languages is very much [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=379&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>At the very beginning, I should probably make it clear that this post is not a declaration of exclusivity in my relationship to Perl. I love programming languages. I first learned to program about the same time I first learned to read (English) and first studied French. My love for programming languages is very much akin (and I swear linked to the same part of my brain) as my love for human languages: they are all unique and beautiful in their own way. I love Python, I love C, I love Smalltalk, I love Erlang, etc, etc.</p>
<p>But Perl has taken an entirely undeserved beating in recent years, and so, in karmic balance, it deserves a round of outspoken championship, far more than others need right now. In pondering why Perl&#8217;s current reputation is so completely disjointed from the reality of the language, I&#8217;ve boiled it down to three &#8220;Big Bang Theory&#8221;-esque ideas: &#8220;The Cookie Slap! Effect&#8221;, &#8220;The Awkward Adolescence Fallacy&#8221;, and &#8220;The Singularity Paradox&#8221;.</p>
<p><strong>The Cookie Slap! Effect</strong></p>
<p>There&#8217;s a &#8220;Perl is Dead&#8221; meme floating around. It&#8217;s been around for a while, long enough that it&#8217;s picked up steam and plows along despite all evidence to the contrary. It&#8217;s so common, I won&#8217;t bother providing links, because you&#8217;ve seen more of them than I can count. It&#8217;s so common, I even heard it recently from a young MBA graduate, who was so entirely non-technical that he didn&#8217;t even know what HTML and CSS were, while working in sales for a web startup. But, he knew what Perl was, and he &#8220;knew&#8221; it was dead. Weird, but that&#8217;s how memes work. So, how did this meme start?</p>
<p>There&#8217;s a well-known gaming scenario often called &#8220;King of the Hill&#8221;, where one player has special status, and the goal of all the other players is to knock that player out of the privileged position and take it for themselves. There was a time when Perl <em>owned</em> the web. It was the duct tape that built the &#8220;Web 1.0 City&#8221;. There are a number of reasons why Perl succeeded so wildly, but most of them boil down to being in the right place, at the right time, with a fresh, dynamic take on what &#8220;programming&#8221; should be like, and what &#8220;programmers&#8221; should be like. There are many things that C excels at, but manipulating massive, variable-length strings is certainly not one of them. And, at the end of the day, no matter what abstractions you layer on it, Web development is essentially about dynamically building and pushing out very lengthy <em>strings</em> of HTML and CSS (and Javascript) to browsers that will decide how to render them. C sucked for that. Really sucked. Trust me, I&#8217;ve been-there-done-that.</p>
<p>So, Perl dropped into what was effectively an empty space, at a time when the demand for web services was sky-rocketing. Score! And established itself as the King of the Hill. Score! But then, as the dominant player, Perl also became &#8220;the one to beat&#8221;. Every upstart young programming language compared itself to Perl. &#8220;We&#8217;re better than Perl because&#8230;&#8221; And this is where the &#8220;Perl is dead&#8221; meme started. It was popular to put-down Perl, because Perl was &#8220;unbeatable&#8221;. Of course, it was never really unbeatable. The chances that any one language would continue to dominate the web are exceedingly tiny, effectively zero. The chances that any one language will ever again achieve the dominance Perl once had are equally tiny. Especially when you consider the fact that diversity is one of the single strongest cultural values of this miraculous, glorious, networked universe we now inhabit. A cultural value that it partially learned, BTW, from Perl&#8217;s TMTOWTDI (there&#8217;s more than one way to do it).</p>
<p>So, when you hear &#8220;Perl is dead&#8221;, remember this, the only reason the meme has strength is because Perl itself has strength. No one feels the need to loudly proclaim &#8220;Draco is dead&#8221;, because really, no one cares. And secondly, remember that at the root, the primary reason for declaring the untruthful &#8220;Perl is dead&#8221;, rather than the far simpler and truthful &#8220;Perl doesn&#8217;t have the domain dominance it once had&#8221;, is an insecurity about whatever language the speaker happens to love. Perl is an elder-statesman in a closed system. The shocking truth about the <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">Tiobe Index</a> isn&#8217;t that Perl has drifted down over the years (languages wax and wane, just look at <a href="http://www.tiobe.com/index.php/paperinfo/tpci/C.html">C</a>), it&#8217;s that all of the languages in the top 20 are <strong>OLD</strong> in technology-years. It&#8217;s like looking at Forbes&#8217; list of billionaires from year-to-year: they shift in position, but once someone&#8217;s on the list they have an advantage over all the players who aren&#8217;t on the list (massive capital to invest in one case, massive numbers of users and lines of working production code in the other), which means they&#8217;re likely to stay on the list.</p>
<p>And, if you&#8217;ve ever said &#8220;Perl is dead&#8221;, my advice is to learn a lesson of tolerance, &#8220;live and let live&#8221;. Perl won&#8217;t plow your favorite language under the carpet, it&#8217;s not a threat to you, but I also guarantee your favorite language won&#8217;t plow Perl under the carpet. The best you can hope for is to be accepted as a member of &#8220;The Fellowship of the Languages&#8221;, so grant other languages the same respect you&#8217;d like to receive from them.</p>
<p><strong>The Awkward Adolescence Fallacy</strong></p>
<p>Around Perl&#8217;s 13th birthday, which just happened to also be the fiery heart of the dot-com bust, the child-prodigy suffered from a massive anxiety attack. As the Web 1.0 world went down in flames, the Perl community was quite literally tearing itself apart. There were a variety of factors, layers of complexity as in any human conflict, but one of the key factors was the nagging doubt that creeps into anyone&#8217;s head when things aren&#8217;t going as well as you&#8217;d hoped: &#8220;Maybe it&#8217;s my fault. Maybe I didn&#8217;t deserve success.&#8221; That line of thinking is generally not true, or at least wildly exaggerated, and generally not helpful.</p>
<p>One result of this early-life crisis was the birth of the Perl 6 idea, but I&#8217;ll punt that to the next section. Another more subtle (but also more powerful) result, was a growing obsession with things not being &#8220;good enough&#8221;. The calm confidence of Perl&#8217;s youth was replaced by fears that the syntax wasn&#8217;t good enough, the implementation wasn&#8217;t good enough, the community wasn&#8217;t good enough, the foundation wasn&#8217;t good enough, the license wasn&#8217;t good enough&#8230;</p>
<p>To a certain extent fear is a healthy thing, it drives you to push harder, to conquer the thing that you fear. And Perl did. The catastrophic flame-wars of the late 90&#8242;s were put to rest. The foundation was restructured and strengthened, and is now one of the most professionally run open source foundations I participate in, with solid, steady funding to run projects that are hugely beneficial to Perl. The Artistic 2 license was introduced as an improvement, but even the existing Artistic 1 license proved itself in court, in a way that no other open source license ever has, and in a way that benefited the entire open source community. The syntax, implementation, and libraries of Perl 5 have improved substantially, to the point that working with &#8220;Modern Perl&#8221; is really a very different experience than the Perl of 10 or 15 years ago, while still retaining the characteristics that make it a joyful language to code in.</p>
<p>But the bad side of that fear was an awkward, shy hesitation. Like a gawky teenager, Perl stood at the side of the room, afraid to dance because people might think he looks funny. So, I&#8217;ve got a news flash for you: no language is perfect, no syntax is perfect, no implementation is perfect, no community is perfect, no foundation is perfect, no license is perfect, nothing is perfect. Perl wasn&#8217;t perfect when it owned the web. Perfection is not the first step to success, it&#8217;s not even a milestone on the path. And if you really want to understand how irrelevant perfection is, pick any random language you admire, that you see as the pinnacle of success, and closely inspect its syntax, implementation, community, foundation, and license. You&#8217;ll find it&#8217;s flawed. Why? Because we&#8217;re all human, and we all produce things that are deeply creative, deeply wonderful, and yes, somewhat flawed.</p>
<p>It&#8217;s time for Perl to grow up. It&#8217;s not a teenager anymore. It&#8217;s time to accept what it is, accept what it isn&#8217;t, and walk on. And what it is, is pretty outrageously amazing. I&#8217;ve recently had the opportunity to help a wildly successful startup, in a domain that sorely needs the advantages of modern tech. Perl is the right tool for the job. If I explained the problem space you&#8217;d agree, even if Perl isn&#8217;t your favorite language. Perl is the right tool for a lot of jobs, all over the world, right now, stable and reliable, in production, with massive numbers of lines of code.</p>
<p><strong>The Singularity Paradox</strong></p>
<p>When Perl 6 was announced, it had a wonderful effect on the Perl community. It provided an &#8220;event horizon&#8221; to focus everyone&#8217;s attention on Perl&#8217;s future. It was an inspiration for new creativity, and a distraction from the flamewars to help kill them off. But over time, some things happened that we entirely didn&#8217;t expect. The most obvious is that it has taken rather longer that we anticipated. I remember a time when &#8220;6 months&#8221; was a completely reasonable project estimate for the Perl 6 production release. (Not &#8220;By Christmas&#8221;, but a real, project-planning 6 months, where I could map out what needed to happen each month.) 13 years later, that clearly didn&#8217;t happen. But the time factor is actually a side-effect of other things we didn&#8217;t anticipate. The single biggest thing we didn&#8217;t anticipate is that the &#8220;community rewrite of Perl&#8221; has, in fact, turned out to be a community <strong>fork</strong>. Perl 6 is not like Python 3, which really is a continuation of Python 2, with the same developers, same users, and same community values. (Sometime I&#8217;ll write about my interest and contributions toward the Python 3 migration effort, with its own unique successes and challenges.) What grew out of the Perl 6 idea is a new community, a new group of developers, and even a new identity, &#8220;Rakudo&#8221; rather than Perl (with a phase of &#8220;Pugs&#8221; along the way). The core Perl developers still work on Perl 5, and have little or no interest in Rakudo. Some of the Rakudo developers have a background in Perl, but many of them have a background in PHP, Java, C#, or other languages.</p>
<p>Rakudo is not an &#8220;upgrade&#8221; from Perl. It&#8217;s revolutionary and exciting, just like Perl was in 1987, but it is not Perl. Please note that I&#8217;m not commenting on the similarity or difference of syntax between Perl and Rakudo. If you take a long view over the history of programming languages, syntax is about as relevant to the success of a language as the color of the bike shed. And if you really, really get down to the nuts and bolts, the syntax and functionality of Perl, Python, Ruby, PHP, and Lua are all fundamentally quite similar. That doesn&#8217;t make them the same language, and more importantly it doesn&#8217;t make them the same community.</p>
<p>So, we stepped into Perl 6 expecting the full power of the mighty Perl community pushing it forward. What we actually got is a tiny band of free-thinkers, re-imagining what &#8220;programming&#8221; should be like, and what &#8220;programmers&#8221; should be like. That&#8217;s not a bad thing. As new languages go, Rakudo is among the most exciting. But, it&#8217;s in that thinly-stretched startup mode where you only get to pick one of &#8220;quick, cheap, or good&#8221; and it&#8217;s optimizing for &#8220;good&#8221;. In the long-run, that focus will be crucial to Rakudo&#8217;s success.</p>
<p>Back to the impact on Perl. Ultimately, the wonderful distraction of Perl 6 has proven&#8230; well.. distracting. What was once a very good thing for Perl, is paradoxically now bad for Perl. I recently explained this to a friend as a story of two brothers, Perl and Rakudo Wall:</p>
<blockquote><p><em><br />
Perl Wall has finished his advanced graduate degree, and is out building<br />
his career. He was hugely successful for a while, but lately something<br />
strange has been happening. When he goes on interviews, for some reason<br />
people keep pulling up his younger brother&#8217;s resume by mistake, and then<br />
tell him &#8220;Sorry kid, you don&#8217;t have the experience for this job&#8221;. But<br />
really, he&#8217;s perfect for the job, if only they&#8217;d look at *his* resume,<br />
instead of looking at his brother&#8217;s.</p>
<p>Rakudo Wall is still a teenager, and walks to the tune of a different<br />
drummer. He&#8217;s smart, but he does things his own way. Sometimes<br />
he takes a little longer than the other kids, and sometimes he<br />
leap-frogs past them with a brilliant insight even the teachers don&#8217;t<br />
understand. People keep telling him that he should be just like his<br />
older brother. But he&#8217;s not, and he doesn&#8217;t *want* to be exactly like<br />
his brother. He wants to be himself. Someday, he&#8217;ll be awesome, even<br />
outshine his brother. But he&#8217;ll get there in his own time, and his own way.<br />
</em></p></blockquote>
<p>Right now, Perl and Rakudo are getting in each other&#8217;s way. They&#8217;re like conjoined twins, trying to live separate lives, but always anchored to their brother. That doesn&#8217;t mean I love Rakudo any less than I love Perl. I love them both, and want them both to succeed. But their paths are very, very different, and they each need the freedom to walk their own path. The way to grant that freedom is stunningly simple: accept that it is what it is, and let each go its own way, with its own chosen identity. Let Perl be Perl and let Rakudo be Rakudo.</p>
<p>I sincerely hope to see Perl 7 released quite soon. No fuss, no bother, no long list of &#8220;blocking features&#8221;. Just BAM! ship the next version of Perl (5) as Perl 7. And I sincerely hope the greatest success for Rakudo. I don&#8217;t even care if it takes another 13 years to release, it&#8217;ll be worth the wait.</p>
<p>The King is dead. Long live the King!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/379/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/379/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=379&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2013/03/31/mythbusters-why-i-still-love-perl/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
		<item>
		<title>UDS-R Architecture Preview</title>
		<link>http://allisonrandal.com/2012/10/28/uds-r-architecture-preview/</link>
		<comments>http://allisonrandal.com/2012/10/28/uds-r-architecture-preview/#comments</comments>
		<pubDate>Sun, 28 Oct 2012 20:40:12 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=348</guid>
		<description><![CDATA[The 13.04 &#8220;Raring Ringtail&#8221; release of Ubuntu falls at the mid-point between the 12.04 and 14.04 LTS (long-term support) releases. This is the time in a development cycle when the balance starts to tip from innovation toward consolidation, when conversations form around what pieces need to be in place today to ensure a solid &#8220;checkmate&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=348&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The 13.04 &#8220;Raring Ringtail&#8221; release of Ubuntu falls at the mid-point between the 12.04 and 14.04 LTS (long-term support) releases. This is the time in a development cycle when the balance starts to tip from innovation toward consolidation, when conversations form around what pieces need to be in place today to ensure a solid &#8220;checkmate&#8221; two releases down the road.</p>
<p>With that context in mind, it&#8217;s no surprise that Ubuntu Foundations&#8211;the central core behind the many faces of Ubuntu&#8211;plays a starring role in this release, both in sessions here at the <a href="http://uds.ubuntu.com/">Ubuntu Developer Summit</a> in Copenhagen, and in the upcoming 6 months of development work. Look for sessions on <a href="http://summit.ubuntu.com/uds-r/meeting/21047/foundations-r-prior-release-feedback/">release roles and responsibilities</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21405/foundations-r-schedule/">release planning</a> including <a href="http://summit.ubuntu.com/uds-r/meeting/21112/community-r-edubuntu/">Edubuntu</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21070/community-r-lubuntu-work-items/">Lubuntu</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21410/community-r-xubuntu-planning/">Xubuntu</a>, and <a href="http://summit.ubuntu.com/uds-r/meeting/21259/desktop-r-kubuntu-packaging/">Kubuntu</a>,  <a href="http://summit.ubuntu.com/uds-r/meeting/21333/archive-maintenance-software-hacking/">archive maintenance</a> and <a href="http://summit.ubuntu.com/uds-r/meeting/21333/archive-maintenance-software-hacking/">improvements to archive admin tools</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21332/foundations-r-revert-policy/">reverting package regressions</a> and <a href="http://summit.ubuntu.com/uds-r/meeting/21382/servercloud-r-swiftmirrorsnapshots/">immutable archive snapshots</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21268/foundations-r-improve-cross-compilation/">cross-compilation</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21054/foundations-r-uefi-fastboot-ui/">user access to UEFI setup</a> and <a href="http://summit.ubuntu.com/uds-r/meeting/21173/foundations-r-secure-boot/">plans for secure boot</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21073/foundations-r-dpkg-xz/">xz compression for packages</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21406/foundations-r-empowered-flavors/">image creation tools for Flavors</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21403/foundations-r-dh-apparmortemplate/">auto-generated apparmor profiles</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21075/foundations-r-powerpc-bootloaders/">PowerPC bootloaders</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21127/foundations-r-python3-oauth/">OAuth for Python 3</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21076/foundations-r-rapid-archive-bringup/">&#8220;prototype&#8221; archives for new hardware</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21280/foundations-r-android-image-builds/">Android ROMs</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21282/foundations-r-improving-dist-upgrades/">user experience in distro upgrades</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21368/foundations-r-buildds-usage/">build daemon resources</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21321/foundations-r-arm-boot-resume-speedup/">boot time on ARM</a>, and <a href="http://summit.ubuntu.com/uds-r/meeting/21401/foundations-r-arm-ubiquity/">installation tools on ARM</a>. Also training sessions on the <a href="http://summit.ubuntu.com/uds-r/meeting/21519/error-tracker-workshop/">error (crash) tracker</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21399/python-3-porting-workshop/">Python 3 porting</a>, and <a href="http://summit.ubuntu.com/uds-r/meeting/21404/hacking-upstart-together/">how to contribute to upstart</a>.</p>
<p>On the Cloud front, the big topics continue to center around OpenStack (<a href="http://summit.ubuntu.com/uds-r/meeting/21104/servercloud-r-openstack-grizzly/">integrating Grizzly</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21135/servercloud-r-openstack-qa/">QA</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21134/servercloud-r-openstack-packaging/">packaging improvements</a>), Juju (the <a href="http://summit.ubuntu.com/uds-r/meeting/21141/servercloud-r-charmworld/">Charm Store</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21183/servercloud-r-juju-charmhelper2/">Charm developer tools</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21068/community-r-juju-contributor-onramp-2/">contributor onramps</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21133/servercloud-r-juju-appserver-support/">application servers</a> like Ruby on Rails/Django, <a href="http://summit.ubuntu.com/uds-r/meeting/21326/servercloud-r-juju-ci/">development process</a>), and Ubuntu Cloud images (<a href="http://summit.ubuntu.com/uds-r/meeting/21086/servercloud-r-cloudtesting/">testing</a> and <a href="http://summit.ubuntu.com/uds-r/meeting/21132/servercloud-r-cloudystuff/">roundtable</a>). While the broader Ubuntu Server discussions range over <a href="http://summit.ubuntu.com/uds-r/meeting/21096/servercloud-r-xen/">Xen</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21088/servercloud-r-lxc/">LXC</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21087/servercloud-r-libvirt/">libvert</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21091/servercloud-r-qemu/">QEMU</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21084/servercloud-r-ceph/">Ceph</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21090/servercloud-r-mysql/">MySQL</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21094/servercloud-r-webscale/">Nginx, Node.js, and MongoDB</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21381/servercloud-r-query2-deprecation/">Query2</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21131/servercloud-r-bigdata-fs/">bigdata filesystem support</a>, and <a href="http://summit.ubuntu.com/uds-r/meeting/21138/servercloud-r-virt-powerpc/">Power architecture virtualization</a>.</p>
<p>The Client side is a harmonic chorus, with sessions on <a href="http://summit.ubuntu.com/uds-r/meeting/21146/community-r-tv-development/">Ubuntu TV</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21407/desktop-r-targets-for-embedded/">mobile devices</a> and <a href="http://summit.ubuntu.com/uds-r/meeting/21392/setting-your-ubuntu-mobile-dev-environment/">installing Ubuntu on a Nexus 7</a>, plus multiple sessions on <a href="http://summit.ubuntu.com/uds-r/meeting/21120/desktop-r-gaming-platform-unity-performance/">Ubuntu as a gaming platform</a>. Also look for the usual sorts of nuts and bolts that go into building a beautiful client experience, like <a href="http://summit.ubuntu.com/uds-r/meeting/21359/desktop-r-accessibility/">accessibility</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21289/desktop-r-reduced-power-ram/">battery life</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21360/desktop-r-connectivity-checking/">connectivity</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21124/desktop-synchronizing-settings-among-multiple-computers/">config sync</a>, <a href="http://summit.ubuntu.com/uds-r/meeting/21371/desktop-r-default-file-manager/">choice of file managers</a>, and <a href="http://summit.ubuntu.com/uds-r/meeting/21285/design-r-typography/">consistent typography</a>.</p>
<p>Don&#8217;t miss the <a href="http://summit.ubuntu.com/uds-r/meeting/21291/design-theatre/">Design Theatre</a> on Wednesday, where all are welcome to participate and learn about design thinking, solving real-world design problems for apps submitted by the audience.</p>
<p>I can&#8217;t wait for tomorrow!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/348/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=348&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2012/10/28/uds-r-architecture-preview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
		<item>
		<title>UDS-Q Architecture Preview</title>
		<link>http://allisonrandal.com/2012/05/07/uds-q-architecture-preview/</link>
		<comments>http://allisonrandal.com/2012/05/07/uds-q-architecture-preview/#comments</comments>
		<pubDate>Tue, 08 May 2012 00:32:17 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=336</guid>
		<description><![CDATA[This week in Oakland is the Ubuntu Developer Summit, a time for Ubuntu Developers from around the world to gather and plan the next release, version 12.10 codenamed &#8220;Quantal Quetzal&#8221;. I&#8217;ve shuffled and reshuffled the sessions several times, looking for the &#8220;governing dynamic&#8221;, the thematic structure that holds the Quetzal together. I&#8217;ve settled, appropriately, on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=336&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This week in Oakland is the <a href="http://uds.ubuntu.com/">Ubuntu Developer Summit</a>, a time for Ubuntu Developers from around the world to gather and plan the next release, version 12.10 codenamed &#8220;Quantal Quetzal&#8221;.</p>
<p>I&#8217;ve shuffled and reshuffled the sessions several times, looking for the &#8220;governing dynamic&#8221;, the thematic structure that holds the Quetzal together. I&#8217;ve settled, appropriately, on &#8220;quantization&#8221;. In general terms, quantization is a process of separating a continuous stream into significant values or &#8220;quanta&#8221;, such as image pixels from the continuous colors of real life, or discrete atomic energy levels. The theme applies on multiple levels. First, there&#8217;s the process attendees are going through right now (in person or remote), surfing the sea of sessions, determining how to divide their time for maximum value.</p>
<p>From a historical perspective, there was another UDS here in California not too long ago, where I recall the schedule was dominated by the desktop. We&#8217;re in a different world today, and what struck me reading through blueprints for Quantal is the segmentation of topics. Ubuntu has grown up, and while shipping a gorgeous desktop will always be important, other forms of hardware, both smaller and larger, have an equal (and sometimes greater) influence on Ubuntu&#8217;s direction into the future. How do you choose between cloud, metal, TV, and phones, when they&#8217;re all so interesting, and have so much potential as game-changers for Ubuntu (and Linux in general)? These different domains of use also lead to differentiation in design, development, and integration. Some significant quanta to watch are:</p>
<ul>
<li>Cloud: Juju (<a href="http://summit.ubuntu.com/uds-q/meeting/20370/servercloud-q-juju-integration/">integration</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20506/servercloud-q-juju-charm-best-practices/">charms</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20360/servercloud-q-juju-charms-release-policy/">charm store</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20507/servercloud-q-juju-charm-unit-tests/">charm testing</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20453/community-q-juju-charm-workflow/">charm workflow</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20337/servercloud-q-juju-release-process/">release process</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20511/servercloud-q-juju-upstart-integration/">with upstart</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20399/community-q-juju-conferences/">world tour</a>), Open Stack (<a href="http://summit.ubuntu.com/uds-q/meeting/20364/servercloud-q-openstack-folsom/">roadmap</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20674/servercloud-q-openstack-ha/">HA</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20474/servercloud-q-openstack-deployment-on-arm/">ARM</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20673/servercloud-q-openstack-charms/">charms</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20356/servercloud-q-cloud-archive/">backporting</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20372/servercloud-q-openstack-stable/">SRUs</a>), Ubuntu Cloud images (<a href="http://summit.ubuntu.com/uds-q/meeting/20449/servercloud-q-cloud-images/">roundtable</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20513/servercloud-q-cloud-init-utils/">cloud-init and cloud-utils</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20352/servercloud-q-push-to-the-clouds/">publishing</a>), <a href="http://summit.ubuntu.com/uds-q/meeting/20231/servercloud-q-eucalyptus/">Eucalyptus</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20627/servercloud-q-xen/">Xen</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20389/servercloud-q-ceph-object-integration/">Ceph</a></li>
<li>Metal: <a href="http://summit.ubuntu.com/uds-q/meeting/20394/servercloud-q-maas-next-steps/">MAAS</a> (&#8220;metal as a service&#8221;), ARM server (<a href="http://summit.ubuntu.com/uds-q/meeting/20410/servercloud-q-arm-server/">enhancements</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20448/servercloud-q-arm-deployment/">deployment</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20585/servercloud-q-arm-server-storage-testing/">benchmarking</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20585/servercloud-q-arm-server-storage-testing/">storage</a>), MySQL (<a href="http://summit.ubuntu.com/uds-q/meeting/20323/servercloud-q-mysql-roundtable/">round table</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20325/servercloud-q-mysql-utilities/">utilities</a>), <a href="http://summit.ubuntu.com/uds-q/meeting/20486/hardware-q-ocp-roundtable/">Open Compute Project</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20362/servercloud-q-libvirt/">libvert</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20683/servercloud-q-chef/">Chef</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20367/servercloud-q-xcp/">XCP</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20720/servercloud-q-openflow-controller/">OpenFlow</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20363/servercloud-q-lxc/">LXC</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20371/servercloud-q-kvm/">KVM</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20440/servercloud-q-bigdata-hadoop/">Hadoop</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20675/servercloud-q-powernap-opencompute-integration/">PowerNap</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20657/foundations-q-btrfs-requirements/">btrfs</a></li>
<li>Client: <a href="http://summit.ubuntu.com/uds-q/meeting/20651/design-q-mobility-factors/">mobile design</a>, TV (<a href="http://summit.ubuntu.com/uds-q/meeting/20709/desktop-q-tv-control/">control options</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20710/desktop-q-tv-gstreamer/">GStreamer</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20338/community-q-ubuntu-tv-involvement/">get involved</a>), <a href="http://summit.ubuntu.com/uds-q/meeting/20571/desktop-q-ubuntu-one-cloud-printing/">cloud printing</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20691/desktop-q-hybrid-graphics/">hybrid graphics</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20574/desktop-q-xorg-usb-video-support/">USB video</a>, Kubuntu (<a href="http://summit.ubuntu.com/uds-q/meeting/20595/kubuntu-q-future/">roadmap</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20592/kubuntu-q-active/">Active</a>), <a href="http://summit.ubuntu.com/uds-q/meeting/20550/desktop-q-deja-dup/">backup enhancements</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20425/desktop-q-gnome-plans-review/">GNOME</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20491/other-q-qt-5/">Qt 5</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20573/desktop-q-xorg-general/">X.org</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20565/desktop-q-gwibber/">Gwibber</a></li>
<li>Apps: <a href="http://summit.ubuntu.com/uds-q/meeting/20412/community-q-upstream-myapps/">developer experience</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20545/community-p-appdevelopers-events/">events</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20408/community-q-upstream-appdev-docs/">documentation</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20729/community-p-appdevelopers-site-incremental-improvements/">developer portal</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20414/community-q-upstream-support/">upstreams</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20417/community-q-app-promotion/">promotion</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20544/desktop-q-quickly/">Quickly</a></li>
</ul>
<p>And like an atom that retains its fundamental structure at multiple energy levels, Ubuntu is still Ubuntu, unified at the core as a distribution and as a community, even across multiple &#8220;product&#8221; targets. Since this is the first release after an LTS, there&#8217;s more room than usual to re-examine the core at a fundamental level, with an eye to where we want to be by the next LTS.</p>
<ul>
<li>Intelligence: <a href="http://summit.ubuntu.com/uds-q/meeting/20658/foundations-q-metrics/">metrics</a>, crash data (<a href="http://summit.ubuntu.com/uds-q/meeting/20488/foundations-q-crash-database/">part 1</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20661/foundations-q-crash-database-2/">part 2</a>), bug data (<a href="http://summit.ubuntu.com/uds-q/meeting/20289/other-q-arsenal-report-enhancements/">Arsenal</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20704/other-q-bug-agents/">automated triage agents</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20291/other-q-release-bug-list-workflows/">release importance</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20608/other-q-bug-report-shadow-database/http://">shadow database</a>)</li>
<li>Precision: <a href="http://summit.ubuntu.com/uds-q/meeting/20427/desktop-q-login-speed-improvements/">login speed</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20421/desktop-q-application-startup-time/">app startup time</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20702/other-q-plus-one-maintenance-staffing/">+1 maintenance</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20424/desktop-q-desktop-quality/">automated desktop testing</a> (including <a href="http://summit.ubuntu.com/uds-q/meeting/20568/desktop-q-libreoffice-qa-testsuites/">LibreOffice</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20407/foundations-q-testing-migration-assistant/">migrations</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20468/hardware-q-hda-automated-qa/">HDA sound cards</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20379/cert-q-sru-coverage/">kernel certification</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20522/qa-q-ubuntu-automation-test-harness/">harness</a>), <a href="http://summit.ubuntu.com/uds-q/meeting/20383/hardware-q-distributed-testing/">distributed hardware testing</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20466/qa-q-iso-testing-process/">ISO testing</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20382/hardware-q-checkbox-core/">Checkbox</a></li>
<li>Scaling: <a href="http://summit.ubuntu.com/uds-q/meeting/20369/servercloud-q-apt-improvements/">apt at hyperscale</a> (followup session TBA later in the week), <a href="http://summit.ubuntu.com/uds-q/meeting/20336/other-extra-large-application-testing/">large application performance</a></li>
<li>Security: AppArmor (<a href="http://summit.ubuntu.com/uds-q/meeting/20579/security-q-apparmor-testing/">testing</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20578/security-q-apparmor-dev/">development</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20580/security-q-apparmor-ubuntu/">integration</a>), <a href="http://summit.ubuntu.com/uds-q/meeting/20582/security-q-ecryptfs/">eCryptfs</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20747/desktop-q-configuration-lockdown/">desktop lockdown</a></li>
<li>Leadership: <a href="http://summit.ubuntu.com/uds-q/meeting/20320/leadership-summit/">summit</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20556/community-q-developer-advisory-team/">developer advisory team</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20662/community-council-code-of-conduct-review/">code of conduct review</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20548/community-p-loco-portal-content-review/">LoCo portal</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20676/other-q-motu-bof/">MOTU</a> <a href="http://summit.ubuntu.com/uds-q/meeting/20476/other-q-dmb-discussion/">developer membership board</a></li>
<li>Process improvements: release (<a href="http://summit.ubuntu.com/uds-q/meeting/20334/other-q-release-notes/">tech overview</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20235/other-q-release-communication/">meetings</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20605/other-q-future-release-infrastructure/">infrastructure</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20616/other-q-release-schedule-review/">schedule and interlocks</a>), <a href="http://summit.ubuntu.com/uds-q/meeting/20290/other-q-freeze-use-of-proposed/">use of -proposed</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20342/foundations-q-udd/">UDD</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20493/foundations-q-security-of-third-party-debs/">third-party .debs</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20626/foundations-q-more-agile-sru-process/">SRU process</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20288/foundations-q-replace-archive-admin-shell-access/">archive admin API</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20294/foundations-q-finish-archive-reorg/">archive reorg</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20496/foundations-q-phased-updates/">phased package updates</a>, <a href="http://summit.ubuntu.com/uds-q/meeting/20744/foundations-q-buildds-usage/">buildd usage</a></li>
</ul>
<p>And those are only the highlights. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  It&#8217;s going to be a great week, and a great cycle!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/336/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=336&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2012/05/07/uds-q-architecture-preview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
		<item>
		<title>Open Source Enlightenment</title>
		<link>http://allisonrandal.com/2012/04/15/open-source-enlightenment/</link>
		<comments>http://allisonrandal.com/2012/04/15/open-source-enlightenment/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 06:04:46 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[floss]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=317</guid>
		<description><![CDATA[(My thanks to Audrey Tang for this lyrical transcript of my talk at OSDC.tw, to Macpaul Lin for the video, and to Chia-liang Kao for proofreading the Chinese translations in my slides.) Over the years, I&#8217;ve started thinking that participating in the open source community is like traveling on a path, toward becoming not only [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=317&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>(<em>My thanks to <a href="http://plurk.com/audreyt">Audrey Tang</a> for this lyrical transcript of my talk at <a href="http://osdc.tw/">OSDC.tw</a>, to Macpaul Lin for the <a href="https://www.youtube.com/watch?v=E5_tL62mUbc">video</a>, and to <a href="https://twitter.com/#!/clkao">Chia-liang Kao</a> for proofreading the Chinese translations in my <a href="http://lohutok.net/talks/enlightenment.pdf">slides</a>.</em>)</p>
<p>Over the years, I&#8217;ve started thinking that participating in the open source community is like traveling on a path, toward becoming not only better programmers, but also becoming better people by working together.</p>
<p>You might think of it as a path toward enlightenment, growing ourselves as human beings. So what follows is really my personal philosophy which I&#8217;d like to share with you.</p>
<p>The first thing is this: The most important part of every open source project is the people. While code is important, the center is always the people.</p>
<p>There are different kinds of people involved in a project: People who code, who write documentation, who write tests. People who use your software, too, are just as important for a project.</p>
<p>Also there are people who work on the software that your project uses &#8212; you&#8217;re likely using projects from other people in the upstream, and you might want to send them a patch from time to time.</p>
<p>Or maybe you&#8217;re writing a library or a module, and so other people will be using your software, and communicating with you as their upstream as well.</p>
<p>So why do people work on open source software? This is a very important question to ask, in order to understand how open source works.</p>
<p>For people&#8217;s day jobs, they may be working with software already. And why would they take the extra effort to work on open source? Part of it is that it involves working on exciting things and new technologies.</p>
<p>Sharing is also a large part of it; as we share with each other, we increase the amount of fun for everyone working together on an open source project.</p>
<p>People also work on open source in a spirit of giving to others; in doing that we&#8217;re reaching out as human beings, and this is a very important part of being human.</p>
<p>There are many rewards, too. A big one is respect: As we create something new, draw people in, and share software with them that they can work on too, they recognize who you are and what you are capable of, which gives you a sense of accomplishment.</p>
<p>Conversely, it means that we want to make sure that we show respect to people joining our projects in any way we can, because it helps them to stay involved.</p>
<p>Another important aspect is appreciation; as people publish their work, if you talk with them &#8212; Even just a simple thank-you email message saying &#8220;this meant a lot of me&#8221;, it helps bring about a culture that keeps everybody motivated.</p>
<p>Credit is also important. As you are presenting a project, be sure to mention other people around you, saying &#8220;this person did such a wonderful thing&#8221;, so we can build a feeling of community together.</p>
<p>One of the things that keeps people interested in open source is that, as we work together, we become stronger and can do more.</p>
<p>Part of it is simple math: 2x people makes at least 2x code, and 3x people makes 3x code, although there is much more to it than that.</p>
<p>When we work together, we can make each other stronger and better &#8212; part of that is encouraging each other; as you see people working on a very difficult problem, you can encourage them saying &#8220;you are doing great, and I see you will do great in the future&#8221;.</p>
<p>You can empower people just by talking and sharing with them.</p>
<p>And then also there&#8217;s the fact that, when you have many people together, they&#8217;ll have different sets of skills. When you are working together, maybe you know the five things the project needs, and they know the other five things, and so you have the complete set of skills to finish the project, which wouldn&#8217;t be possible if either of you worked alone.</p>
<p>So the effect is not only a linear increase in productivity; there&#8217;s a multiplication effect when people start working together.</p>
<p>Encouraging each other to look beyond, to look into the future, is also important &#8212; We can all inspire others to solve interesting problems. Sometimes just saying &#8220;I have an idea&#8221; is enough for someone else to make it into reality.</p>
<p>Sometimes you&#8217;d look at what someone else is doing &#8212; you have not done all the work, but you have the critical idea they needed, and so with that idea they can reach out and go much further.</p>
<p>The key thing about working on open source is that we&#8217;re not just standing alone. When you are working with other people, the main thing you&#8217;d want to improve is your communication skills.</p>
<p>We communicate about the plans we have: How we want to make the software, personal plans such as a feature you want to work on, and so on.</p>
<p>One of the things I observed in open source communities is this: People often have good plans to create software, but they sometimes clash and fail to communicate with each other about plans. If you work on one plan alone, without communication, you may end up hurting people working on other plans.</p>
<p>So it&#8217;s like a hive of bees &#8212; a constant buzz keeps us all functioning.</p>
<p>We&#8217;ll also often communicate about possible futures: What&#8217;s the best way to solve a technical problem? When this happens, you may communicate in a way that&#8217;s contentious and angry, making it very hard to make actual progress.</p>
<p>One of the things we&#8217;re learning in our process is how to embrace all possibilities. Keep working on the possibility you&#8217;ve imagined, but remain fully open to other possibilities other people may have.</p>
<p>And as you make progress, you&#8217;ll also be communicating constantly about what you have done &#8212; There&#8217;s email, there&#8217;s twitter&#8230; there are many ways to let people know about your progress.</p>
<p>Sometimes we may feel shy, or not wanting to be seen as bragging. But that&#8217;s not what it is! It&#8217;s good for the project, and for the people as well, because they can learn from what you have done.</p>
<p>Another aspect of communication skills is the ability to ask questions. The advantage of having a community is that some people might have solved your problem before, and asking a question on a forum or IRC may save you days of work.</p>
<p>In the same way, when others are learning, you can be responsive to them too, instead of putting them down like answering with &#8220;RTFM&#8221; for simple questions.</p>
<p>It&#8217;s true that answering &#8220;RTFM&#8221; maybe save you a bit of time, but it is also teaching that person that they shouldn&#8217;t ask those questions in the first place. That is not what you want to teach people at all &#8212; you want to teach them to communicate with others.</p>
<p>Also, learn how to make answers that are helpful to people, and help them see that they can also walk down the path as well, and take the path further in the future.</p>
<p>Sometimes you do have to criticize people; we should be open to many ways of doing things, but sometimes one technical solution really is more correct than others. However, the best way to get people to change their ways is to answer them kindly, so they can be open to learning from you.</p>
<p>You have to show some grace, even to people who do not respond very well. Some people may be harsh with you, but this is also part of the path. Sometimes it helps to have a thicker skin, and even in situations when other people should have said things nicer and better, maybe there&#8217;s a bit of truth in what they are saying, and you can still learn from that.</p>
<p>From this perspective, even if they speak in a way that is not polite, you can still respond politely.</p>
<p>The other half of communication is not talking, but listening. Instead of telling others what we think, sometimes all that&#8217;s needed is just sitting very quietly, and let others talk.</p>
<p>It&#8217;s not just listening, though &#8212; it&#8217;s important to have empathy. As the saying goes, &#8220;If you really want to understand someone, you have to walk a mile in their shoes&#8221; &#8212; perhaps so you can get the blisters they have experienced.</p>
<p>Now, some people think you have to be a genius to work on open source software, but that is simply not true. There are people like Larry and Guido and Linus, yes, but there are also so many different kinds of talents that any projects needs, too.</p>
<p>And no matter how smart you are, it&#8217;s important to stay humble. Because with humility, you will be open to other people, and see new ways of doing things. Humility lets you welcome other people into your project. Pride, on the other hand, is essentially telling people &#8220;I don&#8217;t need you; I can do things my way.&#8221;</p>
<p>By being humble, we also welcome people with diversity of genders, of different cultures, creating a richness in open source by opening to different kinds of people.</p>
<p>The diversity also appears between different projects; it&#8217;s almost like languages and cultures of different countries. For example, the community around Linux, Perl, Ruby, and Python all communicate and collaborate differently.</p>
<p>And by being humble with each other, maybe we can see that our project is not the only way, and maybe we can appreciate the ways of other communities.</p>
<p>Now, open source is not all about fun &#8212; it&#8217;s fun, of course, but it&#8217;s also a responsibility. When you agree to participate in a project, you&#8217;re taking a weight on your shoulders, and it&#8217;s a good thing, as it teaches us to improve ourselves and become better humans.</p>
<p>But life can get in the way &#8212; significant others, parents, children, jobs &#8212; we may accept responsibility for a time, but there may also be a day where we can&#8217;t carry so much responsibility anymore.</p>
<p>So there is a cycle, where you start by assuming more and more of a role in a community, and as life goes on, you gradually take on less and less responsibility. This is entirely natural, and it&#8217;s bound to happen in a project&#8217;s life cycle.</p>
<p>So it&#8217;s worth keeping this question in your mind: &#8220;Who will continue my work when I no longer have the time?&#8221;</p>
<p>To make sure other people can continue our work, we can think of it as a continuous process: Teaching and sharing the knowledge we&#8217;ve learned, and at the same time learning more and more from other people &#8212; a continuous process of gaining and sharing knowledge.</p>
<p>Finally, as you work on open source, please be happy, with a smile on your face, and make other people happy! Because this happiness is what gives us the power to make great things.</p>
<p>Do you feel happier now? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/317/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=317&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2012/04/15/open-source-enlightenment/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
		<item>
		<title>Tody Task Manager</title>
		<link>http://allisonrandal.com/2011/12/31/tody-task-manager/</link>
		<comments>http://allisonrandal.com/2011/12/31/tody-task-manager/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 02:50:27 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[experiment]]></category>
		<category><![CDATA[floss]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=309</guid>
		<description><![CDATA[Failing to find any free software task manager I could live with, I created my own over the December holidays. I called it &#8220;Tody&#8221;. It&#8217;s a simple GUI app, focused on quick searching, editing, and tagging for tasklists. The file format it uses is identical to the plain text format used by Gina Trapani&#8217;s Todo.txt [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=309&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://allisonrandal.com/2011/12/12/free-software-for-task-management/">Failing to find any free software task manager I could live with</a>, I created my own over the December holidays. I called it &#8220;Tody&#8221;. It&#8217;s a simple GUI app, focused on quick searching, editing, and tagging for tasklists. The file format it uses is identical to the plain text format used by Gina Trapani&#8217;s <a href="http://todotxt.com/">Todo.txt</a> command-line tool and Android app, it even loads preferences from the Todo.txt config file. Since the file format is plain text, tasklists can be shared between machines (or users) over Ubuntu One or Dropbox.</p>
<p>I created it using Rick Spencer&#8217;s Quickly templates (GTK, Glade, and Python). I went for a streamlined workflow for the way I use tasklists, so I&#8217;m curious if it will map well to others. It appears as a simple text file, with a search box at the top of the window. Clicking on a tag performs a search for the tag (these are similar to Twitter tags, any word that starts with &#8220;@&#8221; or &#8220;+&#8221;). The list sorts tasks by priority (marked with &#8220;A&#8221;, &#8220;B&#8221;, &#8220;C&#8221;, etc) and then alphabetically. When the list is limited to search results, the search terms are highlighted in the tasks.</p>
<p style="text-align:center;"><a href="http://allisonrandal.files.wordpress.com/2011/12/tasklist.png"><img class="size-medium wp-image-311 aligncenter" title="tasklist" src="http://allisonrandal.files.wordpress.com/2011/12/tasklist.png?w=300&#038;h=200" alt="" width="300" height="200" /></a></p>
<p>Clicking on the text of a task brings up an editor window, with a checkbox for &#8220;Done&#8221; tasks, a field to edit the task, and clickable palettes for task priorities and all the tags you&#8217;ve used previously in your tasklist. It&#8217;s streamlined with shortcuts, so typing Space, Enter marks a task as done, saves it, and closes the editor window.</p>
<p style="text-align:center;"><a href="http://allisonrandal.files.wordpress.com/2011/12/taskedit.png"><img class="size-medium wp-image-310 aligncenter" title="taskedit" src="http://allisonrandal.files.wordpress.com/2011/12/taskedit.png?w=300&#038;h=125" alt="" width="300" height="125" /></a></p>
<p>I&#8217;ve started using Tody as my primary task manager, after dumping all my old tasks from other task managers into one text file. I&#8217;d like to tweak the search feature, right now it does a completely literal string search, but I&#8217;ll change it to split up search terms (so it&#8217;s not sensitive to order of terms). Then the next step is to link it up with my <a href="http://allisonrandal.com/2011/12/12/free-software-for-task-management/">Todo Lens</a>, so the edit window for Tody pops up as the action for clicking on a task in the Lens.</p>
<p>The Tody app is up on my PPA, let me know if you try it out and have any requests for features that fit your workflow:</p>
<pre>https://launchpad.net/~allison/+archive/ppa</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/309/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=309&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2011/12/31/tody-task-manager/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>

		<media:content url="http://allisonrandal.files.wordpress.com/2011/12/tasklist.png?w=300" medium="image">
			<media:title type="html">tasklist</media:title>
		</media:content>

		<media:content url="http://allisonrandal.files.wordpress.com/2011/12/taskedit.png?w=300" medium="image">
			<media:title type="html">taskedit</media:title>
		</media:content>
	</item>
		<item>
		<title>Free Software for Task Management</title>
		<link>http://allisonrandal.com/2011/12/12/free-software-for-task-management/</link>
		<comments>http://allisonrandal.com/2011/12/12/free-software-for-task-management/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 22:40:16 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[experiment]]></category>
		<category><![CDATA[floss]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=297</guid>
		<description><![CDATA[I am perpetually trying out online task management tools. My never-ending quest is to tame the massive sea of things I should be doing at any given moment, both making sure that important tasks don&#8217;t get lost in the mix, and to extract a reduction more closely approximating &#8220;the most important thing to accomplish right [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=297&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I am perpetually trying out online task management tools. My never-ending quest is to tame the massive sea of things I should be doing at any given moment, both making sure that important tasks don&#8217;t get lost in the mix, and to extract a reduction more closely approximating &#8220;the most important thing to accomplish right now&#8221;. My two favorites at the moment are <a href="http://www.thymer.com/">Thymer</a> and <a href="http://rypple.com">Rypple</a>, but neither is perfect.</p>
<p>I like Thymer&#8217;s simple task creation, twitter-like tagging of tasks, and the smooth drag-and-drop motion for prioritization. But, at the end of the day, it&#8217;s just a massive web page of &#8220;things I should be doing&#8221; and gives me no assistance in taming the beast. I have to manually prioritize each task, and if I want the priorities assigned to tasks to be at all relevant, I have to go on manually gardening them every day. And, while task creation is as easy as tweeting, task editing is a clunky collection of buttons and drop-down menus. The tags are handy in small numbers (and projects really are just tags with a slightly different display), but any more than about 10 unique tags/projects across my whole data set becomes a jumble at the top of the screen and not at all helpful in finding anything. Thymer offers some reporting features, but I never found them particularly useful.</p>
<p>I like Rypple&#8217;s social features, it&#8217;s got a good take on sharing thanks and feedback, and the 1:1 pages (a collection of tasks you share with another person) are incredibly useful for weekly meetings with co-workers. I like the organization of tasks by goal rather than by project, it encourages grouping tasks into larger sequences toward an overall purpose. But, I found that I still needed some goals that were really just projects or a collection of semi-related tasks, so the construct was a little artificial. Rypple offers a tagging feature, but tag links don&#8217;t do anything useful (like take you to a page listing tasks with the same tag), and a task can&#8217;t live in more than one goal at the same time, so there isn&#8217;t really any good way to pull up a group of cross-cutting tasks. And, Rypple also gives me little help in managing the mass, though it has drag-and-drop priority setting similar to Thymer.</p>
<p>The worst thing about both of them is that they&#8217;re neither open source nor open data. Philosophical considerations aside, this is an immediate practical problem, since my access to Rypple was only a free trial which is now ending.  I started with the best intentions of only putting in a few things to try it out, but it quickly became an integrated part of my working life, and I now have well over a hundred little individual blobs of data (tasks) that I&#8217;m tracking there. Because it&#8217;s not open source, I can&#8217;t fire up my own instance of it. And because it&#8217;s not open data, I can&#8217;t get a dump of my tasks. So, I&#8217;ll have to manually copy every bit to some other task management system. Which means I&#8217;m in the market for a new task management tool, with a very immediate enlightened self-interest in picking something that&#8217;s both open source and open data.</p>
<p>Yesterday, I tried out <a href="http://todotxt.com/">Todo.txt</a>. The biggest appeal is the simple open data format, so simple that it would work just fine as a manually edited plain text file. But, it offers a GPL licensed command-line client for easier task creation, searching, sorting, grouping by project, priority, or &#8220;context&#8221; (a notion from &#8220;<a href="http://en.wikipedia.org/wiki/Getting_Things_Done">Getting Things Done</a>&#8220;). It also offers a GPL licensed Android client, which is in the process of being ported to the iPhone. On the downside, it doesn&#8217;t offer any collaborative features, so I can manage my own tasks, but can&#8217;t share tasks with others, or even provide visibility to others on a subset of my tasks or projects. And while creating tasks on the command-line is clean and simple, actually viewing/managing my 100+ tasks on the command-line (or Android client) feels a bit like viewing an elephant through a pinhole. It doesn&#8217;t have a desktop GUI client, though the wiki offers some suggestions on ways to integrate the simple plain text format into other desktop tools like <a href="http://conky.sourceforge.net/">Conky</a>. The results weren&#8217;t thrilling (not really any better than the command-line), but they did give me an idea: how about a Unity Todo Lens?</p>
<p>I spent a few hours hacking on that, parsing the Todo.txt format in <a href="http://live.gnome.org/Vala">Vala</a> and displaying the results in a Unity Lens with a general search box and filters for Project, Priority, and Context. I&#8217;m pleased with the result for a short experiment, but there are some drawbacks. The Lens really wanted my filters to be statically compiled in advance, while I wanted to create the filter sets on-the-fly from the Todo.txt file (i.e. let me filter by Projects that are in my tasks, not for some list of projects determined in advance). I may be able to hack around that with more time or a Python Lens instead of Vala. Also, a Unity Lens is a great interface for searching tasks, but not great for managing tasks. There&#8217;s only one &#8220;action hook&#8221; for a task, when you click on the icon/title. You can make that one action do anything you want, but it&#8217;s still only one action. I could make that one action mark a task as done (that seems most logical), but I&#8217;d still have to go back to the command-line to add new tasks, and edit task descriptions, priorities, projects, contexts, etc&#8230; Which takes me back to the original problem that the command-line isn&#8217;t a great interface for those tasks. What I really want is a slick, simple GUI client that the Lens could launch whenever a task is clicked in the search interface. Possibly a project for another weekend.</p>
<p>That&#8217;s all the time I have to work on the idea right now. While I leave it sitting for a bit, any suggestions on free software+open data task management tools you love? Or hate?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/297/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=297&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2011/12/12/free-software-for-task-management/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
		<item>
		<title>Appreciation for Kees Cook</title>
		<link>http://allisonrandal.com/2011/11/20/ucaday/</link>
		<comments>http://allisonrandal.com/2011/11/20/ucaday/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 18:23:49 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=286</guid>
		<description><![CDATA[Today is Ubuntu Community Appreciation Day, a new tradition in the Ubuntu community started by Ahmed Shams El-Deen of the Ubuntu Egypt LoCo. I&#8217;d like to take this opportunity to show appreciation for Kees Cook, who many years ago took time out of a busy conference to teach me how to build my first .deb [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=286&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today is <a href="https://wiki.ubuntu.com/UCADay">Ubuntu Community Appreciation Day</a>, a new tradition in the Ubuntu community started by <a href="https://wiki.ubuntu.com/AhmedShams">Ahmed Shams El-Deen</a> of the <a href="https://wiki.ubuntu.com/EgyptTeam">Ubuntu Egypt LoCo</a>. I&#8217;d like to take this opportunity to show appreciation for <a href="https://wiki.ubuntu.com/KeesCook">Kees Cook</a>, who many years ago took time out of a busy conference to teach me how to build my first .deb package. That welcoming spirit &#8212; that patient recognition that every green newbie has the potential to become a future valuable contributor &#8212; is a key part of community strength and growth. It&#8217;s a pattern I emulate, and a gift I repay, by welcoming and mentoring other new developers. Over the years, Kees has demonstrated sane, sensible, calm, and wise technical leadership at OSDL (now known as <a href="http://www.linuxfoundation.org/">The Linux Foundation</a>), on the Ubuntu security team, and more recently on the Ubuntu Technical Board. There are many reasons I have confidence in the future of Ubuntu, and he is one of them. Thanks, Kees!</p>
<p>I&#8217;d like to thank the entire Ubuntu community for renewing my faith in the humanity of free software. When I stumbled on Ubuntu all those years ago, I had already been working in free software for what felt like a century, and was&#8230;well, tired. Your joy and delight in bringing free software to the world inspired me, and restored my passion for contributing. The heart and soul of free software is people like you, changing the world for the better every day. Thank you all!</p>
<p style="text-align:center;"><a href="https://wiki.ubuntu.com/UCADay"><img class="aligncenter" title="Ubuntu Community Appreciation Day" src="http://allisonrandal.files.wordpress.com/2011/11/ucaday-64px.png?w=64&#038;h=64" alt="" width="64" height="64" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=286&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2011/11/20/ucaday/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>

		<media:content url="http://allisonrandal.files.wordpress.com/2011/11/ucaday-64px.png" medium="image">
			<media:title type="html">Ubuntu Community Appreciation Day</media:title>
		</media:content>
	</item>
		<item>
		<title>Mythbusters &#8211; UEFI and Linux (Part 2)</title>
		<link>http://allisonrandal.com/2011/11/16/mythbusters-uefi-and-linux-part-2/</link>
		<comments>http://allisonrandal.com/2011/11/16/mythbusters-uefi-and-linux-part-2/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 06:54:58 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[experiment]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=281</guid>
		<description><![CDATA[Following up on my earlier post on UEFI and Linux, I got access to an identical system to the one with the original problem (an HP S5-1110) this week to do some install testing with various scenarios: 1) When I run through the standard install process with the Kubuntu 11.10 amd64 CD, I get exactly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=281&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Following up on my earlier post on <a href="http://allisonrandal.com/2011/11/04/mythbusters-uefi-and-linux/">UEFI and Linux</a>, I got access to an identical system to the one with the original problem (an HP S5-1110) this week to do some install testing with various scenarios:</p>
<p>1) When I run through the standard install process with the Kubuntu 11.10 amd64 CD, I get exactly the same problem as James: I end up with a machine that has Kubuntu installed on a partition, but will still only boot into Windows. (I also get an explicit error message during the install saying &#8220;The &#8216;grub-efi&#8217; package failed to install into /target/. Without the GRUB boot loader, the installed system will not boot.&#8221;)</p>
<p>2) Installing from the Kubuntu CD and wiping the HD has the same problem as (1), and the same error message.</p>
<p>3) Installing from the Ubuntu 11.10 amd64 CD into the same dual-boot configuration as (1) also won&#8217;t boot the Ubuntu partition, but it gives no explicit error message about the grub install failure.</p>
<p>4) When I install from the Ubuntu 11.10 amd64 CD and completely wipe the HD and replace it with Ubuntu, the install works perfectly, and the machine boots into Ubuntu afterwards with no problems. I can also install the &#8216;kubuntu-desktop&#8217; package on the working system, and get a working Kubuntu desktop.<strong> This tells me that we&#8217;re not dealing with a UEFI or hardware</strong><strong> compatibility issue here, just an issue with partitioning and the</strong><strong> bootloader.</strong> Which is what James and I suspected last week, but it&#8217;s nice to have explicit confirmation (without wiping his friend&#8217;s machine).</p>
<p>5) Back to the Windows/Ubuntu dual-boot scenario in 3. <a href="http://neosmart.net/wiki/display/EBCD/Ubuntu">Installing EasyBCD</a> doesn&#8217;t quite work. It does give me a prompt in the &#8220;Windows Boot Manager&#8221; to choose between Windows and Ubuntu, but when I choose Ubuntu it just takes me to the grub prompt. That&#8217;s progress anyway. At the grub prompt, I type:</p>
<pre style="padding-left:30px;">
grub&gt; root (hd0, 4)
grub&gt; kernel /boot/vmlinuz-3.0.0-12-generic root=/dev/sda5
grub&gt; initrd /boot/initrd.img-3.0.0-12-generic
grub&gt; boot</pre>
<p>And, it boots fine from the Ubuntu partition.</p>
<p>That&#8217;s all the time I had so far. A few observations about the system as it shipped from the factory. Windows is booting using a custom bootloader, the <a href="http://en.wikipedia.org/wiki/Windows_Vista_startup_process">Windows Boot Manager</a> which bypasses UEFI. In the dual-boot configuration that doesn&#8217;t work, the UEFI &#8220;BIOS&#8221; configuration and the efibootmgr command-line utility both recognize that the machine has a UEFI boot option for &#8220;ubuntu&#8221;, but choosing that during startup from the boot options still diverts straight to Windows. The machine didn&#8217;t ship with <a href="http://en.wikipedia.org/wiki/GUID_Partition_Table">GPT</a> partitions (which are one of the advantages of UEFI), instead it shipped with an old-fashioned MBR partition scheme (limited to 4 physical partitions). The working Ubuntu configuration (total machine wipe) does set up proper GPT partitions.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/281/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=281&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2011/11/16/mythbusters-uefi-and-linux-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
		<item>
		<title>Quixperiment: Ubuntu and iPod</title>
		<link>http://allisonrandal.com/2011/11/06/quixperiment-ubuntu-and-ipod/</link>
		<comments>http://allisonrandal.com/2011/11/06/quixperiment-ubuntu-and-ipod/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 19:41:49 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[experiment]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=275</guid>
		<description><![CDATA[I have an old iPod that I occasionally use on car trips, but haven&#8217;t really modified in years (it mostly sits on a shelf). This morning I decided to play around a bit with hooking it up with my main Ubuntu desktop. I found a good list of options for managing an iPod in Linux [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=275&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I have an old iPod that I occasionally use on car trips, but haven&#8217;t really modified in years (it mostly sits on a shelf). This morning I decided to play around a bit with hooking it up with my main Ubuntu desktop. I found a good list of <a href="http://en.wikipedia.org/wiki/Comparison_of_iPod_Managers#Linux">options for managing an iPod in Linux</a> on Wikipedia, and decided to try out both <a href="http://www.gtkpod.org">gtkpod</a> and <a href="http://www.rhythmbox.org">Rythymbox</a>. Both seemed to work pretty well for interfacing to the iPod, no a super-shiny interface, but usable. A slight advantage to gtkpod, because it displayed my Smart Playlists, while Rhythmbox only displayed the static ones. Between the two, I can imagine using Rhythmbox as my primary music player, but would probably only use gtkpod for directly managing the iPod.</p>
<p>I copied my iPod music library over to Rhythmbox&#8217;s local library, just to try it out. It copied 3,249 tracks out of the 3,359 that were on my iPod. I got a few errors about duplicate files during the copy, all with generic file names like &#8220;01 &#8211; Track 01.mp3&#8243;. There were ~4-5 CDs like this, each with ~19-25 tracks, so that seems to account for the missing 110 tracks, though I didn&#8217;t keep exact notes, or do an exact comparison to see which files were missed. I&#8217;m guessing a handful of CDs I had loaded on the iPod were ripped with generic file names rather than specific titles, and that the iPod was separating them by directory structure, while Rhythmbox was loading them all in one directory so the file names conflicted. Just a guess, I&#8217;ll look into it more later if it ends up being useful.</p>
<p>Things I wish for in Rhythmbox:</p>
<ul>
<li>The ability to copy a playlist from the iPod to the local music library, instead of recreating it.</li>
<li>The ability to synchronize my music and playlists between different computers/devices (will look into <a href="https://one.ubuntu.com">Ubuntu One</a> for this later, it has some relevant features, though possibly not yet the full user journey I&#8217;m looking for).</li>
<li>A way to split up my local library into Music, Audiobooks, and Language Learning. Shuffle mode is pretty useless when it brings up random chapters of &#8220;The Hitchhiker&#8217;s Guide to the Galaxy&#8221; or snippets of Afrikaans language drills. I found suggestions that it&#8217;s <a href="https://help.ubuntu.com/community/Rhythmbox#Multiple_Library_Directories">possible to configure multiple Libraries for Rhythmbox in gconf</a> even though it&#8217;s not displayed in the GUI, but there was no &#8216;library_locations&#8217; key in /apps/rhythmbox, so I&#8217;ll have to poke around a bit more later to see if it&#8217;s still a valid key in current versions of Rhythmbox. (Separating libraries is a problem on the iPod itself, so this is just a same-old existing irritation repeated in a new piece of software.)</li>
<li>A shinier user interface, that makes it easier to find artists, albums, or songs I want to listen to.</li>
<li>More informative error messages when failing to copy files.</li>
<li>I found one work-in-progress on <a href="https://code.launchpad.net/~markjtully/+junk/rhythmbox-scope">integration between Rhythmbox and the Music Lens</a>, I&#8217;d like to see that complete.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/275/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=275&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2011/11/06/quixperiment-ubuntu-and-ipod/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
		<item>
		<title>Mythbusters &#8211; UEFI and Linux</title>
		<link>http://allisonrandal.com/2011/11/04/mythbusters-uefi-and-linux/</link>
		<comments>http://allisonrandal.com/2011/11/04/mythbusters-uefi-and-linux/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 16:17:29 +0000</pubDate>
		<dc:creator>allison</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://allisonrandal.com/?p=268</guid>
		<description><![CDATA[A recent blog post about a user who was having trouble installing Ubuntu on an HP machine, sparked off an urban legend that UEFI secure boot is blocking installs of Linux. To calm FUD with facts: the secure boot feature hasn&#8217;t been implemented and shipped yet on any hardware. It was introduced in the 2.3.1 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=268&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A recent blog post about a user who was having <a href="http://benjaminkerensa.com/2011/10/23/uefi-headaches-begin-linux/">trouble installing Ubuntu on an HP machine</a>, sparked off an urban legend that UEFI secure boot is blocking installs of Linux. To calm FUD with facts: the secure boot feature hasn&#8217;t been implemented and shipped yet on any hardware. It was introduced in the 2.3.1 version of the UEFI specification, which was released in April 2011. Hardware with secure boot will start shipping next year.</p>
<p>It&#8217;s important to distinguish between UEFI in general and the new secure boot feature. UEFI has been around for a while, starting its life as the &#8220;Intel Boot Initiative&#8221; in the late &#8217;90s. It has a number of advantages over old BIOS, including substantially faster boot times, the ability to boot from a drive larger than 2.2 TB, and the ability to handle more than 4 partitions on a drive. The UEFI specification is developed by the members of the <a href="http://www.uefi.org">UEFI Forum</a>, a non-profit trade organization with various levels of free and paid memberships. UEFI is not a problem for Linux. At the <a href="http://www.uefi.org/events/">UEFI Plugfest</a> in Taipei last week, Alex Hung (Canonical) tested Ubuntu 11.10 on a number of machines, with success even on pre-release chipsets. The few failures seemed to be related to displays, and not particularly to UEFI.</p>
<p>The secure boot feature of UEFI is a concern for Linux, but not because of the specification. The features outlined in the 2.3.1 specification are general enough to easily accommodate the needs of Linux. But, within the range of possible implementations from that specification, some alternatives could cause problems for Linux. For full details, I recommend reading the two whitepapers released by <a href="http://blog.canonical.com/2011/10/28/white-paper-secure-boot-impact-on-linux/">Canonical and Red Hat</a> and by <a href="http://www.linuxfoundation.org/publications/making-uefi-secure-boot-work-with-open-platforms">The Linux Foundation</a>. The short version is that secure boot uses signed code in the boot path in much the same way you might use a GPG signed email message: to verify that it came from someone you know and trust. The beneficial ways of implementing this feature allow the individual (or administrator) who owns the machine to add new keys to their list, so they get to choose who to trust and who not to trust. The harmful ways of implementing this feature don&#8217;t allow the user to change the keys, or disable the secure boot feature, which means they can&#8217;t boot anything that isn&#8217;t explicitly approved by the hardware manufacturer (or OS vendor). This would mean users couldn&#8217;t just download and install any old image of Debian, Fedora, Red Hat, SuSE, Ubuntu, etc. So, there&#8217;s real potential for a future problem here, but we&#8217;re not there yet. At this point, it&#8217;s a matter of encouraging the hardware companies to choose the beneficial path.</p>
<p>I&#8217;ve been chatting with the Ubuntu user who had the install problem, to see if we can find the real bug. It&#8217;s a friend&#8217;s machine rather than his own, so he doesn&#8217;t have easy access to it. I&#8217;ve arranged to get access to a similar machine next week to play with it. I&#8217;ll post back here if I find anything useful or interesting.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allisonrandal.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allisonrandal.wordpress.com/268/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allisonrandal.com&#038;blog=15282625&#038;post=268&#038;subd=allisonrandal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allisonrandal.com/2011/11/04/mythbusters-uefi-and-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/9fa42951d6f1d5532c26032ca89a01b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allisonrandal</media:title>
		</media:content>
	</item>
	</channel>
</rss>
