<?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>sirhc.us maxim.us &#187; oscon2010</title>
	<atom:link href="http://sirhc.us/tag/oscon2010/feed/" rel="self" type="application/rss+xml" />
	<link>http://sirhc.us</link>
	<description>the pathological prattle of a primal perl programmer</description>
	<lastBuildDate>Sat, 19 May 2012 21:07:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>OSCON 2010: Tuesday</title>
		<link>http://sirhc.us/oscon-2010-tuesday/</link>
		<comments>http://sirhc.us/oscon-2010-tuesday/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 23:20:03 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[Beer]]></category>
		<category><![CDATA[fivefingers]]></category>
		<category><![CDATA[ignite]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[rei]]></category>
		<category><![CDATA[vibram]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=471</guid>
		<description><![CDATA[I returned from the O&#8217;Reilly Open Source Convention three weeks ago, and I&#8217;ve had drafts for my Tuesday through Friday travel posts sitting around since then. I&#8217;ve finally found a moment on a lazy Sunday afternoon to enjoy a pint &#8230; <a href="http://sirhc.us/oscon-2010-tuesday/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I returned from the <a href="http://www.oscon.com/oscon2010/">O&#8217;Reilly Open Source Convention</a> three weeks ago, and I&#8217;ve had drafts for my Tuesday through Friday travel posts sitting around since then.  I&#8217;ve finally found a moment on a lazy Sunday afternoon to enjoy a pint of ale while writing.  Although, it is a beautiful day, which I&#8217;d be spending outdoors if my family weren&#8217;t sick (and I&#8217;m not convinced I&#8217;m altogether healthy).</p>
<p>Tuesday was the second and final day of the tutorial sessions.  In the morning I attended a tutorial on <a href="http://sirhc.us/journal/2010/07/21/oscon-2010-postgresql-reloaded/">PostgreSQL&#8217;s new hot stand-by and streaming replication features</a>; and, in the afternoon I attended part of a tutorial on <a href="http://sirhc.us/journal/2010/07/22/oscon-2010-hands-on-cassandra/">Cassandra</a>.  Why only part?  I&#8217;ll get to that.</p>
<p>I didn&#8217;t feel like going across the river to the food trucks for lunch, so I joined Debbie for lunch at <a href="http://burgerville.com/">Burgerville</a>.  Aside from the delicious food made from local ingredients, there are two things that struck me about Burgerville.  The first I noticed when I walked in the door: for the first time, disposing of my trash would require me to read instructions.  Burgerville uses three bins for trash: one for recyclable materials, one for compost, and finally one for trash that can neither be recycled nor composted.  I thought this was neat, though I did get a kick out of the soft drink cup.  It&#8217;s from the Coca-Cola company and advertises itself as something that can be composted; with the footnote that this was only possible in a large facility capable of composting such cups.  Not something one can throw into their garden compost pile, I guess.  The second thing I noticed caused me immediate regret: the receipt lists the calorie count of the foods ordered, along with carbohydrate and fiber content.  Looking over the details of the burger, onion rings, and raspberry milkshake I ordered, I decided that it would not be a very paleo day for me.  Oh well, the milkshake was very good.</p>
<p>While enjoying our carb-loaded, calorie-filled lunch, Debbie noticed someone wearing a pair of Vibram FiveFingers that we hadn&#8217;t seen before.  From a distance, they looked almost like normal shoes and appeared to be made with a dark brown suede.  With both of us deciding that a post-lunch, calorie-burning walk was called for, and sharing a desire to buy a new pair of FiveFingers, we set out for <a href="http://www.rei.com/stores/13">Portland&#8217;s REI</a> store.  A trip on the MAX, a walk, a few blocks on the trolley, and another walk brought us to the store.</p>
<p>The shoes turned out to be the <a href="http://www.vibramfivefingers.com/products/products_kso_trek_m.cfm">KSO Trek</a>.  They&#8217;re very nice and I&#8217;m considering purchasing a pair for hiking.  Unfortunately, I struck out on the trip.  REI has been having a hard time keeping FiveFingers in stock, so I wasn&#8217;t able to find or buy a pair of the Classic version.  Fortunately, I&#8217;m still satisfied with my KSOs, which I was wearing at the time.</p>
<p>Our impromptu quest for footwear took us well beyond the alloted time for lunch.  Fortunately, this time was not wasted.  While walking, we had received a call from our coworker back in the expo hall, who needed help setting up the <a href="http://www.quicinc.com/">QuIC</a> booth.  For some reason, it was fun being allowed into the expo hall while booths were still being constructed.  Not sure why, other than that I enjoy seeing things taken apart and (sometimes) being put back together.  After getting the booth set up, I made it to the second half of the Cassandra tutorial.  I&#8217;m told by those who attended the first half that I didn&#8217;t miss much.</p>
<p>We had some time to kill between the end of the day&#8217;s sessions and the evening&#8217;s Ignite talks.  So we walked a few blocks to a place called <a href="http://www.rontoms.net/">rontoms</a>.  Had I not been looking for the specific address, I would have walked right past, not noticing that this was either a restaurant or a bar.  The cavernous interior was devoid of anyone save the bartender and a waitress, who would disappear as quickly as she appeared.  The photographs on the wall, ost of which featured a man in an animal costume, ranged from strange to disturbing.  After a moment&#8217;s hesitation, we ventured out back to find a patio crowded with patrons enjoying food, beer, and spirits.  With what appeared to be only a single waitress working and not having particularly strong appetites, we went back inside, obtained pints directly from the bartender, and found a comfortable area to sit and chat.  Twice we encountered people entering the restaurant, looking for people they didn&#8217;t know by sight.  Both times my colleagues convinced them that we were those people; one girl even sat down with us for a few minutes before we let her in on the joke.  After a while, I received a page from Jonathan that there was beer, salami, and cheese being served outside the ballroom at the convention center.  This sounded like an excellent and delicious dinner to me, so I made my way back.</p>
<p>I hadn&#8217;t been to an <a href="http://www.oscon.com/oscon2010/public/schedule/detail/14332">Ignite</a> session before, so I was looking forward to this one.  Right off the bat we were warned that we would likely enjoy some talks and dislike others.  Fortunately, each talk would only last five minutes, so we were free to use the time to retrieve another beer.  By the time we returned, the talk would be over.  I don&#8217;t believe I took advantage of this, instead waiting for the break, during which some awards were being presented.</p>
<p>Two talks stand out in my memory.  The first, perhaps appropriately, was the first in the lineup: Paul Fenwick talking about <a href="http://www.oscon.com/oscon2010/public/schedule/detail/15650">Maximum XP: Optimising life for adventure</a> (which he gave again, at a much better pace, at the <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13183">Perl Lightning Talks</a>).  Presented in song, Paul&#8217;s message seemed to be to enjoy travel and to take advantage of opportunities to meet people and have fun.  Based on what I&#8217;ve read on his <a href="http://twitter.com/pjf">Twitter stream</a>, I&#8217;d say he&#8217;s been successful.</p>
<p>The other talk, <a href="http://www.oscon.com/oscon2010/public/schedule/detail/15513">Your Infinite Do-Loop Exercises Bores Me</a>, struck a chord with me.  John Scott and Jim Stogdill paired up for this talk, one would perform exercises while the other would speak, switching places at the halfway mark.  Not only was it refreshing to see a talk about fitness at a convention populated by a class of people not known for their physical exertion, but it was about a method of fitness I&#8217;ve recently become interested in.  While I don&#8217;t practice <a href="http://crossfit.com/">CrossFit</a> myself, I frequently look at the exercises on the site and prefer it to the typical, repetitive gym workout.  They also mentioned the <a href="http://paleodiet.com/">paleo diet</a>, which, along with the <a href="http://www.marksdailyapple.com/primal-blueprint-101/">primal lifestyle</a>, I&#8217;ve become a big fan of.</p>
<p>My coworkers all turned in early, so I hopped back on the MAX and headed downtown to have drinks with <a href="http://kevin.scaldeferri.com/blog/">Kevin</a> at <a href="http://www.baileystaproom.com/">Bailey&#8217;s Tap Room</a>.  I had a wonderful sour beer, which I no longer remember the name or origin of, and had the pleasure of meeting Steve, Jeff, and <a href="http://use.perl.org/~schwern/journal/">Michael Schwern</a>.  Jeff and Schwern were discussing the use of the <a href="http://search.cpan.org/dist/Log-Log4perl/">Log4perl</a> module in the latter&#8217;s <a href="http://github.com/gitpan">gitpan project</a>.</p>
<p>After last call at Bailey&#8217;s, I caught the last yellow line across the river and turned in myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: License to Fail</title>
		<link>http://sirhc.us/oscon-2010-license-to-fail/</link>
		<comments>http://sirhc.us/oscon-2010-license-to-fail/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 04:27:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[law]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[r0ml]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[warranty]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=513</guid>
		<description><![CDATA[Robert &#8220;r0ml&#8221; Lefkowitz This session is a companion to the session on competition r0ml presented on Wednesday. For those of us who, for whatever reason, were unable to attend the previous session, he provided us with five second summaries: Wednesday: &#8230; <a href="http://sirhc.us/oscon-2010-license-to-fail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6635"><em>Robert &#8220;r0ml&#8221; Lefkowitz</em></a></p>
<p>This session is a companion to the session on competition r0ml presented on Wednesday.  For those of us who, for whatever reason, were unable to attend the previous session, he provided us with five second summaries:</p>
<ul>
<li>Wednesday: Competition is bad, don&#8217;t do it.</li>
<li>Thursday: Licensing is bad, don&#8217;t do it.</li>
</ul>
<p>And with that, the session is over.</p>
<p>I&#8217;m kidding, of course.  The best part of any of r0ml&#8217;s talks is the logic he uses to get from his observation to his conclusion.  As he noted at the outset, the path typically takes us through the Middle Ages.</p>
<p>I don&#8217;t deal with lawyers very much in my day job, since I work in a support role for our engineering departments.  However, I know several people in our Open Source group, and have attempted to release some of the Perl modules I&#8217;ve written while on the job.  Doing so is decidedly non-trivial and, after two years I still haven&#8217;t been allowed to release my code.  To say I&#8217;m disappointed is an understatement.</p>
<p>My experience with lawyers has been that they are extremely cautious.  While frustrating, I understand that it&#8217;s their job to play it safe and to protect the company.  They are scared, almost beyond reason, that an Open Source license will find its way into a piece of intellectual property that they&#8217;d rather not release.  It can&#8217;t be easy trying to bridge the gap between the closed and open ways of doing business.</p>
<p>The topic was introduced with a question: What is the difference between copyright and plagiarism?  Plagiarism is forever.  I didn&#8217;t quite catch what r0ml meant by this, but I suspect it means that copyright (eventually) expires, granting the work in question to the public domain.  Plagiarism, if one can get away with it, creates an attribution that lasts forever.</p>
<p>That, if one is an Open Source geek, leads one to think about licenses.  Let&#8217;s take the attribution clause of the BSD, which contains two sub-clauses, for example.  It&#8217;s redundant.  It effectively means that the recipient of the source code can not claim credit for the author&#8217;s work.  Under copyright law, this is already the case, so why the redundancy.</p>
<p>In the name of efficiency and refactoring, r0ml mused whether it would be possible to reduce the number of license clauses to one.  He found this in the <a href="http://sam.zoy.org/wtfpl/">Do What The Fuck You Want To Public License</a>.</p>
<p>Through inductive reasoning, if we can reduce the number of clauses from two to one, we should be able to similarly reduce the number of clauses from one to zero.  After all, if we begin with the earlier premise that licenses are bad, this should be the goal, right?</p>
<p>First, briefly, why are licenses bad?  There are many reasons and many arguments; too many of each for this post, but to summarize a few important ones, as of this writing, the Open Source Initiative lists <a href="http://www.opensource.org/licenses/alphabetical">73 approved licenses</a>.  Choosing between them can be a daunting task.  Neither do all of these licenses play well with each other, further complicating the selection task if one is attempting to integrate differently-licensed source code.  Finally, it&#8217;s rare that anyone knows all that they are agreeing to in the license.</p>
<p>The Medieval sensibility was that all knowledge came either from God or from the Ancients.  As such, no one could claim credit for a work, because, without exception, it would be plagiarism.  For this reason, the majority of works produced during the Middle Ages were compilations, a representation of existing information.</p>
<p>We have a modern equivalent of this Medieval concept of copyright, called the Compilation Copyright.  A compilation of files in the public domain is assembled with copyright only on the compilation.  Further, no one may claim credit on the same collection of files.  Instead, a new compilation, or derivative work, must be created.</p>
<p>How bad has copyright gotten?  Well, thanks to the Apple development kit, there is a short piece of code, included in every project, that is separately copyrighted by everyone who has used the development kit.  This is getting out of hand, to say the least.</p>
<p>So r0ml wrote <tt>unlicense.rb</tt>, which will scan a directory recursively, removing any licenses it finds.  This, of course, is perfectly acceptable under the terms of the licenses being removed, so long as the files aren&#8217;t redistributed.  It does have the effect of pleasing the obsessive-compulsive user.</p>
<p>Under the laws of many countries, a copyright notice isn&#8217;t actually required to have a copyright.  This is particularly true in the United States and the European Union.  In fact, in the latter one cannot even waive the protections of copyright.  This creates the default case: without a license, nobody other than the author has the right to do anything with the code.  The default is <b>all rights reserved</b>.</p>
<p>Richard Stallman, founder of the GNU project and the Free Software Foundation, was not trying to protect the author of code from people downloading the code; rather, he created the GNU General Public License to protect the users of the code.  He felt that users have an inherent right to have access to the code running on their computer.  Thus, the primary reason for the creation of Open Source licenses was to protect the user.</p>
<p>Many companies claim that they have an Open Source business model.  Typically what this means is that they offer their software, or some subset of their software for free, under an Open Source license.  Then they offer support contracts, for usually high prices.  These aren&#8217;t really Open Source business models.  The <a href="http://sqlite.org/">SQLite</a> project has the only known true Open Source business model.  The software itself is released into the public domain.  This is a scary place for lawyers, especially those employed by large companies.  To assuage their concerns, the company that employs the author of SQLite will be more than happy to <a href="http://www.hwaci.com/cgi-bin/license-step1">sell them an Open Source license</a> for the code.</p>
<p>Next, r0ml talked about warranties.  In some jurisdictions, the default case under the law is that there is an implied warranty, unless stated otherwise.  Most of us have seen the disclaimer of warranty, included to protect the author, attached to the license in code we have downloaded (or added it to code we&#8217;ve released), usually in all capital letters.  While not a strict requirement to be in capital letters, it is a requirement that the disclaimer be made to stand out.  Often, licenses are in plain text files, so using a bold face type isn&#8217;t possible.  Hence, capital letters.  The simplest case of a disclaimer is such:</p>
<p><code>/* This program comes without any warranty, to the extent permitted by law. */</code></p>
<p>As we recall, the default case under the law is an implied warranty so including the phrase &#8220;to the extent permitted by law&#8221; is redundant.  Also, it should be noted that copyright law, in the United States, is codified at the Federal level, in <a href="http://www.law.cornell.edu/uscode/17/usc_sup_01_17.html">Title 17</a> of the United States Code, while warranty law is codified by the states.  This leads to many more jurisdictions, and far more potential confusion, for warranty law.</p>
<p>So finally, here is r0ml&#8217;s part serious, part humorous take away: don&#8217;t include either a copyright <b>or</b> a warranty with your code.  If a user sues you for damages under the implied warranty in a state court, counter-sue them in US federal court for copyright infringement.  After all, under the law they were not given permission to copy the code anyway.</p>
<hr />
<p>A question came at the end of the session, from someone who appeared mildly upset and defensive.  He pointed out that Stallman created the GNU General Public License for a good reason, which wasn&#8217;t mentioned by r0ml during his talk.  Someone had taken the code Stallman was freely distributing and sold it.  After which, they went back to Stallman to inform him that he could no longer distribute his own code, because he hadn&#8217;t licensed it.  The questioner appeared to be offended by the whole point of the session, apparently feeling that all the work Stallman has done for Free Software was being ridiculed and that, without these licenses, &#8220;capitalists&#8221; will simply steal the code for their own nefarious purposes.</p>
<p>To this, r0ml did have a response.  Copyright law has changed since Stallman faced the problem that led to his creation of Free Software.  It has become more strict and the requirement for registration has been dropped.  The point was made that the questioner is actually referring to the concept of provenance, not copyright.  However, this concept was not further explored as, unfortunately, time had run out.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-license-to-fail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Friday Morning Plenary Sessions</title>
		<link>http://sirhc.us/oscon-2010-friday-morning-plenary-sessions/</link>
		<comments>http://sirhc.us/oscon-2010-friday-morning-plenary-sessions/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 16:57:56 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[friday]]></category>
		<category><![CDATA[keynotes]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=531</guid>
		<description><![CDATA[I&#8217;m tired this morning after a long week at OSCON, so my ability to understand and summarize the Friday plenary sessions is diminished. As such, what follows won&#8217;t be terribly useful to anyone. Your Work in Open Source, 3 years &#8230; <a href="http://sirhc.us/oscon-2010-friday-morning-plenary-sessions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m tired this morning after a long week at OSCON, so my ability to understand and summarize the Friday plenary sessions is diminished.  As such, what follows won&#8217;t be terribly useful to anyone.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/13166">Your Work in Open Source, 3 years of Incremental Change</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6501">Chris DiBona</a> (Google, Inc.)</em></p>
<p>Google crawled 40 million files in <a href="http://code.google.com/">Google Code</a> to generate statistics on what&#8217;s in there.  Lines of code and numbers of commits are not the most useful of metrics but that&#8217;s what they have to use.</p>
<p>The Gnu General Public License is the most used license, at over 50%.  Of those, more than half have moved to GPL version 3.  Perl has declined a bit, but C has the most use, at about 40%.</p>
<p>Many companies are committing code, too.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/15005">Mayor Sam Adams</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/85585">Sam Adams</a> (City of Portland, Oregon)</em></p>
<p>Last September, Portland adopted one of the first Open Source policies in the nation.  They&#8217;ve committed themselves to open software, open data, and Open Source in the procurement process for software.</p>
<p>It&#8217;s pretty cool when a politician gets it.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/14836">Situation Normal, Everything Must Change</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6219">Simon Wardley</a> (Leading Edge Forum (CSC))</em></p>
<p>Simon started with a recap of the talk he gave last year, which showed correlations between the ubiquity and certainty.  All technologies follow the same curve, from having both low ubiquity and certainty up to having both high ubiquity and certainty.  The stages tend to be the innovation of a technology, the productization, and finally the comoditization.</p>
<p>The basic idea was that the cloud, as it is known, is still in its infancy.  As it matures, we will see innovations built on it at an accelerated rate.  If we don&#8217;t pay attention to it, we&#8217;ll be left behind.</p>
<p>Well defined processes stifle innovation.</p>
<p>Projects or teams can be organized by lifecycle: innovation, leverage, and commoditize.  This circles back on itself.  When one thing is commoditized, a new innovation can be built on top of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-friday-morning-plenary-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: State of the Onion</title>
		<link>http://sirhc.us/oscon-2010-state-of-the-onion/</link>
		<comments>http://sirhc.us/oscon-2010-state-of-the-onion/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 02:07:27 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Larry Wall]]></category>
		<category><![CDATA[live demo]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl 6]]></category>
		<category><![CDATA[Rakudo Star]]></category>
		<category><![CDATA[State of the Onion]]></category>
		<category><![CDATA[uncertainty]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=523</guid>
		<description><![CDATA[The Thursday sessions are over, but before I head out to the parties, I&#8217;m attending the 14th State of the Onion address. This is the always well-attended update on the universe of Perl. I immediately noticed that Larry is surrounded &#8230; <a href="http://sirhc.us/oscon-2010-state-of-the-onion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The Thursday sessions are over, but before I head out to the parties, I&#8217;m attending the 14th <a href="http://www.oscon.com/oscon2010/public/schedule/detail/14339">State of the Onion</a> address.  This is the always well-attended update on the universe of Perl.  I immediately noticed that Larry is surrounded by his wife and his son, the former dressed as an angel, the latter as a devil.</p>
<p>Larry claims that so rarely does he talk about Perl in the States of the Onion addresses that he has brought his conscience with him today to prod him in the right direction (the aforementioned angel and devil).</p>
<p>The current state of the onion is segmented into left, central, and right sections.  It can be labeled, say, 5 and 6.  They can also be labeled 0 and 1, for false and true.  Larry then asked a series of boolean questions, asking the audience to weigh in on the veracity.</p>
<p><strong>Do you think Perl 5 and Perl 6 are really the same language?</strong></p>
<p><strong>Do you think Perl 5 and Perl 6 are really different languages?</strong></p>
<p>As the angel and the devil argued, Larry pointed out that an important skill for a language designer is to be able to stay on the fence long enough until he can determine which side the grass is greener on.  Sometimes you discover that you&#8217;re sitting on the wrong fence and the voices in your head start to argue about which side has the greener grass.</p>
<blockquote><p>When the voices in your head start arguing if the purple cow eats greener grass than the brown fence, it&#8217;s time to see a doctor.  Or find a better drug dealer.</p>
<p>&mdash; Larry Wall</p></blockquote>
<p>This is, of course, a metaphor for being a language designer.  Sometimes you sit on the fence for language features, without ever knowing which direction is the better one.</p>
<p>Next up is a live demo of Perl 6; or, more specifically, of <a href="http://www.perlfoundation.org/perl6/index.cgi?rakudo_star">Rakudo Star</a>, which is scheduled to be released next week.  Some of the demos, without comment:</p>
<pre>.say if 6 %% $_ for 1..^6</pre>
<pre>[+] gather { take $_ if 6 %% $_ for 1..^6 }</pre>
<pre>[+] grep { 6 %% $_ }, 1..^6</pre>
<pre>~[+] grep 6 %% *, 1..^6</pre>
<pre>-> $n { $n == [+] grep $n %% *,  ..^ $n }</pre>
<pre>-> $n { $n == [+] grep $n %% *,  ..^ $n }(6)</pre>
<p>At this point, the examples scrolled off the screen due to a &#8220;whatever&#8221; example being run.  That&#8217;s good news, though.  It means Rakudo Star supports lazy lists and, as such, we finally have those infinite lists we&#8217;ve been promised:</p>
<pre>0, 1, ... *</pre>
<p>The whatever star can, in addition to being used as in an infinite series, can be used to curry a function:</p>
<pre>(1, 1, *+* ... *)[^20]    # Fibbonacci</pre>
<pre>(0, !* ... *)[^20]        # 0 1 0 1 0 1 ...</pre>
<p>In a recent video interview, Larry was asked, if he were hit by a bus, has he designated anyone to be his successor as the leader of the Perl 6 project?  His response was that he trusts the Perl community to choose the right person.</p>
<p>Onions can make you cry, so can disruptive technologies or innovations.  Almost everyone has labeled their technology as disruptive.  As such, the phrase has lost most of its meaning.</p>
<p>A disruptive technology simultaneously does something worse and does something better than its competitors.  In a time of the Unix philosophy of &#8220;do one thing and do it well,&#8221; Perl came along and attempted to do everything, but didn&#8217;t necessarily do any of it well.  The Unix philosophy was broken by its own utilities.  No one knew what a &#8220;thing&#8221; was, and no utility of the time did it well.  By the time Perl 4 turned into Perl 5, it demonstrated that a tool that was itself an entire tool shed could run circles around shell scripts.</p>
<p>In California, we once had many, many colonies of ants.  Now, most of California is populated by a <a href="http://en.wikipedia.org/wiki/Argentine_ant#Global_.22mega-colony.22">single colony of Argentine ants</a>.  This is because the colonies have forgotten how to fight with each other.  Perl 6 has benefited from multiple teams creating multiple implementations, in the end working together to create a better product, even if that product takes longer to complete.</p>
<blockquote><p>If you don&#8217;t like <a href="http://svn.pugscode.org/pugs/misc/camelia.txt">Camelia</a>, you can just fork off.</p>
<p>&mdash; Larry Wall</p></blockquote>
<p>The takeaway, I think: It is up to all of us to determine what Perl 6 will be.  What kind of disruptive technology will it be?</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-state-of-the-onion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Awesome Things You&#8217;ve Missed in Perl</title>
		<link>http://sirhc.us/oscon-2010-awesome-things-youve-missed-in-perl/</link>
		<comments>http://sirhc.us/oscon-2010-awesome-things-youve-missed-in-perl/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 22:18:16 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[pjf]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=520</guid>
		<description><![CDATA[Paul Fenwick (Perl Training Australia) Ever since I saw An Illustrated History of Failure two years ago, I&#8217;ve made it a point to see @pjf&#8216;s talks. That&#8217;s how I find myself in his mid-afternoon session, Awesome Things You&#8217;ve Missed in &#8230; <a href="http://sirhc.us/oscon-2010-awesome-things-youve-missed-in-perl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6631">Paul Fenwick</a> (Perl Training Australia)</em></p>
<p>Ever since I saw <a href="http://www.oscon.com/oscon2008/public/schedule/detail/3072">An Illustrated History of Failure</a> two years ago, I&#8217;ve made it a point to see <a href="http://twitter.com/pjf">@pjf</a>&#8216;s talks.  That&#8217;s how I find myself in his mid-afternoon session, <a href="http://www.oscon.com/oscon2010/public/schedule/detail/15764">Awesome Things You&#8217;ve Missed in Perl</a>.  Judging by the size of the crowd, I&#8217;m not the only one.  However, I won&#8217;t attempt to pass along his humour in this post.  I&#8217;d never do it justice.</p>
<p>In his introduction, Piers Cawley asked that we go wild when Paul took the stage, so the folks in the Google Wave session next door would be taken aback, and realize that Perl is not, in fact, dead.</p>
<p>People are still out there writing Perl as if still in the dark ages of 2008.  Paul doesn&#8217;t want us to write old Perl, but only new and shiny Perl.  This talk only covers practices that have come about since <em><a href="http://oreilly.com/catalog/9780596001735">Perl Best Practices</a></em> was released.</p>
<p>Object-oriented Perl is not awesome.  Not even close.  If you look at the old ways of doing it, all of them are either wrong, stupid, or both.  The rest are too hard.  There&#8217;s a simple way to fix this: use <tt><a href="http://search.cpan.org/dist/Moose/">Moose</a></tt>.  This module does so much of the infrastructure work of composing classes, it makes object-oriented programming enjoyable again.</p>
<p>Paul spent a lot of time giving a humorous, high-level overview of the features available in <tt>Moose</tt>.</p>
<p>The <tt>Moose</tt> module contains a huge number of extension modules in the <tt><a href="http://search.cpan.org/search?query=MooseX">MooseX</a></tt> namespace.</p>
<blockquote><p>When I have a problem, I go down to the pub with other Perl mongers and bitch.</p></blockquote>
<p>One of the limitations of Perl, that is exposed to <tt>Moose</tt>, is that not everything is an object.  This means methods like <tt>push()</tt> or <tt>isa()</tt> can&#8217;t be called on everything.  And checking types defeats the purpose of polymorphism.  Enter the <tt><a href="http://search.cpan.org/dist/autobox/">autobox</a></tt> module, which turns everything into an object.  As a bonus, it operates in lexical scope.  Moose exposes <tt>autobox</tt> through the <tt><a href="http://search.cpan.org/dist/Moose-Autobox/">Moose::Autobox</a></tt> module.</p>
<p>A module that Paul wrote, <tt><a href="http://search.cpan.org/dist/autodie">autodie</a></tt>, which is now included in core.  This lexically scoped module removes all of the boilerplate code that goes along with trapping errors from subroutines.</p>
<p>Not only is Perl 5.10 awesome, but Perl 5.10 regular expressions are awesome.  In particular, the introduction of named captures (via <tt>%+</tt>) made regular expressions extremely awesome.</p>
<p>Perl 5.10 also provides grammars in the regular expression engine.  This is the basis for Damian Conway&#8217;s <tt><a href="http://search.cpan.org/dist/Regexp-Gramars/">Regexp::Grammars</a></tt> module.</p>
<p>Referring to an article on <a href="http://sweeperbot.org/">SweeperBot</a> in <em><a href="http://www.theperlreview.com/">The Perl Review</a></em>.  However, there&#8217;s the problem of distributing a program that uses half of CPAN to users of inferior operating systems, such as Microsoft Windows.  That&#8217;s where the <a href="http://search.cpan.org/dist/PAR/"><tt>PAR</tt></a> module comes in.  It will pack up all of the modules used by the program, including the Perl interpreter itself if necessary, so a single, self-reliant file can be distributed to users who need it.</p>
<p>Remember to never optimize code.  Programmer time is far more valuable than CPU time.  However, when you must optimize code, profile first.  The <a href="http://search.cpan.org/dist/Devel-NYTProf/"><tt>Devel::NYTProf</tt></a> makes profiling awesome.</p>
<p>Code reviews are important, but Perl programmers are lazy.  Fortunately, the <a href="http://search.cpan.org/dist/Perl-Critic/"><tt>Perl::Critic</tt></a> module has read <em>Perl Best Practices</em> for you and will complain about where your code violates the practices in the book.  At my day job, it does about half the work of code reviews for me, loudly announcing violations of the coding standards that I enforce with an iron fist.</p>
<p>If you find an awesome module, buy the author a beer if you have the opportunity.  There&#8217;s also <a href="http://cpanratings.perl.org/">CPAN Ratings</a> to leave feedback or <a href="http://search.cpan.org/perldoc?perlthanks"><tt>perlthanks</tt></a> in recent versions of Perl.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-awesome-things-youve-missed-in-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: 21st Century Systems Perl</title>
		<link>http://sirhc.us/oscon-2010-21st-century-systems-perl/</link>
		<comments>http://sirhc.us/oscon-2010-21st-century-systems-perl/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 21:22:18 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl is not dying]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=516</guid>
		<description><![CDATA[Matt Trout (Shadowcat Systems Limited) The full title of this session is, 21st Century Systems Perl &#8211; the New Perl Enlightment for sysadmins Introduction While Perl isn&#8217;t dying, &#8220;PERL&#8221; most certainly is dying. This is a good thing, because it &#8230; <a href="http://sirhc.us/oscon-2010-21st-century-systems-perl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6644"><em>Matt Trout (Shadowcat Systems Limited)</em></a></p>
<p>The full title of this session is, <a href="http://www.oscon.com/oscon2010/public/schedule/detail/14095">21st Century Systems Perl &#8211; the New Perl Enlightment for sysadmins</a></p>
<p><b>Introduction</b></p>
<p>While Perl isn&#8217;t dying, &#8220;PERL&#8221; most certainly is dying.  This is a good thing, because it includes all the really crappy stuff, such as <a href="http://www.scriptarchive.com/">Matt&#8217;s Script Archive</a>.  Thank goodness for that.  To be fair, this code would have been horrible written in any language.  Remember, blame the artist, not the tool.</p>
<p>We have a very mature community, which means we also have very mature practices.  We are also converging on a standard platform, even if there are more than one ways to do something.</p>
<p><b>Part 1: Minimising Developer Fatalities</b></p>
<p>As a developer, we should do what we can to make our sysadmins&#8217; lives easier.</p>
<p>Right off the bat, we should use the <a href="http://search.cpan.org/dist/local-lib/"><tt>local::lib</tt></a> module, which allows an application to use custom library areas without polluting the system installation areas.  It can even work with <tt>/etc/skel</tt>.  Matt is a big fan of using a local library path, included with the application, so it can be maintained separately from both the operating system vendor&#8217;s modules and even other applications.</p>
<p>Improve module installation using <a href="http://search.cpan.org/dist/Module-Install/"><tt>Module::Install</tt></a>.</p>
<p>Package modules for your distribution of choice using <a href="http://search.cpan.org/perldoc?cpan2dist"><tt>cpan2dist</tt></a>.</p>
<p>Improve the CPAN experience using <a href="http://search.cpan.org/dist/App-cpanminus/"><tt>App::cpanminus</tt></a>, which is amazing easy to bootstrap:</p>
<pre>&gt; wget cpanmin.us
&gt; ./cpanm</pre>
<p>Start using all of the modules associated with best practices by installing <a href="http://search.cpan.org/dist/Task-Kensho/"><tt>Task::Kensho</tt></a>.</p>
<p>Vendors are getting better at distributing Perl and keeping up with module releases.  The Debian Perl team is the strongest, with Fedora lagging quite a bit far behind.  Fedora is finally getting better, now that members of the Perl community have a say in the packaging of Perl and the modules.</p>
<p>After many debug sessions, Matt has come to the conclusion that <tt>mod_$lang</tt> is evil.  Jamming languages into the web server is a bad, bad idea.  However, actually hooking into the different handlers can be useful.  Matt&#8217;s preference now is now <tt>FastCGI</tt>.</p>
<p><b>Part 2: Maximising Automation Banality</b></p>
<p>&#8220;In the systems world, shiny and exciting is not good.&#8221;</p>
<p>Use the <a href="http://search.cpan.org/dist/autodie/"><tt>autodie</tt></a> (in core as of 5.10) and the <a href="http://search.cpan.org/dist/IPC-System-Simple/"><tt>IPC::System::Simple</tt></a> modules to reduce the repetitiveness and the common errors of systems programming.</p>
<p>Use <a href="http://search.cpan.org/dist/IO-All/"><tt>IO::All</tt></a> to fix the syntax and semantics of I/O operations.</p>
<p>Systems script shouldn&#8217;t need to be deployed.  It should be possible to just drop the script onto a host and it will Just Work.  That&#8217;s where <a href="http://search.cpan.org/dist/PAR-Packer/"><tt>PAR::Packer</tt></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-21st-century-systems-perl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Dist::Zilla</title>
		<link>http://sirhc.us/oscon-2010-distzilla/</link>
		<comments>http://sirhc.us/oscon-2010-distzilla/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:11:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dist::Zilla]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[laziness]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=511</guid>
		<description><![CDATA[Ricardo Signes (Pobox.com) The full title of this talk is, Dist::Zilla &#8211; Maximum Overkill for CPAN Distributions. Every CPAN distribution contains a significant amount of crap. It&#8217;s infrastructure used for the distribution tools. ExtUtils::MakeMaker has been the traditional way to &#8230; <a href="http://sirhc.us/oscon-2010-distzilla/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/3189"><em>Ricardo Signes (Pobox.com)</em></a></p>
<p>The full title of this talk is, <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13632">Dist::Zilla &#8211; Maximum Overkill for CPAN Distributions</a>.</p>
<p>Every CPAN distribution contains a significant amount of crap.  It&#8217;s infrastructure used for the distribution tools.</p>
<p><a href="http://search.cpan.org/dist/ExtUtils-MakeMaker/"><tt>ExtUtils::MakeMaker</tt></a> has been the traditional way to work on the infrastructure code.  By necessity, it contains a lot of legacy, which can be cumbersome to maintain.  Enter <a href="http://search.cpan.org/dist/ExtUtils-MakeMaker/"><tt>Module::Install</tt></a>, which can look in the expected places for the necessary information, such as the author name.  But, the author still must write all the boilerplate.  <a href="http://search.cpan.org/dist/ExtUtils-MakeMaker/"><tt>Module::Starter</tt></a> was written to address this, composing all the boilerplate on behalf of the author.  There is so much boilerplate that, by default, Module::Starter also provides a boilerplate test to detect it.</p>
<p>Why are we doing all of this?  How much repetitive work are we doing?</p>
<p>What can <a href="http://search.cpan.org/dist/Dist-Zilla/"><tt>Dist::Zilla</tt></a> do for us?  For starters, we can remove some files:</p>
<ul>
<li><tt>LICENSE</tt></li>
<li><tt>MANIFEST.SKIP</tt></li>
<li><tt>Makefile.PL</tt></li>
<li><tt>README</tt></li>
<li><tt>t/pod.t</tt></li>
<li><tt>t/pod-coverage.t</tt></li>
</ul>
<p>Leaving us with only our <tt>Changes</tt> file, our code, and our tests.  The non-infrastructure parts.  On top of that, <tt>Dist::Zilla</tt> does all of the boring distribution bits for us.  It only handles the <tt>make dist</tt> command.  It does not handle the <tt>make install</tt> command, which means the users who install the module don&#8217;t need all of the dependencies.</p>
<p><tt>Dist::Zilla</tt> puts all of its functionality into plugins, which will be the meat of the rest of this session.  It also uses a very simple INI-style configuration file.</p>
<p>The main command provided by the module is <tt>dzil build</tt>.  This bundles the distribution, which will contain all of the infrastructure necessary for users to install the module.  When building, it follows a simple work flow:</p>
<ol>
<li>Gather files</li>
<li>Munge files</li>
<li>Collect metadata</li>
<li>Write out</li>
</ol>
<p>There is no default configuration, but there is a <a href="http://search.cpan.org/perldoc?Dist::Zilla::PluginBundle::Basic">Basic plugin bundle</a> that will include all of the most common plugins.</p>
<p>What followed were examples of what the plugins can do.  Of course, all of them are designed to reduce cruft&mdash;the non-code, non-documentation bits that we&#8217;re forced to maintain.  The philosophy is the same one I advocate to anyone who will listen: computers are good at doing boring, repetitive tasks with derived data; why don&#8217;t we let them do more of that stuff?</p>
<p>I&#8217;ve followed <a href="http://twitter.com/rjbs">@rjbs</a> on Twitter for a while, and I&#8217;ve seen him talk about <tt>Dist::Zilla</tt>.  I&#8217;ve wanted to try it out for a while, to simplify my distributions&mdash;both for CPAN and for my day job&mdash;but I didn&#8217;t realize until this session just how awesome the tool is.  It&#8217;s a complete framework for managing Perl module distributions.  <tt>Dist::Zilla</tt> will give my <a href="http://c2.com/cgi/wiki?LazinessImpatienceHubris">Laziness</a> score a huge bump.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-distzilla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Thursday Plenary Session</title>
		<link>http://sirhc.us/oscon-2010-thursday-plenary-session/</link>
		<comments>http://sirhc.us/oscon-2010-thursday-plenary-session/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 17:10:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[keynotes]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[thursday]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=504</guid>
		<description><![CDATA[This morning&#8217;s plenary session, based on the scheduled speakers, is focused on the nebulous cloud. The cloud is what everyone in technology talks about, but everyone defines differently. It&#8217;s the section of the flow chart where magic happens. Somehow, we &#8230; <a href="http://sirhc.us/oscon-2010-thursday-plenary-session/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This morning&#8217;s plenary session, based on the scheduled speakers, is focused on the nebulous cloud.  The cloud is what everyone in technology talks about, but everyone defines differently.  It&#8217;s the section of the flow chart where magic happens.  Somehow, we will send our data into the cloud and all our wishes will be fulfilled.</p>
<p>To be fair, this vagueness and my pessimism are precisely why these speakers have been invited to the <a href="http://www.oscon.com/">O&#8217;Reilly Open Source Convention</a>.  Tim O&#8217;Reilly has a grand vision for the cloud, for ubiquitous computing, and the use of technology to help solve the world&#8217;s problems.  I commend him for that.  I hope this morning&#8217;s speakers do justice to his vision and that, if there are valuable lessons to be learned, that we learn them.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/14645">Today&#8217;s LAMP Stack</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/2442">David Recordon</a> (Facebook)</em></p>
<p>Over the last decade, the LAMP stack hasn&#8217;t been fundamentally updated.  A cache, such as memcached has been added.  Different languages (Perl, Python, Ruby) have been used in place of the original PHP.  Even different web servers have been used in place of Apache.</p>
<p>Facebook created HipHop for PHP, which compiles PHP into C++.  Creating native executables in this way reduces CPU use by a large factor (a number I didn&#8217;t catch).</p>
<p>There are alternatives for the database component in the stack, too.  MySQL is ubiquitous at this point.  Facebook doesn&#8217;t really use the relational bits of MySQL very much.  So they have been using databases from the NoSQL family&mdash;Hadoop, according to the presentation.</p>
<p>David made a point I think a lot of people miss.  When evaluating databases, or any other software, first look at what problem needs solving, then find a product that solves it in the correct way.  Too often I see people advocating their preferred solution without even looking at the problem.</p>
<p>Data is the lifeblood of Facebook (and we all have our own opinions about that).  They are able to use a plethora of Open Source tools to store the data, scale the data, and analyze the data.</p>
<p>This talk wasn&#8217;t very focused on the cloud, aside from Facebook being a nebulous site where people store their data without really knowing where it goes or how it&#8217;s used.  I expect this was more for public relations, given all the bad press they&#8217;ve had.  Not that anyone stops using Facebook.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/13425">Open SETIQuest &#8211; It Will Be What You Make It!</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/76484">Jill Tarter</a> (SETI Institute)</em></p>
<p>Jill started her talk by explaining what SETI is and why it exists, which I won&#8217;t go into here, since it&#8217;s just a Google search away.  I used to run <a href="http://setiathome.ssl.berkeley.edu/">SETI@home</a> a bit over a decade ago when I was in college and felt like using my computer as a space heater.</p>
<p>Jill is here, representing SETI, because she wants to involve the world in their search.  SETI has classroom materials covered, but they are lacking in the social networking world.  Jill wants people to first identify themselves as Earthlings, recognizing our place in the Universe.</p>
<p>SETI, with the development of the <a href="http://setiquest.org/">setiQuest</a> community, hopes to use the vast resources available in the Open Source world to improve the project.  These include physical resources, such as cloud storage and compute cycles, to human resources, such as programmers and analysts.</p>
<p>Cloudant has created a SETI stack on the Amazon AWS infrastructure.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/15643">Open Cloud, Open Data</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/98034">Jean Paoli</a> (Microsoft)</em></p>
<p>I&#8217;m always a little concerned when I see a speaker from Microsoft at OSCON.  While I can imagine that there are employees at the company who genuinely embrace Open Source&mdash;and, presumably from this talk, open data&mdash;I can&#8217;t lay aside my suspicion.  Microsoft does not have a benevolent history with competition, so when a representative shows up to talk about an open cloud with open data, I instinctively look for the company&#8217;s angle.  What is their nefarious plan?</p>
<p>Jean talked about open standards and open data.  Data portability, standards, easy migration and deployment, and developer choice.  For some reason, when he talks about the &#8220;open cloud,&#8221; I have thoughts about Microsoft&#8217;s OpenDocument move a few years ago.  Sure, parts of it were open, but the format as a whole was useless for non-Microsoft tools.</p>
<p>He claimed that Microsoft Windows Azure is an open and interoperable platform.  I have a hard time swallowing that.  The <tt>#oscon</tt> IRC channel was not kind in its commentary.  A selection from the channel logs:</p>
<pre>&lt;b3gl&gt; "Microsoft totally agrees..." as long as you pay your Windows, Azure and MSSQL license fees

&lt;alapapa&gt; standards are great…as long as they're ours

&lt;dbrewer&gt; wow, thanks Microsoft.  You think I should be able to use any language I want, I appreciate your permissions.

&lt;b3gl&gt; dbrewer: Notice he didn't say "We believe if you want to use Linux ...."</pre>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/13423">Public Static Void</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/76527">Rob Pike</a> (Google, Inc.)</em></p>
<p>Programming languages used to be relatively simple, but still fairly powerful.  They&#8217;ve gotten considerably more complex and confusing.  The C++ language was used as an easy target during the talk.  Rob went on to bash various (in most cases deservedly) programming languages as a way to lead into what he called the renaissance of language design.</p>
<p>Many of the emerging languages are dynamic and interpreted, and there&#8217;s a false dichotomy that they are considered good while the static and compiled languages are considered bad.  Part of the problem is that the latter class of languages are old, designed in a different age of computing.</p>
<p>Obviously, the end goal of this talk was to talk about the <a href="http://golang.org/">Go language</a>, which tries to bridge the gap between the dynamic interpreted languages and the static compiled languages.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/15684">Toward an Open Cloud</a></h3>
<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/49895">Lew Moorman</a> (Rackspace.com)</em></p>
<p>Lew&#8217;s talk was to introduce <a href="http://openstack.org/">OpenStack</a>.  Rackspace took the internal software that powers their cloud and donated it to OpenStack.  I wonder if this is something we can use at my day job to build an internal cloud.  The stack is licensed under the Apache 2 license and they don&#8217;t use a dual licensing model, which sounds nice.</p>
<hr />
<p>I was wrong, the talks weren&#8217;t really about demonstrating the wonder of ubiquitous computing and how we can move in that direction so much as a showcase of organizations in the cloud or using the cloud.  It was really just one long commercial.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-thursday-plenary-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Hands-on Cassandra</title>
		<link>http://sirhc.us/oscon-2010-hands-on-cassandra/</link>
		<comments>http://sirhc.us/oscon-2010-hands-on-cassandra/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 07:59:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[expo]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=469</guid>
		<description><![CDATA[The second tutorial I attended on Tuesday, and the last one of the conference, was Hands-on Cassandra. Actually, I missed the first half of this tutorial, for reasons which I explain in my Tuesday recap post. I&#8217;ve been told by &#8230; <a href="http://sirhc.us/oscon-2010-hands-on-cassandra/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The second tutorial I attended on Tuesday, and the last one of the conference, was <a href="http://www.oscon.com/oscon2010/public/schedule/detail/14283">Hands-on Cassandra</a>.  Actually, I missed the first half of this tutorial, for reasons which I explain in my Tuesday recap post.</p>
<p>I&#8217;ve been told by those that attended the full tutorial that the first half wasn&#8217;t really worth attending.  In fact, when I arrived at the beginning of the second half, I caught the tail end of the presenter demonstrating how he recreated Twitter using Cassandra, something he dubbed Twissandra.  This seems to be the exercise of choice for any distributed system.  In a way, that&#8217;s smart.  Take a highly distributed system everyone is familiar with, explain the challenges faced by such a system, then demonstrate the effectiveness with which the software in question can solve the problem.</p>
<p>In any case, the second half of the tutorial was mostly dedicated to an explanation of how Cassandra distributes its data.  The details and, frankly, the delivery weren&#8217;t that interesting for me, so I didn&#8217;t follow the discussion.  It was too high level to keep my interest.</p>
<p>I still think that Cassandra is deserving of some investigation.  I have a project in mind that it may be perfect for.  At my day job, we have what is essentially a distributed, key-based data store.  We&#8217;ve had to implement all of the data replication functionality.  If Cassandra can alleviate the need to design and implement our own data replication and integrity systems, we can put more effort into the final delivery of the data, instead of its transmission.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-hands-on-cassandra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Environmental Monitoring with Arduino</title>
		<link>http://sirhc.us/oscon-2010-environmental-monitoring-with-arduino/</link>
		<comments>http://sirhc.us/oscon-2010-environmental-monitoring-with-arduino/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 00:51:32 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[hobbies]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=494</guid>
		<description><![CDATA[Russell Nelson (Open Source Initiative) For my final session of the day, I&#8217;m in Environmental Monitoring with Arduino and Compatibles. Since I attended the Arduino tutorial on Monday, I thought it would be fun to attend a session on using &#8230; <a href="http://sirhc.us/oscon-2010-environmental-monitoring-with-arduino/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/30375"><em>Russell Nelson (Open Source Initiative)</em></a></p>
<p>For my final session of the day, I&#8217;m in <a href="http://www.oscon.com/oscon2010/public/schedule/detail/12620">Environmental Monitoring with Arduino and Compatibles</a>.  Since I attended the <a href="http://sirhc.us/journal/2010/07/20/oscon-2010-get-started-with-the-arduino/">Arduino tutorial</a> on Monday, I thought it would be fun to attend a session on using them.</p>
<p>The take-away points, presented up front for our convenience:</p>
<ul>
<li>Environmental monitoring is important</li>
<li>Arduino is cheap and easy</li>
<li>Small computers are fun</li>
</ul>
<p>The Arduino is not just the chip and board, but the IDE used to program the board.  It also, as I learned on Monday, has a very shallow learning curve.</p>
<p>Russell works for a company doing water monitoring of the Hudson River.  He&#8217;s using his domain knowledge from his job to explain how one would do something similar on a smaller scale.  The values he describes detecting, and the circuits used to take the measurements, are,</p>
<ul>
<li>Temperature</li>
<li>Turbidity</li>
<li>Salinity &#8211; can&#8217;t measure this directly, but salinity conducts and we can measure resistance</li>
</ul>
<p>Now I just need to figure out what I want to monitor at home.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-environmental-monitoring-with-arduino/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Smalltalk-style Traits</title>
		<link>http://sirhc.us/oscon-2010-smalltalk-style-traits/</link>
		<comments>http://sirhc.us/oscon-2010-smalltalk-style-traits/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 00:07:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[inheritance]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[roles]]></category>
		<category><![CDATA[smalltalk]]></category>
		<category><![CDATA[traits]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=492</guid>
		<description><![CDATA[Curtis &#8220;Ovid&#8221; Poe (BBC) After a long break, an apple, a cup of coffee, and a beer, I&#8217;m back in the Perl track. The full title of this session is, Scratching the 40-Year Itch of Inheritance with Smalltalk-style Traits. This &#8230; <a href="http://sirhc.us/oscon-2010-smalltalk-style-traits/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6639">Curtis &#8220;Ovid&#8221; Poe (BBC)</a></em></p>
<p>After a long break, an apple, a cup of coffee, and a beer, I&#8217;m back in the Perl track.</p>
<p>The full title of this session is, <a href="http://www.oscon.com/oscon2010/public/schedule/detail/12529">Scratching the 40-Year Itch of Inheritance with Smalltalk-style Traits</a>.</p>
<p>This is not a tutorial.  How to use <a href="http://en.wikipedia.org/wiki/Trait_(computer_science)">traits</a> is easy, but why to use them is a more complex discussion.</p>
<p>Inheritance is a very complex problem and an easy one to get wrong.  Then people start doing things with <a href="http://en.wikipedia.org/wiki/Multiple_inheritance">multiple inheritance</a> and, even if they&#8217;re not doing something deliberately stupid, they end up with <a href="http://en.wikipedia.org/wiki/Diamond_problem">diamond inheritance</a>.  Not only is this a problem, but it&#8217;s been a problem for a very long time&mdash;40 years, in fact.</p>
<p>Complex systems can lead to deep class hierarchies.  When hierarchies are deep, in particular with a dynamic language like Perl, it becomes difficult to determine where a method came from.  Even when its known where a method comes from, undesired behavior may be inherited.  This becomes worse when multiple inheritance is used.</p>
<p>As systems grow, the problem becomes two-fold:</p>
<ol>
<li>Class responsibility &#8211; larger classes are desired</li>
<li>Class reuse &#8211; smaller classes are desired</li>
</ol>
<p>Inheritance, by itself, cannot solve this problem.  So the solution is to<br />
decouple the sub-problems.</p>
<p>Several solutions have been tried:</p>
<ul>
<li>Interfaces</li>
<li>Delegation</li>
<li>Mixins &#8211; incredibly popular</li>
</ul>
<p>As expected by the name of this session, traits (or roles in the nomenclature of Moose) solve the problem far better than any of the above solutions.  Much of the session involved showing real-world application of roles to clean up code at the BBC.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-smalltalk-style-traits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Building Applications with the Simple Cloud API</title>
		<link>http://sirhc.us/oscon-2010-building-applications-with-the-simple-cloud-api/</link>
		<comments>http://sirhc.us/oscon-2010-building-applications-with-the-simple-cloud-api/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 22:07:44 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[abstraction]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[libcloud]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=487</guid>
		<description><![CDATA[Doug Tidwell (IBM) http://www.oscon.com/oscon2010/public/schedule/detail/13976 I finally left the Perl track. I attended Tim Bunce&#8217;s presentation on Devel::NYTProf at OSCON two years ago and, while there have been many enhancements made to module since that time, I expect this year&#8217;s talk &#8230; <a href="http://sirhc.us/oscon-2010-building-applications-with-the-simple-cloud-api/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://www.oscon.com/oscon2010/public/schedule/speaker/2900">Doug Tidwell</a> (IBM)</em></p>
<p><a href="http://www.oscon.com/oscon2010/public/schedule/detail/13976">http://www.oscon.com/oscon2010/public/schedule/detail/13976</a></p>
<p>I finally left the Perl track.  I attended Tim Bunce&#8217;s presentation on <a href="http://www.oscon.com/oscon2010/public/schedule/detail/12641"><tt>Devel::NYTProf</tt></a> at OSCON two years ago and, while there have been many enhancements made to module since that time, I expect this year&#8217;s talk won&#8217;t differ much from the previous one.</p>
<p>This session on <a href="http://simplecloud.org/">Simple Cloud</a> is being presented by IBM&#8217;s Cloud Computing Evangelist.  The drivers behind this product (is it a product?) are the development and promotion of a standard cloud API.  There is some relevancy with my day job, not only because of the possibility of using cloud services, but as a way of getting ideas for the API I develop for our engineers to interact with the batch compute system.</p>
<p>There are several levels of where we can work.  The levels start at the wire, where we have to generate and parse data ourselves.  From there, we have vendor-specific APIs, service-specific APIs, and finally service-neutral APIs.  This last level is where we want to be.</p>
<p>The Simple Cloud API covers three areas: file storage, document storage, and simple queues.  Once thought of in these simplified concepts, there really isn&#8217;t any reason the interface used by a program can&#8217;t be standardized.  A program should no more need to concern itself with the implementation details of an individual cloud provider than it does the details of the file system of the computer on which it runs.</p>
<p>The API uses the Factory and Adapter design patterns, with a configuration file used by the Factory object to determine which Adapter should be created.  These patterns are exactly what I&#8217;ve been looking at for the API I work on at my day job.</p>
<p>A demo of the Simple Cloud API followed.  There wasn&#8217;t much to these demos.  The first showed listing data stored at two different providers.  The second showed queue manipulation.</p>
<p>After the demo, the Apache <a href="http://incubator.apache.org/libcloud/">libcloud</a>, which is getting a good deal of vendor support.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-building-applications-with-the-simple-cloud-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: PostgreSQL Reloaded</title>
		<link>http://sirhc.us/oscon-2010-postgresql-reloaded/</link>
		<comments>http://sirhc.us/oscon-2010-postgresql-reloaded/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 22:05:04 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[failover]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=467</guid>
		<description><![CDATA[The full title of this session is PostgreSQL Reloaded &#8211; Hot Standby, Streaming Replication &#38; More! It was presented by Chander Ganesan, who, even before the tutorial started, demonstrated his skill as a presenter. Reading his biography, I noted that &#8230; <a href="http://sirhc.us/oscon-2010-postgresql-reloaded/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The full title of this session is <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13347">PostgreSQL Reloaded &#8211; Hot Standby, Streaming Replication &amp; More!</a>  It was presented by <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/45874">Chander Ganesan</a>, who, even before the tutorial started, demonstrated his skill as a presenter.  Reading his biography, I noted that he appears to be a professional trainer, which is a nice sign.  He started out by waiting for a whiteboard to be delivered.  Good!  That means pictures will be drawn and audience interaction may take place.  I really appreciate his dynamic personality and presenting style.  Having gotten little sleep the night before, he was able to keep me awake and focused.</p>
<p>Unlike Monday, I chose tutorials on Tuesday that held some relevance to the work I&#8217;m doing.  At my day job, we have a MySQL database backing a critical production system.  We have spent years fighting with it and dealing with its failures and instability.  I have a bias towards <a href="http://www.postgresql.org/">PostgreSQL</a>, having used it in the past, and finding it a superior database to MySQL.  That, however, is beside the point.  What is pertinent is that I have been considering a complete redesign of the system, using PostgreSQL as the data source, and a tutorial on the built-in standby and replication capabilities coming with the release of PostgreSQL 9.0 is timely.</p>
<p>The slides for this tutorial were distributed to us when we registered.  They are intended to stand on their own, serving as documentation if we later work on implementing the concepts presented here.  That said, the information density of the slides didn&#8217;t at all detract from the presentation.  As a hands-on demonstration, Chander didn&#8217;t project the slides very often and, when he did, only referenced them as he spent time explaining the material.</p>
<p>In order to better understand how PostgreSQL implements hot standby and replication, Chander first gave us an overview of how PostgreSQL manages the data a database.  I&#8217;ll be brief, so this is probably not entirely correct.  For efficiency, data is manipulated in 8 kilobyte pages stored in memory, in what is called the shared buffer pool.  These pages remain in memory until the pool is exhausted, at which point one or ore infrequently used pages will have any changes written to disk and purged from the pool.  This means that while the updates are stored in the pool, there is a (potentially long) window of time in which a crash will cause data loss.  To prevent data loss, all update operations are first written to the write-ahead log (WAL) files.  During a recovery operation, these WAL files can be used to play back any transactions that were lost in the crash.</p>
<p>Having these WAL files means that, from a given point in time, the database can be reconstructed.  It&#8217;s not a stretch to shift the playback of these WAL files into real time on a secondary system.  This automatically creates the possibility of a live replicated database, which can be queried in place of the primary database.</p>
<p>The rest of the tutorial was devoted to demonstrating how to set up and use warm standby databases, hot standby databases, and streaming replication.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-postgresql-reloaded/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Cool Perl 6 Today</title>
		<link>http://sirhc.us/oscon-2010-cool-perl-6-today/</link>
		<comments>http://sirhc.us/oscon-2010-cool-perl-6-today/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 21:18:41 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl 6]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=484</guid>
		<description><![CDATA[Patrick Michaud (pmichaud.com) I&#8217;m just back from lunch at Burgerville with Juan and Jonathan. On the way back into the convention center, I ran into Alasdair, who has been attending the hardware hacking sessions. That made me think that I &#8230; <a href="http://sirhc.us/oscon-2010-cool-perl-6-today/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Patrick Michaud (pmichaud.com)</em></p>
<p>I&#8217;m just back from lunch at <a href="http://burgerville.com/">Burgerville</a> with Juan and Jonathan.  On the way back into the convention center, I ran into <a href="http://www.dailyack.com/">Alasdair</a>, who has been attending the hardware hacking sessions.  That made me think that I may want to try to find non-Perl sessions to attend.  After all, I tend to keep up with Perl news, so the sessions are of marginal usefulness.  Unfortunately, nothing on the schedule looked very interesting to me.  I was curious about the session on <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13949">Open Source Tool Chains for Cloud Computing</a> until I read the description.  While it looked cool, it wouldn&#8217;t be useful for me in my work.  The session would go through provisioning, setup, and maintenance of hosts, all of which we already have well-entrenched solutions for in my day job.  So, I ended up back in the Perl track.  My friends in the <a href="http://sandiego.pm.org/">San Diego Perl Mongers</a> group will appreciate that, I think.</p>
<p>Anyway, on to the session.</p>
<p>The name <a href="http://perl6.org/">Perl 6</a> is a language specification, rather than any particular implementation.  All of the references and links off-handedly mentioned in this post are available from the Perl 6 website.</p>
<p>Patrick is the lead developer of Rakudo Perl, which is the most feature complete and up-to-date.</p>
<p>Perl 6 has a language specification and a test suite.  There are still many places in Perl 6 that are not being tested yet.</p>
<p>Rakudo * (Star) is scheduled to be released a week from tomorrow, targeted at being a useful, usable, early adopter distribution.</p>
<p>At this point, Patrick began to enumerate the new language features and how they work in Perl 6, such as variables, loops, interpolation, and so on.  I won&#8217;t go into these here, since there are numerous places on the Web where this has been documented.</p>
<p>About half way through this session, I realized that <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/6635">&#8220;r0ml&#8221;</a> was presenting in another room.  If I&#8217;d noticed that before, I would have attended <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13891">that session</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-cool-perl-6-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Perl 5.12</title>
		<link>http://sirhc.us/oscon-2010-perl-5-12/</link>
		<comments>http://sirhc.us/oscon-2010-perl-5-12/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 19:09:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[pumpking]]></category>
		<category><![CDATA[release management]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=481</guid>
		<description><![CDATA[Jesse Vincent (Best Practical) This talk could be titled something along the lines of &#8220;Lessons Learned from Project Management.&#8221; Jesse Vincent is the current Perl 5 pumpking, which for the moment can be thought of as the project janitor. People &#8230; <a href="http://sirhc.us/oscon-2010-perl-5-12/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Jesse Vincent (Best Practical)</em></p>
<p>This talk could be titled something along the lines of &#8220;Lessons Learned from Project Management.&#8221;</p>
<p>Jesse Vincent is the current Perl 5 <a href="http://www.socialtext.net/perl5/index.cgi?pumpking">pumpking</a>, which for the moment can be thought of as the project janitor.</p>
<p>People who say &#8220;Perl is dead&#8221; or that Perl hackers are &#8220;desperate&#8221; are behind the times.</p>
<p>There are a lot of exiting things happening that are not in the Perl core.  Audrey Tang has said that &#8220;CPAN is the language, Perl is the syntax.&#8221;  Like Piers in the <a href="http://sirhc.us/journal/2010/07/21/oscon-2010-new-beginnings-in-perl-5/">previous session</a>, Jesse enumerated a handful of things that make Perl awesome:</p>
<ul>
<li><a href="http://search.cpan.org/dist/Moose/"><tt>Moose</tt></a></li>
<li><a href="http://search.cpan.org/dist/Plack/"><tt>Plack</tt></a></li>
<li><a href="http://search.cpan.org/dist/App-cpanminus/"><tt>cpanm</tt></a> &#8211; makes installing CPAN modules Just Work</li>
<li><a href="http://search.cpan.org/dist/Devel-Declare/"><tt>Devel::Declare</tt></a></li>
<li><a href="http://search.cpan.org/dist/Devel-NYTProf/"><tt>Devel::NYTProf</tt></a></li>
</ul>
<p>While some of the coolest new things happening in the CPAN world, it merely scratches the surface of what is available.</p>
<p>About three months ago, Jesse uploaded <a href="http://search.cpan.org/~jesse/perl-5.12.0/">Perl 5.12</a>.  Amazingly, no one has reported any critical regressions.</p>
<p>Jesse has been assured that <a href="http://www.perlfoundation.org/perl6/index.cgi?rakudo_star">Rakudo *</a> will be out next week, on 29 July.  However, Perl 6 will not replace Perl 5, which has paid Jesse&#8217;s mortgage for many, many years.  Also, thanks to Perl 5.12, Perl 5.10 is no longer &#8220;too new to use.&#8221;</p>
<p>Perl 5.12 marks the latest release in the process of cleaning up the inernals and adding much desired features.  Some of the highlights:</p>
<ul>
<li>Deprecations warn by default</li>
<li><tt>suidperl</tt> is dead</li>
<li><tt>package Foo::Bar 1.0;</tt> &#8211; better version import syntax</li>
<li>Y2038 compliant &#8211; thanks to Schwern</li>
<li>Unicode improvements; upgrade to 5.2</li>
<li>Pluggable keywords</li>
<li>Overridable function lookup</li>
<li>Dtrace support</li>
<li>Deprecated modules &#8211; <tt>Class::ISA</tt>, <tt>Pod::Plainer</tt>, <tt>Shell</tt>, <tt>Switch</tt> (but still on CPAN)</li>
<li>Yadda, yadda, yadda operator</li>
</ul>
<p>Jesse believes the best new thing in Perl 5.12 is the release process, including him as the pumpking.  Twenty years ago, Perl didn&#8217;t use version control.  He recommends learning from this mistake.</p>
<p>It took five years to release Perl 5.10, after burning through two pumpkings.</p>
<p>Before 5.12, maintenance releases contained all sorts of bug fixes and updates, but could not break binary compatibility.  Doing so was a huge task, was very difficult, and, contrary to its name, is unmaintainable.  Even without all this work, the pumpking&#8217;s job is a lot of work.  Jesse really doesn&#8217;t want to burn out after a release of Perl.</p>
<p>Traditionally, the process of turning someone with the necessary skills to be the pumpking involves preventing them from using those skills and replacing them with management skills.  It&#8217;s a shame.</p>
<p>The system is broken and Perl 5 isn&#8217;t going anywhere, so how can it be fixed?  We can reinvent it, but that&#8217;s already being done by Perl 6.  Alternatively, we can refactor it.  There is no reason many of the skills and duties required of the pumpking can&#8217;t be delegated out to people with those skills.  In effect, the most important skill and duty for the pumpking is project management.</p>
<p>The 5.9 releases, leading up to 5.10, were haphazard.  The 5.11 releases, leading up to 5.12, have settled into a new release every month on the twentieth, with a couple of exceptions.  The 5.13 series has followed suit.  One of the reasons this was possible was documenting the entire release process.</p>
<p>Releases in the 5.12 series are on a fixed schedule, every three months.  A release schedule has been created for 5.14, too.</p>
<p>One of the things I&#8217;ve learned working in an enterprise and my observations of the Fedora Project is that good project management is vital.  Jesse Vincent is exactly what Perl needed and he continues to demonstrate that, with regular, high quality releases of Perl.  What&#8217;s more, he is a good spokesman for the project, being able to come to OSCON and give a session on all of this detail in a cojent and interesting format.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-perl-5-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: New Beginnings in Perl 5</title>
		<link>http://sirhc.us/oscon-2010-new-beginnings-in-perl-5/</link>
		<comments>http://sirhc.us/oscon-2010-new-beginnings-in-perl-5/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:12:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[frustration]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=477</guid>
		<description><![CDATA[Piers Cawley (BBC) After reviewing today&#8217;s session schedule, I quickly came to the conclusion that I will spend my entire day sitting in the room &#8220;Portland 256.&#8221; This is, apparently, where the Perl track is located. Paul Fenwick introduced Piers &#8230; <a href="http://sirhc.us/oscon-2010-new-beginnings-in-perl-5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Piers Cawley (BBC)</em></p>
<p>After reviewing today&#8217;s session schedule, I quickly came to the conclusion that I will spend my entire day sitting in the room &#8220;Portland 256.&#8221;  This is, apparently, where the Perl track is located.</p>
<p><a href="http://www.twitter.com/pjf">Paul Fenwick</a> introduced Piers in song, to the tune of <em>Gilligan&#8217;s Island</em>.</p>
<p>Piers switched from Perl to Ruby a while back and swore that he wouldn&#8217;t return to Perl until 6.  Facetiously, the reason he switched to Ruby was the handsome community associated with it and he reason he switched back to Perl was the amazingly supportive community associted with it.  He began with a point about programming style.  We think of code as describing <em>what</em> we are doing, but in reality the majority of our code actually describes <em>how</em> we are doing it.  This infrastructure code is noise.</p>
<p>More seriously, he absolutely hated unrolling the <tt>@_</tt> variable in every function.  In such a high level language like Perl, why must we pop arguments off the stack in the same manner we would in an assembly language?  This leads to long subroutines, every single one containing anti-patterns designed to implement the language infrastructure, instead of the language doing the work for us.</p>
<p><a href="http://search.cpan.org/dist/Moose/"><tt>Moose</tt></a> does a lot to improve writing classes, using a more declarative syntax.  However, even within Moose methods we need to write the infrastructure code.  The <a href="http://search.cpan.org/dist/MooseX-Declare/"><tt>MooseX::Declare</tt></a> module solves this problem, giving method syntax a more declarative style.  By moving the infrastructure code out of sight, we can better focus on <em>what</em> we are trying to do, rather than <em>how</em> we are doing it.</p>
<p>Piers proceeded to list the modules that &#8220;rock&#8221; and brought him back to Perl:</p>
<ul>
<li><a href="http://search.cpan.org/dist/Plack/"><tt>Plack</tt></a></li>
<li><a href="http://search.cpan.org/dist/Devel-NYTProf/"><tt>Devel::NYTProf</tt></a></li>
<li><a href="http://search.cpan.org/dist/Moose/"><tt>Moose</tt></a></li>
</ul>
<p>Perl&#8217;s object-orientation absolutely &#8220;sucks.&#8221;  However, this turns out to be a good thing.  It allows very clever people to create modules that extend the semantics of the language.  In a language like Ruby, which has a good object-orientation built-in, it&#8217;s essentially stuck.  If, in the future better ideas of object-orientation are developed, they can be implemented in Perl far more easily than in Ruby.  An interesting point: sometimes when the tool sucks, things are better.  People develop layers of tools that enhance and extend the original.</p>
<p>It also helps that the Perl release schedule has accelerated.</p>
<p>Piers continued with a high-level, hand-waving explanation of how <tt>MooseX::Declare</tt> works.  While not informative, it was entertaining.  Including a video of Matt Trout attempting to hypnotize the room.</p>
<p>Piers ended by thanking the Perl community and expressing how good it feels to be back into it and developing in Perl again.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-new-beginnings-in-perl-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Wednesday Morning Keynotes</title>
		<link>http://sirhc.us/oscon-2010-wednesday-morning-keynotes/</link>
		<comments>http://sirhc.us/oscon-2010-wednesday-morning-keynotes/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 17:09:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[government]]></category>
		<category><![CDATA[keynotes]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=473</guid>
		<description><![CDATA[I haven&#8217;t had a chance to compose my Tuesday blog posts.  Hopefully, I&#8217;ll find time throughout the day to work on them.  All that really means is that my posts will be chronologically out of order. It&#8217;s Wednesday morning at &#8230; <a href="http://sirhc.us/oscon-2010-wednesday-morning-keynotes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t had a chance to compose my Tuesday blog posts.  Hopefully, I&#8217;ll find time throughout the day to work on them.  All that really means is that my posts will be chronologically out of order.</p>
<p>It&#8217;s Wednesday morning at the <a href="http://www.oscon.com/">O&#8217;Reilly Open Source Convention</a>, which means it&#8217;s time for the introductory keynotes.  The first thing I&#8217;ve noticed this morning is how crowded it is.  Certainly more so than when I was last here in 2008.  I don&#8217;t know if that&#8217;s just because we aren&#8217;t being given breakfast in the expo hall this year, so everyone is crowded into the area outside the ballroom.  Another thing I&#8217;ve noticed is the gender makeup of the attendees.  While still overwhelmingly male, I have noticed more women in attendance this year.  Diversity is good.</p>
<p>Without any further ado, we&#8217;re getting started.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/14614">Welcome</a></h3>
<p><em>Allison Randal, Edd Dumbill (O&#8217;Reilly Media Inc.)</em></p>
<p>This year&#8217;s co-chairs welcomed us and talked a bit about OSCON this year.  Obviously, there wasn&#8217;t a lot of content, but they did mention the Android Hands-on event being sponsored by Google tonight.  I did register for that, since it sounds like it will be fun.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/14647">Keynote</a></h3>
<p><em>Tim O&#8217;Reilly (O&#8217;Reilly Media Inc.)</em></p>
<p>First up is the namesake of the convention.  Every year he presents his vision, not just for the conference, but for the future he wants to see.  He has been steering his company away from being just a book publisher or a content producer, but a company trying to make the world a better place.  He urges the Open Source community to think about the cloud.  Don&#8217;t just think about Linux, or whatever project, but about the bigger picture and where we&#8217;re going as a society.</p>
<p>He is fascinated by the ability of technology to reinvent government, a concept he&#8217;s dubbed &#8220;Gov 2.0.&#8221;  We fall into the cycle of thinking of government as a vending machine, something we simply get things out of, and get frustrated when we don&#8217;t.  Over the last few years, he has been talking about government as a platform.</p>
<p>We shouldn&#8217;t think just about selling to the enterprise, but about building a better world.  We all benefit when that happens.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/15615">Coding the Next Generation of American History</a></h3>
<p><em>Jennifer Pahlka (Code for America)</em></p>
<p>The government doesn&#8217;t have to be this obscure, opaque thing we get stuff from.  It can be a platform for us to work together.  Currently, the majority of the municipal workforce is over 40, and a significant percentage will retire soon.  This creates a huge age gap, which leads to a technology gap.</p>
<p>In Oakland, California, the city workers can&#8217;t search city council meeting notes online.  The method of entering the data in the computer is to scan the written notes, which are impossible for them to index.</p>
<p><a href="http://codeforamerica.org/">Code for America</a> was created to encourage younger, technologically-savvy individuals to apply their talents to government.  It&#8217;s designed to create technology to open up government, to make it more accessible to the citizens.  It&#8217;s a little like the iPhone or Android ecosystems.  Government provides the platform, essentially the data.  We, the citizens, build the apps.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/15655">Keynote</a></h3>
<p><em>Bryan Sivak (Government of the District of Columbia</em></p>
<p>Those in the government of DC are big fans of Open Source, running Linux among other projects.  They&#8217;ve long talked about being committed to Open Source, partly to save the taxpayers&#8217; money.  Unfortunately, much of this commitment is all talk.</p>
<p>For any project used in DC, forms are required to be filled out, justifying the choice and the expense.  On this form is the question, &#8220;What Open Source projects were considered?&#8221;  This is often left blank and still slips through without comment.</p>
<p>Proprietary solutions tend to come with copious documentation and an implementation plan.  Open Source projects are more open-ended, which requires people within the government to have that vision and that creativity.  This goes back to the age and technology gaps mentioned previously.</p>
<p>It&#8217;s good that these challenges have been identified and are being addressed.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/15553">Got MeeGo?</a></h3>
<p><em>Dirk Hohndel (Intel Corporation)</em></p>
<p><a href="http://en.wikipedia.org/wiki/MeeGo">MeeGo</a> is the result of the unification of <a href="http://en.wikipedia.org/wiki/Moblin">Moblin</a> and <a href="http://en.wikipedia.org/wiki/Maemo">Maemo</a>.  It targets netbooks, handset, tablets, and just about anything designed to be more mobile than a traditional notebook.  It offers a full client Linux Open Source stack, from the kernel all the way up to the user interface, including the flexibility to support proprietary devices.</p>
<p>Dirk went over the primary goals and philosophy of the project (to be completely open), then went on to describe the organization of MeeGo at a high level.  This included both the technical building blocks and the relationship with upstream projects.</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/13426">Is Your Data Free?</a></h3>
<p><em>Stormy Peters (GNOME Foundation)</em></p>
<p>Many of us use completely Free software on our computers, some even insist on it.  However, when it comes to online services, we&#8217;ve gotten lazy.</p>
<p>Free software was driven by two types of people.  There were those who advocated that all software should be Free, that it should be available to all people, regardless of their means.  There were others who used and advocated Free software because they wanted something that didn&#8217;t crash.  It&#8217;s this latter It Just Works motivation that Stormy believes has caused us to get lazy about demanding Freedom from our Web services.</p>
<p>She asks how many of us control our own email or have alternative ways to access it if something should happen to the primary service.  What if Twitter or Facebook decides to delete your account?  What happens to your data?  She then went through a few examples of alternative services that have open data policies, such as <a href="http://identi.ca/">Identica</a> and <a href="http://live.gnome.org/Snowy">Tomboy Online</a> (it&#8217;s funny, I don&#8217;t use Tomboy because I won&#8217;t use Mono).</p>
<p>How many of us have read the agreements when signing up for Web services?  Do we know who owns our data?  Can we back it up ourselves?  Who owns it, both while we&#8217;re using the service and if or when we decide to delete our data?</p>
<h3><a href="http://www.oscon.com/oscon2010/public/schedule/detail/14894">Keynote</a></h3>
<p><em>Marten Mickos (Eucalyptus Systems)</em></p>
<p>The shift to the cloud is causing computing to scale, both up and out, far faster and far larger than any of the previous trends (mainframes, minicomputers, or client/server).</p>
<p>Many of the Open Source licenses were designed in an environment where everyone runs software on their own computers, software that requires distribution to be useful.  Today we&#8217;re seeing more services being offered by companies running software within their own grids.  Users never run the software themselves but rather send data in and get data out.</p>
<p><a href="http://en.wikipedia.org/wiki/Eucalyptus_(computing)">Eucalyptus</a> is designed to be a highly scalable platform for on-premise use.  As someone who supports many thousands of hosts in many data centers, this product has intrigued me for a while.  Unfortunately, I&#8217;ve never taken the time to investigate it.  It&#8217;s nice to see that those behind the company are committed to Open Source, using the split model.  Users are free to download and use the software, while the company sells a supported version to enterprise.</p>
<hr />
<p>The keynote sessions at OSCON tend to drag on for a while, making it difficult to pay attention the whole time.  But they are finally over for now.  We have a break before the first session of the day.  I&#8217;m going to try to get some work done on yesterday&#8217;s posts before starting on my long day of Perl sessions.</p>
<p>I&#8217;m really impressed with the wireless network today.  It had its problems during the tutorials on Monday and Tuesday.  Traditionally, the network becomes almost unusable on Wednesday morning.  This year, however, I have been able to connect to the Internet and write this blog post without any frustration.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-wednesday-morning-keynotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Monday</title>
		<link>http://sirhc.us/oscon-2010-monday/</link>
		<comments>http://sirhc.us/oscon-2010-monday/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 08:57:34 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Beer]]></category>
		<category><![CDATA[monday]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[Rogue]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=460</guid>
		<description><![CDATA[I awoke early on this first day of theO&#8217;Reilly Open Source Convention so I could have breakfast with Juan at his hotel. At first I thought fresh-made omelettes, bacon, and sausage were simply a better choice than the fruit and &#8230; <a href="http://sirhc.us/oscon-2010-monday/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="float: left;"><a title="Beer Samples at Rogue by cdgrau, on Flickr" href="http://www.flickr.com/photos/cdgrau/4813736770/"><img style="padding-right: 1em;" src="http://farm5.static.flickr.com/4121/4813736770_c943a105ca_m.jpg" alt="Beer Samples at Rogue" width="240" height="179" /></a></span> I awoke early on this first day of the<a href="http://www.oscon.com/">O&#8217;Reilly Open Source Convention</a> so I could have breakfast with Juan at his hotel.  At first I thought fresh-made omelettes, bacon, and sausage were simply a better choice than the fruit and pastries offered at the <a href="http://www.oregoncc.org/">Oregon Convention Center</a>.  As it turns out, no breakfast was offered at all.  After breakfast, a short ride on the <a href="http://trimet.org/max/">MAX</a> delivered us to OSCON.  I&#8217;ve already written about the tutorials, so I won&#8217;t mention them here.</p>
<p>For lunch, I met up with some coworkers and some friends to head across the river for lunch at <a href="http://www.oldtownpizza.com/">Old Town Pizza</a>.  I had a small sausage and mushroom pizza, and washed that down with a pale ale.</p>
<p>After the Arduino tutorial, having sat down for much of the day, I grew restless.  I really wanted to take a walk.  More importantly, I really wanted to make my way over to <a href="http://www.rogue.com/">Rogue Ales Public House</a> for some beer.  So I called Jonathan and we made our way over there.  We each started with a four beer sampler.</p>
<p>I started with the <a href="http://beeradvocate.com/beer/profile/132/59192">Chatoe Oregasmic</a>, finding it to be a pleasant, light pale ale with moderate hoppiness.  Upon tasting it, one of my coworkers commented that it was what he expected the pale ale, which he had ordered to be.</p>
<p>Second in line was the <a href="http://beeradvocate.com/beer/profile/132/56447">Double Mocha Porter</a>.  It had a faint mocha aroma, but very little of this made its way to my pallette.  I could detect a hint of smokiness, if I concentrated on it.  For something advertised as a double mocha, I was disappointed.</p>
<p>Having enjoyed Rogue&#8217;s Dead Guy Ale in the past, I chose for my third beer the <a href="http://beeradvocate.com/beer/profile/132/41043">Double Dead Guy Ale</a>.  I don&#8217;t think I was fair to this beer.  The name made me think of Stone&#8217;s Double Bastard and the Double Dead Guy Ale is nothing like that.  Even so, I found it smooth with a pleasant maltiness and light hop flavors.</p>
<p>Saving what I expected to be the best for last, I finished with the <a href="http://beeradvocate.com/beer/profile/132/57522">Brutal IPA</a> While nicely hopped, I was left disappointed after building my expectations on what I consider to be its undeserved moniker.  Once I got over that, I still found it to be a perfectly enjoyabl beer.  It had mild malty notes and, like the other Rogue ales I sampled, it too was smooth.  I found it to be an all around decent IPA.  Since Juan wasn&#8217;t able to join us for dinner, I bought a bottle of the Brutal IPA to share with him later.</p>
<p>After I had finished my samples, it was the decision of those in my party that I was criminally without beer and that, to pay penance, I was to order the <a href="http://beeradvocate.com/beer/profile/132/34556">Issaquah Menage A Frog</a>.  When the bartender told me it was only available in a 12 ounce glass, I suspected that an imperial style ale.  The aroma and taste soon confirmed this.  Coming in at 9% ABV, it was not as strong as some of the ales I occasionally drink back home in San Diego, but it went very well with the beer and cheese stew I had for dinner.</p>
<p>And now it&#8217;s late, just a few minutes until two o&#8217;clock in the morning.  I should have closed my computer and gone to bed hours ago, but I refused to do so knowing that my first day of OSCON blog entries were unfinished.  Hopefully, I will have more food and beer to write about tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-monday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Get Started with the Arduino</title>
		<link>http://sirhc.us/oscon-2010-get-started-with-the-arduino/</link>
		<comments>http://sirhc.us/oscon-2010-get-started-with-the-arduino/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 08:09:56 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[afternoon]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[monday]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=445</guid>
		<description><![CDATA[The second tutorial I attended at OSCON on Monday was one I had regrettably skipped when I was last here in 2008: Get Started with the Arduino.  After purchasing my Getting Started with Arduino Kit for $69.95, I tore it &#8230; <a href="http://sirhc.us/oscon-2010-get-started-with-the-arduino/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="float: left;"><a title="Arduino and Breadboard by cdgrau, on Flickr" href="http://www.flickr.com/photos/cdgrau/4811109629/"><img style="padding-right: 1em;" src="http://farm5.static.flickr.com/4095/4811109629_a5efed6c86_m.jpg" alt="Arduino and Breadboard" width="240" height="179" /></a></span>The second tutorial I attended at OSCON on Monday was one I had regrettably skipped when I was last here in 2008: <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13843">Get Started with the Arduino</a>.  After purchasing my <a href="http://www.makershed.com/ProductDetails.asp?ProductCode=MSGSA">Getting Started with Arduino Kit</a> for $69.95, I tore it open like a kid in a toy store.  Inside the kit were the <a href="http://arduino.cc/">Arduino</a> board itself, some jumper wires, a handful of components, including LED bulbs and resistors, and a USB cable to allow for programming the notebook computers everyone in attendance brought with them.</p>
<p>In the beginning, I was shamed.  While I tried and failed to follow the <a href="http://www.arduino.cc/playground/Learning/Linux">Linux installation instructions</a>, my coworker, Debbie, was able to plug my Arduino board into her Microsoft Windows notebook and get the first example running.  When the <a href="http://www.arduino.cc/playground/Linux/Udev">udev tip</a> didn&#8217;t work, things were looking bleak for my attempt to control open hardware with an open operating system.  Finally, a trip to Google landed me right back on the Arduno wiki at the <a href="http://www.arduino.cc/playground/Linux/Fedora">installation instructions for Fedora</a>.  Finally, I could upload code to my Arduino board.  After getting the initial example to work, I modified it to change the pattern of the blinking on-board LED bulb:</p>
<pre>int ledPin = 13;

void setup() {
    pinMode(ledPin, OUTPUT);
}

void loop() {
    digitalWrite(ledPin, HIGH); delay(300);
    digitalWrite(ledPin, LOW);  delay(300);
    digitalWrite(ledPin, HIGH); delay(300);
    digitalWrite(ledPin, LOW);  delay(300);
    digitalWrite(ledPin, HIGH); delay(1000);
    digitalWrite(ledPin, LOW);  delay(1000);
}</pre>
<p>While we were playing with our new toys, we were treated to the history of the Arduino project, some other open hardware projects, and some of the things people have done with them.  Unfortunately, I was too busy playing with my new toy to take notes on these things, so the history lesson, <a href="http://en.wikipedia.org/wiki/Arduino">by way of Wikipedia</a>, is left as an exercise for the reader.</p>
<p>The editor embedded in the Arduino IDE leaves a lot to be desired.  It&#8217;s like Microsoft Notepad with syntax coloring.  My coworker found a setting that forces the IDE to use an external editor.  Basically, all it does is to make the editing window read-only.  Files edited outside of the IDE are re-read when the code is compiled.  In short order, I was able to find a <a href="http://www.vim.org/scripts/script.php?script_id=2654">Vim syntax file</a> for Arduino code files.</p>
<p>After the break, we were introduced to using the Arduino board in combination with a <a href="http://en.wikipedia.org/wiki/Breadboard">breadboard</a>, which allows for the creation of more complex circuits.  I&#8217;m excited, because I still have the breadboard, components, and multi-meter I bought in college for a computer engineering class.  I&#8217;ve been waiting all these years to finally have an excuse to dig them out of the closet and put them to use.  The Arduino will be a fun learning tool when my daughter is older, too.</p>
<p>To commence our unstructured time, which would last until the end of the tutorial (and the day), we were shown a simple circuit to wire up between the Arduino board and the breadboard.  Using a copy of the first blinking code, we could acheive the same effect of blinking the external LED simply by modifying which pin was referenced.  I took this a step further and made my LED bulb pulse like the light on a suspended MacBook.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/DCVIPQjBC-o&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/DCVIPQjBC-o&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I&#8217;m glad I decided to attend the Arduino tutorial this year.  I&#8217;ve just picked up yet another hobby I don&#8217;t have time for.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-get-started-with-the-arduino/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Introduction to 3D Animation with Blender</title>
		<link>http://sirhc.us/oscon-2010-introduction-to-3d-animation-with-blender/</link>
		<comments>http://sirhc.us/oscon-2010-introduction-to-3d-animation-with-blender/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 06:45:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[monday]]></category>
		<category><![CDATA[morning]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=436</guid>
		<description><![CDATA[The first tutorial I chose to attend this year at OSCON was ﻿﻿﻿Introduction to 3D Animation with Blender.  It was something I wanted to attend for fun instead of for work.  The instructor was Matthew Momjian, a 17 year old &#8230; <a href="http://sirhc.us/oscon-2010-introduction-to-3d-animation-with-blender/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The first tutorial I chose to attend this year at OSCON was <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13546">﻿﻿﻿Introduction to 3D Animation with Blender</a>.  It was something I wanted to attend for fun instead of for work.  The instructor was <a href="http://www.oscon.com/oscon2010/public/schedule/speaker/28373">Matthew Momjian</a>, a 17 year old high school student who has been using Blender for four years.  His experience with the software showed, too.</p>
<p>The version of <a href="http://www.blender.org/">Blender</a> available in the Fedora 13 package repository is 2.49b, but the tutorial focused on the beta version of 2.5, which has a redesigned user interface and new and improved features.  A Linux version was available on the internal cache website offered by OSCON, but it was 32 bit.  I ended up downloading a copy from the Blender website (the conference wifi doesn&#8217;t start to get really bad until Wednesday).  Unfortunately, Blender proved unstable and would frequently crash with a segmentation fault.  Matthew had provided files to serve as starting points for each section of the tutorial, so it was relatively easy to follow along, even if I didn&#8217;t complete the previous section.</p>
<p>Matthew walked us through generating a simple animation of a flying saucer approaching a planet and hitting it with a beam of light.  We started with simple shapes, two spheres, one flattened, for the saucer, a cone for the beam of light, and another sphere for the planet.  From there we learned how to apply surfaces and textures, manipulate light sources, and perform a simple animation.</p>
<p>All in all, I think the tutorial was worthwhile.  If I had launched Blender without it, I would be lost.  I&#8217;m still lost, but at least I have some semblance of an idea about how it works.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-introduction-to-3d-animation-with-blender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Travel Day</title>
		<link>http://sirhc.us/oscon-2010-travel-day/</link>
		<comments>http://sirhc.us/oscon-2010-travel-day/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 08:23:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Beer]]></category>
		<category><![CDATA[Oregon]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2010]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=427</guid>
		<description><![CDATA[It&#8217;s late Sunday night.  Actually, it&#8217;s early Monday morning.  I&#8217;m in a hotel room in Portland, Oregon, for the O&#8217;Reilly Open Source Convention (OSCON).  For the weeks leading up to this trip, I&#8217;ve felt some trepedation.  This is the first &#8230; <a href="http://sirhc.us/oscon-2010-travel-day/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s late Sunday night.  Actually, it&#8217;s early Monday morning.  I&#8217;m in a hotel room in Portland, Oregon, for the <a href="http://oscon.com/">O&#8217;Reilly Open Source Convention</a> (OSCON).  For the weeks leading up to this trip, I&#8217;ve felt some trepedation.  This is the first time I&#8217;ve been away from my daughter for more than a couple of days.  Now that I&#8217;m here, though, I&#8217;m beginning to enjoy myself.</p>
<p>At the beginning of the trip, I ran into a coworker, Juan, at the airport in San Diego, who was on his way to OSCON, too.  We weren&#8217;t able to sit together on the flight, but that worked out in the end.  A man was traveling with his son of around five years.  The son had the seat next to mine, while the father was several rows back.  I offered to trade seats with the father, so he could sit with his son.  One of the flight attendants bought me a beer for my trouble.  On top of all that, the we arrived in Portland earlier than expected.</p>
<p>After checking into our respective hotels, we swung by the <a href="http://www.oregoncc.org/">Oregon Convention Center</a> to register for OSCON and pick up our badges and associated crap.  Actually, a mug was included in the bag o&#8217; stuff, which I can actually use.  Plus, the bag can be kept in the trunk of my car for use at farmers markets.</p>
<p>Finally, it was time for dinner.  Juan and I met up with a friend of mine from the <a href="http://sandiego.pm.org/">San Diego Perl Mongers</a> and hopped on the <a href="http://trimet.org/max/">MAX</a> to head downtown.  After wandering around aimlessly for a bit, I searched for <a href="http://www.kellsirish.com/portland/">Kells Irish Restaurant &amp; Pub</a> on my phone and we found it in short order, taking a seat out back in their new beer garden.  I washed a corned beef and turkey sandwich down with three pints of <a href="http://www.ratebeer.com/beer/mt-hood-ice-axe-ipa/10483/5328/">Mt. Hood Ice Axe IPA</a> and one pint of <a href="http://www.ratebeer.com/beer/kilkenny/4788/">Kilkenny Irish Cream Ale</a>.  Shortly after we finished our food, we were joined by two more coworkers, who ordered some food of their own.  We spent some time doing what one does in an Irish pub, namely drinking and talking, then we made a failed attempt to find coffee.</p>
<p>That brings an end to OSCON travel day.  Tomorrow morning I will head to the convention center for breakfast and will hopefully run into more people I know (or will meet new friends).  I have two tutorials scheduled for tomorrow: <a name="session13546" href="http://www.oscon.com/oscon2010/public/schedule/detail/13546">Introduction to 3D Animation with  Blender</a> and <a name="session13843" href="http://www.oscon.com/oscon2010/public/schedule/detail/13843">Get Started with the Arduino &#8211; A  Hands-On Introductory Workshop</a>.<a name="session13546" href="http://www.oscon.com/oscon2010/public/schedule/detail/13546"></a> I know these tutorials don&#8217;t appear obviously relevent to my job, but I&#8217;m looking at them as useful for relaxing and enriching.  One of the reasons I like to attend OSCON is because I return to work refreshed and with a state of mind more prone to imagining creative solutions.  So, tutorials outside of my immediate area of expertise are exactly what I need when I come here.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2010-travel-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

