<?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</title>
	<atom:link href="http://sirhc.us/feed/" rel="self" type="application/rss+xml" />
	<link>http://sirhc.us</link>
	<description>the pathological prattle of a primal perl programmer</description>
	<lastBuildDate>Thu, 28 Feb 2013 22:22:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>SCALE 11x</title>
		<link>http://sirhc.us/scale-11x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scale-11x</link>
		<comments>http://sirhc.us/scale-11x/#comments</comments>
		<pubDate>Thu, 28 Feb 2013 22:21:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[SCALE]]></category>
		<category><![CDATA[SCALE 11x]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=1038</guid>
		<description><![CDATA[Over the weekend, I attended the eleventh annual Southern California Linux Expo (SCALE 11x) at the Hilton Los Angeles Airport. I&#8217;ve been to this event a handful of times and always thoroughly enjoy myself. The hard-working folks that volunteer to run this conference outdo themselves every year. The Expo Floor I didn&#8217;t spend much time [...]]]></description>
				<content:encoded><![CDATA[<p>Over the weekend, I attended the eleventh annual Southern California Linux Expo (<a href="">SCALE 11x</a>) at the Hilton Los Angeles Airport. I&#8217;ve been to this event a handful of times and always thoroughly enjoy myself. The hard-working folks that volunteer to run this conference outdo themselves every year.</p>
<h2>The Expo Floor</h2>
<p>I didn&#8217;t spend much time on the expo floor, walking through it only a couple of times. I&#8217;m not currently looking for anything to use at work, I&#8217;m not on the job market, and nothing captured my interest.</p>
<p>In retrospect, one thing I wish I had done was Rackspace&#8217;s breakfix challenge, which they were using as a recruitment tool. The idea behind it is that you are seated at a computer on which things are broken and are given some fixed amount of time to accomplish a number of tasks to bring the computer back to health. On Monday, my boss came into my office to enlist my help tracking down a strange bug in the way some shell initialization files were being sourced. This had been bugging (heh) them for a week and has caused some stoppage of work. After making his head spin for a few minutes, I found the problem and hacked up a workaround. So yeah, I kind of wish I&#8217;d tried my hand at the challenge.</p>
<h2>The Sessions</h2>
<p>I won&#8217;t attempt lengthy descriptions of the sessions I attended (there are probably dozens online already, and I think many of the sessions were recorded and will be put online). Instead, I&#8217;ll try to comment on what, if anything, I took away from each session.</p>
<h3>Saturday Keynote: <a href="http://www.socallinuxexpo.org/scale11x/presentations/secure-boot-journey">The Secure Boot Journey</a> (Matthew Garrett)</h3>
<p>The staff at SCALE did a great job in lining up this keynote. It was entertaining and educational. The real fear of not being able to boot Linux on commodity hardware was palpable, and I was left impressed by the efforts put forth to ensure user freedom in that respect.</p>
<p>I also learned that, if drinking doesn&#8217;t solve the problem, try drinking some more. If that doesn&#8217;t work, wait for the hangover to wear off, then cause trouble. Also, standards are wonderful, if you&#8217;re on the right side of them. Microsoft used the UEFI standard to defend their position on Windows 8 and secure boot. The speaker made the point that 5.56x45mm NATO is a standard, but few people on the receiving end are appropriately happy for that.</p>
<h3><a href="http://www.socallinuxexpo.org/scale11x/presentations/scaling-systems-configuration-facebook">Scaling systems configuration at Facebook</a> (Phil Dibowitz)</h3>
<p>This session convinced me that Chef is very cool, but also very scary. It reminded me of the adage, stated by Doug Gwyn, &#8220;Unix was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.&#8221;</p>
<p>As a programmer, I like the idea that a configuration management system is simply a set of objects on top of a full programming language. If it doesn&#8217;t do exactly what I want, I can hack it to do so, as was demonstrated in the session. However, the thought of then handing the ability over to junior (or even senior) system administrators leaves me with no small amount of fright.</p>
<h3><a href="http://www.socallinuxexpo.org/scale11x/presentations/free-be-kid">Free to be a kid</a> (Keila Banks)</h3>
<p>I love that SCALE had an entire track dedicated to the youth in our community. A lot of us have had, or will have, children. This is a great way of introducing younger audiences to our hobbies and fostering that curiosity and creativeness that got us started. In fact, one of the friends I attended SCALE with brought his son, who attended the two-day Linux Beginner&#8217;s Training Class.</p>
<p>This session wonderfully highlighted that curiosity and creativeness. Presented by the 11-year-old daughter of one of the SCALE organizers, we learned about all of the fun and useful things she does with Open Source software. From playing games to writing blogs and publishing her class&#8217;s weekly newsletter. She is exactly what I hope my daughters become.</p>
<h3><a href="http://www.socallinuxexpo.org/scale11x/presentations/checkpoint-restore-live-migration-and-beyond">Checkpoint, Restore, Live Migration and beyond</a> (Kirill Kolyshkin)</h3>
<p>I found this session interesting from an academic standpoint. It&#8217;s cool that this is being done at the kernel level, but I&#8217;m not sure how useful it is to me. The overhead of running KVM is less and less noticeable every year, and it already provides a lot of (if not all of) the capabilities already. There was some discussion about working with NFS mounts, which did pique my curiosity, but that came up during questions after the presentation. By then my eyes had already glazed over.</p>
<h3><a href="http://www.socallinuxexpo.org/scale11x/presentations/practical-application-troubleshooting-using-strace">Practical Application Troubleshooting using <tt>strace</tt></a> (David Rodriguez)</h3>
<p>I didn&#8217;t actually pay much attention to this session. From what I could gather, it was a great introduction to the <tt>strace</tt> command, and the presented case studies were quite useful. I use <tt>strace</tt> a lot at work, and I don&#8217;t recall noticing anything new during the session.</p>
<p>The reason my memory is so fuzzy is that, early in the session, I got the itch to clean up and post the <a href="https://github.com/sirhc/strace-pstree">strace-pstree</a> script I wrote a while back. So I spent the hour doing that. Yes, I know it needs better documentation. It&#8217;s on my to-do list.</p>
<h3>Sunday Keynote: <a href="http://www.socallinuxexpo.org/scale11x/presentations/practical-3d-printing-and-open-source-community">Practical 3D Printing and the Open Source Community</a> (Kyle Rankin)</h3>
<p>Rather than stuff myself into the overcrowded and stuffy keynote room, I viewed it from the overflow room. While the environment was far more comfortable, the camera was only focused on the presenter, so I didn&#8217;t see any of the slides. I don&#8217;t know that it mattered much, but I did miss some of the jokes.</p>
<p>One of my fellow attendees took a pass on this keynote, stating that he didn&#8217;t want to listen to a bunch of mumbo jumbo about how cool 3D printing is and how it&#8217;s going to change the world. While I admit to not having paid too much attention to the talk (I foolishly had my laptop open), I don&#8217;t recall too much about changing the world. Most of what I caught was about the history of hobbyist 3D printing and what may be coming in the near future.</p>
<p>This keynote, in keeping with current events, also digressed into firearms. The printable AR-15 lower receiver was mentioned, along with its ability to only handle a few rounds of ammunition before failing. Based on reactions, it was difficult to judge the prevailing attitude among SCALE attendees. I&#8217;d say it was evenly split between anti- and pro-firearm people.</p>
<h3><a href="http://www.socallinuxexpo.org/scale11x/presentations/your-baby-can-hack">Your Baby Can Hack</a> (Jenn Greenaway)</h3>
<p>Actually, as was immediately pointed out, your baby <i>can&#8217;t</i> hack, and shouldn&#8217;t. It&#8217;s not healthy for babies to spend time in front of computer screens.</p>
<p>Of all the sessions I attended, this was my favorite. A lot of information was conveyed about the appropriate ages at which children can start using computers for different tasks. As anyone who has so much as spoken to me knows, since having children, I&#8217;ve developed a keen interest in evolutionary health and fitness. This session fit right in with all of that. My children are still young enough that I can immediately apply what I learned.</p>
<p>In perhaps the best demonstration ever that children are far smarter than we give them credit for, One Laptop Per Child ran an experiment, which resulted in <a href="http://www.theregister.co.uk/2012/11/01/kids_learn_hacking_android/">Ethiopian children hacking Android</a>. This should come as no real surprise to anyone who has watched their offspring learn to use an iPhone.</p>
<h3><a href="http://www.socallinuxexpo.org/scale11x/presentations/gtd-emacs">GTD with Emacs</a> (Dennis Kibbe)</h3>
<p>I&#8217;ve been using Vim, and prior to that, vi, for a cumulative 18 years. Between the muscle memory, my sizeable <tt>~/.vimrc</tt>, and the Vim plugins I&#8217;ve written, I&#8217;ve never had any desire to learn emacs. That said, I&#8217;m always interested in seeing how people think and the things they&#8217;ve done to make their environment work for them.</p>
<p>This session did not disappoint. Dennis&#8217;s demonstration of <a href="http://orgmode.org/">org-mode</a> was incredibly compelling. So much so that I immediately installed a mostly-compatible <a href="https://github.com/jceb/vim-orgmode">version for Vim</a>. I&#8217;m not sure if I want to spend time playing with the Vim plugin or devote the time to learning enough about emacs to use org-mode. To track my time at work, I wrote some Vim macros and Perl scripts, but it could prove useful to determine how I can take advantage of org-mode to accomplish the task.</p>
<h3><a href="http://www.socallinuxexpo.org/scale11x/presentations/hacking-your-health">Hacking Your Health</a> (David Uhlman)</h3>
<p>As I wrote above, I&#8217;ve taken a keen interest in evolutionary health and fitness. As a geek, this session jumped right out at me. It didn&#8217;t disappoint. After a brief introduction to what the various measurements on a blood test mean, we were given a plethora of information on how to go about having tests run ourselves. The speaker has been involved in the health care industry, from various angles, for a number of years and spoke of the ins and outs of the system. He came off as quite knowledgeable and there was no shortage of questions from the audience. Now I know how to have a blood test run without the hassle of finding a doctor. Also cool: obtaining the raw data from a 3D body scan and using it to 3D print your own body parts.</p>
<p>The more amusing part of this session was the blood-alcohol guessing contest. Two volunteers were asked to have their BAC level tested, immediately consume an entire beer (beer is debatable: one drank a bottle of Corona, the other a bottle of Heineken), and finally test again after 45 minutes. The audience was to guess their final BACs, and a couple of lucky winners would receive health testing kits. One was an at-home blood type testing kit, the other was a hackable blood sugar tester. Apparently the latter is the only tester with Linux drivers available for it. For the curious, the final BAC for each volunteer was 0.00, though with the error margin for the testing device, it could have been as high as 0.02.</p>
<h3>Honorary Mention: <a href="http://www.socallinuxexpo.org/scale11x/presentations/logstash-open-source-log-processing-and-analytics">logstash &#8211; open source log processing and analytics</a> (Jordan Sissel)</h3>
<p>While I didn&#8217;t attend the logstash session, I find it worth mentioning, because seemingly everyone else did attend and afterwards it was all they could talk about.</p>
<div id="attachment_1040" class="wp-caption aligncenter" style="width: 310px"><img src="http://sirhc.us/wp-content/uploads/2013/02/logstash_all_the_things-300x225.jpg" alt="logstash all the things" width="300" height="225" class="size-medium wp-image-1040" /><p class="wp-caption-text">After attending the logstash session, people were ready to run their firstborn through it.</p></div>
<p>After hearing the excited and constant flow of ideas from my colleagues about what they could do with logstash, I can&#8217;t say I blame them. My day job uses Splunk, I&#8217;ve become quite familiar with using its API, and it&#8217;s unlikely to be replaced anytime soon, so I have no real interest in logstash at this time. However, I&#8217;ve made note of it, just in case I do find a need for it in the future.</p>
<h2>The Fun &amp; Games</h2>
<p>Instead of making the not-so-fun drive from San Diego to LAX, I take Amtrak from Oceanside to Union Station and the bus from there to LAX. The Hilton is a quick shuttle ride (or walk) from there. Besides avoiding traffic, this gives me the opportunity to have a few drinks on my way to the conference. This year, my selection included a four pack of Oaked Arrogant Bastard.</p>
<p>Once everyone had arrived at the hotel on Friday, we walked to the Proud Bird, where I enjoyed a rare prime rib. The meal left me full well past lunch on Saturday. This actually helped me avoid the overpriced buffet at breakfast on Saturday morning.</p>
<p>For dinner on Saturday, we continued our now-four-year-old tradition<sup><a href="http://sirhc.us/scale-11x/#footnote_0_1038" id="identifier_0_1038" class="footnote-link footnote-identifier-link" title="The second year included a walk to the restaurant, but it was closed, because the cook had been involved in a car accident.">1</a></sup> of walking to Aliki&#8217;s Greek Taverna for dinner. I highly recommend the lahanodolmades, the pronunciation of which I usually stumble over. Being the only meal I&#8217;d consumed that day, I was left a bit hungry. When one of my friends, who did not join us for dinner, expressed a desire for fries at Carl&#8217;s Jr., I jumped at the chance for a burger.</p>
<p>If I&#8217;d known that food and beer would be available at game night, I may have opted for that instead. As it turns out, street-style tacos were being served. There was a beer line, but I never found out what was being served; I ended up in the hotel bar for a couple of pints instead (Sierra Nevada). Later, I did go back to game night. Once we kicked some people, playing Just Dance, off the Wii, a few of us played Mario Kart until the rented equipment was packed up.</p>
<p>After all was said and done<sup><a href="http://sirhc.us/scale-11x/#footnote_1_1038" id="identifier_1_1038" class="footnote-link footnote-identifier-link" title="Actually, we left early, before the last session.">2</a></sup> on Sunday, we headed home, stopping at the Yard House in Irvine for dinner and drinks. After the beer over the weekend, I opted for two pints of Woodchuck Amber cider.</p>
<ol class="footnotes"><li id="footnote_0_1038" class="footnote">The second year included a walk to the restaurant, but it was closed, because the cook had been involved in a car accident.</li><li id="footnote_1_1038" class="footnote">Actually, we left early, before the last session.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/scale-11x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>EDC Kit</title>
		<link>http://sirhc.us/edc-kit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=edc-kit</link>
		<comments>http://sirhc.us/edc-kit/#comments</comments>
		<pubDate>Wed, 27 Feb 2013 23:35:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[EDC]]></category>
		<category><![CDATA[flashlight]]></category>
		<category><![CDATA[knife]]></category>
		<category><![CDATA[multi-tool]]></category>
		<category><![CDATA[preparedness]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=1070</guid>
		<description><![CDATA[EDC stands for every day carry. An EDC kit is comprised of the various and sundry items one carries on their person every day. My own EDC kit has grown and changed over the years. Recently I&#8217;ve wondered if it&#8217;s really worth taking the time to assemble so many items and to arrange them on [...]]]></description>
				<content:encoded><![CDATA[<p>EDC stands for every day carry. An EDC kit is comprised of the various and sundry items one carries on their person every day.</p>
<p>My own EDC kit has grown and changed over the years. Recently I&#8217;ve wondered if it&#8217;s really worth taking the time to assemble so many items and to arrange them on my person. That question was answered for me last night.</p>
<p>I was training with a group of fellow martial artists in a tennis court. When training, I pack my kit in my bag, since my gi lacks pockets. This tennis court is equipped with a door that requires the use of a key both to enter and to exit. After the fellow in possession of the key went home, the door had closed behind him, leaving us trapped in the tennis court.</p>
<p>Looking around, I decided that I could probably scale the fence, even with my rather large and clumsy bag. However, I wasn&#8217;t convinced everyone could manage that. I called that plan B. Instead, I pulled out my <a href="http://www.amazon.com/TechLite-Master-High-Intensity-Tactical-Flashlight/dp/B003VCL4XQ">flashlight</a> to inspect the latch mechanism.</p>
<div id="attachment_1074" class="wp-caption aligncenter" style="width: 310px"><img src="http://sirhc.us/wp-content/uploads/2013/02/techlight.jpg" alt="It&#039;s always a good idea to keep a flashlight anywhere you might need it." width="300" height="300" class="size-full wp-image-1074" /><p class="wp-caption-text">It&#8217;s always a good idea to keep a flashlight anywhere you might need it.</p></div>
<p>On the inside of the door, the latch was accessible from underneath. Pulling out my <a href="http://www.amazon.com/Gerber-30-000315-Crucial-F-A-S-T-Tool/dp/B004DSZVB8">multi-tool</a> to amused cries of, &#8220;Hey look, it&#8217;s MacGyver!&#8221; I managed to reach in and manipulate the latch enough for the door to open.</p>
<div id="attachment_1073" class="wp-caption aligncenter" style="width: 310px"><img src="http://sirhc.us/wp-content/uploads/2013/02/gerber.jpg" alt="No, it&#039;s not a Leatherman, but the Gerber is nice, too." width="300" height="300" class="size-full wp-image-1073" /><p class="wp-caption-text">No, it&#8217;s not a Leatherman, but the Gerber is nice, too.</p></div>
<p>Never leave your EDC kit at home. I distinctly remember thinking to myself, &#8220;Should I bother packing this tonight?&#8221; With everyone carrying a mobile phone, we could have simply waited around for the fellow to return with the key. Still, I&#8217;m glad I packed my kit.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/edc-kit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2013: An Introspection</title>
		<link>http://sirhc.us/2013-an-introspection/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2013-an-introspection</link>
		<comments>http://sirhc.us/2013-an-introspection/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 02:05:32 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=1026</guid>
		<description><![CDATA[I&#8217;ve been sitting on this post since new year&#8217;s eve. Well, that&#8217;s being generous. I&#8217;ve been sitting on a mostly empty draft since December 31. Last year, I reflected on my resolutions, but didn&#8217;t really come up with anything new for 2012. Since then, I&#8217;ve written all of six articles. In that time I&#8217;ve started [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been sitting on this post since new year&#8217;s eve.  Well, that&#8217;s being generous.  I&#8217;ve been sitting on a mostly empty draft since December 31.  Last year, <a href="http://sirhc.us/looking-ahead-to-2012/">I reflected on my resolutions</a>, but didn&#8217;t really come up with anything new for 2012.  Since then, I&#8217;ve written all of six articles.  In that time I&#8217;ve started seven articles, all of which languish in various states of incompletion.  Will I ever post them?  Maybe.  There are seven others, older than one year, that languish along with them.</p>
<p>After sending our Christmas cards to family and friends, I took some heat for not including an annual letter.  One of the reasons I started writing this article was to make up for that, but sitting on it for more than a week has been enlightening.</p>
<p>I am not a writer.  I sometimes would like to be a writer, but I eventually have to come to terms with reality.  I like the idea of being a writer, of people reading my prose, but I lack the dedication required to be one.  Amusingly, I write for a living, but in the form of programming languages.</p>
<p>Over the course of the last month, I&#8217;ve considered shuttering this site entirely.  I don&#8217;t post enough to make it worthwhile.  I&#8217;m far more comfortable posting <a href="https://twitter.com/sirhc">pithy comments on Twitter</a> or <a href="https://plus.google.com/111980237175764923850/posts">sharing things on Google+</a>.  It is in these forums where my style of writing has consolidated.  Blogs are the new website, focusing on a single topic.  Online, public journals, which is what this site is, have been eclipsed by Facebook status updates.</p>
<p>In fact, this is the other reason I didn&#8217;t write a Christmas letter.  Nothing of note happened over the last year.  Even so, anyone who would have received a letter had already read about our lives, courtesy of Facebook.</p>
<p>Which is perhaps why I spent some time converting the <a href="http://www.kiado-ryu.com/">website for my karate group</a> from a static site into a blog.  I still want to contribute to the greater good, as it were.  This new site will provide a single topic, which will focus my efforts.  Hopefully.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/2013-an-introspection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012 MCRD Boot Camp Challenge</title>
		<link>http://sirhc.us/2012-mcrd-boot-camp-challenge/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2012-mcrd-boot-camp-challenge</link>
		<comments>http://sirhc.us/2012-mcrd-boot-camp-challenge/#comments</comments>
		<pubDate>Mon, 01 Oct 2012 02:05:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[Boot Camp Challenge]]></category>
		<category><![CDATA[bragging rights]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[masochism]]></category>
		<category><![CDATA[MCRD]]></category>
		<category><![CDATA[obstacle course]]></category>
		<category><![CDATA[obstacles]]></category>
		<category><![CDATA[race]]></category>
		<category><![CDATA[running]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=985</guid>
		<description><![CDATA[This weekend, for the second consecutive year and the third time overall, I ran in the Marine Corps Recruit Depot Boot Camp Challenge.  It&#8217;s a fun, but challenging, race that I look forward to. Sane people tend to avoid it, but I enjoy it. Both for the experience itself (it&#8217;s rare to be able to [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://sirhc.us/wp-content/uploads/2012/09/course_map02.jpg"><img src="http://sirhc.us/wp-content/uploads/2012/09/course_map02-300x204.jpg" alt="course_map02" title="course map" width="300" height="204" class="alignright size-medium wp-image-993" /></a>This weekend, for the second consecutive year and the third time overall, I ran in the Marine Corps Recruit Depot <a href="http://bootcampchallenge.com/">Boot Camp Challenge</a>.  It&#8217;s a fun, but challenging, race that I look forward to.  Sane people tend to avoid it, but I enjoy it.  Both for the experience itself (it&#8217;s rare to be able to experience the same obstacle course as Marine recruits) and the bragging rights.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/09/post_race.jpg"><img src="http://sirhc.us/wp-content/uploads/2012/09/post_race-225x300.jpg" alt="post_race" title="I finished!" width="225" height="300" class="alignleft size-medium wp-image-994" /></a><a href="http://sirhc.us/2011-boot-camp-challenge/">Last year</a> I finished in 26:44.  Going into this year&#8217;s race, I hoped to at least beat my time.  Breaking 25 minutes would have been even better.  My hopes were quickly dashed when the emcee announced that, because we the competitors had demanded a tougher challenge, twelve obstacles had been added to the race.  Twelve!  I&#8217;d call that a significant hit to a 5k time.</p>
<p>I felt good, but not great, during the first mile.  Since I don&#8217;t much fancy running, I don&#8217;t do it very often.  As such, I&#8217;m not a strong runner, and while I probably ran the first mile in around eight minutes, people were passing me.  That first mile was fast, mainly because there was a distinct lack of hay bales this year.  My training for this race is a combination of sprints, squats, and box jumps.  I don&#8217;t care how strong a runner you are, scrambling over hay bales, leaping and crawling under logs, crawling through tunnels, and climbing over walls will tax your muscles to the point where running becomes quite difficult.  In the back of my mind, I knew the missing hay bales was ominous, but I didn&#8217;t think much of it at the time.  That is, until I reached the mid-point of the obstacle section.</p>
<p>I came up to a long line of people crawling in the sand.  This wasn&#8217;t the kind of crawling babies do, but the kind of on-the-stomach crawling that Marines do.  I was not at all ready for this added challenge and, as a result, my stamina was sapped by the end of the crawl.  In fact, my shoulders are still sore as I write this, almost 36 hours later.</p>
<p>As I finished, I knew I was far from placing in the top three of my age division.  Even so, I stuck around for a bit to enjoy the festivities and await the posting of the results.  I ended up running into a friend from work, which was nice as this was the first time I ran the race without any compatriots (in 2004 I ran as part of a three man team, last year I ran with a friend).  In any case, my final time was 31:53, which put me in 30th place in my division (a 17 place improvement over last year) and 372nd overall (a 32 place drop from last year).  In retrospect, it&#8217;s difficult to compare my performance from one year to the next, as the obstacles are different.  In particular, I&#8217;m sure I lost at least four minutes to the sand crawl.</p>
<p>Just in case the <a href="http://www.y-events.com/12booti.htm">official race results</a> vanish in the future, I&#8217;ve created a <a href="http://sirhc.us/files/12booti.html#943">local copy</a>, in which I&#8217;ve also highlighted my result.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/09/souvenir.jpg"><img src="http://sirhc.us/wp-content/uploads/2012/09/souvenir-225x300.jpg" alt="souvenir" title="my race souvenir" width="225" height="300" class="alignright size-medium wp-image-995" /></a>In addition to the traditional t-shirt given to each participant, last year I purchased a camouflage t-shirt for Kaylee.  Unfortunately, there wasn&#8217;t anything for me to purchase this year.  Of course, that doesn&#8217;t mean I didn&#8217;t leave without any souvenirs.  Over to the right is a picture of one of them.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/2012-mcrd-boot-camp-challenge/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Seeing the Tour of California</title>
		<link>http://sirhc.us/seeing-the-tour-of-california/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=seeing-the-tour-of-california</link>
		<comments>http://sirhc.us/seeing-the-tour-of-california/#comments</comments>
		<pubDate>Sat, 19 May 2012 05:21:03 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[bicycling]]></category>
		<category><![CDATA[Big Bear]]></category>
		<category><![CDATA[California]]></category>
		<category><![CDATA[mountain]]></category>
		<category><![CDATA[race]]></category>
		<category><![CDATA[sports]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=951</guid>
		<description><![CDATA[We had a real treat today. We got to see the end of stage 6 of the Amgen Tour of California at Snow Summit. What&#8217;s interesting is that, not knowing about the race, we had originally intended to come up to Big Bear Lake on Friday night. At the last minute, we decided to drive [...]]]></description>
				<content:encoded><![CDATA[<p>We had a real treat today.  We got to see the end of <a href="http://www.amgentourofcalifornia.com/Route/stages/stage6-2012.html">stage 6 of the Amgen Tour of California</a> at Snow Summit.  What&#8217;s interesting is that, not knowing about the race, we had originally intended to come up to Big Bear Lake on Friday night.  At the last minute, we decided to drive up on Thursday night instead, which allowed us to take a stroll over to Summit Boulevard to see the race.</p>
<p>If I&#8217;d known about the race and the day&#8217;s events ahead of time, I may have brought my bike, to participate in the <a href="http://www.thebigbearclimb.com/race-day-info/">King of the Mountain Challenge</a>:</p>
<blockquote><p>
The morning of the race, participants can ride on the same course as the professionals, just hours before the Pros make it to Big Bear.  Start at the finish area at 10:00 a.m., ride to Snow Valley and then back through the finish line.
</p></blockquote>
<p>As a fan of the Tour de France, I&#8217;ve always wanted to see a race live.  Watching a bicycle race live is not at all the same as watching a race on television, where you get to follow the riders for the length of the course.  No, it&#8217;s all about the anticipation when viewing in person.  The riders come up the road, pass you by, and are gone.  Just like that.</p>
<p>I&#8217;ve included a copy of the spectator map from <a href="http://www.thebigbearclimb.com/">the Big Bear Climb</a> and marked our location with a red dot.  There were activities at the finish line that we didn&#8217;t partake of, and that&#8217;s where most of the crowd was.  Only a few people were on the north side of Big Bear Boulevard, providing me an excellent view of the race.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/bigbear12_spectator_guide_map.jpg"><img class="alignnone size-full wp-image-957" title="bigbear12_spectator_guide_map" src="http://sirhc.us/wp-content/uploads/2012/05/bigbear12_spectator_guide_map.jpg" alt="" width="1651" height="1275" /></a></p>
<p>The final stretch of stage six took the riders up Summit Boulevard, to the finish line at Snow Summit.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1439.jpg"><img class="alignnone size-full wp-image-942" title="img_1439" src="http://sirhc.us/wp-content/uploads/2012/05/img_1439.jpg" alt="" width="1280" height="853" /></a></p>
<p>Very few people were on the north side of Big Bear Boulevard, leaving me ample space to observe the race and take pictures.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1440.jpg"><img class="alignnone size-full wp-image-943" title="img_1440" src="http://sirhc.us/wp-content/uploads/2012/05/img_1440.jpg" alt="" width="1280" height="853" /></a></p>
<p>Perhaps a dozen or so escorts from the California Highway Patrol passed us, making sure the road was clear ahead of the riders.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1447.jpg"><img class="alignnone size-full wp-image-944" title="img_1447" src="http://sirhc.us/wp-content/uploads/2012/05/img_1447.jpg" alt="" width="1280" height="853" /></a></p>
<p>Here comes the stage winner, Sylvain Georges of AG2R La Mondiale.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1451.jpg"><img class="alignnone size-full wp-image-945" title="img_1451" src="http://sirhc.us/wp-content/uploads/2012/05/img_1451.jpg" alt="" width="1280" height="853" /></a></p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1458.jpg"><img class="alignnone size-full wp-image-946" title="img_1458" src="http://sirhc.us/wp-content/uploads/2012/05/img_1458.jpg" alt="" width="1280" height="853" /></a></p>
<p>About a minute and a half later, the peloton rounded the last turn.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1466.jpg"><img class="alignnone size-full wp-image-947" title="img_1466" src="http://sirhc.us/wp-content/uploads/2012/05/img_1466.jpg" alt="" width="1280" height="853" /></a></p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1472.jpg"><img class="alignnone size-full wp-image-948" title="img_1472" src="http://sirhc.us/wp-content/uploads/2012/05/img_1472.jpg" alt="" width="1280" height="853" /></a></p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1473.jpg"><img class="alignnone size-full wp-image-949" title="img_1473" src="http://sirhc.us/wp-content/uploads/2012/05/img_1473.jpg" alt="" width="1280" height="853" /></a></p>
<p>Bringing up the rear for this mountain finish is the polka dot jersey.  According to the race web site, Sébastian Salas kept the jersey, so he must have fallen back near the end of the stage.</p>
<p><a href="http://sirhc.us/wp-content/uploads/2012/05/img_1487.jpg"><img class="alignnone size-full wp-image-950" title="img_1487" src="http://sirhc.us/wp-content/uploads/2012/05/img_1487.jpg" alt="" width="1280" height="853" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/seeing-the-tour-of-california/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating On Call Jury Instructions</title>
		<link>http://sirhc.us/automating-on-call-jury-instructions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=automating-on-call-jury-instructions</link>
		<comments>http://sirhc.us/automating-on-call-jury-instructions/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 00:32:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[jury duty]]></category>
		<category><![CDATA[laziness]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=913</guid>
		<description><![CDATA[A version of this article is also published on my Perl blog. Early in February, I received a jury summons for the United States District Court, Southern District of California. Prospective jurors for federal jury service (at least in this court) are placed on call for a period of about 30 days. I was to [...]]]></description>
				<content:encoded><![CDATA[<p><em>A version of this article is also published on my <a href="http://blogs.perl.org/users/sirhc/2012/04/automating-on-call-jury-instructions.html">Perl blog</a>.</em></p>
<p>Early in February, I received a jury summons for the United States District Court, Southern District of California.  Prospective jurors for federal jury service (at least in this court) are placed on call for a period of about 30 days.  I was to call for instructions on April 1 and potentially proceed to do so periodically until May 4 (assuming I wasn&#8217;t instructed to report).</p>
<p>Since my initial instruction date was nearly two months away, I created an entry for it in Google Calendar, and promptly forgot about it.  On Monday, April 2, I was riding the train to work when I realized that I hadn&#8217;t remembered to check my instructions.  Fortunately, after arriving at my office and checking my instructions, I had been deferred to the next day.</p>
<p>So I added a new entry in Google Calendar, this time with an SMS reminder.  I proceeded to do this for most of April, checking my instructions and duplicating the calender entry with another SMS reminder.</p>
<p>I&#8217;m embarrassed to admit that it wasn&#8217;t until the last week of April that it occurred to me that I could automate the whole process.  After all, isn&#8217;t automating drudgery the whole reason I ended up programming Perl in an engineering support group at my day job?</p>
<p>In addition to a telephone recording, jury instructions can be <a href="http://jury.casd.uscourts.gov/AppearWeb/Default.aspx">obtained online</a>.  In fact, this is the method I used all month.  The form uses the HTTP POST method, so it wasn&#8217;t a simple matter of constructing an URL to fetch my instructions.  While I could construct a POST request with <tt>curl(1)</tt> or the <tt>LWP</tt> module, it&#8217;s so much easier to do with with the <a href="https://metacpan.org/module/WWW::Mechanize"><tt>WWW::Mechanize</tt></a> module.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$mech</span> <span style="color: #339933;">=</span> WWW<span style="color: #339933;">::</span><span style="color: #006600;">Mechanize</span><span style="color: #339933;">-&gt;</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'http://jury.casd.uscourts.gov/AppearWeb/Default.aspx'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">submit_form</span><span style="color: #009900;">&#40;</span>
    form_name <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'Form1'</span><span style="color: #339933;">,</span>
    fields    <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #ff0000;">'ctl02$txtPart'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'PARTICIPANT_ID'</span><span style="color: #339933;">,</span>
        <span style="color: #ff0000;">'ctl02$txtZip'</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'ZIP_CODE'</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    button <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'ctl02$btnInstructions'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>When I&#8217;m not supposed to report, the following message appears in the returned content:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">&lt;span id=&quot;ctl02_lblMsg&quot;&gt;Please check again Sunday, April 29, after 6:00pm for further reporting instructions. Do NOT report at this time.&lt;/span&gt;</pre></td></tr></table></div>

<p>Given how simple this is, I could parse it with a regular expression.  But, I figured it was worth trying to do it right, so I searched CPAN and found the <a href="https://metacpan.org/module/HTML::DOM"><tt>HTML::DOM</tt></a> module.  I&#8217;ve worked a bit with DOM in JavaScript, so the module appealed to me.  Annoyingly, the parse method only supports file names or file handles.  Fortunately, this isn&#8217;t terribly difficult to work around and the whole thing isn&#8217;t much more verbose than using a regular expression.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$dom</span> <span style="color: #339933;">=</span> HTML<span style="color: #339933;">::</span><span style="color: #006600;">DOM</span><span style="color: #339933;">-&gt;</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$dom</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">parse_file</span><span style="color: #009900;">&#40;</span> IO<span style="color: #339933;">::</span><span style="color: #006600;">Scalar</span><span style="color: #339933;">-&gt;</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #009900;">&#40;</span> <span style="color: #b1b100;">do</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$mech</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">content</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">\$c</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$message</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$dom</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'ctl02_lblMsg'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">innerHTML</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Now that I have the message what does it say?  Thus far my instructions have always been to check again on another day, so I&#8217;ll need to work with what I know and defensively code for the exceptions.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$message</span> <span style="color: #339933;">!~</span> <span style="color: #009966; font-style: italic;">/Do NOT report at this time/</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;"># We didn't see the message we wanted to see, so we'd better alert...</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>If I don&#8217;t see the known message, I send myself an alert (I happened to use the <a href="https://metacpan.org/module/Email::Sender"><tt>Email::Sender</tt></a> module in the script) and exit.  If this happens, I&#8217;ll need to address it as it probably means I need to report (or I&#8217;m no longer on call).</p>
<p>However, if I do see the above message, I need to figure out when I&#8217;m supposed to check again.  If this fails for some reason (e.g., I don&#8217;t know what the format looks like if the day is a single digit), I go through the alert process again.  It&#8217;s rather important that this script be noisy, given the nature of what I&#8217;m doing and the limited knowledge I&#8217;m working with.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$message</span> <span style="color: #339933;">!~</span> <span style="color: #009966; font-style: italic;">/Please check again (?&lt;weekday&gt;\w+), (?&lt;month&gt;\w+) (?&lt;day&gt;\d+)/</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;"># We couldn't parse the next date to check, so we'd better alert...</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$dt</span> <span style="color: #339933;">=</span> DateTime<span style="color: #339933;">::</span><span style="color: #006600;">Format</span><span style="color: #339933;">::</span><span style="color: #006600;">DateParse</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">parse_datetime</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;$+{'weekday'}, $+{'day'} $+{'month'} 18:15&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>I&#8217;ve hard-coded the time to check as 6:15 PM, because the instructions are always updated at 6:00 PM.</p>
<p>Finally, the script schedules itself to run again at the time indicated.  Here I&#8217;ve broken out of Perl to use the <a href="http://linux.die.net/man/1/at"><tt>at(1)</tt></a> command.  Since I&#8217;m running the script on my Linode VPS, this seemed an easy way to accomplish the task of rescheduling.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000066;">open</span> <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$at</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'|-'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'at'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$dt</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">strftime</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'%R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$dt</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">strftime</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'%F'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
say <span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$at</span><span style="color: #009900;">&#125;</span> <span style="color: #ff0000;">&quot;$0 2&gt;/dev/null&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># $0 must be fully qualified or in PATH</span>
<span style="color: #000066;">close</span> <span style="color: #0000ff;">$at</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Running this script once will set the rescheduling process in motion, alleviating me of the need to run it again.  If I&#8217;d thought of this at the beginning of April, I could have forgotten about the whole bother of checking for instructions several times per week.  Oh well, live and learn.</p>
<p>I&#8217;ve posted the full script as a <a href="https://gist.github.com/2522558">Gist</a> on GitHub.</p>
<p>As a way of outsourcing the work and perhaps offer this type of service to a wider audience, I looked at <a href="http://ifttt.com/dashboard">ifttt</a> and <a href="http://pipes.yahoo.com/pipes/">Yahoo! Pipes</a>.  Unfortunately, the former doesn&#8217;t appear to have a way to trigger on scraping an arbitrary web page, and the latter doesn&#8217;t appear to support the HTTP POST method.  If anyone knows of an approach using existing services, I&#8217;m open to suggestions.</p>
<p><em>Updated on 30 April 2012.</em></p>
<h2><tt>Mojo::UserAgent</tt></h2>
<p>Posting this on <a href="http://blogs.perl.org/">blogs.perl.org</a> resulted in a few comments (including a rant I completely agree with, but that&#8217;s beside the point).  There was one suggestion that I try using <a href="https://metacpan.org/module/Mojo::UserAgent"><tt>Mojo::UserAgent</tt></a> instead of <tt>WWW::Mechanize</tt>.</p>
<p>My first attempt at doing so wasn&#8217;t particularly successful.  After a while, I realized that I needed to manually do some of the work that <tt>WWW::Mechanize</tt> was doing for me.  Namely, fetch the page, extract the hidden fields, and submit the form with these fields included (there&#8217;s a cookie involved, but it&#8217;s taken care of behind the scenes by both modules).</p>
<p>Because of this, the <tt>Mojo::UserAgent</tt> version is a bit more annoying to write, but I think this is more than made up for by the built-in access to the DOM.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$ua</span>  <span style="color: #339933;">=</span> Mojo<span style="color: #339933;">::</span><span style="color: #006600;">UserAgent</span><span style="color: #339933;">-&gt;</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$url</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'http://jury.casd.uscourts.gov/AppearWeb/Default.aspx'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">res</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;"># initial fetch to get cookie and form fields</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$tx</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">max_redirects</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">post_form</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">$url</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #ff0000;">'__VIEWSTATE'</span>           <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">dom</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'form#Form1 &gt; input#__VIEWSTATE'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">attrs</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #ff0000;">'__EVENTVALIDATION'</span>     <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">dom</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'form#Form1 &gt; input#__EVENTVALIDATION'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">attrs</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #ff0000;">'ctl02$txtPart'</span>         <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'PARTICIPANT_ID'</span><span style="color: #339933;">,</span>
        <span style="color: #ff0000;">'ctl02$txtZip'</span>          <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'ZIP_CODE'</span><span style="color: #339933;">,</span>
        <span style="color: #ff0000;">'ctl02$btnInstructions'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'Reporting Instructions'</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$tx</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">success</span> <span style="color: #b1b100;">or</span> <span style="color: #000066;">die</span> <span style="color: #0000ff;">$tx</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">error</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$message</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">dom</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'span#ctl02_lblMsg'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">text</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h2><tt>WWW::Scripter</tt></h2>
<p>As I was working on the <tt>Mojo::UserAgent</tt> version of my script, I kept thinking how perfect it would be if <tt>WWW::Mechanize</tt> gave me access to the DOM in the same way.  Well, as I was pushing the new <tt>jury-mojo.pl</tt> script to my Gist, <a href="https://gist.github.com/cpansprout">cpansprout</a> left a comment to not only tell me how I could remove my <tt>IO::Scalar</tt> hack, but that <tt>WWW::Scripter</tt> does exactly what I had just been wishing for.  It&#8217;s like he read my mind.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$mech</span> <span style="color: #339933;">=</span> WWW<span style="color: #339933;">::</span><span style="color: #006600;">Scripter</span><span style="color: #339933;">-&gt;</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'http://jury.casd.uscourts.gov/AppearWeb/Default.aspx'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">submit_form</span><span style="color: #009900;">&#40;</span>
    form_name <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'Form1'</span><span style="color: #339933;">,</span>
    fields    <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #ff0000;">'ctl02$txtPart'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'PARTICIPANT_ID'</span><span style="color: #339933;">,</span>
        <span style="color: #ff0000;">'ctl02$txtZip'</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'ZIP_CODE'</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    button <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'ctl02$btnInstructions'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$message</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$mech</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">document</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'ctl02_lblMsg'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">innerHTML</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>I like this last version the most and have updated my Gist accordingly.  Also, my automation worked and emailed me tonight to inform me that my jury service has concluded.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/automating-on-call-jury-instructions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Broccoflower Curry Rice</title>
		<link>http://sirhc.us/broccoflower-curry-rice/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=broccoflower-curry-rice</link>
		<comments>http://sirhc.us/broccoflower-curry-rice/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 03:13:56 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[broccoli]]></category>
		<category><![CDATA[cauliflower]]></category>
		<category><![CDATA[curry]]></category>
		<category><![CDATA[healthy]]></category>
		<category><![CDATA[rice]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=902</guid>
		<description><![CDATA[As I noted in my last post, I had planned to try the broccoli and cauliflower combination again using a different method. Over the weekend, I picked up two broccoli florets and one head of cauliflower at the farmers market. To prepare the broccoli and cauliflower, I chopped them into pieces small enough to fit [...]]]></description>
				<content:encoded><![CDATA[<p>As I noted in my <a href="http://sirhc.us/coconut-curry-chicken-with-broccoflower-couscous/">last post</a>, I had planned to try the broccoli and cauliflower combination again using a different method.  Over the weekend, I picked up <strong>two broccoli florets</strong> and <strong>one head of cauliflower</strong> at the farmers market.</p>
<p>To prepare the broccoli and cauliflower, I chopped them into pieces small enough to fit into the hole in the top of my Cuisinart food processor.  Replacing the blades with the shredding disk, I tediously pushed all of the vegetables through the spinning steel.  This pretty well filled my 14 cup food processor, so keep that in mind when deciding how much to make.  At first I thought I had made too much, and that the labor wasn&#8217;t worthwhile, but I&#8217;m thoroughly enjoying the leftovers.</p>
<p>I heated a few tablespoons of <strong>extra virgin olive oil</strong> in a 12 inch stainless steel frying pan, emptying the entire contents of the food processor bowl to it.  To this, I added ample amounts of <strong>salt</strong> and <strong>curry powder</strong>.  While stirring, I occasionally added more oil, since broccoli and cauliflower are pretty dry vegetables and will readily absorb it.</p>
<div id="attachment_901" class="wp-caption alignnone" style="width: 650px"><img src="http://sirhc.us/wp-content/uploads/2012/02/broccoflower_curry_rice.jpg" alt="" title="broccoflower curry rice" width="640" height="480" class="size-full wp-image-901" /><p class="wp-caption-text">I need to get some white dishes, so I can take better pictures</p></div>
<p>It&#8217;s a pretty simple recipe and, while I was initially skeptical, it turned out downright amazing.  The best part is, having given up rice and other grains, I finally have a staple I can use to soak up sauces.</p>
<p>If you try out this recipe, let me know in the comments what you used for flavor and how it turned out.  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/broccoflower-curry-rice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coconut Curry Chicken with Broccoflower Couscous</title>
		<link>http://sirhc.us/coconut-curry-chicken-with-broccoflower-couscous/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coconut-curry-chicken-with-broccoflower-couscous</link>
		<comments>http://sirhc.us/coconut-curry-chicken-with-broccoflower-couscous/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 04:22:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[broccoli]]></category>
		<category><![CDATA[cauliflower]]></category>
		<category><![CDATA[chicken]]></category>
		<category><![CDATA[coconut]]></category>
		<category><![CDATA[coffee]]></category>
		<category><![CDATA[curry]]></category>
		<category><![CDATA[Turkish coffee]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=886</guid>
		<description><![CDATA[For a couple of weeks, I&#8217;ve been posting my dinner creations to Facebook. I&#8217;ve been doing this for three reasons. First, a lot of people don&#8217;t know what they would cook when following a paleo lifestyle, so I want to share what I make after living this way for a couple of years. Second, I [...]]]></description>
				<content:encoded><![CDATA[<p>For a couple of weeks, I&#8217;ve been posting my dinner creations to Facebook.  I&#8217;ve been doing this for three reasons.  First, a lot of people don&#8217;t know what they would cook when following a paleo lifestyle, so I want to share what I make after living this way for a couple of years.  Second, I hope to inspire my friends and family with these meals.  Finally, I like to show off.</p>
<p>The more mundane and repeated meals will probably remain as short posts on Facebook.  However, I&#8217;d like to capture some of these dinners on my website.  This will allow me to share with a wider audience as well as being a better archive of recipes.</p>
<p>Inspired by <a href="http://freetheanimal.com/2012/01/he-woks-the-talk-and-talks-to-the-wok.html">a post on Richard Nikoley&#8217;s website</a>, I&#8217;d been thinking about trying Nacho Rubio&#8217;s curry chicken dish.</p>
<p>Instead of crafting my own curry powder (which I will do someday), I used curry powder from Trader Joe&#8217;s.  I stirred about two tablespoons of it into about two tablespoons of extra virgin olive oil in my 12&#8243; cast iron skillet.  While the mixture was heating, I sliced one package of boneless and skinless chicken thighs into bite sized pieces, which I added to the skillet to cook.  When the chicken was cooked through, I added 3/4 of a can of Trader Joe&#8217;s light coconut milk, turned up the heat, and let the moisture boil off until I was rewarded with a thick sauce.</p>
<p>While the chicken was cooking, I put two heads of broccoli and one head of cauliflower into the food processor to blend.  For a while, it looked like I was making baby food.  Once I got the broccoflower mixture into a 12&#8243; stainless steel skillet with several tablespoons of Kerrygold butter and some salt, it started gaining a couscous-like texture.</p>
<p><strong>Updated:</strong> I should point out that it was difficult to get the broccoli and cauliflower to process properly.  I had overfilled the food processor&#8217;s bowl and without a liquid the larger pieces tended to bounce off the blades rather than being pulverized by them.  Next time I prepare this, I will probably use the shredding blade (the one that mounts the blade at the top of the bowl) and plunge smaller pieces through it.  If I do, I&#8217;ll be sure to report my results.</p>
<p><img src="http://sirhc.us/wp-content/uploads/2012/02/coconut_curry_chicken_cooking.jpg" alt="" title="coconut_curry_chicken_cooking" width="640" height="480" class="alignright size-full wp-image-895" /></p>
<p>That was it, simple as that.  I think it turned out pretty tasty.</p>
<p><img src="http://sirhc.us/wp-content/uploads/2012/02/coconut_curry_chicken.jpg" alt="" title="coconut_curry_chicken" width="640" height="480" class="alignright size-full wp-image-894" /></p>
<p>After dinner, I treated myself to a cup of Turkish coffee, which I&#8217;m enjoying as I write these words.  The coffee was Sumatra Blue Batak from Peet&#8217;s Coffee &#038; Tea, to which I added turbinado sugar, cocoa powder, cinnamon, and nutmeg.</p>
<p><img src="http://sirhc.us/wp-content/uploads/2012/02/turkish_coffee.jpg" alt="" title="turkish_coffee" width="640" height="480" class="alignright size-full wp-image-893" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/coconut-curry-chicken-with-broccoflower-couscous/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Repeated Capturing and Parsing in Perl</title>
		<link>http://sirhc.us/repeated-capturing-and-parsing-in-perl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=repeated-capturing-and-parsing-in-perl</link>
		<comments>http://sirhc.us/repeated-capturing-and-parsing-in-perl/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 05:04:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[capturing]]></category>
		<category><![CDATA[grammars]]></category>
		<category><![CDATA[Parse::RecDescent]]></category>
		<category><![CDATA[parsing]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[Regexp::Grammars]]></category>
		<category><![CDATA[regular expressions]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=859</guid>
		<description><![CDATA[A version of this article is posted on my Perl blog. When I checked my email after arriving at the office today, I found a query that had been sent to our internal Perl mail list. The questioner was trying to match a pattern repeatedly, capturing all of the results in an array. But, it [...]]]></description>
				<content:encoded><![CDATA[<p><em>A version of this article is <a href="http://blogs.perl.org/users/sirhc/2012/05/repeated-capturing-and-parsing.html">posted on my Perl blog</a>.</em></p>
<p>When I checked my email after arriving at the office today, I found a query that had been sent to our internal Perl mail list.  The questioner was trying to match a pattern repeatedly, capturing all of the results in an array.  But, it wasn&#8217;t doing quite what he expected.  The message, with minor edits, went a little something like the following.</p>
<blockquote><p>
I&#8217;m trying to extract key/value pairs from a file with the following contents:</p>
<pre>- name = gcc_xo_src_clk, type = rcg
+ name = cxo_clk, type = xo, fgroup = xo, wt = 10, bloo = blah
? type = hm_mnd_rcg, name = bo : type = rcg_mn
+ name = pxo_clk</pre>
<p>I was hoping to do something like this:</p>
<pre>@list = $_ =~ m{ ^[-+?] \s* (\S+) \s* = \s* (\S+) \s* (?:, \s* (\S+) \s* = \s* (\S+) \s*)* }xms;</pre>
<p>Thinking @list would be assigned the alternating key/value pairs.  But the above doesn&#8217;t extract anything sane.  Adding the /gc modifiers doesn&#8217;t make any difference.</p>
<p>If I do the following, it extracts the first two key/value pairs correctly (if the line has more than one pair).</p>
<pre>@list = $_ =~ m{
    ^[-+?] \s* (\S+) \s* = \s* (\S+) \s*
    , \s* (\S+) \s* = \s* (\S+) \s*
}xms;</pre>
<p>If I keep repeating the pattern in the second line, it keeps matching more key/value pairs.</p>
<p>I would expect using (?: )* should mean zero or more instances of match inside the parentheses, but obviously it&#8217;s not working.  What am I doing wrong?
</p></blockquote>
<p>When I&#8217;m presented with a problem like this, that is some kind of structured data, I immediately think of writing a parser.  I&#8217;ll get back to that in a bit, but I wanted to address the confusion about capturing in the pattern.  And, in fact, that&#8217;s how the discussion on the mail list proceeded.</p>
<h2>Repeated Capturing</h2>
<p>First, let&#8217;s simplify the example to demonstrate why our seeker of wisdom isn&#8217;t getting back the list of items he expected.</p>
<pre>my @matches = 'a b c d e' =~ /^(a) \s* (?: ([bcde]) \s* )*/xms;

say "(@matches)";   # prints "(a e)"</pre>
<p>Capturing parentheses in Perl are treated somewhat like registers.  Most Perl programmers are familiar with the <code>$<i>n</i></code> variables, which hold the values of a successful pattern match.  For example <code>$1</code> holds the value matched by the first set of parentheses, <code>$2</code> holds the value of the second set, and so on.</p>
<p>When a pattern is matched in list context, as above, it&#8217;s effectively the same as writing,</p>
<pre>'a b c d e' =~ /^(a) \s* (?: ([bcde]) \s* )*/xms;

my @matches = ( $1, $2 );</pre>
<p>These pattern match variables are scalars and, as such, will only hold a single value.  That value is whatever the capturing parentheses matched last.  So, in our simplified example, <code>$1</code> matches <code>a</code>, which is obvious enough.  As the pattern repeats, <code>$2</code> would be set to <code>b</code>, then <code>c</code>, and so on until the final match of <code>e</code>.</p>
<p>That explains why the pattern match wasn&#8217;t returning the expected list.  What can be done about it?</p>
<h2>Capturing Along the Way</h2>
<p>If we break down the sample data, we see that it generalizes to,</p>
<pre><i>prefix</i> <i>key</i> = <i>value</i>[, ...] [: <i>key</i> = <i>value</i>[, ...]]</pre>
<p>The first approach that came to mind is to split the data into multiple lines.  Each line can then have its initial <i>prefix</i> removed and saved, then parsed for its key/value pairs.  That&#8217;s starting to look a lot like parsing, which I promised to get to later.  For the purposes of this discussion, I wanted to be able to accomplish the task with a single regular expression.</p>
<p>To capture all of the values we want, we need to remove the repeating set of non-capturing parentheses.  However, we still need to repeat the match, ideally returning all of the captured values in one statement.  We can do that with the <code>/g</code> and <code>/c</code> regular expression modifiers.</p>
<pre>my @list = $string =~ m{ ([-+?,:]) \s* (\w+) \s* = \s* (\w+) \s* }xmsgc;</pre>
<p>I&#8217;ve done two things here.  First, I replaced the <code>\S</code> character classes, used to match the key and value, with <code>\w</code>.  The <code>+</code> pattern in a Perl regular expression is greedy, so the former character class was also matching the comma used to separate key/value pairs in the data.  This left the literal comma with nothing to match, so was one source of confusion.</p>
<p>Second, I noted that the initial <i>prefix</i>, while syntactically important, could be viewed in the same way as the comma and colon separators.  I combined all of these separators and added a capture around them so we can later make sense of the parsed data.</p>
<p>When matched against the data, the pattern results in a list like,</p>
<pre>("-", "name", "gcc_xo_src_clk", ",", "type", "rcg", "+", "name", "cxo_clk", ...)</pre>
<p>Now we can process the data using a simple state machine.</p>
<pre>my $state = undef;

while ( my $token = shift @list ) {
    if ( $token eq '-' ) { $state = 'dash'; next; }
    # ...
    if ( $token eq ',' ) { next; }

    my $key   = shift @list;
    my $value = shift @list;

    if ( $state eq 'dash' ) {
        # ...
    }
}</pre>
<p>Even though we did all of the data extraction using a single pattern match, it looks remarkably like &#8230; a parser!  The pattern is simply the tokenizer used to feed tokens into our state machine, the parser.</p>
<h2>Parsing</h2>
<p>I stated at the outset that I looked at this as a parsing problem, so the solution I would use is most likely a parser.  For simple, one-off scripts, I&#8217;d use a technique similar to the one I described in the previous section.  However, for more complex data or a more complex script, I&#8217;d turn to a real parser.</p>
<p>In fact, one of my contributions to the thread that led me to compose this post included an example of using the <code>$^R</code> and <code>$^N</code> variables in embedded code blocks to demonstrate a rudimentary parser that allowed a simulated form of capturing within a repeated non-capturing group.  I won&#8217;t go into any detail beyond showing what I wrote.  As this was from an early point in the thread, the <i>prefix</i> is ignored in this example.</p>
<pre>my @list = ();

my $kv = qr{
    (\w+) (?{ $^N; })           # capture the key
    \s* = \s* (\w+)
    (?{ $^R = [ $^R, $^N ]; })  # capture the value, saving the key
    (?{ push @list, @{ $^R } }) # push the key/value onto @list
}xms;

$data =~ m{ (?: ^[-+?] \s* $kv \s* (?:[,:] \s* $kv \s* )* )* }xms;</pre>
<p>Fortunately for us, there are parsing modules on the CPAN.</p>
<p>Prior to Perl 5.10, Damian Conway had written <a href="https://metacpan.org/module/Parse::RecDescent"><code>Parse::RecDescent</code></a>, but with the introduction of grammar-like facilities like named captures and named backreferences, Damian improved upon his original work and presented the Perl community with <a href="https://metacpan.org/module/Regexp::Grammars"><code>Regexp::Grammars</code></a>.</p>
<p>What does a parser for this data built with <code>Regexp::Grammars</code> look like?</p>
<pre>my $parser = qr{
    &lt;[Line]&gt;+

    &lt;token: Prefix&gt;   &lt;MATCH= ([-+?]) &gt;
    &lt;token: Key&gt;      &lt;MATCH= (\w+) &gt;
    &lt;token: Value&gt;    &lt;MATCH= (\w+) &gt;

    &lt;rule: Line&gt;      &lt;Prefix&gt; &lt;Pairs&gt; &lt;Options&gt;?
    &lt;rule: Pairs&gt;     &lt;[Pair]&gt;* % ,
    &lt;rule: Pair&gt;      &lt;Key&gt; = &lt;Value&gt;
    &lt;rule: Options&gt;   : &lt;[Option]&gt;* % ,
    &lt;rule: Option&gt;    &lt;Key&gt; = &lt;Value&gt;
}x;

if ( $data =~ $parser ) {
    # Do something with %/
}</pre>
<p>This is a trivial example and all the work is left to be done by inspecting the parse tree in <code>%/</code>.  However, the module supports embedded code that will be called when a token or rule matches, which can be used to process the data as its parsed.</p>
<h2>References</h2>
<ul>
<li><a href="http://perldoc.perl.org/perlre.html">perlre</a></li>
<li><a href="http://perldoc.perl.org/perlretut.html">perlretut</a></li>
<li><a href="http://perldoc.perl.org/perlvar.html">perlvar</a></li>
<li><a href="https://metacpan.org/module/Parse::RecDescent">Parse::RecDescent</a></li>
<li><a href="https://metacpan.org/module/Regexp::Grammars">Regexp::Grammars</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/repeated-capturing-and-parsing-in-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking Ahead to 2012</title>
		<link>http://sirhc.us/looking-ahead-to-2012/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=looking-ahead-to-2012</link>
		<comments>http://sirhc.us/looking-ahead-to-2012/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 05:47:35 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[happy new year]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[preparedness]]></category>
		<category><![CDATA[resolutions]]></category>
		<category><![CDATA[retrospective]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=844</guid>
		<description><![CDATA[One year ago in this space I attempted to start a new tradition for myself. While I rarely bothered in the past, mostly as an excuse to write a post, I jumped on the bandwagon and composed a set of resolutions for 2011. Now, in the waning hours of 2011, I wanted to take some [...]]]></description>
				<content:encoded><![CDATA[<p>One year ago in this space I attempted to start a new tradition for myself.  While I rarely bothered in the past, mostly as an excuse to write a post, I jumped on the bandwagon and composed a set of <a href="http://sirhc.us/resolutions-for-2011/">resolutions for 2011</a>.  Now, in the waning hours of 2011, I wanted to take some time to review my resolutions and update them for 2012.  Let&#8217;s take them from the top.</p>
<p><em>Spend more time with my daughter.</em></p>
<p>That should now read daughters, plural.  In June we welcomed our second child, <a href="http://sirhc.us/welcome-brenna-rose/">Brenna Rose</a>, into the world.  I&#8217;d like to think I&#8217;ve done well on this resolution.  I spend every day looking forward to getting home to see my girls.</p>
<p><em>Read more.</em></p>
<p>I added this to the list because every year I would read a little less than the year before.  I&#8217;ve managed to reverse this trend.  Sure, I&#8217;ve added feeds to Google Reader, but I&#8217;ve removed a few as well.  I&#8217;ve also opted to read actual books in my free time, reducing the amount of television I watch to a mere couple hours per week.  I&#8217;ve read through two <a href="https://en.wikipedia.org/wiki/James_Herriot#Omnibus_editions">James Herriot</a> books so far, with one remaining.  I received a Barnes &#038; Noble Nook for Christmas and purchased my first book for it on Thursday, <a href="http://www.barnesandnoble.com/w/ghosts-of-belfast-stuart-neville/1100396094"><em>The Ghosts of Belfast</em></a>, which I&#8217;ve been rapidly devouring.</p>
<p><em>Write more.</em></p>
<p>While I frequently sat in front of my computer, pondering topics about which to write, I rarely found the necessary inspiration to put metaphorical pen to paper.  Over the last 12 months, I composed a mere 16 posts.  Four of those, a quarter of them, were about <a href="http://sirhc.us/tag/oscon/">OSCON</a>, which is far fewer than in years past when I would write an individual post for each session I attended.  In addition, there are four drafts I never got around to completing.  Looking them over, it appears that at least three of them are mostly done.  I just need to give them a quick edit and post.  Sadly, one of them is about Kaylee&#8217;s summer camp, so it&#8217;s a bit stale at this point.</p>
<p>Having read several blogs over the last year, I&#8217;ve developed a desire to be a more prolific writer.  Not only personal posts, like this one, but anything that comes to mind.  I can write about my programming work or even short fiction.  I probably won&#8217;t delve into the realm of political commentary, but only because I lack any real desire to study the issues in enough depth to do them justice.</p>
<p><em>Be more Paleo.</em></p>
<p>More of the same here.  I can count on one hand the number of bites of grains I had during the year.  While my sweet tooth has been difficult to suppress, I really don&#8217;t eat very much sugar.  One beer per week, to end Friday on a high note, is all I indulge in anymore.  I managed to get my weight down to 158 pounds, which hasn&#8217;t budged in a few months.  I would like to drop a few more pounds of body fat, so perhaps that is where I&#8217;ll focus my efforts for 2012.</p>
<p><em>Join a CrossFit Box.</em></p>
<p>I thought about it a few times, but never bothered.  I have been going to the gym at work regularly and have been making decent strength gains.  I&#8217;m mostly pleased with my progress on fitness and even earned my third degree black belt this year, so not accomplishing this particular resolution isn&#8217;t bothering me very much.</p>
<p><em>Get into MovNat.</em></p>
<p>The closest I got to this was our recent trip to <a href="http://sirhc.us/grape-day-park/">Grape Day Park</a> in Escondido.  As a fitness program, it&#8217;s still something I want to do.</p>
<p><em>Actually use Facebook.</em></p>
<p>I added this one as a joke, but somehow I ended up using it.  Sort of.  I rarely post anything on Facebook, preferring Twitter and Google Plus, but I do try to keep tabs on what my friends are doing.</p>
<p><strong>Looking Ahead to 2012</strong></p>
<p>Aside from the above, what else should I look forward to doing in 2012?</p>
<p>I&#8217;ve recently been putting an emphasis on being more organized and getting things done in a more timely fashion.  I&#8217;d like to keep this going into the new year, particularly with respect to the things that need doing around the house.</p>
<p>Segueing from organization into preparation, the <a href="http://sirhc.us/san-diego-goes-dark/">recent power outage</a> in San Diego made me take a serious look at our disaster preparations.  My wife pokes fun at me for treating the entire situation as preparation for the zombie apocalypse, but I find it a fun way to stay motivated.  Besides, when zombies show up and start eating people, who will be laughing then?</p>
<p>So that&#8217;s my theme for 2012: organization and preparation.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/looking-ahead-to-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Grape Day Park</title>
		<link>http://sirhc.us/grape-day-park/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=grape-day-park</link>
		<comments>http://sirhc.us/grape-day-park/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 21:18:44 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[climbing]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[movnat]]></category>
		<category><![CDATA[play]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=839</guid>
		<description><![CDATA[Over the weekend my wife and I took the girls to meet up with some friends. Our original plan was, after having lunch, to spend some time at the San Diego Children&#8217;s Discovery Museum in Escondido. However, after a couple of changes in that plan, we ended up at Grape Day Park, which happens to [...]]]></description>
				<content:encoded><![CDATA[<p>Over the weekend my wife and I took the girls to meet up with some friends.  Our original plan was, after having lunch, to spend some time at the <a href="http://sdcdm.org/">San Diego Children&#8217;s Discovery Museum</a> in Escondido.  However, after a couple of changes in that plan, we ended up at <a href="http://grapedaypark.org/">Grape Day Park</a>, which happens to be adjacent to the museum.</p>
<p><div class="wp-caption alignright" style="width: 310px"><img alt="Jump!" src="https://lh3.googleusercontent.com/-hfA0QjMs74E/TrmcChcLHhI/AAAAAAAABv8/VNHVanNYpZI/s400/331302_10150449134493200_755203199_10413580_2045396171_o.jpg" title="Grape Day Park" width="300" height="400" /><p class="wp-caption-text">Action shot of me leaping from the grape slide.</p></div>The distinguishing features of the park are the slide, designed to look like a bunch of purple grapes, and <a href="http://www.flickr.com/photos/mr38/159977110/">Vinehenge</a>.  The latter feature is pretty awesome.  It is a sculpture, by artists Valerie Salatino and Nancy Moran, of giant grape vines, which serves as an intricate climbing structure.</p>
<p>I couldn&#8217;t help myself.  As soon as I saw the grapes and vines, I was all over them.  I climbed from the bottom to the top, walking with all four limbs like a monkey.  I leaped from the ground to the high vines, hauling myself up to perch atop them.  I may have gotten more out of the vines than the kids did.  Although, my daughter dubbed the tangle of vines the Spooky Forest, which from that point on was only to be entered with caution, not climbed upon.</p>
<p>We&#8217;ll definitely have to make this park a regular stop.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/grape-day-park/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011 Boot Camp Challenge</title>
		<link>http://sirhc.us/2011-boot-camp-challenge/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2011-boot-camp-challenge</link>
		<comments>http://sirhc.us/2011-boot-camp-challenge/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 22:10:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[boot camp]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[obstacles]]></category>
		<category><![CDATA[paleo]]></category>
		<category><![CDATA[race]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=823</guid>
		<description><![CDATA[A little over a week ago, on Saturday, 24 September 2011, I participated in the MCRD San Diego 2011 Boot Camp Challenge. This is a short, three mile race that, according to the website, has over 40 obstacles, including hay jumps, tunnel crawls, log hurdles, a six foot wall, trenches, cargo net crawls, and push-up [...]]]></description>
				<content:encoded><![CDATA[<p>A little over a week ago, on Saturday, 24 September 2011, I participated in the MCRD San Diego <a href="http://www.bootcampchallenge.com/">2011 Boot Camp Challenge</a>.  This is a short, three mile race that, according to the website, has over 40 obstacles, including hay jumps, tunnel crawls, log hurdles, a six foot wall, trenches, cargo net crawls, and push-up stations.  In addition, United States Marine Corps drill instructors are positioned at each station to make sure each obstacle is properly completed.</p>
<p><a href="https://lh3.googleusercontent.com/-LiXST_lX2jw/Tot5qzkUhNI/AAAAAAAABqk/waiNgQdpzRQ/s800/course_map02.jpg"><img alt="" src="https://lh3.googleusercontent.com/-LiXST_lX2jw/Tot5qzkUhNI/AAAAAAAABqk/waiNgQdpzRQ/s400/course_map02.jpg" title="Course Map" class="alignleft" width="400" height="272" /></a>It&#8217;s a fun course, as depicted by the map over on the left.  The numbers on the map represent: (1) hay stacks; (2) hay stacks; (3) hay stacks; (4&ndash;19) jump over logs, crawl under logs, wall; (20) tunnels; (21) push-ups; (22) wall; (23) bayonet; (24) trenches; (25) tunnels; (26) low crawl; (27) planks; (28) push-ups; (29&ndash;43) jump over logs, crawl under logs, wall; (44) hay stacks; (45) hay stacks.</p>
<p>There are a lot of hay stacks on the course, and for good reason.  Nothing breaks up your pace and depletes your muscles of glycogen quite like explosively leaping over hay stacks.  Then come the obstacles.  My group, the individual men, started the race early enough that I never had to stand in line to wait for an obstacle (I saw several lines in the photos of later groups).  This is good for time, but exhausting as you sprint from one obstacle to the next only to do something that is very much not running.</p>
<p>If you&#8217;re anything like me, you saw number 23 and thought, &#8220;Bayonets?!  Awesome!&#8221;  At least, that&#8217;s what I thought when I first looked at the map.  Yeah, not so much.  We were allowed to run past the bayonet targets, and that&#8217;s it.</p>
<p>I had done this race once before, in 2004, but it has taken me seven years to finally do it again.  That year I raced in a team of three with a couple of my friends.  I don&#8217;t remember how we placed and the results are nowhere to be found, so I&#8217;ll just assume we didn&#8217;t do very well.  Probably a good assumption, as the race was a week after my honeymoon and I recall being some 40 or so pounds heavier at the time.</p>
<p>I entered the race this year mostly as a test of my fitness.  Was this paleo lifestyle thing really working out for me?  Doing nothing more than three weeks of eating well, twice weekly <a href="http://www.marksdailyapple.com/primal-blueprint-fitness/">body weight workouts</a>, and once weekly sprints, I ran the race.  I haven&#8217;t run more than a quarter mile since, well, since probably the last time I ran this race.</p>
<p>The results are <a href="http://www.y-events.com/11booti.htm">here</a>.  Just in case that page vanishes, as most of the past results seem to have done, I&#8217;ve mirrored the page on my website, <a href="http://sirhc.us/files/11booti.html#461">highlighting my result</a>.  I came in 47 out of 91 in my division and 340 out of 1,117 overall.  Interestingly, my time of 26:44 would have put me 36 out of 48 in the mens elite division.  Although, given the under 20 minute time of the first 10 people in that division, I don&#8217;t think I&#8217;ll ever race in it.</p>
<p>I&#8217;m sure I could have done better with more training, but my time was lower than I expected it to be.  On the rare occasion that I do use a treadmill, it tells me that I run a 12 minute mile.  So an average mile time of 8:55 for the race surprised me a bit.  Back in high school, I could run a six minute mile, so I&#8217;ll consider that my new goal.</p>
<p><img alt="" src="https://lh6.googleusercontent.com/-PdXXd8Jt3vs/Tot5yqx89cI/AAAAAAAABq0/fVMOoW38sLw/s400/IMG_20110924_112708.jpg" title="Minor Injuries" class="alignright" width="300" height="400" />When I chose to wear shorts for the race, my wife asked me if I was worried about injuring myself on the obstacle course.  Of course, I told her I wasn&#8217;t.  I took the picture over on the right shortly after I got home from the race.  I would call that relatively uninjured.  Worst by far were my calves, which were sore for days, having run the race in my <a href="http://www.vibramfivefingers.com/products/Five-Fingers-KSO-Mens.htm">Vibram FiveFingers KSOs</a>.</p>
<p>Overall, it was an incredibly fun race, and I can&#8217;t wait to do it again next year.  I already have my calendar marked for Saturday, 6 October 2012.  That&#8217;s over two months before the world ends, so I&#8217;m confident things will go off without a hitch.  Next year I&#8217;ll try to get my time down to around 20 minutes.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/2011-boot-camp-challenge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>San Diego Goes Dark</title>
		<link>http://sirhc.us/san-diego-goes-dark/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=san-diego-goes-dark</link>
		<comments>http://sirhc.us/san-diego-goes-dark/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 07:28:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Home]]></category>
		<category><![CDATA[San Diego]]></category>
		<category><![CDATA[electricity]]></category>
		<category><![CDATA[emergency]]></category>
		<category><![CDATA[plan]]></category>
		<category><![CDATA[power]]></category>
		<category><![CDATA[preparedness]]></category>
		<category><![CDATA[survival]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=818</guid>
		<description><![CDATA[At approximately 3:35 this afternoon, I was standing in the hallway outside my office, talking to my boss and a coworker. It&#8217;s a very odd feeling when the power to the entire building goes out. Everything goes absolutely silent. I never appreciate how much noise the air conditioning, the computers, and even the vending machines [...]]]></description>
				<content:encoded><![CDATA[<p>At approximately 3:35 this afternoon, I was standing in the hallway outside my office, talking to my boss and a coworker.  It&#8217;s a very odd feeling when the power to the entire building goes out.  Everything goes absolutely silent.  I never appreciate how much noise the air conditioning, the computers, and even the vending machines make until it&#8217;s gone and the stillness sets in.  A few seconds later, having given us enough time to pause and understand what was happening, the backup power kicked in, restoring light to the hallway.  Looking at the time, I immediately decided to catch the 3:45 shuttle, which would get me on the 4:06 northbound <a href="http://www.gonctd.com/coaster">COASTER</a> home.  As I sit here writing, reflecting on the afternoon, I&#8217;m grateful that I didn&#8217;t hesitate.</p>
<p>I received a text message from my wife as I was leaving the building, informing me that power was out at home, 20 miles away from my office.  As I sat on the shuttle, listening to the chatter of the <a href="http://www.sdmts.com/">San Diego MTS</a> radio, I learned that power was out across the county.  I was relatively confident that the trains would continue to run, as they are self-powered and the railroads have radio procedures they follow when the signals lose power.  Still, I was relieved when my train pulled into the Sorrento Valley station right on time.  The trip home took much longer than usual, while the train proceeded slowly and waited for clearance over the radio.  During the ride, I followed news about the power outage, and kept my dad up to date on my status, on Twitter.  Fortunately, Verizon&#8217;s cell towers remained online.</p>
<p>Traffic was abysmal around the county by the time I arrived at the Carlsbad Poinsettia station, around 5:00 PM.  I was fortunate, in that I only had a rough time until I crossed over the I-5 freeway.  Most of my short, 7.5 mile trip between the train station and my house is done on less-traveled roads.  Once into San Marcos, the traffic signals were operating on battery power, so the final few lights were even normal for me.</p>
<p>Finally arriving home shortly before 6:00 PM, I unplugged the computers and appliances&mdash;to safe-guard against possible surges when the power was restored&mdash;and prepared dinner.  Fortunately, I intended all along to use the propane grill for dinner, so I didn&#8217;t have to alter our plans.  We did end up eating our dinner by candle light, which is something we haven&#8217;t done in quite a while.  After dinner, we finished off the chocolate ice cream, which was rapidly melting in the freezer.  We spent the remainder of the evening listening to the news on one of our <a href="http://www.etoncorp.com/">Eton</a> crank-powered radios, all of which I&#8217;d selected as pledge gifts over the years from <a href="http://www.kpbs.org/">KPBS</a>.</p>
<p>Our power was restored at 10:25 PM, at which point I plugged everything back in, set the few clocks we still have that don&#8217;t set themselves, and verified that the temperature of the refrigerator was okay.  Then, as my brain wouldn&#8217;t let me go to sleep until I purged its thoughts into print, I sat down to compose this post.  What did I do right today, and what lessons have I learned?</p>
<p><strong>Know how you&#8217;re getting home.</strong>  I was very lucky today.  The power dropped minutes before the first MTS shuttle this afternoon, and I didn&#8217;t hesitate to take it.  Further, the trains were still running.  I do not have a backup plan for how I would get home otherwise.  My parents live near my workplace so, barring a grave emergency, I&#8217;d likely wait things out at their house.  Or, as I told my wife, chill out on the patio at <a href="http://www.karlstrauss.com/PAGES/Eats/SorrentoMesa.html">Karl Strauss</a>, knocking back a few pints.</p>
<p><strong>Have portable radios where you need them.</strong>  We succeeded here, having three of the aforementioned Eton radios.  I had one in my car, but didn&#8217;t need it, since Verizon&#8217;s data network remained up the entire time.  My wife has one in her car and we have one in the house, so she was able to listen to the news about the power outage.  Our oldest radio doesn&#8217;t hold a charge for very long, so it may be time to replace it.</p>
<p><strong>Have several flashlights in several locations, <em>with batteries</em>.  Also, candles.</strong>  We keep large <a href="http://www.maglite.com/">Maglite flashlights</a> in each of the cars and small tactical flashlights both in the cars and throughout the house.  Between those and two boxes of candles from IKEA, we had plenty of light.  Recently, we&#8217;d started moving to using rechargeable batteries for everything, which work great, when you have power to recharge them.  I plan to purchase bulk packs of batteries in various sizes to store in an emergency kit, to be used only in emergencies.  Speaking of which&#8230;</p>
<p><strong>Have an emergency kit.</strong>  We don&#8217;t really have one, though we didn&#8217;t suffer for it this time.  Creating a plan and organizing a kit has been on my to-do list for a long time and it&#8217;s about time I take care of it.</p>
<p><strong>Keep non-perishable food on hand.</strong>  We&#8217;re somewhat okay on this.  We have bottled water and canned food, though I don&#8217;t think we have enough for three days.  I intend to remedy this on our next trip to Costco.  In fact, I&#8217;ve been making a mental checklist of food items to stock for while.  Canned meats are high on the list, followed by dried fruits, and water.  Lots of water.</p>
<p><strong>Know where to get news.</strong>  I was fortunate that Verizon&#8217;s data service remained online.  Between listening to <a href="http://www.kogo.com/">KOGO</a> and reading Twitter, I had a pretty good idea of what was going on.  The Twitter accounts I found the most useful today were, <a href="http://www.twitter.com/SDGE">@SDGE</a>, <a href="http://www.twitter.com/SanDiegoCounty">@SanDiegoCounty</a>, <a href="http://www.twitter.com/ReadySanDiego">@ReadySanDiego</a>, <a href="http://www.twitter.com/SDSheriff">@SDSheriff</a>, <a href="http://www.twitter.com/GoNCTD">@GoNCTD</a>, <a href="http://www.twitter.com/KPBSnews">@KPBSnews</a>, and <a href="http://www.twitter.com/nctimes">@nctimes</a>.</p>
<p><strong>Have your bug out bag (BOB) packed and your cars fueled.</strong>  While we don&#8217;t have bug out bags, we do keep the cars fueled.  I decided long ago to never let the fuel tanks drop below half, because you never know when you&#8217;ll need to drive somewhere without the opportunity to refill.  Obviously, these precautions were unnecessary today, but non-emergencies like a widespread power outage give us the opportunity to think about what we need and test our preparedness without great risk.  What if this had been a wildfire or an earthquake?  Would we have been ready to evacuate at a moment&#8217;s notice?  I&#8217;m sad to say, probably not.  That leads to my most important lesson&#8230;</p>
<p><strong>Know what to do.</strong>  I need to make sure my family and I are on the same page if a disaster occurs, even if we are unable to communicate.  Under what circumstances do we evacuate?  Where do we go?  What if our primary choice is unreachable?  What if, as is likely the case in San Diego, the roads are jammed?  As important as knowing when to go is knowing when to stay put and for how long.</p>
<p>There are lot of considerations that go into designing an emergency plan and I know I didn&#8217;t go into all of them here, nor did I intend this to be a comprehensive list.  These were just the main things I&#8217;ve been thinking generally about lately and specifically about today.  When I do make our emergency preparation, I&#8217;ll likely follow up with another post.  If anything, it will serve as documentation for my immediate and extended family.  Now that I&#8217;ve put my thoughts into print, maybe my brain will let me sleep.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/san-diego-goes-dark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Farewell Rubio&#8217;s</title>
		<link>http://sirhc.us/farewell-rubios/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=farewell-rubios</link>
		<comments>http://sirhc.us/farewell-rubios/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 04:45:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[asthma]]></category>
		<category><![CDATA[Neolithic agents of disease]]></category>
		<category><![CDATA[Rubio's]]></category>
		<category><![CDATA[soy]]></category>

		<guid isPermaLink="false">http://sirhc.us/farewell-rubios/</guid>
		<description><![CDATA[Once one of my favorite restaurants, you and I simply don&#8217;t get along anymore. I had food from Rubio&#8217;s for lunch today, brought in by the company hosting my colleagues and me for some technical training.  Not long after lunch, my asthma began to act up.  Since going Paleo several months ago, my daily inhaler [...]]]></description>
				<content:encoded><![CDATA[<p>Once one of my favorite restaurants, you and I simply don&#8217;t get along anymore.</p>
<p>I had food from <a href="http://www.rubios.com/">Rubio&#8217;s</a> for lunch today, brought in by the company hosting my colleagues and me for some technical training.  Not long after lunch, my asthma began to act up.  Since going Paleo several months ago, my daily inhaler and I have practically parted ways.  However, this evening I felt that I needed it.</p>
<p>A few weeks ago, I had dinner at <a href="http://www.islandsrestaurants.com/">Islands</a>, where I indulged in some corn chips and salsa.  The following day, I needed my inhaler.  I, perhaps wrongly, concluded that grains, at least corn, were a trigger and have been much happier to avoid them ever since.</p>
<p>It should go without saying that I passed on the tortillas served alongside lunch today.  Nevertheless, not long afterwards I felt that all too familiar tightness in my chest, resulting in the use of my inhaler tonight, after two weeks without.</p>
<p>If I had to guess, I&#8217;d say it was the liberal <a href="http://www.rubios.com/images/nutri_allergen/Ingredient-Statements.pdf">use of soy</a> in the cooking (is it to save money or demonstrate that the food is supposedly heart healthy?) that proved today&#8217;s trigger.  I don&#8217;t know what specifically was the cause, as it could be any one of soy&#8217;s negative properties, or even several in combination.  In the end, this is just further encouragement to avoid eating out.</p>
<p>Except for <a href="http://www.elevationburger.com/">Elevation Burger</a> (their site appears to be Flash-based, sorry).  That place is awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/farewell-rubios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2011: Friday</title>
		<link>http://sirhc.us/oscon-2011-friday/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2011-friday</link>
		<comments>http://sirhc.us/oscon-2011-friday/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 00:46:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Burgerville]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[milkshake]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2011]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[shipwright]]></category>
		<category><![CDATA[sockgate]]></category>
		<category><![CDATA[Stargate]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=783</guid>
		<description><![CDATA[Friday marked the last day of the O&#8217;Reilly Open Source Convention (OSCON), and my last day in Portland, Oregon. Unlike previous trips, I traveled home on Friday night instead of Saturday morning. In the past, I&#8217;ve sat around my hotel on Friday night with nothing to do except finish posts about OSCON. There is one [...]]]></description>
				<content:encoded><![CDATA[<p>Friday marked the last day of the <a href="http://www.oscon.com/oscon2011/">O&#8217;Reilly Open Source Convention</a> (OSCON), and my last day in Portland, Oregon.  Unlike previous trips, I traveled home on Friday night instead of Saturday morning.  In the past, I&#8217;ve sat around my hotel on Friday night with nothing to do except finish posts about OSCON.  There is one drawback, though.  I&#8217;m finally finishing this post 20 days later, which means it probably won&#8217;t be as fleshed out as my posts about Wednesday and Thursday.</p>
<p>After my near complete lack of interest in the keynotes I saw on Wednesday and Thursday mornings, I paid little attention to those on Friday.  I thought the message Karen Sandler had about <a href="http://www.oscon.com/oscon2011/public/schedule/detail/21426">open health</a> was good, but that&#8217;s about all I can say about them.</p>
<p>By far I was the most pleased by the sessions I attended on Friday.  First, Kevin Falcone&#8217;s <a href="http://www.oscon.com/oscon2011/public/schedule/detail/19126">Shipwright: Application Distribution Simplified</a>.  Kevin works for Best Practical, a company with the <a href="http://www.flickr.com/photos/andyarmstrong/2402300165/">best shirts</a>.  I plan on doing some evangelizing of Shipwright at work, as it would help a lot of people, including me, to better develop and deploy their applications.</p>
<p>I wasn&#8217;t planning on attending OSCON this year.  I was perfectly happy skipping it and staying home during the last week of July.  Then I happened to be looking over the list of Perl sessions and saw, at the very end of the list, <a href="http://www.oscon.com/oscon2011/public/schedule/detail/18392">Easy Distributed Computing with Perl and Grid::Request</a>.  It seems that Victor Felix has released a module that does exactly the same thing as some of the modules I&#8217;ve maintained at work, only the design is much better.  However, it doesn&#8217;t support the batch system we use.  I emailed Victor to discuss some collaboration and registered for OSCON so I could meet him.  So yeah, I attended OSCON for one session.  But it was worth it.  The module looks great and Victor seems happy that I have an interest to contribute.  It will be much better use of my time to contribute to a module on the CPAN than to continue pouring effort into what we have today.</p>
<p>Since, after chatting for a bit with Victor, I was already standing outside the room well into the next time slot, I popped into <a href="http://www.oscon.com/oscon2011/public/schedule/detail/18768">Git for Ages 4 &amp; Up</a>.  Michael Schwern and Ricardo Signes demonstrated the Git commands everyone should know to get started with the version control system.  As an added bonus, they used <a href="http://en.wikipedia.org/wiki/Tinkertoy">tinkertoys</a> to help the audience visualize what Git&#8217;s internal representation of the repository looked like after each command.  It was definitely a different and entertaining talk.</p>
<p>Prior to the closing keynote, Piers Cawley was invited to sing his library song, which I mentioned in <a href="http://sirhc.us/oscon-2011-thursday/">Thursday&#8217;s post</a>, again for the benefit of all OSCON attendees.</p>
<p>Paul Fenwick delivered the closing keynote.  If you haven&#8217;t seen one of his talks, shame on you.  Here, to help you fix that, I&#8217;ll refer you to his keynote, <a href="http://www.youtube.com/watch?v=OnX5v0uwNjc&#038;list=PL93FC98105B19725C&#038;index=39">All Your Brains Suck&mdash;Known Bugs and Exploits in Wetware</a>.</p>
<p>After three days in Portland, I finally ate at <a href="http://burgerville.com/">Burgerville</a>.  Eating at this regional chain is something I look forward to every time I&#8217;m in the area.  Though, I suppose my <a href="http://sirhc.us/before-after-why-i-care-about-my-health/">change in diet</a> may have suppressed my eagerness and led me to put it off until Friday.  In any case, I ordered a cheeseburger with grilled onions (ditching the bun) and a large raspberry shake.  While I prefer their blackberry shakes when available, the meal was delicious.</p>
<p>The high point of the conference happened, oddly enough, after it had ended.  For whatever reason, I happened to wander into a different area of the convention center, in which a sock knitting conference was taking place.  Outside of their expo hall was the Sockgate, a cardboard replica of a <a href="http://stargate.wikia.com/wiki/Stargate">Stargate</a>.  As we were waiting to take pictures with it, Paul Fenwick happened by and offered to take some photos.  He&#8217;s a really nice guy and I enjoyed finally getting the chance to meet him.  After the photo op, he headed into the knitting expo hall.  In retrospect, I should have done the same.  It would have been interesting to see what it was like.</p>
<div class="wp-caption aligncenter" style="width: 410px"><img alt="Sockgate" src="https://lh5.googleusercontent.com/-yvtw-Izpfy8/Tk2pgc36rYI/AAAAAAAABoc/KQfY0iF_zl0/s400/286278_264778273538030_236078669741324_1274545_6827680_o.jpg" title="Traversing the Sockgate" width="400" height="267" /><p class="wp-caption-text">Photo Credit: Paul Fenwick</p></div>
<p>Finally, I learned that when I attend OSCON, I really do need to go for the entire week.  Apparently, it takes me about two days to acclimate myself to the environment and really start interacting with people.  Of course, by arriving Tuesday night, I was ready to interact on Friday, just as everyone was heading home.  It didn&#8217;t help that I was staying in a hotel way out by the airport, with MAX service ending before 11:00 PM.  With a new baby at home, I certainly don&#8217;t regret my choice to be away for a shorter period of time, but if I go next year, I&#8217;ll probably go for the entire week.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2011-friday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2011: Thursday</title>
		<link>http://sirhc.us/oscon-2011-thursday/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2011-thursday</link>
		<comments>http://sirhc.us/oscon-2011-thursday/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 23:30:48 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[Lightning Talks]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2011]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=773</guid>
		<description><![CDATA[Thursday was the second day of sessions at the O&#8217;Reilly Open Source Convention (OSCON) and my third day in Portland, Oregon. Overall, the sessions I attended were arguably more relevant to my work than those I attended on Wednesday. Still, the day left me feeling unsatisfied. At past OSCONs, I ended each day with my [...]]]></description>
				<content:encoded><![CDATA[<p>Thursday was the second day of sessions at the <a href="http://www.oscon.com/oscon2011/">O&#8217;Reilly Open Source Convention</a> (OSCON) and my third day in Portland, Oregon.  Overall, the sessions I attended were arguably more relevant to my work than those I attended on Wednesday.  Still, the day left me feeling unsatisfied.  At past OSCONs, I ended each day with my mind brimming with new ideas, scarcely able to wait until I could put some of them into practice.  So far, this year&#8217;s conference hasn&#8217;t had the same effect on me.</p>
<p>In any case, the Thursday morning keynotes were far better than those foisted upon us on Wednesday morning.  Gabe Zichermann&#8217;s talk, in particular, caught my attention.  In <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/20826">Game theory applied to user engagement in Open Source</a></strong> he talked about using so-called gamification techniques to draw people into using Open Source software.  Many of his examples had to do with using game theory to alter real life behavior, such as a <a href="http://theage.drive.com.au/roads-and-traffic/speed-camera-rewards-drivers-20101129-18d3i.html">lottery to reward good drivers in Sweden</a> or the use of consumption graphs in hybrid vehicles.  On a separate note, I tend to grow annoyed at the latter, having been stuck behind too many <a href="http://en.wikipedia.org/wiki/Hypermiling">hypermiling</a> drivers.</p>
<p>Getting into the sessions, I favored those more in line with the work I do as a Perl programming system administrator.  Also, it didn&#8217;t hurt that <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/18581">The Conway Channel 2011</a></strong> happened to take place during the first time slot of the day.  I&#8217;m a bit sorry I passed up <a href="http://www.oscon.com/oscon2011/public/schedule/detail/19247">DIY Clinical Trials (Or: How to Guinea Pig Your Way to Scientific Truth and Better Health)</a>, if only for the reason that it would have been completely different from anything I normally do.  But, I attended those types of sessions on Wednesday, so it was back to business, so to speak.  Damian Conway was in his usual top form, as entertaining as he is educational.  I won&#8217;t go into too much detail, only to note that he demonstrated four of his modules, using a theme I&#8217;m sure most will recognize.  First, something old, updates to the <a href="https://metacpan.org/module/Regexp::Grammars">Regexp::Grammars</a> module.  He then introduced something new, the <a href="https://metacpan.org/module/IO::Prompter">IO::Prompter</a> module, which supersedes his older IO::Prompt.  There was something borrowed, the <a href="https://metacpan.org/module/Data::Show">Data::Show</a> module, which serves as a convenience wrapper around the <a href="https://metacpan.org/module/Data::Dump">Data::Dump</a> module.  And finally, something blue, the <a href="https://metacpan.org/module/Acme::Crap">Acme::Crap</a> module, which seems oddly cathartic.</p>
<p>I like to think I&#8217;m a halfway decent Perl programmer, but that doesn&#8217;t mean I think I can ignore things like Jacinta Richardson&#8217;s <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/18870">Perl Programming Best Practices 2011</a></strong>.  The talk was a round-up of the tools and modules that are generally considered to be the best practices by the Perl community today.  Yes, generally.  People will have their differences of opinion, and I don&#8217;t always agree with the advertised best practices.  However, if followed, the practices will lead to better code, and if violating a practice, I like to be able to back that up with a well thought out reason (it doesn&#8217;t necessarily have to be a good reason).  The first of two, possibly pithy, examples of this is the <a href="https://metacpan.org/module/local::lib">local::lib</a> and it&#8217;s default use of <tt>~/perl5</tt> as its include path.  I prefer to use <tt>~/local/lib/perl5</tt> and, sure, the module allows me to do that easily enough, but it&#8217;s an extra, non-standard step.  Second, the <a href="https://metacpan.org/module/App::cpanminus">cpanm</a> has been touted as the best way to install modules from CPAN.  As a control freak with a highly customized CPAN configuration, I&#8217;ve never liked the way cpanm seems to do things its way.  Admittedly, it may be customizable, but I&#8217;ve never had the need to look into it.</p>
<p>There&#8217;s been some noise around the office about testing Amazon&#8217;s EC2 offering.  To that end, I thought James Loope&#8217;s <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/18988">Utility and Automation: Low Overhead Operations with Amazon &amp; Puppet</a></strong> would be educational, possibly giving me some ideas about how to managing our own potential EC2 environment.  Unfortunately, it didn&#8217;t work out that way for me.  The talk was heavily focused on the way the web application was designed and pieces of Amazon&#8217;s infrastructure were used.  We&#8217;re not creating or running web applications, so none of it was beneficial to me.  There was nothing about Puppet aside from explaining that using it (or another configuration management tool) is vital for keeping everything running.</p>
<p>At this point, I was turned off from any cloud talks at OSCON.  There seems to be, with probably good reason, an inextricable tangling of cloud and web applications.  Because of this, I decided to pass on <a href="http://www.oscon.com/oscon2011/public/schedule/detail/18726">Achieving Hybrid Cloud Mobility with OpenStack and XCP</a> and instead attended Piers Cawley&#8217;s <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/18577">Polymorphic Dispatch&mdash;It&#8217;s Not Just a Good Idea, It&#8217;s the Law</a></strong>.  I&#8217;m glad I did, because there were definitely some very useful ideas presented.  The idea, taken from Smalltalk, of passing messages to objects has a lot of merit.  Combining this with polymorphism, sending a message and allowing different objects to act on it differently, vastly simplifies code.  Simple code, of course, is easier to test and easier to debug when things go horribly wrong (and actually is less likely to go horribly wrong in the first place).  Of particular interest to me were the <a href="http://en.wikipedia.org/wiki/Null_Object_pattern">Null Object pattern</a> and what Piers referred to as the key tenant of object-oriented programming: tell, don&#8217;t ask.  That is to say, if I understood correctly, instead of querying an object for information and using it to determine which action to perform, give the information to the object and have it perform the action.  Finally, <a href="http://amzn.to/14ouCY"><em>Smalltalk Best Practice Patterns</em></a> was recommended as the best book on good coding practices out there.  According to Piers, it &#8220;will change the way you think about programming.&#8221;</p>
<p>I was in way over my head in Tom Christiansen&#8217;s <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/19543">Unicode in Perl Regexes</a></strong>.  The only thing I managed to learn is that I don&#8217;t know nearly enough about Unicode to actually understand using it.  I&#8217;ll leave it at that.  It was a very information-dense session and it&#8217;s possible that Tom knows more about Unicode than those who designed it.  Other choices during this time slot, which may have been better for me, were <a href="http://www.oscon.com/oscon2011/public/schedule/detail/19548">Connecting iOS to the Real World with Arduino</a>, presented by my friend <a href="http://www.dailyack.com/">Alasdair Allan</a>, or, venturing again into the realm of health geekery, <a href="http://www.oscon.com/oscon2011/public/schedule/detail/18488">Open Source Preventive Medicine: Citizen Science Genomics</a></p>
<p>The last session I attended on Thursday had so much potential, but, for me, it fell flat.  I expected <a href="http://blog.qtau.com/">A. Sinan Unur</a>&#8216;s <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/19211">Visualizing Economic Data Using Perl and HTML5&#8242;s Canvas</a></strong> to focus far more on visualization than it did.  Instead, the majority of the presentation was about the difficulty of parsing public data published by the United States government.  For this, Sinan uses <a href="https://metacpan.org/module/Spreadsheet::ParseExcel">Spreadsheet::ParseExcel</a> and explained a few of the techniques he uses to extract data from tables designed primarily for visual consumption.  Unfortunately, very little time was spent showing how Canvas was used.  We were given one static example and an explanation that there is no method available for determining the height of text in a Canvas element.  I had hoped to return to work with some ideas for using Canvas to visualize data from our batch scheduling system, but ultimately left disappointed.</p>
<p>After the last session, I met up with a coworker, an old friend, and a new friend to have dinner at Chipotle.  Normally, I like to avoid chain restaurants&mdash;national chains in particular&mdash;when traveling, preferring to sample the local cuisine.  But, we wanted a quick dinner and it was nearby.  My opinion was requested, on the relative healthfulness of pinto versus black beans.  I simply stated that I would be ordering my carnitas bowl without any beans.</p>
<p>After dinner, we returned to the convention center for the <a href="http://www.oscon.com/oscon2011/public/schedule/detail/21120">Perl Lightning Talks and the State of the Onion</a>.  As always, the talks were quite entertaining.  Of note was a juggling demonstration, illustrating various programming languages and databases.  Near the end, Ricardo Signes recounted a conversation he had with a couple of women from the knitting conference sharing the convention center with us.  Its presence provided a wonderful juxtaposition.  While OSCON is male-dominated and many don&#8217;t know how to act when women brave their way into our midst, the knitting convention is completely opposite.  Ricardo&#8217;s message to us was, take the time to look up from our laptops and chat with those around us.  We might just have a better time and make new friends.</p>
<p>Finally, Piers Cawley favored us, as he does every year, with a song.  This year, however, he did not bear a tale of levity, but a message of deadly seriousness.  The United Kingdom is closing libraries in an attempt to reduce public spending.  As a protest, Piers wrote a song, <a href="http://soundcloud.com/pdcawley/child-of-the-library">&#8220;Child of the Library&#8221;</a>.  There doesn&#8217;t appear to be any video (yet) of Piers performing at OSCON, but I&#8217;ve gone ahead and embedded one that I found.  It&#8217;s catchy, I had it stuck in my head for a couple of days after the conference.</p>
<p><iframe width="560" height="349" src="http://www.youtube.com/embed/VwZk8DMWTOA" frameborder="0" allowfullscreen></iframe></p>
<p>We could easily see the same thing happen in the United States&mdash;and in fact I have already seen it <a href="http://www.nbcsandiego.com/news/politics/Now-They-Might-Close-Libraries-104040374.html">proposed in San Diego</a>.  I&#8217;ll first admit that I have not set foot inside a library since college, over a decade ago (high school, if only counting public libraries).  Do libraries still matter, or is the concern over their closing merely the knee-jerk nostalgia of those of us who came of age in a world that didn&#8217;t yet know the Internet?  I can&#8217;t, and won&#8217;t, take a side on this issue until I&#8217;ve taken the time to visit my local library.  If I can recognize it as something I saw in my childhood, perhaps it should be closed.  If it has adapted to the so-called Information Age, maybe it&#8217;s worth funding.</p>
<p>As a final, humorous note, I almost didn&#8217;t make it back to my hotel.  At least, not without finding an alternate method of transportation.  At 10:22 PM, excusing myself and apologizing for staying so far away from the conference, I left Media Temple party at the Jupiter Hotel, arriving at the convention center MAX station at 10:32 PM.  The schedule at the station listed 10:42 PM as the last red line train to the airport, with Google Maps concurring that a train was 10 minutes away.  About two minutes later an unmarked blue line train arrived at the station, traveling east.  At this point, Google Maps had decided it would rather show me its trip planner instead of the previous screen which showed the impending arrival of the red line.  Forced to make a split-second decision, I hopped on the train.  I knew that I could take it at least as far as the Gateway station, where I could transfer to the red line if it was still behind me.  Around 11:00 PM I arrived at Gateway, after spending the ride thinking about how much a cab would cost.  This station had a real-time display with train arrival times.  The last red line of the day was only three minutes out.  Whew.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2011-thursday/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2011: Wednesday</title>
		<link>http://sirhc.us/oscon-2011-wednesday/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2011-wednesday</link>
		<comments>http://sirhc.us/oscon-2011-wednesday/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 15:49:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2011]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=769</guid>
		<description><![CDATA[Today marks my first day of the O&#8217;Reilly Open Source Convention, since I chose to only attend the sessions this year. I will also depart with my tradition of writing a post for every session I attend. I enjoyed it in the past, but it adds more stress and distraction than I&#8217;d like this year. [...]]]></description>
				<content:encoded><![CDATA[<p>Today marks my first day of the <a href="http://www.oscon.com/oscon2011/">O&#8217;Reilly Open Source Convention</a>, since I chose to only attend the sessions this year.  I will also depart with my tradition of writing a post for every session I attend.  I enjoyed it in the past, but it adds more stress and distraction than I&#8217;d like this year.  Instead, I plan to relax and enjoy each session I attend.  I&#8217;ll still take a few notes, but I&#8217;ll limit myself to recapping an entire day in a single post.</p>
<p>I had breakfast in my hotel&#8217;s restaurant this morning, a mistake I won&#8217;t make again &mdash;over half the plate was composed of potatoes and toast, leaving little room for the eggs and sausage&mdash;.  It was an easy walk to the Cascades MAX station, until I saw the train arriving before me.  I likely could have made it onto the train had I sprinted, but I also had to buy a ticket, so I let it go.  Fortunately, it was the beginning of the morning commute, so another train was not far behind.</p>
<p>This morning&#8217;s keynotes were dry.  At least, I didn&#8217;t find them at all interesting.  Well, except for one.  I enjoyed Ariel Waldman&#8217;s brief talk about <a href="http://www.oscon.com/oscon2011/public/schedule/detail/20185">Hacking Space Exploration</a>.  It reminded me that I don&#8217;t spend nearly enough time on <a href="http://www.galaxyzoo.org/">Galaxy Zoo</a>.</p>
<p>The final keynote was a so-called surprise announcement.  We were first treated to a video in which a bunch of big names in technology&mdash;Bill Joy, Tim O&#8217;Reilly, and Al Gore to name a few&mdash;gushed over the possibilities of commodity cloud computing.  All that build up ended up being nothing more then a lead-in to an overblown advertisement for something called <a href="http://www.reuters.com/article/2011/07/27/idUS107761099320110727">Nebula</a>.  While the idea of open and commodity elastic compute is cool, I have difficulty taking something seriously when it&#8217;s surrounded by as much hype as I saw during the keynote.  Maybe I&#8217;m alone in this, but OSCON doesn&#8217;t really seem like the right venue to go heavy on marketing and light on technical detail.  Maybe those of us sitting in the ballroom weren&#8217;t the real audience for the announcement.  Perhaps they were just using the large and popular conference as a way of getting media attention.</p>
<p>So, what sessions did I attend?</p>
<p>About half way through OSCON last year, I realized that attending Perl sessions was mostly a waste of my time.  They tended to fall into two categories: stuff I already knew and web development (which I don&#8217;t do).  Where do I end up for the first session of this conference?  In <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/18568">Perl 5.14 for Pragmatists</a></strong>, presented by Ricardo Signes.  For anyone who has read the Perl release notes (<tt>perl*delta</tt>), very little of what was presented will be novel.  However, it was very useful to see the relative emphasis placed on different features by someone as familiar with Perl as Ricardo.  In particular, fully half of the session was dedicated to Perl&#8217;s improved Unicode support.  As Ricardo stated, Unicode isn&#8217;t going away, so we need to get better at working with it.</p>
<p>After attending a session of some relevance to my profession, I wanted to take advantage of a series of back-to-back sessions of a more personal interest.  My passions of late have leaned towards health, fitness, and, in particular, a more so-called <a href="http://www.marksdailyapple.com/">primal lifestyle</a>.  So I was excited to see the session <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/19182">Geeking in a Cabin in the Woods</a></strong>, presented by Ryo Chijiiwa on the schedule.  Previously employed as a software engineer at Yahoo! and then Google, Ryo took us through the history and motivation behind quitting his job, buying 60 acres of barren land in northern California, and simplifying his life by living on it.  It was a fascinating tale of overcoming challenges.  Part of me would love to do exactly what he did.  Ryo has a <a href="http://laptopandarifle.com/">blog</a> (with a really cool domain name) where he writes about his experiences.</p>
<p>Following in the same basic genre, I next attended Sarah Sharp&#8217;s talk on <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/18369">Growing Food with Open Source</a></strong>.  Sarah is a Linux kernel hacker who also enjoys gardening.  Being a lazy hacker (I can relate), she wants to automate all of the mundane, tedious work that comes with a hobby like gardening.  She&#8217;s written code to manage planting calendars, hoping to eventually integrate it with a service like Remember the Milk, and an Android app to alert her of impending weather conditions that could affect her garden.  The most impressive piece was the work she&#8217;s done to create an automatic watering system, using home-made moisture sensors and Arduinos.  More information can be found on a site I will soon be spending a lot of time on, <a href="http://www.gardengeek.org/">Garden Geek</a>.</p>
<p>My earliest computer-related memory is playing text adventures on our Apple Macintosh, circa 1984.  For that reason, I was excited to attend Ben Collins-Sussman&#8217;s talk on <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/19193">The Unexpected Resurgence of Interactive Fiction</a></strong>.  So excited, in fact, that I passed up a session <a href="http://r0ml.net/blog/">r0ml</a> was presenting.  Ben took us through a brief history of interactive fiction, from Adventure to present day.  He talked about both the science and the art of the genre as both have evolved over the years.  He focused primarily on the <a href="http://www.inform-fiction.org/">Inform</a> language and the <a href="http://eblong.com/zarf/glulx/">Glulx</a> virtual machine (not to mention current efforts to produce a web browser-based player), which leads me to think that there isn&#8217;t much point in putting any more effort into playing with <a href="http://www.tads.org/">TADS</a>.  He also mentioned the annual <a href="http://www.ifcomp.org/">Interactive Fiction Competition</a>, which I love and have participated as a judge in for the last several years.  This session has gotten me excited about interactive fiction again, after mostly ignoring it as a hobby for the last few years.  I have a couple of ideas for games that I&#8217;d like to enter into the competition, which I should finally get started on.</p>
<p>For the final two sessions of the day, I decided to return to my core competency, and arguably the whole reason I&#8217;m here, and sat down in the Perl room.  Damian Conway talked about <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/18582">(Re)Developing in Perl 6</a></strong>.  I&#8217;ve previously attended his six hour class on this topic, but it was a nice refresher, since I don&#8217;t use Perl 6 regularly.  He guided us through porting a handful of his modules&mdash;<tt>Acme::Don't</tt>, <tt>IO::Insitu</tt>, <tt><a href="https://github.com/colomon/io-prompter/">IO::Prompter</a></tt>, and <tt>Smart::Comments</tt>&mdash;from Perl 5 to Perl 6.  Each of these modules was selected as a representative of a given method used to port the code.  In the simplest case, a basic transliteration can be used.  For some modules, new features of Perl 6 can be used to replace long pieces of code; argument lists are a great example.  Finally, the ability to extend the grammar removes the need for source filters and allows the programmer to seamlessly add language features.</p>
<p>I ended my day with a session on improving code performance: <strong><a href="http://www.oscon.com/oscon2011/public/schedule/detail/19249">Sooner, Cheaper, Better &#8212; Optimization on a Budget</a></strong>, presented by Eric Wilhelm.  I didn&#8217;t find it very well organized or delivered, which is a shame, because I&#8217;ve seen him present before and he was rather good.  After introducing us to the <a href="http://c2.com/cgi/wiki?RulesOfOptimizationClub">Rules of Optimization Club</a>, Eric took us through a number of real world examples in which optimization might prove to be a waste of time.  Old hat for a lot of people, I know.  In fact, many people just wait for computers to get faster.  However, he then switched gears into a more interesting problem.  With today&#8217;s advances coming in the form of more cores rather than more speed, optimization was replaced with parallelization.  The same rules apply and it&#8217;s good to remember that.</p>
<p>Following the last session of the day, a booth crawl was held in the expo hall.  This involved setting up food and drink tables at the booths of various vendors, the idea being to bribe attendees to approach them.  There was beer, possibly wine, and the food leaned heavily towards cookies and grain-wrapped items.  I wandered around, played a Mario Kart-like Pac-Man multi-player racing game on an Android tablet at the <a href="http://www.qualcomm.com/quicinc/">QuIC</a> booth, ate a bunch of cheese, and left at 7:00 PM &hellip;</p>
<p>To attend the <tt>.vimrc</tt> birds of a feather (BOF) session.  A <tt>.vimrc</tt>, oft pronounced vim-wreck, is the name of the configuration file <a href="http://www.vim.org/">Vim</a> uses.  It&#8217;s more than a configuration file, though; it&#8217;s a full scripting engine, which provides quite a bit of potential for customization of one&#8217;s editor.  <a href="http://en.wikipedia.org/wiki/Damian_Conway">Damian Conway</a>, famed teacher of Vim, Perl, and myriad other topics, was in attendance.  As expected, the entirety of the session was spent learning about some of the neat, as yet unreleased, scripts Damian has been working on for Vim.</p>
<p>I didn&#8217;t have it in me to attend any of the evening events.  I was aware of two parties, but I neither wanted to drink nor stay out late.  Unlike years past, I haven&#8217;t been very social this year, either.  Instead, I made the relatively long trip back to my hotel, where I wrote this post (well, just the first draft; I finished it on Thursday morning over the lousy coffee provided by the Oregon Convention Center) and turned in early.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2011-wednesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2011: Tuesday</title>
		<link>http://sirhc.us/oscon-2011-tuesday/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2011-tuesday</link>
		<comments>http://sirhc.us/oscon-2011-tuesday/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 15:28:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Beer]]></category>
		<category><![CDATA[blackberries]]></category>
		<category><![CDATA[Food]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon2011]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=762</guid>
		<description><![CDATA[This marks the fourth time in five years I&#8217;ve attended the O&#8217;Reilly Open Source Convention (OSCON). I skipped it in 2009, when it took place in San Jose. This year the convention is back in Portland, Oregon, as it was last year. So I&#8217;m here, too. Unlike in previous years, I didn&#8217;t show up on [...]]]></description>
				<content:encoded><![CDATA[<p>This marks the fourth time in five years I&#8217;ve attended the <a href="http://www.oscon.com/oscon2011">O&#8217;Reilly Open Source Convention</a> (OSCON).  I skipped it in 2009, when it took place in San Jose.  This year the convention is back in Portland, Oregon, as it was last year.  So I&#8217;m here, too.</p>
<p>Unlike in previous years, I didn&#8217;t show up on Sunday to explore Portland and attend the Monday tutorials.  I didn&#8217;t want to spend an entire week away from home, but at the same time, nothing I saw on the tutorial schedule interested me.  So I flew up Tuesday afternoon and plan to return on Friday night.</p>
<p>Most of the hotels near the <a href="http://www.oregoncc.org/">Oregon Convention Center</a> (OCC) were booked up, and I left my itinerary planning to someone else (who is unfamiliar with Portland), so I&#8217;m staying at the Courtyard Marriott by the airport.  This wouldn&#8217;t be so bad, but, according to Google Maps, it&#8217;s a 1.2 mile walk to the Cascades MAX station.</p>
<p>Anyway, after getting settled in my hotel room, I headed to the OCC to meet up with my friend, Jonathan.  I made it in time to register, pick up my swag, and grab some cheese and beer on the expo floor.  I wandered over to the <a href="http://www.qualcomm.com/quicinc/">QuIC</a> booth to chat and saw a nice demo of Android and HTML 5 applications running on Qualcomm demonstration hardware.  It really showed off the power of the platform.</p>
<p>We decided not to stick around for the so-called OSCON Carnival, so hopped across the river on the MAX and looked around for dinner.  In our wanderings, we dropped into <a href="http://baileystaproom.com/">Bailey&#8217;s Taproom</a> to use the bathroom and have a beer.  The bartender recommended the <a href="http://www.davisstreettavern.com/">Davis Street Tavern</a> for a good burger paired with a good tap list.  I ended up having seared scallops, which were quite good.  After dinner, we wandered over to the <a href="http://www.puppetlabs.com/">Puppet Labs</a> party, where I got a souvenir <a href="http://osuosl.org/">Open Source Lab</a> beer mug.</p>
<p>Bailing fairly early on the party, I caught the MAX red line back over the river and on to the Cascades station.  The hotel&#8217;s shuttle driver had warned me against the walk, pointing out that there are no sidewalks.  However, Google directed me away from the main road and through a business park.  I don&#8217;t know why people are so averse to walking more than a couple of blocks.  I found the walk to be quite pleasant, and there are blackberry brambles growing wild along the streets, providing snacking opportunities.  It takes me back to childhood trips to the Pacific Northwest, when I would pick wild blackberries with my grandfather.</p>
<p>Back at the hotel, I grimaced at what they call a fitness center, swam a bit in the poor excuse for a pool, and soaked in the hot tub.  Then it was off to bed, because, unlike the lucky folks staying near the OCC, I have to wake up in time for a 20 minute walk followed by a 25 minute MAX ride.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2011-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Before &amp; After: Why I Care About My Health</title>
		<link>http://sirhc.us/before-after-why-i-care-about-my-health/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=before-after-why-i-care-about-my-health</link>
		<comments>http://sirhc.us/before-after-why-i-care-about-my-health/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 23:13:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[movnat]]></category>
		<category><![CDATA[play]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=741</guid>
		<description><![CDATA[At the beginning of the year, I commented on my weight loss success. To recap, that guy over on the right, that was me back in April 2007. Looking at the picture now, I barely recognize myself. Wow, I was fat. I couldn&#8217;t do a single pull-up without a machine providing weight assistance. Then, in [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://sirhc.us/wp-content/uploads/fat200704.jpg" alt="" title="Fat Pre-Paleo" width="190" height="377" class="alignright size-full wp-image-744" />At the beginning of the year, I commented on my <a href="/my-paleo-success-story/">weight loss success</a>.  To recap, that guy over on the right, that was me back in April 2007.  Looking at the picture now, I barely recognize myself.  Wow, I was fat.  I couldn&#8217;t do a single pull-up without a machine providing weight assistance.  Then, in September 2008, my first daughter was born.  That was the motivation I needed to not just lose weight, but to improve my overall fitness.  I was determined to be a healthy influence for my kids.  Fortunately, the event coincided with learning about carbohydrate restriction for weight loss and a Paleo lifestyle for overall health.</p>
<p>Fast forward four years.  We&#8217;re spending the July 4 weekend with my parents in Big Bear Lake.  There&#8217;s a nice park with a playground down by the lake, about half a mile from the house.  Playground equipment isn&#8217;t just fun for children and is way more exhilarating than a stuffy old gym.  There are kids climbing, swinging, and sliding, contributing to an energetic atmosphere.  The warm sun beats down me, manufacturing that essential of hormones, vitamin D.  Not only is the equipment is good for the climbing and sliding you&#8217;d expect, but it&#8217;s good for pull-ups and dips.  No one has told any of the kids that they need to go to the gym to exercise, they&#8217;re doing all of this for fun.</p>
<p><img src="http://sirhc.us/wp-content/uploads/swinging20110704.jpg" alt="" title="Swinging" width="350" height="623" class="alignleft size-full wp-image-745" />So now this is me, playing with my daughter at the park this morning after breakfast.  Inspired by <a href="http://movnat.com/">MovNat</a>, I couldn&#8217;t help myself.  I saw those angled supports on the swing set and thought it would be fun to climb to the top.  It turned out to be really easy.  After doing a few pull-ups at the top, my daughter looked at me and asked, &#8220;Are we swinging, Dada?&#8221;  I replied, &#8220;Yes, sweetie, we are swinging.&#8221;</p>
<p>Moments like this are why I&#8217;ve become so obsessed with health and fitness over the last few years.  I can play with my daughters.  I mean, really play with them.  I&#8217;m not standing around the edges of the playground, merely encouraging them to do things I can no longer do myself.  Someday they will be able to climb higher, run faster, and jump farther than me.  But that day is far off and, as long as I&#8217;m around, I will give them a run for their money.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/before-after-why-i-care-about-my-health/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No Fair Food This Year</title>
		<link>http://sirhc.us/no-fair-food-this-year/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=no-fair-food-this-year</link>
		<comments>http://sirhc.us/no-fair-food-this-year/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 05:03:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[deep fried]]></category>
		<category><![CDATA[fair]]></category>
		<category><![CDATA[junk food]]></category>
		<category><![CDATA[s'more]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=734</guid>
		<description><![CDATA[Every year my wife and I attend the San Diego County Fair at least once or twice. Aside from the garden exhibits and animals, one of the big lures is the food. I mean, doesn&#8217;t this look delicious? Not pictured is the deep fried s&#8217;more, which was a big hit with my daughter last year. [...]]]></description>
				<content:encoded><![CDATA[<p>Every year my wife and I attend the <a href="http://www.sdfair.com/">San Diego County Fair</a> at least once or twice.  Aside from the garden exhibits and animals, one of the big lures is the food.  I mean, doesn&#8217;t this look delicious?</p>
<div id="attachment_736" class="wp-caption alignright" style="width: 662px"><img src="http://sirhc.us/wp-content/uploads/fried-fare.jpg" alt="Fried Food at the Fair" title="No really, it looks delicious, doesn&#039;t it?" width="652" height="350" class="size-full wp-image-736" /><p class="wp-caption-text">Fair Fare</p></div>
<p>Not pictured is the deep fried s&#8217;more, which was a big hit with my daughter last year.  It appears to have been replaced by the deep fried brownie.</p>
<p>A few years ago, I could eat a funnel cake, a battered onion, a doughnut chicken sandwich, some Indian fry bread, and follow that with various and sundry deep fried candy bars.  As each year passed, we ate a little less of the food.  Last year I could only stomach a couple bites of funnel cake after helping my daughter eat her deep fried s&#8217;more.</p>
<p>I took my oldest daughter to the fair today, to get her out of the house and shower her with attention after the birth of her baby sister.  We even stood in front of the vendor pictured above.  In the end, I ate nothing at the fair.  There wasn&#8217;t anything that looked at all appetizing.  Actually, the smoked turkey legs always look awesome, but I refuse to pay $10 for something I can make so easily myself.  Maybe finally removing these foods from my diet has had an effect on my taste.  Maybe the fact that I&#8217;ve been slowly replacing my wardrobe with size small shirts and, just yesterday, purchased several pairs of size 32 shorts, kept me from partaking of such disgustingly unhealthy fare.  Either way, I don&#8217;t really miss eating that stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/no-fair-food-this-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome Brenna Rose</title>
		<link>http://sirhc.us/welcome-brenna-rose/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=welcome-brenna-rose</link>
		<comments>http://sirhc.us/welcome-brenna-rose/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 03:43:40 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=727</guid>
		<description><![CDATA[At 12:25 AM on Sunday, 12 June 2011, we welcomed our second daughter, Brenna Rose, into the world. Weighing 5 pounds, 14 ounces (2.67 kg) at 19 inches (48.26), she&#8217;s a tiny thing. Mom and baby are doing great. We think she&#8217;s another redhead, but we&#8217;re not entirely sure yet.]]></description>
				<content:encoded><![CDATA[<p><div class="wp-caption alignleft" style="width: 330px"><img alt="Brenna Rose" src="http://sirhc.us/images/blog/brenna01.jpg" title="It was so much more comfortable in the womb." width="320" height="213" /><p class="wp-caption-text">Brenna Rose</p></div>At 12:25 AM on Sunday, 12 June 2011, we welcomed our second daughter, Brenna Rose, into the world.  Weighing 5 pounds, 14 ounces (2.67 kg) at 19 inches (48.26), she&#8217;s a tiny thing.  Mom and baby are doing great.  We think she&#8217;s another redhead, but we&#8217;re not entirely sure yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/welcome-brenna-rose/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trying Out a CSA</title>
		<link>http://sirhc.us/trying-out-a-csa/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=trying-out-a-csa</link>
		<comments>http://sirhc.us/trying-out-a-csa/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 05:06:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[cooking]]></category>
		<category><![CDATA[csa]]></category>
		<category><![CDATA[farm]]></category>
		<category><![CDATA[fruits]]></category>
		<category><![CDATA[produce]]></category>
		<category><![CDATA[vegetables]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=705</guid>
		<description><![CDATA[CSA is short for community-supported agriculture. Last summer, the company I work for set itself up as a delivery location for the Sage Mountain Farm CSA. I&#8217;d been talking about signing up for it since it was announced and, last week, finally did so. I pledged for four boxes, just to try it out, and [...]]]></description>
				<content:encoded><![CDATA[<p><img src="/images/blog/csaweek1.jpg" width="320" height="239" alt="csaweek1" title="That's a lot of greens..." style="float: right;" />CSA is short for <a href="http://en.wikipedia.org/wiki/Community-supported_agriculture">community-supported agriculture</a>.  Last summer, the company I work for set itself up as a delivery location for the <a href="http://www.sagemountainfarm.com/csa/">Sage Mountain Farm CSA</a>.  I&#8217;d been talking about signing up for it since it was announced and, last week, finally did so.  I pledged for four boxes, just to try it out, and my first box was delivered on Wednesday.  Getting the food home was interesting.  I take the train to work, so I felt a bit strange standing on the train platform holding a box of fruit and vegetables.</p>
<p>Wow, what a lot of food.  The picture on this post doesn&#8217;t do it justice.  I was only able to fit about half of the included produce in my refrigerator and left the rest on the counter.  Unfortunately, after Saturday&#8217;s heat, this meant that we had to throw some of it out.  But, I was able to use most of what was on the counter before we did.  I&#8217;ve never taken the time to try cooking beets or parsnips, and rarely buy chard, so having it selected for me was fun.  That was one reason I wanted to try a CSA.</p>
<p>The sheer amount of food in the box caused me more stress than it was worth.  I had expected the box to be much smaller and that we would still be able to visit the farmers market, which we enjoy attending.  Suddenly something I thought would be a joy has become a burden.  Why is there so much lettuce?  I don&#8217;t even like salad.  How can we possibly eat all this food?  Where can I store it every week?  How will I fit other food in my refrigerator?  The small box, which I ordered, is advertised as being able to feed a family of two or three for one week.  The members of that hypothetical family must be big fans of Michael Pollan, because they&#8217;d have to be eating mostly plants.  We are not that family.</p>
<p>I have three more boxes coming over the next three weeks, so I&#8217;ll see how it shakes out.  I&#8217;ll need to figure out what to do with the food when I receive it.  I&#8217;m thinking of starting an extended family dinner and game night on Wednesdays, cooking as much of the food as possible and sending everyone home with leftovers.  The rest I&#8217;ll prepare just enough so it won&#8217;t take up too much room in the refrigerator.  Even so, I think that after the fourth box, we&#8217;ll go back to making our regular Saturday trips to the <a href="http://www.cityofvista.com/press/VistaFarmersMarket.cfm">Vista Farmers Market</a>.  The market is more enjoyable for us.  It gets us outdoors, we can pick our own food, and we can interact with the farmers and vendors.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/trying-out-a-csa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For Want of a Newline</title>
		<link>http://sirhc.us/for-want-of-a-newline/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=for-want-of-a-newline</link>
		<comments>http://sirhc.us/for-want-of-a-newline/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 05:29:47 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[arrogance]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[newline]]></category>
		<category><![CDATA[oops]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=698</guid>
		<description><![CDATA[This article is also published on my Perl blog. Today I had the pleasure of spending three hours debugging an obscure bug. An obscure bug I caused by introducing a newline. That little punk, 0x0A. I released a new version of a command line program. It&#8217;s an elegant piece of work, combining a marvelously complex-but-intuitive [...]]]></description>
				<content:encoded><![CDATA[<p><em>This article is also published on my <a href="http://blogs.perl.org/users/sirhc/2012/04/for-want-of-a-newline.html">Perl blog</a>.</em></p>
<p>Today I had the pleasure of spending three hours debugging an obscure bug.  An obscure bug I caused by introducing a newline.  That little punk, <tt>0x0A</tt>.</p>
<p>I released a new version of a command line program.  It&#8217;s an elegant piece of work, combining a marvelously complex-but-intuitive configuration for system administrators with an absolutely simple interface for users.  To use the command, the user runs it with a couple of arguments and it prints out a single line of useful text derived from that marvelously complex configuration.</p>
<p>But, it doesn&#8217;t print a newline.</p>
<p>It&#8217;s never printed a newline.  The original author didn&#8217;t include one for some reason.  Anyone who has ever encountered a command like this knows well my irritation.</p>
<pre>
my awesome prompt> <b>some_lame_command</b>
my awesome prompt>e answer
</pre>
<p><em>Argh!</em></p>
<p>The workaround I&#8217;ve seen used, after seeing the above is to face-palm, then run the command again, only differently.</p>
<pre>
my awesome prompt> <b>echo `some_lame_command`</b>
42 is obviously the answer
my awesome prompt>
</pre>
<p>I&#8217;m embarrassed when users see behavior like this from a program I wrote.  Being the <a href="http://www.stonebrew.com/">arrogant bastard</a> programmer that I am, I decided to fix this.  Since <em>all</em> commands print newlines, everyone should already be assuming that this one does too and should already be handling it in the proper manner.  Right?  When writing a shell script, the distinction between newline-printing and non-newline-printing commands is irrelevant.  In either Bourne shell:</p>
<pre>
FROBBED=`frobnosticate`
</pre>
<p>Or C shell:</p>
<pre>
setenv FROBBED `frobnosticate`
</pre>
<p>The shell is benevolent enough to remove the newline, if it exists.  After all, this is the most commonly desired behavior when assigning command output to a variable.  However, things are a bit different when switching to a so-called real programming language, like Perl:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'FROBBED'</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">`frobnosticate`</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;"># Caution, newline ahead!</span></pre></td></tr></table></div>

<p>Sure, it looks more or less the same, but veteran Perl programmers will immediately grimace when reading the above.  Unlike the shell, Perl, like other programming languages, will preserve the output of the command verbatim.  In this case, preserving data and letting the programmer decide how to use it is the most commonly desired behavior.  Since everything coming from an external command ends with a newline, the environment variable being set in this case will have a newline.  This will almost always cause a problem.  One that, as I&#8217;ve learned, is not always easy to find.  Since stripping input of newlines is just as common as the desire to preserve data, Perl makes this easy and most Perl programmers will habitually write it.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000066;">chomp</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'FROBBED'</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">`frobnosticate`</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Now it doesn&#8217;t matter if the command prints a newline or not, the <tt>chomp</tt> built-in has your back.  It&#8217;s just like being in the warm embrace of the shell, only with a little extra syntax.</p>
<p>So it turns out that one of the engineering groups I support was using a Perl script that set an environment variable as in the first example.  The value of this environment variable was then being passed off to the batch system and used by an engineering program as a network address to connect to.  Of course, the program made the fatal mistake of trusting user input and, in a spectacular fashion, failed to connect to the server whose name just happened to contain a newline.</p>
<p>After chasing down a couple of red herrings which left me flummoxed, one of the affected users shared with me an error log and the script that generated it.  There, in all its syntax highlighted, mono-spaced glory was the environment variable being set without any attempt made to trim off the newline.  I immediately swallowed my pride and released an updated version of the command reverting the newline behavior and the problem went away.  My engineers&mdash;at least, the subset using this particular in this particular way&mdash;could once again get their work done.</p>
<p>By far, this isn&#8217;t the worst thing I&#8217;ve done to our batch system.  One time I caused all jobs executing on Solaris hosts to immediately fail.  Whoops.</p>
<p>Anyway, what&#8217;s the lesson to be learned from today&#8217;s experience?</p>
<p>Never&mdash;and I&#8217;ll repeat that, <em>never</em>&mdash;assume everyone will be doing the right thing (remember what they say when you assume something).  Inevitably, someone won&#8217;t be.</p>
<p>There&#8217;s a corollary to today&#8217;s lesson.  When coming across something that could be improved with a small change, don&#8217;t.  Seriously, just don&#8217;t.  Inevitably, someone will be depending on the current behavior, no matter how right or wrong it may seem.  This is why the phrase &#8220;bug compatible&#8221; exists in the lexicon.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/for-want-of-a-newline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A 30 Day Challenge, of Sorts</title>
		<link>http://sirhc.us/a-30-day-challenge-of-sorts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-30-day-challenge-of-sorts</link>
		<comments>http://sirhc.us/a-30-day-challenge-of-sorts/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 01:00:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[fitday]]></category>
		<category><![CDATA[Food]]></category>
		<category><![CDATA[gym]]></category>
		<category><![CDATA[leangains]]></category>
		<category><![CDATA[paleo]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[weight]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=689</guid>
		<description><![CDATA[Over the weekend, while reading posts from Richard Nikoley about Leangains and Primal Toad about his 30 day Paleo challenge, I got to thinking. Why not do a 30 day challenge of sorts myself? Why of sorts? I&#8217;ve never been one to stick to anything every day for an extended period of time. Even 30 [...]]]></description>
				<content:encoded><![CDATA[<p>Over the weekend, while reading posts from <a href="http://freetheanimal.com/2010/10/leangains-martin-berkhan-means-it.html">Richard Nikoley</a> about <a href="http://www.leangains.com/">Leangains</a> and <a href="http://www.primaltoad.com/30-day-paleo-challenge-begins-today/">Primal Toad</a> about his 30 day Paleo challenge, I got to thinking.  Why not do a 30 day challenge of sorts myself?</p>
<p>Why of sorts?</p>
<p>I&#8217;ve never been one to stick to anything every day for an extended period of time.  Even 30 days is extended for me.  After a couple of weeks I tend to get bored or distracted and generally change things or abandon them altogether.  This blog is a perfect example of the sporadic nature of my hobbies.  I tend to make permanent changes to my life gradually.  A little change here, another complementary change down the road, and so on until they add up to a big change.  How I ended up in my current state of Paleo illustrates that progression pretty well.  So I&#8217;m not taking this challenge as seriously as I perhaps should, but I&#8217;d like to try <em>something</em>.</p>
<p>I wrote previously that I weighed in at about <a href="http://sirhc.us/my-paleo-success-story/">172 pounds</a>.  Well, that was three weeks ago and I&#8217;m still hovering around that number.  A friend of mine, @<a href="http://twitter.com/augmentedfourth">augmentedfourth</a> on Twitter, started <a href="http://twitter.com/search?q=%23tweetyourweight">tweeting his daily weight</a>.  Last week I decided to give it a shot.</p>
<p><a href="http://tweetyourweight.com/sirhc"><image src="/images/blog/tweet_weight_20110214.png" width="640" height="270" alt="Tweet Your Weight Chart, 14 Feb 2011" title="Oops, it's going up!" /></a></p>
<p>Granted, the data are rather limited, but the first thing I noticed is that I haven&#8217;t just plateaued, but my weight appears to be trending <em>upward</em>!  I decided that I had to do something to break through my plateau.  Fortunately, this coincided with reading the aforementioned posts.  So I put a plan together.</p>
<p>First, I will start using the <a href="http://fitday.com/">FitDay</a> account that I opened way back on 14 September 2010, when I weighed in at 186 pounds, and hadn&#8217;t touched since.  I&#8217;ll have to get over my initial annoyance with entering food and activities and my displeasure at discovering that I&#8217;ve only lost 14 pounds in the last five months.</p>
<p>Second, I will re-craft my workout based on the Leangains descriptions.  Today I performed deadlifts, chin-ups, and some crunches.  More importantly, I will stick to a gym schedule and <em>track my progress</em>.</p>
<p>Third, of course, I will stop cheating on my diet.  My biggest problems are drinking milk and going back for seconds (and sometimes thirds) at dinner.  It&#8217;s not like I ever eat bread or candy, but I did have a few chips at a Mexican restaurant last night.</p>
<p>I&#8217;ll do my best to stick with this plan for at least 30 days so I can give it a full and fair evaluation.  Maybe it will help me break through my plateau and become one of those incremental lifestyle changes.  As a bonus, I may even see some muscle definition.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/a-30-day-challenge-of-sorts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Paleo Success Story</title>
		<link>http://sirhc.us/my-paleo-success-story/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-paleo-success-story</link>
		<comments>http://sirhc.us/my-paleo-success-story/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 04:21:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[karate]]></category>
		<category><![CDATA[paleo]]></category>
		<category><![CDATA[success]]></category>
		<category><![CDATA[weight]]></category>

		<guid isPermaLink="false">http://sirhc.us/?p=664</guid>
		<description><![CDATA[I never thought I&#8217;d post a weight loss success story. Why would anyone care? However, with my ninja post, I made the decision to start putting more stuff out there. I imagine at the very least that some of my friends and family would enjoy the writing. Heck, if even one person finds a post [...]]]></description>
				<content:encoded><![CDATA[<p>I never thought I&#8217;d post a weight loss success story.  Why would anyone care?  However, with my <a href="/not-ninja-enough/">ninja post</a>, I made the decision to start putting more stuff out there.  I imagine at the very least that some of my friends and family would enjoy the writing.  Heck, if even one person finds a post interesting, useful, or inspiring, it was worth the effort to write.</p>
<p>I don&#8217;t have any of those semi-nude cell phone bathroom mirror pictures taken before I started losing weight, because there was never a day when I said I was starting this journey.  My first drivers license, at the age of 16, listed my weight as 165 pounds.  Over the years, through college and my various jobs as a computer programmer, I gained weight slowly.  I always told myself that I&#8217;d start eating better and would start going to the gym on a regular basis.  I won&#8217;t go any more into the entire history of my weight loss, since I already <a href="/gone-primal/">wrote about it</a> during Mark Sisson&#8217;s last Primal Challenge.</p>
<p><img src="/images/blog/chris_pre_paleo.jpg" width="190" height="337" alt="chris_pre_paleo" title="Thanks, Dad" class="alignright size-full" />Of course, not having taken a picture of myself doesn&#8217;t mean that I don&#8217;t have any pre-Paleo pictures.  A few weeks ago, while I was watching people make New Years resolutions, I lamented on Twitter that I didn&#8217;t have any &#8220;before&#8221; pictures.  Mere minutes later I received an email from my dad with the photo to the right, taken in April 2007, a month after moving into my new house.  Gee, thanks, Dad.</p>
<p>I always knew I was over-weight, but I never looked at myself and thought I was fat.  I&#8217;m looking at myself now and thinking, &#8220;Wow, I was fat.&#8221;  I must have realized it at the time, because I started keeping track of my weight, on a semi-regular weekly basis, in May 2007.  According to my records, I peaked at 225 pounds.  At first, losing weight wasn&#8217;t easy.  But then I had two breakthroughs.  The first was in mid-2008 when my wife was diagnosed with gestational diabetes and we both limited carbohydrates in our diets.  The second was in March 2010 when I went Paleo.  This second breakthrough is clearly visible in the chart.</p>
<p><a href="/images/blog/weight_chart_jan2011_full.png"><img src="/images/blog/weight_chart_jan2011.png" width="640" height="320" alt="weight_chart_jan2011" title="Weight Chart, January 2011" /></a></p>
<p>About five years ago I started studying again at the karate dojo at which I originally earned my black belt, when I was 18 years old.  Shortly after I left for college and karate became one of those things I&#8217;d &#8220;get back to eventually.&#8221;  Well, 10 years passed before I finally did.  Unfortunately, when I pulled out my old gi, it didn&#8217;t fit.  I had to order a new gi in a larger size.  I never liked this new gi, because, while it fit my rotund physique, it was clearly too large for me.  But it worked, and after a couple of years I earned my second degree black belt.  However, as I approached my third degree test, I set my first goal.  I would get my weight to 180 and buy myself a new gi.</p>
<p>I finally reached 180 in November 2010, but it wasn&#8217;t enough.  I looked at myself and decided that my waist circumference was still too large to justify buying any new clothes.  So I kept going.</p>
<p>As I write this, I weigh in at 172 pounds.  I&#8217;ve had to buy new pants for the cold weather and I&#8217;m just barely keeping my old shorts up with a belt cinched to the last hole.  Last weekend I decided that, as a late birthday present to myself, I could buy a new gi.</p>
<p>As I shopped online, I realized that I had never gotten rid of my old gi, the one I wore in high school when I earned my black belt.  I dug it out of the garage, tried it on, and it fit.  I was ecstatic (and I saved some money).  Being able to fit into something old like this is even better than buying something new (don&#8217;t worry, I&#8217;ll be doing that soon enough).  It&#8217;s amazingly motivating, too.  I remember five years ago, struggling to get through my kata and sucking wind during bag drills, hating every minute.  Now both are so much easier and I love doing them.</p>
<p>Here are the closest things I have to before and after pictures.  On the left, taken in July 2008, I&#8217;m wearing the one-size-too-large gi.  On the right, my 17 year old gi, which I&#8217;m much more comfortable wearing.</p>
<p><img src="/images/blog/chris_pre_paleo_gi.jpg" width="247" height="600" alt="chris_pre_paleo_gi" title="I forget if it's 1 or 2 sizes too large" /><img src="/images/blog/chris_post_paleo_gi.jpg" width="328" height="600" alt="chris_post_paleo_gi" title="Wearing my 17 year old gi again" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/my-paleo-success-story/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Not Ninja Enough</title>
		<link>http://sirhc.us/not-ninja-enough/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=not-ninja-enough</link>
		<comments>http://sirhc.us/not-ninja-enough/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 02:37:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[crossfit]]></category>
		<category><![CDATA[fitness]]></category>
		<category><![CDATA[frontsight]]></category>
		<category><![CDATA[karate]]></category>
		<category><![CDATA[movnat]]></category>
		<category><![CDATA[ninja]]></category>
		<category><![CDATA[parkour]]></category>
		<category><![CDATA[skill]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=643</guid>
		<description><![CDATA[Last year, at SCaLE, John made an observation. &#8220;You are not ninja enough,&#8221; he told me. As a group of us were walking down a hallway in the hotel, I walked over to what I assumed was a portal used for catering events. As I pulled on the doors, finding them locked, John pointed out [...]]]></description>
				<content:encoded><![CDATA[<p>Last year, at <a href="http://www.socallinuxexpo.org/scale7x/">SCaLE</a>, John made an observation.  &#8220;You are not ninja enough,&#8221; he told me.  As a group of us were walking down a hallway in the hotel, I walked over to what I assumed was a portal used for catering events.  As I pulled on the doors, finding them locked, John pointed out that I couldn&#8217;t go there, for the aforementioned reason.</p>
<p>Last night, as I watched my daughter fall down the stairs, the back of her head hitting the last two hardwood steps, I realized I am in fact not ninja enough.  She&#8217;s fine, by the way, it wasn&#8217;t a bad fall and only scared her a little.  The worst part for me, as I reflect on it, is that I knew it was going to happen.  Well, I knew it <i>could</i> happen.</p>
<p>Kaylee, who is two years old and has been walking since she was 10 months old, walked up a flight of five hardwood stairs to meet me on the landing and take a book I was offering her.  As she took the book and started turning to walk up the next flight of stairs, I observed that she was close to the edge and, if her balance wasn&#8217;t just right, she could fall backwards down the stairs.</p>
<p>Sure enough, this is exactly what happened.</p>
<p>Had I taken the simple precaution of stepping closer to her and moving in behind her, I could have repaired her balance when she lost it.  Instead, perhaps lulled by her otherwise incredibly good balance, I shrugged off the thought.  Right before I found myself lunging forward to catch her, my arms closing on empty air.</p>
<p>In <a href="http://www.kiado-ryu.com/">Kiado-Ryu</a>, one of our tenets is, <i>Action is Faster than Reaction</i>.  In a fight, a punch can be thrown faster than it can be blocked.  To act, an opponent merely needs to think about their action before executing it, a process invisible to an outside observer.  To react, the action must be observed, processed, a reaction decided upon, and finally executed.  Had I acted, I would not have put myself in a position where reaction was necessary.</p>
<p>Further, and only partially related to the moral of this story, as I prepare for my third degree Black Belt, I&#8217;m starting to consider other activities to augment my training.  <a href="http://www.crossfit.com/">CrossFit</a> is an obvious choice.  While I enjoy the gym in concept, I&#8217;ve never been a fan of lifting the same weights in the same way every day.  I also recently learned about <a href="http://movnat.com/">MovNat</a>, and the idea of <i>functional</i> fitness appeals to me.  These activities would train me to move more naturally and efficiently when I do need to act or even react.  <a href="http://en.wikipedia.org/wiki/Parkour">Parkour</a> flat out looks awesome, but I think I&#8217;m nowhere near ready to start that.  Finally, for tactical training, I just purchased lifetime memberships for my entire family at <a href="http://www.frontsight.com/">FrontSight</a>, so we can take all of the <a href="http://www.frontsight.com/Courses.asp">offered courses</a>, some of which (as I&#8217;m told by those who have attended, who also advise me to ignore their infomercial-esque website) are downright awesome.</p>
<p>In short, I have a theme for 2011.  I must level up my ninja.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/not-ninja-enough/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolutions for 2011</title>
		<link>http://sirhc.us/resolutions-for-2011/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resolutions-for-2011</link>
		<comments>http://sirhc.us/resolutions-for-2011/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 06:59:38 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[resolutions]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=614</guid>
		<description><![CDATA[Welcome to the year two thousand eleven. Well, not quite yet; I&#8217;m actually writing this with about an hour to go. I&#8217;ve never been one for so-called New Year&#8217;s Resolutions. After all, why put off until the first of January what you can reasonably start on the twelfth of August? With that said, here are [...]]]></description>
				<content:encoded><![CDATA[<p>Welcome to the year two thousand eleven.  Well, not quite yet; I&#8217;m actually writing this with about an hour to go.  I&#8217;ve never been one for so-called New Year&#8217;s Resolutions.  After all, why put off until the first of January what you can reasonably start on the twelfth of August?</p>
<p>With that said, here are (in no particular order) my resolutions for the next 365 days.</p>
<p><b>Spend more time with my daughter.</b></p>
<p>Not really a resolution, since I already try to spend as much time as possible with her.  Still, it seemed important enough to reiterate at the beginning of this list.</p>
<p><b>Read more.</b></p>
<p>And not just <a href="http://twitter.com/sirhc">Twitter</a>.  I already do more of that than I probably should.  Having several hundred unread items in Google Reader is normal for me, especially now that I have subscribed to so many great nutrition and fitness blogs.</p>
<p>I haven&#8217;t had a cable television subscription for months, so if I&#8217;m not at my computer (and I use Linux, so you know I&#8217;m not playing games) I have the time to read a book.  It&#8217;s been a long time since I read one or two books per month.  In fact, it took me several months to get through the last book I read, <i>The Three Musketeers</i>.  I did manage to read through <i>Manthropology</i> since receiving it for Christmas (I should write a review), so I figure it&#8217;s a combination of picking the right books and setting aside the time to read them.</p>
<p><b>Write more.</b></p>
<p>I neglect my blog, sometimes so much I start to wonder why I bother having one.  On my to-do list for some time has been to clean up my blog.  I still have too many categories from the days before WordPress supported tags, and images in a lot of my old posts are broken.  Worse, I&#8217;ll go months without posting anything.  Worse yet, I have a handful of half-written posts; always thinking I&#8217;ll finish them later.  Later never seems to come.</p>
<p>Writing more also applies to programming.  There is at least one project I started but never finished.  Sure, I can blame my last computer crashing and life generally getting in the way, but how hard would it be to just sit down and finish it?  Then there all the Perl modules I write.  Unfortunately, most of those are for work, so I&#8217;m unable to release them.  I tried once, but didn&#8217;t get very far.</p>
<p>Also, all those blogs I mentioned in the last resolution?  I should comment when I think I have something to say, or participate in forums when they&#8217;re available.</p>
<p><b>Be more Paleo.</b></p>
<p>While I&#8217;ve eaten a fairly low carbohydrate diet since my wife was pregnant with our daughter over two years ago (my wife was diagnosed with gestational diabetes), it wasn&#8217;t until last March when I started looking at diet from a Paleo perspective.  Looking at a graph of my weight, that really marked a change.  From a peak of 235 pounds around three years ago, I finally dropped under 200 in March.  As I write this, I&#8217;m weighing in at 178 with my eye on getting down to 165.</p>
<p>So far, even though I appear to be &#8220;eating Paleo,&#8221;  I still acquire my meat from Costco.  From a budget perspective, this isn&#8217;t too bad, but their meat is still conventionally raised and fed grain.  There is a <a href="http://www.jandjgrassfedbeef.com/csa.php">local meat CSA</a> which I am interested in joining.  Maybe this will be the year I start spending money on quality instead of quantity.</p>
<p>In addition to the meat CSA, there&#8217;s one that has partnered with the company I work for to make weekly deliveries of produce at one of our office buildings.  I may join this CSA to augment our semi-regular Saturday morning visits to the <a href="http://www.cityofvista.com/press/VistaFarmersMarket.cfm">Vista Farmers Market</a>.</p>
<p><b>Join a CrossFit Box.</b></p>
<p>It&#8217;s all the rage in the Paleo community and I&#8217;ve never been a huge fan of lifting weights and I&#8217;ve always loathed chronic cardio.  In fact, there&#8217;s one within walking distance of my house.  Looks like I&#8217;m out of excuses.</p>
<p><b>Get into <a href="http://movnat.com/">MovNat</a>.</b></p>
<p>Because it looks like <i>fun</i>.  <a href="http://outsideonline.com/fitness/travel-ta-201101-sidwcmdev_153323.html">That&#8217;s</a> the kind of shape I want to be in.</p>
<p>In 2012 (if the world doesn&#8217;t end) I might throw parkour and ninjitsu into the mix because how cool would that be?</p>
<p><b>Actually <i>use</i> Facebook.</b></p>
<p>It seems that all of my friends and family use Facebook now.  They chat, they share pictures, they comment on each others&#8217; wall, and when I see them in person I discover I&#8217;m totally out of the loop.  I tried to wait it out, hoping it would go away (anyone remember MySpace?), but it&#8217;s about time I jumped on this particular bandwagon.</p>
<p>Nah, I&#8217;m just kidding.  Maybe next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/resolutions-for-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Almond Walnut Bread</title>
		<link>http://sirhc.us/almond-walnut-bread/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=almond-walnut-bread</link>
		<comments>http://sirhc.us/almond-walnut-bread/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 20:43:36 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[almonds]]></category>
		<category><![CDATA[bread]]></category>
		<category><![CDATA[low-carb]]></category>
		<category><![CDATA[paleo]]></category>
		<category><![CDATA[primal]]></category>
		<category><![CDATA[recipe]]></category>
		<category><![CDATA[walnuts]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=590</guid>
		<description><![CDATA[One of my favorite types of food (you know, besides bacon), particularly during the winter holiday season, is the sweet quick bread. Since going Paleo earlier this year, this solstice staple is no longer welcome in my house. Fortunately, I&#8217;ve come up with a suitable replacement for a basic quick bread recipe. The folks over [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/cdgrau/5215071735/"><img alt="Almond Walnut Bread" src="http://farm6.static.flickr.com/5163/5215071735_3b1bdd2f78.jpg" title="Almond Walnut Bread" class="alignleft" width="500" height="374" /></a>One of my favorite types of food (you know, besides bacon), particularly during the winter holiday season, is the sweet quick bread.  Since going Paleo earlier this year, this solstice staple is no longer welcome in my house.  Fortunately, I&#8217;ve come up with a suitable replacement for a basic quick bread recipe.</p>
<p>The folks over at the <i>Cooking with Trader Joe&#8217;s</i> blog came up with a recipe for <a href="http://blog.cookingwithtraderjoes.com/2010/01/15/almond-bread-low-carb-high-protein-glutenfree-and-tasty.aspx">almond bread</a>.  I tried baking it a couple of weeks ago, with one substitution.  Instead of the agave nectar, which is pure fructose, I used Trader Joe&#8217;s Desert Mesquite Honey (I don&#8217;t currently have any of the awesome raw local honey available at my local farmers market).  I also added a teaspoon of xanthan gum, which is useful in gluten-free recipes.  The result was a dense loaf of nutty bread, which was a big hit with everyone who tried it, especially my diabetic grandfather-in-law (who was happy to finally have something to soak up his egg yolks).</p>
<p>I recently modified a fruitcake recipe to be more Paleo-friendly (more on that in another post), which was also a big hit with my in-laws.  I decided to try adapting the almond bread recipe using the same techniques that proved so successful with the fruitcake.  Primarily, this involves the substitution of coconut flour for some of the almond meal.  So, without further ado, the recipe I came up with.</p>
<ul>
<li><s>3 ½</s> 4 ½ cups almond meal</li>
<li><s>1 cup coconut flour</s></li>
<li>1 teaspoon salt</li>
<li>1 teaspoon baking soda</li>
<li>1 teaspoon baking powder</li>
<li>1 teaspoon xanthan (or guar) gum</li>
<li><s>9</s> 5 eggs</li>
<li><s>2 tablespoons unsalted butter, melted</s></li>
<li>2 tablespoons honey</li>
<li>1 teaspoon vanilla</li>
<li>1 tablespoon apple cider vinegar</li>
<li>½ to 1 cup walnuts, toasted</li>
<li>1 tablespoon unsalted butter, melted</li>
</ul>
<ol>
<li>Preheat oven to 300 degrees F.</li>
<li>In a large bowl, combine all of the dry ingredients.</li>
<li>In another container, beat the eggs and add the remaining wet ingredients.</li>
<li>Add the wet ingredients to the dry and mix thoroughly (you may recognize this as the muffin method).</li>
<li>Fold in the toasted walnuts.</li>
<li>Transfer the mixture to a 5&#215;9-inch standard loaf pan, lightly greased (I use butter and parchment paper in a wonderful clay baking dish).</li>
<li>Pour melted butter over the top.</li>
<li>Bake for 60 minutes or until a skewer or knife inserted in the bread comes out clean.</li>
<li>Cool and slice (my dish yields 11 slices).</li>
</ol>
<p>If you can&#8217;t find coconut flour, or simply want to use <b>all almond meal</b> in the recipe, use 4 ½ cups of almond meal and use only 5 eggs.  The coconut flour absorbs a lot of moisture, so the usual advice is to use an additional 4 eggs for every cup of coconut flour.  Hey, this is Paleo baking, right?  The more eggs, the better.</p>
<p>I found most of the ingredients at Trader Joe&#8217;s.  They sell one pound of almond meal for $3.99.  The coconut flour we found at Henry&#8217;s, which is a Wild Oats store, now owned by Whole Foods.  As for the eggs, we go through so many that we buy them at Costco.</p>
<p><strong>Update (5 December 2010):</strong> After eating the bread for a week, we decided that it was a bit too dry.  I&#8217;ve updated the recipe to be a bit closer to the original, using only almond meal.  This also makes it a little easier and cheaper to make.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/almond-walnut-bread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Primal Meal Photo</title>
		<link>http://sirhc.us/my-primal-meal-photo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-primal-meal-photo</link>
		<comments>http://sirhc.us/my-primal-meal-photo/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 02:51:11 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[dinner]]></category>
		<category><![CDATA[primal]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=576</guid>
		<description><![CDATA[Yesterday, Mark&#8217;s Daily Apple held a primal meal photo contest. All I had to do was submit a photo of a primal meal I ate. For most people, this would be dinner; something they cooked up after work. Unfortunately, on the day of the contest, I didn&#8217;t have time to cook dinner. However, that didn&#8217;t [...]]]></description>
				<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 250px"><a href="http://www.flickr.com/photos/cdgrau/4978554632/"><img title="Primal Snacking" src="http://farm5.static.flickr.com/4103/4978554632_1cf96cf1aa_m.jpg" alt="Primal Snacking by cdgrau, on Flickr" width="240" height="179" /></a><p class="wp-caption-text">A Simple Foraged Primal Dinner</p></div>
<p>Yesterday, Mark&#8217;s Daily Apple held a <a href="http://www.marksdailyapple.com/contest-show-your-meal-win-a-le-creuset-pan-and-a-150-gift-certificate/">primal meal photo contest</a>.  All I had to do was submit a photo of a primal meal I ate.  For most people, this would be dinner; something they cooked up after work.  </p>
<p>Unfortunately, on the day of the contest, I didn&#8217;t have time to cook dinner.  However, that didn&#8217;t mean I wasn&#8217;t going to <em>eat</em> dinner.  When I got home, before I headed off to my karate class, I &#8220;foraged&#8221; through the wilds of my refrigerator for something to eat.  We always have hard cooked eggs and salami on hand, for snacking or quick dinners.  We&#8217;ve also been buying strawberries every week, since they&#8217;re a year-round crop in Southern California.  And that was my entry.  It&#8217;s not the fanciest primal meal anyone has come up with, but that&#8217;s okay; the winner will be picked randomly from all of the entries.</p>
<p>Also, if anyone is interested in having a &#8220;Grokfeast&#8221; for a chance to <a href="http://www.marksdailyapple.com/have-a-picnic-win-a-cow-the-2010-grokfeast-challenge/">win a cow</a>, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/my-primal-meal-photo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gone Primal</title>
		<link>http://sirhc.us/gone-primal/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gone-primal</link>
		<comments>http://sirhc.us/gone-primal/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 02:08:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Health & Fitness]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[fitness]]></category>
		<category><![CDATA[Food]]></category>
		<category><![CDATA[lifestyle]]></category>
		<category><![CDATA[paleo]]></category>
		<category><![CDATA[primal]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=543</guid>
		<description><![CDATA[A couple of years ago, when my wife was pregnant with our daughter, my parents were reading through Good Calories, Bad Calories, by Gary Taubes, and getting started with the paleolithic, or paleo, diet. It was a happy coincidence, as my wife was diagnosed with gestational diabetes. The diet information she received from my parents [...]]]></description>
				<content:encoded><![CDATA[<p>A couple of years ago, when my wife was pregnant with our daughter, my parents were reading through <a href="http://books.google.com/books?id=XPJdM9POXGAC&#038;printsec=frontcover&#038;dq=isbn:9781400040780&#038;cd=1">Good Calories, Bad Calories</a>, by <a href="http://en.wikipedia.org/wiki/Gary_Taubes">Gary Taubes</a>, and getting started with the <a href="http://en.wikipedia.org/wiki/Paleolithic_diet">paleolithic, or paleo, diet</a>.  It was a happy coincidence, as my wife was diagnosed with gestational diabetes.  The diet information she received from my parents kept the condition under control without the need for drugs.  In fact, her doctor thought she was lying about the low blood sugar numbers she was reporting and had her tested in the office during each visit.</p>
<p>I wasn&#8217;t immediately convinced.  So many years of indoctrination by the advice of the so-called experts and the recommendations of the United States government left me believing at an emotional level that carbohydrates are not only harmless, but necessary to my existence.  Plus, I really like oatmeal and granola.</p>
<p>It was hard to argue with results and, after following <a href="http://twitter.com/DrEades">Dr. Eades</a> on Twitter for a while, I tried the diet.  It was okay, but I didn&#8217;t stick to it very well.  I was still addicted to sugar and convinced that I could lose weight in the gym.  I did lose a little weight and enjoyed being able to eat all the food I actually like, but have been conditioned to believe is unhealthy, without the guilt (no one likes potatoes anyway, only what they put on potatoes).</p>
<p>One blog that I&#8217;d run across a couple of times, but didn&#8217;t think to bookmark was <a href="http://www.marksdailyapple.com/">Mark&#8217;s Daily Apple</a>.  I could remembered it as the interesting blog with the photo of the guy lounging in the grass, wearing his <a href="http://www.vibramfivefingers.com/">Vibram FiveFingers</a> (I have a pair, too).  My Google searches turned up nothing.  Finally, one of the people I follow on Twitter posted a link.  Suddenly, it wasn&#8217;t just about the diet for me.  Mark Sisson&#8217;s idea of an Primal Lifestyle was the missing piece.  I jumped in with both feet.</p>
<p>Now, my typical daily sustenance looks something like this:</p>
<p>Breakfast almost always consists of three fried eggs and two sausage links.  I cook a third sausage link for my daughter to eat when she wakes up.  I rarely skip breakfast (though strangely I did today) and haven&#8217;t deviated from this menu in over a year.</p>
<p>Lunch used to be a protein shake, plain whole milk yogurt with berries and stevia, and three bread-less sandwich rolls.  A few weeks ago, I stopped eating the sandwich rolls.  I suspect that changes to my metabolism have left me less hungry at lunch, so I practice intermittent fasting.  Sometimes I&#8217;ll have the yogurt, sometimes I&#8217;ll get a burrito at the taco shop (I unwrap it and only eat the innards), and sometimes I&#8217;ll skip lunch altogether.</p>
<p>Dinner varies from day to day, but only a little.  I typically cook a large cut of meat, like beef chuck or pork shoulder, in a slow cooker on Sunday, which gives us enough meat for the week.  For a weeknight dinner, I&#8217;ll sauté onions, peppers, and garlic in coconut oil, then add some of the leftover meat, sometimes finishing by adding sour cream for a tangy cream sauce.  Tonight I used a three cheese tomato sauce from Trader Joe&#8217;s.</p>
<p>My workout has changed significantly, too.  I was a big nerd growing up, so I never went to the gym.  I started going on-and-off in college, but have started going almost every day over the last eight months.  Fortunately, I had a few sessions with a personal trainer once, and I&#8217;ve always followed her advice to avoid the machines and use free weights.  But I was the typical guy, doing repetitive sets of weights, focusing on those beach muscles.</p>
<p>Since the release of <a href="http://www.marksdailyapple.com/introducing-primal-blueprint-fitness/">Primal Blueprint Fitness</a>, I no longer worry so much about going to the gym every day, trying to lift ever heavier weights.  For one thing, it&#8217;s boring.  Also, I think I overdid it and hurt my shoulder.  I certainly don&#8217;t miss the horribly dull &#8220;chronic cardo.&#8221;  Now I work out using my own body weight and sprint occasionally.</p>
<p>Suddenly I&#8217;m losing more weight.  Fast.  Even though I&#8217;ve taken a break from the gym for the last couple of weeks to rest my shoulder.</p>
<p>I&#8217;ve had a draft of this post saved for about two months, but never got around to polishing it for publication, until now.  A couple of days ago, Mark Sisson kicked off the <a href="http://www.marksdailyapple.com/the-primal-blueprint-30-day-challenge/">Primal Blueprint 30-Day Challenge</a>.  This is just what I needed, especially after cheating on my diet over the Labor Day weekend.  I&#8217;m not half as dedicated to the lifestyle as most of the people who comment on Mark&#8217;s Daily Apple, but I&#8217;m going to try to join in the challenge and have some fun anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/gone-primal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coasting to Work</title>
		<link>http://sirhc.us/coasting-to-work-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coasting-to-work-2</link>
		<comments>http://sirhc.us/coasting-to-work-2/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 00:16:42 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Home]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Coaster]]></category>
		<category><![CDATA[commute]]></category>
		<category><![CDATA[mass transit]]></category>
		<category><![CDATA[San Diego]]></category>
		<category><![CDATA[train]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=557</guid>
		<description><![CDATA[I&#8217;ve been commuting between home in San Marcos and work Sorrento Valley every day since I bought my town home three and a half years ago. With the few exceptions when I&#8217;ve either been able to telecommute or traffic has been light, it has been an altogether miserable experience. At the beginning of the current [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been commuting between home in San Marcos and work Sorrento Valley every day since I bought my town home three and a half years ago.  With the few exceptions when I&#8217;ve either been able to telecommute or traffic has been light, it has been an altogether miserable experience.  At the beginning of the current recession, traffic improved a bit, but apparently there are still plenty of people who need to drive north on Interstate 5 past Del Mar in San Diego, because this summer has been absolutely awful.</p>
<p>I&#8217;ve shifted my schedule earlier for a couple of reasons.  First, leaving home before seven o&#8217;clock in the morning gets me to work before traffic builds on the freeway; and second, leaving work before five o&#8217;clock in the evening gets me home in time for dinner with my daughter.  Unfortunately, this summer has seen bumper-to-bumper traffic starting as early as three o&#8217;clock in the afternoon.</p>
<p>I&#8217;ve gazed longingly at the <a href="http://www.gonctd.com/coaster_intro.htm">Coaster</a> as it effortlessly glided by on its rails along the coast, while I crept along at a snail&#8217;s pace behind the wheel of my car.  For the last three weeks&mdash;not coincidently since my return from Portland, where I&#8217;ve always enjoyed mass transit&mdash;I&#8217;ve done more than admire the train from afar, I&#8217;ve started to seriously consider using it.</p>
<p>So on Friday I did.  I left for work a bit earlier than usual, so I could catch the 6:50 AM train at the Carlsbad Poinsettia station.  After purchasing my $11 round-trip ticket, I crossed a footbridge to the boarding area.  The tracks aren&#8217;t labelled, so I didn&#8217;t know which side I should wait on.  After a few minutes, people had started to gather on the side I was on, so I guessed it to be the correct one.</p>
<p>When the train arrived, I headed to the upper level, because I wanted to enjoy the view.  I wasn&#8217;t disappointed.  The view of the beaches, the ocean, and the Del Mar Racetrack was gorgeous.  In addition to that, I was able to use Twitter and read RSS feeds, something I&#8217;ve obviously never been able to do in the car.  Twenty-six minutes later I was walking off the train at the Sorrento Valley station.  A shuttle took me up the hill and dropped me off across the street from my office.  I arrived at the same time, 7:25 AM, I always do.</p>
<p>I had a meeting scheduled from 3:00 to 4:00 PM, so I expected to catch the 4:26 PM shuttle and the 4:51 PM train.  Fortunately, the meeting ended early, which allowed me to catch the 3:45 PM shuttle and the 4:05 PM train.  That got me home just before five o&#8217;clock, which ended in a 75 minute commute.  This is a bit longer than it would typically take me to drive home, but I arrived in probably the best mood I ever have after a commute.  I attribute much of my mood to the Stone Smoked Porter I drank on the train.  That&#8217;s right, the consumption of alcohol is allowed on the train.  Bonus!</p>
<p>So on Monday I&#8217;m going to drive down to the train station and purchase a 30 day pass for $154.  Unfortunately, I&#8217;ve missed the monthly cutoff to order a pass through my company&#8217;s bulk purchase and subsidy program, so I&#8217;ll have to pay full price until I can do that.  I haven&#8217;t worked out how much money this will save me, if any, but right now I don&#8217;t care.  It&#8217;s worth it to preserve my sanity.</p>
<p>This new commute comes with another benefit.  We had been considering selling our 1997 Ford Explorer in order to help fund the purchase of a new car.  By trading cars with my wife (I drive a 1999 Toyota Avalon) and using the Explorer to make the relatively short drive to the train station, we can get more life out of it, saving us some money.  So even if the commute itself is a short-term monetary wash, there is plenty of cost saving in the long run.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/coasting-to-work-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Tuesday</title>
		<link>http://sirhc.us/oscon-2010-tuesday/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 of ale while writing. Although, it is a beautiful day, which I&#8217;d be spending outdoors [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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: Competition is bad, don&#8217;t do it. Thursday: Licensing is bad, don&#8217;t do it. And with [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 of Incremental Change Chris DiBona (Google, Inc.) Google crawled 40 million files in Google Code [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 by his wife and his son, the former dressed as an angel, the latter as [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 Perl. Judging by the size of the crowd, I&#8217;m not the only one. However, I [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 includes all the really crappy stuff, such as Matt&#8217;s Script Archive. Thank goodness for that. [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 work on the infrastructure code. By necessity, it contains a lot of legacy, which can [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 will send our data into the cloud and all our wishes will be fulfilled. To [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 those that attended the full tutorial that the first half wasn&#8217;t really worth attending. In [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 them. The take-away points, presented up front for our convenience: Environmental monitoring is important Arduino [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 is not a tutorial. How to use traits is easy, but why to use them [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 won&#8217;t differ much from the previous one. This session on Simple Cloud is being presented [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 he appears to be a professional trainer, which is a nice sign. He started out [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 may want to try to find non-Perl sessions to attend. After all, I tend to [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 who say &#8220;Perl is dead&#8221; or that Perl hackers are &#8220;desperate&#8221; are behind the times. [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 in song, to the tune of Gilligan&#8217;s Island. Piers switched from Perl to Ruby 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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 the O&#8217;Reilly Open Source Convention, which means it&#8217;s time for the introductory keynotes. The first [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 pastries offered at the Oregon Convention Center. As it turns out, no breakfast was offered [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 open like a kid in a toy store.  Inside the kit were the Arduino board [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 high school student who has been using Blender for four years.  His experience with the [...]]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 time I&#8217;ve been away from my daughter for more than a couple of days.  Now [...]]]></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>
		<item>
		<title>I&#8217;m Greener Than You Are</title>
		<link>http://sirhc.us/im-greener-than-you-are/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=im-greener-than-you-are</link>
		<comments>http://sirhc.us/im-greener-than-you-are/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 19:53:19 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[plastic bags]]></category>
		<category><![CDATA[trash]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=416</guid>
		<description><![CDATA[A while back, on a mailing list I subscribe to, there was a short thread on reducing the use of the plastic bags used to line trash cans, such as those found in individual offices or cubicles at a business. The initial message read thusly: Hi friends in greenness-~- I concocted a way to save [...]]]></description>
				<content:encoded><![CDATA[<p>A while back, on a mailing list I subscribe to, there was a short thread on reducing the use of the plastic bags used to line trash cans, such as those found in individual offices or cubicles at a business.</p>
<p>The initial message read thusly:</p>
<blockquote><p>Hi friends in greenness-~-</p>
<p>I concocted a way to save plastic bags from the environment (doing my part!)  I hid my trashcan from the janitorial night-staff, and have stopped using it!</p>
<p>If I ever have garbage items in-hand, which is rarely, I walk over to my area&#8217;s printer and trashcan nook and deposit it there, saving the bags at my desk which otherwise are replaced each night.  Someone one-up that <img src='http://sirhc.us/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
<p>The follow up:</p>
<blockquote><p>One up that?  Easy!</p>
<p>I use no plastic bags at all and keep my garbage in my Acme in-office composter.  This allows me tocompost my (and a couple of coworkers) lunch waste into soil that I can use to grow wheat in my office window.  I grow wheat using a solar powered, hydroponic system, where the water for the hydroponic system is collected from the building AC condensation, and pumped through the compost. This both filters and nutritionalizes the water, as the water is also pumped through my fish tank (600liters) where I grow Tilapia for my lunch, fish sandwiches.</p>
<p>The wheat is grown staggered in such a way that I have a continuous harvest of grain.  I grind thisgrain in my hand operated grinder to make the buns in my solar oven (I keep this in the parking lotfor cooking my fish sandwiches and buns).  The stalks/straw from the wheat I cut long and weave into tatami mats that I have put around a small zen garden where I can go to get centered after a long stressful day (raking gravel really does it for me) in the office.  The bones from the fish, Iput through a &#8220;fast fossilization process&#8221; (yes the same one that makes dino bones seem older than 5k years) that makes them very hard.  I can then use them as rakes in my zen garden or donate them to be used for combs by some of the less well kempt engineers in my group.</p>
<p>I am sure you other engineers out there have designed similar system.  I cannot wait to hear about yours!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/im-greener-than-you-are/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell Studio XPS 16</title>
		<link>http://sirhc.us/dell-studio-xps-16/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dell-studio-xps-16</link>
		<comments>http://sirhc.us/dell-studio-xps-16/#comments</comments>
		<pubDate>Fri, 07 May 2010 04:21:18 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[notebook]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=399</guid>
		<description><![CDATA[I&#8217;m typing this post on my brand new Dell Studio XPS 16, which arrived Wednesday morning. That in itself was a pleasant surprise, since the original delivery estimate was May 13. My previous notebook, a Dell Inspiron E1505 finally stopped booting back on April 2, so between putting off ordering a new one and waiting [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m typing this post on my brand new Dell Studio XPS 16, which arrived Wednesday morning.  That in itself was a pleasant surprise, since the original delivery estimate was May 13.  My previous notebook, a Dell Inspiron E1505 finally stopped booting back on April 2, so between putting off ordering a new one and waiting on delivery, I was growing impatient.  I hadn&#8217;t initially planned on buying another Dell notebook, but of the brands for which I have an employee discount, it&#8217;s the only one that offered a 1080 vertical resolution in a notebook under 17 inches.  The most common vertical resolution in this size was 900.  Even my old Inspiron had a 1050 vertical resolution.</p>
<p>While unboxing my brand new computer, I remarked to my wife that Dell is one of the few brands trying to emulate Apple&#8217;s success with simple, elegant designs.  Then I pulled out the power brick.  The thing is a behemoth.  If only Dell had followed Apple&#8217;s lead there.  Unfortunately, at that point I had to put my new toy aside without booting it, because I still had an entire day of work to get through.</p>
<p>Perhaps the best part of this experience was never even booting into the default Windows 7 install.  The very first thing I did was to insert my USB stick with a <a href="http://fedoraproject.org/wiki/FedoraLiveCD/USBHowTo">Fedora 12 Live USB Image</a> and boot off that.  It worked like a charm.  I even successfully fired up <a href="http://live.gnome.org/Cheese">Cheese</a>, the web cam application.  Sound didn&#8217;t work, but I ignored that.  I clicked the install icon on the desktop and a few minutes later I had Fedora 12 installed.</p>
<p>This is Linux on a notebook, so there were a few hurdles to overcome.  Sound started working sometime during the installation of the 351 MB of package updates.  Unfortunately, the system started freezing on me.  I suspected the video driver, but nothing showed up in the logs.  Compiz didn&#8217;t work either, complaining that my driver lacked 3D hardware support.  The latter problem was easier to debug, so I went after it first.  Digging through logs, I found that the Open Source ATi driver was attempting to load the <tt>/usr/lib64/dri/r600_dri.so</tt> library, but it wasn&#8217;t found.  Installing the <tt>mesa-dri-drivers-experimental</tt> package solved this and, voila, Compiz was working.  This also seems to have solved the random freezes, so bonus.</p>
<p>Wireless networking didn&#8217;t initially work, either.  This simply required the installation of the <tt>iwl6000-firmware</tt> package.  I attribute both this and the missing graphics driver to installing Fedora using the live USB image.  I assume that, instead of going through the usual hardware detection and downloading the appropriate packages, it just copies the live image to the hard drive and does some basic setup.  In any case, everything works now, which is pretty impressive for a relatively high end notebook.</p>
<p>Speaking of high end, just what are the specifications?</p>
<ul>
<li><b>Processor:</b> Intel Core i7 720</li>
<li><b>Memory:</b> 8 GiB</li>
<li><b>Hard Drive:</b> 500 GiB 7200 RPM SATA</li>
<li><b>Screen Size:</b> 1920&#215;1080 15.6&#8243;</li>
</ul>
<p>I expect this notebook to last me for about four or five years.  I&#8217;m currently restoring data from my off-site <a href="http://www.jungledisk.com/">JungleDisk</a> backup.  That should be done in a couple of days (it&#8217;s time to find a good NAS).</p>
<p><b>Update (2010-05-18)</b></p>
<p>The notebook is currently sitting on a desk behind me running the <a href="http://www.gnu.org/software/coreutils/manual/html_node/shred-invocation.html"><tt>shred</tt></a> command in preparation for its journey back to Dell.  As it turns out, the random freezing persisted.  After several frustrating days experimenting with drivers, I finally discovered a <a href="http://en.community.dell.com/support-forums/laptop/f/3518/t/19325689.aspx">sticky thread</a> on Dell&#8217;s forums.  Wow, I wish I&#8217;d taken the time to find that before I ordered this notebook.</p>
<p>There are posts dating back months and as recently as a few days ago.  It doesn&#8217;t seem to matter what OS people have installed.  I saw a glimmer of hope with a BIOS update, but it turns out the notebook was already running the most recent BIOS.  So it was time to give up and return the notebook.</p>
<p>I called Dell on Saturday, only to be told that their systems were down.  I called Dell on Sunday, only to discover that their customer support is closed over the weekend (that would have been a nice piece of information to have on the website).  I called on Monday and, after being placed on hold for 30 minutes (important safety tip: don&#8217;t consume coffee before calling), I had a return shipping label in my e-mail inbox.  I will say this for Dell, the return process was relatively painless.  Well, aside from hearing <a href="http://en.wikipedia.org/wiki/Lollipop_(1958_song)">&#8220;Lollipop&#8221;</a> every time I called.</p>
<p>I&#8217;ll drop the notebook off at a UPS Store tomorrow.  So now I need to decide what to get instead.  The MacBook Pro is looking a lot more tempting.  While I like ThinkPads, Lenovo apparently has a supply problem right now, so I can&#8217;t order a 15-inch with what I consider to be a good display resolution.  Maybe I&#8217;ll just pick up a 10-inch notebook and a <a href="http://www.synology.com/us/products/index.php">Synology NAS</a> while I shop around.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/dell-studio-xps-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtually There</title>
		<link>http://sirhc.us/virtually-there/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=virtually-there</link>
		<comments>http://sirhc.us/virtually-there/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 19:52:09 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[Linode]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=392</guid>
		<description><![CDATA[The very old server, which I co-locate at my friend&#8217;s company&#8217;s data center, died on Friday night. I&#8217;ve been waiting for it to happen for a while, and I back up my data nightly, so I didn&#8217;t lose much. Remember, backups are important. The only lesson here for me is that I should snapshot certain [...]]]></description>
				<content:encoded><![CDATA[<p>The very old server, which I co-locate at my friend&#8217;s company&#8217;s data center, died on Friday night.  I&#8217;ve been waiting for it to happen for a while, and I back up my data nightly, so I didn&#8217;t lose much.  Remember, backups are important.  The only lesson here for me is that I should snapshot certain directories (home, databases, etc.) more frequently than once per day.</p>
<p>After giving it some thought, I decided that it&#8217;s not worth repairing or replacing the server.  I was able to get my e-mail flowing again by switching my domain&#8217;s MX record to use Google, so that wasn&#8217;t a problem.  To get my blog and other web sites back online, I decided to go with a virtual private server (VPS).  I have several friends who use <a href="http://linode.com/">Linode</a> and highly recommend their service.  I signed up for the smallest plan and was back up and running in minutes.  It took a bit longer to get my blog back online, but that&#8217;s only because I had tinkered with the WordPress directory and left the themes in an inconsistent state.</p>
<p>So far, I&#8217;m pretty happy with the arrangement.  A VPS should give me far fewer headaches in the long run.  I was starting to grow weary of owning hardware, especially since it had long ago passed its prime.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/virtually-there/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Freedom Perishes</title>
		<link>http://sirhc.us/freedom-perishes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=freedom-perishes</link>
		<comments>http://sirhc.us/freedom-perishes/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 19:39:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[government]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=389</guid>
		<description><![CDATA[Freedom perishes not at the hands of terrorists, but as the People consign it to their Government, piecemeal.]]></description>
				<content:encoded><![CDATA[<p>Freedom perishes not at the hands of terrorists, but as the People consign it to their Government, piecemeal.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/freedom-perishes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prescient Juxtaposition?</title>
		<link>http://sirhc.us/prescient-juxtaposition/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=prescient-juxtaposition</link>
		<comments>http://sirhc.us/prescient-juxtaposition/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 05:08:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[deficit]]></category>
		<category><![CDATA[health care]]></category>
		<category><![CDATA[morning edition]]></category>
		<category><![CDATA[npr]]></category>
		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=373</guid>
		<description><![CDATA[I was listening to NPR&#8217;s Morning Edition on my drive into the office this morning and I was struck by the way two stories about the federal government were scheduled one after the other. The first was entitled Budget Chief Peter Orszag: Obama&#8217;s &#8216;Super-Nerd&#8217;. The gist of the story was that universal health care is [...]]]></description>
				<content:encoded><![CDATA[<p>I was listening to NPR&#8217;s <a href="http://www.npr.org/templates/rundowns/rundown.php?prgId=3">Morning Edition</a> on my drive into the office this morning and I was struck by the way two stories about the federal government were scheduled one after the other.  The first was entitled <a href="http://www.npr.org/templates/story/story.php?storyId=102723682">Budget Chief Peter Orszag: Obama&#8217;s &#8216;Super-Nerd&#8217;</a>.  The gist of the story was that universal health care is Mr. Orszag&#8217;s passion, how he&#8217;s given it a lot of thought, and how he has big plans for our next entitlement.</p>
<blockquote><p>Orszag says a new health care system could use psychology to figure out ways to give better medical care, not just more health care. That&#8217;s what he really wants to do: combine caring for people with good economic decisions.</p></blockquote>
<p>The next story, <a href="http://www.npr.org/templates/story/story.php?storyId=102774198">Postal Deficit Grounds Wilderness Mail</a>, was about the United States Postal Service discontinuing weekly airmail deliveries to remote locations.</p>
<blockquote><p>The flights from Cascade, Idaho, have served ranches, outfitters, lodges and a University of Idaho research station for 50 years. But the $46,000 annual cost is too much for a postal service $6 billion in the red.</p></blockquote>
<p>I don&#8217;t know if the scheduling was by design or by accident, but listening to them in this order got me thinking about something.  Something that could be rather important.</p>
<p>If the federal government&#8217;s universal health care plan runs a deficit, will the coverage for outlying individuals, as it were, simply be cut?  Who will those unlucky people be who had their care red lined because they were considered an unnecessary expense?</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/prescient-juxtaposition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Snail Mail Phishing?</title>
		<link>http://sirhc.us/snail-mail-phishing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=snail-mail-phishing</link>
		<comments>http://sirhc.us/snail-mail-phishing/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 04:58:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[dirt-bag]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[scam]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=369</guid>
		<description><![CDATA[I received two postcards in the mail today. Both were addressed to the same wrong first name, but the correct last name and house address. Both read something like the following. I heard you&#8217;ve been collecting payments on a private loan or &#8220;note.&#8221; I would love to give you cash right now so you don&#8217;t [...]]]></description>
				<content:encoded><![CDATA[<p>I received two postcards in the mail today.  Both were addressed to the same wrong first name, but the correct last name and house address.  Both read something like the following.</p>
<blockquote><p>
I heard you&#8217;ve been collecting payments on a private loan or &#8220;note.&#8221;  I would love to give you cash right now so you don&#8217;t have to worry about collecting payments anymore.
</p></blockquote>
<p>They varied slightly in word choice, but both were careful to use the quotation marks around the word note.  Have phishing attacks using e-mail lost their effectiveness?  Are scam artists turning to the old postal mail standby?</p>
<p>One of the postcards listed a web site, a classic &#8220;turn key&#8221; business site, where hundreds or thousands of users will have their own URI and a standard template, such as www.scams-r-us.com/dirt-bag.  I&#8217;m sure the parent site takes their cut, too.</p>
<p>Anyway, I loaded the main site (<a href="http://www.cash4cashflows.com/">http://www.cash4cashflows.com/</a>) and it looks like every other scam out there.  Some dirt bag scrapes web sites or purchases address lists, then he hands them out to everyone who signs up for the site.  Of course, everyone who signs up gets the same set of leads, but that&#8217;s the best way to make money off a single lead more than once.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/snail-mail-phishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Year, New Look</title>
		<link>http://sirhc.us/new-year-new-look/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-year-new-look</link>
		<comments>http://sirhc.us/new-year-new-look/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 01:09:38 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[new year]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=352</guid>
		<description><![CDATA[Yeah, so I haven&#8217;t written a thing since my daughter&#8217;s birth day. Well, I suppose Twitter sort of counts. I&#8217;ve decided that, with the new year, my blog needs a new look. So here it is. We&#8217;ll see how long until I grow bored with it. I&#8217;ll probably never design my own WordPress theme, at [...]]]></description>
				<content:encoded><![CDATA[<p>Yeah, so I haven&#8217;t written a thing since my daughter&#8217;s birth day.  Well, I suppose <a href="http://twitter.com/sirhc">Twitter</a> sort of counts.  I&#8217;ve decided that, with the new year, my blog needs a new look.  So here it is.  We&#8217;ll see how long until I grow bored with it.  I&#8217;ll probably never design my own WordPress theme, at least not for this blog.  It just doesn&#8217;t matter enough.</p>
<p>Oh yeah, I may try to write once in a while, too.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/new-year-new-look/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing Kaylee Bria</title>
		<link>http://sirhc.us/introducing-kaylee-bria/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-kaylee-bria</link>
		<comments>http://sirhc.us/introducing-kaylee-bria/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 04:55:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Baby]]></category>
		<category><![CDATA[birth]]></category>
		<category><![CDATA[kaylee]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=345</guid>
		<description><![CDATA[At 02:36 this morning, Mrs. sirhc and I welcomed Kaylee Bria into the world. She weighed in a 6 lbs., 6 oz. (2.89 kg) and measured 18.90 inches (48 cm). Kaylee and her mother are currently resting at the hospital. They are scheduled to come home on Thursday morning.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/cdgrau/2901815704/" title="Kaylee Bria by cdgrau, on Flickr"><img src="http://farm4.static.flickr.com/3126/2901815704_36e1395800_m.jpg" width="240" height="192" alt="Kaylee Bria" /></a>  At 02:36 this morning, Mrs. sirhc and I welcomed Kaylee Bria into the world.  She weighed in a 6 lbs., 6 oz. (2.89 kg) and measured 18.90 inches (48 cm).  Kaylee and her mother are currently resting at the hospital.  They are scheduled to come home on Thursday morning.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/introducing-kaylee-bria/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>News 2.0: The Age of Twitter</title>
		<link>http://sirhc.us/news-20-the-age-of-twitter/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=news-20-the-age-of-twitter</link>
		<comments>http://sirhc.us/news-20-the-age-of-twitter/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 06:27:17 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[kpbs]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[news 2.0]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=333</guid>
		<description><![CDATA[During the wildfires last year in San Diego, accurate and up to date news was difficult, if not impossible, to obtain. The traditional news media outlets were of little use. The television stations were repeatedly broadcasting the same outdated information. The Web sites of the local news stations and the Union-Tribune were so overloaded that [...]]]></description>
				<content:encoded><![CDATA[<p>During the <a href="http://en.wikipedia.org/wiki/October_2007_California_wildfires">wildfires last year</a> in San Diego, accurate and up to date news was difficult, if not impossible, to obtain.  The traditional news media outlets were of little use.  The television stations were repeatedly broadcasting the same outdated information.  The Web sites of the local news stations and the <a href="http://www.signonsandiego.com/">Union-Tribune</a> were so overloaded that they became inaccessible and worthless.</p>
<p>Into this fray steps <a href="http://www.kpbs.org/">KPBS</a>, San Diego&#8217;s public radio station.  Clearly, they have Internet-savvy employees, because in short order their Web site was moved temporarily to a hosting provider that could handle the load.  More impressive, however, was their use of so-called Web 2.0 tools.  Using the <a href="http://code.google.com/apis/maps/">Google Maps API</a>, KPBS was able to create a <a href="http://www.kpbs.org/static/maps/oct07_fire_map.html">map</a> of the fires, evacuation zones, and emergency shelters.  This was so useful to the residents of San Diego (and anyone outside the area who was desperate for information) that Google even published a <a href="http://maps.google.com/help/maps/casestudies/kpbs.html">case study</a>.</p>
<p>But that&#8217;s not what I want to write about.  The fires, and KPBS in particular, were my introduction to <a href="http://twitter.com/">Twitter</a>.  The very first user I chose to follow was @<a href="http://twitter.com/kpbsnews">KPBS News</a>.  From them, I was able to stay up to date in a way that neither television nor radio could deliver.  This was before Twitter&#8217;s amazing popularity led to frequent appearances of the <a href="http://en.wikipedia.org/wiki/Twitter#Failures">Fail Whale</a>.</p>
<p>I was reminded of this tonight when I read this <a href="http://twitter.com/kpbsnews/statuses/907550741">tweet</a>:</p>
<blockquote><p>
@<a href="http://twitter.com/chslaw">chslaw</a> your analysis is based purely on two days of sporadic tweets by 1 person and assuming there was equal protest at both conventions?
</p></blockquote>
<p>There is so much going on in this single tweet, I barely know where to begin.  First, and perhaps most obvious, KPBS is once again taking advantage of Twitter to keep their readers abreast of goings on in a way that neither radio nor even blog articles can deliver.  And they&#8217;re doing it well&mdash;even going so far as to advertise it during their station identification breaks.  This is <a href="http://en.wikipedia.org/wiki/Micro-blogging">micro-blogging</a> at its finest: delivering short, pertinent news updates to readers in real-time.  Not only is it real-time, but it&#8217;s time-shifted as well.  I don&#8217;t need to pay active attention to the tweets.  Instead, if I&#8217;ve been away from the computer for a few hours, I can quickly look over the list of tweets I missed.</p>
<p>The contributors to KPBS&#8217;s Twitter feed, though I don&#8217;t know who they are, clearly enjoy doing it.  During the Democratic and Republican National Conventions, there has been a constant stream of tweets, keeping us informed of not only the important news of the day&mdash;the kind of thing that will show up on the wire services after the fact&mdash; but the seemingly trivial events as well.  A VIP sighting in the security line, who just stopped by the news desk for a quick interview, or even unedited, first-person, subjective comments on police actions.  This is why I respect KPBS and why we will likely never see a so-called real news service use Twitter: the people running the show would be scared to death to allow this kind of uncensored commentary.  Even blogs allow the writer to spend time thinking about the article before they post it, and editors to retract information after the fact.  Twitter is immediate.  Twitter is real life, as it happens.</p>
<p>Finally, there&#8217;s whyu this specific tweet caused me to sit up and take notice.  It wasn&#8217;t a news bite or color commentary.  It was a specific response to another user.  This is interactive news&mdash;News 2.0 if you will.  Suddenly, the audience is a live participant in the story, as it happens.  Is there a question the reporter isn&#8217;t asking?  Is there an angle not being covered completely?  Direct a tweet at the news organization and maybe those concerns will be addressed.</p>
<p>That, to me, is what is truly amazing about Twitter.  Sure, anyone following me knows what I had for breakfast, or what&#8217;s bothering me at work (or, in the near future, when my daughter will be born), but that&#8217;s merely the fun stuff.  I&#8217;ve only been active on Twitter since early summer, but already I can&#8217;t remember life before it.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/news-20-the-age-of-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phelps Versus Phelps</title>
		<link>http://sirhc.us/phelps-versus-phelps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phelps-versus-phelps</link>
		<comments>http://sirhc.us/phelps-versus-phelps/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 22:32:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[American centrism]]></category>
		<category><![CDATA[Michael Phelps]]></category>
		<category><![CDATA[Olympic Games]]></category>
		<category><![CDATA[swimming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=323</guid>
		<description><![CDATA[While watching the coverage of the swimming events taking place at the 2008 Summer Olympic Games on NBC, one might be forgiven for thinking that, not only is Michael Phelps swimming in every heat, but in every lane of every heat. Even the womens divisions. Seriously, there are a lot people out there, swimming for [...]]]></description>
				<content:encoded><![CDATA[<p>While watching the coverage of the <a href="http://results.beijing2008.cn/WRM/ENG/Schedule/SW.shtml">swimming events</a> taking place at the <a href="http://en.beijing2008.cn/">2008 Summer Olympic Games</a> on <a href="http://www.nbcolympics.com/">NBC</a>, one might be forgiven for thinking that, not only is <a href="http://en.wikipedia.org/wiki/Michael_Phelps">Michael Phelps</a> swimming in every heat, but in every lane of every heat.  Even the womens divisions.</p>
<p>Seriously, there are a lot people out there, swimming for their country.  Unfortunately, all the NBC announcers can do is talk about Phelps.  I don&#8217;t contest that he&#8217;s an excellent swimmer and will most likely do quite well, but why can&#8217;t they talk about the people currently swimming?</p>
<p>It reminds me of the old joke, &#8220;But enough about me, let&#8217;s talk about you.  What do you think of me?&#8221;</p>
<p>[tags]2008 Olympic Games, Michael Phelps, swimming, NBC[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/phelps-versus-phelps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Same As I Ever Was</title>
		<link>http://sirhc.us/same-as-i-ever-was/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=same-as-i-ever-was</link>
		<comments>http://sirhc.us/same-as-i-ever-was/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 00:33:27 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=315</guid>
		<description><![CDATA[I was having a conversation with a friend and fellow Perl hacker the other day, about philosophy and pragmatism in code and work. At one point, he mentioned that I&#8217;m not much different now than when we worked together eight years ago. I&#8217;m not entirely sure how to take that. Have I really changed so [...]]]></description>
				<content:encoded><![CDATA[<p>I was having a conversation with a friend and fellow Perl hacker the other day, about philosophy and pragmatism in code and work.  At one point, he mentioned that I&#8217;m not much different now than when we worked together eight years ago.</p>
<p>I&#8217;m not entirely sure how to take that.  Have I really changed so little?  Sure, I&#8217;m probably as arrogant as I&#8217;ve ever been, but at least now I&#8217;m aware of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/same-as-i-ever-was/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Wrap Up</title>
		<link>http://sirhc.us/oscon-2008-wrap-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-wrap-up</link>
		<comments>http://sirhc.us/oscon-2008-wrap-up/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 06:37:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=280</guid>
		<description><![CDATA[My third O&#8217;Reilly Open Source Conference has come and gone. Sure, it ended over a week ago, but this is the first moment I&#8217;ve had a chance to sit down to write this. Last year, I was able to spend a few hours with the free wifi at the Portland airport, but this year my [...]]]></description>
				<content:encoded><![CDATA[<p>My third O&#8217;Reilly Open Source Conference has come and gone.  Sure, it ended over a week ago, but this is the first moment I&#8217;ve had a chance to sit down to write this.  Last year, I was able to spend a few hours with the free wifi at the Portland airport, but this year my flight was scheduled before 7:00 AM, so I was left with little time to write.  As I have the past two years, I had a great time.  It was good to see <a href="http://www.dailyack.com/">Al</a>, <a href="http://www.canspice.org/">Brad</a>, and <a href="http://kevin.scaldeferri.com/blog/">Kevin</a> again.  This year, <a href="http://optimist.geekisp.com/samwise">Sam</a> and Jonathan joined us as well.  While the #oscon IRC channel has surely been vacated by now, I hope see the channel denizens again on Freenode.</p>
<p><a href="http://farm4.static.flickr.com/3068/2702925886_7f2636688c.jpg"><img src="http://farm4.static.flickr.com/3068/2702925886_7f2636688c.jpg" style="float: none;" /></a></p>
<p>About half way through the week I was accused of being a prolific blogger.  Just how prolific, I wondered.  So I went through the list of all of my posts prefixed with &#8220;OSCON 2008,&#8221; including this one.  As it turns out, I wrote a grand total of 17,270 words.  The post for Damian Conway&#8217;s <a href="http://sirhc.us/journal/2008/07/22/oscon-2008-perl-worst-practices/"><i>Perl Worst Practices</i></a> has the dubious distinction of containing the most words, at a scale-tipping 1,209.  Other posts I made during the conference, but not directly related to any sessions totaled 1,608 additional words.  Prolific?  Perhaps.</p>
<p>My primary reason for writing so much about the sessions is for my own reference.  These posts allow me to go back and remind myself of what I did and what I learned.  I just happen to post my notes publicly, because I hope they may be useful or informative for others.  In particular, anyone who couldn&#8217;t join me at OSCON.  Naturally, I was a bit curious to know if anyone was actually reading my articles.  So I checked.</p>
<p><a href="http://sirhc.us/images/blog/oscon2008_site_traffic.png"><img src="http://sirhc.us/images/blog/oscon2008_site_traffic.png" style="float: none;" /></a></p>
<p>I typically receive about four visits per day.  Google&#8217;s Analytics service uses JavaScript to collect data, so I&#8217;m fairly comfortable declaring that my visitors are probably real people using real Web browsers, rather than search engines or even feed readers.  The regularity of visits is curious, though.  I&#8217;ll have to investigate my traffic a bit more closely.  Visits to my site began to rise dramatically on the first day of OSCON, peaking mid-week when the main conference got started.  Hopefully, people are enjoying my writings, because I enjoy doing it.  I&#8217;ve tagged all of my 2008 OSCON posts with the <a href="http://sirhc.us/journal/tag/oscon08/">oscon08</a> tag, which will make it easy to refer to them later.</p>
<p>Thinking back over what I&#8217;ve written, I&#8217;m not completely pleased with the finished product.  I don&#8217;t think attempting to post entries so immediately after each session is the best approach.  In the end, I don&#8217;t believe I&#8217;ve done the topic or the speakers justice.  Next time, I may simply take notes in preparation for a proper article after the fact.  The Tuesday night keynotes, in particular, would have benefited from this treatment.</p>
<p>I&#8217;ve been a fan of <a href="http://en.wikipedia.org/wiki/Damian_Conway">Damian Conway</a> since I first attended one of his talks at a <a href="http://sandiego.pm.org/">San Diego Perl Mongers</a> meeting in late 2005.  Since then, I&#8217;ve been fortunate enough to see him speak at two OSCONs as well as attending his Perl training at my place of employment.  There must be something about Australians, because one of the best presenters at OSCON this year was <a href="http://use.perl.org/~pjf/">Paul Fenwick</a>, also from Down Under.  I highly recommend them both.  Entertaining and educational, a far too uncommon combination.</p>
<p>This year I found that I wasn&#8217;t as excited about OSCON as I have been in the past.  It&#8217;s been more than just this past week, too.  A lot of things that once brought me joy have left me feeling empty.  I didn&#8217;t know why, and assumed that I was simply too busy, trying to juggle too many balls again.  I was wrong, though.</p>
<p>Near the end of the <a href="http://sirhc.us/journal/2008/07/22/oscon-2008-perl-worst-practices/"><i>Perl Worst Practices</i></a> tutorial, Dr. Conway was asked how he became so proficient at what he does.  In response he asked who in the room practiced martial arts.  No one in front of me raised their hand, but I suspect at least one person behind me, in addition to myself, raised their hand.  Disappointed, he cycled through a couple other sports (cycling and tennis, I think) until he received a reasonable response.  The point, of course, was that, like these sports, programming requires passion and should be practiced every day.</p>
<p>That&#8217;s when it hit me.  I don&#8217;t write code every day anymore.  I&#8217;ve been writing code as long as I can remember.  My first <a href="http://en.wikipedia.org/wiki/Hello_world_program">Hello World</a> was written in BASIC at the tender age of four.  Lately, I haven&#8217;t spent any time at all writing code.  I&#8217;ve been waking up early, working long hours, going to bed early, and spending what free time I have left with my pregnant wife.  That has to change.  So now I&#8217;m back to staying up late, doing more work from home, and stealing moments to write code; even if it&#8217;s just a few lines.  I&#8217;m also working on a talk I plan on presenting to my coworkers and would also like to give at <a href="http://www.socallinuxexpo.org/scale7x/">SCALE 7x</a> next year.</p>
<p>Conferences are not always about the tutorials or the sessions.  Sure, they offer plenty of opportunities to learn something new, but that&#8217;s almost a complement to the main event.  It&#8217;s about networking with our peers.  Most importantly, it&#8217;s about revitalization.  My annual pilgrimage to Portland replenishes my spirit.  I return refreshed and full of creative energy.  The trick is maintaining the momentum.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-wrap-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O&#8217;Reilly, the New Gartner</title>
		<link>http://sirhc.us/oreilly-the-new-gartner/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oreilly-the-new-gartner</link>
		<comments>http://sirhc.us/oreilly-the-new-gartner/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 21:54:43 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[O'Reilly]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=308</guid>
		<description><![CDATA[While hanging around the O&#8217;Reilly booth during the Open Source Conference last week, I picked up a coupon for 30% off the cost of Open Source in the Enterprise. I thought, great, maybe I&#8217;ll shell out a few bucks to see what this is all about. I didn&#8217;t see that $399 price tag on a [...]]]></description>
				<content:encoded><![CDATA[<p>While hanging around the O&#8217;Reilly booth during the <a href="http://www.conferences.oreilly.com/oscon/">Open Source Conference</a> last week, I picked up a coupon for 30% off the cost of <a href="http://radar.oreilly.com/research/os-enterprise-report.html">Open Source in the Enterprise</a>.  I thought, great, maybe I&#8217;ll shell out a few bucks to see what this is all about.  I didn&#8217;t see that $399 price tag on a PDF download coming.  Not only that, but apparently one can subscribe to <i><a href="http://radar.oreilly.com/r2/">Release 2.0</a></i> and receive a whole six issues for the low price of $495.</p>
<p>I suppose O&#8217;Reilly is targeting the same market as <a href="http://www.gartner.com/">Gartner</a>.  Companies willing to spend what, to an individual, is a lot of money to have experts tell them what to think.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oreilly-the-new-gartner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>San Diego Contention Society</title>
		<link>http://sirhc.us/san-diego-contention-society/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=san-diego-contention-society</link>
		<comments>http://sirhc.us/san-diego-contention-society/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 06:19:36 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[San Diego]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=300</guid>
		<description><![CDATA[Since May of this year, I have been a director-at-large of the San Diego Computer Society. I volunteered at the recommendation of a friend, who was retiring from an equivalent position on the board. At the time, I had no idea what I was getting into. The named officers&#8212;president, vice president, secretary, and treasurer&#8212;are all [...]]]></description>
				<content:encoded><![CDATA[<p>Since May of this year, I have been a director-at-large of the <a href="http://www.sdcs.org/">San Diego Computer Society</a>.  I volunteered at the recommendation of a friend, who was retiring from an equivalent position on the board.  At the time, I had no idea what I was getting into.</p>
<p>The named officers&mdash;president, vice president, secretary, and treasurer&mdash;are all members of the <a href="http://www.sdpcug.org/">San Diego PC Users Group</a>.  Four out of the five current directors, of which I am counted, are members of the <a href="http://www.kernel-panic.org/">Kernel Panic Linux User Group</a>.</p>
<p>This is the first time I&#8217;ve participated in a not-for-profit <a href="http://en.wikipedia.org/wiki/501(c)#501.28c.29.283.29">501(c)(3)</a> organization, so I don&#8217;t know how a typical group works.  This one is contentious.  I don&#8217;t know the motivation behind the typical volunteer board member of the San Diego Computer Society, but I now know that a cantankerous, argumentative disposition is a requirement for the job.  It&#8217;s impossible, it seems, to hold a discussion without a formal, lengthy, and largely unnecessary motion first being introduced, then argued about.  At one point during the board meeting last night, we were referred to as the San Diego Debate Society.  I can only hope that made it into the minutes.</p>
<p>One member delivered an emotionally heated monologue to his fellow members.  He was quite passionate, almost livid, in the belief that the organization is shrinking.  He insisted that it should be growing, and he wanted to do whatever it would take to bring more groups into the fold.  That got me thinking.  What in fact is the purpose of the San Diego Computer Society?</p>
<p>The best anyone could come up with in the way of services in return for dues paid were the provision of a meeting location for the so-called special interest groups (SIGs) and liability insurance for the same.  These days I would be surprised if a group couldn&#8217;t find a location to meet.  Many companies are willing to provide space to employees&#8217; groups, and free wifi is available at <a href="http://www.panerabread.com/">Panera Bread</a>&mdash;though it&#8217;s not a convenient location for presentations.  My experience with the modern technical user group has been informal gatherings instead of officially sanctioned events.  In these situations, what use is liability insurance?</p>
<p>If asked today, I couldn&#8217;t provide an answer to any of my queries.  I term as director lasts two years.  In that time, I hope to find those answers.</p>
<p>I recently oversaw the dissolution of a failed Web-based start up company.  We made the mistake of forming a board of directors.  This led to more bickering than actual work.  When we were launching our venture, I attempted to avoid the formation of a board, in favor of a more loosely organized company.  Unfortunately, we were left to learn our lessons the hard way.  Perhaps that&#8217;s just the way people are.  In my experience, any time more than one person is handed any amount of power in an organization, strife will inevitably follow.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/san-diego-contention-society/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: The Expo Floor</title>
		<link>http://sirhc.us/oscon-2008-the-expo-floor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-the-expo-floor</link>
		<comments>http://sirhc.us/oscon-2008-the-expo-floor/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 05:29:45 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=225</guid>
		<description><![CDATA[As with previous years, Wednesday and Thursday were highlighted with occasional trips to the expo hall. Not necessarily because we had any real desire to do so, but it was something to do. Exhibitor booths ranged from the large, flashy corporate sponsors, competing for prime real estate, to the Open Source projects and organizations, banished [...]]]></description>
				<content:encoded><![CDATA[<p>As with previous years, Wednesday and Thursday were highlighted with occasional trips to the expo hall.  Not necessarily because we had any real desire to do so, but it was something to do.  Exhibitor booths ranged from the large, flashy corporate sponsors, competing for prime real estate, to the Open Source projects and organizations, banished to obscurity in the far corners.  I&#8217;ll say this for conference organizers, though; they know how to get people into the expo hall: provide complimentary booze and snacks following the afternoon sessions.  Not that I spoke with any vendors while enjoying these niceties, but I was theoretically in a position to be accosted by the very same companies plying me with alcohol.</p>
<p><a href="http://flickr.com/photos/14933335@N00/2699204654/"><img src="http://farm4.static.flickr.com/3259/2699204654_63757ce564.jpg" /></a></p>
<p>Every conference I&#8217;ve attended&mdash;though that hasn&#8217;t been many&mdash;have used the same gimmick in an attempt to get people to visit vendors.  Each <s>mark</s>attendee is given a &#8220;passport&#8221; with a number of vendors listed.  The goal is to visit each of them and receive a sticker for the effort.  The reward is entry into a contest, the odds of winning being proportional to the number of people who fall for the scam.  I always start out collecting stickers, but quickly realize why I&#8217;ve never gotten as far as entering the contest.  I really hate talking to salespeople.  I&#8217;m not interested in any of the products being pitched and, even if I were, there&#8217;s nothing they can&#8217;t tell me that I can&#8217;t discover for myself on the Web.  At one point, I&#8217;m pretty sure Eric S. Raymond even tried to hand me a flyer&mdash;I&#8217;m unsure if it was about Free Software or <a href="http://www.catb.org/~esr/writings/sextips/intro.html">sex</a>&mdash;but I politely declined and went on my way.</p>
<p>I was pleased to run into Alyson at the Ticketmaster booth.  We met at <a href="http://www.socallinuxexpo.org/scale6x/">SCALE6x</a> in February, where she was again working the Ticketmaster booth, but also assisting us with the Perl Mongers booth.  It was good to catch up with her.  I was sure to tell her how much I admire what she does for the <a href="http://losangeles.pm.org/">Los Angeles Perl Mongers</a> and how I wish we had someone like her in <a href="http://sandiego.pm.org/">San Diego</a>.</p>
<p>Sun actually had a nice booth this year.  They provided a place to relax, snacks, and a wifi network with a hidden ESSID for people fed up with the one provided by the conference.  I didn&#8217;t spend much time there, but I did take advantage of the wifi as I lounged in the O&#8217;Reilly booth.</p>
<p>Amazon was running what I found to be an interesting gimmick in their booth.  &#8220;Ninja&#8221; code.  It was just a bit of self-modifying Perl written out on some poster board.  Tell them what it did and get entered into a raffle.  It was actually a fairly clever way of advertising for talent to hire.  Heck, it got me coming back to the booth a few times, if only to make fun of it.  I did spot some <a href="http://sirhc.us/journal/2008/07/23/ninja-code/">potential improvements</a>.</p>
<p>Intel&#8217;s gimmick this year was actually kind of interesting.  Everyone who visited their booth could receive a sticker with a number on it to wear.  The goal then is to find the person wearing the matching number.  People would post a phone number or Twitter handle on a cork board at the Intel booth for others to find.  I posted my Twitter information but unfortunately my default view only includes friends, not replies.  That, and the ever present <a href="http://en.wikipedia.org/wiki/Twitter#Fail_Whale">fail whale</a> made me miss my partner&#8217;s tweet.  Mere minutes after the raffle on Wednesday, as I was getting ready to throw away my sticker, I hear Jonathan call out to me that he&#8217;s found my partner.  As it turns out, there would be another drawing on Thursday, so we went ahead and entered.  That led to an extremely annoying sales pitch.  He wanted us to tell him about <a href="http://sirhc.us/journal/2008/07/23/oscon-2008-moblinorg/">Moblin</a>.  Just to spite him, I told him about <a href="http://www.qctconnect.com/products/snapdragon.html">Snapdragon</a> instead.  What do I keep telling myself?  Stupid gimmick contests aren&#8217;t worth it.  What I did like about it was the social aspect.  I met someone new, had a pleasant conversation, and he&#8217;s now following me on Twitter.</p>
<p>On Thursday at the O&#8217;Reilly booth, <a href="http://www.canspice.org/">Brad</a> was interviewed on camera by <a href="http://www.wgz.org/chromatic/">chromatic</a>.  I expressed my desire to see it play during a keynote, but that wasn&#8217;t meant to be.  Brad uses Perl to do cool things with <a href="http://www.jach.hawaii.edu/">telescopes</a> and munge astronomical data, which is of interest to the O&#8217;Reilly editors.  He&#8217;s been asked to write an article about it, and I&#8217;m trying to convince him to give a talk at next year&#8217;s Open Source Conference.</p>
<p>[tags]oscon, oscon08, oscon2008[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-the-expo-floor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: The Twilight Perl</title>
		<link>http://sirhc.us/oscon-2008-the-twilight-perl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-the-twilight-perl</link>
		<comments>http://sirhc.us/oscon-2008-the-twilight-perl/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 19:22:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Damian Conway]]></category>
		<category><![CDATA[ocon2008]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=277</guid>
		<description><![CDATA[It&#8217;s the last session of the conference, and I saw Damian Conway&#8217;s name on the schedule. So here I am, attending The Twilight Perl. I have no idea what to expect, but come on, it&#8217;s Damian. It&#8217;s got to be good. Based on past experience, this is likely to be a fast-paced, highly-entertaining talk. One [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s the last session of the conference, and I saw Damian Conway&#8217;s name on the schedule.  So here I am, attending <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2438">The Twilight Perl</a>.  I have no idea what to expect, but come on, it&#8217;s Damian.  It&#8217;s got to be good.</p>
<p>Based on past experience, this is likely to be a fast-paced, highly-entertaining talk.  One which will be impossible to summarize, or no doubt even to explain, here.  Needless to say, if you&#8217;re not here, you&#8217;re missing out.  I intend to sit back, relax, and enjoy.</p>
<p>He&#8217;s talking about the defining characteristic of a hacker.  Particularly when they&#8217;re told that something is impossible and can&#8217;t be done.  The reaction is typically, &#8220;you wanna bet?&#8221;</p>
<p>He just presented a slide that read, &#8220;Let&#8217;s leave behind the shackles of sanity&#8230;&#8221;</p>
<p>Now I&#8217;m scared.</p>
<p>This is a great talk.  It&#8217;s a series of examples of things &#8220;you can&#8217;t do in Perl.&#8221;  At least, not until Damian shows us how.</p>
<p>I think Brad may have <a href="http://www.canspice.org/2008/07/25/oscon-2008-the-twilight-perl-by-damian-conway/">taken notes</a>.  Which is good, because now I wish I had.</p>
<p>[tags]oscon, oscon08, ocon2008, Perl, Damian Conway[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-the-twilight-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Perl and Parrot</title>
		<link>http://sirhc.us/oscon-2008-perl-and-parrot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-perl-and-parrot</link>
		<comments>http://sirhc.us/oscon-2008-perl-and-parrot/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 18:22:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[myths]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Tim Bunce]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=276</guid>
		<description><![CDATA[It&#8217;s the first session on Friday and I&#8217;m in Perl and Parrot: Baseless Myths and Startling Realities with Tim Bunce. As people were filtering in from the break, Tim displayed one of my favorite xkcd comics for us to enjoy. There are so many holy wars debates about whether one language is better than another. [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s the first session on Friday and I&#8217;m in <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3242">Perl and Parrot: Baseless Myths and Startling Realities</a> with Tim Bunce.  As people were filtering in from the break, Tim displayed one of my favorite <a href="http://xkcd.com/224/">xkcd comics</a> for us to enjoy.</p>
<p>There are so many <s>holy wars</s> debates about whether one language is better than another.  Instead, the right question to ask is whether or not the developer&#8217;s skill set is right for the job.  I agree.  When I look for a developer, I&#8217;m more concerned with how they think than in what language they think.</p>
<p>Unfortunately, Tim is preaching to the converted in this talk.  Nearly the entire attendance already uses Perl and don&#8217;t believe the myths.  With that, let&#8217;s conquer them anyway.</p>
<p><b>Perl is Dead</b></p>
<p>No it isn&#8217;t.  It&#8217;s two decades old and still growing strong.  The books aren&#8217;t flying off the presses with great speed because the Perl community already has excellent books.</p>
<p>The trend when searching for &#8220;web development&#8221; jobs shows Perl growing very slowly in relation to other languages, particularly PHP.  However, searching for &#8220;developer&#8221; jobs shows Perl growing very strongly and holding its own extremely well.</p>
<p>As a lurking member of the Perl community and an active member of my <a href="http://sandiego.pm.org/">local Perl Mongers group</a>, it&#8217;s been my experience that Perl programmers tend to be quite happy with their jobs.  Which, unfortunately, has made it very difficult for me to find talent.</p>
<p>In fact, Perl is growing faster than ever.  A simple look at how much work is going into CPAN will show that.  The community is strong and Perl is everywhere.</p>
<p><b>Perl Is Hard to Read / Test / Maintain</b></p>
<p>Only if you&#8217;re doing it wrongly.  We have <a href="http://oreilly.com/catalog/9780596001735/">Perl Best Practices</a>, to use as the default documentation for coding standards, leaving developers with the need to only document when they deviate from the norm.  There&#8217;s <a href="http://search.cpan.org/dist/Perl-Tidy/">Perl::Tidy</a>, to force any Perl code into one&#8217;s own personal style.  <a href="http://search.cpan.org/dist/Perl-Critic/">Perl::Critic</a> for ensuring that code is being well-written and follows best practices.  And there&#8217;s no end to the Test::* modules and the work being done to make testing easy.  There&#8217;s even a <a href="http://search.cpan.org/dist/Devel-Cover/">coverage analysis tool</a>.</p>
<p><b>Perl 6 is Killing Perl 5</b></p>
<p>In fact, Perl 6 saved Perl 5, but one has to be close to the center of the community to see that.  One should notice that Perl 5.8 and 5.10 have both been released in the time that Perl 6 has been in development.</p>
<p>There is a culture of testing around Perl.  So many tests have been written for Perl 6, and the language is being defined by its test suite.  This culture has leaked out to the community.  In fact, I find there now exists a lot of peer pressure in the community to do proper testing.</p>
<p><b>Perl 6 Is Not Perl</b></p>
<p>Yes, and no.  Unfortunately, I was so busy trying to catch up with the last section that I missed most of the points Tim made.  In the end, I feel that this is fine.  If Perl 6 was supposed to be Perl 5, why not just use the perfectly decent, already existing Perl 5?  Which is still being actively developed.</p>
<p><b>Perl 6 Will Never Be Ready</b></p>
<p>It&#8217;s not on a schedule and, if it were on a schedule, it would be crap.  It will be ready when it&#8217;s ready.  Better to do it right than screw it up.  The development model encourages a lot of experimentation, and it&#8217;s difficult to schedule experimentation.</p>
<p><b>There&#8217;s No Perl 6 Code</b></p>
<p>Sure there is.  Thousands of lines of Perl 6 code exist in the test suite that came about from Pugs.  These very same tests are being used in Perl 6 development today in the form of Rakudo, Perl 6 on Parrot.</p>
<p>The important thing to note is that Perl 6 refers to a specification.  It does not refer to a particular implementation.  Any implementation that passes the test suite may call itself Perl 6.</p>
<p>From an authority in the audience (who I don&#8217;t recognize, unfortunately), we have been told that there will be a useable Perl 6 by this Christmas.  A round of applause ensued.</p>
<p>[tags]oscon, oscon08, oscon2008, Perl, Tim Bunce, myths[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-perl-and-parrot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Friday Morning Keynotes</title>
		<link>http://sirhc.us/oscon-2008-friday-morning-keynotes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-friday-morning-keynotes</link>
		<comments>http://sirhc.us/oscon-2008-friday-morning-keynotes/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 17:18:08 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=271</guid>
		<description><![CDATA[The Friday morning keynotes opened with a video demonstration of the capabilities of Blender. Apparently, it renders scenes using crappy 80s computer-generated music. It&#8217;s no Wall-E, but it&#8217;s quite pretty. First up this morning Allison introduced Benjamin Mako Hill of the MIT Center for Future Civic Media. He will be speaking about Advocating Software Freedom [...]]]></description>
				<content:encoded><![CDATA[<p>The Friday morning keynotes opened with a video demonstration of the capabilities of <a href="http://www.blender.org/">Blender</a>.  Apparently, it renders scenes using crappy 80s computer-generated music.  It&#8217;s no <a href="http://en.wikipedia.org/wiki/WALL-E">Wall-E</a>, but it&#8217;s quite pretty.</p>
<p>First up this morning Allison introduced Benjamin Mako Hill of the MIT Center for Future Civic Media.  He will be speaking about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4449">Advocating Software Freedom by Revealing Errors</a>.  He seems to be far too highly caffeinated for the room this morning, and is speaking very quickly, and the sound system is too loud, so I don&#8217;t entirely know what&#8217;s going on.</p>
<p>The gist of the talk is that, when errors become visible to the user, it exposes something about the underlying technology.  He&#8217;s provided several obvious examples of ATMs crashing with Windows errors.  He runs the <a href="http://revealingerrors.com/">Revealing Errors Blog</a>, too.</p>
<p>Next up is Dawn Nafus of Intel, speaking about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4546">Three Challenges</a>.  Unlike most speakers at OSCON, she is an anthropologist.  There is a notion, particularly in the mobile devices industry, is that adding more and more data is equivalent to adding context.  This is phenomenally untrue.  Data without context is, more often than not, useless.</p>
<p>Her second challenge is the global food crisis in food and water, particularly in the developing world.  We Open Source folks are quite good at decentralizing power, just look at how so many of our projects are organized.  Technology is fast going mobile, and as these devices become cheaper, they are more easily put into the hands of people in the Third World.  There are many applications for this technology, we just need to be creative about how we go about taking advantage of this proliferation in technology.</p>
<p>The third challenge is to strengthen global growth in technology producers, not just consumers.  We must better understand where growth is coming from.</p>
<p>Annoyingly, we have another speaker from Microsoft this year, Sam Ramji.  He&#8217;s, apparently, here to tell us about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4779">Open Source Heroes</a>.  He&#8217;s telling us about platform trends, something we already know about.  There&#8217;s some slide about applications moving into Internet moving into Web applications over the time frame 1995 through 2005.</p>
<p>Microsoft sees Open Source growing strong over the next decade, but it&#8217;s hard to take him seriously, given the company&#8217;s history.  While he&#8217;s talking about Microsoft&#8217;s contributions to Open Source projects and the work they&#8217;ve done to improve their ability to work on Windows, I&#8217;m constantly on edge around Microsoft, wondering what they really have planned.  In fact, I may have just answered my own question.  Improving the use on Windows, thus attempting to ensure the continual use of Windows.  They&#8217;re desperate to hold on to the market share they&#8217;ve so deceitfully gained.</p>
<p>This talk can be summed up as, Hey look, we&#8217;re not evil, look at this boringly enumerated list of Open Source stuff we&#8217;ve done.</p>
<p>He&#8217;s announced that Microsoft has become a &#8220;platinum&#8221; sponsor of the Apache Software Foundation.  That doesn&#8217;t sound good to me.  Do people forget the embrace-extend-extinguish history of the company?  Should we really trust them so much?</p>
<p>Next up, refreshingly, is <a href="http://youtube.com/watch?v=9BAJYCKex1M">Tim Bray</a> of Sun Microsystems, speaking to us about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4317">Language Inflection Point</a>.  There&#8217;s background music, and he&#8217;s speaking very quickly.  He&#8217;s going over slides demonstrating various ways of measuring the popularity of programming languages.  From search engines to book sales.</p>
<p>He took a survey of the room.  A show of hands for who is using various languages and if we would still use it in an ideal world.  Python and Ruby were the only two languages with a positive delta, more people raised their hands to show that they&#8217;d use it in an ideal world than those who currently use it.</p>
<p>From there, he launched into a discussion of each language and their benefits and drawback as he sees them.  Obviously subjective, but they&#8217;re not entirely bad points.  He never got to Perl, so I&#8217;m a bit disappointed.</p>
<p>Finally, we have Jeremy Ruston of BT Design, who created <a href="http://www.tiddlywiki.com/">TiddlyWiki</a>.  He&#8217;s here to tell us about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4780">Learning from Airports</a>.</p>
<p>At airports today, the actual actions of taking off and landing is more a side-show.  There are more shops and things like security lines (and waiting), and the actual arrivals and departures are a very short part of anyone&#8217;s visit.</p>
<p>Airports do serve as an excellent analogy for technology standards.  Single sign-on: passports.  Access tokens: boarding passes. Standard documentation: universal signage.</p>
<p>The keynotes wrapped up with a question and answer session with each of the morning&#8217;s speakers.  The first question, unsurprisingly, was about patents, and what will it take for Microsoft to commit to not using patents against Open Source.  The speaker claims that developers should never have to worry about it, but it was unconvincing.</p>
<p>Unsurprisingly, the majority of the questions were directed to the Microsoft representative.  They ranged from (and I&#8217;m paraphrasing), why Microsoft is evil and patent bashing thinly veiled as questions.  Unfortunately, the presence of the Microsoft <s>shill</s> speaker on stage led to a completely wasted question and answer session.</p>
<p>But now it&#8217;s break time, so I&#8217;m off in search of more coffee.  OSCON starts way too early in the morning.</p>
<p>[tags]oscon, oscon08, oscon2008[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-friday-morning-keynotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008, Day 5</title>
		<link>http://sirhc.us/oscon-2008-day-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-day-5</link>
		<comments>http://sirhc.us/oscon-2008-day-5/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 15:06:39 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=269</guid>
		<description><![CDATA[Friday morning, and I&#8217;m sad the week is over. However, I&#8217;m a bit happy, as well. In shortly over 24 hours, I&#8217;ll be home. I love attending OSCON, but it takes its toll. For example, one of the things that makes getting to breakfast difficult is all the free beer available to us. One might [...]]]></description>
				<content:encoded><![CDATA[<p>Friday morning, and I&#8217;m sad the week is over.  However, I&#8217;m a bit happy, as well.  In shortly over 24 hours, I&#8217;ll be home.  I love attending OSCON, but it takes its toll.  For example, one of the things that makes getting to breakfast difficult is all the free beer available to us.  One might ask, Why not just avoid partaking of the local nectars and get a good night&#8217;s sleep instead.  To that I say, Are you crazy?  There&#8217;s beer!  And it&#8217;s free!  As in beer!</p>
<p>SourceForge held a couple of parties for us last night.  One was at the <a href="http://www.jupiterhotel.com/">Jupiter Hotel</a> and the other, branded BeerForge, was at a party venue down the block from the hotel.  Obviously, we attended both&mdash;twice.</p>
<p>Josh and I started out at BeerForge.  After a while we got hungry and found Brad, Alice, and Sam over at the SourceForge awards party.  As things got too crowded, we all went over to BeerForge.  As the venue grew too hot and loud, we ended up back at the SourceForge location, where we could be outside at least.  After that venue closed down, Josh and I went back to my hotel room to polish off a growler&mdash;a half gallon&mdash;of beer I had picked up at Rogue the night before.</p>
<p>I&#8217;m now at breakfast, after a whole four hours of sleep, and extremely thankful for the coffee, fruit, and pastries that have been laid out for us.  The fresh air and the walk to the convention center helped, too.  This week&#8217;s festivities make me almost want to take a pass on the <a href="http://www.oregonbrewfest.com/">Oregon Brewers Festival</a>.  I said, almost.</p>
<p>Fortunately, there are only two sessions today, leaving me with only two decisions to make.  However, after a more careful review of the schedule, the choices seem obvious.</p>
<p>First, Tim Bunce is giving a talk on <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3242">Perl and Parrot: Baseless Myths and Startling Realities</a>.  I&#8217;m not as enthusiastic about Perl 6 as I once was, but I quite enjoy Tim&#8217;s sessions.  Following Tim, in the same room, is Damian Conway.  He&#8217;ll be presenting&mdash;oh, does it even matter?</p>
<p>I will be faced with a bit of a dilemma tonight.  My flight home is scheduled for 6:40am tomorrow morning.  However, the <a href="http://trimet.org/max/">MAX</a> light rail ends its service at midnight and doesn&#8217;t resume until 4:30am.  Several years ago this may have been acceptable, but not in the airports of today.  So my options are to get a couple hours of sleep followed by calling a town car, or check out of the hotel tonight and make my way to the airport before the MAX service terminates for the night.  Quite honestly, arriving at the airport six and a half hours early is still shorter than some of the layovers I&#8217;ve had.</p>
<p>Well, I&#8217;m going to finish my breakfast and tag some <a href="http://flickr.com/photos/14933335@N00/">photos</a>.  In just under an hour, the final day of keynotes&mdash;and thus of OSCON&mdash;get started.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-day-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: State of the Onion</title>
		<link>http://sirhc.us/oscon-2008-state-of-the-onion/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-state-of-the-onion</link>
		<comments>http://sirhc.us/oscon-2008-state-of-the-onion/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 02:07:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Larry Wall]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[State of the Onion]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=264</guid>
		<description><![CDATA[It&#8217;s finally time for the State of the Onion. Larry Wall introduced this year&#8217;s theme, Rules That Are Meant to be Broken. If he had Perl to do all over again, what would he do different? Only two things, nothing, and everything. Perl 6 is the everything part of the answer. In Perl 5, one [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s finally time for the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4871">State of the Onion</a>.  Larry Wall introduced this year&#8217;s theme, <i>Rules That Are Meant to be Broken</i>.</p>
<p>If he had Perl to do all over again, what would he do different?  Only two things, nothing, and everything.  Perl 6 is the everything part of the answer.</p>
<p>In Perl 5, one of the problems that creeps up is that regular expressions (regexes) are strings.  The best example of this is variable interpolation in regexes.  In Perl 6, this has been fixed.  They are now their own language.</p>
<p>Like cargo-cult programming, parsing has turned into its own cargo-cult.  Perl 6 breaks the mold when it comes to copying languages (the old lex/yacc loop), and instead uses polymorphism in its sub-language design.</p>
<p>Both regexes, double quoted strings, and single quoted strings are examples of sub-languages in Perl 6.  Each of these sub-languages has its own parsing rules and therefore parsing implementations.  This allows is code reuse.  Parsers can derive behavior from other parsers, but treat the tokens differently as necessary.</p>
<p>Fundamentally, Perl 6 is very simple.  It has no <code>CORE</code>.  It has no built-ins and no operators.  What Perl 6 has given us (will give us?), in effect, is a just in time lexer.  Tokens and their behavior can be defined on the fly, on a per-sub-language basis.</p>
<p>There are quite a few changes to the regularity of regular expressions.  Mostly what this means is that Perl 6 regexes are incompatible with those used in Perl 5, and that Perl-compatible regular expressions (PCRE) aren&#8217;t (or won&#8217;t be).</p>
<p>All languages tend to fall into the One True Syntax trap.  Perl 6 has aimed to break out of that trap.  By giving the user enough power over the syntax (rope) to design the language that suits them (hang themselves).</p>
<p>I didn&#8217;t enjoy the State of the Onion as much as I have in the past.  I suppose that&#8217;s to be expected.  Larry did warn us at the top of the talk that it would be serious and contain only a single joke.  For as great a writer as Larry is, his ability as a public speaker is lacking.  That&#8217;s okay, though.  I&#8217;d rather he not shift focus away from the design and development of Perl.</p>
<p>[tags]oscon, oscon08, oscon2008, Perl, State of the Onion, Larry Wall[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-state-of-the-onion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Perl Lightning Talks</title>
		<link>http://sirhc.us/oscon-2008-perl-lightning-talks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-perl-lightning-talks</link>
		<comments>http://sirhc.us/oscon-2008-perl-lightning-talks/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 01:03:22 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Lightning Talks]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=261</guid>
		<description><![CDATA[It&#8217;s 4:30pm on Thursday and that means it&#8217;s time for the Perl Lightning Talks. The crowd is excitedly gathering, but there are still plenty of seats as I write this. Sorry guys, these are five minute talks. If I start summarizing, I&#8217;ll fall way behind. You&#8217;re lucky I even take the time to write this. [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s 4:30pm on Thursday and that means it&#8217;s time for the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2501">Perl Lightning Talks</a>.  The crowd is excitedly gathering, but there are still plenty of seats as I write this.</p>
<p>Sorry guys, these are five minute talks.  If I start summarizing, I&#8217;ll fall way behind.  You&#8217;re lucky I even take the time to write this.</p>
<p>If you really want to know what&#8217;s going on, there&#8217;s a <a href="http://www.justanotherperlhacker.org/lightning/2008oscon.shtml">schedule</a>.</p>
<p>For those of you still reading, here&#8217;s a bit of stream-of-consciousness for you.  Note, if trying to match these up to the schedule, they are in order, but I didn&#8217;t comment on all of them.</p>
<hr />
<p><a href="http://pgfoundry.org/projects/pgtap/">Testing databases with TAP</a> is cool.  You really can test anything with it.</p>
<hr />
<p>Nice to see The Perl Foundation get some slots in Google&#8217;s Summer of Code this year.</p>
<hr />
<p>It&#8217;s interesting to see how much Perl is used to compile USA Today every day.  Without Perl, it would be a very empty paper.  Though I&#8217;m not convinced the content would be much different.</p>
<hr />
<p>Schwern tells us that, in thirty years, time will wrap.</p>
<pre>
$time = 2**31 - 1;
print scalar gmtime $time;

<i>Tue Jan 19 03:14:07 2038</i>

$time = 2**31;
print scalar gmtime $time;

<i>Fri Dec 13 20:45:52 1901</i>
</pre>
<p>Wait, that&#8217;s not good.  But he&#8217;s fixed it.</p>
<hr />
<p>Sweet, <a href="http://code.google.com/p/perl-appengine/">Perl on Google App Engine</a>!</p>
<hr />
<p>Use <a href="http://search.cpan.org/dist/autodie/">autodie</a> instead of <a href="http://perldoc.perl.org/Fatal.html">Fatal</a>.  It&#8217;s better.</p>
<p>Also, <a href="http://use.perl.org/~pjf/">Paul Fenwick</a> is one of the best speakers I&#8217;ve seen in ages.  I hope he becomes an OSCON staple.</p>
<hr />
<p><i>F*ck, the F*cking thing is F*cked</i> had the best slides.</p>
<p><a href="http://ipv6experiment.com/">IPv6Experiment.com</a> (warning: there may be porn).</p>
<p>[tags]oscon, oscon08, oscon2008, Perl, lightning talks[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-perl-lightning-talks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Hacking Wetware for Fun and Profit</title>
		<link>http://sirhc.us/oscon-2008-hacking-wetware-for-fun-and-profit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-hacking-wetware-for-fun-and-profit</link>
		<comments>http://sirhc.us/oscon-2008-hacking-wetware-for-fun-and-profit/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 22:09:22 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=259</guid>
		<description><![CDATA[My second mid-afternoon session is Hacking Wetware for Fun and Profit with Paul Fenwick. Andy Lester introduced Paul, and basically said he was awesome and couldn&#8217;t figure out how it is he&#8217;s never been in this country to speak before. Paul&#8217;s preferred title for this talk is Human Interfaces for Geeks. Most geeks think of [...]]]></description>
				<content:encoded><![CDATA[<p>My second mid-afternoon session is <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3107">Hacking Wetware for Fun and Profit</a> with Paul Fenwick.  Andy Lester introduced Paul, and basically said he was awesome and couldn&#8217;t figure out how it is he&#8217;s never been in this country to speak before.</p>
<p>Paul&#8217;s preferred title for this talk is <i>Human Interfaces for Geeks</i>.  Most geeks think of things like keyboards, mice, and monitors when it comes to interfaces.  But that&#8217;s not what this is about.  Those are human-computer interfaces.  We&#8217;re here to talk about human interfaces.  Things like aural or visual communication.</p>
<p>Geeks can be quite awkward when it comes to interfacing with other people.</p>
<p>There are normal people out there who do make sense to geeks do make a lot of sense to geeks, <a href="http://thesims.ea.com/">Sims</a>.  They have wants, fears, and needs.  These are easy to see, because they have status bars.  Unfortunately, real people don&#8217;t have status bars.</p>
<p>One thing learned from the sims, if you want something done, ask a happy person to do it.  They will be far more willing to do it and will end up being far more helpful.  How do you make people happy?  Coffee and chocolate will go a long way towards making people happy and giving a higher priority to your requests.</p>
<p>Even without this kind of base bribery, we can make people happy.  By matching one of their goals to one of our needs.  Humans, when they&#8217;re instantiated, have a set of default goals, and no one ever changes these.  One of the best goals for this is a feeling of importance.  How can you make someone feel important?  Talk about them.</p>
<p>It&#8217;s easy to talk about someone.  Practice active listening.  Essentially, be an Eliza bot.  Listen to what someone is saying, then repeat it back to them in the form of a question.  If they&#8217;ve been on vacation, ask them about it.  If they&#8217;ve accomplished something, ask them about it.  This makes people very happy.</p>
<p>Another way to make someone happy is to make them feel important in front of their peers.  If someone submits a patch, recognize that in front of the community.  I did this once (because I&#8217;ve only ever received one patch for my one and only <a href="http://search.cpan.org/dist/String-MkPasswd/">CPAN module</a>).  Someone from Australia submitted a patch and I put his name in the Changes file.  I know I feel amazingly good when I&#8217;ve done a good job, so I do my best to point out when people have done a good job.</p>
<p>People, particularly in the United States, tend to look at situations in an adversarial way.  When someone wants something and someone else is standing in their way, he will want to force his way past.  This is rarely an effective method.  Instead, those standing in the way are people, too.  The best method is to take action to make that other person feel good about themselves.  When they are happy and feel good about themselves, they are far more likely to go out of their way to help.</p>
<p>This was a good talk.  Geeks rarely read books aimed at management types.  A lot of these books place a lot emphasis on the concept of win-win and interpersonal communication.  It&#8217;s nice to see a geek taking these lessons and putting them into terms other geeks can understand.  We definitely need more geeks with people skills.</p>
<p>[tags]oscon, oscon08, oscon2008, people[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-hacking-wetware-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Ultimate Perl Code Profiling</title>
		<link>http://sirhc.us/oscon-2008-ultimate-perl-code-profiling/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-ultimate-perl-code-profiling</link>
		<comments>http://sirhc.us/oscon-2008-ultimate-perl-code-profiling/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 21:35:14 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=256</guid>
		<description><![CDATA[Lunch is over and I&#8217;m here to listen to Tim Bunce talk about Ultimate Perl Code Profiling with Devel::NYTProf. The Devel::DProf module is old and a waste of time and is broken. Stop using it. Take it out and shoot it. The first obvious distinction between profilers is CPU time versus real time. CPU time [...]]]></description>
				<content:encoded><![CDATA[<p>Lunch is over and I&#8217;m here to listen to Tim Bunce talk about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2960">Ultimate Perl Code Profiling</a> with <a href="http://search.cpan.org/Devel-NYTProf/">Devel::NYTProf</a>.</p>
<p>The <a href="http://serch.cpan.org/Devel-DProf/">Devel::DProf</a> module is old and a waste of time and is broken.  Stop using it.  Take it out and shoot it.</p>
<p>The first obvious distinction between profilers is CPU time versus real time.  CPU time tends to be highly granular, but doesn&#8217;t include I/O, context switching, or other kinds of blocking.  That&#8217;s where real time comes in.  It&#8217;s far more useful in the real world.</p>
<p>Tim, as with many of us, is interested in line-based profiling.  It provides a high level of granularity  The total subroutine time is not always useful, particularly in larger subroutines.</p>
<p>The NYTProf module is exremely fast, discounting the time taken by profiling overhead, making it quite a bit more useful for real world analysis.  It also allows profile times per block, and can be aggregated up to the subroutine level.  It&#8217;s a module with dual profilers: line-based and subroutine-based.</p>
<p>It gets better, every location that calls the subroutine keeps separate track of the subroutine time.  This allows us to determine where the majority of the subroutine calls are coming from.  For control flow statements, the decision expression is not taken into account when profiling the block that is executed.  This is useful if the loop control itself takes time that should be discounted.</p>
<p>And that&#8217;s it for the description.  Now we have half an hour to play with it.</p>
<p>The HTML-based reporting is inspired by <a href="http://search.cpan.org/dist/">Devel::Cover</a>&#8216;s reporting.  Reported for each file are the number of statements executed, the time spent in the source file and the line, block, and subroutine reports.  The subroutine reports include the amount of time spent within the subroutine and the amount of time spent in other called subroutines.  The coloring of each line of the report&mdash;red, orange, yellow, and green&mdash;give a relative measure of deviation from the norm.  Very impressive.</p>
<p>Even more impressive, Devel::NYTProf is capable of reporting exactly what a subroutine reference is called, even when it&#8217;s an anonymous subroutine compiled within an <code>eval</code>.  With a handy link also provided, the called code can be easily inspected.</p>
<p>In summary, Devel::NYTProf is awesome.  Use it.  I know I will.</p>
<p>Tim Bunce is even more impressive than most people think he is.  He is the only presenter I&#8217;ve seen so far who has managed to use IRC while giving his talk.  Well, he didn&#8217;t actually type on IRC, but he had Colloquy running in the background.  This particular IRC client uses Apple&#8217;s Growl feature to display notifications when you are mentioned in a channel.  After he&#8217;s opened up the session to questions, one of those notifications pops up on the projected display:</p>
<blockquote><p>
&lt;sirhc&gt; Adam Kennedy (to Tim Bunce): Why are you so awesome?
</p></blockquote>
<p>It got a laugh, and Tim seemed to take it all in stride, even joking that he was not looking very professional on his screen cast.  Important safety tip for session presenters, don&#8217;t leave your IRC client open.</p>
<p>[tags]oscon, oscon08, oscon2008, Perl, programming, profiling[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-ultimate-perl-code-profiling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Perl for Political Campaigns</title>
		<link>http://sirhc.us/oscon-2008-perl-for-political-campaigns/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-perl-for-political-campaigns</link>
		<comments>http://sirhc.us/oscon-2008-perl-for-political-campaigns/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 21:12:35 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=254</guid>
		<description><![CDATA[There was nothing interesting for me scheduled for the second session today, so I ended up in Perl for Political Campaigns, presented by Chris &#8220;Pudge&#8221; Nandor. I&#8217;m not entirely sure why I&#8217;m here, but it likely has something to do with Perl in the title and Pudge as the presenter. I must be in the [...]]]></description>
				<content:encoded><![CDATA[<p>There was nothing interesting for me scheduled for the second session today, so I ended up in <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2655">Perl for Political Campaigns</a>, presented by Chris &#8220;Pudge&#8221; Nandor.  I&#8217;m not entirely sure why I&#8217;m here, but it likely has something to do with Perl in the title and Pudge as the presenter.  I must be in the right place, though.  Both Damian Conway and Adam Kennedy are present.</p>
<p>Pudge is, quite famously, a Republican, so he wants poor people to die, he asserts his right to shoot people who jaywalk, and he hates puppies.  Now that we have that out of the way, this will not be a political talk.  Instead, it will be a talk that just happens to use politics as the problem domain for which Perl was the solution (but isn&#8217;t it always?).  Pudge happens to volunteer for the Republican party in Snohomish county, Washington.  I actually know the area fairly well, as my grandmother happens to live there.</p>
<p>Winning elections is all about knowledge.  And blackmail.  But, mostly knowledge.</p>
<p>This session is essentially about data mining.  There are a number of disparate data sources available with information about voters.  From registration and voting history to contact information and preferences&mdash;can or can they not be contacted.  This data is not always easy to access.  For example, there is something called the Voter Vault, which is a super secret database of voter information controlled by the Republican party (there&#8217;s an NDA involved, so we won&#8217;t see any of it).</p>
<p>Essentially, Voter Vault is a really crummy Web application that only works for IE (hence the crummy part).  That&#8217;s where <a href="http://search.cpan.org/dist/WWW-Mechanize/">WWW::Mechanize</a> comes in.  Using this brilliant module, data on any Web site can be retrieved, even if it requires a certain amount of user interaction to access.  This, along with other sites, like the Washington State Public Disclosure Commission, provide all the raw data Pudge needs.</p>
<p>However, raw data is, by itself, not useful to anyone.  This is the reason behind Pudge&#8217;s efforts.  He uses Perl (and some JavaScript) to collect and aggregate all of this data.  Then, once it&#8217;s all compiled, he can use a bit of Perl glue to use the data in Apple&#8217;s Address Book and Mail applications.  But, more importantly, he can visualize it.</p>
<p>For the visualization, Pudge uses everyone&#8217;s favorite new tool, Google Maps.  Using the Ajax API provided by Google, he can embed a map in his own Web application and, next to it, provide controls to enable and disable different views of the data on the map.  For example, candidate donations by city and how much each candidate received.</p>
<p>It gets better.  With the Google Earth APIs available to Google Maps, KML files can be generated (again, with Perl) to provide even better data visualizations.  For example, precinct boundaries can be imported and colored based on voting history.</p>
<p>Initially, I wasn&#8217;t sure how I&#8217;d feel about this talk, but I ended up enjoying it.  It was an excellent presentation on how to take data and display it to users in a useful manner.</p>
<p>[tags]oscon, oscon08, oscon2008, Perl, politics, visualization[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-perl-for-political-campaigns/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Stick a fork() in It</title>
		<link>http://sirhc.us/oscon-2008-stick-a-fork-in-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-stick-a-fork-in-it</link>
		<comments>http://sirhc.us/oscon-2008-stick-a-fork-in-it/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 18:45:32 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=251</guid>
		<description><![CDATA[First session of the day and I&#8217;m in room F150 (brought to you by Ford). The F wing, bereft of wifi. I&#8217;m here for Stick a fork() in It: Parallel and Distributed Perl with Eric Wilhelm of Scratch Computing. It&#8217;s great to see how popular Perl still is. It&#8217;s standing room only in here. A [...]]]></description>
				<content:encoded><![CDATA[<p>First session of the day and I&#8217;m in room F150 (brought to you by Ford).  The F wing, bereft of wifi.  I&#8217;m here for <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2748">Stick a fork() in It: Parallel and Distributed Perl</a> with Eric Wilhelm of <a href="http://scratchcomputing.com/">Scratch Computing</a>.  It&#8217;s great to see how popular Perl still is.  It&#8217;s standing room only in here.</p>
<p>A computer once referred to a human worker who would perform calculations.  This was a fairly easy thing to cluster and &#8220;run&#8221; several computers in parallel.  As time progressed, more and faster work was desired.  Enter the electronic computer, and specifically for this talk, the Cray.  As with anything, the inner workings of the Crays of old can be recreated in Perl.  Just use the Cray module, no problem (if only it existed).</p>
<p>After the history lesson, we move into high level overviews of parallelism and pipelineing, and a note about <a href="http://en.wikipedia.org/wiki/Amdahl%27s_law">Amdahl&#8217;s Law</a>.  This was followed up with an example for detecting prime numbers by partitioning the work.</p>
<p>The slide presentation was over in under 20 minutes.  Instead, we&#8217;re jumping straight into code examples.  Awesome.</p>
<p>Or so I thought.  Unfortunately, he&#8217;s been interrupted by multiple people in the audience, who keep wanting to move off into tangential conversations.  Eric is having difficulty bringing the talk under his own control&mdash;it&#8217;s no longer his talk, but that of the somewhat rude fellow in the front row.  Neither is Eric as eloquent when he switches from a prepared talk to demonstrating and explaining real code.  It&#8217;s become far more difficult to pay attention to this session, and I find myself looking at the clock to see how much time we have until the next session.</p>
<p>For real fun, be sure to check out <a href="http://www.canspice.org/">Brad&#8217;s</a> post on Schwern&#8217;s session about <a href="http://www.canspice.org/2008/07/24/oscon-2008-skimmable-code-by-michael-schwern/">skimmable code</a>.</p>
<p>[tags]oscon, oscon08, oscon2008, Perl, programming[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-stick-a-fork-in-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Thursday Morning Keynotes</title>
		<link>http://sirhc.us/oscon-2008-thursday-morning-keynotes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-thursday-morning-keynotes</link>
		<comments>http://sirhc.us/oscon-2008-thursday-morning-keynotes/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 17:12:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=239</guid>
		<description><![CDATA[Thursday morning, the conference is more than half way over. It&#8217;s once again time for some keynotes. They opened with an open content video from REM. I don&#8217;t know why. It wasn&#8217;t very good. Our first speaker this morning is Keith Bergelt of the Open Invention Network, speaking about Open Invention Network and Its Role [...]]]></description>
				<content:encoded><![CDATA[<p>Thursday morning, the conference is more than half way over.  It&#8217;s once again time for some keynotes.  They opened with an open content video from REM.  I don&#8217;t know why.  It wasn&#8217;t very good.</p>
<p>Our first speaker this morning is Keith Bergelt of the Open Invention Network, speaking about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4789">Open Invention Network and Its Role in Open Source and Linux</a>.  He&#8217;s speaking about patents and intellectual property in Open Source, the realities of it today and where he sees it going tomorrow.  He&#8217;s big on the buzzwords, and this is not the right audience for it.  In fact, a game of <a href="http://en.wikipedia.org/wiki/Buzzword_bingo">Buzzword Bingo</a> has already broken out in the IRC channel.</p>
<p>In summary, &#8220;Blah blah patent blah blah buzzword blah blah we care blah blah.&#8221;</p>
<p>Oh wait, he droned his way to a point.  One of the things the Open Invention Network does, and I should have known because I&#8217;ve seen this before, is to buy up patents and keep Open Source safe from them.  At least, until their funding dries up and they turn to their patent portfolios to squeeze money out of everyone.</p>
<p>I seem cynical this morning.  Maybe I didn&#8217;t get enough sleep.  Or maybe the first keynote today is boring.  The back-channel conversation on IRC is actually quite entertaining, though.  I need to whip up a quick IRC log file analyzer to correlate IRC traffic to keynote speaker.  Then I can use it as a tool to rate speakers.</p>
<p>The pain is finally over, and the program chair has caught buzzworditis from the last speaker.  Next up is Peter H. Salus to speak to us about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4547">Anniversaries</a>.  I&#8217;m told by Nat Torkington that Peter is an Unix historian.  He&#8217;s started off by showing us a picture of the first transistor, which is about 20cm and a bit more than that around.  It&#8217;s amazing to see how far we&#8217;ve come in 60 years&mdash;how many iPhones can fit in the same volume?</p>
<p>Anniversaries, in this case, are major milestones in computer history.  The first electronic computer; the first time-sharing system; the first Unix paper by Ritchie and Thompson; the GNU project.  One of the interesting things to learn is that history repeats itself.  Back in the days of ARPANET, there was an issue involving the exhaustion of address space on the network.  Short-sighted problems like that would never <a href="http://en.wikipedia.org/wiki/IPv4_address_exhaustion">happen today</a>, right?</p>
<p>I enjoyed this keynote speech, but probably because I really enjoy history.</p>
<p>Next up, <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4918">Supporting the Open Web</a> with David Recordon of Six Apart.  It&#8217;s not just the open nature of the software or the platform that matters, but the openness of the data.  Without open data, the Open Web can&#8217;t work.  Interoperability and open specifications are vital to moving forward with the technology.  The Web must be accessible, not just available on one device or another.</p>
<p>The majority of the talk is dedicated to talking about the various organizations doing work to keep everything free and open, including the Open Source Initiative, Creative Commons, and the Apache Foundation.  There are also quite a few people donating a lot of their time to help.</p>
<p>He&#8217;s announcing the formation of the <a href="http://openwebfoundation.org/">Open Web Foundation</a>.  They don&#8217;t necessarily want to form their own foundation, but they have had little luck finding an existing one to do what they&#8217;ve asked.</p>
<p>The Open Web Foundation will focus on four areas: incubation, licensing, copyright, and community.  Many companies, such as Google and Yahoo have already shown support for this new foundation.</p>
<p>Following David is Danese Cooper of the Open Source Initiative and Intel Corporation to speak about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4490">Why Whinging Doesn&#8217;t Work</a>.  A catchy title, and she introduced her talk with a funny video of a choir of Finnish women singing about all of the complaints they have (search YouTube for &#8220;<a href="http://www.youtube.com/results?search_query=complaints+choir&#038;search_type=">complaints choir</a>&#8220;).</p>
<p>She&#8217;s making a very good point.  There are so few women in Open Source.  Geek are often intimidated by women and women are so often objectified.  It&#8217;s true, there is a huge gender imbalance in the geek community.  Of all the geeks I know, I can name very few <a href="http://www.snipe.net/">women</a>.  I&#8217;m having a daughter soon, and you know what, she&#8217;s going to learn to code.</p>
<p>However, the feminist angle is merely a way of personally relating to the main point of her talk.  People complain.  I do it, you do it, the guy sitting next to you does it.  But whinging doesn&#8217;t help.  Mostly, all whinging does is beget more whinging.  That energy used to complain needs to be channeled into something constructive.</p>
<p>For seven years, Danese was the only female member of the Open Source Initiative&#8217;s board.  Now 30% of the board members are female.  Progress.</p>
<p>Finally, Nathan Torkington, former OSCON program chair and recently of He Hononga Software, Limited and his keynote, <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4721">fork() &#038;&#038; exec(): Spawning the Next Generation of Hackers</a>.  Thank goodness, this talk is <i>not</i> about geeks having sex.</p>
<p>I&#8217;ve been looking forward to this keynote for a couple of reasons.  First, I&#8217;ve missed hearing Nat speak this year.  Second, I&#8217;m expecting my first child in a couple of months.  Not only that, two other members of my local <a href="http://www.kernel-panic.org/">Linux User Group</a> are either recent or expecting fathers.  Suddenly, topics involving children are much more interesting to me.</p>
<p>Nat recently moved his family back to New Zealand.  One of the things he does now is to help teach children about computing.  In his school district, the computing infrastructure was awful&mdash;and used Windows.  So he got a handful of Macs and became the Bastard Operator from Hell for his kids&#8217; school.  Then he started teaching the schoolchildren.  Quickly, he discovered that the teachers needed teaching as well.</p>
<p>One more thing he wanted to do was to teach programming.  He feels it&#8217;s a very important skill.  But it has to be done right.  Avoid the frustration that so many of us experience with computing and programming, but something consistent, easy-to-learn, but still powerful.  Nat&#8217;s introduced <a href="http://scratch.mit.edu/">Scratch</a>.  The kids loved it.</p>
<p>Lessons learned:</p>
<ul>
<li>Lectures suck (you have two minutes to say what you want)</li>
<li>The gender gap is not what you think (girls are smarter and more focused than boys)</li>
<li>Keyboards are a challenge</li>
<li>Not a lot of experience with math</li>
<li>Robots are lame</li>
</ul>
<p>So please, volunteer in schools.  Perhaps remove Windows and bring the joy of Linux to their lives.  Find, or create, good courseware, such as Scratch.  Post it on your blog, so everyone can find it.  Finally, don&#8217;t profit.  Do this for the good of the children, our future generation of geeks.</p>
<p>With that, we&#8217;re off to the expo hall for the break.</p>
<p>[tags]oscon, oscon08, oscon2008[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-thursday-morning-keynotes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OSCON 2008, Day 4</title>
		<link>http://sirhc.us/oscon-2008-day-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-day-4</link>
		<comments>http://sirhc.us/oscon-2008-day-4/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 15:51:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=240</guid>
		<description><![CDATA[Thursday morning and day four of OSCON is sunnier than the last two have been. Though it&#8217;s still chilly outside, it&#8217;s comfortable inside the convention center, so far. I&#8217;m once again having breakfast in the expo hall after getting too little sleep. Sadly, yesterday during the morning keynotes, Al was called back home abruptly. Hopefully, [...]]]></description>
				<content:encoded><![CDATA[<p>Thursday morning and day four of OSCON is sunnier than the last two have been.  Though it&#8217;s still chilly outside, it&#8217;s comfortable inside the convention center, so far.  I&#8217;m once again having breakfast in the expo hall after getting too little sleep.</p>
<p>Sadly, yesterday during the morning keynotes, <a href="http://www.dailyack.com/">Al</a> was called back home abruptly.  Hopefully, he made it back to the UK quickly and safely.</p>
<p>After all the sessions were said and done for the day, we found our way to the expo hall, where beer and appetizers were being served.  Alas, we did not stay long.  We caught wind that Google would be hosting pizza across the river at <a href="http://www.oldtownpizza.com/">Old Town Pizza</a>, an event we never made it to.  It turned out to be a pizza dinner for Summer of Code participants.  We finally ended up at <a href="http://www.rogue.com/">Rogue</a> for dinner, and I finally got myself a <a href="http://en.wikipedia.org/wiki/Beer_bottle#Growler">growler</a> for my collection&mdash;currently being held (safely?) in Brad&#8217;s hotel room refrigerator.</p>
<p>After dinner, we swung by the supposed <a href="http://www.amazon.com/">Amazon</a> party.  Only, there wasn&#8217;t one.  It was only held between 8:00pm and 9:00pm.  Seriously?  This is how Amazon throws a party?</p>
<p>Fortunately, the <a href="http://www.sun.com/">Sun</a> party was a better this year.  First of all, they had no stupid <a href="http://sirhc.us/journal/2007/07/25/oscon-2007-opensolaris-party/">lolspeak</a> flyers.  Second, bottled beer instead of kegs, which is difficult for incompetent bartenders to over-prime and serve nothing but head.  Third, <a href="http://www.youtube.com/watch?v=9BAJYCKex1M">sumo wrestling</a>!  <a href="http://www.canspice.org/">Brad</a> and I also participated; those photos are coming soon, I promise.</p>
<p>However, as I actually enjoy attending the keynote sessions&mdash;scheduled far too early in the morning&mdash;I was back in my hotel just after 11:00pm.  I ran into Dan and his fellow <a href="http://www.tierra.net/">TierraNet</a> colleagues in the hotel bar.  Unfortunately, I had missed last call, but I sat down for a bit anyway.  We had some laughs with Margaret, the bartender.  I tried to get her to slap Tyler, but sadly it never happened.</p>
<p>Today&#8217;s session tracks begin with a dilemma.  Unfortunately, I&#8217;d like to be in three places, simultaneously.</p>
<ul>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3011">Skimmable Code: Fast to Read, Safe to Change (Michael Schwern)</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4857">Open Source Microblogging (Evan Prodromou)</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2748">Stick a fork() in It: Parallel and Distributed Perl (Eric Wilhelm)</a></li>
</ul>
<p>Fortunately, Brad wants to go to Michael Schwern&#8217;s talk, so I&#8217;ve agreed to attend Eric Wilhelm&#8217;s talk.  We&#8217;ll write summaries and both be happy.  The microblogging session was just a curiosity for me anyway.</p>
<p>The rest of the day won&#8217;t require quite as much rolling of dice.</p>
<ul>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2655">Perl for Political Campaigns (Chris Nandor)</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2960">Ultimate Perl Code Profiling (Tim Bunce)</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3107">Hacking Wetware for Fun and Profit (Paul Fenwick)</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2501">Perl Lightning Talks</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4871">State of the Onion Address</a></li>
</ul>
<p>The only potential conflict is during the second half of the Perl lightning talks, <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2852">A Tasting Tour of Haskell (Bryan O&#8217;Sullivan)</a>.</p>
<p>Just about time for the morning keynotes, and I&#8217;m looking forward to seeing Nat Torkington speak.  If I can reconnect to the wifi network, I can even post this entry.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-day-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: An Illustrated History of Failure</title>
		<link>http://sirhc.us/oscon-2008-an-illustrated-history-of-failure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-an-illustrated-history-of-failure</link>
		<comments>http://sirhc.us/oscon-2008-an-illustrated-history-of-failure/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 00:32:49 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[failure]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=233</guid>
		<description><![CDATA[For my final session of the day, I&#8217;m in D139/140 for An Illustrated History of Failure with Paul Fenwick. I attended Paul&#8217;s Perl security talk yesterday, which was deciding factor in my attendance here. I figure it will have to be good, I&#8217;m sitting a few seats away from Damian Conway. Paul has started out [...]]]></description>
				<content:encoded><![CDATA[<p>For my final session of the day, I&#8217;m in D139/140 for <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3072">An Illustrated History of Failure</a> with Paul Fenwick.  I attended Paul&#8217;s <a href="http://sirhc.us/journal/2008/07/21/oscon-2008-perl-security/">Perl security</a> talk yesterday, which was deciding factor in my attendance here.  I figure it will have to be good, I&#8217;m sitting a few seats away from Damian Conway.</p>
<p>Paul has started out by describing the <a href="http://blog.makezine.com/archive/2006/09/worlds_oldest_computer.html">world&#8217;s oldest computer</a> in terms of modern computing.</p>
<p>From there, he&#8217;s providing examples of major computing and engineering failures throughout modern history.  It&#8217;s amazingly entertaining.  I can&#8217;t summarize it.  If you&#8217;re not here, you fail.  I&#8217;m just going to sit back and enjoy it.</p>
<p>[tags]oscon, oscon08, oscon2008, history, failure[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-an-illustrated-history-of-failure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Moblin.org</title>
		<link>http://sirhc.us/oscon-2008-moblinorg/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-moblinorg</link>
		<comments>http://sirhc.us/oscon-2008-moblinorg/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 00:21:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Moblin]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=231</guid>
		<description><![CDATA[Continuing my afternoon tradition of attending sessions with absurdly long names, I&#8217;m in D136 at Moblin.org: The Community for Linux on Mobile Internet Devices (MID), netbooks, nettops and More&#8230;. It&#8217;s being presented by Dirk Hohndel, who I just overheard agreed at the last minute to substitute for the original author of the presentation. He&#8217;s nervous, [...]]]></description>
				<content:encoded><![CDATA[<p>Continuing my afternoon tradition of attending sessions with absurdly long names, I&#8217;m in D136 at <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3037">Moblin.org: The Community for Linux on Mobile Internet Devices (MID), netbooks, nettops and More&hellip;</a>.  It&#8217;s being presented by Dirk Hohndel, who I just overheard agreed at the last minute to substitute for the original author of the presentation.  He&#8217;s nervous, so I hope it goes well.  He is, however, the same person who gave the <a href="http://sirhc.us/journal/2008/07/23/oscon-2008-wednesday-morning-keynotes/">keynote</a> this morning.</p>
<p>I work for a small telecommunications design <a href="http://www.qualcomm.com/">company</a>, so this venture into Linux on mobile platforms holds quite a bit of interest for me.  Granted, I work in a support capacity for the folks who do real work, but knowledge is always a good thing, right?</p>
<p>Intel has chosen a Fedora- and GNOME-based platform for Moblin.  I&#8217;ve contributed a couple of <a href="http://rpmfind.net/linux/rpm2html/search.php?query=frotz">packages</a> to Fedora, which means users of these Intel mobile systems can play <a href="http://en.wikipedia.org/wiki/Zork">Zork</a>.</p>
<p>Dirk wasn&#8217;t able to have any sample devices with him, so he was left to describe what a &#8220;net book&#8221; is.  Fortunately, in a room full of geeks in a mobile computing presentation, several people had ASUS EEE PCs, which he could show off to the audience.  There were also a Nokia N800, N810, and of course several iPhones in the crowd.  Obviously I mobile-savvy audience.</p>
<p>Linux is often touted as the obvious first choice for these mobile devices because of its price.  One of the more important reasons is the ability to strip down Linux so much to fit on these devices, but still be incredibly usable.</p>
<p>This session ended up being exactly what I thought.  It&#8217;s essentially a marketing spiel masquerading as a technical talk.  The slides are far too slick, and the only reason any technical details are being given at all is because of the last-minute speaker substitution.  Our new speaker is a technical guy who has been promoted to a managerial role.  The presentation was apparently designed by a marketing guy with enough technical knowledge to be dangerous.  I hope Brad is having more fun in the <a href="http://www.canspice.org/2008/07/23/oscon-2008-moose-a-postmodern-object-system-for-perl-5-by-stevan-little/">Moose</a> talk.</p>
<p>I&#8217;m really regretting where I&#8217;ve chosen to sit.  Someone in front of me is wearing way too much pungent cologne.  I may be sick.</p>
<p>[tags]oscon, oscon08, oscon2008, Intel, Moblin, mobile, Linux[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-moblinorg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Linux on the Corporate Desktop: We Did It, and You Can Too</title>
		<link>http://sirhc.us/oscon-2008-linux-on-the-corporate-desktop-we-did-it-and-you-can-too/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-linux-on-the-corporate-desktop-we-did-it-and-you-can-too</link>
		<comments>http://sirhc.us/oscon-2008-linux-on-the-corporate-desktop-we-did-it-and-you-can-too/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 22:24:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=224</guid>
		<description><![CDATA[The second of my mid-afternoon sessions is Linux on the Corporate Desktop: We Did It, and You Can Too with John Goerzen. This session popped out at me because we have a similar initiative at work. The company John works for has about 400 employees, so obviously no where near the scale we&#8217;d be deploying [...]]]></description>
				<content:encoded><![CDATA[<p>The second of my mid-afternoon sessions is <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2509">Linux on the Corporate Desktop: We Did It, and You Can Too</a> with John Goerzen.  This session popped out at me because we have a similar initiative at work.  The company John works for has about 400 employees, so obviously no where near the scale we&#8217;d be deploying on.  Hopefully, I&#8217;ll learn a few lessons from someone who&#8217;s done it before.</p>
<p>There are a multitude of troubles with using a proprietary operating system, as anyone attending OSCON is familiar.  From cost to forced upgrades to vendor lock-in.  Suddenly, companies are at the mercy of the vendor, and have lost so much of their own self-direction.</p>
<p>Not only has John&#8217;s company benefited from the Open Source community, they&#8217;ve contributed back to the community.  That&#8217;s key, I feel.  I&#8217;d like to see my own company contribute much more than they do.</p>
<p>I&#8217;m not sure who this talk was targeted for.  It wasn&#8217;t really a good sales pitch to business-type people, and it wasn&#8217;t very high level for IT-type people.  I don&#8217;t know what I expected from it, but I don&#8217;t think I got what I wanted out of it.  Most of the challenges they faced, we&#8217;ve already solved.  We&#8217;ve already created a standard image and can already deploy it on standard hardware.  We already have Windows virtual machines for anyone who still needs to run Windows applications.  We already have enough management buy-in for the project, too.</p>
<p>I do, however, like the sound of this &#8220;seamless RDP&#8221; he talked about.  I will need to investigate it further.  Also, it&#8217;s refreshing to hear from someone who has successfully (mostly) removed Windows from their enterprise.</p>
<p>[tags]oscon, oscon08, oscon2008, Linux[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-linux-on-the-corporate-desktop-we-did-it-and-you-can-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Ninja&#8221; Code</title>
		<link>http://sirhc.us/ninja-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ninja-code</link>
		<comments>http://sirhc.us/ninja-code/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 22:20:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=227</guid>
		<description><![CDATA[A version of this article is published on my Perl blog. The Amazon booth at OSCON 2008 is advertising heavily that they are hiring. They are also holding a raffle. To enter, simply look over some Perl code they have written out on some poster board and tell them what it does. It looks a [...]]]></description>
				<content:encoded><![CDATA[<p><em>A version of this article is published on my <a href="http://blogs.perl.org/users/sirhc/2012/04/ninja-code.html">Perl blog</a>.</em></p>
<p>The <a href="http://www.amazon.com/">Amazon</a> booth at OSCON 2008 is advertising heavily that they are hiring.  They are also holding a raffle.  To enter, simply look over some Perl code they have written out on some poster board and tell them what it does.  It looks a little something like this (transcribing from memory):</p>
<pre>
my $code = qq{
    print 1+1 . "\n";
    $code =~ m/(\d+)\+(\d+)/;
    $new = $1 + $2;
    $code =~ s/\d+\+(\d+)/$2+$new/;
};

for ( 1 .. 10 ) {
    eval($code);
}
</pre>
<p>What&#8217;s the first bug?  Yes, it should use <code>q{}</code>, or the variables will interpolate on the initial assignment to <code>$code</code>.  To their credit, they initially used single quotes, but people said it was too hard to read.</p>
<p>I wasn&#8217;t content with just figuring out what the code did and fixing a small bug.  I think it can be written better.</p>
<pre>
eval($code = q{
    print 1+1 . "\n";
    $code =~ s/(\d+)(\+)(\d+)/"$3$2" . ($1 + $3)/e;
    eval $code;
});
</pre>
<p>Much better.  Not only is it more concise, I was able to remove that pesky loop, so I wouldn&#8217;t be bothered by any silly upper bounds.</p>
<p>So what does it do?  Should be obvious.  Head over to the Amazon booth and let them know.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/ninja-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Code Reviews for Fun and Profit</title>
		<link>http://sirhc.us/oscon-2008-code-reviews-for-fun-and-profit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-code-reviews-for-fun-and-profit</link>
		<comments>http://sirhc.us/oscon-2008-code-reviews-for-fun-and-profit/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 21:32:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=222</guid>
		<description><![CDATA[Lunch is over and I&#8217;m sitting in Code Reviews for Fun and Profit with Alex Martelli. I really wanted to go to the Perl 6 talk, but I always end up going home disappointed, because I don&#8217;t yet have Perl 6. It&#8217;s maddening, so here I am, sitting in something that may be useful. And [...]]]></description>
				<content:encoded><![CDATA[<p>Lunch is over and I&#8217;m sitting in <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2538">Code Reviews for Fun and Profit</a> with Alex Martelli.  I really wanted to go to the Perl 6 talk, but I always end up going home disappointed, because I don&#8217;t yet have Perl 6.  It&#8217;s maddening, so here I am, sitting in something that may be useful.  And we&#8217;re off.</p>
<p>Nearly everyone agrees that code reviews are a good idea, so why aren&#8217;t they done more often?  In fact, this is the very same problem we&#8217;ve had at work.  We&#8217;ve been talking about code reviews for two years, but we&#8217;ve never had one.</p>
<p>There are some barriers to entry to doing code reviews.  If revision control is not in use or automated tests aren&#8217;t being run, tackle those problems first.  Also, the need for a team process is necessary, from ticket tracking to release plans.</p>
<p>Pair programming, that tenet of XP, is a poor substitute for code reviews.  Two people working together will not magically turn one or the other into what is essentially a disinterested third party, who may catch bugs simply because they weren&#8217;t there when it was written.</p>
<p>Test-driven development is also a great way of coding, but not a substitute for reviews.  Often for the same reasons.  Tests are often just more code and the code tested is only when someone thinks to test it.</p>
<p>Even during a code review, a reverence for authority can get in the way of getting things done.  A poor, intimidated programmer may not have the courage to criticize a more senior programmer.  Instead, this can be turned around with something I use a lot myself.  I like to call it, &#8220;playing dumb.&#8221;  Instead of saying, &#8220;this won&#8217;t work,&#8221; ask what will happen for a suspicious case.</p>
<p>Socially, the only way for code reviews to work is universal buy-in.  Everyone is subjected to code reviews by everyone else.  No exceptions.  Make them a habit, a regularly-scheduled meeting.  At work, I&#8217;ve even suggested bi-weekly, or perhaps monthly, catered, lunch time code reviews.  Just to get us into the habit of doing it.</p>
<p>Code review time should not be wasted on things such as code formatting, best practices, or test coverage.  This is stupid.  These are <a href="http://search.cpan.org/dist/Devel-Cover/">objective</a> <a href="http://search.cpan.org/dist/Perl-Tidy/">tasks</a> that can be <a href="http://search.cpan.org/dist/Test-Harness/">automated</a>.</p>
<p>Instead, look for subjective things, which can&#8217;t be automatically found.  Such as code readability, algorithmic clarity, and consistent identifier naming.  Other targets for code reviews are the usual things we here over and over again as development best practices: consistent documentation that follows the internal standard, that kind of thing.</p>
<p>The remainder of the talk is essentially an enumeration of all the things to look for in code reviews.  All of them are, at least to me, common sense.  So I&#8217;m not going to spend any time writing them down.  If you don&#8217;t already know them, well go find some common sense.</p>
<p>One thing that he recommends that I like is code reviews by e-mail.  It&#8217;s an old, well-understood, and (usually) reliable tool.  So why not combine e-mail with a version control system&mdash;particularly one of the newer distributed version control systems&mdash;to perform out-of-band code reviews.  It actually sounds like a good idea to me, and I&#8217;ve done it at work a couple of times with code written by an intern.</p>
<p>What I&#8217;m starting to notice is that many of the later the recommendations for reviewing code are personal opinions of the presenter.  I think the way in which code reviews are performed are highly dependent on what works best for the group reviewing code.  It&#8217;s like so many things, from cameras to backup solutions: the best one is not the shiniest or the one with the most bells and whistles, it&#8217;s the one that&#8217;s actually used.</p>
<p>[tags]oscon, oscon08, oscon2008, programming[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-code-reviews-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Beautiful Concurrency with Erlang</title>
		<link>http://sirhc.us/oscon-2008-beautiful-concurrency-with-erlang/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-beautiful-concurrency-with-erlang</link>
		<comments>http://sirhc.us/oscon-2008-beautiful-concurrency-with-erlang/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 19:12:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=219</guid>
		<description><![CDATA[My second session of the day is Beautiful Concurrency with Erlang. I&#8217;m here for two reasons. First, Erlang looks cool; second, the speaker, Kevin Scaldeferri, is a friend of mine. Erlang is a pure functional language (and thus no side-effects) with strong dynamic typing and syntax similar to Prolog and ML. Most notably, it contains [...]]]></description>
				<content:encoded><![CDATA[<p>My second session of the day is <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3065">Beautiful Concurrency with Erlang</a>.  I&#8217;m here for two reasons.  First, <a href="http://www.erlang.org/">Erlang</a> looks cool; second, the speaker, Kevin Scaldeferri, is a friend of mine.</p>
<p>Erlang is a pure functional language (and thus no side-effects) with strong dynamic typing and syntax similar to Prolog and ML.  Most notably, it contains concurrency primitives, which is what we&#8217;re here to hear about today.</p>
<p>Erlang concurrency primitives include <code>spawn</code>, to create a process, <code>!</code>, to send a message to a process, and <code>receive</code>, to listen for a message.  These are not system level processes, but other Erlang processes.  It&#8217;s a lot like using <code>fork</code> in imperative languages, but less messy.</p>
<p>Erlang, like many functional languages, can implement quick sort in three lines of code.  I was having a discussion with a friend of mine about this topic yesterday.  It&#8217;s very nice, and demonstrates the power of functional languages to trivially solve an already solved set of problems, but is it any use in the real world?  Maybe.  While I&#8217;ve not seen any non-trivial examples, I&#8217;m reserving judgment.</p>
<p>The first example is a demonstration on how simple it is to parallelize the quick sort algorithm.  It&#8217;s not a worthwhile example, in fact, it&#8217;s a particularly bad idea, but it serves as a reasonable example of the ease of use of the concurrent features in Erlang.  So far, it seems like changing a <code>map</code> call&mdash;something I love from Perl&mdash;to <code>pmap</code>.</p>
<p>The <code>pmap</code> function is not a built in function (BIF), but a library function built on top of the built in concurrency primitives.  The code implementing the function is actually quite simple, and should be available in the slides available at the end of the conference.  Conceptually, it spawns as many processes as necessary and uses them to call the function being mapped.  It then gathers the results, waiting for each process to complete.  It&#8217;s quite similar to code I&#8217;ve written to do scientific processing using <a href="http://en.wikipedia.org/wiki/Message_Passing_Interface">MPI</a>, but I&#8217;ve always thought functionally when coding.</p>
<p>After explaining concurrency, we make the jump to distributed systems.  What&#8217;s everyone&#8217;s favorite distributed system?  <a href="http://twitter.com/">Twitter</a>!  Twitter, while not designed as such, is essentially a messaging system.  Erlang does message passing very well, and almost all programs are designed using this paradigm.  So Kevin took a stab at implementing a Twitter-like system in Erlang, the key ideas of which he will present to us.</p>
<p>The lightweight and convenient process architecture of Erlang lends itself to the problem.  Every user can be represented as a process.  Each process can then send and receive messages.  In effect, the problem&mdash;the messaging part anyway&mdash;is now solved.  But, what about scaling to multiple machines?</p>
<p>It turns out to easy (but you knew it would, right?).  All we need to do is pull in the <code>global</code> module and we can bind our users not only to a process identifier, but combine that with a given machine as well.</p>
<p>However, we still don&#8217;t have a reliable system.  If a process dies, that user is no longer in the system.  So it really is a lot like Twitter.</p>
<p>OTP, the Open Telecom Platform (a legacy name from Erlang&#8217;s history at Ericcson), provides a set of common behaviors and patterns for writing reliable and distributed system.  The programmer simply declares what interface they would like to use, then implement a set of callbacks defined for that behavior.  Reminds me a bit of <a href="http://search.cpan.org/dist/Class-Role/">roles</a> (because I have an unhealthy need to relate everything back to Perl).</p>
<p>As with everything in Erlang, it is almost impossibly easy to set up this reliability.  I still can&#8217;t get over how well the syntax maps to how I actually think about code.</p>
<p>A question was raised about how to go about setting up the necessary cluster of hosts used in Erlang&#8217;s mesh network.  Kevin went into it briefly, but it&#8217;s unfortunately out of scope for this session.</p>
<p>And, with that, it&#8217;s time for lunch.  Thanks, Kevin!</p>
<p>[tags]oscon, oscon08, oscon2008, Erlang, concurrency, programming[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-beautiful-concurrency-with-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Strawberry Perl: Achieving Win32 Platform Equality</title>
		<link>http://sirhc.us/oscon-2008-strawberry-perl-achieving-win32-platform-equality/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-strawberry-perl-achieving-win32-platform-equality</link>
		<comments>http://sirhc.us/oscon-2008-strawberry-perl-achieving-win32-platform-equality/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 18:27:59 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Adam Kennedy]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Strawberry Perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=217</guid>
		<description><![CDATA[My first session of the day is Strawberry Perl: Achieving Win32 Platform Equality, presented by Adam Kennedy. Originally, I had considered a Parrot talk, but I saw a similar talk at SCALE6x, and I happened upon Adam on IRC this morning. I chatted briefly with him about his talk, and he happens to be in [...]]]></description>
				<content:encoded><![CDATA[<p>My first session of the day is <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2769">Strawberry Perl: Achieving Win32 Platform Equality</a>, presented by <a href="http://search.cpan.org/~adamk/">Adam Kennedy</a>.  Originally, I had considered a Parrot talk, but I saw a similar talk at <a href="http://sirhc.us/journal/2008/02/10/scale-6x-programming-parrot/">SCALE6x</a>, and I happened upon Adam on IRC this morning.  I chatted briefly with him about his talk, and he happens to be in communication with a <a href="http://www.antlinux.com/">friend of mine</a>, who is working on <a href="http://code.google.com/p/camelbox/">Camelbox</a>, a Windows build of Perl originally targeted as a way to easily distribute applications written with Gtk front ends (I hope I got the motivation correct).</p>
<p>Recently, Adam has been funded by The Perl Foundation, Perl in Israel, and Stonehenge to use Perl from nothing but his flash drive.  This provides an excellent motivation to get Strawberry Perl working in a highly portable way.</p>
<p>Originally, Perl was awesome and worked everywhere&mdash;except Windows.  That was okay, because Windows didn&#8217;t matter.  No one did any real work on Windows.  Then, around 1995, Windows started to matter.  A brief history of Perl on Windows followed, resulting in what is today <a href="http://www.activestate.com">ActiveState</a>.</p>
<p>Much of what Adam wrote for <a href="http://search.cpan.org/dist/PPI/">PPI</a> does not work in ActivePerl, which makes it a non-starter for him, as he tends to work on Windows.  Anything depending on Scalar::Util or List::MoreUtils modules will not work with the ActivePerl build system.  This led to an embarrassing problem for Adam when he gave a talk three years ago at OSCON.  He couldn&#8217;t give his demo, because PPI would not build in ActivePerl.  In fact, ActiveState&#8217;s package manager has gotten so much worse that almost any module that is at all useful does not exist&mdash;and thus nothing useful can be done on Windows (big surprise).</p>
<p>Moving away from ActiveState, this talk is essentially about Adam trying to get his own laptop to work.  That&#8217;s really all he wants.  It&#8217;s a modest desire.  More importantly, the <a href="http://search.cpan.org/dist/CPAN/">CPAN</a> module has to work.  Without that, what&#8217;s the use of Perl?</p>
<p>So Adam offered a prize: a yard-high stack of cases of any beer desired by the first person who could provide a fully-installable and working (by the above definition of working) version of Perl for Windows.  After six months and no sign of a winner, he changed the prize to &#8220;craploads&#8221; of beer.  In 24 hours, he received two entries.  The winner cheated a lot, but the loser was <a href="http://vanillaperl.com/">Vanilla Perl</a>, which has become a testing ground for experimentation.</p>
<p><a href="http://strawberryperl.com/">Strawberry Perl</a> is the Perl for Windows designed for people who don&#8217;t use Windows.  That is, the people who do all of their work on Unix or Unix-like systems&mdash;Linux, Solaris, and Mac OS X.  The main goal of the project is to make it <i>easy</i>&mdash;it is Perl, after all.</p>
<p>In the future will come Chocolate Perl&mdash;completing the holy trinity of neopolitan flavors&mdash;for people who know Windows, but don&#8217;t know Perl, and thus the Unix-like characteristics of Perl.</p>
<p>The target of Adam&#8217;s financial support is Portable Perl: Perl for flash drives.  Carry it around, install CPAN modules onto, or from, the flash drive.  It&#8217;s network-aware, does the right thing, and juliennes fries.  An excellent standard being developed for portable apps is, in fact, <a href="http://portableapps.com">PortableApps.com</a>, where applications such as Firefox or Putty can be downloaded and installed to those ever-growing flash drives.</p>
<p>Available Thursday at the <a href="http://www.perlfoundation.org/">Perl Foundation</a>&#8216;s booth in the expo hall will be branded flash drives with Portable Perl on them.  At least, I think I heard that correctly.</p>
<p>I really like the work Adam is doing.  He&#8217;s accomplished so much to get Perl everywhere.  That&#8217;s a cause I can get behind.</p>
<blockquote><p>
&#8220;The main problem today is Vista.&#8221;<br />
&mdash; Adam Kennedy
</p></blockquote>
<p>Okay, I took that out of context, but I couldn&#8217;t resist capturing the quote.  What he really means is that changes made to Windows in Vista have made things not work, in particular the access control.  It&#8217;s not an unusual problem when upgrading to new systems, but it is more difficult with proprietary platforms, which Open Source authors have very little access to.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-strawberry-perl-achieving-win32-platform-equality/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Wednesday Morning Keynotes</title>
		<link>http://sirhc.us/oscon-2008-wednesday-morning-keynotes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-wednesday-morning-keynotes</link>
		<comments>http://sirhc.us/oscon-2008-wednesday-morning-keynotes/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 17:09:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Open Web]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[oscon2008]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[Tim O'Reilly]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=215</guid>
		<description><![CDATA[Kicking off the official start of OSCON on Wednesday morning is Allison Randal welcoming us to the 10th annual O&#8217;Reilly Open Source Conference. She gave us an overview of what we could expect from this year&#8217;s conference. Mostly, it&#8217;s about open systems this year, not just open source program. She then introduced the program co-chair [...]]]></description>
				<content:encoded><![CDATA[<p>Kicking off the official start of OSCON on Wednesday morning is Allison Randal welcoming us to the 10th annual O&#8217;Reilly Open Source Conference. She gave us an overview of what we could expect from this year&#8217;s conference.  Mostly, it&#8217;s about open systems this year, not just open source program.  She then introduced the program co-chair and the man behind the personal schedule feature on the conference web site, Edd Dumbill.  He started off by getting an idea of how long the audience had been coming to OSCON.  Quite a few people have attended half a dozen or more.  Impressive.  Next, he pimped the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4926">OSCON photo contest</a> on Flickr.  He&#8217;s a very big proponent of the social networking aspects of OSCON: Flickr, Twitter, and IRC in particular.</p>
<p>Allison is back to tell us that the morning break will be sponsored by Intel, and lunch is sponsored by Google.  That gives me some hope for a decent lunch, at least.  Don&#8217;t let me down, Google.</p>
<p>Next up, Tim O&#8217;Reilly with an update on <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4408">Open Source on the O&#8217;Reilly Radar</a>.  He started out with an overview of the history of this conference, in particular the predecessors: the Freeware conference, and the Perl conference.</p>
<p>He offers an important safety tip: keep your history.  Be an e-pack-rat.  Some day you&#8217;ll look back and appreciate that you have it.  It&#8217;s like the photo album on the coffee table.  It&#8217;s the story of us and how we became who we are today.  So keep everything.  Please.  Even if it&#8217;s embarrassing.  Those are always the best memories, the ones that make us laugh.</p>
<p>The big point he&#8217;s here to make today is how big Open Source has come in the last decade.  But, don&#8217;t become complacent.  There are three big challenges and opportunities coming up: cloud computing, the (open) programmable Web, and open mobile.</p>
<p>Cloud computing is on the tip of everyone&#8217;s tongue today.  From Amazon Web Services to Google&#8217;s App Engine.  Individuals and start-ups now have the ability to build applications on top of these wonderful, decentralized, and most importantly cheap platforms.</p>
<p>Web does not mean &#8220;http.&#8221;  It is, in fact, the entire Internet, the &#8220;web&#8221; of systems that communicate and inter-operate.  There are Web applications that provide platform-agnostic solutions, but there is also XMPP, mobile devices, and even non-Web APIs for those very Web applications that are often so impressive.</p>
<blockquote><p>
&#8220;The Web is 72 subsystems in search of an Operating System.&#8221;<br />
&mdash; Tim O&#8217;Reilly
</p></blockquote>
<p>Data is the value-add by so many of the so-called open web companies.  While the APIs are open and the data can be queried, the data itself is owned by the provider, to do with as they please.  We need a truly Open Web Platform.  Apple, as popular as the iPhone is, has created an essentially closed platform.  Google, with Android, understands this.  Without a truly open mobile platform, all of Google&#8217;s market share could potentially disappear overnight.</p>
<p>Back to Allison who introduced our next speaker, Christine Peterson.  She takes the stage to tell us about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4406">Open Source Physical Security: Can We Have Both Privacy and Safety?</a></p>
<p>We passed up an opportunity with &#8220;e-voting.&#8221;  The Open Source community should have been able to rise up and solve that problem.  I&#8217;m not sure how or in what way.  I&#8217;ve had many discussions with friends on the subject, and we&#8217;re still not convinced that computers are even a good idea when it comes to voting.</p>
<p>This is the political activism segment of the conference.  That said, she brings up very real concerns.  There are very real reasons to care about detecting weapons or other hazards.  But, the very same technologies, in particular surveillance, that are used to defend against very real dangers can be used&mdash;abused&mdash;to monitor law-abiding citizens.</p>
<p>Terrorism is a &#8220;bottom-up&#8221; problem, which the state is attempting to solve with &#8220;top-down&#8221; solutions.  We need so-called bottom-up solutions.  The solutions that involve the very same openness, security and privacy that the Open Source community is already so concerned about and already so vocal about.</p>
<p>The take home message, if there is one, is that all this public sensing data and the information they gather should be open.  Our elected officials (this is a very US-centric talk) are well-meaning, but do not have the tools or the knowledge or the experience to really understand the need for all of this to be open.</p>
<blockquote><p>
&#8220;No secret software for sensing public data.&#8221;<br />
&mdash; Christine Peterson
</p></blockquote>
<p>Allison came back on stage to introduce our last, but certainly not least, speaker, Dirk Hohndel, Intel&#8217;s Chief Linux and Open Source Technologist.  He&#8217;s here to talk about <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4719">Moblin, Linux for Next Generation Mobile Internet</a>.  Given that I work for Qualcomm, this is, or at least should be, a very interesting topic for me (I work in support of the engineers, who do the actual work).</p>
<p>Intel is putting their money where their mouth is with Moblin (Mobile Linux, get it?).  There is a new class of computers on the market, which have become affordable for the mass market: ultra portable notebooks, hand-held tablet computers, and &#8220;smart&#8221; phones.  The driving force making these devices so successful is the Internet.  They are connected and our data is accessible from anywhere.</p>
<p>But what about vendor lock-in of the platform and the data.  Intel believes that the platform should be open.  This is where Moblin comes in.  It&#8217;s Intel&#8217;s idea of an open platform and an open software stack, allowing the community to develop applications and create new systems and services.</p>
<p>It&#8217;s excellent preaching to the choir, but I suspect that from a business perspective, it&#8217;s also a way of getting other people to do work for free and really get entrenched in the mobile market.  After all, Intel is not the giant in the mobile space the same way that they are in the server, desktop, or notebook spaces.  In fact, Qualcomm has a very impressive microprocessor, called <a href="http://www.qctconnect.com/products/snapdragon.html">Snapdragon</a>, targeting the mobile market (shameless plug).</p>
<p>Allison is back, once again introducing Tim O&#8217;Reilly, who will be <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4407">talking to Monty Widenius and Brian Aker</a> about their work with MySQL and the acquisition by Sun Microsystems.  This is a Q&amp;A session, and I always find these difficult to blog.  With any luck, a summary or transcript will be posted to the <a href="http://radar.oreilly.com/">O&#8217;Reilly Radar</a> site.</p>
<p>That brings us to the end of this morning&#8217;s keynotes.  I&#8217;ll drop by the expo hall for a few minutes before my first session.  But first, I really need to find a restroom.</p>
<p>Oh, Brad also wrote a <a href="http://www.canspice.org/2008/07/23/oscon-2008-wednesday-morning-keynotes/">few words</a> about the keynote.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-wednesday-morning-keynotes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Day 3</title>
		<link>http://sirhc.us/oscon-2008-day-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-day-3</link>
		<comments>http://sirhc.us/oscon-2008-day-3/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 15:38:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=213</guid>
		<description><![CDATA[It&#8217;s Wednesday, which means it&#8217;s day three of OSCON&#8212;day one for those here only for the sessions or expo hall. The tutorials and the Tuesday Night Extravaganza are behind us. Three days of sessions and two days of expo hall are ahead. The morning keynotes begin in approximately 45 minutes. After that, I have only [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s Wednesday, which means it&#8217;s day three of OSCON&mdash;day one for those here only for the sessions or expo hall.  The tutorials and the <a href="http://sirhc.us/journal/2008/07/22/oscon-2008-tuesday-night-extravaganza/">Tuesday Night Extravaganza</a> are behind us.  Three days of sessions and two days of expo hall are ahead.</p>
<p>The morning keynotes begin in approximately 45 minutes.  After that, I have only a vague idea of which sessions I&#8217;d like to attend.  My current line up looks a little like this,</p>
<ul>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2769">Strawberry Perl: Achieving Win32 Platform Equality</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3065">Beautiful Concurrency with Erlang</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2437">Perl 6 Update</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3074">Rakudo: Perl 6 on Parrot</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2469">Moose: A Postmodern Object System for Perl 5</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3072">An Illustrated History of Failure</a></li>
</ul>
<p>Of course, any of this is subject to change without notice.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Tuesday Night Extravaganza</title>
		<link>http://sirhc.us/oscon-2008-tuesday-night-extravaganza/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-tuesday-night-extravaganza</link>
		<comments>http://sirhc.us/oscon-2008-tuesday-night-extravaganza/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 03:52:37 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Damian Conway]]></category>
		<category><![CDATA[Mark Shuttleworth]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[r0ml]]></category>
		<category><![CDATA[White Camel Awards]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=209</guid>
		<description><![CDATA[It&#8217;s Tuesday evening and all of the tutorials are behind us. I&#8217;ve learned things about Perl no mere mortal should be trusted with, and I found out that Erlang is a really cool language. Now I&#8217;m in the Tuesday evening keynotes&#8212;or extravaganza, if you believe the marketing hype. They&#8217;ve started out with a real bang. [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s Tuesday evening and all of the tutorials are behind us.  I&#8217;ve learned things about Perl no mere mortal should be trusted with, and I found out that Erlang is a really cool language.  Now I&#8217;m in the Tuesday evening keynotes&mdash;or extravaganza, if you believe the marketing hype.  They&#8217;ve started out with a real bang.  Someone, whose name I didn&#8217;t catch, is talking about Python.  As <a href="http://radar.oreilly.com/allison/">Alison Randall</a>, the OSCON program chair said, &#8220;We have three of my favorite speakers, but first,&#8221; there&#8217;s this guy.  Actually, I&#8217;m sure he&#8217;s a perfectly decent chap, I just have very little interest in Python.</p>
<p>Originally, I hadn&#8217;t planned on arriving at the keynote until 9:00pm, when Damian Conway is schedule to speak on <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4549">Temporally Quaquaversal Virtual Nanomachine Programming In Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces&#8230;Made Easy!</a>.  I mean, granted, I&#8217;m sure I already know all there is to know about it, but it still might be a little interesting.</p>
<p>Anyway, the keynotes got started with <a href="http://en.oreilly.com/oscon2008/public/schedule/speaker/14790">Mark Shuttleworth</a>, the founder of the <a href="http://www.ubuntu.com/">Ubuntu</a> project.  He&#8217;s here to speak to us about &#8220;Free software and the art of software engineering.&#8221;  It (whatever &#8220;it&#8221; is) boils down to three things: innovation, methodologies, and economics.</p>
<p><b>Innovation</b>.  Society has a responsibility to stimulate it.  Innovation is extremely non-linear and the key to this is disclosure, as is done in (or was once done in) academia.  Free Software is the scaffolding for innovation.  The real successes are accessible.  The Mozilla products are examples of wildly successful open platforms, with the extension architecture they have provided.</p>
<p><b>Methodologies</b>.  The purpose of methodologies is to organize talent.  How is Free software changing the direction of these methodologies.  The Free Software people, that is us, are organized and motivated by interest.  A second driving factor is that developers are almost never located near each other, so things like pair programming completely fall apart.  Creating architecture for collaboration and participation is essential to the success of any Free Software process.  While a common set of tools can never be forced upon the community, the ability for a diverse set of tools to communicate with each other is vital.</p>
<p><b>Economics</b>.  It is the combination of the technical change and innovation in economics that really moves the world forward.  For example, we had the Web for years before the business models started to spring up around it and really drove us forward, both technologically and economically.  Today, there is an increasing use of online services, which both drive technology forward and allow platforms to work together, and more often than not, these services are built on Free Software.</p>
<p>Our great task over the next two years is to lift the Linux desktop from something that is stable and works and is not-so-pretty, to something that is art.  At this point, someone started clapping, and a couple of people joined in.  As <a href="http://www.jwz.org/">Jaime Zawinsky</a> once said, &#8220;We should design software that helps our users get laid.&#8221;  But really, we need to make software that is phenomenally useable, beautiful, and functional.</p>
<p>Next up, <a href="http://egofood.blogspot.com/">Chris DiBona</a>, the Open Source program manager at Google, joined Allison on stage to present the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3705">Google O&#8217;Reilly Open Source Awards</a>.</p>
<p>Next up, with <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4717">Exceptional Software Explained: Embrace Error</a> is <a href="http://en.oreilly.com/oscon2008/public/schedule/speaker/6635">Robert &#8220;r0ml&#8221; Lefkowitz</a>.  He is fast becoming one of my favorite speakers.  He&#8217;s here to talk about software development methodologies in Open Source.  This talk is almost a sequel to one he gave last year, <a href="http://sirhc.us/journal/2007/07/27/oscon-2007-an-open-source-lexicon/">An Open Source Lexicon</a>.  He has a real penchant for language, particularly classical language, and how to apply it to themes in the Open Source community.  Unfortunately, because of this very quality, it&#8217;s extremely difficult to write about it as he speaks.  It&#8217;s hard to summarize as he speaks, and he&#8217;s far too entertaining to chance missing what he&#8217;ll say next.</p>
<p>Josh McAdams then took the stage to continue the long standing tradition&mdash;10 years now&mdash;of the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/4718">White Camel Awards</a>.  So here&#8217;s something I don&#8217;t understand.  What is it that drives people to design award trophies that have a high potential for lethality?  Honestly, don&#8217;t run with them.  They&#8217;re worse than scissors.</p>
<p>Finally, it&#8217;s time for Damian&#8217;s keynote.  But you know what?  I&#8217;m not going to miss any of it to write about it here.  If you missed it, well, you should have been here.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-tuesday-night-extravaganza/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Practical Erlang Programming</title>
		<link>http://sirhc.us/oscon-2008-practical-erlang-programming/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-practical-erlang-programming</link>
		<comments>http://sirhc.us/oscon-2008-practical-erlang-programming/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 23:59:24 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=205</guid>
		<description><![CDATA[After lunch and our trip to the Apple Store, I&#8217;m sitting in Portland 256 for the Practical Erlang Programming. It&#8217;s being taught by Francesco Cesarini of Erlang Training and Consulting Ltd. Over 90 people registered for this tutorial, and the room is almost full. Save for the handful of available chairs, I&#8217;d feel guilty about [...]]]></description>
				<content:encoded><![CDATA[<p>After lunch and our <a href="http://sirhc.us/journal/2008/07/22/belly-up-to-the-bar-were-geniuses/">trip to the Apple Store</a>, I&#8217;m sitting in Portland 256 for the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3373">Practical Erlang Programming</a>.  It&#8217;s being taught by <a href="http://en.oreilly.com/oscon2008/public/schedule/speaker/10595">Francesco Cesarini</a> of <a href="http://www.erlang-consulting.com/">Erlang Training and Consulting Ltd.</a></p>
<p>Over 90 people registered for this tutorial, and the room is almost full.  Save for the handful of available chairs, I&#8217;d feel guilty about auditing it instead of attending the <i>Real Time 3D on the Web with Open Source</i> I had originally registered for.  This will be a two and a half day course compressed into three hours.  Should be fun, and useful for <a href="http://en.oreilly.com/oscon2008/public/schedule/speaker/4961">Kevin&#8217;s</a> session tomorrow, <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3065">Beautiful Concurrency with Erlang</a>.  After seriously considering the relative merits and general usefulness of the tutorials, I decided <a href="http://www.erlang.org/">Erlang</a> would be much more interesting.  I had made my original choice with the equivalent of a dart board, so I don&#8217;t feel too bad about changing my mind.</p>
<p>The tutorial started with a quick tour of Erlang&#8217;s syntax.  It looks odd, but I&#8217;ve used Lisp and ML in the past, and I&#8217;m a rather good Perl hacker, so it isn&#8217;t proving too difficult to pick up.  The concept of pattern matching intrigues me.  It appears to use equivalency, in the mathematical sense to handle both boolean and assignment operations with the same syntax.  For example,</p>
<pre>
[A,B,C] = [1,2,3]    % A is 1, B is 2, C is 3
[A,B,C] = [1,2]      % error, size mismatch
[A,B,A] = [1,2,3]    % error, A already bound to 1
[A,B,A] = [1,2,1]    % okay, A bound to 1, then equivalent to 1
</pre>
<p>Shortly into the discussion of syntax, Francesco asked that anyone who hasn&#8217;t yet installed Erlang do so.  I executed <code>yum install erlang</code>, which pulled in unixODBC, tcl, and tk as dependencies.  Well, 45 megabytes and 45 minutes later&mdash;an impressive speed of 1 MBpm&mdash;I now have Erlang installed and ready to run.  Just in time for a 10 minute break.</p>
<p>During this first break, we were asked to do a simple exercise in Erlang: write a module, <code>boolean.erl</code>, that implements <code>b_not()</code>, <code>b_and()</code>, <code>b_or()</code>, and <code>b_nand()</code>, without using the built in logical operators.  I&#8217;ve been able to define the structure of the module, but I don&#8217;t know how boolean values are represented in Erlang, so I may have to wait until he gives us the answer.  Vim&#8217;s syntax highlighting tells me that <code>true</code> and <code>false</code> are reserved words, so I can use those.</p>
<p>The solution for this involves writing a simple truth table.  In Erlang, functions are subject to pattern matching in the same way that many programming languages allow for function overloading.  For the logical or, we start with the basic truth table:</p>
<pre>
b_or(true,true)   -&gt; true;
b_or(true,false)  -&gt; true;
b_or(false,true)  -&gt; true;
b_or(false,false) -&gt; false.
</pre>
<p>That&#8217;s downright simple and extremely easy to grasp on a conceptual level, particularly for anyone with any background in mathematics.  However, and this appeals to me as Perl hacker, Erlang allows the programmer to be lazy, but in a good way.  The null variable&mdash;as I&#8217;m calling it due to the analogy with <code>/dev/null</code> on Unix-like systems (or <code>undef</code> in Perl)&mdash;<code>_</code>, allows a kind of lazy matching:</p>
<pre>
b_or(false,false) -&gt; false;    % the only false case with OR
b_or(_,_)         -&gt; true.     % any other case is true
</pre>
<p>The other functions can be written in a similar way.</p>
<p>Back from the break, and the population of the room has thinned very slightly.  Francesco immediately jumped into conditional evaluation, starting with the <code>case</code> clause.  I suspect this may be one of the answers to the exercise.  He followed that with the <code>if</code> clause.  I find it interesting that he&#8217;s done it in that order.  In most languages, the <code>if</code> statement is a much simpler case (no pun intended) and is covered first, before moving into more complex territory.  I think I understand why, the two clauses are implemented in a very similar fashion.  I&#8217;m not sure how equivalent they are, I&#8217;d have to play with them a bit.</p>
<p>As with any functional language, Erlang has strong support for recursion as well as a handful of built in functions (BIFs) implemented in C to accomplish things that are difficult or impossible to do directly in Erlang.  After all, at a certain point, things like date and time require system calls.  Also available are convenience functions to do things like convert tuples to lists or back.</p>
<p>At the second, official, break&mdash;taken after an official entered the room to scold Francesco for being 15 minutes late&mdash;we were presented with two more exercises.  First, to write a function, <code>sum/1</code>, which, given a positive integer <code>N</code>, will return the sum of all the integers between 1 and <code>N</code>.  As an extension, write a function, <code>sum/2</code>, which, given two integers <code>N</code> and <code>M</code>, return the sum of the interval between them, first ensuring <code>N &lt;= M</code>.  Second, write a function, <code>create/1</code>, which will return the list 1 through <code>N</code> given <code>N</code> as its argument.  As an extension, write a function, <code>reverse_create/1</code>, which does the same in reverse.</p>
<p>As I suspected, both exercises are perfect candidates for recursion, which is quite simple to do in Erlang:</p>
<pre>
sum(N) when N &gt; 0 -&gt;
    N + sum(N-1);
sum(0) -&gt;
    0.
</pre>
<p>The simpler list creation function is actually the second, and is solved similarly, but by accumulating a list instead of adding to a sum (which is, actually, also a method of accumulation):</p>
<pre>
reverse_create(0) -&gt;
    [];
reverse_create(N) -&gt;
    [N|reverse_create(N-1)].
</pre>
<p>The first thing I notice is, again, how mathematical Erlang is.  The solution is written in exactly the same way I do it when I&#8217;m jotting down notes while thinking about how to solve the problem.  To me, the syntax is quite elegant.</p>
<p>After going over the solutions to the exercises, we moved into concurrency.  As with most languages worth using, Erlang has a <code>spawn()</code> BIF, used to create processes.  What&#8217;s interesting about spawning processes in Erlang is that the function to do it does not take a system command.  Rather, it takes another Erlang function to run.  It&#8217;s quite a bit more elegant (there&#8217;s that word again) than the equivalent <code>fork()</code> dance done in most imperative languages.</p>
<p>Communication between Erlang processes is done via message passing; data is never shared.  As with everything else, the method for doing so is quite elegant: <code>Pid2 ! {self(), foo}</code>.  Okay, maybe someone has to be me to find that elegant.</p>
<p>The whole process concept in Erlang is quite nice and, again, elegant.  It&#8217;s plain that it is the primary method by which systems in Erlang are designed.  So far, though, we&#8217;ve only seen trivial examples.  That&#8217;s okay, because this is only a three hour tutorial.  However, as Larry Wall once said about Perl: It makes the easy things easy and the hard things possible.  It&#8217;s a good litmus test for any language.  It&#8217;s far too early for me to pass any judgment on Erlang.  I&#8217;d like to use it in anger sometime, to see how it performs for me.  Perhaps I can get my local Perl Mongers interested in chatting about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-practical-erlang-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Belly Up to the Bar, We&#8217;re Geniuses</title>
		<link>http://sirhc.us/belly-up-to-the-bar-were-geniuses/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=belly-up-to-the-bar-were-geniuses</link>
		<comments>http://sirhc.us/belly-up-to-the-bar-were-geniuses/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 20:35:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple Store]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[tech support]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=204</guid>
		<description><![CDATA[During the morning tutorial at OSCON, Dan&#8217;s MacBook Pro refused to boot. We tried a few tricks, but gave up fairly quickly, since we didn&#8217;t want to miss any of Damian Conway&#8217;s Perl Worst Practices tutorial. Fortunately, there&#8217;s an Apple Store across the river at Pioneer Place. So we met up with Alice as Dan, [...]]]></description>
				<content:encoded><![CDATA[<p>During the morning tutorial at OSCON, Dan&#8217;s MacBook Pro refused to boot.  We tried a few tricks, but gave up fairly quickly, since we didn&#8217;t want to miss any of Damian Conway&#8217;s <i>Perl Worst Practices</i> tutorial.  Fortunately, there&#8217;s an <a href="http://store.apple.com/us_kiosk_202057">Apple Store</a> across the river at <a href="http://www.pioneerplace.com/">Pioneer Place</a>.  So we met up with Alice as Dan, Al, Brad, and I headed over to the mall for our lunch break.</p>
<p>Unfortunately, the first appointment Dan could get at the <a href="http://www.apple.com/retail/geniusbar/">Genius Bar</a> is for 8:00 AM Wednesday morning.  The girl who entered his appointment asked about the problem and, while he was describing it, I noticed that the computer wasn&#8217;t turning off.  I flipped it over, took out the battery, replaced the battery, flipped it right, and turned it on.  We were hopeful at first, as the login screen came up, but the screen went dark again.</p>
<p>Or did it?</p>
<p>Upon closer inspection, the display was on, but the back light wasn&#8217;t.  <a href="http://www.dailyack.com/">Al</a> stepped up to squint at the display and attempt to reboot the machine so he could reset the NVRAM.  In what I expected was a futile move, I pulled out a flash light and aimed it at the Apple logo behind the screen.  It illuminated just enough for Al to locate the cursor and get the system to reboot.</p>
<p>After the reset and the reboot, Dan&#8217;s computer is working again.  I asked for a genius badge, but they didn&#8217;t seem interested in letting me have one.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/belly-up-to-the-bar-were-geniuses/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Perl Worst Practices</title>
		<link>http://sirhc.us/oscon-2008-perl-worst-practices/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-perl-worst-practices</link>
		<comments>http://sirhc.us/oscon-2008-perl-worst-practices/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 18:36:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[clever]]></category>
		<category><![CDATA[Damian Conway]]></category>
		<category><![CDATA[obfuscation]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=198</guid>
		<description><![CDATA[I&#8217;m sitting in Portland 252 for my first tutorial of the day, Perl Worst Practices with Damian Conway. He&#8217;s started off by complimenting us on our intelligence and our ability to convince our bosses or significant others that paying for a worst practices course was a good idea. Most of us are, of course, aware [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m sitting in Portland 252 for my first tutorial of the day, Perl Worst Practices with Damian Conway.  He&#8217;s started off by complimenting us on our intelligence and our ability to convince our bosses or significant others that paying for a worst practices course was a good idea.</p>
<p>Most of us are, of course, aware of the concept of best practice when coding.  Writing code that&#8217;s maintainable, predictable, and follows the rules.  Oh, and uses Java.</p>
<p>Worst practice is, by contrast, code that is obfuscated, unmaintainable, and breaks all of the rules.  Today, we will be studying code that Damian has submitted to the Obfuscated Perl contest.  This promises to be very, very scary.</p>
<p>Damian&#8217;s entry to this contest was <a href="http://www.perlfoundation.org/perl5/index.cgi?selfgol">SelfGOL</a>, a program capable of self-replication, rewriting other Perl programs to themselves self-replicate, detecting un-rewritable programs, playing Conway&#8217;s &#8220;Game of Life,&#8221; and, as if that wasn&#8217;t enough, animating any text as a cycling marquee banner.  The main constraint of the contest is that the entry must be under 1,000 bytes of code, so it shouldn&#8217;t be too difficult to understand.  Obviously it doesn&#8217;t use any modules, because that would be too easy.  Not only that, but it doesn&#8217;t use a single control structure.  This is going to be great.</p>
<p>Following an amusing demonstration of SelfGOL, we moved into treating it as a case study for a set of principles.  Principles that will focus on the very practices SelfGOL embodies, and why they should never, ever be used.  As I intend to enjoy the discussion, I won&#8217;t spend much time writing about the discussion and examples accompanying these principles, but rather simply note the principles for my own benefit (documentation for the win).  After all, sharing all my new tips and tricks would suck all the fun out of it.</p>
<p>Principle 1: Sane and consistent layout makes code more maintainable (but it isn&#8217;t a magic bullet if the code itself is beyond help).</p>
<p>Principle 2: Using built-in features isn&#8217;t necessarily smarter or cleaner (even though fellow developers&#8217; futile struggles to recall those features can be highly amusing).</p>
<p>Principle 3: Obscure obsolete features are obscure and obsolete for a reason (and restasking them for even more obscure purposes is not helping).</p>
<p>Principle 4: Each statement should do one thing only (since that&#8217;s the upper limit most brains can comprehend).</p>
<p>Principle 5: Relying on default behavior makes code very slightly easier to write and vastly harder to read (because most readers can see better than they can think).</p>
<p>Principle 6: Randomly placed subroutine definitionss are static (in the radio interference sense).</p>
<p>Principle 7: Choose data structures that simplify your task (even if the task is to make those data structures incomprehensible).</p>
<p>Principle 8: Just because you use some operation frequently doesn&#8217;t mean it should be in a utility function (especially if it&#8217;s in a function merely to abbreviate its name).</p>
<p>Principle 9: Encapsulating the familiar can decrease maintainability (refactoring isn&#8217;t a substitute for sanity).</p>
<p>Principle 10: Treat any clever one-line solution as an alarm bell (or as an antipersonnel mine with a six-month delay fuse).</p>
<p>Principle 11: Familiarity breeds comprehension (it breeds contempt (but hey, what&#8217; doesn&#8217;t?)).</p>
<p>Principle 12: Table-driven solutions are clean, efficient, and extensible (as long as you don&#8217;t mind losing a little comprehensibility).</p>
<p>Principle 13: Building a messy data structure and then cleaning it up is often easier than building it cleanly in the first place (and to hell with the purists).</p>
<p>Principle 14: Some code is better compiled at run-time (but the urge to use <tt>eval</tt> is Nature&#8217;s way of letting you know there&#8217;s not yet enough pain or misey in your life).</p>
<p>Principle 15: Parentheses are our friends (cos, if you can remember all 24 levels of Perl&#8217;s precedence, you gotta get a life, dude!).</p>
<p>Principle 16: Edge cases suck (and edge cases of familiar constructs suck worst of all).</p>
<p>Principle 17: Code should do what it seems to be doing (especially when it seems to be doing something subtle).</p>
<p>Principle 18: Conceptual elegance is no guarantee of actual maintainability (nor a good substitute for it).</p>
<p>Principle 19: If you&#8217;re going to have default values, define them near the place they may actually be used (or, at least, somewhere they have a slim chance of being discovered).</p>
<p>Principle 20: No matter how good you think your error messages are, they&#8217;re still too brief, too obscure, and too hard to decipher (even if you&#8217;ve already taken Principle 20 into account).</p>
<p>Principle 21: Avoid using obsolete and arcane magic punctuation variables with unfamiliar default values and unexpected global effects (even if you happen to enjoy a little self-inflicted pain in other recreational activities).</p>
<p>Principle 22: The fundamental complexity of any problem is irreducible (optimizations merely redistribute the pain differently).</p>
<p>Principle 23: Code that breaks when it&#8217;s reformatted is already broken (though on a much more profound and interesting level).</p>
<p>Principle 24: If it&#8217;s impossible to understand, it&#8217;ll be impossible to maintain (on the bright side, of course, such code is highly stable).</p>
<p>This last one should, but often doesn&#8217;t, go without saying.</p>
<p>Principle 25: Phenomimetic retrodeterministic nominativism generally does not improve code comprehension (then again, did it sound like it would?).</p>
<p>Principle 26: Don&#8217;t allow dynamic behavior to violate static expectations (and the easiest way to do that is reusing over-scoped variables for unrelated purposes).</p>
<p>Principle 27: Explicit behaviors are better than implicit behaviors (especially when the specification of the implicit behavior is syntactically baroque and hard-to-spot, and the behavior itself is unknown to the majority of developers).</p>
<p>At this late point of the tutorial, <a href="http://www.canspice.org/">Brad</a> pointed out to me that all of these principles are in the included materials.  Now that I&#8217;ve already transcribed so much from the slides, I don&#8217;t have the heart to delete it all.  Of course, since I haven&#8217;t been commenting on all of the black magic to this point, there would then be very little in the end to post.  Brad also has a much better <a href="http://www.canspice.org/2008/07/22/oscon-2008-perl-worst-practices-by-damian-conway/">post</a> about this tutorial, since he actually took real notes.</p>
<p>Principle 28: Code that pre-caches or precomputes its data is much easier to maintain than code that caches or computes on-the-fly (when you&#8217;re running at multiple gigahertz, acquiring your data a few thousand operations early is still plenty JIT enough).</p>
<p>Principle 29: Coding is an art, but code shouldn&#8217;t be art (evolution made programmers boring, pedestrian, and aesthetically challenged for good reasons).</p>
<p>It&#8217;s mesmerizing to listen to the thought process behind Damian&#8217;s obfuscated code.  I can&#8217;t help but wonder if this well-organized, well-thought-out explanation is anything close to how Damian designed this program.  Or, rather, if there are extremely convoluted, scary, and most importantly, evil gears grinding away inside his head.  In fact, I suspect this entire tutorial may have been designed purely as a way of documenting SelfGOL so Damian himself can remember how it works.  Clever.</p>
<p>This kind of programming is silly and fun, but it serves a real purpose.  Pushing the limits of a language teaches about its dark places.  The understanding that comes from it vastly improves the skills of the programmer, even if&mdash;especially if&mdash;the bad things are never, ever used.  Perl, even more than other languages, encourages this kind of play, thanks to its rich diversity and culture.</p>
<p>Important safety tip: keep these tricks and contrivances for recreational purposes only.</p>
<p>I don&#8217;t know what&#8217;s more disturbing, how much of the tutorial I understood, or how much I already knew coming in.</p>
<p>[tags]oscon, oscon08, Perl, Damian Conway[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-perl-worst-practices/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Day 2</title>
		<link>http://sirhc.us/oscon-2008-day-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-day-2</link>
		<comments>http://sirhc.us/oscon-2008-day-2/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 15:01:16 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=195</guid>
		<description><![CDATA[It&#8217;s Tuesday morning in Portland and, after last night&#8217;s festivities, I&#8217;m glad there is fruit and coffee available for breakfast at the Oregon Convention Center. The coffee is Starbucks and the fruit isn&#8217;t ripe, but it&#8217;s a welcome sustenance this morning. With approximately an hour before the morning tutorials, people are slowly beginning to filter [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s Tuesday morning in Portland and, after last night&#8217;s festivities, I&#8217;m glad there is fruit and coffee available for breakfast at the <a href="http://www.oregoncc.org/">Oregon Convention Center</a>.  The coffee is Starbucks and the fruit isn&#8217;t ripe, but it&#8217;s a welcome sustenance this morning.  With approximately an hour before the morning tutorials, people are slowly beginning to filter into the expo hall in search of food.</p>
<p>I have a fun day lined up.  This morning I will attend <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2443">Perl Worst Practices</a> in Portland 252.  I&#8217;m looking forward to this tutorial, particularly because it&#8217;s being taught by <a href="http://en.oreilly.com/oscon2008/public/schedule/speaker/4710">Damian Conway</a>.  I&mdash;as well as my boss, I&#8217;m sure&mdash;am excited about the prospect of putting these practices to work when I return to my job next week.</p>
<p>After the lunch break, which will probably be spent across the river again, I am signed up for <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3038">Real Time 3D on the Web with Open Source</a> in E143/144, being taught by <a href="http://en.oreilly.com/oscon2008/public/schedule/speaker/6841">Matthew Edwards</a>.  I&#8217;m not sure what to expect from this session.  A week prior to the conference, I received an e-mail instructing me to download a set of programs, including <a href="http://www.blender.org/">Blender</a> and <a href="http://www.inkscape.org/">Inkscape</a>.  This is well out of the ordinary for me, so I&#8217;m not sure what to expect.  I hope it will be fun, but if not, I may duck out and into the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3373">Practical Erlang Programming</a> in Portland 256, which <a href="http://www.dailyack.com/">Al</a> is attending.</p>
<p>A half hour now until my first tutorial.  Time enough for more coffee.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monday Night Entertainment</title>
		<link>http://sirhc.us/monday-night-entertainment/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=monday-night-entertainment</link>
		<comments>http://sirhc.us/monday-night-entertainment/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 07:34:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Beer]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=193</guid>
		<description><![CDATA[After the tutorials on Monday, talk on the #oscon IRC channel turned to dinner. Brad, Al, and I decided we should go in search of beer, regardless of what people wanted to do for dinner. After dropping our conference crap off in our respective hotel rooms, we met up at the conference center MAX station. [...]]]></description>
				<content:encoded><![CDATA[<p>After the tutorials on Monday, talk on the #oscon IRC channel turned to dinner.  <a href="http://www.canspice.org/">Brad</a>, <a href="http://www.dailyack.com/">Al</a>, and I decided we should go in search of beer, regardless of what people wanted to do for dinner.  After dropping our conference crap off in our respective hotel rooms, we met up at the conference center MAX station.  Joining our party was Jonathan, from my San Diego Perl Mongers group, and Alice, Brad&#8217;s wife.</p>
<p>We started the night at <a href="http://www.kellsirish.com/">Kells Irish Restaurant and Pub</a> on the other side of the Willamette.  The hostess there was extremely attractive, even if some in our party made note of how young she appeared.  As it&#8217;s rude to ask a woman her age, I refrained from doing so.  After a few beers and sweet potato fries, we needed to find food.  So we decided on Italian, and <a href="http://mamamiatrattoria.com/">Mama Mia Trattoria</a> fit the bill.  Near the end of dinner, I received a text message from Dan.  He and his fellow <a href="http://www.tierra.net/">Tierranet</a> attendees were at <a href="http://paddys.com/">Paddy&#8217;s Bar and Grill</a>.  So we made our way over there for a few more pints.</p>
<p>We called it a night before the MAX stopped running, and made our ways back to our respective hotels.  Dan and I happen to both be staying at the Marriott and, as we passed by the bar, we saw his fellow coworkers.  Not only that, but the barmaid, at that very moment, announced last call.  Not wanting to pass up such a coincidence, Dan and I sat down for another pint.</p>
<p>Not satisfied with the early hour, Dan and I decided to walk down to <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&#038;friendID=88965821">American Cowgirls</a>, a bar across the street from the Oregon Convention Center.  Unfortunately, the bar is closed on Sunday and Monday, so we ended up calling it a night and heading back to our rooms.</p>
<p>Ah, but it&#8217;s only Monday night, and OSCON runs through Friday.  It will be a good week.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/monday-night-entertainment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Perl Security</title>
		<link>http://sirhc.us/oscon-2008-perl-security/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-perl-security</link>
		<comments>http://sirhc.us/oscon-2008-perl-security/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 23:38:39 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=181</guid>
		<description><![CDATA[After lunch, I wandered over to Portland 255 with Brad and Al for the Perl Security tutorial, presented by Paul Fenwick. Straight away I can tell that he&#8217;s going to be a lively and entertaining presenter. His slides go by quickly, as they are merely short counterpoints to his commentary. His commentary, which is also [...]]]></description>
				<content:encoded><![CDATA[<p>After lunch, I wandered over to Portland 255 with <a href="http://www.canspice.org/">Brad</a> and <a href="http://www.dailyack.com/">Al</a> for the <a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3049">Perl Security</a> tutorial, presented by <a href="http://use.perl.org/~pjf">Paul Fenwick</a>.  Straight away I can tell that he&#8217;s going to be a lively and entertaining presenter.  His slides go by quickly, as they are merely short counterpoints to his commentary.  His commentary, which is also very quick and slightly witty.  I don&#8217;t expect to have any trouble paying attention.  If anything, I&#8217;m worried that I&#8217;ll fail to pay attention to my writing and, of course, to the #oscon IRC channel.</p>
<blockquote><p>
&#8220;A computer is secure if you can depend on it and its software to behave as you expect.&#8221;<br />
&mdash;Simson Garfinkel and Gene Spafford in Practical UNIX &#038; Internet Security
</p></blockquote>
<p>In a nutshell, that&#8217;s what security is.  If a computer behaves as expected, it is secure.  That is, unless it&#8217;s expected to be insecure, I suppose.  I&#8217;m not sure I&#8217;d enjoy that situation, so I&#8217;ll assume the assumption of expected behavior is both expected and secure.</p>
<p>Most security boils down to common sense.  Unfortunately, this mythical state of being is far less common than its name would imply.  Sad, but true.  People are often lazy or distracted, and these usually lead to really stupid mistakes.</p>
<p>There is a key acronym when thinking about security: <a href="http://www.cia.gov/">CIA</a>.  No, not that CIA.  Yes, I thought so, too, at first.  What it really means is, Confidentiality, Integrity, and Accessibility.  Confidentiality, because information will not remain secure if it does not remain confidential.  Integrity, because information must remain known and trusted to remain secure.  Accessibility, because denial of access to information may result in insecurity.  I may not have done justice to this acronym, because the tutorial moved on quickly after this point.  I&#8217;m sure there are <a href="http://en.wikipedia.org/wiki/Information_security">web sites</a> dedicated to security that can better define the term.</p>
<p>Perhaps the most important piece of advice for the unwitting Perl programmer is to always perform data validation.  Never, ever trust input, <i>regardless</i> of where it came from.  Fortunately, Perl provides Taint Mode, which forces the program to mistrust input.</p>
<p>Paul shared with us a variety of examples to demonstrate why input should not be trusted, as well as a number of examples of how to properly untaint data.  As with anything, it&#8217;s easy to become lazy when untainting data, which can sometimes be as bad as not using Taint Mode at all.</p>
<p>The tutorial continued into what is essentially a list of best practices to follow when programming securely with files.</p>
<ul>
<li>Do: Use the three argument version of <tt>open()</tt>, to prevent attacks using file names with magic characters in them.</li>
<li>Do: Use <tt>sysopen()</tt> instead of <tt>open()</tt>, which provides ways to avoid overwriting a file, thus helping to prevent symlink attacks often as a result of race conditions.</li>
</ul>
<p>The common attack vector in so many of the examples given so far has been via file names.  Wouldn&#8217;t it be great if we could write programs without file names at all?  Well, when working in a Unix-like environment, we can.  Perl has the ability to use anonymous files by passing <tt>undef</tt> as the third argument to <tt>open()</tt>.  He was even kind enough to provide us with a way of passing these anonymous file handles to child processes, by disabling the close-on-exec flag prior to calling <tt>system()</tt>.  Sorry, the slide went by too quickly for me to transcribe the method.  It, along with all the other examples, are available <a href="http://perltraining.com.au/notes.html">online</a>.</p>
<p>Calling <tt>system()</tt> and using backticks make Paul really, really angry.  Why?  Because doing it right is hard.  In fact, just correctly checking the result in <tt>$?</tt> requires 10 lines of code, according to the documentation for <tt>system()</tt> in the <a href="http://perldoc.perl.org/perlfunc.html">perlfunc</a> manual page.  So, 10 lines just to verify that a single line of code executed successfully.</p>
<p>I briefly became distracted by news of a <a href="http://sirhc.us/journal/2008/07/21/fire-in-encinitas/">fire</a> back home.  However, what I was able to get is that Paul has written a module, <a href="http://search.cpan.org/dist/IPC-System-Simple/">IPC::System::Simple</a>, which, as the name implies, makes the process of calling system commands quite simple.</p>
<p>After the mid-afternoon break, we ventured into setuid and setgid programs.  Perl provides ways to determine who is really running the program (<tt>$&lt;</tt>, <tt>$(</tt>) and who is effectively running the program (<tt>$&gt;</tt>, <tt>$)</tt>).  Perl is, however, ignorant of the saved UID, which is the third UID in Unix, along with real and effective.  Unfortunately, the standard for setuid scripts is confusing and implemented differently on various systems, so don&#8217;t use it.  Really.</p>
<p>Even worse, the <tt>$&lt;</tt> and <tt>$&gt;</tt> variables are cached by Perl, so they may lie to the program, especially when using the <tt>setresuid()</tt> system call to properly drop privileges, as recommended.  Fortunately, another useful module from Paul, <a href="http://search.cpan.org/dist/Proc-UID/">Proc::UID</a> provides a solution to this caching problem.</p>
<p>Now we move into DBI security.  <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL injection attacks</a> are very similar to the file name or shell attacks covered previously.  Any database programmer worth his salt should be aware of the hazards of composing SQL, so I won&#8217;t go into the examples here.  Programmers should, of course, use placeholders if they&#8217;re available.  The DBI module itself provides its own Taint Mode, both for input and output, adding all the benefits of Perl Taint Mode to database interface code.  Even better, it can be controlled on a per-statement basis.</p>
<p>All of this careful taint checking we&#8217;ve done and Perl may end up sabotaging us anyway.  When presented with files on the command line, Perl is happy to just open them using the simplistic, dangerous, single argument <tt>open()</tt> call.  Typically, this is done when using the <tt>&lt;&gt;</tt> operator in a <tt>while</tt> loop.  Also, everyone forgets to use Taint Mode in cron jobs.  Don&#8217;t do that.  Really.</p>
<p>Because Perl is written in C, the null byte becomes very interesting.  While it is a perfectly valid character in Perl strings, it marks the end of a C string.  In most circumstances, this is not a problem.  However, it can mean bad things when making systems calls, which are written in C.  Normally, at a terminal, null bytes don&#8217;t occur in user input, unless that input comes from the Web.  Null bytes can be trivially represented by the %00 escape sequence.</p>
<p>I need to go through the list of Paul&#8217;s <a href="http://search.cpan.org/~pjf/">modules</a>, since they appear to be ideal for the type of programming I tend to do, as an IT developer.  In fact, he&#8217;d like to see some Solaris patches for Proc::UID, so I can probably help him with that.</p>
<p>I noticed during the tutorial that Paul must read the <a href="http://failblog.org/">Fail Blog</a> and <a href="http://icanhascheezburger.com/">I Can Has Cheezburger</a>, or at least knows someone who does.  Quite a few of the images that have appeared on his slides have graced the pages of those web sites.</p>
<p>As an added bonus, the tutorial ended 40 minutes early, and Paul had bonus material.  What a guy.</p>
<p>The tutorial, and with it the day, is now over.  It&#8217;s time for dinner, then maybe a <a href="http://en.wikipedia.org/wiki/Birds_of_a_Feather_%28computing%29">BOF</a> session or maybe just a trip to a pub.</p>
<p>[tags]oscon, oscon08, perl, security[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-perl-security/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fire in Encinitas</title>
		<link>http://sirhc.us/fire-in-encinitas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fire-in-encinitas</link>
		<comments>http://sirhc.us/fire-in-encinitas/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 21:48:47 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Home]]></category>
		<category><![CDATA[Encinitas]]></category>
		<category><![CDATA[Fire]]></category>
		<category><![CDATA[San Diego]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=186</guid>
		<description><![CDATA[I just received a text message from Mrs. sirhc that a rather large fire has broken out on the hill behind the Encinitas Towne Center at the intersection of Leucadia and El Camino Real. That&#8217;s about four miles from our house, with quite a lot of space without fuel in between. However, here I am [...]]]></description>
				<content:encoded><![CDATA[<p>I just received a text message from Mrs. sirhc that a rather large fire has broken out on the hill behind the Encinitas Towne Center at the intersection of Leucadia and El Camino Real.  That&#8217;s about four miles from our house, with quite a lot of space without fuel in between.  However, here I am in Portland, Ore. at OSCON, a thousand miles from home.  It hasn&#8217;t hit the news wires yet, so the only information I&#8217;ve been able to get has been from my wife.  I&#8217;m told that a great many firefighters have been called out to fight the blaze, so I&#8217;m not too worried that it will become another major blaze on the scale of the <a href="http://en.wikipedia.org/wiki/Cedar_Fire">Cedar</a> or <a href="http://en.wikipedia.org/wiki/October_2007_California_wildfires">Witch</a> fires.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/fire-in-encinitas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Monday Lunch</title>
		<link>http://sirhc.us/oscon-2008-monday-lunch/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-monday-lunch</link>
		<comments>http://sirhc.us/oscon-2008-monday-lunch/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 20:28:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[lunch]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=183</guid>
		<description><![CDATA[Rather than settle for the box lunches in the expo hall, a handful of us decided to hop on the MAX for a quick trip across the river for food. We ended up at the back of a truck ordering Mexican food. I had a carnitas burrito and a guava soda. It was quite a [...]]]></description>
				<content:encoded><![CDATA[<p>Rather than settle for the box lunches in the expo hall, a handful of us decided to hop on the MAX for a quick trip across the river for food.  We ended up at the back of a truck ordering Mexican food.  I had a carnitas burrito and a guava soda.  It was quite a lot better than the box lunch (I will safely assume).  Actually, one of our number had grabbed a box lunch before heading out.  He thoughtfully passed it on to a hungry young woman playing guitar on a street corner.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-monday-lunch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2008: Mastering Perl</title>
		<link>http://sirhc.us/oscon-2008-mastering-perl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2008-mastering-perl</link>
		<comments>http://sirhc.us/oscon-2008-mastering-perl/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 18:56:49 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=177</guid>
		<description><![CDATA[It&#8217;s early on Monday morning and I&#8217;m in my first tutorial session of the day, following the continental breakfast provided in Convention Hall E. I wasn&#8217;t overly impressed with the tutorial options this year. So, being who I am, I mostly opted for the Perl track. That brings me to where I sit now: D136, [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s early on Monday morning and I&#8217;m in my first tutorial session of the day, following the continental breakfast provided in Convention Hall E.  I wasn&#8217;t overly impressed with the tutorial options this year.  So, being who I am, I mostly opted for the Perl track.  That brings me to where I sit now: D136, listening to <a href="http://www252.pair.com/comdog/">brian d foy</a> teach us about <a href="http://www252.pair.com/comdog/mastering_perl/">Mastering Perl</a>.  I almost didn&#8217;t attend this tutorial, since I&#8217;ve read the book and, while I found it excellent, I learned very little from it.  I took this to mean that I&#8217;ve already mastered Perl.  But, like I said, my options are limited&mdash;I&#8217;m not very interested in the introductory Python tutorial.</p>
<p>The idea behind Mastering Perl is not to talk about Perl to a group of Perl masters.  Instead, it&#8217;s about mastering Perl in the guild sense (and not of the <a href="http://en.wikipedia.org/wiki/Society_for_Creative_Anachronism">SCA</a> variety).  Back in the day, and still existing in some professions today, there was an apprentice system.  A neophyte&mdash;in today&#8217;s nomenclature, a noob&mdash;would begin acquiring skills under a master of the art.  As he progressed, he would be entrusted with more and more responsibility, until finally he became a master himself and took people under his own wings.</p>
<p>This <a href="http://en.wikipedia.org/wiki/Apprenticeship">apprenticeship</a> system, somewhat unfortunately, does not exist in the computing world.  That&#8217;s where brian d foy feels that <i>Mastering Perl</i> fits.  Lacking true masters, the book acts as a substitute.  Someday, we may even create a guild system.  But then we&#8217;d probably have to pay dues and follow rules, and that&#8217;s not very attractive.  That said, it&#8217;s the model I&#8217;m hoping to use at my own place of work.  I&#8217;d like to hire one or two developers who I can take under my own wing and mentor them in the ways of Perl and the grid.</p>
<p>The first two topics covered are tools for optimization, profiling and benchmarking.  Often mis-attributed to Donald Knuth, Tony Hoare once said, &#8220;Premature optimization is the root of all evil.&#8221;  What this means is that one should never assume what requires optimization.  Let the testing be the guide.</p>
<p>While profiling is objective, benchmarks, like statistics, are not always objective.  Everyone has an agenda and benchmarks are subjective.  Often, benchmarks are short-sighted.  For example, benchmarking code run time and attempting to optimize for it may not be worth the expense of the developer time required to make the requisite changes.  It&#8217;s worth analysing what is important before blindly following benchmarks.</p>
<p>I&#8217;ve been on the receiving end of misplaced premature optimization.  I worked with a development group that put far too much emphasis on achieving perfect results on their <a href="http://search.cpan.org/dist/Devel-Cover/">Devel::Cover</a> reports.  This led to strange bugs in their code, and a strong belief that &#8220;<a href="http://use.perl.org/~cgrau/journal/33924"><tt>new()</tt> doesn&#8217;t work that way</a>.&#8221;  As it turns out, their test suite was calling <tt>new()</tt> in two ways.  I forget what the second method was, but it was not used anywhere else in their code.  However, in order to get this test code to run, and get 100% coverage, they added code to the constructor for every class.  Code that prevented inheritance of the method.  The team then convinced themselves that constructors could not be inherited in Perl, rather than realizing that their own habits were the problem.</p>
<p>After the mid-morning break, we wrapped up the discussion on profiling and benchmarking, and moved into configuration.  This is a vital topic for anyone who desires the ability to pass a program off to users without being bothered to modify it later in response to users&#8217; desire to customize the program for a slightly different use.</p>
<p>External configuration, particularly via the command line, is something I depend on heavily, even in very simple Perl or Bourne shell scripts.  I almost always create command line options for performing a dry run or output debugging information.  Not only are these useful for development, they can live on in the final program, providing help to the final user, who more often than not is me.  Sometimes I will even add configuration to values that never change, just for when they eventually do.</p>
<p>Jumping past configuration, we move on to logging.  It&#8217;s really easy to add to a program, and it&#8217;s really useful to leave in a program when it&#8217;s released.  The ability to enable logging on the fly sure beats adding a bunch of <tt>print()</tt> calls in the code when it inevitably breaks at three in the morning.  The <a href="http://search.cpan.org/dist/Log-Log4perl/">Log::Log4perl</a> module is a particularly powerful method of adding logging to programs.  It&#8217;s well worth investigating for anyone who wants to easily add logging functionality to their code.</p>
<p>The final topic of the day is lightweight persistence.  It&#8217;s always nice to have data stick around between program invocations.  The easy way (and everything in the second half of the tutorial is easy) to add persistence to code is to not use DBI.  While DBI is powerful, it also tends to require a database server (ignoring SQLite for the moment).  Modules such as <a href="http://search.cpan.org/dist/Data-Dumper/">Data::Dumper</a>, <a href="http://search.cpan.org/dist/YAML/">YAML</a> or <a href="http://search.cpan.org/dist/Storable/">Storable</a> are ideal for easily storing and retrieving data in code.</p>
<p>After the tutorial, brian will be available at the <a href="http://www.powells.com/">Powell&#8217;s Books</a> mini store, located near the registration desk, to sign copies of <i>Mastering Perl</i>.  I already have a copy, thanks to my local <a href="http://sandiego.pm.org/">Perl Mongers</a> group, but it&#8217;s all marked up with the group name, and I wouldn&#8217;t mind having a signed copy.</p>
<p>Now it&#8217;s time for lunch, which is good, because I&#8217;m quite hungry.  I hope the conference-provided lunch is decent during the tutorials, as it was last year.</p>
<p>[tags]oscon, oscon08, perl[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2008-mastering-perl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>In Transit</title>
		<link>http://sirhc.us/in-transit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=in-transit</link>
		<comments>http://sirhc.us/in-transit/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 03:44:36 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=172</guid>
		<description><![CDATA[It&#8217;s time once again for my annual pilgrimmage to OSCON, the O&#8217;Reilly Open Source Conference. As much as I loathe the anticipation of and the preparation for travel, I grow excited as I finally begin my journey. I look at it as an adventure, even if it&#8217;s merely a few uncomforable hours in bland airports [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s time once again for my annual pilgrimmage to OSCON, the O&#8217;Reilly Open Source Conference.  As much as I loathe the anticipation of and the preparation for travel, I grow excited as I finally begin my journey.  I look at it as an adventure, even if it&#8217;s merely a few uncomforable hours in bland airports and cramped airplanes.</p>
<p>As is my habit, I arrived at the San Diego airport extra early&mdash;two and a half hours in this case.  I was extremely pleased to see no lines, at the check-in counter or security, when I entered the terminal.  Unfortunately, I was immediately told by a customer service agent that there are air traffic control delays for flights in and out of San Francisco today.  As a reward for my promptness, I was rebooked on an earlier flight, which was supposed to depart at 10:21 in the morning&mdash;approximately half an hour before I arrived at the counter.  Once I got through to the gate, which was pleasant with only one person in front of me in the security line, I discovered that it had been scheduled for 11:45.  As I wrote these words, it was announced that the flight had been released and boarding would being immediately, at 11:25.</p>
<hr />
<p>The flight itself was pleasant, if boring.  The plane was not full and I was fortunate to receive an aisle seat with a small Asian girl next to me.  While complimentary soft drinks were provided, I couldn&#8217;t help but notice that the snacks, so common on domestic flights, were nowhere to be found.  Another example of airline cost savings, no doubt.</p>
<p>We touched down in San Francisco about 10 minutes after one in the afternoon.  My connecting flight to Portland won&#8217;t depart until approximately 5:30 in the evening.  That leaves me with some four hours to kill in an airport without free wifi.  I need to compile a list of airports that offer free access to the Internet, so I can be sure to book trips only through those.</p>
<p>It&#8217;s still too early for my connecting flight to be displayed on United&#8217;s monitors, so I&#8217;ve sat down in an uncrowded restaurant, the <a href="http://www.thebuenavista.com/">Buena Vista</a>, where I&#8217;m writing this.  I&#8217;ve ordered a Gordon Biersch Marzen and a reuben with cole slaw.  It&#8217;s actually quite good.</p>
<p>I had considered attempting to stand by on an earlier flight to Portland, but the lines are long, and I have baggage checked through.  I&#8217;ll just enjoy the time I have available to me to both relax and jot down whatever comes to mind my my new <a href="http://www.moleskine.com/">Moleskine</a> notebook.  Hopefully, the monitors will display my flight&#8217;s gate soon, so I&#8217;ll know the best place to find a seat.</p>
<hr />
<p>I&#8217;m writing this now from my seat on the MAX light rail, heading to the Oregon Convention Center stop.  I&#8217;m staying in the Courtyard by Marriott, a couple blocks north of the OCC.  The flight out of San Francisco was delayed, but only by about 20 minutes.  I managed to sleep for most of the time we were in the air, so I&#8217;m feeling pretty good right now.  I&#8217;m looking forward to checking into my room and finding something for dinner.</p>
<p>As I was composing this final piece of my entry, I received a call from the fraud prevention department of my bank.  At least now I know why the MAX ticket kiosk wouldn&#8217;t accept my credit card.  How annoying.</p>
<p>Tomorrow, OSCON.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/in-transit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bound for OSCON</title>
		<link>http://sirhc.us/bound-for-oscon/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bound-for-oscon</link>
		<comments>http://sirhc.us/bound-for-oscon/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 23:49:22 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=165</guid>
		<description><![CDATA[In a few short hours, I will pack for my trip to Portland, Ore. for the 10th annual O&#8217;Reilly Open Source Conference. This will be my third time attending, and I&#8217;m looking forward to seeing friends from past years, as well as meeting new ones. Though I don&#8217;t do it very often, I really do [...]]]></description>
				<content:encoded><![CDATA[<p>In a few short hours, I will pack for my trip to Portland, Ore. for the 10th annual <a href="http://en.oreilly.com/oscon2008/public/content/home">O&#8217;Reilly Open Source Conference</a>.  This will be my third time attending, and I&#8217;m looking forward to seeing friends from past years, as well as meeting new ones.</p>
<p>Though I don&#8217;t do it very often, I really do enjoy visiting places away from home.  Unfortunately, I don&#8217;t often enjoy the act of getting there.  It seems that the sole purpose of the US airline industry is to make things as inconvenient as possible for travelers.  They&#8217;re not alone, however.  When they&#8217;re not up to the task, the US government, in the form of the <a href="http://en.wikipedia.org/wiki/Transportation_Security_Administration">TSA</a>, steps in to take up the slack.</p>
<p>Most of the time, my trips are uneventful and I end up getting worked up for nothing.  Last year, though, my checked luggage ended up on a different flight than I did.  Fortunately, both of those flights were bound for Portland, so my suitcase was delivered to the hotel later that same evening.  Here&#8217;s hoping my trip tomorrow is uneventful.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/bound-for-oscon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mail Is Boring</title>
		<link>http://sirhc.us/mail-is-boring/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mail-is-boring</link>
		<comments>http://sirhc.us/mail-is-boring/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 20:21:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Home]]></category>
		<category><![CDATA[Boring]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Paperless]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=160</guid>
		<description><![CDATA[As no doubt nobody has noticed, I haven&#8217;t posted anything about my paperless experiment since the end of the first month. There&#8217;s a good reason for that. It&#8217;s incredibly boring. One thing I&#8217;ve learned is that I get the same mail week after week. Before this experiment, I&#8217;d never paid much attention to my mail. [...]]]></description>
				<content:encoded><![CDATA[<p>As no doubt nobody has noticed, I haven&#8217;t posted anything about my <a href="http://sirhc.us/journal/2008/05/04/going-paperless/">paperless experiment</a> since the end of the first month.  There&#8217;s a good reason for that.  It&#8217;s incredibly boring.</p>
<p>One thing I&#8217;ve learned is that I get the same mail week after week.  Before this experiment, I&#8217;d never paid much attention to my mail.  If it looked like junk, it got dropped into the recycle bin without so much as a second thought.  Now that I&#8217;ve been paying attention, I&#8217;ve seen the patterns.  On Monday I get such-and-such advertising circular, on Tuesday I get another.  About every four weeks, I&#8217;ll get a solicitation for the same business.  It&#8217;s awfully redundant.  Though I understand the need for repetition when attempting to sell a product no one actually wants.</p>
<p>So I won&#8217;t be bothering to post the fascinating week-by-week updates.  I have continued to collect all of the data, and I will still present a result after the third month.  So far, though, it&#8217;s not looking good.  In fact, for some things, I may switch back to paper&mdash;the electronic alternatives aren&#8217;t quite as useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/mail-is-boring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Need Minions</title>
		<link>http://sirhc.us/i-need-minions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=i-need-minions</link>
		<comments>http://sirhc.us/i-need-minions/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 18:13:41 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Minions]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Qualcomm]]></category>
		<category><![CDATA[World Domination]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=136</guid>
		<description><![CDATA[My development group at work, for the last couple of years, has been composed of three senior level programmers&#8212;two highly experienced (including myself) and one hard-working, but not as experienced. This week, the other highly experienced developer left our group for supposedly greener pastures. A couple of things resulted from this change. First and foremost, [...]]]></description>
				<content:encoded><![CDATA[<p>My development group at work, for the last couple of years, has been composed of three senior level programmers&mdash;two highly experienced (including myself) and one hard-working, but not as experienced.  This week, the other highly experienced developer left our group for supposedly greener pastures.</p>
<p>A couple of things resulted from this change.  First and foremost, we have a lot of slack to take up, so the rest of the year will be very busy for us.  Second, I am now the de facto lead developer in the group.  A group for which we need to hire two more developers (we had an open position before the loss of our comrade).</p>
<p>Two fresh, new, dreamy eyed developers.  For me to lead, to teach, to mold.  I like to think of these potential developers as my minions, willing to do my bidding.</p>
<p>For a while, we filled our open developer position with a temporary employee.  We tasked this person with the creation of a process work flow for our development efforts.  Something we could use to identify tasks, categorize them, prioritize them, assign them, and sometimes even work on them.  The final result of this effort looks something like this:</p>
<p><a href="/images/blog/minion-flow-bad.png"><img class="nofloat" alt="Old, poorly-designed process flow" src="/images/blog/minion-flow-bad.png" title="Old, poorly-designed process flow" /></a></p>
<p>No, no, no.  This will never do.  I can&#8217;t use this.  Look at how many boxes there are.  Not only that, look the sheer complexity introduced by all those decision branches!  I could never trust my minions with so much independent thought.  Also, I have no desire to confuse my minions any more than they already are.  So I designed a new process flow, which I believe is far simpler and easier to remember.</p>
<p><a href="/images/blog/minion-flow-good.png"><img class="nofloat" alt="New, easy-to-follow decision flow" src="/images/blog/minion-flow-good.png" title="New, easy-to-follow decision flow" /></a></p>
<p>Yes, this is more like it.  I suspect even the simplest of minions can effectively follow this process.  And if they can&#8217;t, well, we have ways of dealing with them.</p>
<p>So I need minions.  There are a few requirements, however.</p>
<ul>
<li>Familiarity with Perl (other programming languages are acceptable&mdash;except Python)</li>
<li>Experience administering Linux (or another Unix-like system, I guess)</li>
<li>Fascination for grid computing</li>
<li>Misplaced enthusiasm for supporting users</li>
<li>Blind devotion to me</li>
</ul>
<p>Not necessarily in that order.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/i-need-minions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Falsifying Data</title>
		<link>http://sirhc.us/falsifying-data/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=falsifying-data</link>
		<comments>http://sirhc.us/falsifying-data/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 05:16:18 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[LSF]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=133</guid>
		<description><![CDATA[One of the many expensive products we use at work is Platform LSF License Scheduler. Essentially, it&#8217;s designed to coordinate the use of even more expensive licenses in one or more LSF clusters. However, like a lot of proprietary software, it has its share of bugs. My task this week was to compensate for one [...]]]></description>
				<content:encoded><![CDATA[<p>One of the many expensive products we use at work is <a href="http://www.platform.com/Products/platform-lsf-license-scheduler">Platform LSF License Scheduler</a>.  Essentially, it&#8217;s designed to coordinate the use of even more expensive licenses in one or more LSF clusters.  However, like a lot of proprietary software, it has its share of bugs.</p>
<p>My task this week was to compensate for one of these bugs.  Basically, the request was to somehow lie to License Scheduler&#8217;s data collection process, convincing it that the license counts are different than the reality.  The collection process uses <a href="http://www.macrovision.com/">Macrovision</a>&#8216;s lmstat(1) command to gather license counts.  Okay, no problem.  Twenty lines of Perl later, and I have my own lmstat command, which behaves identically to the real version (which I simply execute) except the license counts have been altered.</p>
<p>In my group, we&#8217;re supposed to be working primarily on projects.  All of these projects are assigned awkward, forgettable acronyms.  So I decided that this project needed an acronym, too.  Not just any old acronym, either, but something memorable.  After a bit of searching through /usr/share/dict/words, I finally settled on Project FALSE: Falsifying Answers in the License Scheduler Environment.</p>
<p>So with my quick hack, I&#8217;ve both defeated an expensive piece of software and won the prize for the best project name so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/falsifying-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cox Wouldn&#8217;t Know &#8220;High Speed&#8221; if it Bit Them on the Ass</title>
		<link>http://sirhc.us/cox-wouldnt-know-high-speed-if-it-bit-them-on-the-ass/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cox-wouldnt-know-high-speed-if-it-bit-them-on-the-ass</link>
		<comments>http://sirhc.us/cox-wouldnt-know-high-speed-if-it-bit-them-on-the-ass/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 01:28:18 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Cable]]></category>
		<category><![CDATA[Cox]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Slow]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=129</guid>
		<description><![CDATA[Since I initiated the service more than a year ago, I&#8217;ve been incredibly disappointed and annoyed by the extreme slowness of the mis-named &#8220;high speed&#8221; Internet access I&#8217;ve received from Cox Communications. Periodically, I will run a speed test, just to gather data points. I&#8217;ve consistently seen a sustained downstream rate of 1.6 Mbps. Recently, [...]]]></description>
				<content:encoded><![CDATA[<p>Since I initiated the service more than a year ago, I&#8217;ve been incredibly disappointed and annoyed by the extreme slowness of the mis-named &#8220;high speed&#8221; Internet access I&#8217;ve received from <a href="http://www.cox.com/">Cox Communications</a>.</p>
<p>Periodically, I will run a <a href="http://www.speakeasy.net/speedtest/">speed test</a>, just to gather data points.  I&#8217;ve consistently seen a sustained downstream rate of 1.6 Mbps.  Recently, the service has felt slower&mdash;sometimes unbearably so.  I ran another test this afternoon:</p>
<blockquote><p>
Download Speed: <b>1520</b> kbps (190 KB/sec transfer rate)<br />
Upload Speed: <b>276</b> kbps (34.5 KB/sec transfer rate)
</p></blockquote>
<p>Seriously?  This is high speed?</p>
<p>Somewhere I&#8217;ve seen Cox advertise rates of 3 Mbps, but I don&#8217;t have a reference to this handy.  Searching Cox&#8217;s web site, I&#8217;ve found reference to 15 Mbps.  I&#8217;m receiving one tenth the advertised rate, yet I&#8217;m paying 100% of the price.</p>
<p>Gee, thanks Cox.  For nothing.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/cox-wouldnt-know-high-speed-if-it-bit-them-on-the-ass/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>No Trees in My Courtyard</title>
		<link>http://sirhc.us/no-trees-in-my-courtyard/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=no-trees-in-my-courtyard</link>
		<comments>http://sirhc.us/no-trees-in-my-courtyard/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 20:19:36 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[OSCON]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Hotel]]></category>
		<category><![CDATA[oscon08]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=127</guid>
		<description><![CDATA[This is what I get for procrastinating. I won&#8217;t be staying at the &#8220;official&#8221; OSCON hotel, the Doubletree. Since I really enjoy Google Maps lately, I&#8217;ve started one for this year&#8217;s trip. The blue marker is the Oregon Convention Center. The red marker to the east is the Doubletree. The red pin to the north [...]]]></description>
				<content:encoded><![CDATA[<p>This is what I get for procrastinating.  I won&#8217;t be staying at the &#8220;official&#8221; <a href="http://en.oreilly.com/oscon2008/public/content/home">OSCON</a> hotel, the Doubletree.  Since I really enjoy Google Maps lately, I&#8217;ve started one for this year&#8217;s trip.  The blue marker is the <a href="http://www.oregoncc.org/">Oregon Convention Center</a>.  The red marker to the east is the Doubletree.  The red pin to the north is my hotel, the Courtyard by Marriott.  For distance, it&#8217;s no better or worse than the Doubletree.  Of course, as so many of my friends will be at the official hotel, I&#8217;ll likely spend a lot of time there anyway.</p>
<p><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;s=AARTsJomwSDv7ReWjp5swyrz7C2AjiMpnA&amp;msa=0&amp;msid=106127988227392486969.00045032bce521d97f954&amp;ll=45.529982,-122.659349&amp;spn=0.010522,0.018239&amp;z=15&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=106127988227392486969.00045032bce521d97f954&amp;ll=45.529982,-122.659349&amp;spn=0.010522,0.018239&amp;z=15&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
<p>I&#8217;m sure I&#8217;ll add more to this map later.  Such as the locations of all the good (and not so good) bars, not to mention the <a href="http://www.oregonbrewfest.com/">Oregon Brewers Festival</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/no-trees-in-my-courtyard/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>If You Hadn&#8217;t Noticed, It&#8217;s Hot Today</title>
		<link>http://sirhc.us/if-you-hadnt-noticed-its-hot-today/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-you-hadnt-noticed-its-hot-today</link>
		<comments>http://sirhc.us/if-you-hadnt-noticed-its-hot-today/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 16:49:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Home]]></category>
		<category><![CDATA[Weather]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[ForecastFox]]></category>
		<category><![CDATA[Heat]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=126</guid>
		<description><![CDATA[I was amused by a new weather icon in ForecastFox this morning. At least, it&#8217;s not one I&#8217;ve seen before, living as close to the coast as I do. Apparently, it&#8217;s going to be hot today.]]></description>
				<content:encoded><![CDATA[<p>I was amused by a new weather icon in <a href="https://addons.mozilla.org/en-US/firefox/addon/398">ForecastFox</a> this morning.  At least, it&#8217;s not one I&#8217;ve seen before, living as close to the coast as I do.  Apparently, it&#8217;s going to be hot today.</p>
<p><img src="/images/blog/ForecastFox_2008-06-21T09:32.png" width="523" height="120" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/if-you-hadnt-noticed-its-hot-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paperless, Week 4</title>
		<link>http://sirhc.us/paperless-week-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=paperless-week-4</link>
		<comments>http://sirhc.us/paperless-week-4/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 19:04:48 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Environment]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Experiment]]></category>
		<category><![CDATA[GreenDimes]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Paperless]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=121</guid>
		<description><![CDATA[A month into my experiment and, in true fashion, I&#8217;ve gotten lazy. I blame IRC and Twitter for filling my online social needs, causing me to neglect my blog. I was supposed to post this entry two weeks ago, but here I am, already at the end of week six. Fortunately, I have been keeping [...]]]></description>
				<content:encoded><![CDATA[<p>A month into my experiment and, in true fashion, I&#8217;ve gotten lazy.  I blame <a href="http://freenode.net/">IRC</a> and <a href="http://twitter.com/sirhc/">Twitter</a> for filling my online social needs, causing me to neglect my blog.  I was supposed to post this entry two weeks ago, but here I am, already at the end of week six.  Fortunately, I have been keeping track of the mail I receive; I just haven&#8217;t been publishing it.</p>
<p><b>Monday</b></p>
<p><a href="http://en.wikipedia.org/wiki/Memorial_Day">Memorial Day</a> in the United States, so no mail delivery.</p>
<p><b>Tuesday</b></p>
<p><i>Mail</i></p>
<p>None.</p>
<p><i>Junk</i></p>
<ul>
<li>National Geographic Society renewal offer.  As nice as the magazine is, I&#8217;ve let my subscription lapse, and I never read it enough to justify receiving it.  I can always look through it when I&#8217;m enjoying some coffee at Barnes &amp; Noble.</li>
<li>PennySaver advertisements.</li>
<li>Valpak coupons.  I&#8217;m pretty sure I&#8217;ve never used one of these.</li>
</ul>
<p><b>Wednesday</b></p>
<p><i>Mail</i></p>
<ul>
<li>Home owner association account statement and newsletter.  I&#8217;d prefer receiving this via e-mail.  The newsletter isn&#8217;t worth the paper it&#8217;s printed on.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>RedPlum advertisements.</li>
<li>Renewal statement for Martha Stewart <i>Living</i>, which Mrs. sirhc used to receive.  We&#8217;ve let the subscription lapse, along with most others.  Who has time to read all of this?</li>
</ul>
<p><b>Thursday</b></p>
<p><i>Mail</i></p>
<p>None.</p>
<p><i>Junk</i></p>
<ul>
<li>Advertisement for the <a href="http://www.usenix.org/security08">17th USENIX Security Symposium</a>.  I suppose this could technically be considered mail, because I&#8217;m a member, but I&#8217;d rather they just sent me catalogs like this via e-mail.</li>
<li>Advertising circular for Dixieline Home Centers.</li>
</ul>
<p><b>Friday</b></p>
<p><i>Mail</i></p>
<ul>
<li>Proxy voting materials for one of the companies in my stock portfolio.  As I cast my vote online, there&#8217;s also an option to receive these materials online, but it wasn&#8217;t working when I tried it.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>AAA travel guide.  I&#8217;d prefer if this was sent on request.  We aren&#8217;t likely to be taking a vacation for a while.  Not only that, but as stated in the guide, all of these offers and more are available on their web site.</li>
<li>United Mileage Plus credit card offer.</li>
<li>Local advertisements from the San Diego Union Tribuine.</li>
</ul>
<p><b>Saturday</b></p>
<p><i>Mail</i></p>
<ul>
<li>June 2008 issue of <a href="http://www.usenix.org/publications/login/"><i>;login:</i></a>, the USENIX magazine.</li>
<li>July &amp; August 2008 issue of <a href="http://www.cooksillustrated.com/"><i>Cook&#8217;s Illustrated</i></a> magazine.</li>
<li>June 9, 2008 issue of <i>Time</i> magazine.</li>
<li>Membership packet from the <a href="http://www.sandiegozoo.org/">Zoological Society of San Diego</a>.</li>
<li>Water bill.  Now I can see if they have an online delivery option, too.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>Solicitation from a <a href="http://urichdental.com/">dentist</a> in Solana Beach.  Technically junk, but it&#8217;s one of the more creative solicitations I&#8217;ve seen.  It&#8217;s a kind of welcome-to-the-neighborhood card with suggestions for things to do in the Solana Beach/Encinitas area and includes a coupon for a drink at Java Depot.  So I felt he was at least worth linking, even though my dental work can be done at a mobile dentist who comes to my office.</li>
</ul>
<p>I do feel like I&#8217;m receiving less mail overall.  This week&#8217;s score of mail 7, junk 11, for a total of 18 pieces of postal mail, seems to support that feeling.  Real mail this week made up 39% of what we found in the mail box.  That&#8217;s still quite a bit of junk.</p>
<p>One of the reasons I&#8217;m so late in publishing this entry is my desire to create a pie chart that would visually document the ratios of mail and junk I&#8217;ve received during the past month.  I finally got around to entering the data into a <a href="http://docs.google.com/">Google Docs</a> spreadsheet.  Unfortunately, I didn&#8217;t weight the results by true volume, so the resulting chart is slightly misleading, at least depending on how one wants to interpret the data.  While real mail did make up a plurality of the total, the circulars were physically quite a bit more weighty (literally).</p>
<p><img src="/images/blog/paperless01.png" /></p>
<p>This experiment has caused me to become more aware of the pointlessness of so much of the mail I receive, even from entities with which I have a relationship.  Ideally, there should be a box I can mark when joining to receive everything electronically.</p>
<p>I was chatting with a friend of mine about this experiment, and he gave me one good reason why he prefers paper mail.  Accountability.  Should he ever need to dispute something with his bank or a creditor, he has records at his disposal.  Records that are not easily tampered with.  I find this to be a compelling argument.  Unfortunately, I lack the storage space in my house for such record keeping (let&#8217;s hear it for modern development in Southern California).  Also, as a side-effect of living in San Diego County, my electronic records will better survive wildfires, should one ever hit us (we&#8217;re actually in a fairly well-protected area).</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/paperless-week-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retroactively Intuitive</title>
		<link>http://sirhc.us/retroactively-intuitive/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=retroactively-intuitive</link>
		<comments>http://sirhc.us/retroactively-intuitive/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 16:04:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Intuition]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=123</guid>
		<description><![CDATA[I&#8217;ve come up with a new phrase. Well, I don&#8217;t know how new it is, but I haven&#8217;t seen many references to it. Retroactively intuitive. It&#8217;s when something, say a computer interface, is completely confusing at first, but is so obvious in hindsight. I hope it catches on. [tag]computing, intuitive, interface[/tag]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve come up with a new phrase.  Well, I don&#8217;t know how new it is, but I haven&#8217;t seen many references to it.</p>
<p>Retroactively intuitive.</p>
<p>It&#8217;s when something, say a computer interface, is completely confusing at first, but is so obvious in hindsight.</p>
<p>I hope it catches on.</p>
<p>[tag]computing, intuitive, interface[/tag]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/retroactively-intuitive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paperless, Week 3</title>
		<link>http://sirhc.us/paperless-week-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=paperless-week-3</link>
		<comments>http://sirhc.us/paperless-week-3/#comments</comments>
		<pubDate>Mon, 26 May 2008 20:08:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Environment]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Experiment]]></category>
		<category><![CDATA[GreenDimes]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Paperless]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=119</guid>
		<description><![CDATA[Monday Not Junk Letter from the IRS explaining that I should expect my economic stimulus payment last week. It was direct deposited into my account on Thursday. Letter from the Toyota dealer informing me that my Avalon is likely due for its 125,000 mile minor service. They include a coupon, which is nice of them. [...]]]></description>
				<content:encoded><![CDATA[<p><b>Monday</b></p>
<p><i>Not Junk</i></p>
<ul>
<li>Letter from the IRS explaining that I should expect my <a href="http://en.wikipedia.org/wiki/Economic_Stimulus_Act_of_2008">economic stimulus payment</a> last week.  It was direct deposited into my account on Thursday.</li>
<li>Letter from the Toyota dealer informing me that my Avalon is likely due for its 125,000 mile minor service.  They include a coupon, which is nice of them.  Cheaper than Jiffy Lube.</li>
<li>Urgent notice from <i>Time</i> magazine that my subscription requires renewal.  This one is borderline.  I deliberately cancelled my subscription, but I was a paying customer for several years.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>My non-partisan voter information guide, which recommends a full slate of Republicans.  Strange.</li>
<li>Store circulars from RedPlum.  35 pages.  The grocery circulars are actually folded sideways, so they&#8217;re only half the number of real pages; however, they&#8217;re big enough to count double.</li>
</ul>
<p><b>Tuesday</b></p>
<p><i>Mail</i></p>
<ul>
<li>2008 summer schedule for REI&#8217;s Outdoor School.</li>
</ul>
<p><b>Wednesday</b></p>
<p><i>Mail</i></p>
<ul>
<li>Confirmation letter from my credit union that one of my CDs has been automatically renewed.</li>
<li>June issue of <i>ZooNooz</i> from the San Diego Zoological Society.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>One week pass to LA Fitness, with an offer to join for &#8220;less than $7 per week.&#8221;  That&#8217;s not quite as good as the $24 per year I pay to 24 Hour Fitness.</li>
</ul>
<p><b>Thursday</b></p>
<p>No mail!</p>
<p><b>Friday</b></p>
<p><i>Mail</i></p>
<ul>
<li>Membership renewal notice from <a href="http://www.kpbs.org/">KPBS</a>, the local public radio station.  I suspect if I were more diligent about renewing, I wouldn&#8217;t receive reminders in the mail.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>Local advertisements brought to me by the <a href="http://www.signonsandiego.com/">San Diego Union-Tribune</a>.  37 pages.  I may not take their newspaper, but they still find a way to send me their advertising.
</ul>
<p><b>Saturday</b></p>
<p><i>Mail</i></p>
<ul>
<li><i>Time</i> magazine.</li>
<li>June 2008 issue of <i>The Costco Connection</i>.</li>
<li>Summer coupon book for Costco.  Not a lot I&#8217;m interested in this time.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>Another vote recommendation guide.</li>
<li>Advertisement for Cox digital cable.  Their internet service is so bad I&#8217;m considering looking for an alternative.  I&#8217;m certainly not about to pay them for digital cable, with an interface much, much worse than my TiVo systems.</li>
</ul>
<p>That leaves me with 10 pieces of mail and 6 pieces of junk.  I notice that not one piece of junk mail was a credit card offer.  Maybe this experiment is working?</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/paperless-week-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roku Neflix Player</title>
		<link>http://sirhc.us/roku-neflix-player/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=roku-neflix-player</link>
		<comments>http://sirhc.us/roku-neflix-player/#comments</comments>
		<pubDate>Fri, 23 May 2008 04:47:02 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Movies]]></category>
		<category><![CDATA[Netflix]]></category>
		<category><![CDATA[Roku]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=120</guid>
		<description><![CDATA[On Tuesday, someone on IRC showed me the Netflix Player by Roku. It&#8217;s similar to the Apple TV, or Amazon&#8217;s Unbox, but obviously works with Netflix instead of iTunes. This benefits me because I have a Netflix subscription, and the Netflix Player, once purchased for $99.99, incurs no additional fees for streaming movies or television [...]]]></description>
				<content:encoded><![CDATA[<p>On Tuesday, someone on IRC showed me the <a href="http://www.roku.com/netflixplayer/">Netflix Player by Roku</a>.  It&#8217;s similar to the <a href="http://www.apple.com/appletv/">Apple TV</a>, or Amazon&#8217;s <a href="http://www.amazon.com/gp/video/tivo">Unbox</a>, but obviously works with <a href="http://www.netflix.com/">Netflix</a> instead of iTunes.  This benefits me because I have a Netflix subscription, and the Netflix Player, once purchased for $99.99, incurs no additional fees for streaming movies or television series.  My package arrived today.</p>
<p><img src="http://farm3.static.flickr.com/2277/2514313443_7e432fceec.jpg?v=0" width="500" height="375" /></p>
<p>What&#8217;s in the box.</p>
<ul>
<li>Netflix Player</li>
<li>Remote control</li>
<li>Power supply</li>
<li>Composite A/V cable</li>
<li>2 AAA batteries</li>
<li>License Agreement and Warranty Statement</li>
<li>7 step Getting Started manual</li>
</ul>
<p><img src="http://farm4.static.flickr.com/3072/2514291347_ba0f3e6315.jpg?v=0" width="500" height="375" /></p>
<p>Reading through the simple Getting Started manual, I noticed that Roku has only rated a single star for the quality of my video and three for the quality of my audio.  I know, I know, I have a 10 year old 27 inch CRT and I really haven&#8217;t kept up-to-date in the A/V arena.</p>
<p><img src="http://farm3.static.flickr.com/2225/2515116712_101c304c73.jpg?v=0" width="500" height="375" /></p>
<p>Connections on the back of the box include power, S-video, composite, component, and RJ-45.  It supports wireless networking, but since I have a network switch next to the TV for the TiVo anyway, I went ahead and plugged it into the network.</p>
<p><img src="http://farm3.static.flickr.com/2268/2514292691_7b320ac4e0.jpg?v=0" width="500" height="375" /></p>
<p>Once hooked up and turned on, the system automatically downloaded an update, restarted, and connected to the Netflix service.  Activating the box on my account was as simple as logging into my Netflix account and entering an activation code.</p>
<p><img src="http://farm3.static.flickr.com/2153/2514296487_30a7c611d7.jpg?v=0" width="500" height="375" /></p>
<p>As quickly as that, I was able to start browsing what Netflix calls my Instant Queue.  Since <a href="http://us.imdb.com/title/tt0367882/">Indiana Jones and the Kingdom of the Crystal Skull</a> was released today, I searched for <a href="http://us.imdb.com/title/tt0082971/">Raiders of the Lost Ark</a> for my first Roku movie.  Unfortunately, that title was not available for instant viewing.</p>
<p>In fact, I found very little selection in the Instant Viewing area.  For the moment, I&#8217;m willing to write this off to the recent introduction of the service.  As more people adopt it, I expect more DVDs will be available for streaming.</p>
<p>My mom has been watching the British series <a href="http://us.imdb.com/title/tt0160904/">MI-5</a> on BBC America.  I don&#8217;t receive that channel, so I went ahead and added MI-5: Volume 1 to my Instant Queue.  As advertised, it was immediately available on my Netflix Player.</p>
<p><img src="http://farm3.static.flickr.com/2248/2514297209_51efb07d89.jpg?v=0" width="500" height="375" /></p>
<p>The Netflix Player appears to buffer individual DVD chapters at a time to the player.  The buffering went quickly, and the quality of the video was okay.  No better or worse than what I usually record on my TiVo.  I expect that if Cox was actually delivering Internet to me at the speeds they advertise, I would receive higher quality video.  Either that, or the player detects which video cable is plugged in and downloads the appropriate quality stream.</p>
<p><img src="http://farm3.static.flickr.com/2024/2515122140_8c74f97496.jpg?v=0" width="500" height="375" /></p>
<p>Overall, I really like the Netflix Player and would recommend it to anyone with a Netflix account.  However, it may be an impatient wait until more DVD selections are available.  I would love to use the Netflix Player as an excuse to cancel my cable television service.  Everything I watch is eventually released on DVD, so I&#8217;d be able to watch it when I want and without commercials.  The one-time purchase price is just right, too, since I already have a Netflix account.  Not paying for individual programs is a definite plus.</p>
<p>My entire <a href="http://www.flickr.com/photos/14933335@N00/sets/72157605199166456/">Netflix Player Set</a> on Flickr.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/roku-neflix-player/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Paperless, Week 2</title>
		<link>http://sirhc.us/paperless-week-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=paperless-week-2</link>
		<comments>http://sirhc.us/paperless-week-2/#comments</comments>
		<pubDate>Tue, 20 May 2008 03:23:45 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Environment]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Experiment]]></category>
		<category><![CDATA[Green]]></category>
		<category><![CDATA[GreenDimes]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Paperless]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=118</guid>
		<description><![CDATA[This week I&#8217;m formatting my post to more easily distinguish desired mail from junk mail. One might also notice that we&#8217;re not very good about walking out to the mail box every day. Just another reason to go paperless. Monday and Tuesday Mail Stages magazine from Fidelity. Right on the cover, they advertise going paperless. [...]]]></description>
				<content:encoded><![CDATA[<p>This week I&#8217;m formatting my post to more easily distinguish desired mail from junk mail.  One might also notice that we&#8217;re not very good about walking out to the mail box every day.  Just another reason to go paperless.</p>
<p><b>Monday and Tuesday</b></p>
<p><i>Mail</i></p>
<ul>
<li><i>Stages</i> magazine from Fidelity.  Right on the cover, they advertise going paperless.  I hope this applies to the magazine as well as their statements.</li>
<li><i>@UCSD</i>, a magazine for alumni.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>Solicitation for some token amount of life insurance for Mrs. sirhc, through our credit union.</li>
<li>Solicitation from AMVETS to leave donations on the doorstep for them to pick up.  I&#8217;m pretty sure I get one of these every month, but this is the first time I&#8217;ve ever taken the time to determine what it is.</li>
<li>Solicitation from a junk removal service.  They even direct me to their web site.  Gee, thanks.</li>
<li>PennySaver and associated circulars (15 pages, not including the PennySaver and included CouponSaver).</li>
<li>Local business circulars, from RedPlum, which is apparently a company that specializes in sending circulars. 41 pages.
<li>LEGO catalog.  As awesome as this is to flip through, I can browse their web site just as easily.</li>
<li>REI catalog.  Same as the LEGO catalog.</li>
</ul>
<p>The <a href="http://www.redplum.com/">RedPlum</a> circulars do include the weekly specials for <a href="http://www.sprouts.com/">Sprouts</a> and <a href="http://www.safeway.com/">Vons</a>, which we do frequent (we also shop at my favorite store, <a href="http://www.traderjoes.com">Trader Joe&#8217;s</a>).  Both stores have their weekly specials on their web site, so there&#8217;s no problem losing the RedPlum circulars.</p>
<p><b>Wednesday and Thursday</b></p>
<p><i>Mail</i></p>
<ul>
<li>Results for Mrs. sirhc&#8217;s last ultrasound.  It&#8217;s a <a href="http://baby.grau.org/2008/05/results-are-in.html">girl</a>!</li>
<li>The June issue of San Diego <i>Westways</i>.  Part of our AAA membership.</li>
<li>The June issue of <i>Parenting</i>.  Part of a free two issue trial, which Mrs. sirhc has already canceled.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>Invitation to join the IEEE Computer Society.  I&#8217;m already a member of USENIX, SAGE, and LOPSA.  I suppose I could throw in IEEE and ACM as well, but I&#8217;ll first see if work will pay for it.  Of all the junk mail I get, I expect the computer societies to be paperless.</li>
<li>Solicitation for AT&#038;T&#8217;s internet, phone, and TV services.  Junk, but with the quality of Cox&#8217;s internet service, I&#8217;m almost tempted.</li>
<li>Another voting guide to instruct me which way I should vote on the issues.  With a little more than two weeks until the election, I expect a lot more of this.  My mistake, apparently, was not registering as a decline-to-state voter.  I&#8217;ll remedy this after the election.</li>
<li>Solicitation for a United Airlines credit card.  I get this about once a month, both at home and at work.  I guess they think I&#8217;ll eventually break down.</li>
<li>Solicitation from UCSD&#8217;s Computer Science and Engineering department to support their tutoring program.  This is what I get for registering for the tutor reunion (and then not going anyway).</li>
<li>Catalog for Basset, which apparently sells furniture.</li>
</ul>
<p><b>Friday</b></p>
<p><i>Mail</i></p>
<ul>
<li>Rebate check for my cell phone.</li>
<li>Rebate check for Mrs. sirhc&#8217;s cell phone.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>Pre-approval notice from our credit union that I&#8217;m eligible for an auto loan.</li>
<li>Pre-approval notice from our credit union that Mrs. sirhc is eligible for an auto loan.</li>
<li>Local business circulars, consisting of 45 pages.</li>
</ul>
<p>Normally, the pre-screened offers would bother me.  However, we&#8217;re actually in the market for a new car right now.  Not very green of me, I know.</p>
<p><b>Saturday</b></p>
<p><i>Mail</i></p>
<ul>
<li><i>Time</i> magazine.  Including the warning about my subscription expiring.  Darn.</li>
</ul>
<p><i>Junk</i></p>
<ul>
<li>Something called NC Magazine.  There sure are a lot of community-oriented publications where we live now.</li>
<li>Get1Free magazine.  A coupon book that rarely contains anything I want.</li>
<li>An informative reminder that I can save on Alamo car rentals because I&#8217;m a Costco member.  Um, thanks.</li>
</ul>
<p>Ratio of mail to junk for week 2 is 8:19.  More than twice as much junk than mail.  It&#8217;s a good thing I recycle.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/paperless-week-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paperless, Week 1</title>
		<link>http://sirhc.us/paperless-week-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=paperless-week-1</link>
		<comments>http://sirhc.us/paperless-week-1/#comments</comments>
		<pubDate>Sun, 11 May 2008 20:49:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Environment]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[GreenDimes]]></category>
		<category><![CDATA[Paperless]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=115</guid>
		<description><![CDATA[A week ago, I signed up for paperless bank statements and paperless billing. Additionally, I signed up on GreenDimes. Shortly after I posted about this, a fellow by the name of SanjDimes, who is apparently affiliated with GreenDimes, asked that I wait at least three months before I review the effectiveness of the service. That [...]]]></description>
				<content:encoded><![CDATA[<p>A week ago, I signed up for paperless bank statements and paperless billing.  Additionally, I signed up on <a href="http://www.greendimes.com/">GreenDimes</a>.  Shortly after I posted about this, a fellow by the name of SanjDimes, who is apparently affiliated with GreenDimes, asked that I wait at least three months before I review the effectiveness of the service.  That gave me an idea.  Why don&#8217;t I spend that three months documenting the amount of mail I receive, and how much of that is junk?  This will give me empirical evidence of the success or failure of my experiment.</p>
<p><b>Monday and Tuesday</b></p>
<p>We never got around to checking the mail on Monday, so the first two days of this week have been combined.</p>
<ul>
<li>New home survey from CIDR Systems.  This is actually the second copy we&#8217;ve received, since I couldn&#8217;t be bothered to fill out the first one (they&#8217;re kind of annoying).</li>
<li>Credit card offer from Southwest Airlines.  Incidentally, I received this same offer at work.  Two pieces of junk mail for the price of one.</li>
<li>Credit card offer from Chase, advertising their &#8220;card factory,&#8221; whatever that is.</li>
<li>Bill from American Express.  This was mailed before I opted for paperless billing.</li>
<li>Greeting card for Mrs. sirhc.</li>
<li>Several grocery store circulars.  I did, however, pull out the advertisements for Sprouts and Vons.</li>
<li>PennySaver and associated circulars.</li>
<li>California primary election sample ballots.  Yes, we&#8217;re having another one this year.  No, I don&#8217;t know why they couldn&#8217;t be combined into one.</li>
<li>Costco coupon book.</li>
<li>Postcard reminding me to spend my Costco credit card rebate.  Of course, I have already done this, so the reminder is pointless.</li>
<li>Advertisement for a local tanning salon.</li>
<li>June 2008 issue of <i>Linux Journal</i>.  I don&#8217;t intend to renew my subscription.  I never get around to reading it anymore, and most of the articles end up on their web site anyway.</li>
<li>Brochure for the 2008 USENIX Annual Technical Conference.  Did I really need a hard copy of this?</li>
<li>AAA offer to upgrade my membership.  Just like last year, and the year before that, I&#8217;m not interested.</li>
</ul>
<p><b>Wednesday</b></p>
<ul>
<li>Another greeting card for Mrs. sirhc.  Well, we are expecting a baby, and Mother&#8217;s Day is this weekend.</li>
<li>Our absentee ballots for that superfluous California primary election.</li>
<li>Terms and conditions for my wireless phone protection plan.</li>
<li>A neighbor&#8217;s advertisement for Ocean Enterprises.  I wonder how much of my own mail ends up in my neighbors&#8217; hands.  Good thing I&#8217;m going paperless.</li>
<li>Brochure for this year&#8217;s LinuxWorld conference.  Yet another advertisement that could have been sent via e-mail.  I expect better of technical conferences.</li>
</ul>
<p><b>Thursday</b></p>
<ul>
<li>Workforce and community development course catalog from Palomar College.</li>
</ul>
<p><b>Friday</b></p>
<ul>
<li>Circulars for local chain stores (Target, Rite-Aid, etc.).</li>
<li>Advertisement for Discount Tires.</li>
<li>Our &#8220;voting guide&#8221; for California&#8217;s upcoming primary election.  I don&#8217;t know what I&#8217;d do without people sending me mail to tell me how I should vote.</li>
<li>Solicitation to alumni to pledge money for UCSD&#8217;s Jacobs School of Engineering.  This was sent because I refused to pledge money to someone who cold-called me soliciting money.</li>
</ul>
<p><b>Saturday</b></p>
<ul>
<li><i>Time</i> magazine.  I won&#8217;t be renewing my subscription after next month.  It&#8217;s another magazine I no longer have time (ha ha) to read, and the articles all end up on the web site anyway.</li>
<li>City news and recreation guide for the city of San Marcos.  I&#8217;ll have to read through this to see if it&#8217;s something I want.</li>
<li>Invitation to the Zoological Society of San Diego&#8217;s Member Appreciation Evening.  I&#8217;ve been a member for a number of years, so I expect these things.</li>
<li>Solicitation to become a member of the Birch Aquarium.  Nice, but I&#8217;ll pass for now.</li>
</ul>
<p>The first thing I&#8217;ve learned from this experiment is that it&#8217;s not as easy as I expected to distinguish the signal from the noise.  Some pieces of mail&mdash;the credit card offers&mdash;are obviously junk.  Some pieces of mail&mdash;the greeting cards&mdash;are obviously not junk.  Others, such as the San Marcos recreation guide or the circulars for stores we actually shop at, are not so easy to classify.  For the purposes of this experiment, I will classify them as junk, because they were unsolicited commercial mail.  This, as some may recognize, is similar to the official definition of spam e-mail.  That said, what was my signal to noise ratio?</p>
<p>We received 13 pieces of desired (or not so desired in the case of bills and ballots) mail and 15 pieces of junk mail.  While these numbers may look close to equal, much of the junk mail was composed of circulars and brochures, which consist of much more paper than the typical desired piece of mail.  Next week I may need to refine my measurement criteria by counting the number of unique advertisements in each circular.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/paperless-week-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sirhc: Director-at-Large</title>
		<link>http://sirhc.us/sirhc-director-at-large/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sirhc-director-at-large</link>
		<comments>http://sirhc.us/sirhc-director-at-large/#comments</comments>
		<pubDate>Fri, 09 May 2008 02:55:40 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[KPLUG]]></category>
		<category><![CDATA[SDCS]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=116</guid>
		<description><![CDATA[At tonight&#8217;s KPLUG meeting, I volunteered for service on, and was voted in by acclimation, the board of the San Diego Computer Society. I will spend the next two years serving as a director-at-large on the board. I&#8217;d like to thank jaqque for pressuring me into doing this. I expect it to be a lot [...]]]></description>
				<content:encoded><![CDATA[<p>At tonight&#8217;s <a href="http://www.kernel-panic.org/">KPLUG</a> meeting, I volunteered for service on, and was voted in by acclimation, the board of the <a href="http://sdcs.org/">San Diego Computer Society</a>.  I will spend the next two years serving as a director-at-large on the board.</p>
<p>I&#8217;d like to thank <a href="http://jaqque.sbih.org/">jaqque</a> for pressuring me into doing this.  I expect it to be a lot of fun.  Really.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/sirhc-director-at-large/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coasting to Work</title>
		<link>http://sirhc.us/coasting-to-work/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coasting-to-work</link>
		<comments>http://sirhc.us/coasting-to-work/#comments</comments>
		<pubDate>Mon, 05 May 2008 15:25:44 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Environment]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Coaster]]></category>
		<category><![CDATA[Commuting]]></category>
		<category><![CDATA[Public Transportation]]></category>
		<category><![CDATA[San Diego]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=111</guid>
		<description><![CDATA[I spent the better part of my weekend, and this morning&#8217;s commute, thinking about public transportation. A year ago, when Mrs. sirhc and I moved to North County, I investigated public transportation; specifically, the Coaster. At the time it wasn&#8217;t worth it. There are too many days&#8212;karate, game night, user group meetings&#8212;I&#8217;d still need my [...]]]></description>
				<content:encoded><![CDATA[<p>I spent the better part of my weekend, and this morning&#8217;s commute, thinking about public transportation.  A year ago, when Mrs. sirhc and I moved to North County, I investigated public transportation; specifically, the <a href="http://www.gonctd.com/coaster_intro.htm">Coaster</a>.  At the time it wasn&#8217;t worth it.  There are too many days&mdash;karate, game night, user group meetings&mdash;I&#8217;d still need my car.  The combination of that and the cost of the Coaster pass made it prohibitively expensive.</p>
<p>Well, now I&#8217;m paying over $4 per gallon on fuel for said car.  It is time again to evaluate the Coaster.  I would need a &#8220;2 zone&#8221; pass, which costs $126 per month.  At $4 per gallon, that&#8217;s 31.5 gallons of gasoline.  I burn approximately two gallons of gasoline per day on my commute, or 10 gallons per week, or approximately 40 gallons per month.  The Coaster is becoming more attractive every day.</p>
<p>I live 7.8 miles from the <a href="http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;q=6511+Avenida+Encinas,+Carlsbad,+CA+92009&#038;sll=33.166008,-117.350507&#038;sspn=0.011208,0.019312&#038;ie=UTF8&#038;ll=33.111242,-117.318707&#038;spn=0.022431,0.038624&#038;z=14&#038;iwloc=cent&#038;om=0">Carlsbad Poinsettia Coaster station</a>, a distance I could cycle to save even more fuel (and get some exercise).  Regardless, even parking my car at the station, I would be reducing my commute by over 28 miles per day.  I&#8217;d still need to drive for game nights and user group meetings, but the majority of my time would be spent on the train.</p>
<p>I don&#8217;t usually drive my morning commute in heavy traffic, opting to leave the house early to avoid it.  However, it&#8217;s difficult to find a time of day to return home that will avoid traffic (except for really late after game night).  While the train will likely add to the overall time of my commute, the lower mileage on my car and the benefit to my sanity will probably make up for it.</p>
<p>Qualcomm makes the deal even sweeter.  The company subsidizes 25% of the Coaster pass, bringing the cost down to $94.50, and allows me to pay for it with pre-tax money from my paycheck.  The only catch is, to receive a pass I need to apply for it by the first day of the month prior to the month the pass is for.  For example, to have received a pass for June, I would have needed to apply by the first of May.  So, while I could buy a full priced pass for either May or June (I don&#8217;t know if the passes are pro-rated), I couldn&#8217;t receive the subsidized pass until July.</p>
<p>I&#8217;m looking forward to trying out the Coaster.  I may really enjoy it, being able to work or read on my commute.  The time wouldn&#8217;t be wasted behind the wheel of my car.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/coasting-to-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going Paperless</title>
		<link>http://sirhc.us/going-paperless/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=going-paperless</link>
		<comments>http://sirhc.us/going-paperless/#comments</comments>
		<pubDate>Sun, 04 May 2008 23:57:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Environment]]></category>
		<category><![CDATA[Bills]]></category>
		<category><![CDATA[Green]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Paperless]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=112</guid>
		<description><![CDATA[At least, as much as I can. For years, people have been talking about the paperless office, an idealized concept in which all documents and communications are of the electronic variety. I don&#8217;t know about anyone else, but looking around my office, it is far from paperless. Sure, a lot of once was done on [...]]]></description>
				<content:encoded><![CDATA[<p>At least, as much as I can.</p>
<p>For years, people have been talking about the <a href="http://en.wikipedia.org/wiki/Paperless_office">paperless office</a>, an idealized concept in which all documents and communications are of the electronic variety.  I don&#8217;t know about anyone else, but looking around my office, it is far from paperless.  Sure, a lot of once was done on paper is now done via electronic means, but I still have more paper around my office than I&#8217;d like.</p>
<p>Still, the situation at my office is far better than at home.  Every day I receive reams of paper in my mailbox that I do not need.  Magazines (I never read and have unsubscribed from), catalogs (from which I&#8217;ve never ordered&mdash;opting instead for their web sites), weekly circulars (for stores I never shop at), credit card offers (for cards I&#8217;d never get), and bills (which I suppose I need, sort of).</p>
<p>In an effort to rid myself of the piles of junk I either shred or recycle every week, and save a few trees, I did two things.  First, I signed up for paperless billing from all of my utilities and paperless documents from my bank and credit union.  The immediate benefit of this, besides not having my mailbox filled with paper is archival.  Bank statements take up room in filing drawers and that room runs out quickly.  Bills just get shredded, because I have no desire for them to take up what little room isn&#8217;t being taken by bank statements.  By opting for electronic delivery, I can save as many bank statements and bills as I want&mdash;for years&mdash;and it takes less space on my hard drive than my photo collection.</p>
<p>Second, I signed up for <a href="http://greendimes.com/">GreenDimes</a>, which advertises itself as a way to stop junk mail and save the environment.  Initially, I was going to sign up for the free account and use their pointers to manage the junk mail myself.  Then I noticed that the $20 fee for their premium service is a one-time fee, not a subscription.  So I opted for this service, to free myself of the hassle of freeing myself from junk mail.  I don&#8217;t know how effective this service will be, but I&#8217;ll report back in a couple of months on the relative success or failure of it.</p>
<p>One thing I found odd about GreenDimes was the $1 offer.  There are three options for this nominal sum: receive it as a check in the mail; use it to plant a tree on my behalf; or receive a free trial issue of <i>Plenty</i>, the magazine of hip, green living.  I can&#8217;t help but think this is a test.  The irony of the first and third options was immediately apparent to me.</p>
<p>I still receive periodical publications from memberships.  My bank, AAA, Costco, and the Zoological Society of San Diego.  Most of the time, these magazines go unread.  I save some (<a href="http://www.sandiegozoo.org/membership/zoonooz.html">Zoonooz</a>) and toss the rest into the recycle bin.  Still, if possible, I&#8217;d like to receive these electronically as well.  A PDF file is far more environmentally-friendly, and takes up less space, than a print magazine.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/going-paperless/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Buy Phones at a Kiosk</title>
		<link>http://sirhc.us/dont-buy-phones-at-a-kiosk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dont-buy-phones-at-a-kiosk</link>
		<comments>http://sirhc.us/dont-buy-phones-at-a-kiosk/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 01:36:56 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Consumerism]]></category>
		<category><![CDATA[Costco]]></category>
		<category><![CDATA[Verizon]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=113</guid>
		<description><![CDATA[Seriously, don&#8217;t do it. Go into a real store (in my case, Verizon) to buy your phone. At least then you&#8217;re dealing with the company directly. Last week, when Mrs. sirhc and I were visiting Oregon, we took advantage of the absence of a state sales tax and a sale at Costco to buy two [...]]]></description>
				<content:encoded><![CDATA[<p>Seriously, don&#8217;t do it.  Go into a real store (in my case, Verizon) to buy your phone.  At least then you&#8217;re dealing with the company directly.</p>
<p>Last week, when Mrs. sirhc and I were visiting Oregon, we took advantage of the absence of a state sales tax and a sale at Costco to buy two Samsung u550 phones.  They seemed like a good deal at the time, and we were assured of a very liberal return policy, so we went ahead and bought them.</p>
<p>We soon decided that we didn&#8217;t like our new phones very much.  The features seemed limited, and I couldn&#8217;t get the volume up to a decent volume on either of my Bluetooth headsets.  I also decided that I really wanted a PDA this time around, and set my sights on the new Palm Treo 755p.  So back to Costco we went, down here in San Diego this time.</p>
<p>The return went smoothly, but the guy working the kiosk at Costco didn&#8217;t seem very interested in activating our old phones.  Since the kiosk didn&#8217;t have the phones we wanted, we didn&#8217;t worry too much about this and went over to the Verizon store instead.  That&#8217;s when things stopped going smoothly.</p>
<p>The kiosk guy didn&#8217;t reset our contracts, and there was nothing the customer service guy at the Verizon store could do about it.  I had our old phones reactivated and called the original kiosk guy in Oregon.  He said everything was fine and fed me a line of, what the real Verizon customer service guy told me was crap.  Apparently, the kiosk guys do this all the time, to keep their commission even after a customer backs out of the contract within Verizon&#8217;s 30 day trial period.  I was about to call Verizon corporate customer service myself and ready to drive back to Costco when the customer service guy said he&#8217;d make some calls and bring his manager into it.</p>
<p>In the end, the Verizon store guys got everything straightened out.  We got our contracts reset, so we were able to get discounts on my Palm Treo 755p and Mrs. sirhc&#8217;s LG enV.  So far we&#8217;re pretty happy with our new toys.</p>
<p>And that&#8217;s the last time I buy a phone from a kiosk.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/dont-buy-phones-at-a-kiosk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whirlwind Family Reunion</title>
		<link>http://sirhc.us/whirlwind-family-reunion/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=whirlwind-family-reunion</link>
		<comments>http://sirhc.us/whirlwind-family-reunion/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 18:51:29 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Oregon]]></category>
		<category><![CDATA[Pregnancy]]></category>
		<category><![CDATA[Snow]]></category>
		<category><![CDATA[Vacation]]></category>
		<category><![CDATA[Washington]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/?p=110</guid>
		<description><![CDATA[Over the Christmas holiday, Mrs. sirhc and I made plans to join my dad&#8217;s entire family in celebrating his mother&#8217;s 80th birthday. We&#8217;d planned to fly from San Diego to Seattle on Thursday, stay at a quaint bed &#38; breakfast, attend the party on Saturday, and return home on Sunday. However, as they say, the [...]]]></description>
				<content:encoded><![CDATA[<p>Over the Christmas holiday, Mrs. sirhc and I made plans to join my dad&#8217;s entire family in celebrating his mother&#8217;s 80th birthday.  We&#8217;d planned to fly from San Diego to Seattle on Thursday, stay at a quaint bed &amp; breakfast, attend the party on Saturday, and return home on Sunday.  However, as they say, the best-laid plans of mice and men often go awry.</p>
<p><b>Unintended Travel</b></p>
<p>As I mentioned on <a href="/journal/2008/03/24/the-skies-arent-very-friendly-anymore/">Monday</a>, we had to modify our plans at the last minute.  As my family juggled schedules and rearranged plans, stress levels rose until, finally, we agreed upon arrangements that worked for everyone and would hopefully unfold smoothly.</p>
<p>It was much too expensive to re-book our flight from Seattle-Tacoma International Airport to Portland, so we instead rented a car to make the two-and-a-half hour drive south to Wilsonville, Oregon.  On the Hertz web site the previous morning, I had reserved a Camry.  Partly because I wanted to test drive it, as I&#8217;m thinking of replacing my Avalon in a few years; partly because my other option was an Impala, and we didn&#8217;t like the last one we rented.  As an added bonus, the only Camry left had a GPS unit, which I didn&#8217;t request, so I didn&#8217;t pay for it.  This turned out to be more useful than I expected.</p>
<p>We arrived in Wilsonville shortly before my parents left to pick up my sister and her husband from the Portland airport (they were smart enough to fly Southwest, so re-booking the flight didn&#8217;t cost them an obscene amount of money), so we went ahead and checked into the Comfort Inn.  We had some time to kill, and Oregon doesn&#8217;t have a state sales tax, so we went over to the local Costco to take advantage of a sale on Samsung u550 phones.  This turned out to be a big mistake (more on that later).</p>
<p>When my parents returned with my sister and her husband, and they got settled into their own hotel, the six of us headed out for a bite to eat.  Across from our hotel was a pub called <a href="http://www.wankerscorner.com/">Wanker&#8217;s Corner</a>.  It had a decent menu and a good selection of beer (we were, after all, only 20 minutes south of Portland).  I had a steak covered in saut&eacute;ed mushrooms and blue cheese, which makes my mouth water to remember it.</p>
<p><b>A Farewell for One Grandmother</b></p>
<p>My grandmother&#8217;s funeral was scheduled for Friday afternoon.  In order to reduce some of the shock of the planned open-casket funeral, I took my sister to the mortuary in the morning to view the body.  The best way to describe the visit would be that it was an odd experience.  It was a bit like visiting <a href="http://www.madame-tussauds.com/">Madame Tussauds</a>: extremely realistic, but lacking that spark of life.  This woman only vaguely resembled the grandmother I remember.  Had I not been told who she was, I may not have recognized her at all.</p>
<p>I find the whole concept of open-casket funerals odd.  The event is already a painful one for friends and family.  The sight of their loved one&#8217;s lifeless body can&#8217;t be easy to take.  I think I prefer an urn.  However, I&#8217;ve only attended two funerals; the first was a Catholic mass for my (cremated) paternal grandfather.</p>
<p>The funeral service itself was nice.  The pastor really didn&#8217;t know the family, as he was just the guy who performed services for everyone who passed through his mortuary, as it were.  The eulogy was nice, if inaccurate in a few areas.  My grandmother&#8217;s children&mdash;my mother and her two brothers&mdash;each said some words, as well as did one of my cousins.  I was offered the opportunity, but didn&#8217;t take it.  I had thought about it, but everything that came to mind was more about me than it was about my grandmother.  I don&#8217;t think everyone needed to hear that; the service was about her, not me.</p>
<p>Following the service, the entire family joined my grandfather for dinner back at his retirement community.  Since we had to get on the road to Snohomish immediately after dinner, I had gone ahead and changed out of my suit and back into my t-shirt and shorts, which I always wear when traveling.  My uncle pointed out the community&#8217;s dress code, but since my shorts weren&#8217;t denim, I was okay.  A cheese and fruit platter was laid out as an appetiser, the main course was salmon in a hollandaise sauce, and dessert was a delicious chocolate cake with a coconut raspberry sauce.  Overall a good meal, but unfortunately the salmon would come back to haunt us.</p>
<p>While we had not intended to visit Oregon at all, circumstances combined for us to see most of my mom&#8217;s family (a couple of cousins couldn&#8217;t make it).  A sad event to be sure, but without it I may not have seen these members of my family for several more years.</p>
<p><b>Sleepless in &hellip; Tacoma</b></p>
<p>About two hours into our three hour drive, Mrs. sirhc started feeling a bit &#8220;iffy.&#8221;  We pulled over once, then a second time on the side of the freeway, as the salmon made its way back upstream, so to speak.  After the second stop (a daring dart across two lanes of freeway traffic merging into the I-5), we chose to find a place to stop and wait it out.</p>
<p>We spent about 45 minutes at a Shell station just south of the Tacoma Dome.  The temperature was only a few degrees above freezing and I&#8217;m sure the wind chill off the sound was well below that (recall that I was wearing shorts).  The wind off the sound will cut right through you.  It&#8217;s vicious.</p>
<p>When Mrs. sirhc was feeling better, we headed back to the freeway.  It was an easy entrance, directly across from the gas station &hellip; had I been reading the road signs instead of listening to the GPS.  The GPS guided us onto the wrong freeway.  On the plus side, once it realized it had done this to us, it sent us through a rather dodgy neighborhood in its attempt to steer us back to the entrance we had missed in the first place.</p>
<p>Later, the GPS unit was nice enough to guide us onto the I-405 freeway &hellip; after we had passed the turnoff.  That&#8217;s okay, though; I wanted to take the I-5 anyway.</p>
<p><b>A Very Happy Birthday for the Other Grandmother</b></p>
<p>On Saturday, we kept our scheduled appointment for my paternal grandmother&#8217;s celebration of her 80th birthday.  My dad&#8217;s whole family was gathered together for the first time since my grandfather&#8217;s funeral, eight years ago.  I played some video games with my cousins, and took a lot of pictures.  For dinner, we had steaks, which I was volunteered to grill.  Somehow I always end up with that job.  I was happy enough to do it.  I got to stand outside in the chill air in front of two Weber charcoal grills.</p>
<p>Finally, well into the evening, we started a game of poker.  The delay is unusual for my family.  In the past, the game would have started immediately, and continued all day and well into the night.  These days Texas Hold&#8217;em is all the rage, even in my family.  It presents a much different dynamic that not everyone has picked up.  I was up at the end, which came much earlier than we had planned.</p>
<p><b>Snow!</b></p>
<p>My parents had left earlier in the evening to get back to their hotel in time to get a decent amount of sleep.  Not long after they got on the road, I started receiving phone calls from them.  Apparently, a snowstorm was passing through, for the first time in who knows how long.  My parents were urging me to get on the road before it got worse.  I took some flak from my Denver-based cousins, but my grandmother needed to get home, and I was the only person both sober enough and competent enough to make the drive.  So we left.</p>
<p>Just as no one in Southern California can drive when it rains, it seems no one in Wa(r)shington can drive when it snows.  I of all people, the kid who grew up in Hawai&#8217;i and Southern California, managed to handle the conditions just fine.  Better, in fact, than the majority of people we encountered on the road.</p>
<p>In the end, the drive was more annoying that it was stressful.  We saw two cars in ditches along the side of the road and, at one point, got stuck behind someone driving under 25 MPH and continuously braking &hellip; uphill.  Anyone who has driven in the snow knows this is a particularly dangerous practice.</p>
<p>At my parents&#8217; urging, we opted to take the &#8220;river road&#8221; instead of Highway 2.  My grandmother protested this move until my mother finally communicated to her that this was the route she takes home from bingo.  Apparently, the road is actually the Old Snohomish-Monroe Highway, while the &#8220;river road&#8221; is another route entirely.  The old highway ended up being a pleasant drive.  Few people go that way, and the river&#8217;s relative warmth kept the road clear of snow.  Yes, my mom referred to it as the &#8220;river road&#8221; because it follows the path of the river.</p>
<p>At one point, we pulled into the cover of a gas station to clear the car&#8217;s windshield and air intake of snow and ice.  Fortunately, this time I was wearing pants.  My hand still froze as I cleared the ice.  Apparently, I didn&#8217;t think to pack gloves on a trip to a location that hasn&#8217;t seen snow in ages, particularly in March.</p>
<p><b>Signs</b></p>
<p>Our flight home was delayed by an hour, so Mrs. sirhc and I had plenty time to grab lunch and spend some time relaxing at the Seattle-Tacoma airport.  After evaluating our myriad options of gourmet choices, we somehow passed up Wolfgang Puck&#8217;s pizza in favor of Wendy&#8217;s hamburgers (actually, I had a chicken sandwich).  As Mrs. sirhc ventured off in search of a table, I waited for our order outside the cashier area, which was sort of enclosed with windows on either side.</p>
<p>To understand the rest of this story, I need to first explain something.  Ever since I found out Mrs. sirhc was carrying a little sirhc or sirhcette, I&#8217;ve become much more aware of two things: pregnant women, and children.  What once was something I never took notice of, I see everywhere now.</p>
<p>Through the window on the left side of the restaurant, just inside the cashier area, was a little red-haired girl.  She couldn&#8217;t have been more than four or five years old and, for some reason, I had caught her fancy.  Every time I looked in her direction, she would catch my eye, smile and wave.  After noticing this, I played a bit of peek-a-boo with her while I waited for our order.  When our food was ready, I passed her, said hello and went on my way.  Shortly after, as we sat and ate our food, the girl passed by with her family, found me across the food court, caught my eye again, smiled and waved.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/whirlwind-family-reunion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Skies Aren&#8217;t Very Friendly Anymore</title>
		<link>http://sirhc.us/the-skies-arent-very-friendly-anymore/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-skies-arent-very-friendly-anymore</link>
		<comments>http://sirhc.us/the-skies-arent-very-friendly-anymore/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 02:39:24 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Airlines]]></category>
		<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/03/24/the-skies-arent-very-friendly-anymore/</guid>
		<description><![CDATA[We already had a flight booked from San Diego to Seattle on American Airlines, since we were on our way up there for a long weekend. I just got off the phone with the airline in a failed attempt to change our flight from Seattle to Portland. They wanted an extra $211 per ticket. I&#8217;m [...]]]></description>
				<content:encoded><![CDATA[<p>We already had a flight booked from San Diego to Seattle on American Airlines, since we were on our way up there for a long weekend.  I just got off the phone with the airline in a failed attempt to change our flight from Seattle to Portland.  They wanted an extra $211 per ticket.  I&#8217;m pretty sure it would cost less to just rent a car and drive down to Portland from Seattle (we don&#8217;t actually have to do that, but we could).</p>
<p>I think this will be my last non-business flight for a long, long time.  Not when it costs most of a paycheck just to fly somewhere for a weekend.</p>
<p><b>Update (26 Mar 2008, 09:30):</b> I just booked a rental car and a hotel room in Oregon.  Total cost, $208.32.  $2.68 <i>less</i> than <i>one</i> ticket reschedule from American Airlines.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/the-skies-arent-very-friendly-anymore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rest in Peace, Grandma</title>
		<link>http://sirhc.us/rest-in-peace-grandma/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rest-in-peace-grandma</link>
		<comments>http://sirhc.us/rest-in-peace-grandma/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 16:02:37 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/03/24/rest-in-peace-grandma/</guid>
		<description><![CDATA[I received a phone call from my mom a few minutes ago, and I could immediately tell she was forcing her words through tears. She and my dad are scheduled to embark on their drive to Oregon and Washington this morning, so my mind immediately started racing to guess at the cause of her distress. [...]]]></description>
				<content:encoded><![CDATA[<p>I received a phone call from my mom a few minutes ago, and I could immediately tell she was forcing her words through tears.  She and my dad are scheduled to embark on their drive to Oregon and Washington this morning, so my mind immediately started racing to guess at the cause of her distress.  Were they in an accident?</p>
<p>My grandmother&mdash;my mom&#8217;s mother&mdash;passed away early this morning.</p>
<p>She had been in declining health and suffering from Alzheimer&#8217;s disease for several years.  We visited her and my grandfather over the Christmas holiday in 2005.  This woman, of whom I have so many fond childhood memories, was a complete stranger to me, as I was to her.  After that visit, I had resigned myself to knowing that I would never see her again.  While I knew this day could not be far off, one can never truly prepare for it.  Already I can feel the sadness just under the surface, welling up periodically, threatening to overtake me.</p>
<p>I feel worse when I think about my own mother.  This will be especially hard her.  Not only from of the loss, but because she was scheduled to spend time with her mother this week.</p>
<p>Rest in peace, Grandma.  I&#8217;m sorry you&#8217;ll never get the chance to meet your great grandchild.  We&#8217;ll miss you terribly.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/rest-in-peace-grandma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baby G</title>
		<link>http://sirhc.us/baby-g/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=baby-g</link>
		<comments>http://sirhc.us/baby-g/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 04:55:18 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Baby]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/02/23/baby-g/</guid>
		<description><![CDATA[Looks like Mrs. sirhc has created a web site for our little sirhc in the oven. A baby blog, if you will. http://babyg-thebeginnings.blogspot.com/]]></description>
				<content:encoded><![CDATA[<p>Looks like Mrs. sirhc has created a web site for our little sirhc in the oven.  A baby blog, if you will.</p>
<p><a href="http://babyg-thebeginnings.blogspot.com/">http://babyg-thebeginnings.blogspot.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/baby-g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hey Dad</title>
		<link>http://sirhc.us/hey-dad/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hey-dad</link>
		<comments>http://sirhc.us/hey-dad/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 06:15:15 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/02/21/hey-dad/</guid>
		<description><![CDATA[So Mrs. sirhc is pregnant. Eight weeks today. In seven months, there will be a little sirhc or sirhcette in the house. We broke the news to our parents today, so it&#8217;s finally safe to write about it. The urge to post about it here has been difficult to suppress, but my family does occasionally [...]]]></description>
				<content:encoded><![CDATA[<p><img src="/images/hey_dad.jpg" width="500" height="333" alt="Hey Dad!" style="margin: 1em;" /></p>
<p>So Mrs. sirhc is pregnant.  Eight weeks today.  In seven months, there will be a little sirhc or sirhcette in the house.</p>
<p>We broke the news to our parents today, so it&#8217;s finally safe to write about it.  The urge to post about it here has been difficult to suppress, but my family does occasionally pay a visit.  Today happens to be my mother&#8217;s birthday.  So, after making sure my dad had the camera ready, we let her unwrap her gift&mdash;a tiny bib that reads, &#8220;I Love Grandma.&#8221;  The expression on her face was priceless.</p>
<p>I figure that, by now, my entire family&mdash;and countless others I&#8217;m sure&mdash;have heard the news.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/hey-dad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SCALE 6x: Programming Parrot</title>
		<link>http://sirhc.us/scale-6x-programming-parrot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scale-6x-programming-parrot</link>
		<comments>http://sirhc.us/scale-6x-programming-parrot/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 22:35:40 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Parrot]]></category>
		<category><![CDATA[SCALE]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/02/10/scale-6x-programming-parrot/</guid>
		<description><![CDATA[Allison Randal&#8216;s session, Programming Parrot, is the first, and likely the last, session I have attended at SCALE. I&#8217;m primarily a Perl programmer and only wear my sysadmin hat because I&#8217;m paid by my employer to do so. Also, being a computer science nerd, I also really enjoy compiler theory, so here I am. Jumping [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://radar.oreilly.com/allison/">Allison Randal</a>&#8216;s session, <a href="http://socallinuxexpo.org/scale6x/conference-info/speakers/Allison-Randall/">Programming Parrot</a>, is the first, and likely the last, session I have attended at <a href="http://socallinuxexpo.org/scale6x/">SCALE</a>.  I&#8217;m primarily a Perl programmer and only wear my sysadmin hat because I&#8217;m paid by my employer to do so.  Also, being a computer science nerd, I also really enjoy compiler theory, so here I am.</p>
<p>Jumping right into the talk, Allison started off with the general idea of Parrot.  It is a virtual machine (VM) meant to be a target for multiple (or all, really) dynamic languages.  Think Perl, Python, Ruby, TCL, Lua, etc.  Much like Perl itself, the overarching idea is to provide tools to make the act of writing compilers not only possible, but relatively easy.</p>
<p>When Parrot started, some seven years ago, people laughed when they said it would be a VM for dynamic languages.  The JVM and .NET VM were all the rage at the time, and they are targeted at static languages.  Today, those same people are touting how their VMs contain support for dynamic languages.</p>
<p>The rest of the session was a general overview of Parrot&#8217;s features and functionality.  In brief,</p>
<ul>
<li>Similar to .NET, Parrot would allow any language to use libraries written in any other;</li>
<li>Parrot is a register-based virtual machine, instead of the traditional stack-based design;</li>
<li>Continuation objects are used to pass call state, instead of the usual method of pushing onto a call stack;</li>
<li>PASM, the Parrot virtual machine&#8217;s assembly language;</li>
<li>PIR, a layer on top of PASM, intended to be more programmer-friendly;</li>
<li>NQP, an even higher layer, implementing many of the features from high level dynamic languages (Not Quite P(erl|ython|HP|ruby));</li>
</ul>
<p>Following this simple, but educational, overview, Allison gave some examples for how to use the Parrot tools to write a Python compiler.  This is something the Parrot team has, of course, already done.  It&#8217;s called Pynie (a bit of an inside joke&emdash;see Ponie and Punie).  It&#8217;s not really that much code to implement, either.  Certainly not compared to what I wrote to parse &#8220;Turing&#8221; in college using Lex, Yacc, and lots of C code.  It just goes to show how powerful the Parrot tools are.</p>
<p>I had read about much of this before, but unused information tends to slip away when not used.  It was nice to have a refresher course for the overall architecture of the system.  It&#8217;s all very much clearer now.  I&#8217;m looking forward to finding a use for Parrot.</p>
<p>[tags]SCALE, Parrot[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/scale-6x-programming-parrot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SCALE 6x: Day Two (Three)</title>
		<link>http://sirhc.us/scale-6x-day-two-three/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scale-6x-day-two-three</link>
		<comments>http://sirhc.us/scale-6x-day-two-three/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 16:43:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[SCALE]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/02/10/scale-6x-day-two-three/</guid>
		<description><![CDATA[It&#8217;s Sunday morning and the third day of SCALE 6x. However, I didn&#8217;t attend on Friday, so it&#8217;s only day two for me. Unlike other conferences, this one doesn&#8217;t get started until 10:00 AM. That didn&#8217;t stop me from waking up at 7:00 AM and getting down to the lobby around 8:00 AM, where I [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s Sunday morning and the third day of <a href="http://socallinuxexpo.org/scale6x/">SCALE 6x</a>.  However, I didn&#8217;t attend on Friday, so it&#8217;s only day two for me.  Unlike <a href="http://conferences.oreillynet.com/os2007/">other conferences</a>, this one doesn&#8217;t get started until 10:00 AM.  That didn&#8217;t stop me from waking up at 7:00 AM and getting down to the lobby around 8:00 AM, where I now sit typing this.</p>
<p>I won a <a href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470138114.html">couple</a> of <a href="http://www.dummies.com/WileyCDA/DummiesTitle/productCd-0470148314.html">books</a> at the reception and raffle last night.  It felt just like a <a href="http://www.kernel-panic.org/">KPLUG meeting</a>, and not just because half of the membership was in attendance and several of us won prizes.  I actually won three books, but I gave one away.  Once you&#8217;re name has been called, they don&#8217;t give you very much time to pick out your books, and the selection was uninteresting.</p>
<p>After the reception, <a href="http://antlinux.com/">Brian</a> took us to the Third Street Promenade in Santa Monica last night.  It&#8217;s a nice area to walk around and have dinner.  After dinner at FatBurger, we came back to the hotel for drinks; which was good, since I was driving.</p>
<p>I&#8217;ll likely spend most of my day in the <a href="http://www.pm.org/">Perl Mongers</a> booth again.  There is a talk on Parrot being given by Allison Randal, but I expect many of my fellow booth-sitters will also want to attend.  We may have to draw straws.</p>
<p>[tags]SCALE[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/scale-6x-day-two-three/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCALE 6x: Expo Floor</title>
		<link>http://sirhc.us/scale-6x-expo-floor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scale-6x-expo-floor</link>
		<comments>http://sirhc.us/scale-6x-expo-floor/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 23:47:34 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[SCALE]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/02/09/scale-6x-expo-floor/</guid>
		<description><![CDATA[It&#8217;s mid-afternoon on the expo floor. I&#8217;ve spent most of the day in the Perl Mongers booth, answering questions about Perl, and demonstrating MisterHouse and a game of pong running in Parrot, written by LA.pm&#8216;s Juan Jose Natera. It&#8217;s my first experience hanging out in a booth and, so far, I&#8217;m really enjoying it. I&#8217;ve [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s mid-afternoon on the expo floor.  I&#8217;ve spent most of the day in the <a href="http://www.pm.org/">Perl Mongers</a> booth, answering questions about <a href="http://www.perl.org/">Perl</a>, and demonstrating <a href="http://misterhouse.sourceforge.net">MisterHouse</a> and a game of pong running in <a href="http://www.parrotcode.org/">Parrot</a>, written by <a href="http://losangeles.pm.org/">LA.pm</a>&#8216;s Juan Jose Natera.  It&#8217;s my first experience hanging out in a booth and, so far, I&#8217;m really enjoying it.</p>
<p>I&#8217;ve just made a circuit of the expo floor, and it was pretty cool.  I visited all the booths required to enter tonight&#8217;s raffle.  And, just for fun, I visited a few more.  It&#8217;s a lot of fun to have so many members of my local <a href="http://www.kernel-panic.org/">Linux User Group</a> here, as I keep running into them in various parts of the expo hall.</p>
<p>There&#8217;s a full flight simulator running Linux in the row behind our booth.  Unfortunately, it was crashed when I walked by, but I&#8217;m hoping to check it out later.  Other than that, it&#8217;s the usual suspects: Red Hat, Novell, IBM, Sun, etc.  In fact, the Google booth is a mere two stalls to my left.  I firmly believe we&#8217;re taking advantage of their coolness factor to draw people to our corner.  Not that I have any idea what Google&#8217;s demonstrating in their booth.</p>
<p>[tags]SCALE[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/scale-6x-expo-floor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCALE 6x</title>
		<link>http://sirhc.us/scale-6x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scale-6x</link>
		<comments>http://sirhc.us/scale-6x/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 18:44:18 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[SCALE]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/02/09/scale-6x/</guid>
		<description><![CDATA[Well, I&#8217;ve arrived at SCALE 6x and, after picking up my exhibitor badge and a quick stop to introduce myself at the Perl Mongers booth (where I&#8217;m exhibiting), I&#8217;m sitting in the keynote, sort of. I&#8217;m actually in an overflow room watching the keynote via a streaming video feed being projected by someone with a [...]]]></description>
				<content:encoded><![CDATA[<p>Well, I&#8217;ve arrived at <a href="http://socallinuxexpo.org/scale6x/">SCALE 6x</a> and, after picking up my exhibitor badge and a quick stop to introduce myself at the <a href="http://pm.org/">Perl Mongers</a> booth (where I&#8217;m exhibiting), I&#8217;m sitting in the <a href="http://socallinuxexpo.org/scale6x/conference-info/speakers/Jono-Bacon/">keynote</a>, sort of.  I&#8217;m actually in an overflow room watching the keynote via a streaming video feed being projected by someone with a laptop and a network cable.  I like that, though.  Keynote fills up?  No problem, you can still see it.</p>
<p>My day hasn&#8217;t been off to a great start.  After a bout of insomnia and a near collision on the 405, I arrived at the Los Angeles Airpot Westin to find the parking garage full.  There was some parking that we were told was off limits, despite the lack of barrier and hidden signs.  I am, instead, parked in a supposedly free garage down the block.  Hopefully my car will still be there this afternoon.</p>
<p>As it seems the network connection for the keynote has failed, I&#8217;m going to wrap this up and see if I can find any of my fellow <a href="http://www.kernel-panic.org/">KPLUGgers</a>.</p>
<p>On the plus side, things can really only go up from here, right?</p>
<p>False alarm.  Seems the keynote is back on.  More to come later.</p>
<p>[tags]SCALE[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/scale-6x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Not to Get a Job</title>
		<link>http://sirhc.us/how-not-to-get-a-job/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-not-to-get-a-job</link>
		<comments>http://sirhc.us/how-not-to-get-a-job/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 16:49:29 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2008/02/06/how-not-to-get-a-job/</guid>
		<description><![CDATA[Start by writing a lousy r&#233;sum&#233;. Be sure to be as general as possible so it&#8217;s impossible to understand what was actually done. Don&#8217;t forget to say in 14 bullet points what can easily be said in five. Should the desire surface to have someone proof-read the document, ignore it; it&#8217;s obviously a waste of [...]]]></description>
				<content:encoded><![CDATA[<p>Start by writing a lousy r&eacute;sum&eacute;.  Be sure to be as general as possible so it&#8217;s impossible to understand what was actually done.  Don&#8217;t forget to say in 14 bullet points what can easily be said in five.  Should the desire surface to have someone proof-read the document, ignore it; it&#8217;s obviously a waste of time for something that will only be read once.  Use (or should I say utilize?) as many industry buzz words as possible; nothing better indicates a long and illustrious career.</p>
<p>Lastly, make absolutely sure you request to reschedule your phone interview half an hour prior to its commencement.  This one works especially well when I&#8217;ve cut my sleep short and arrived at work early just for your interview.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/how-not-to-get-a-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Fire Storm 2007&#8243;</title>
		<link>http://sirhc.us/fire-storm-2007/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fire-storm-2007</link>
		<comments>http://sirhc.us/fire-storm-2007/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 22:28:18 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Fire]]></category>
		<category><![CDATA[San Diego]]></category>
		<category><![CDATA[Witch Fire]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/10/22/fire-storm-2007/</guid>
		<description><![CDATA[As everyone has surely heard by now, San Diego is in flames. Again. The Santa Ana winds are especially bad this time, and they are uncontrollably driving two major fires (and several smaller ones). I had been watching the news broadcasts last night, but gave up and went to bed around midnight. At 6:00am, I [...]]]></description>
				<content:encoded><![CDATA[<p>As everyone has surely heard by now, San Diego is in flames.  Again.  The <a href="http://en.wikipedia.org/wiki/Santa_Ana_wind">Santa Ana winds</a> are especially bad this time, and they are uncontrollably driving two major fires (and several smaller ones).</p>
<p>I had been watching the news broadcasts last night, but gave up and went to bed around midnight.  At 6:00am, I awoke to a phone call from my mom.  A smaller fire (now contained) had started near us, and she wanted us to pack up and head down to her house in La Jolla, which will remain safe.  As of this afternoon, I can still ping the router in my house.  As more evacuations are ordered in the communities surrounding our house&mdash;the latest appears to be for our community, but it&#8217;s unclear&mdash;I can only hope for the best.</p>
<p>As I said, myself, my wife, and our three cats are safe and sound at my parents&#8217; house.</p>
<p>[tags]san diego, witch fire[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/fire-storm-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl 6, the Bird, and Hacking with Damian</title>
		<link>http://sirhc.us/perl-6-the-bird-and-hacking-with-damian/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=perl-6-the-bird-and-hacking-with-damian</link>
		<comments>http://sirhc.us/perl-6-the-bird-and-hacking-with-damian/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 06:56:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Damian Conway]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[San Diego Perl Mongers]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/10/04/perl-6-the-bird-and-hacking-with-damian/</guid>
		<description><![CDATA[Today was a long day for me. First, I was up early to ensure I could spend some time taking care of things in my office before class at 9:00am. Second, eight hours of Advanced Perl Best Practices with Damian Conway. Third, a special San Diego Perl Mongers presentation of Sex and Violence: Social and [...]]]></description>
				<content:encoded><![CDATA[<p>Today was a long day for me.  First, I was up early to ensure I could spend some time taking care of things in my office before class at 9:00am.  Second, eight hours of <a href="http://damian.conway.org/Courses//BestPractice.html">Advanced Perl Best Practices</a> with Damian Conway.  Third, a special <a href="http://sandiego.pm.org/">San Diego Perl Mongers</a> presentation of <a href="http://damian.conway.org/Seminars//SexViolence.html">Sex <em>and</em> Violence: Social and Technical Lessons from the Perl 6 Project</a>, again with Damian Conway.  I am exhausted and I think I have Perl leaking from my ears.</p>
<p>Today was also a very good day.  I learned a lot, and had a great time doing so.  While I&#8217;m already familiar with most of Perl&#8217;s best practices and the reasons for using them, there are always many things to be learned any time Damian speaks.  For example, I&#8217;ve always been one to use a single method as both accessor and mutator.  However, now I&#8217;ve seen a good argument to use separate methods.  Granted, I could have just read the <a href="http://www.oreilly.com/catalog/perlbp/">book</a>, but who has time for that?</p>
<p>One thing I will recommend: try to avoid <a href="http://en.wikipedia.org/wiki/V_sign#The_V_sign_as_an_insult">flipping the bird</a> to your instructor, even accidentally, particularly if you&#8217;re sitting in the front row and he&#8217;s standing only six feet directly in front of you.  Shortly after this incident, I had a conversation with a friend in New Zealand.  He gave me an explanation of the gesture and congratulated me for executing it in such a public forum (and getting a few laughs).</p>
<p>Even after my faux pas, I had the distinct honour to do a bit of hacking with Damian after class.  My coworker voiced a concern I&#8217;ve also had in the past: inside-out modules, in this case <a href="http://search.cpan.org/dist/Contextual-Return/"><code>Contextual::Return</code></a>, do not work with <a href="http://search.cpan.org/dist/Data-Dumper/"><code>Data::Dumper</code></a>.  So what did they do?  They immediately started looking for a way to make it work.  Initially, I merely stood back and watched; however, I&#8217;m proud to say I did have some input into the final implementation.  Essentially, we came up with the following method to make it work.</p>
<blockquote><p><code><br />
{ local $Data::Dumper::Freezer = 'Contextual::Return::FREEZE';<br />
&nbsp;&nbsp;Dumper $return_value;<br />
}<br />
</code></p></blockquote>
<p>It&#8217;s perhaps not the most convenient way of doing the job, but it&#8217;s not bad for something that for most people is a debugging tool.</p>
<p>After a short break for some rolled tacos at Nico&#8217;s, it was back to the auditorium for Damian&#8217;s presentation to the Perl Mongers.  As always, he had us rolling with laughter while at the same time learning quite a lot.  The primary focus of the talk was the social and technical lessons learned by the core Perl 6 development team over the last seven years of the project.  The lessons can be applied to any project&mdash;or in fact any group of people&mdash;be it Open Source or within a company.  While useful, I was most excited by what Damian shared of <a href="http://dev.perl.org/perl6/">Perl 6 itself</a>.  The design is amazingly clean and elegant, and I&#8217;m really looking forward to using it in my own projects.  One thing that really has me excited is <a href="http://en.wikipedia.org/wiki/Perl_6#Junctions">junctions</a>.  These look like an awesome way to develop parallel code cleanly and intuitively (at least for me).</p>
<p>I have one more day of class tomorrow, one I&#8217;m really looking forward to.  Damian will explain to us exactly how it is he can be so productive, even while traveling.  I expect to be overwhelmed with information and it will likely take me all weekend just to absorb it, and even longer to put what I learn to use.  Next year I sure hope we have him back to teach us all about <a href="http://damian.conway.org/Courses//MasteringVim.html">Vim</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/perl-6-the-bird-and-hacking-with-damian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When a Problem Comes Along, You Must Parse It</title>
		<link>http://sirhc.us/when-a-problem-comes-along-you-must-parse-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=when-a-problem-comes-along-you-must-parse-it</link>
		<comments>http://sirhc.us/when-a-problem-comes-along-you-must-parse-it/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 02:54:04 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Damian Conway]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/10/03/when-a-problem-comes-along-you-must-parse-it/</guid>
		<description><![CDATA[(With apologies to Devo.) I attended the first of three courses taught by Damian Conway today, Advanced Parsing with Parse::RecDescent. This was, effectively, the Parse::RecDescent tutorial as presented live by Damian. I&#8217;ve read the tutorial, and it&#8217;s quite good, but it&#8217;s hard to beat instruction from the man himself. Not having used the module on [...]]]></description>
				<content:encoded><![CDATA[<p>(With apologies to Devo.)</p>
<p>I attended the first of three courses taught by Damian Conway today, <a href="http://damian.conway.org/Courses//AdvancedParsing.html">Advanced Parsing with Parse::RecDescent</a>.  This was, effectively, the Parse::RecDescent <a href="http://search.cpan.org/src/DCONWAY/Parse-RecDescent-v1.95.1/tutorial/tutorial.html">tutorial</a> as presented live by Damian.  I&#8217;ve read the tutorial, and it&#8217;s quite good, but it&#8217;s hard to beat instruction from the man himself.  Not having used the module on too many occasions, the course served to clarify a few concepts of the grammar used by Parse::RecDescent.</p>
<p>Now I see problems in a new light—for better or worse.  This evening, I joined my boss to debug a problem we&#8217;ve been seeing in our compute cluster.  I joked that I could just whip up a grammar to track down the problem for us.  I must resist my usual urge to apply my new, shiny tool to all problems.  I mean, it&#8217;s bad enough I use the Perl hammer for everything, right?</p>
<p>Today&#8217;s course left me with nostalgia for the compilers course I took in college.  As my partner for that long ago class reminded me, it was filled with &#8220;late nights and Mountain Dew.&#8221;  Ah, good times.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/when-a-problem-comes-along-you-must-parse-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PayPal Security Key</title>
		<link>http://sirhc.us/paypal-security-key/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=paypal-security-key</link>
		<comments>http://sirhc.us/paypal-security-key/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 15:20:35 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[PayPal]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/10/03/paypal-security-key/</guid>
		<description><![CDATA[My PayPal security key arrived in the mail yesterday. When I first received notice that PayPal was offering these for a mere $5.00, I thought it was worth ordering, if only to encourage the practice. Whether or not it should be provided for free is another conversation. This added layer of security is a good [...]]]></description>
				<content:encoded><![CDATA[<p>My PayPal <a href="https://www.paypal.com/securitykey">security key</a> arrived in the mail yesterday.  When I first received notice that PayPal was offering these for a mere $5.00, I thought it was worth ordering, if only to encourage the practice.  Whether or not it should be provided for free is another conversation.</p>
<p>This added layer of security is a good thing, and I&#8217;m glad a company like PayPal is using its popularity and market presence to encourage adoption of <a href="http://en.wikipedia.org/wiki/Two-factor_authentication">two-factor authentication</a>.  It&#8217;s far superior to the <a href="http://worsethanfailure.com/Articles/WishItWas-TwoFactor-.aspx">wish-it-was two-factor authentication</a> schemes being implemented by some banks, including my own.</p>
<p>When my bank started implementing their own silly form of two-factor authentication, they did the same thing other banks have been doing.  Asking me on what street was my childhood home leaves me wondering if I spelled it Street, St., or left it off altogether.  When presented with questions about my favorite color, food, or day of the week, I give up altogether and write down my (usually randomly generated) answers.  This is not what I would call an added layer of security.  In fact, when asked over the phone by one of my bank&#8217;s customer service representatives if I would like to provide answers to some of these inane questions for identification purposes, I declined.  I was warned I would instead be challenged for information about such mundane things as my Social Security number and various account information I have with the bank.  I told the representative that I was fine with that.  After all, I&#8217;m much more likely to guard the details of my financial accounts than I am my pets&#8217; names, where I grew up, or the fact that I enjoy fish tacos at Rubio&#8217;s (this week).</p>
<p>[tags]paypal, security[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/paypal-security-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rain</title>
		<link>http://sirhc.us/rain/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rain</link>
		<comments>http://sirhc.us/rain/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 22:23:39 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[San Diego]]></category>
		<category><![CDATA[Weather]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/09/20/rain/</guid>
		<description><![CDATA[I awoke this morning to the sound of rain.  I love that.  Not enough to want to walk through it, though.  Which is why I live in San Diego and not, say, Seattle.]]></description>
				<content:encoded><![CDATA[<p>I awoke this morning to the sound of rain.  I love that.  Not enough to want to walk through it, though.  Which is why I live in San Diego and not, say, Seattle.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/rain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time to Find a New Vet</title>
		<link>http://sirhc.us/time-to-find-a-new-vet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=time-to-find-a-new-vet</link>
		<comments>http://sirhc.us/time-to-find-a-new-vet/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 16:30:42 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Cats]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/08/30/time-to-find-a-new-vet/</guid>
		<description><![CDATA[Ever since we moved into our new house back in March, we&#8217;ve needed to find a new vet for the cats. Today we tried All Cats Hospital. It&#8217;s not close, but it&#8217;s not exactly far, either. Unfortunately, our little Toby gets car sick and inevitably throws up in his cage on the trip to the [...]]]></description>
				<content:encoded><![CDATA[<p>Ever since we moved into our new house back in March, we&#8217;ve needed to find a new vet for the cats.  Today we tried <a href="http://www.allcatshosp.com/">All Cats Hospital</a>.  It&#8217;s not close, but it&#8217;s not exactly far, either.  Unfortunately, our little Toby gets car sick and inevitably throws up in his cage on the trip to the vet.</p>
<p>So we arrive at the vet&#8217;s office only to find out that it&#8217;s no longer the vet&#8217;s office.  They have moved, and left a sign on the door with the new location.  Of course, the address on the front page of the web site has not been updated.</p>
<blockquote><p>All Cats Hospital<br />
7040 Avenida Encinas Ste 109<br />
Calsbad [sic], CA 92011</p></blockquote>
<p>We called the (new) office to let them know we would be late and why.  We were told we would have to reschedule.</p>
<p>Sure, I&#8217;ll reschedule.  For an appointment with a different vet.  I refuse to do business or trust someone who can&#8217;t even keep something as simple as a web site up to date.  Not to mention spell the name of their city correctly.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/time-to-find-a-new-vet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Hate E-mail</title>
		<link>http://sirhc.us/i-hate-e-mail/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=i-hate-e-mail</link>
		<comments>http://sirhc.us/i-hate-e-mail/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 14:22:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[E-mail]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/08/30/i-hate-e-mail/</guid>
		<description><![CDATA[I like e-mail, in general. It&#8217;s a convenient, asynchronous, mostly-reliable method of communication. I can receive a message, mull over it for a while, formulate a semi-intelligent response, and it hasn&#8217;t really pulled me away from what I was doing like a phone call would. Many would consider me a Luddite, preferring Mutt as my [...]]]></description>
				<content:encoded><![CDATA[<p>I like e-mail, in general.  It&#8217;s a convenient, asynchronous, mostly-reliable method of communication.  I can receive a message, mull over it for a while, formulate a semi-intelligent response, and it hasn&#8217;t really pulled me away from what I was doing like a phone call would.</p>
<p>Many would consider me a Luddite, preferring <a href="http://www.mutt.org/">Mutt</a> as my <acronym title="Mail User Agent">MUA</acronym>. of choice.  I can imagine the cries of people who use so-called modern mail readers: fancy text formatting! embedded images! annoying layouts! hidden viruses! phishing scams!</p>
<p>What happened to the power and effectiveness of the written word?  I suppose many aren&#8217;t capable of scribing a well-formed sentence, so they compensate with fonts, colors, and <a href="http://techdictionary.com/chat.html">cryptic abbreviations</a>.  Still others are attracted to the shininess of the formatting.  They can send mail that looks like a web page!  Even when all they wanted to do was ask a short question!</p>
<p>This is progress?</p>
<p>Normally, I&#8217;m content with <a href="http://en.wikipedia.org/wiki/Killfile">killfiling</a> any mail that arrives with a content type of text/html.  Unfortunately, there are some people I simply must communicate with for whatever reason (usually it involves money in one way or another).  One of the fastest ways to get on my bad side is to send me mail that requires extra effort for me to read.  This rant is a result of one of these messages.</p>
<p>I drafted a message of moderate length to discuss some points I thought important.  Normally, I would expect any responses <a href="http://en.wikipedia.org/wiki/Posting_style#Inline_replying">inline</a> or, at worst, <a href="http://en.wikipedia.org/wiki/Posting_style#Top-posting">top posted</a>.  No, the response I received was even worse than what I see from users of Eudora&#8217;s unintelligible  reply style.  The responses were added directly to the paragraphs I had written, but styled bold and red for &#8220;readability.&#8221;</p>
<blockquote><p>Hello, this is my opinion on the matter.  <span style="color: red">I see, but have you considered this other thing?</span></p></blockquote>
<p>As can be expected, this style doesn&#8217;t lend itself well to reading in plain text.  Of course, I don&#8217;t think this style lends itself to any kind of comprehension.</p>
<p>I responded to this message, demonstrating how difficult it was for me to read without jumping through hoops, and expressing my annoyance at being forced to jump through said hoops.  I tried to be kind, blaming the bad-habit-inducing tools (Outlook) rather than the writer.  So this fellow tries again.</p>
<p>With an attached PDF file.</p>
<p>Seriously?  Was he so enthralled by the font styling that he felt compelled to force upon me an attached document in order to render correctly?  Maybe e-mail <a href="http://news.com.com/Kids+say+e-mail+is,+like,+soooo+dead/2009-1032_3-6197242.html">really is dead</a>.  Apparently a well-written, plain text message <em>is</em> too much to ask for.</p>
<p>[tags]annoyances, e-mail, people[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/i-hate-e-mail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Finally Working on SanDiego.pm.org</title>
		<link>http://sirhc.us/finally-working-on-sandiegopmorg/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=finally-working-on-sandiegopmorg</link>
		<comments>http://sirhc.us/finally-working-on-sandiegopmorg/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 20:45:14 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[Perl Mongers]]></category>
		<category><![CDATA[San Diego]]></category>
		<category><![CDATA[San Diego Perl Mongers]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/08/14/finally-working-on-sandiegopmorg/</guid>
		<description><![CDATA[After inheriting the San Diego Perl Mongers web site, I&#8217;m finally starting to work on it. My first task was to remove the frames. While I was at it, I re-organized the information a bit to (hopefully) make it very easy for visitors to find what they&#8217;re looking for. I have a few ideas for [...]]]></description>
				<content:encoded><![CDATA[<p>After inheriting the San Diego Perl Mongers <a href="http://sandiego.pm.org/">web site</a>, I&#8217;m finally starting to work on it.  My first task was to remove the frames.  While I was at it, I re-organized the information a bit to (hopefully) make it very easy for visitors to find what they&#8217;re looking for.</p>
<p>I have a few ideas for the future of the web site.  Some of these include a wiki, a blog, a book review section, anything really.  Not everything will be worth pursuing.  We can have a wiki on a main Perl site; we can set up individual blogs on <a href="http://use.perl.org/">use Perl</a> (or Blogger or LiveJournal or whatever).  However, I think it would be nice to have a web site we can call our own.</p>
<p>I&#8217;m open to ideas, and I try to be receptive to comments and suggestions, either on our <a href="http://mail.pm.org/mailman/listinfo/san-diego-pm">mailing list</a> or sent directly to me.</p>
<p>[tags]perl mongers, sandiego.pm[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/finally-working-on-sandiegopmorg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Successful New Venue for SanDiego.pm</title>
		<link>http://sirhc.us/a-successful-new-venue-for-sandiegopm/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-successful-new-venue-for-sandiegopm</link>
		<comments>http://sirhc.us/a-successful-new-venue-for-sandiegopm/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 05:43:15 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[Perl Mongers]]></category>
		<category><![CDATA[San Diego]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/08/13/a-successful-new-venue-for-sandiegopm/</guid>
		<description><![CDATA[Tonight I hosted the San Diego Perl Mongers meeting at the auditorium in the building where I work. It was an experiment, and a successful one at that. We had an attendance of 16 people, which is quite good for our group. I suspect some of that was due to the free pizza provided by [...]]]></description>
				<content:encoded><![CDATA[<p>Tonight I hosted the <a href="http://sandiego.pm.org/">San Diego Perl Mongers</a> meeting at the auditorium in the building <a href="http://www.qualcomm.com/">where I work</a>.  It was an experiment, and a successful one at that.  We had an attendance of 16 people, which is quite good for our group.  I suspect some of that was due to the free pizza provided by my director (thanks Keith!).</p>
<p>Since we had the auditorium available to us, one of our members was nice enough to say a few words about his business and how Perl has helped him to succeed.  Much of the evening was devoted to chatting about whatever Perl-related thoughts came to mind.  I floated the idea of hosting a booth at <a href="http://www.fosscon.org/">FOSSCON</a>, but that&#8217;s still too far out to really talk seriously about it.</p>
<p>I&#8217;m extremely pleased with how well the venue worked out.  We may not have the meeting there every month, but it&#8217;s nice to have it available so we can start adding technical meetings to our calendar.</p>
<p>[tags]perl, perl mongers, san diego, sandiego.pm[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/a-successful-new-venue-for-sandiegopm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YAPC::NA in Los Angeles, Anyone?</title>
		<link>http://sirhc.us/yapcna-in-los-angeles-anyone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=yapcna-in-los-angeles-anyone</link>
		<comments>http://sirhc.us/yapcna-in-los-angeles-anyone/#comments</comments>
		<pubDate>Fri, 03 Aug 2007 21:22:23 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Los Angeles]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Perl Mongers]]></category>
		<category><![CDATA[YAPC]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/08/03/yapcna-in-los-angeles-anyone/</guid>
		<description><![CDATA[After attending OSCON last month, and having the usual fun with my geek friends from around the globe, I decided that I should start attending YAPC. As it so happens, the Los Angeles Perl Mongers are kicking around the idea of hosting YAPC::NA in their city. Since LA is nearby for me, I&#8217;d like to [...]]]></description>
				<content:encoded><![CDATA[<p>After attending <a href="http://conferences.oreillynet.com/os2007/">OSCON</a> last month, and having the usual fun with my geek friends from around the globe, I decided that I should start attending <a href="http://www.yapc.org/">YAPC</a>.  As it so happens, the <a href="http://losangeles.pm.org/">Los Angeles Perl Mongers</a> are kicking around the idea of <a href="http://www.socialtext.net/yapc/index.cgi">hosting YAPC::NA in their city</a>.  Since LA is nearby for me, I&#8217;d like to see that happen.</p>
<p>Looks like <a href="http://chicago.pm.org/">Chicago.pm</a> has <a href="http://news.perlfoundation.org/2007/08/yapcna2008_chicagopm_bid.html">thrown their hat into the ring</a> as well.</p>
<p><b>Update:</b> I guess the LA.pm bid <a href="http://use.perl.org/article.pl?sid=07/08/07/1816200">never gained any traction</a>.</p>
<p>[tags]oscon, oscon07, yapc, perl mongers, los angeles[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/yapcna-in-los-angeles-anyone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Peeing On My Blog, Technorati Style</title>
		<link>http://sirhc.us/peeing-on-my-blog-technorati-style/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=peeing-on-my-blog-technorati-style</link>
		<comments>http://sirhc.us/peeing-on-my-blog-technorati-style/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 17:51:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Technorati]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/08/01/peeing-on-my-blog-technorati-style/</guid>
		<description><![CDATA[As mentioned by Schwern, Technorati requires you to claim your blog with a special post. This is that post. Don&#8217;t mind the smell, I&#8217;m sure it&#8217;ll clear up soon.]]></description>
				<content:encoded><![CDATA[<p>As mentioned by <a href="http://use.perl.org/~schwern/journal/33920">Schwern</a>, Technorati requires you to claim your blog with a special post.</p>
<p><a href="http://technorati.com/claim/tmcqhw5imk" rel="me">This is that post.</a>  Don&#8217;t mind the smell, I&#8217;m sure it&#8217;ll clear up soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/peeing-on-my-blog-technorati-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogger to WordPress</title>
		<link>http://sirhc.us/blogger-to-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blogger-to-wordpress</link>
		<comments>http://sirhc.us/blogger-to-wordpress/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 05:32:04 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/30/blogger-to-wordpress/</guid>
		<description><![CDATA[I&#8217;ve had a handful of journal entries sitting in Blogger ever since I switched to WordPress last year, never sure what to do about them. I wanted to move them to this site, but I didn&#8217;t want to spend a lot of time copying and pasting. I happened to be clicking through some of WordPress&#8217;s [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve had a handful of journal entries sitting in Blogger ever since I switched to WordPress last year, never sure what to do about them.  I wanted to move them to this site, but I didn&#8217;t want to spend a lot of time copying and pasting.</p>
<p>I happened to be clicking through some of WordPress&#8217;s myriad options tonight, when I found it can import posts and comments from Blogger.  Neat!  I still have to go through and manually add tags to each entry, but that task is much easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/blogger-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sirhc.us maxim.us on the iPhone</title>
		<link>http://sirhc.us/sirhcus-maximus-on-the-iphone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sirhcus-maximus-on-the-iphone</link>
		<comments>http://sirhc.us/sirhcus-maximus-on-the-iphone/#comments</comments>
		<pubDate>Sat, 28 Jul 2007 19:23:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[Portland]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/28/sirhcus-maximus-on-the-iphone/</guid>
		<description><![CDATA[I couldn&#8217;t resist stopping at the Apple Store on my way from the Rogue Ale House to the Oregon Brewers Festival.]]></description>
				<content:encoded><![CDATA[<p>I couldn&#8217;t resist stopping at the <a href="http://www.apple.com/retail/">Apple Store</a> on my way from the <a href="http://www.rogue.com/">Rogue Ale House</a> to the <a href="http://www.oregonbrewfest.com/">Oregon Brewers Festival</a>.</p>
<p><a href="http://flickr.com/photos/14933335@N00/924939748/"><img src="http://farm2.static.flickr.com/1205/924939748_9769808852.jpg?v=0" alt="sirhc.us maxim.us On the iPhone" height="375" width="500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/sirhcus-maximus-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Wrap Up</title>
		<link>http://sirhc.us/oscon-2007-wrap-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-wrap-up</link>
		<comments>http://sirhc.us/oscon-2007-wrap-up/#comments</comments>
		<pubDate>Sat, 28 Jul 2007 19:08:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/28/oscon-2007-wrap-up/</guid>
		<description><![CDATA[The O&#8217;Reilly Open Source Convention, affectionately known as Summer Camp for Geeks, is over. I&#8217;m sitting in Gustav&#8217;s Pub &#38; Grill in PDX, somewhat enjoying a German sausage trio and really enjoying the free wifi. I have a couple of hours until my flight boards, so I&#8217;m taking the opportunity to grab a bite to [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://conferences.oreillynet.com/os2007/">O&#8217;Reilly Open Source Convention</a>, affectionately known as Summer Camp for Geeks, is over.  I&#8217;m sitting in <a href="http://www.gustavs.net/">Gustav&#8217;s Pub &amp; Grill</a> in <a href="http://www.flypdx.com/">PDX</a>, somewhat enjoying a German sausage trio and really enjoying the free wifi.  I have a couple of hours until my flight boards, so I&#8217;m taking the opportunity to grab a bite to eat and write up my summary of OSCON.</p>
<p>I wasn&#8217;t overly impressed with the quality of the tutorials or the sessions this year.  Even with 15 parallel tracks, I sometimes found it difficult to find a session that held more interest for me than the hallway track.  Other times, the sheer number of tracks left me flipping coins to determine which session to attend.  I hope that next year the organizers of OSCON (though I don&#8217;t expect <a href="http://radar.oreilly.com/allison/">Allison</a> reads my blog) either reduce the number of parallel tracks, or do a better job scheduling those tracks.  I realize it must be a difficult job, but if everyone attending could select the sessions that interest them beforehand, I think it could work.</p>
<p>Last year, I jokingly referred to OSCON as <a href="http://damian.conway.org">DamianCon(way)</a>, after the seemingly endless number of tutorials, sessions, and keynotes he had presented.  Unfortunately, this year he wasn&#8217;t even in attendance.  A lot of people were disappointed to find that <a href="http://www.stonehenge.com/merlyn/">Randal Schwartz</a> wasn&#8217;t in attendance either.  With the absence of two of OSCON&#8217;s major celebrities and the news of <a href="http://radar.oreilly.com/nat/">Nat Torkington</a> stepping down as OSCON program chair, a friend pondered if this meant OSCON had jumped the shark.  This quickly led that same friend to ponder if the phrase, &#8220;jumped the shark,&#8221; had itself jumped the shark.</p>
<p>Still, OSCON isn&#8217;t wholly about the tutorials or the sessions.  It&#8217;s about the people.  It&#8217;s about seeing friends from around the world (<a href="http://www.canspice.org/">Brad</a>, <a href="http://risse.tierranet.com/index.html">Dan</a>, Dylan), and meeting new ones (<a href="http://www.dailyack.com/">Alasdair</a>, Josh, <a href="http://kevin.scaldeferri.com/blog/">Kevin</a>), and spending a week together.  A week of learning and socializing.  That&#8217;s the real reason I come to OSCON.  After my yearly dose of geek, I return to work refreshed, with more creativity and productivity than when I left.  So OSCON is still worth attending, I think, even if it wasn&#8217;t as good as we always seem to remember (and I&#8217;m sure we&#8217;ll all repeat the sentiment next year).</p>
<p>I can&#8217;t wait to come back next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-wrap-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Closing Keynote</title>
		<link>http://sirhc.us/oscon-2007-closing-keynote/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-closing-keynote</link>
		<comments>http://sirhc.us/oscon-2007-closing-keynote/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 19:57:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Keynotes]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/27/oscon-2007-closing-keynote/</guid>
		<description><![CDATA[The closing keynote was delivered by Phillip Torrone and Limor Fried, of Make Magazine, and was entitled &#8220;Open Source Hardware: A Start&#8230;&#8221; They discussed (more of a discussion than a presentation, really) applying the principles of crysography to hardware. They are intelligent and creative people, but I don&#8217;t have a whole lot to say about [...]]]></description>
				<content:encoded><![CDATA[<p>The closing keynote was delivered by Phillip Torrone and Limor Fried, of Make Magazine, and was entitled &#8220;Open Source Hardware: A Start&#8230;&#8221;  They discussed (more of a discussion than a presentation, really) applying the principles of <a href="http://en.wikipedia.org/wiki/Chrysography" target="_blank">crysography</a> to hardware.</p>
<p>They are intelligent and creative people, but I don&#8217;t have a whole lot to say about what they&#8217;re saying.  However, I do appreciate the irony of my attendance, given my <a href="http://www.qualcomm.com/" target="_blank">day job</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-closing-keynote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: An Open Source Lexicon</title>
		<link>http://sirhc.us/oscon-2007-an-open-source-lexicon/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-an-open-source-lexicon</link>
		<comments>http://sirhc.us/oscon-2007-an-open-source-lexicon/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 19:12:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Chrysography]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/27/oscon-2007-an-open-source-lexicon/</guid>
		<description><![CDATA[I had originally intended to attend the session on targeting Parrot with your programming language. But it&#8217;s Friday. And I don&#8217;t want to work. And r0ml is presenting a session. So I said screw it and now I&#8217;m being entertained by r0ml. This talk is not about programming, but about rhetoric. In particular, the rhetoric [...]]]></description>
				<content:encoded><![CDATA[<p>I had originally intended to attend the session on targeting Parrot with your programming language.  But it&#8217;s Friday.  And I don&#8217;t want to work.  And <a href="http://r0ml.net/blog/" target="_blank">r0ml</a> is presenting a session.  So I said screw it and now I&#8217;m being entertained by r0ml.</p>
<p>This talk is not about programming, but about rhetoric.  In particular, the rhetoric used in business today.  And how no one understands it.</p>
<p>So many words used in business today have other meanings.  Meanings that have nothing to do with how they&#8217;re being used in business rhetoric.  So what do we do?  We put words together and pretend they mean something new.  And, since we&#8217;re not German, we turn them into acronyms.  Acronyms that may themselves mean something else.  Confusing, isn&#8217;t it?</p>
<p>Here&#8217;s an idea.  Go back in time to find words that mean something else, but that no one today remembers (at least, no more than a handful of people on the planet).  Then redefine that word to mean whatever you want.  This works particularly well if Google returns very few hits for the word in question.  Of course, like anything, it can backfire.</p>
<p>After talking about the fallacy of rhetoric in modern business language, the remainder of the session was dedicated to replacing our modern business language with words from antiquity, almost all of which have meanings very close to what we want.  I&#8217;m not surprised that most of the words come from the literary (as in books) domain.  We are, after all, writing and publishing software.</p>
<p>Shamefully, no one recorded this session.  I couldn&#8217;t even attempt to do it justice here.</p>
<p>This session has given me a desire to subscribe to the Oxford English Dictionary.</p>
<p>Who says the English language doesn&#8217;t have a proper word for what we mean by free software?</p>
<p>Liberal Software.</p>
<p>Duh.</p>
<p>Stupid politicians.  Thanks guys.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-an-open-source-lexicon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Subversion Worst Practices</title>
		<link>http://sirhc.us/oscon-2007-subversion-worst-practices/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-subversion-worst-practices</link>
		<comments>http://sirhc.us/oscon-2007-subversion-worst-practices/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 18:22:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/27/oscon-2007-subversion-worst-practices/</guid>
		<description><![CDATA[We started using Subversion at work shortly after I joined the team, so I thought I&#8217;d attend the &#8220;Subversion Worst Practices&#8221; talk. It&#8217;s billed by the speakers, Ben Collins-Sussman &#38; Brian W. Fitzpatrick of Google (and of Subversion fame), as a light-hearted follow-up to the best practices session they held last year. I&#8217;m happy it [...]]]></description>
				<content:encoded><![CDATA[<p>We started using Subversion at work shortly after I joined the team, so I thought I&#8217;d attend the &#8220;Subversion Worst Practices&#8221; talk.  It&#8217;s billed by the speakers, Ben Collins-Sussman &amp; Brian W. Fitzpatrick of Google (and of Subversion fame), as a light-hearted follow-up to the best practices session they held last year.  I&#8217;m happy it will be light-hearted, because I wasn&#8217;t thrilled with the session last year, and didn&#8217;t feel I got much out of it.</p>
<p>They started out with the top 10 ways to sabotage your project with Subversion.  It&#8217;s Friday, and there&#8217;s not that much to say about each of the slides, so I&#8217;ll merely enumerate the worst practices, without commentary, for now.  Hopefully the slides will be posted later.</p>
<p>10. Argue about Version Control Systems</p>
<p>9. Do a Brute-Force Transition</p>
<p>8. Backups?  What Backups?</p>
<p>7. Loads of Locales</p>
<p>6. Rule with an IRON FIST</p>
<p>5. Hide the Version Control</p>
<p>4. Use Complex Branching Schemes</p>
<p>3. Put Everything in the Repository</p>
<p>2. Use a Network Drive</p>
<p>(Oops, we do that&#8230;)</p>
<p>1. Really Clever Hook Scripts!</p>
<p>0. Edit the Repository Database</p>
<p>Obviously, this session was really a list of best practices presented in a humorous way, by pointing out the extreme case of not actually following those best practices.</p>
<p>I noticed the MacBook Pro Ben and Brian are using to drive their session has a bumper sticker on it: &#8220;My other computer is a data center.&#8221;  I like it.  It&#8217;s exactly what I&#8217;ve been doing to my computing.</p>
<p>It was nice that Ben and Brian left ample time for questions and answers.  The audience appreciated the time to ask questions about how to apply Subversion best practices to their own repositories.  Or just to bitch about some pain points.  Fun stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-subversion-worst-practices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Friday Morning Keynotes</title>
		<link>http://sirhc.us/oscon-2007-friday-morning-keynotes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-friday-morning-keynotes</link>
		<comments>http://sirhc.us/oscon-2007-friday-morning-keynotes/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 17:19:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Keynotes]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/27/oscon-2007-friday-morning-keynotes/</guid>
		<description><![CDATA[It&#8217;s the last day of OSCON 2007, and I couldn&#8217;t be happier. Don&#8217;t get me wrong, I love coming to OSCON (even if I&#8217;ve only been twice now). It just starts so early in the morning. I&#8217;m looking forward to sleeping in tomorrow before I finally head back home. Anyway, on to the keynotes. First [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s the last day of OSCON 2007, and I couldn&#8217;t be happier.  Don&#8217;t get me wrong, I love coming to OSCON (even if I&#8217;ve only been twice now).  It just starts so early in the morning.  I&#8217;m looking forward to sleeping in tomorrow before I finally head back home.</p>
<p>Anyway, on to the keynotes.</p>
<p>First up is Philip Rosedale, of <a href="http://www.youtube.com/watch?v=wqkB-VptcJg" target="_blank">giant, flying penis</a> fame.  Um.  I mean, Second Life fame.  He&#8217;s here to talk about Open Source Second Life.  He had an interesting comment comparing Second Life to the X Prize.  We, as humans, have two major goals.  First, we could delve into inner space, the virtual world that is Second Life.  Second, we could venture into outer space, leaving the planet behind altogether.  But really what he wants to talk about is how Open Source can benefit Second Life and, presumably, how Second Life can benefit Open Source.  Philip sees Second Life as being good for humanity and wants to see it grow in the way that only the Open Source community can manage.</p>
<p>I&#8217;m not entirely sure how Second Life can be good for humanity (it&#8217;s just graphical IRC, isn&#8217;t it?) and I&#8217;ve never even considered using Second Life.  On the surface, it looks like it could be fun.  But it&#8217;s not a game.  At least the MMORPGs had stuff to do.  Second Life is just real people in an imaginary world, doing all the things that real people do to annoy me.  We&#8217;ll see.</p>
<p>Next up is Jimmy Wales, of Wikia fame.  He started off with a quote.  &#8220;Imagine a world in which every single person on the planet is given free access to the sum of all human knowledge.&#8221;  That is free, as in speech, of course.  Wikipedia was the encyclopedia.  Now, Wikia wants to be the entire library.</p>
<p>Of course, this being OSCON, Jimmy was sure to point out that all of this free information is thanks to Open Source.  Today, there are so many inexpensive options out there to publish web sites, which I certainly don&#8217;t need to enumerate to my audience.  Wikipedia, and now Wikia, take full advantage of this Open Source software.</p>
<p>So why not extend the idea of openness to search?  Today, all of our searches are locked up in companies.  From so-called good companies (Google) to so-called bad companies (Microsoft).  But they are still companies.  Search should be open and democratic, too.  So that&#8217;s what Wikia is doing, building an open search.</p>
<p>There are four keys to open search: transparency, collaboration, quality, and privacy.</p>
<p>Now for the announcement.  Wikia has acquired <a href="http://www.grub.org/" target="_blank">Grub</a> (no, not the bootloader), a distributed web crawling program.  Interesting.  Another distributed software application.  I like the idea behind these, using all the potential of all those idle processors, but I don&#8217;t much like paying the electric bill.</p>
<p>Our third keynote of the day is being delivered by Simon Wardley, who points out that he is from Kent, England.  He&#8217;s here to talk about one of his passions—second only to ducks—commoditisation.  There is an ever-driving force in IT to push products and services to being commodities.  Companies try hard to push products and services away from being commodities, using patents and DRM.  However, Open Source is a major driving force for turning products and services into commodities.</p>
<p>This is a concept I really like.  Why should we spend all of our time reinventing wheels?  If something has already been done right, why can&#8217;t we all take advantage of it?  In fact, it was all the rage when I attended the Platform Grid Conference last year.  However, aside from the academics speaking at that conference, everyone there represented a company that wanted to capture and jail your data.</p>
<p>There are three main levels of commoditization, software, framework, and hardware as a service ({S,F,H}aaS).  By open sourcing each of these, we create a stack capable of deploying new and interesting products, without spending so much time reinventing those bloody wheels.</p>
<p>Our next speaker was none other than Nathan Torkington, our program chair.  He will be giving us three keynotes in fifteen minutes, just to prove that fifteen minutes is more than enough time for a keynote.</p>
<p>Short keynote number one: Dr. Nat&#8217;s therapy session.  It was very funny, but very difficult to blog.  In short, he took a page out of Dr. Phil&#8217;s book and psychoanalyzed all the software we use on a daily basis.  It&#8217;s hard to describe, but he nailed each of the projects&#8217; idiosyncrasies quite well.</p>
<p>Short keynote number two: Open Source has won.  Nat&#8217;s running low on time, so he&#8217;s talking really, really fast in his kiwi accent.  Fortunately, isn&#8217;t as strong as other kiwi accents I&#8217;ve heard, but as he speaks faster, it gets stronger.  So Open Source may have won (is winning?) the battle against proprietary software companies, but we spend a lot of time fighting amongst each other.</p>
<p>Short keynote number three: People are stupid (don&#8217;t even get me started).  Apparently, all the smart people now work for Google, leaving the rest of the world with very few smart people.  The message here, it&#8217;s easy to be mean, but hard to be nice.  Remember, we&#8217;re all people.  Be nice to each other.</p>
<p>Our final keynote is from <a href="http://www.makezine.com/pub/au/James_Larsson" target="_blank">James Larsson</a>, someone who, as Nat tells us, embodies the hacker spirit.  He&#8217;s here to tell us how to &#8220;Pimp My Garbage.&#8221; I&#8217;m actually a little scared to find out what that means.</p>
<p>Okay, this is a great talk.  He&#8217;s showing off ways he has turned old, boring games into something a bit more exciting.  Not only games, but old, discarded electronics.  It&#8217;s all about taking old things and thinking of new, interesting things to do with them.  It is the essence of hacking.  I&#8217;m tempted to subscribe to Make magazine now.</p>
<p>Interestingly (or perhaps not), the higher the level of sophistication of a product, the less potential it has for hackability.  So the only thing you can really do with the more sophisticated things is to destroy them in interesting ways.</p>
<p>I don&#8217;t know how to even begin describing James&#8217;s keynote.  Fortunately, it&#8217;s being recorded for later posting on YouTube.  I&#8217;ll post the link when it&#8217;s available.</p>
<p>And that&#8217;s the end of the keynotes.  Time for the break.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-friday-morning-keynotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl Survey 2007</title>
		<link>http://sirhc.us/perlsurvey-2007/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=perlsurvey-2007</link>
		<comments>http://sirhc.us/perlsurvey-2007/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 06:44:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/26/perlsurvey-2007/</guid>
		<description><![CDATA[Schwern, during one of his lightning talks, plugged the Perl Survey. Quite simply, it&#8217;s a way of finding out who&#8217;s using Perl. I&#8217;m pretty interested in seeing the results myself. Anyway, go take the survey. http://perlsurvey.org/]]></description>
				<content:encoded><![CDATA[<p><a href="http://schwern.org/~schwern/" target="_blank">Schwern</a>, during one of his lightning talks, plugged the Perl Survey.  Quite simply, it&#8217;s a way of finding out who&#8217;s using Perl.  I&#8217;m pretty interested in seeing the results myself.</p>
<p>Anyway, go take the survey.</p>
<p><a href="http://perlsurvey.org/" target="_blank">http://perlsurvey.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/perlsurvey-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: State of the Onion</title>
		<link>http://sirhc.us/oscon-2007-state-of-the-onion/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-state-of-the-onion</link>
		<comments>http://sirhc.us/oscon-2007-state-of-the-onion/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 02:24:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Larry Wall]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/26/oscon-2007-state-of-the-onion/</guid>
		<description><![CDATA[After the auction to benefit the Perl Foundation, it was finally time for the State of the Onion. I don&#8217;t know which number this is, but there have been a lot. When Larry hooked up his computer to the projector, he had an IRC window open to #parrot on irc.perl.org. Yes, of course I did [...]]]></description>
				<content:encoded><![CDATA[<p>After the auction to benefit the Perl Foundation, it was finally time for the State of the Onion.  I don&#8217;t know which number this is, but there have been a lot.</p>
<p>When Larry hooked up his computer to the projector, he had an IRC window open to #parrot on irc.perl.org.  Yes, of course I did it.  I jumped right into the channel and wrote, &#8220;hi mom.&#8221;  I got a good laugh from those in the room, but I&#8217;ll probably never be welcome in that channel again.</p>
<p>Larry thinks it&#8217;s a bad idea to get rid of the term scripting.  Perl already owns the brand when it comes to scripting.  We have about the same chance of changing the branding of hacker.</p>
<p><strong>&#8220;Programming is hard, let&#8217;s go scripting!&#8221;</strong></p>
<p>Scripting isn&#8217;t so bad.  It&#8217;s actually kind of easy; just look at all the script kiddies out there.  But we can use Perl to turn all those script kiddies into real programmers.  After all, Larry claims to have come to Perl in the same way.</p>
<p>So what&#8217;s the difference between scripting and programmers?  Scripting is like profanity, you know it when you see it.</p>
<p>This year&#8217;s State of the Onion is about scripting, past, present, and future.</p>
<p>The past, essentially, is a brief history of Larry and his experience with scripting at different times of his life.  More importantly, it&#8217;s about what all of these languages ar, how they and his experiences with them influenced what Perl was, is, and will be.</p>
<p>The present is an overview of the different ways languages can be designed.  Binding, dispatch, typology, structure, and others are all different forks in the road of language design.  Each fork developed for different reasons, whether it be efficiency of code or abstraction of language concepts.  Follow all of these forks like some kind of Choose Your Own Adventure book, and different languages emerge.  The lessons of each of these languages can be used as new ones are developed.</p>
<p>So I guess what Larry is trying to say is that Perl 6 looked at what every other language (including Perl 5) did right and what they did wrong, then went ahead and did everything right.</p>
<p>In fact, Perl 6 has taken Yogi Berra&#8217;s advice and took all of the forks.  Sure, it seems confusing, but think of the power.</p>
<p>Okay, so what&#8217;s the future?</p>
<p>Perl 6.</p>
<p>Duh.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-state-of-the-onion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Perl Lightning Talks</title>
		<link>http://sirhc.us/oscon-2007-perl-lightning-talks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-perl-lightning-talks</link>
		<comments>http://sirhc.us/oscon-2007-perl-lightning-talks/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 00:54:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Lightning Talks]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/26/oscon-2007-perl-lightning-talks/</guid>
		<description><![CDATA[It&#8217;s time for one of my favorite OSCON traditions: the Perl lightning talks. These five minute speed talks run the gamut from incredibly boring and disorganized to amazingly good. Last year, Audrey Tang gave a particularly good one. In fact, my head is still spinning from it. Seventeen talks this year, in a span that [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s time for one of my favorite OSCON traditions: the Perl lightning talks.  These five minute speed talks run the gamut from incredibly boring and disorganized to amazingly good.  Last year, Audrey Tang gave a particularly good one.  In fact, my head is still spinning from it.</p>
<p>Seventeen talks this year, in a span that only allows sixteen.  No break for us.</p>
<p>Vani Raja talked about YUI CSS.  This appears to be some kind of Yahoo style sheet stuff for HTML.  I&#8217;m not sure how this differs from any other style sheet out there, but she seems very proud of it.  I&#8217;m guessing it&#8217;s just a set of pre-written styles that page designers can mix and match in their web sites.  Oh, and apparently Nate is her hero.</p>
<p>Okay, now it&#8217;s time for &#8220;How Long Is Five Minutes?&#8221; by Schwern.  He seems very concerned about how long five minutes is and how often he ruins his tea.  Why is this important?  Well, if you don&#8217;t know how long five minutes is and how much you can do in those five minutes, how can you know how much you can do in a half hour, an hour, a day, a week?</p>
<p>Schwern managed to get himself two slots of lightning talks.  This second one is a very rapid combination of three talks.  First up is a plug of the new <a href="http://perlfoundation.org/perl5" target="_blank">Perl 5 wiki</a>.  He wants this to be the encyclopedia of Perl 5.  As an aside, someone in my Perl Mongers group who already wants to have a wiki-thon at our next meeting.  Next, we got to stand up a lot as he asked questions about our demographics.  Apparently we in this room are not representative of the US at large.  In any case, a survey of this information has been put up at <a href="http://perlsurvey.org/" target="_blank">perlsurvey.org</a>.  Finally, we&#8217;re supposed to blame Schwern.  Larry has gone off to Perl 6, so Schwern is taking the responsibility of being the one who people can go to if they want to do something in Perl 5.  In other words, we get to blame him for giving people the go ahead.  (That was amazingly hard to type up in the five minutes Schwern was allotted.)</p>
<p>Ask Bjorn Hansen wanted to present qpsmtpd, which is something he threw together in Perl to implement features he wanted in qmail.  In fact, Perl hackers can easily write plug-ins for the system, which is a pretty cool idea.  It looks pretty nifty, I may take a look at it, if only to toy with it as a game.</p>
<p>Andy Lester talked about <a href="http://perladvent.pm.org/2006/5/" target="_blank"><code>ack</code></a>, an awesome way to grep trees of source code.  He gave this talk last year, and I&#8217;ve been enamored of it every since.  It even made it onto the Perl Advent calendar last year.  He&#8217;s also set up <a href="http://perl101.org/" target="_blank">Perl 101 (dot org)</a>, to help n00bs avoid asking n00b questions on IRC or on mailing lists.  He needs help making it awesome.  His third topic is Google Code.  Use it instead of SourceForge, because it is awesome.  Period.</p>
<p>Andy got a second slot, after being harassed by the audience on IRC and iChat, he jumped into his Perl-is-a-programming-language-not-a-scripting-language rant.  A scripting language implies that it is less capable.  Say <strong>program</strong>, not <strong>script</strong>!  Dammit.  Andy is an angry, angry man.</p>
<p>Rebecca, standing up in front of Programmers Anonymous, talked about the similarities between Open Source projects and non-profit organizations that use volunteer labor.  When someone shows up and wants to help out an Open Source project, why not have a list of small things to be done that anyone can sink their teeth into.</p>
<p>Eric Wilhelm, who we may know from the Internet, talked about <code>Test::Harness</code> 3.0, which he&#8217;s come to recently as a way of parallelizing test code.  TAP has evolved.  In comes <code>TAP::Parser</code> (which will be used in <code>Test::Harness</code> 3.0&#8230; I think&#8230; I found that part hard to follow).  This is apparently a five minute version of the talk Ovid will be giving at YAPC::EU.  He&#8217;d like us to help improve the documentation and tests for <code>TAP::Parser</code>.  Convenient link: <a href="http://testanything.org" target="_blank">testanything.org</a>.</p>
<p>Eric continued with a second talk.  Well, he promptly ducked under the table as he mentioned <code>Module::Build</code>.  CPAN is great, but you need to upgrade it before installing.  Then there&#8217;s a huge upgrade install dance.  But soon (real soon now), CPAN will go back to being a one-liner and will do everything right automagically.</p>
<p>Julian introduced <a href="http://movemydata.org/" target="_blank">MoveMyData.org</a>, which isn&#8217;t coded yet.  However, it&#8217;s a great idea.  So many different social networking sites exist (Blogger, Flickr, etc.), and they don&#8217;t interoperate at all.  This is the solution.  A way of moving data between social networks and making sure it&#8217;s backed up and always under your own control, not under their control.  Very cool, and something I&#8217;ve always thought should be done.  It&#8217;s one of the reasons I maintain my own blogging software, in fact.</p>
<p>Tim Bunce gave a quick talk about DBI, as he usually does.  This time it&#8217;s about DBI 2 for Perl 6.  The JDBC API is a great example of what he wants to do, so he&#8217;s going to <s>steal</s> (that is, borrow, now that Java is Open Source) what they&#8217;ve done.  He continued to give some examples of how it should work and how it would look, but then he got gonged.  Good stuff, though.</p>
<p>Second talk by Tim, DashProfiler and lightweight code instrumentation.  It seems he does a lot of web service work these days, so he spends a lot of time writing code to help him make this faster.  This is an instance of Tim writing code to find out what needs to be made faster.  I like this.  It&#8217;s very magical (read: Perlish).  Just use it and it does what it does.</p>
<p>Tim, take three.  He condensed yesterday&#8217;s 45 minute talk about <a href="http://sirhc.us/journal/2007/07/25/oscon-2007-dbdgofer/" target="_blank">Gofer</a> into five minutes.  I attended that session, so I mostly zoned out during the lightning talk.  It&#8217;s another way of optimizing the infrastructure behind web services.</p>
<p>Michael Potter (who introduced himself at the end) wanted to talk about Open Sourcing Message Definitions, that is to say he wants a better way of getting data exchange formats into the Open Source or standard or something.  I don&#8217;t know.  It was short, sweet, and to some point I didn&#8217;t get.</p>
<p>John Rockway stood up to teach us how to create a blog using Catalyst in 5 minutes.  Of course, he used slides, instead of typing it out himself.  So mere mortals probably couldn&#8217;t create a blog in only 5 minutes.  I&#8217;m not entirely sure Catalyst has ever been used to create anything other than a blog.  That&#8217;s my biggest problem with most web frameworks.  They look like they&#8217;re only useful for the fun stuff, and it&#8217;s non-obvious how to use them for other kinds of sites.  That&#8217;s a bit harsh, but there are too many frameworks for me to play with all of them to see if I can use it.  Oh, and I think some of the developers of Catalyst (which was a fork of Maypole) forked it off into something else again.</p>
<p>John continued to plug <a href="http://angerwhale.org/" target="_blank">Angerwhale</a>, an actual blog application he wrote in Catalyst.  I really didn&#8217;t pay attention.  I&#8217;m not sure I like Catalyst, and I&#8217;m quite sure I don&#8217;t need to fill my head with yet another blog application.  Although, it is a blog application written in Perl, so I may eat my own dog food and try it out.</p>
<p>Someone who didn&#8217;t identify themselves stood up to talk about <code>SVN::Notify::Mirror</code>.  No idea what he said, as I wasn&#8217;t listening.</p>
<p>Last, and most certainly not least, Pudge got up to perform <a href="http://youtube.com/watch?v=Mxk5RMQF6Js" target="_blank">Perl, in a Nutshell</a>.  Of course, everyone has probably already seen this on YouTube already (and if you haven&#8217;t, why not?!), but it was awesome to see live.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-perl-lightning-talks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Domain Specific Languages in Perl</title>
		<link>http://sirhc.us/oscon-2007-domain-specific-languages-in-perl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-domain-specific-languages-in-perl</link>
		<comments>http://sirhc.us/oscon-2007-domain-specific-languages-in-perl/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 22:25:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/26/oscon-2007-domain-specific-languages-in-perl/</guid>
		<description><![CDATA[As a programmer who spends most of his time writing code that helps other people to write code, I&#8217;m pretty interested in domain specific languages. In fact, I have a couple of modules we use at work that use them. That&#8217;s how I ended up in Domain Specific Languages in Perl, presented by Jesse Vincent [...]]]></description>
				<content:encoded><![CDATA[<p>As a programmer who spends most of his time writing code that helps other people to write code, I&#8217;m pretty interested in domain specific languages.  In fact, I have a couple of modules we use at work that use them.  That&#8217;s how I ended up in <strong>Domain Specific Languages in Perl</strong>, presented by Jesse Vincent of Best Practical.</p>
<p>Domain specific languages (DSLs) are languages designed for specific programming tasks.  A couple of well-known examples of DSLs are SQL and regular expressions.  However, today, Jesse is talking to us about &#8220;Englishy&#8221; DSLs, which he&#8217;s been very interested in lately.  Additionally, these are DSLs that are internal to Perl.  Instead of parsing a DSL and executing it, they are instead implemented by playing with Perl&#8217;s syntax and taking advantage of Perl&#8217;s parser (and having all of Perl&#8217;s features available in the DSL).</p>
<p>The two main goals when implementing a DSL in Perl are,</p>
<ol>
<li>Does it feel good?</li>
<li>Can we actually do it?</li>
</ol>
<p>The first big DSL is <code>Jifty::DBI</code>, an object-relational mapper for Jifty.  For the folks at Best Practical, it was a fun learning process in tweaking Perl to look the way they wanted it to while still declaring the database schema in an intuitive, pretty way.</p>
<p>The <code>Template::Declare</code> module is flat-out awesome.  I&#8217;ve seen it before, and I&#8217;ve never taken the time to play with it.  How stupid have I been?  Coding HTML templates in Perl is cool, and something I would happily do (I don&#8217;t really like writing HTML).</p>
<p>As if that weren&#8217;t enough, in comes <code>Jifty::Dispatcher</code>.  Modelled after Mason&#8217;s <code>(auto|d)handler</code> files, it will manipulate web application requests and take care of dispatching processes.  I really like the DSL used here.  It&#8217;s very declarative, removing the infrastructure entirely, which is something I&#8217;m very interested in doing in my code right now.  I must be getting old; I&#8217;m more interested in telling the computer what to do, rather than how to do it, these days.</p>
<p>Testing web sites is ugly, and it sucks.  That&#8217;s what <code>Test::WWW::Declare</code> is for.  It&#8217;s a beautiful module.  Sessions, flows, declarative statements to define the web flow.  So very awesome.</p>
<p>I can tell that the Best Practical folks have seen Damian Conway&#8217;s <em>Sufficiently Advanced Technologies</em> talk.  The moral of that story is, write what you want to see, and only then figure out how to make it work in Perl.</p>
<p>I&#8217;m sold.  As soon as I get home, I&#8217;m going to work on porting my start-up company&#8217;s <a href="http://www.ladiesselfdefense.com/" target="_blank">web site</a> with Jifty.  Jifty is, well, absolutely nifty.</p>
<p>At the end, Jesse showed us his own domain specific language to define his slides.  It&#8217;s awesome.  I want it for my own talks.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-domain-specific-languages-in-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: People Hacks</title>
		<link>http://sirhc.us/oscon-2007-people-hacks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-people-hacks</link>
		<comments>http://sirhc.us/oscon-2007-people-hacks/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 19:20:48 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/26/oscon-2007-people-hacks/</guid>
		<description><![CDATA[One of the tracks at OSCON this year is people. Everyone thinks that Open Source is about programming, but it&#8217;s really about people. People who write Open Source. Apparently, this the people track is very popular with everyone. This session, People Hacks, is standing room only. Unfortunately, Adam Keys&#8217; slides weren&#8217;t able to display on [...]]]></description>
				<content:encoded><![CDATA[<p>One of the tracks at OSCON this year is people.  Everyone thinks that Open Source is about programming, but it&#8217;s really about people.  People who write Open Source.</p>
<p>Apparently, this the people track is very popular with everyone.  This session, People Hacks, is standing room only.  Unfortunately, Adam Keys&#8217; slides weren&#8217;t able to display on the screen.  I think his talk stood on its own.  In fact, I wish more talks lacked slides.  For most people, they&#8217;re a crutch.</p>
<p>People Hacks is about advocacy, moving minds, and organizing teams.  It&#8217;s a fact of life that no man is an island.  We have to work with people, and they won&#8217;t always be our friends.  Sometimes we want to hit them.  Sometimes we talk past them.  But we do need to work with them.  And we can&#8217;t always hit them.</p>
<p>Most of us program because we like logic.  We like dealing with machines that are predictable and rational.  But we have to deal with people.  People who are not always predictable and not always rational.</p>
<p>&#8220;There is no man page for humans.&#8221;</p>
<p>Truer words were never spoken.</p>
<p>People who are in a good mood are easy to work with.  People who are sad or in a down state are difficult to work with (think emo kids—the new blonde jokes!).  Get someone to smile.  Humor is infectuous.  Once people are laughing along with you, they&#8217;re easy to bring over to your side.  Conversely, negative feelings spread like wildfire.  Avoid negativity.</p>
<p>&#8220;The ABBA Method.&#8221;  ABBA is like negativity.  A little goes a really long way.  When down, go listen to ABBA.  How&#8230; odd.</p>
<p>Everyone loves a critic (Fox News?), but no one really enjoys criticism.  It never goes over well.  People take it poorly, they go on the defensive.  When people are criticized, they withdraw from the conversation, and no one can move forward.  Throw a compliment in.  &#8220;Kiss their ass before handing it to them.&#8221;</p>
<p>Open Source has a love/hate relationship with jerks.  We don&#8217;t tolerate them at all when they troll forums.  However, if they&#8217;re a strong personality on an Open Source project, we&#8217;ll put up with them.  A lot.</p>
<p>Sometimes you&#8217;re the jerk.  We can all be jerks at times.  If you can&#8217;t avoid it, at least recognize it and apologize for it.</p>
<p>After a while, the talk turned into a list of patterns of behavior found in people with ways to disarm them.  The slides would have helped here, as it&#8217;s getting a bit more difficult to follow along.</p>
<p>He highly recommends reading <em>How to Win Friends and Influence People</em>.</p>
<p>And now it&#8217;s time for lunch, and I&#8217;m hungry, so I&#8217;m done.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-people-hacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: WxPerl</title>
		<link>http://sirhc.us/oscon-2007-wxperl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-wxperl</link>
		<comments>http://sirhc.us/oscon-2007-wxperl/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 18:26:23 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[wxPerl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/26/oscon-2007-wxperl/</guid>
		<description><![CDATA[Eric Wilhelm of Scratch Computing taught a session on wxPerl, a set of bindings for GUI development in Perl, which uses the native widget library of each OS to build the GUI. Whenever we build a GUI at work, from a simple dialog box to a complex application, we tend to use Tk. It would [...]]]></description>
				<content:encoded><![CDATA[<p>Eric Wilhelm of Scratch Computing taught a session on wxPerl, a set of bindings for GUI development in Perl, which uses the native widget library of each OS to build the GUI.  Whenever we build a GUI at work, from a simple dialog box to a complex application, we tend to use Tk.  It would be nice to move to a cross-platform, native-looking GUI library.</p>
<p>Why build applications for the desktop?  Speed.  Network latency over long distances pushes the limits of people&#8217;s patience.  Computers are getting so powerful, why not use those resources?</p>
<p>Why use Perl?  Well, because it&#8217;s Perl.</p>
<p>Good documentation for wxPerl is difficult to find.  Apparently someone needs to create a US mirror of the wiki.  However, the C++ documentation is quite good.</p>
<p>Eric has created a few helper modules (most of which are on the CPAN) to make life for wxPerl developers a bit easier.  He&#8217;d like to move more in the direction of Smalltalk, with more interaction and cleanliness between the code and the GUI.  It&#8217;s still in the works.</p>
<p>One thing I really like is his phrase, &#8220;needs more Perlin&#8217;.&#8221;  This means that something needs to be more like Perl.  That is to say, it needs to keep easy things easy and make hard things possible&#8230; with a slick syntax.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-wxperl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Thursday Morning Keynotes</title>
		<link>http://sirhc.us/oscon-2007-thursday-morning-keynotes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-thursday-morning-keynotes</link>
		<comments>http://sirhc.us/oscon-2007-thursday-morning-keynotes/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 17:28:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/26/oscon-2007-thursday-morning-keynotes/</guid>
		<description><![CDATA[It was much easier to attend this morning&#8217;s keynotes, since I managed to get a mostly full night of sleep last night. Ben Fry started off the keynotes with a talk about the Processing Development Environment, which looks very cool. It&#8217;s similar in concept to Logo—which leaves a wonderful aftertaste of nostalgia for me—an entire [...]]]></description>
				<content:encoded><![CDATA[<p>It was much easier to attend this morning&#8217;s keynotes, since I managed to get a mostly full night of sleep last night.</p>
<p>Ben Fry started off the keynotes with a talk about the <a href="http://processing.org/" target="_blank">Processing Development Environment</a>, which looks very cool.  It&#8217;s similar in concept to Logo—which leaves a wonderful aftertaste of nostalgia for me—an entire development environment to do visualization, including a domain specific language to allow the programmer to focus on writing what they mean to do, not how to do it.  Coincidentally, I&#8217;ll be attending a session on domain specific languages later today.  He even wrote code on the fly in the environment, in front of the audience which is a very brave thing to do.  But, it was an awesome demonstration of how easy yet powerful the environment is.  This keynote was quite good, but he had the advantage of presenting something that can produce very fun and cool visualizations.  But, isn&#8217;t that the whole point of a keynote: to educate, but still entertain?  I can&#8217;t wait to play with this software.</p>
<p>Next up is Professor Robin Hanson of George Mason University to talk about &#8220;Overcoming Bias.&#8221; He joked about not having any slides, and being glad he didn&#8217;t after the preceding demonstration (how could he possibly top it?).  People, obviously, have preconceived notions of just about everything.  We think we understand that people are biased, but Robin is here to tell us that it&#8217;s much, much worse than we realize.  I usually believe that I am aware of my biases, but this keynote made me think that I need to be more vigilant in watching out for my biases and to continuously evaluate them.</p>
<p>The keynote about bias was well timed, because next Nat introduced Bill Hilf of Microsoft by pointing out that it is a company that appears a bit &#8220;schizoid&#8221; from the outside, but that large companies often have very divergent views on the inside.  Bill is here to give us an update on the status of Open Source at Microsoft.  Bill joined Microsoft three and a half years ago, to be our man on the inside so to speak.  There&#8217;s a concept within Microsoft, created by Bill Gates, called Software Darwinism.  It&#8217;s exactly what it sounds like: survival of the fittest software in a highly competitive environment.  Really?  I&#8217;d hate to see the competition Microsoft Exchange had.  Funny anecdote: a new senior programmer at Microsoft once asked if it was okay to visit a Linux web site.  The moral of the story appears to be that Microsoft isn&#8217;t really evil; that Microsoft really does contribute to Open Source.  I&#8217;ll believe it when Ballmer and RMS share a stage (am I biased?).  Um.  <a href="http://www.microsoft.com/opensource/" target="_blank">Wow</a>.  I don&#8217;t even know how to respond this oxymoron.  Before Bill could <em>run</em> off the stage, Nat jumped up to put him on the spot about patents and Novell.  Way to go Nat!</p>
<p>Nat segued into the next speaker, Rick Falkvinge, the founder of the <a href="http://en.wikipedia.org/wiki/Pirate_Party" target="_blank">Pirate Party</a> of Sweden, to talk about Copyright Regime vs. Civil Liberties.  While this is a very well done keynote, I find it difficult to summarize it better than the title has already done.  The message Rick wants to drive home is that the real conflict isn&#8217;t the one on the surface, the one about copyright infringement and the loss of revenue.  It&#8217;s really about loss of privacy.  He briefly summarized the platform of the Pirate Party and showed that they have influenced other parties—in Norway.  It&#8217;s a hard, uphill battle in the United States, unfortunately.  Still, this guy is awesome.  He&#8217;s actively demonstrating the power an upstart political party with decent ideals can have.  It also demonstrates the advantage a small party can have in a parliamentary system, versus the system we have in the States.</p>
<p>The last keynote of the morning, Steve Yegge of Google (but not on behalf of Google), was introduced by Nat as a knowledgeable and funny person.  A perfect way to cap off a great morning of keynotes.  He&#8217;s here to tell us &#8220;How to Ignore Marketing and Become Irrelevant in Two Easy Steps.&#8221; Open Source developers are notorious for ignoring marketing, much to their own detriment.  Unfortunately, he got started off with some technical difficulties.  The O&#8217;Reilly tech couldn&#8217;t get his Mac to sync up properly with the projector system.  Stupid Macs <img src='http://sirhc.us/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .  Steve immediately questioned how people choose software.  Someone in the audience answered, &#8220;logic!&#8221;  We all got a good laugh out of that.  Brands are like pointers.  They&#8217;re a placeholder for a product in our minds.  So how are these brands created?  I&#8217;m not entirely sure he ever explained it beyond, &#8220;they just do.&#8221;  The single biggest branding problem in Open Source is the name &#8220;Open Source.&#8221; There&#8217;s no brand, no association, and no trademark.  I must say, I&#8217;m impressed.  Even without his slides, Steve managed to give us a smooth, entertaining, and educational presentation.  That&#8217;s the mark of a great speaker, when he doesn&#8217;t even need his slides to get his point across.</p>
<p>No Q&amp;A after these keynotes, since we ran long.  So we&#8217;re done here.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-thursday-morning-keynotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: SUN CAN HAZ TRISIKLES</title>
		<link>http://sirhc.us/oscon-2007-opensolaris-party/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-opensolaris-party</link>
		<comments>http://sirhc.us/oscon-2007-opensolaris-party/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 06:35:43 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[Party]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/25/oscon-2007-opensolaris-party/</guid>
		<description><![CDATA[I was not at all impressed by Sun&#8217;s OpenSolaris party. The only thing it had going for it was it&#8217;s location. It was in the parking garage of the DoubleTree, so I didn&#8217;t have far to walk when I bailed. The wait staff couldn&#8217;t pour a beer that was anything less than half head, and [...]]]></description>
				<content:encoded><![CDATA[<p>I was not at all impressed by Sun&#8217;s OpenSolaris party.  The only thing it had going for it was it&#8217;s location.  It was in the parking garage of the DoubleTree, so I didn&#8217;t have far to walk when I bailed.</p>
<p>The wait staff couldn&#8217;t pour a beer that was anything less than half head, and they were so inefficient that the beer line was always too long to wait in.  The plastic racing tricycles (!!) were broken (as if someone couldn&#8217;t have seen that coming).  There were ping pong balls and paddles, but no ping pong tables.</p>
<p>Overheard at one point: &#8220;Well that&#8217;s Sun for you.  Always promising, never delivering.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-opensolaris-party/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Machine Learning Made Easy with Perl</title>
		<link>http://sirhc.us/oscon-2007-machine-learning-made-easy-with-perl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-machine-learning-made-easy-with-perl</link>
		<comments>http://sirhc.us/oscon-2007-machine-learning-made-easy-with-perl/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 00:58:32 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/25/oscon-2007-machine-learning-made-easy-with-perl/</guid>
		<description><![CDATA[The key lesson of this session, presented by Lino Ramirez, is that it&#8217;s all about empowering people. Perl gives us the power to empower people. I really enjoyed the video of a tae kwon do match as a real-world analog of software development. Try one technique, see the result (get hit); try another technique, see [...]]]></description>
				<content:encoded><![CDATA[<p>The key lesson of this session, presented by Lino Ramirez, is that it&#8217;s all about empowering people.  Perl gives us the power to empower people.</p>
<p>I really enjoyed the video of a tae kwon do match as a real-world analog of software development.  Try one technique, see the result (get hit); try another technique, see the result (get knocked down); ad infinitum.</p>
<p>There are three phases: preparation, modeling, and implementation.  These phases are not linear in nature.  One moves between phases as necessary to design the solution.</p>
<p><a href="http://search.cpan.org/dist/PDL/" title="Perl Data Language" target="_blank">PDL</a> was demonstrated in the modeling phase.  <a href="http://www.canspice.org/" target="_blank">Brad</a> was pretty happy when one of the slides contained a web site address for information on PDL, which happened to be a web server at his job.</p>
<p>As he delved into the case studies, I started to zone out, so I have little to say about his examples of machine learning and Perl in action.  I wanted to enjoy this session more, since I&#8217;ve often wanted to get back into using neural networks and other machine learning techniques in my code.  Unfortunately, I just found it too difficult to follow his case studies.  Still, I have some good pointers for packages that will help me sprinkle some machine learning goodness in my code.</p>
<p>I like his conclusion: &#8220;Perl excels at empowering people in all three phases of the development of a machine learning application.&#8221;  Perl is awesome for rapid application development, which in turn gets solutions to people who need them faster.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-machine-learning-made-easy-with-perl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Perl 6 Update</title>
		<link>http://sirhc.us/oscon-2007-perl-6-update/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-perl-6-update</link>
		<comments>http://sirhc.us/oscon-2007-perl-6-update/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 22:21:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/25/oscon-2007-perl-6-update/</guid>
		<description><![CDATA[It&#8217;s time for that perennial event known as the Perl 6 Update. What will Larry tell us about Perl 6 this year? He probably won&#8217;t be announcing a release date (we should be so lucky). Unfortunately, Damian Conway couldn&#8217;t be at OSCON this year, so this session won&#8217;t be nearly as entertaining as it has [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s time for that perennial event known as the Perl 6 Update.  What will Larry tell us about Perl 6 this year?  He probably won&#8217;t be announcing a release date (we should be so lucky).  Unfortunately, Damian Conway couldn&#8217;t be at OSCON this year, so this session won&#8217;t be nearly as entertaining as it has been in years past.  On the plus side, Larry informs us that Damian did write the slides&#8230; now he just has to interpret them.</p>
<p>New features include adverbial typing, such that class and module names can include adverbial modifiers.  These specify things like author, authorities, and versions.  The syntax is a bit scary, but they can be aliased.</p>
<p>Perl 6 now has inline comments (yay!).  It&#8217;s typically Perl, too.  The syntax is #{inline comment}, instead of the usual C-like syntax.</p>
<p>Wait, what&#8217;s this?  Built-ins no longer default to using the <code>$_</code> variable?  How will I write confusing code now?</p>
<p>The zipper/yen operator has been renamed to <code>Z</code>.  This is good for me, as I&#8217;ve never been very good at memorizing Vim&#8217;s digraphs.</p>
<p>The min and max operators now have infix versions.  Strange at first, but it looks like it could be useful in some situations (<code>$foo min= $bar</code>).</p>
<p>Ranges are really lazy.  So lazy they can be unbounded: <code>for $i (1..*)...</code> (to infinity and beyond!).</p>
<p>The power of the new file test operators demonstrate quite well how useful Perl 6 will be.  It takes TIMTOWTDI to levels few Perl coders could ever have imagined.</p>
<p>There&#8217;s a MAIN subroutine now.  It&#8217;s like we&#8217;ve stepped back 30 years to be C programmers again.  The power it gives the programmer to define command line processing is very cool, though. Perl 6 will even call USAGE for you, if you&#8217;ve happened to define it.</p>
<p>Perl 6 has real repeat (do..while) loops now.  Real, as in all the loop control statements work.</p>
<p>As if postfix control statements weren&#8217;t confusing enough.  Now they can be nested!  say <code>$foo if $bar while $baz</code>.  Actually, I can&#8217;t tell you how many times I&#8217;ve wished for this.</p>
<p>Continuing the theme of parallelism, Perl 6 will make it easy to parallelize map and even do atomic locking on serial statements.  I appreciate that Larry managed to change his slide to mirror what Simon Peyton Jones talked about in his keynote this morning.  Very apropos.</p>
<p>Fixed-length arrays?  Seriously, what is this, Java?  Well, at least it allows you to define array bounds as &#8220;eh, whatever.&#8221;  I especially like the &#8220;whatever whatevers&#8221; operator (**).</p>
<p>POD lists are dramatically cleaned up.  Thank goodness.  No more =over or =back. Nested lists!  Tables!  Bigger!  More markup!  Better!  Includes!  More awesome!  Really!  Useful!  POD!</p>
<p>Honestly, I can&#8217;t wait to move to Perl 6.  I can already see a lot of my code getting a lot shorter.  Imagine, entire job control systems that fit in one screen of code!</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-perl-6-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: DBD::Gofer</title>
		<link>http://sirhc.us/oscon-2007-dbdgofer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-dbdgofer</link>
		<comments>http://sirhc.us/oscon-2007-dbdgofer/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 21:26:08 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/25/oscon-2007-dbdgofer/</guid>
		<description><![CDATA[Lunch is over and I&#8217;m sitting in the first of two mid-afternoon sessions I&#8217;ve chosen on Perl technologies. The first one with Tim Bunce, the extremely knowledgeable author of DBI. He&#8217;s presenting DBD::Gofer, a stateless proxy driver for DBI. This session is very much like other sessions I&#8217;ve attended. It&#8217;s essentially a brain dump of [...]]]></description>
				<content:encoded><![CDATA[<p>Lunch is over and I&#8217;m sitting in the first of two mid-afternoon sessions I&#8217;ve chosen on Perl technologies.  The first one with Tim Bunce, the extremely knowledgeable author of DBI.  He&#8217;s presenting DBD::Gofer, a stateless proxy driver for DBI.</p>
<p>This session is very much like other sessions I&#8217;ve attended.  It&#8217;s essentially a brain dump of as many features Tim can squeeze into the alloted time as possible.  It&#8217;s almost too much to follow.  It&#8217;s certainly too much to take notes.  Fortunately, he&#8217;s told us the slides will be available on-line.</p>
<p>From the description of the session, I had hoped DBD::Gofer would scratch an itch we have at work.  Essentially, we need to ensure data finds its way into a database, even if the database may not be available.  We have a custom solution at the moment, but it would be great if we could replace it with a packaged, maintained module.  However, it appears that, while DBD::Gofer makes an excellent proxy, it wouldn&#8217;t fit our needs.</p>
<p>Examples have included connection pooling and load balancing, often to reduce load on the main database server.  It&#8217;s apparent from the use cases that this module was developed for use by heavily trafficked web sites (its development was sponsored by Shopzilla.com).  It&#8217;s design is modular, so perhaps it can be extended to do what we want.  I won&#8217;t know until I&#8217;ve had a chance to look at the distribution.</p>
<p>Some interesting things for the future are HTTP caching and JSON, effectively turning DBI into a web service.  This is cool.  I can see this opening up a lot of possibilities as more applications are constructed from individual services, complete in their own right.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-dbdgofer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: The Expo Floor</title>
		<link>http://sirhc.us/oscon-2007-the-expo-floor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-the-expo-floor</link>
		<comments>http://sirhc.us/oscon-2007-the-expo-floor/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 20:51:27 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/25/oscon-2007-the-expo-floor/</guid>
		<description><![CDATA[Nothing interested me during this morning&#8217;s second session slot, so I took the opportunity to check out the vendor booths on the expo floor. I&#8217;m sorry to say that I&#8217;m pretty disappointed with it this year. Last year (being my first conference) I was excited to go home with so many free t-shirts and even [...]]]></description>
				<content:encoded><![CDATA[<p>Nothing interested me during this morning&#8217;s second session slot, so I took the opportunity to check out the vendor booths on the expo floor.  I&#8217;m sorry to say that I&#8217;m pretty disappointed with it this year.  Last year (being my first conference) I was excited to go home with so many free t-shirts and even the meager swag that was being given away in return for nothing more than enough personal information to annoy me for the rest of my life.</p>
<p>This year (being my second conference), I lack any real desire to collect t-shirts—not that many vendors have them anyway.  Even if I wanted the t-shirts, I don&#8217;t want to go to the effort required to swipe my badge (thus handing over my contact information) and listening to a sales representative.</p>
<p>I have no interest in sales pitches.  I want to see cool demos.  What can this software do for me?  No marketing glossies, please.</p>
<p>The fundamental problem with vendors at an Open Source conference is the demographics.  The software is generally free.  So businesses have adapted to that by selling services instead.  I don&#8217;t want these services.  Whenever I&#8217;ve brought these services back to work, no one wants them.</p>
<p>Oddly, the vendor presence I find most fascinating is the New York Times.  I couldn&#8217;t figure out why they were here, so I asked.  They aren&#8217;t selling anything (though they are recruiting Open Source talent—good for them!).  Instead, they&#8217;re showing off how they use Open Source to develop their on-line services.  They even have a <a href="http://open.nytimes.com/">blog</a>.  They&#8217;re even running a BOF session on the use of Amazon Web Services, which I will likely attend.</p>
<p>There are a couple of other booths that are worth visiting.  Intel looks cool—and is a good friend to Open Source—and <a href="http://osuosl.org/" title="OSU Open Source Lab">OSL</a> is demonstrating the <a href="http://en.wikipedia.org/wiki/XO-1_%28laptop%29" title="One Laptop Per Child">XO-1</a>.  I&#8217;ll make a few more rounds of the floor to see if my attitude towards the vendors improves.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-the-expo-floor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just Give</title>
		<link>http://sirhc.us/just-give/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=just-give</link>
		<comments>http://sirhc.us/just-give/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 18:33:17 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Charity]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/25/just-give/</guid>
		<description><![CDATA[During the Wednesday morning keynotes, Nat Torkington mentioned a charity broker of sorts: JustGive. He told us that RailsConf managed to raise $30,000. Can OSCON do better?]]></description>
				<content:encoded><![CDATA[<p>During the Wednesday morning keynotes, Nat Torkington mentioned a charity broker of sorts: <a href="http://ossx.org/r" title="JustGive: OSCON's Wish List" target="_blank">JustGive</a>.  He told us that RailsConf managed to raise $30,000.  Can OSCON do better?</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/just-give/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2007: Wednesday Morning Keynotes</title>
		<link>http://sirhc.us/oscon-2007-wednesday-morning-keynotes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-2007-wednesday-morning-keynotes</link>
		<comments>http://sirhc.us/oscon-2007-wednesday-morning-keynotes/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 18:30:51 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Keynotes]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON 2007]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/25/oscon-2007-wednesday-morning-keynotes/</guid>
		<description><![CDATA[I managed to attend the Wednesday morning keynotes, even after a night of beer and &#8220;Apples to Apples&#8221; with Dan, Brad, Alasdair, and Josh. It&#8217;s amazing how much better a shower and a couple cups of coffee will make you feel. Anyway, since the wireless network barely works once everyone has gathered, I was provided [...]]]></description>
				<content:encoded><![CDATA[<p>I managed to attend the Wednesday morning keynotes, even after a night of beer and &#8220;Apples to Apples&#8221; with Dan, <a href="http://www.canspice.org/">Brad</a>, <a href="http://www.dailyack.com/">Alasdair</a>, and Josh.  It&#8217;s amazing how much better a shower and a couple cups of coffee will make you feel.  Anyway, since the wireless network barely works once everyone has gathered, I was provided the chance to actually pay attention to the keynotes.</p>
<p>It was nice that the real Nat Torkington finally decided to join us.  Until this morning, we were plagued by an imposter wearing a plain, boring shirt.  I&#8217;m sad to hear that Nat won&#8217;t be returning to OSCON next year.  First Randal, then Damian, now Nat?  I&#8217;m starting to wonder if this conference will be worth attending next year.  Makes me wish I&#8217;d started attending back when OSCON was in San Diego (my own home town!).</p>
<p>After the usual round of announcements, Nat explained that this year OSCON has a session track dedicated to people.  How to work with them, how to design software people actually want to use, that kind of thing.</p>
<p>Tim O&#8217;Reilly&#8217;s keynote is made up of his radar, otherwise known as &#8220;What&#8217;s On Tim&#8217;s Mind This Year.&#8221; In a nutshell, he is pondering the future of Open Source in a Web 2.0 world.  These days, many new things are built on top of services.  Services that may be free to use, but may not themselves be Open Source.  Even if the code running the services were completely open, in so many cases it wouldn&#8217;t be useful (perhaps it requires massive compute power to run, like Google).  He warned the Open Source community to keep an eye of the future of information.  He perceives a race to own the information that will power the future.</p>
<p>Next up was a bit of a repeat of Monday night.  James Reinders, Intel&#8217;s director of marketing for Open Source products, stood up to plug a new product.  Actually, <a href="http://threadedbuildingblocks.org/">Threaded Building Blocks</a> isn&#8217;t a new product, but it has been newly open sourced.  Intel is dedicated to support it on as many processors and in as many compilers as possible.  They really want to be the drivers of parallelization in the future.</p>
<p>Continuing the theme of parallelization, Simon Peyton Jones from Microsoft Research in Cambridge, England, continued told us about the downfalls of locking models in parallel programming.  He talked about task parallelism and what he called the atomic locking model.  Instead of writing complex software to manage parallelism, traditional sequential code is wrapped to protect it from the pitfalls of parallelism—without the need to change the sequential code.  This is great stuff, and something I advocate daily: remove the infrastructure from the programmer.  Let the programmer focus on the task at hand and doing that task correctly.</p>
<p>All this focus on parallelism excites me.  At work we have a huge cluster of compute power, most of which is dedicated to running individual sequential applications.  Even with all of the multi-core systems we&#8217;re adding to our data center, we end up treating each core as a distinct processor.  It&#8217;s a win when it comes to compute density in the data center, but we&#8217;re stuck in the old paradigm.  The applications we&#8217;re using aren&#8217;t taking advantage of the increased parallelism to do more work in the same amount of time.</p>
<p>After all the talk of the future and parallelism, Tim O&#8217;Reilly interviewed Mark Shuttleworth, the head of the Ubuntu project.  I don&#8217;t use Ubuntu, nor do I pay much attention to it, so by extension, I didn&#8217;t pay much attention to the interview.  However, Ubuntu gets a lot of buzz in the Open Source community.  I use (and have been known to sometimes contribute to) Fedora.  More and more, I see Fedora—and, by extention, Red Hat—looked down upon by some in the Open Source community.  I&#8217;ve even started to lose interest in contributing to the project.  Is it still the right distribution for me?  Where did my excitement about the project go?</p>
<p>Finally, there was a question and answer panel with all of the keynote speakers.  I zoned out around this time, so I don&#8217;t know what was asked or what the answers were.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-2007-wednesday-morning-keynotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON, Here I Come!</title>
		<link>http://sirhc.us/oscon-here-i-come/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oscon-here-i-come</link>
		<comments>http://sirhc.us/oscon-here-i-come/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 06:50:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[OSCON07]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/07/21/oscon-here-i-come/</guid>
		<description><![CDATA[Tomorrow I head up to Portland, Oregon, for the 2007 edition of O&#8217;Reilly&#8217;s Open Source Conference. I&#8217;ve been looking forward to this for a while. It&#8217;ll be a lot of fun, and I hope to have a lot to write about.]]></description>
				<content:encoded><![CDATA[<p>Tomorrow I head up to Portland, Oregon, for the 2007 edition of O&#8217;Reilly&#8217;s Open Source Conference.  I&#8217;ve been looking forward to this for a while.  It&#8217;ll be a lot of fun, and I hope to have a lot to write about.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/oscon-here-i-come/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Economy++</title>
		<link>http://sirhc.us/economy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=economy</link>
		<comments>http://sirhc.us/economy/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 11:12:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/20/economy/</guid>
		<description><![CDATA[Anyone who has suffered through a flight on United Airlines is painfully aware of just how abysmal the leg room is in their economy class. Apparently, United is aware of this, too. However, rather than add a couple inches of leg room to every aisle on the aircraft, United has added a full *five* inches [...]]]></description>
				<content:encoded><![CDATA[<p>Anyone who has suffered through a flight on United Airlines is painfully aware of just how abysmal the leg room is in their economy class.  Apparently, United is aware of this, too.  However, rather than add a couple inches of leg room to every aisle on the aircraft, United has added a full *five* inches of leg room to a select few seats.  These have been dubbed Economy <em>Plus</em> and, of course, require an additional fee for the genetic deficiency of long legs.  After all, what kind of money-grubbing airline would they be if they didn&#8217;t?  Those executive salaries don&#8217;t pay themselves after all.</p>
<p>I was offered this supposed upgrade when I checked in at the self check-in terminal (why spend extra money on people to man the check-in desk?).  The cost of the upgrade was US$44.  However, I was told that just for me the cost would be&#8230; US$44.  Boy, do I feel special.  All those frequent flyer miles are really paying off.</p>
<p>Well, it turns out my flight was overbooked.  I had a confirmed reservation, but no seat assignment.  Guess which seats tend to be available after every other seat has been filled.  That&#8217;s right, all those seats no one felt were worth a quarter of their original ticket price.</p>
<p>So, if you want extra leg room on a United Airlines aircraft, you can pony up the cash for the privilege&#8211;or just book your flight late.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/economy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On The Road Again</title>
		<link>http://sirhc.us/on-the-road-again/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=on-the-road-again</link>
		<comments>http://sirhc.us/on-the-road-again/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 15:22:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/19/on-the-road-again/</guid>
		<description><![CDATA[I haven&#8217;t even had a chance to finish my trip reports from Canada, and now I&#8217;m off again. I&#8217;m boarding a red eye flight tonight, heading to Raleigh-Durham via Chicago O&#8217;Hare. I don&#8217;t expect to have many interesting things to say about the trip. I promise to have my tales from Canada posted soon, back-dated [...]]]></description>
				<content:encoded><![CDATA[<p>I haven&#8217;t even had a chance to finish my trip reports from Canada, and now I&#8217;m off again.  I&#8217;m boarding a red eye flight tonight, heading to Raleigh-Durham via Chicago O&#8217;Hare.  I don&#8217;t expect to have many interesting things to say about the trip.  I promise to have my tales from Canada posted soon, back-dated to fit the time line.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/on-the-road-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Pint&#8217;s a Pound the World &#8216;Round</title>
		<link>http://sirhc.us/a-pints-a-pound-the-world-round/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-pints-a-pound-the-world-round</link>
		<comments>http://sirhc.us/a-pints-a-pound-the-world-round/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 03:11:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/12/a-pints-a-pound-the-world-round/</guid>
		<description><![CDATA[Except when it&#8217;s not. It took me three days to realize that ordering a pint in Canada results in receiving an imperial pint. Not the paltry sixteen fluid ounces one might receive in the States. Nay, this is a man&#8217;s pint. I think the fact that bars around here serve beer in their proper glassware [...]]]></description>
				<content:encoded><![CDATA[<p>Except when it&#8217;s not.</p>
<p>It took me three days to realize that ordering a pint in Canada results in receiving an <em>imperial</em> pint.  Not the paltry sixteen fluid ounces one might receive in the States.  Nay, this is a <em>man&#8217;s</em> pint.</p>
<p>I think the fact that bars around here serve beer in their proper glassware threw me off for a while.  All the different shapes (and tasty contents) distracted me.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/a-pints-a-pound-the-world-round/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What Does Inspiration Taste Like?</title>
		<link>http://sirhc.us/what-does-inspiration-taste-like/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-does-inspiration-taste-like</link>
		<comments>http://sirhc.us/what-does-inspiration-taste-like/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 03:08:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/12/what-does-inspiration-taste-like/</guid>
		<description><![CDATA[We weren&#8217;t feeling up to being adventurous tonight. So we ate at a restaurant across the street from our hotel, Milestone&#8217;s Grill and Bar (incidentally, the domain listed on the back of their business card doesn&#8217;t work, I had to Google for the correct address). They emphasize &#8220;inspired&#8221; eating. If our waiter had said &#8220;inspired [...]]]></description>
				<content:encoded><![CDATA[<p>We weren&#8217;t feeling up to being adventurous tonight.  So we ate at a restaurant across the street from our hotel, <a href="http://www.milestonesrestaurants.com/index2.html" target="_blank">Milestone&#8217;s Grill and Bar</a> (incidentally, the domain listed on the back of their business card doesn&#8217;t work, I had to Google for the correct address).  They emphasize &#8220;inspired&#8221; eating.  If our waiter had said &#8220;inspired chicken&#8221; or &#8220;inspired fish&#8221; one more time, I may have gotten violent.  He was also enthusiastic in his presentation of the healthy options on the menu.  I hope it wasn&#8217;t because he pegged us for visiting Americans.  Still, the choices on the menu all looked very good; even the Kobe beef meatloaf that Mike was quick to disparage (as being a waste of good beef).</p>
<p>Milestone&#8217;s featured summer menu apparently drew inspiration from southern beaches.  Florida would be my guess, but none of the food struck me as being specific to any specific ethnic cuisine.  I ended up ordering grilled coconut shrimp, which came on three skewers resting atop a mound of sticky rice with chunks of pineapple.  It was quite good.  I tend to prefer grilled shrimp over deep fried, which is good, because that tends to be healthier.</p>
<p>After two nights of giving in to the lure of Hoegaarden, I returned to my usual behaviours.  It was time again to drink the local nectars.  I paired tonight&#8217;s dinner with a honey red lager from Palomino Craft Beer.  I enjoyed it very much.  It was smooth, refreshing, and had just a touch of sweetness.  A little Googling leads me to believe that this is a private-label beer brewed locally.  I heartily recommend it.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/what-does-inspiration-taste-like/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hoegaarden, eh</title>
		<link>http://sirhc.us/hoegaarden-eh/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hoegaarden-eh</link>
		<comments>http://sirhc.us/hoegaarden-eh/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 03:04:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/11/hoegaarden-eh/</guid>
		<description><![CDATA[Apparently every bar in Toronto has Hoegaarden on tap. It&#8217;s made me very happy. I may even move here.]]></description>
				<content:encoded><![CDATA[<p>Apparently every bar in Toronto has <a href="http://en.wikipedia.org/wiki/Hoegaarden_Brewery" title="Hoegaarden Brewery" target="_blank">Hoegaarden</a> on tap.  It&#8217;s made me very happy.  I may even move here.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/hoegaarden-eh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quelle heure est-il?</title>
		<link>http://sirhc.us/quelle-heure-est-il/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quelle-heure-est-il</link>
		<comments>http://sirhc.us/quelle-heure-est-il/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 10:17:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Canada]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/11/quelle-heure-est-il/</guid>
		<description><![CDATA[I made the mistake last night of setting the hotel&#8217;s alarm clock instead of using one of my phones. The annoyingly loud buzzer went off at 0600, just as planned. I hit snooze until just a bit after 0630, just as expected. Once I finally dragged myself out of bed, I made my way to [...]]]></description>
				<content:encoded><![CDATA[<p>I made the mistake last night of setting the hotel&#8217;s alarm clock instead of using one of my phones.</p>
<p>The annoyingly loud buzzer went off at 0600, just as planned.  I hit snooze until just a bit after 0630, just as expected. Once I finally dragged myself out of bed, I made my way to the living room of my suite to fire up my computer (the first thing I do every morning).  I thought it&#8217;d be a good idea to change the time zone on my computer, so I wouldn&#8217;t have to spend the week adding three hours.  After selecting Toronto from the list, the clock changed to 0544.</p>
<p>Eh?</p>
<p>A quick Google search for &#8220;<a href="http://www.google.com/search?q=toronto+time" title="Google it" target="_blank">toronto time</a>&#8221; (yet another feature of Google I just now discovered) told me that it was, indeed not yet 0600.</p>
<p>So now I&#8217;m awake an hour earlier than planned and I understand why the sleep is much more difficult to rub from my eyes than it should be.  There isn&#8217;t much point in trying to get any more sleep, so instead I&#8217;m going to get something done before meeting my team at 0800.  Thank goodness the Hilton at least provides coffee in the room.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/quelle-heure-est-il/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Do Canadians Eat?</title>
		<link>http://sirhc.us/what-do-canadians-eat/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-do-canadians-eat</link>
		<comments>http://sirhc.us/what-do-canadians-eat/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 04:11:20 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Canada]]></category>
		<category><![CDATA[Food]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/10/what-do-canadians-eat/</guid>
		<description><![CDATA[After our direct flight from San Diego to Toronto on Air Canada, we were starving. Sure, there was food available on the flight, but it seemed expensive for what you get. The barbecue beef sandwich the girl next to me ordered sure smelled good, but I didn&#8217;t think it was worth the five dollars (USD [...]]]></description>
				<content:encoded><![CDATA[<p>After our direct flight from San Diego to Toronto on Air Canada, we were starving.  Sure, there was food available on the flight, but it seemed expensive for what you get.  The barbecue beef sandwich the girl next to me ordered sure smelled good, but I didn&#8217;t think it was worth the five dollars (USD and CAD) to find out.</p>
<p>Once we checked into the hotel in Markham, we started wondering what was typical Canadian food.  When I visit Mexico (or heck, stay in San Diego) I know what Mexican food is and I know where to go for the good stuff.  What&#8217;s Canada known for?  Is it like asking what American food is (well, that depends on what part of the States you&#8217;re in)?</p>
<p>Having not been able to answer the question, we started driving until we came to a cluster of restaurants in  Richmond Hill.  We chose a nice-looking place called <a href="http://www.themarlowe.ca/" title="The Marlowe" target="_blank">Marlowe</a> on York Blvd.  The food was excellent, and Hoegaarden was on tap, served in the appropriate glass (that is to say large; I had two).</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/what-do-canadians-eat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Canada, eh?</title>
		<link>http://sirhc.us/hello-canada-eh/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hello-canada-eh</link>
		<comments>http://sirhc.us/hello-canada-eh/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 03:58:06 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Canada]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/06/10/hello-canada-eh/</guid>
		<description><![CDATA[I&#8217;ve been sent to Toronto for the week. Officially, I&#8217;m out here for training on a product we make very heavy use of. Unofficially, I&#8217;ve brought with me a copy of Lonely Planet Toronto and have already read through the section on pubs and bars. Technically, I&#8217;m in Markham, but I&#8217;m here until Friday, so [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been sent to Toronto for the week.  Officially, I&#8217;m out here for training on a product we make very heavy use of.  Unofficially, I&#8217;ve brought with me a copy of <a href="http://www.amazon.com/Lonely-Planet-Toronto-Sara-Benson/dp/1741041791/ref=pd_bbs_sr_1/104-4133903-3139934?ie=UTF8&amp;s=books&amp;qid=1181534092&amp;sr=8-1" title="Amazon.com" target="_blank">Lonely Planet Toronto</a> and have already read through the section on pubs and bars.  Technically, I&#8217;m in Markham, but I&#8217;m here until Friday, so I hope to be able to experience Toronto while I&#8217;m here.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/hello-canada-eh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Thin, Blue Line</title>
		<link>http://sirhc.us/the-thin-blue-line/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-thin-blue-line</link>
		<comments>http://sirhc.us/the-thin-blue-line/#comments</comments>
		<pubDate>Tue, 16 Jan 2007 02:13:43 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/01/15/the-thin-blue-line/</guid>
		<description><![CDATA[Last week, on Wednesday afternoon, my Dell Inspiron E1505 developed a blue line on the LCD panel. It was one pixel in width and spanned the entire height of the display just left of center. Man was I ever annoyed! I immediately submitted a support request to Dell, not really expecting much. My impression of [...]]]></description>
				<content:encoded><![CDATA[<p><a href="/journal/wp-images/thin-blue-line.jpg"><img src="/journal/wp-images/thin-blue-line.tn.jpg" alt="The Thin, Blue Line" title="The Thin, Blue Line" align="right" border="0" /></a>Last week, on Wednesday afternoon, my Dell Inspiron E1505 developed a blue line on the LCD panel.  It was one pixel in width and spanned the entire height of the display just left of center.  Man was I ever annoyed!  I immediately submitted a support request to Dell, not really expecting much.</p>
<p>My impression of Dell is very much improved from what it was.  I was never really one to speak ill of Dell (I think the Inspiron is a great notebook computer), but neither has Dell really struck me as a great company.  I&#8217;m not the type to buy a desktop or server computer from Dell, but the notebooks are a pretty good deal, particularly with the employee discount through Qualcomm.  Well, apparently, I have an on-site service agreement with Dell and today a tech came out to replace the LCD panel.  It would have been done on Friday, but we had some scheduling problems.</p>
<p>Really, I&#8217;m impressed.  A support representative (likely in India) contacted me almost immediately to help me isolate the problem.  I knew it was the LCD panel, but I went with it.  By Wednesday night, I was informed that a replacement part was on its way to a tech to be replaced on-site.</p>
<p>I find Dell&#8217;s support even better than AppleCare.  First of all, I don&#8217;t have to deal with the pretentious &#8220;geniuses&#8221; at the Apple Store&#8217;s Genius Bar; second, I don&#8217;t have to ship my computer anywhere to have it serviced.  Congratulations Dell, I may even be a repeat customer.</p>
<p>Okay, enough cheerleading.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/the-thin-blue-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analyze This</title>
		<link>http://sirhc.us/analyze-this/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=analyze-this</link>
		<comments>http://sirhc.us/analyze-this/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 01:28:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/01/14/analyze-this/</guid>
		<description><![CDATA[I&#8217;ve been reading Google Hacks as an &#8220;assignment&#8221; from my local Linux user group. Basically, we raffle off review copies of books donated to us from O&#8217;Reilly. One of the requirements of this is that we review these books. Well, I&#8217;ll have my review finished soon. But that&#8217;s not what I wanted to write about [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been reading <a href="http://www.oreilly.com/catalog/googlehks3/">Google Hacks</a> as an &#8220;assignment&#8221; from my local <a href="http://www.kernel-panic.org/">Linux user group</a>.  Basically, we raffle off review copies of books donated to us from O&#8217;Reilly.  One of the requirements of this is that we review these books.  Well, I&#8217;ll have my review finished soon.  But that&#8217;s not what I wanted to write about in this post.</p>
<p>One of the final chapters in the book contains hacks for webmasters.  As the master of my own as well as a few other web sites, this chapter was very interesting for me.  It pointed me in the direction of Google&#8217;s tools for webmasters, in particular <a href="http://www.google.com/analytics/">Google Analytics</a>.  I&#8217;ve known about this tool for a while, but I finally decided to check it out.  I love it.  All I have to do is add a snipped of JavaScript on all of my web pages (view the source of this one and you&#8217;ll see it there at the bottom), and Google gives me all sorts of pretty graphs.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/analyze-this/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webmastering SanDiego.pm</title>
		<link>http://sirhc.us/webmastering-sandiegopm/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=webmastering-sandiegopm</link>
		<comments>http://sirhc.us/webmastering-sandiegopm/#comments</comments>
		<pubDate>Tue, 09 Jan 2007 05:12:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/01/08/webmastering-sandiegopm/</guid>
		<description><![CDATA[As of tonight, I am the new webmaster for the San Diego Perl Mongers. This is pretty exciting for me. I have a vision for what I want the SanDiego.pm &#8220;web community&#8221; to be, and I hope I&#8217;m able to achieve it. My first order of business was to create a public calendar for our [...]]]></description>
				<content:encoded><![CDATA[<p>As of tonight, I am the new webmaster for the <a href="http://sandiego.pm.org/">San Diego Perl Mongers</a>.  This is pretty exciting for me.  I have a vision for what I want the SanDiego.pm &#8220;web community&#8221; to be, and I hope I&#8217;m able to achieve it.</p>
<p>My first order of business was to create a <a href="http://www.google.com/calendar/embed?src=u2lhjv6gevv28lip6ui7h0mu7g%40group.calendar.google.com">public calendar</a> for our group.  Now anyone can subscribe to our calendar to find out when we&#8217;re having meetings or any special events.  Not only that, using Google means less work for me.</p>
<p>I have much more in mind, which I&#8217;ll be sure to announce here and in my <a href="http://use.perl.org/~cgrau/journal/">use Perl journal</a>.  Of course, I don&#8217;t intend to run this web site in the dark.  I&#8217;m open to any and all suggestions.  I want this to be a community effort on the part of SanDiego.pm.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/webmastering-sandiegopm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Farewell 2006, Hello 2007</title>
		<link>http://sirhc.us/farewell-2006-hello-2007/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=farewell-2006-hello-2007</link>
		<comments>http://sirhc.us/farewell-2006-hello-2007/#comments</comments>
		<pubDate>Mon, 01 Jan 2007 06:32:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2007/01/01/farewell-2006-hello-2007/</guid>
		<description><![CDATA[Happy New Year to both of my readers. I found 2006 to be an uneventful, yet good year. I expect 2007 to be an even better year. Though I don&#8217;t expect it to be any more eventful. I&#8217;m not really one for New Year&#8217;s Resolutions. Something is good enough to do on the first of [...]]]></description>
				<content:encoded><![CDATA[<p>Happy New Year to both of my readers.  I found 2006 to be an uneventful, yet good year.  I expect 2007 to be an even better year.  Though I don&#8217;t expect it to be any more eventful.</p>
<p>I&#8217;m not really one for New Year&#8217;s Resolutions.  Something is good enough to do on the first of January, but not on the fourteenth day of August?  Still, I recognize the significance of this, the first day of a new year to most people.  Like the ancient winter solstice celebrations, the new calendar year is a time of renewal, a time to start afresh.  A point in time to say everything that will come will be different than what came before.  There is a physical manifestation of this symbolic gesture: the disposal of last year&#8217;s calendar, replacing it with a new one.  A <em>tabula rasa</em> of tasks, appointments, and goals.</p>
<p>All that said, it will come as no surprise that I have no resolutions for 2007.  At least, not officially.  I have plenty of desires and goals that I continuously evaluate and refine.  New Year&#8217;s Eve does provide me with a moment to spend thinking about these.  For the moment, though, I have a couple of beers and some cocktail shrimp to focus on.  The rest can wait a bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/farewell-2006-hello-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wii Like to Play</title>
		<link>http://sirhc.us/wii-like-to-play/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wii-like-to-play</link>
		<comments>http://sirhc.us/wii-like-to-play/#comments</comments>
		<pubDate>Tue, 26 Dec 2006 06:33:28 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Christmas]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Vacation]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/25/wii-like-to-play/</guid>
		<description><![CDATA[Mrs. Sirhc and I spent Christmas day with my dad&#8217;s family. Present were my parents, my grandmother, two uncles, one aunt, and three cousins. Missing were another aunt, three more cousins, and a cousin-in-law. It was a good day with lots of fun and lots of food. I haven&#8217;t seen my extended family in five [...]]]></description>
				<content:encoded><![CDATA[<p>Mrs. Sirhc and I spent Christmas day with my dad&#8217;s family.  Present were my parents, my grandmother, two uncles, one aunt, and three cousins.  Missing were another aunt, three more cousins, and a cousin-in-law.  It was a good day with lots of fun and lots of food.  I haven&#8217;t seen my extended family in five years, so it was good to catch up.</p>
<p>This family gathering was different from those of the past.  Gone were the games of poker and nickel-nickel, replaced countless games of bowling.  That&#8217;s right, one of my cousins brought a Wii to Christmas.  For the first time ever, my parents want a video game system (I told them the Wii was cool, but they didn&#8217;t believe me).  I think Mrs. Sirhc may even allow me to buy one for us.</p>
<p>I had fun today.  I really should try to get up here more often to visit my family.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/wii-like-to-play/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Let it Snow?</title>
		<link>http://sirhc.us/let-it-snow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=let-it-snow</link>
		<comments>http://sirhc.us/let-it-snow/#comments</comments>
		<pubDate>Sun, 24 Dec 2006 23:51:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Vacation]]></category>
		<category><![CDATA[Weather]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/24/let-it-snow/</guid>
		<description><![CDATA[We&#8217;re staying at my Grandmother&#8217;s house in Snohomish, Washington for Chistmas. It&#8217;s been perhaps five years since I&#8217;ve visited my family in the Pacific Northwest. This is Mrs. Sirhc&#8217;s first trip to meet my family, and she&#8217;s been looking forward to it for a few months. One might expect that Snohomish would have, well, snow [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://sirhc.us/journal/wp-images/let-it-snow.jpg"><img src="http://sirhc.us/journal/wp-images/let-it-snow.tn.jpg" alt="Let it Snow?" title="Let it Snow?" align="right" border="0" /></a></p>
<p>We&#8217;re staying at my Grandmother&#8217;s house in Snohomish, Washington for Chistmas.  It&#8217;s been perhaps five years since I&#8217;ve visited my family in the Pacific Northwest.  This is Mrs. Sirhc&#8217;s first trip to meet my family, and she&#8217;s been looking forward to it for a few months.</p>
<p>One might expect that Snohomish would have, well, snow over the holidays.  One would be wrong.  I remember spending Christmas here when I was just a wee lad and we would play in the snow.  Those days are long since gone.  It no longer snows very much in Seattle or the surrounding areas.  It does, however, rain.  And rain.  And rain.  And rain some more.</p>
<p>Living as I do in San Diego, rain is one of those rare events that is worth noting.  Here, saying that it&#8217;s raining is akin to saying the sky is blue.  Well, that is, the sky would be blue if it weren&#8217;t raining.  My word that the sky is in fact blue will have to suffice.</p>
<p>So, while we may be dreaming of a white Christmas, we&#8217;re experiencing a wet Christmas.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/let-it-snow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bingo!</title>
		<link>http://sirhc.us/bingo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bingo</link>
		<comments>http://sirhc.us/bingo/#comments</comments>
		<pubDate>Sat, 23 Dec 2006 06:42:44 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Vacation]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/22/bingo/</guid>
		<description><![CDATA[As is the tradition when visiting my grandmother, we played bingo. This time at the local senior center. It&#8217;s not a game I can imagine myself playing on my own. I find it incredibly boring and have little in common with those who do attend regularly. Although, after my fourth or fifth cup of coffee, [...]]]></description>
				<content:encoded><![CDATA[<p>As is the tradition when visiting my grandmother, we played bingo.  This time at the local senior center.  It&#8217;s not a game I can imagine myself playing on my own.  I find it incredibly boring and have little in common with those who do attend regularly.  Although, after my fourth or fifth cup of coffee, I found scanning my cards for numbers much more entertaining.</p>
<p>This was Mrs. Sirhc&#8217;s first experience playing bingo and I made the mistake of starting her out with more cards than she could handle.  Even so, she almost won a couple of games.  Almost.  Story of my short and not so illustrious bingo career.</p>
<p>Oh well.  So I&#8217;m out fifty bucks.  It&#8217;s a heck of a lot less than I would have lost to the bones at the Luxor.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/bingo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miles Away from&#8230; the Border</title>
		<link>http://sirhc.us/miles-away-from-the-border/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=miles-away-from-the-border</link>
		<comments>http://sirhc.us/miles-away-from-the-border/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 22:21:38 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Vacation]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/22/miles-away-from-the-border/</guid>
		<description><![CDATA[While I was out with my dad and grandmother, we decided to grab some lunch. We came across a Skippers and popped inside (where it was warm and dry) to have something to eat. Perusing the menu, I saw the usual assortment of fish and chips, fried clam strips, and clam chowder. My eyes happened [...]]]></description>
				<content:encoded><![CDATA[<p>While I was out with my dad and grandmother, we decided to grab some lunch.  We came across a <a href="http://www.skippers.net/">Skippers</a> and popped inside (where it was warm and dry) to have something to eat.  Perusing the menu, I saw the usual assortment of fish and chips, fried clam strips, and clam chowder.  My eyes happened to drop to a sign advertising brand new fish tacos.  Just like being south of the border the sign promised.  Great, I thought, I love fish tacos and wasn&#8217;t in the mood for anything else on the menu.</p>
<p>As my order of two fish tacos was set down on the table in front of me, I immediately wondered which border the sign was really referring to.  Unwrapping the paper revealed a limp flour tortilla containing a breaded fish fillet that would look more at home with yellow slicker-clad fisherman, iceberg lettuce, Pace picante sauce, and&#8230; here&#8217;s the kicker&#8230; thousand island dressing.</p>
<p>As a fish sandwich, it was mediocre and about all I could expect for a couple of bucks.  As a fish taco, well, it was about as far removed from a fish taco as I could have imagined.  At least, before I had encountered this fish&#8230; something.</p>
<p>Thank you Skippers.  I can now understand the disgust expressed by my friends, those deprived souls who have not had the pleasure of real Baja cuisine, when I tell them of the beauty&#8230; nay, the culinary perfection&#8230; that is the fish taco.  A warm corn tortilla surrounding chunks of beer-battered pollock, shredded cabbage, pico de gallo, and white sauce.  My mouth waters.</p>
<p>What the Pacific Northwest, and perhaps the rest of the country, needs is for <a href="http://www.rubios.com/">Rubio&#8217;s</a> to appear and introduce decent Baja style fast food.  Thank goodness I live in San Diego.<br />
<img src="http://sirhc.us/journal/wp-images/fish-taco.png" title="Rubio's Fish Taco" alt="Rubio's Fish Taco" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/miles-away-from-the-border/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self Defenseless</title>
		<link>http://sirhc.us/self-defenseless/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=self-defenseless</link>
		<comments>http://sirhc.us/self-defenseless/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 04:13:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Martial Arts]]></category>
		<category><![CDATA[Vacation]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/21/self-defenseless/</guid>
		<description><![CDATA[So I&#8217;m standing in line outside San Diego International Airport, waiting with about 200 other people to check my bag. The line, of course, has stretched outside the door and is winding its way down the sidewalk. As I am wont to do, I am reading everything I see. For instance, written on the very [...]]]></description>
				<content:encoded><![CDATA[<p>So I&#8217;m standing in line outside San Diego International Airport, waiting with about 200 other people to check my bag.  The line, of course, has stretched outside the door and is winding its way down the sidewalk.  As I am wont to do, I am reading everything I see.  For instance, written on the very door through which my line passes: &#8220;The following items are illegal to carry into an airport&#8230; knives&#8230; guns&#8230; yadda&#8230; yadda&#8230; throwing stars&#8230; kubatons&#8230; any and all martial arts weapons&#8230;&#8221;</p>
<p>Wait a minute.</p>
<p>Kubatons?</p>
<p>Oops.</p>
<p>I happen to have said weapon in my pocket at this very moment.  It is effective as both a key chain and self defense weapon.  Not only that, I&#8217;ve forgotten to leave it home and it&#8217;s conveniently made of aluminum (hello metal detector!).</p>
<p>Fortunately, the very line that has given me the chance to learn of my mistake has provided me a solution.  I can toss the only weapon I have left into my bag and check it through to Seattle.  Now I feel naked.  I&#8217;ve already left my knives at home, but now my last-ditch weapon is gone, too.</p>
<p><img src="http://sirhc.us/journal/wp-images/kubaton.jpg" alt="Kubaton" title="Kubaton" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/self-defenseless/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off to Snohomish</title>
		<link>http://sirhc.us/off-to-snohomish/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=off-to-snohomish</link>
		<comments>http://sirhc.us/off-to-snohomish/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 23:15:22 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Vacation]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/20/off-to-snohomish/</guid>
		<description><![CDATA[Barely recovered from our stay in Arizona, Mrs. Sirhc and I will be flying up to Washington state tomorrow to spend Christmas with my family, most of whom she hasn&#8217;t had the pleasure of meeting. Probably about time, too, as we&#8217;ve been married for a couple of years now. Does this mean I&#8217;ll be away [...]]]></description>
				<content:encoded><![CDATA[<p>Barely recovered from our stay in Arizona, Mrs. Sirhc and I will be flying up to Washington state tomorrow to spend Christmas with my family, most of whom she hasn&#8217;t had the pleasure of meeting.  Probably about time, too, as we&#8217;ve been married for a couple of years now.</p>
<p>Does this mean I&#8217;ll be away from the computer?  No!  Silly reader.  I work for Qualcomm.  I&#8217;m taking an EVDO card with me.  Internet withdrawals are terrible.  I wouldn&#8217;t wish them on anyone.  I intend to write more while on vacation than while at home.  After all, family vacations leave me with plenty of spare time to fill.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/off-to-snohomish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Dream in Perl</title>
		<link>http://sirhc.us/i-dream-in-perl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=i-dream-in-perl</link>
		<comments>http://sirhc.us/i-dream-in-perl/#comments</comments>
		<pubDate>Sun, 17 Dec 2006 16:21:45 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/17/i-dream-in-perl/</guid>
		<description><![CDATA[Most people awake on Sunday morning to thoughts of brunch, church, or football. Not me. I awake with Perl in my head. Sigils, modules, and regular expressions snaking their way through my dreams. I have to climb out of bed and make my way to the computer before it&#8217;s gone. I have to prototype this [...]]]></description>
				<content:encoded><![CDATA[<p>Most people awake on Sunday morning to thoughts of brunch, church, or football.</p>
<p>Not me.</p>
<p>I awake with Perl in my head.  Sigils, modules, and regular expressions snaking their way through my dreams.  I have to climb out of bed and make my way to the computer before it&#8217;s gone.  I have to prototype this code before it stops making sense.  I have to commit these arcane symbols to disk before they fade away like so many other hazy, indistinct dreams.</p>
<p>I have to seek help.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/i-dream-in-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off to Arizona</title>
		<link>http://sirhc.us/off-to-arizona/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=off-to-arizona</link>
		<comments>http://sirhc.us/off-to-arizona/#comments</comments>
		<pubDate>Fri, 08 Dec 2006 16:49:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Arizona]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Vacation]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/12/08/off-to-arizona/</guid>
		<description><![CDATA[I&#8217;m about to get in the car and drive to Prescott, Arizona for the weekend. I couldn&#8217;t make it out for Thanksgiving this year, and Mrs. Sirhc has been there since the holiday weekend. Her best friend has finally given birth to a bouncing baby boy, so it&#8217;s time for me to drive out to [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m about to get in the car and drive to Prescott, Arizona for the weekend.  I couldn&#8217;t make it out for Thanksgiving this year, and Mrs. Sirhc has been there since the holiday weekend. Her best friend has finally given birth to a bouncing baby boy, so it&#8217;s time for me to drive out to pick up Mrs. Sirhc.  I&#8217;ve missed her, but I think I&#8217;ve grown used to being a bachelor again.</p>
<p>As it turns out, I&#8217;m a workaholic when I&#8217;m left alone.  I would never have expected that when I worked for <a href="http://www.globalhealthtrax.com/" title="Global Health Trax">Global Health Trax</a>, but now that I work for <a href="http://www.qualcomm.com/" title="Qualcomm">Qualcomm</a> I love spending every waking hour writing code for work.  That can&#8217;t be healthy.  Well, maybe it can.  After all, I do love writing code (it does help if that code happens to be Perl).</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/off-to-arizona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Squeak</title>
		<link>http://sirhc.us/squeak/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=squeak</link>
		<comments>http://sirhc.us/squeak/#comments</comments>
		<pubDate>Sat, 07 Oct 2006 16:54:44 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/10/07/squeak/</guid>
		<description><![CDATA[Lately, I will be sitting in my office, working one of my notebook computers, when I will hear what sounds like a mouse coming from my left. Only it&#8217;s not a mouse, it&#8217;s the hard drive in my desktop. Uh oh. My desktop computer is archaic by today&#8217;s standards, containing a measly 1.0 GHz Athlon [...]]]></description>
				<content:encoded><![CDATA[<p>Lately, I will be sitting in my office, working one of my notebook computers, when I will hear what sounds like a mouse coming from my left.  Only it&#8217;s not a mouse, it&#8217;s the hard drive in my desktop.  Uh oh.  My desktop computer is archaic by today&#8217;s standards, containing a measly 1.0 GHz Athlon XP and a mere 512 MB of RAM.  So much so that I use it primarily as a file server and an SSH gateway into my notebook (a 2.0 GHz Intel Core Duo with 2.0 GB of RAM).</p>
<p>Looks like it&#8217;s time to replace my aging desktop.  I&#8217;m thinking a 2.x GHz Athlon64 X2 with 4.0 GB of RAM and two high capacity SATA drives in a RAID-1 configuration.  Depending on cost, I may even get two CPUs for a quad-core system.  Oh yes, that will really make my day.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/squeak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4:25 A.M.</title>
		<link>http://sirhc.us/425-am/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=425-am</link>
		<comments>http://sirhc.us/425-am/#comments</comments>
		<pubDate>Wed, 04 Oct 2006 18:36:49 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Cats]]></category>
		<category><![CDATA[Martial Arts]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/10/04/425-am/</guid>
		<description><![CDATA[The blankets pull away from me, exposing the back of my neck to the cold bedroom air. &#8220;Dolly,&#8221; I complain, reaching to push away the small feline and pull the warm blanket back into position. &#8220;Chris,&#8221; the whispered voice of my wife reaching my ears while her gentle prodding awakens me, &#8220;I think someone is [...]]]></description>
				<content:encoded><![CDATA[<p>The blankets pull away from me, exposing the back of my neck to the cold bedroom air.  &#8220;Dolly,&#8221; I complain, reaching to push away the small feline and pull the warm blanket back into position.  &#8220;Chris,&#8221; the whispered voice of my wife reaching my ears while her gentle prodding awakens me, &#8220;I think someone is trying to break in.&#8221;</p>
<p>I find myself on my feet before I even realize I&#8217;ve left the bed.  Reaching for my glasses.</p>
<p>Bang!</p>
<p>Crouching to retrieve the cane kept stashed under the bed.  My wife whispering, &#8220;That&#8217;s the fifth time it&#8217;s happened.&#8221;  Without pause, I leave the bedroom, moving in the direction the unknown sound.</p>
<p>Bang!</p>
<p>Weapon at the ready, I flip on the hall light.  Fighting is easier when I can see.  Quickly, I move down the hall, checking each room on my way to the front of the house.  Distant thoughts compete for my attention.  Why would it take so long for someone to break into the house?  It&#8217;s probably just the cats.  Still, better safe than sorry.  Reassuring squeeze of my cane.</p>
<p>No one in the front room.  No one in the kitchen.  Pierre pacing anxiously.  Toby looking at me expectantly from the back door.  Turn on the back patio light.  Nothing.  Peek through the vertical blinds.  Nothing.  I glare at Toby.  He gazes back up at me, excitement plays across his features.</p>
<p>Back to the bedroom for clothes and a flashlight; I need to secure the perimeter of the house.  &#8220;Oh my god, Pepper is outside!&#8221; exclaims my wife, peering out the bedroom window.  Throwing open the guest room door, I find the window still closed and Pepper looking up at me, curiosity playing across her face.  Wondering what all the commotion is for, no doubt.</p>
<p>Great, a stray cat has me out of bed at 4:25 A.M. with a weapon in one hand and a flashlight in the other.</p>
<p>Stupid cats.</p>
<p>After this incident I returned to bed, but the receeding adrenaline prevented me from sleeping for another hour or so.  There&#8217;s a scene in <em>The Last Samurai</em> in which Nathan Algren, played by Tom Cruise, fights four men armed with samurai swords.  After winning the fight, he pauses as he replays the movements in his mind.  That is not unlike what I felt.  From the moment I leaped to my feet until I cleared the house, I had been acting purely on instinct.  Only afterwards, safe again in bed, did my concious mind catch up.  I found myself reliving each moment in vivid detail.</p>
<p>It&#8217;s said that training is bloodless war and war is bloody training.  This is a philosophy I&#8217;ve held for a long time, but now I understand it at a fundamental level.  I&#8217;ve always wondered how I would react if my life or the lives of my family were put in danger.  In fact, not a day goes by that I don&#8217;t entertain those very thoughts.  In my years of martial arts experience, this was the first time my training had taken over.  I didn&#8217;t freeze, I didn&#8217;t panic, I didn&#8217;t hesitate.  I reacted.  I could react in this way because I had already trained myself how to respond to just such a situation.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/425-am/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Three Days (and One Night) of Damian</title>
		<link>http://sirhc.us/the-three-days-and-one-night-of-damian/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-three-days-and-one-night-of-damian</link>
		<comments>http://sirhc.us/the-three-days-and-one-night-of-damian/#comments</comments>
		<pubDate>Tue, 03 Oct 2006 18:44:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/10/03/the-three-days-and-one-night-of-damian/</guid>
		<description><![CDATA[The San Diego Perl Mongers held a special meeting last night. Damian Conway is in town this week and dropped by to present one of his seminars. Dr. Conway regaled us with tales of Sufficiently Advanced Technologies; some fictional, some he himself has contributed to the CPAN, some we wish would have remained fictional. Unfortunately, [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://sandiego.pm.org/">San Diego Perl Mongers</a> held a special meeting last night.  Damian Conway is in town this week and dropped by to present one of his seminars.  Dr. Conway regaled us with tales of <a href="http://damian.conway.org/Seminars//Technology.html">Sufficiently Advanced Technologies</a>; some fictional, some he himself has contributed to the <a href="http://cpan.perl.org/">CPAN</a>, some we wish would have remained fictional.  Unfortunately, my wife was sick and couldn&#8217;t make it.  She really wanted to find out why I spent the entire week of OSCON 2006 (and the following month) raving about this Damian mad man.</p>
<p>Anyone who has attended one of Damian Conway&#8217;s seminars, tutorials, or keynotes will most likely have noticed that aikido will make an appearance once in a while.  And for anyone who hasn&#8217;t, I highly recommend tracking Damian down.  But not in that creepy stalker way.  That&#8217;s just&#8230; creepy.  Anyway, Damian knows a bit of aikido (or at least one move).  He plucked a good friend of mine, <a href="http://www.risse.tierranet.com/">Dan Risse</a>, from the audience to demonstrate a &#8220;come-along&#8221; move.  There was, as with most of Damian&#8217;s demonstrations, a good reason for this.  I was wildly amused.  In fact, I kind of have the itch to practice aikido again.</p>
<p><em>Sufficiently Advanced Technology</em> is a pared down version of the API design tutorial I attended at OSCON.  Memories of the <a href="http://www.canspice.org/2006/07/28/oscon-2006-the-girl-from-ipanema/">Girl from Ipanema</a> came flooding back to me.</p>
<p>I mentioned that Damian is in town.  For the second year in a row, he will be presenting two of his courses over three days at Qualcomm.  Fortunately for me, I now work for Qualcomm (I didn&#8217;t when he was here last year).  I will, of course, be in attendance all three days.  By the end of the week I should know much more about <a href="http://damian.conway.org/Courses//BestPractice.html">Perl Best Practice</a> and <a href="http://damian.conway.org/Courses//AdvancedModules.html">Advanced Module Development Techniques</a>.</p>
<p>Needless to say, I&#8217;m excited.  Hopefully I won&#8217;t require psychological counselling.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/the-three-days-and-one-night-of-damian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Lack of) Home Improvment</title>
		<link>http://sirhc.us/lack-of-home-improvment/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lack-of-home-improvment</link>
		<comments>http://sirhc.us/lack-of-home-improvment/#comments</comments>
		<pubDate>Tue, 13 Jun 2006 00:46:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/06/12/lack-of-home-improvment/</guid>
		<description><![CDATA[I&#8217;ve been spoiled by renting from my parents for so many years. It seems I need to get used to renting from a landlord who is, essentially, a stranger. The kitchen cabinets in the house are awful, just awful. They&#8217;re something that is common to find in houses built in San Diego in the 1980s. [...]]]></description>
				<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3833/1972/1600/kitchen-cabinets.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3833/1972/320/kitchen-cabinets.jpg" border="0" alt="" /></a>I&#8217;ve been spoiled by renting from my parents for so many years.  It seems I need to get used to renting from a landlord who is, essentially, a stranger.</p>
<p>The kitchen cabinets in the house are awful, just awful.  They&#8217;re something that is common to find in houses built in San Diego in the 1980s.  From a distance, the wood is attractive, but up close it&#8217;s apparent that the wood is ugly and grimy, and the construction is poor.</p>
<p>We were hoping to spruce up the cabinets a bit by either whitewashing them or completely painting them white.  We thought this would be a marked improvement and make the kitchen more habitable (right now it&#8217;s mostly just dirty and unpleasant).</p>
<p>No can do.  The landlord won&#8217;t let us.</p>
<p>I can&#8217;t really say that I&#8217;m surprised.  He wants us to return the house to him as we found it, and taste is subjective.  So while we believe we&#8217;re adding value and aesthetics to the house, he doesn&#8217;t feel that way.</p>
<p>That&#8217;s fine.  I don&#8217;t really see why I should spend any time or money doing things that only increase the value of his property anyway.  What do I end up gaining from it?  So all of what we do will be temporary.  He&#8217;ll get back the same dirt lot, the same dying grass, and the same ugly kitchen he gave us.</p>
<p>In fact, the less I appreciate the house, the more incentive I&#8217;ll have to get out.  Either to a better rental or a home of our own.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/lack-of-home-improvment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Soured on Attached Housing</title>
		<link>http://sirhc.us/soured-on-attached-housing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=soured-on-attached-housing</link>
		<comments>http://sirhc.us/soured-on-attached-housing/#comments</comments>
		<pubDate>Tue, 06 Jun 2006 16:38:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/06/06/soured-on-attached-housing/</guid>
		<description><![CDATA[One thing I won&#8217;t miss about our current residence&#8212;an attached townhouse&#8212;is our neighbor. She moved into the neighboring unit about two years ago. Since then, she has been nothing but annoying. The music pounding through the walls, the cars parked in front of our garage, and the shrill, high-school-ish nature of herself and her friends. [...]]]></description>
				<content:encoded><![CDATA[<p>One thing I won&#8217;t miss about our current residence&mdash;an attached townhouse&mdash;is our neighbor.  She moved into the neighboring unit about two years ago.  Since then, she has been nothing but annoying.  The music pounding through the walls, the cars parked in front of our garage, and the shrill, high-school-ish nature of herself and her friends.  Not to mention that, no matter how many times we ask or complain to management, it doesn&#8217;t change.</p>
<p>So I&#8217;d like to try detached housing for a while.  On the one hand, I like having a home-owners association to tend to the landscaping and building exterior; but on the other hand, I&#8217;d like to have a little space between myself and my neighbors.  Particularly when the walls are paper-thin.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/soured-on-attached-housing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vegas or Bust?</title>
		<link>http://sirhc.us/vegas-or-bust/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vegas-or-bust</link>
		<comments>http://sirhc.us/vegas-or-bust/#comments</comments>
		<pubDate>Sun, 04 Jun 2006 23:57:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/06/04/vegas-or-bust/</guid>
		<description><![CDATA[As much as I&#8217;ve loved going to Vegas in the past, I don&#8217;t think we&#8217;ll be going again for a long time. Each time we&#8217;ve gone, the time spent there has grown progressively less fun. This time, I think, it was a real bust. I don&#8217;t know if it was because we&#8217;re trying to save [...]]]></description>
				<content:encoded><![CDATA[<p>As much as I&#8217;ve loved going to Vegas in the past, I don&#8217;t think we&#8217;ll be going again for a long time.  Each time we&#8217;ve gone, the time spent there has grown progressively less fun.  This time, I think, it was a real bust.</p>
<p>I don&#8217;t know if it was because we&#8217;re trying to save enough money to buy a house or because I didn&#8217;t have a gaming partner&mdash;probably a bit of both&mdash;but I didn&#8217;t do any gambling this time.  I didn&#8217;t even spend the entire night drinking and wandering aimlessly, taking in the sights.  I hate to say it, but I think I&#8217;ve become bored with Vegas.  At least for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/vegas-or-bust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Viva Las Vegas</title>
		<link>http://sirhc.us/viva-las-vegas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=viva-las-vegas</link>
		<comments>http://sirhc.us/viva-las-vegas/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 16:29:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/06/02/viva-las-vegas/</guid>
		<description><![CDATA[We&#8217;re off to Vegas this afternoon. I&#8217;ve been looking forward to this trip for several weeks. This time around we&#8217;re staying at the Monte Carlo. At first, I was a little upset about paying so much for the room, but luckily the price kept dropping. Now we&#8217;re paying about the same amount for the entire [...]]]></description>
				<content:encoded><![CDATA[<p>We&#8217;re off to Vegas this afternoon.  I&#8217;ve been looking forward to this trip for several weeks.  This time around we&#8217;re staying at the <a href="http://www.montecarlo.com/">Monte Carlo</a>.  At first, I was a little upset about paying so much for the room, but luckily the price kept dropping.  Now we&#8217;re paying about the same amount for the entire weekend as a single night was originally going to cost.</p>
<p>I can&#8217;t wait.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/viva-las-vegas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Ours</title>
		<link>http://sirhc.us/its-ours/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=its-ours</link>
		<comments>http://sirhc.us/its-ours/#comments</comments>
		<pubDate>Thu, 01 Jun 2006 01:49:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/05/31/its-ours/</guid>
		<description><![CDATA[Or, at least, as ours as a rented house can be. I picked up the keys to the house today from our new landlord. For some reason, the whole idea of moving into the house is a little surreal. Perhaps I&#8217;ve grown too rooted to and spoiled by our current residence. There is no doubt [...]]]></description>
				<content:encoded><![CDATA[<p>Or, at least, as ours as a rented house can be.</p>
<p>I picked up the keys to the house today from our new landlord.  For some reason, the whole idea of moving into the house is a little surreal.  Perhaps I&#8217;ve grown too rooted to and spoiled by our current residence.  There is no doubt that I&#8217;ll miss this little piece of luxury I&#8217;ve had for the past five years.  I&#8217;ll manage.  With luck (and a few lottery tickets?), we&#8217;ll be able to buy a house of our own by the time our lease comes due next May.</p>
<p>When I got home tonight, I got an earful from our neighbor about my choice to rent instead of buy.  The conversation gave me second thoughts about choosing not to buy a house, but I think I&#8217;ll get over it.  Particularly if I go back to read a few of the articles written about the San Diego housing market over the last few months.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/its-ours/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the Road to Second Degree</title>
		<link>http://sirhc.us/on-the-road-to-second-degree/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=on-the-road-to-second-degree</link>
		<comments>http://sirhc.us/on-the-road-to-second-degree/#comments</comments>
		<pubDate>Wed, 31 May 2006 06:27:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/05/30/on-the-road-to-second-degree/</guid>
		<description><![CDATA[During class tonight, I learned that to earn my second degree I need to meet only two requirements: study actively for two years or more; and, learn two additional kata. There is, of course, a third requirement I have assigned myself: re-learn all of my old forms and understand them in-depth. So, after a ten [...]]]></description>
				<content:encoded><![CDATA[<p>During class tonight, I learned that to earn my second degree I need to meet only two requirements: study actively for two years or more; and, learn two additional kata.</p>
<p>There is, of course, a third requirement I have assigned myself: re-learn all of my old forms and understand them in-depth.  So, after a ten year hiatus, I am well on my way to earning my second degree black belt.  I wonder where I&#8217;d be had I not spent so much time away from the art.</p>
<p>Perhaps after earning my second degree I will investigate the possibility of starting my own Kiado-Ryu school.  Yes, I&#8217;d like that.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/on-the-road-to-second-degree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Months</title>
		<link>http://sirhc.us/three-months/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=three-months</link>
		<comments>http://sirhc.us/three-months/#comments</comments>
		<pubDate>Sat, 27 May 2006 00:40:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/05/26/three-months/</guid>
		<description><![CDATA[Today marks my three month anniversary at Qualcomm. Well, technically tomorrow would be three months, but tomorrow is Saturday. I feel that I have finally come up to speed with what I need to do and have started accomplishing things and making a difference. I have come somewhat full circle now. In college, I took [...]]]></description>
				<content:encoded><![CDATA[<p>Today marks my three month anniversary at Qualcomm.  Well, technically tomorrow would be three months, but tomorrow is Saturday.  I feel that I have finally come up to speed with what I need to do and have started accomplishing things and making a difference.</p>
<p>I have come somewhat full circle now.  In college, I took a class entitled High Performance Computing.  We learned how to write programs to take advantage of multiple computing resources (mostly multiple CPUs, be they within a single machine or spread across multiple machines).  After the final paper, the professor asked if I would like to do graduate-level work with him.  At the time I turned him down, but now I am working with a massive grid of computers and returning to do graduate-level work is looking all the more tempting (particularly since Qualcomm will help foot the bill).</p>
<p>About once a day or so, I stop and think how much better this job is than my last and how much happier I&#8217;ve been.  The incident last month with my last company really demonstrates how bad it was.  Sadly, I could have skipped all those years of worthless Web development (the development I did, not to say that Web development itself is worthless).  Back around 1997, I was offered an internship at Qualcomm, but I turned it down.  Oh well, as they say, hindsight is 20/20.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/three-months/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Home, Sweet (New) Home?</title>
		<link>http://sirhc.us/home-sweet-new-home/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=home-sweet-new-home</link>
		<comments>http://sirhc.us/home-sweet-new-home/#comments</comments>
		<pubDate>Tue, 23 May 2006 20:24:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/05/23/home-sweet-new-home/</guid>
		<description><![CDATA[After looking into buying a house in San Diego, we finally faced facts and gave up. I can lament all I want about wasting my time and not buying a house when I had the opportunity, but nothing is going to change that. To that end, today we paid our first visit to the house [...]]]></description>
				<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3833/1972/1600/new-house.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3833/1972/320/new-house.jpg" border="0" alt="" /></a>After looking into buying a house in San Diego, we finally faced facts and gave up.  I can lament all I want about wasting my time and not buying a house when I had the opportunity, but nothing is going to change that.</p>
<p>To that end, today we paid our first visit to the house we&#8217;re considering renting.  It&#8217;s nice, I suppose.  The previous occupants didn&#8217;t treat it very well, unfortunately.  However, it has been kept up reasonably well for its age.  Four bedrooms, front and back yards, a garage, and&mdash;perhaps the clincher&mdash;no pet deposit.  I&#8217;m not entirely pleased with the house, but beggars can&#8217;t be choosers.  We can&#8217;t stay in our current residence and we can&#8217;t afford to buy a house.  This is the best rental we&#8217;ve found, and I don&#8217;t expect we&#8217;d find better.</p>
<p>The landlord seems like a nice enough person, though I suspect it will take some time to grow accustomed to not renting from my own parents.  My mom sure makes a nice landlord.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/home-sweet-new-home/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hot Damn</title>
		<link>http://sirhc.us/hot-damn/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hot-damn</link>
		<comments>http://sirhc.us/hot-damn/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 18:21:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/04/25/hot-damn/</guid>
		<description><![CDATA[I just received an e-mail from a recruiter at Google. I&#8217;m not interested, but now I can die happy.]]></description>
				<content:encoded><![CDATA[<p>I just received an e-mail from a recruiter at Google.  I&#8217;m not interested, but now I can die happy.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/hot-damn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working Hard or Hardly Working?</title>
		<link>http://sirhc.us/working-hard-or-hardly-working/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=working-hard-or-hardly-working</link>
		<comments>http://sirhc.us/working-hard-or-hardly-working/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 22:17:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/04/17/working-hard-or-hardly-working/</guid>
		<description><![CDATA[Since joining Qualcomm, I now look forward to waking up and going to work every day. This snippet of a Jabber converstaion may shed some light on why I feel this way: (14:35:22) My Boss: You&#8217;re awfully quiet over there.(14:36:12) Me: that means i&#8217;m either working really hard, or trying not to get caught doing [...]]]></description>
				<content:encoded><![CDATA[<p>Since joining <a href="http://www.qualcomm.com/">Qualcomm</a>, I now look forward to waking up and going to work every day.  This snippet of a Jabber converstaion may shed some light on why I feel this way:<br />
<blockquote><span style="font-family: trebuchet ms;font-family:sans-serif;font-size:8pt;"><span style="color:#cc0000;">(14:35:22) <span style="font-weight: bold;">My Boss:</span></span> You&#8217;re awfully quiet over there.<br /><span style="color:#204a87;">(14:36:12) <span style="font-weight: bold;">Me:</span></span> that means i&#8217;m either working really hard, or trying not to get caught doing something i shouldn&#8217;t be.<br /><span style="color:#cc0000;">(14:36:42) <span style="font-weight: bold;">My Boss:</span></span> either one works for me</span></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/working-hard-or-hardly-working/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All is Quiet&#8230;</title>
		<link>http://sirhc.us/all-is-quiet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=all-is-quiet</link>
		<comments>http://sirhc.us/all-is-quiet/#comments</comments>
		<pubDate>Thu, 13 Apr 2006 18:52:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/04/13/all-is-quiet/</guid>
		<description><![CDATA[I haven&#8217;t received a response to the e-mail I sent to my former supervisor last night. I suppose that&#8217;s a good thing. Perhaps he finally took the hint and gave up pleading with me to fix their mess. The funny thing is, before he sent that second message, I had intended to contact him after [...]]]></description>
				<content:encoded><![CDATA[<p>I haven&#8217;t received a response to the e-mail I sent to my former supervisor last night.  I suppose that&#8217;s a good thing.  Perhaps he finally took the hint and gave up pleading with me to fix their mess.  The funny thing is, before he sent that second message, I had intended to contact him after work yesterday.  His loss, I guess.</p>
<p>I kept my response civil and professional&mdash;no small feat after his message.  I simply put forth my position and, in no uncertain terms, stated that their problems are no longer my responsibility.</p>
<p>I believe I know why it was implied that this is somehow my doing.  In an attempt to bring the web server back up, their consultant has been looking at the wrong configuration file, one I thought I had removed months ago.  Of course the system will look broken if the wrong configuration file is used.  I imagine this led the consultant to assume I had deleted key files required to run the server.  My former supervisor probably gambled that this was indeed the case and attempted to scare me into swooping in to fix everything.  For his sake, I hope he doesn&#8217;t spend much time in Vegas.</p>
<p>I can&#8217;t help but think that the consultants themselves created most of the problems they&#8217;re experiencing.  I designed the web servers to use the standard Red Hat Linux 9 initialization process to automatically mount the NFS shares and to start up the Apache daemons on boot.  The mere fact that the web servers are no longer serving files leads me to believe that the actions of the consultants have broken something, possibly irreparably.</p>
<p>I&#8217;m not desperate enough for money that I would contract myself to do any more work for my former company.  After all, I had plenty of reasons for leaving.  All of this just reinforces those reasons.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/all-is-quiet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just When I Thought I Was Out&#8230;</title>
		<link>http://sirhc.us/just-when-i-thought-i-was-out/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=just-when-i-thought-i-was-out</link>
		<comments>http://sirhc.us/just-when-i-thought-i-was-out/#comments</comments>
		<pubDate>Thu, 13 Apr 2006 05:37:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/04/12/just-when-i-thought-i-was-out/</guid>
		<description><![CDATA[Today I received two voice mails and one e-mail from my old supervisor at Global Health Trax. I&#8217;m not sure if the second voice mail counts, as it was a verbatim reading of the e-mail. I&#8217;m sure the second voice mail and the e-mail count the same either way. In any case, he was asking [...]]]></description>
				<content:encoded><![CDATA[<p>Today I received two voice mails and one e-mail from my old supervisor at <a href="http://www.globalhealthtrax.com/">Global Health Trax</a>.  I&#8217;m not sure if the second voice mail counts, as it was a verbatim reading of the e-mail.  I&#8217;m sure the second voice mail and the e-mail count the same either way.  In any case, he was asking for my help with their <a href="http://chris-realm.blogspot.com/2006/04/inevitable.html">problem</a>.</p>
<p>The first message was reasonable enough.  He asked that I contact him to assist bringing the web site back on line.  The second message was when things got interesting.</p>
<p>The second message went from a reasoned plea for help, to an insinuation that I somehow deliberately caused these problems, to an attempt at invoking guilt, to a threat against my reputation, and finally to an offer to pay consulting fees.</p>
<p>Interesting.</p>
<p>Okay, I can understand the plea for help.  After all, I maintained the web site for a number of years.  In fact, prior to his contacting me, I had already offered to respond to any queries they sent via e-mail.  I&#8217;m insulted (but not surprised) that they would accuse me of masterminding all of this.  It probably makes them feel better to have a scapegoat.  They&#8217;ve done it to everyone who has left the IT department (Kristen, Todd, Evan, Larry, me); I was just unlucky enough to be the last to go (though it&#8217;s probably telling when a company slowly loses an entire department).  I don&#8217;t feel sorry for the people who constantly made my life miserable, from absurd programming requests to yelling at me until I got them done.  Uh oh, should I be worried about my reputation in the (sleazy MLM) industry?  Just to be sure my reputation wasn&#8217;t tarnished, I ran this by my current supervisor (who&#8217;s an awesome boss, by the way).  He found it hilarious and related a story of a similar experience in his past.  Whew, I was worried there for a second.  Now, consulting fees&#8230;</p>
<p>I really haven&#8217;t wanted to do any consulting work for my old company&mdash;and I told them as much when I left.  The job was psychologically draining (it&#8217;s amazing how much things have turned around for me in my new job); I didn&#8217;t like my coworkers; I was disgusted by the business; I despised the software I was writing; and, perhaps most importantly, for the last year I was in a position to observe how they treat their consultants.  Not to mention their former employees.</p>
<p>Shortly after Evan left the company, part of the software system broke.  It seems like a pattern, I know, but something was always breaking; the only thing keeping the system afloat was constant babysitting by Evan and myself.  Hard to believe we&#8217;d give that up, huh?  Actually, in this case something didn&#8217;t break so much as a business rule was suddenly changed and I didn&#8217;t know how to modify the system to support it.  Well, our old supervisor began demanding (through me) that Evan tell me how to accomplish the task.  He was incredulous that Evan wouldn&#8217;t drop everything he was doing (work for his new job, presumably) to help.  I think I&#8217;m getting it worse than Evan because now no one is left who knows the systems.  Perhaps if we had been treated better&#8230;</p>
<p>Ugh, I should have changed my cell phone number.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/just-when-i-thought-i-was-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inevitable</title>
		<link>http://sirhc.us/inevitable/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=inevitable</link>
		<comments>http://sirhc.us/inevitable/#comments</comments>
		<pubDate>Tue, 11 Apr 2006 03:04:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/04/10/inevitable/</guid>
		<description><![CDATA[When I left Global Health Trax on the twenty-second day of February I knew that eventually, without me, they would have catastrophic failures. There were too many single points of failure in the company. Evan was the only person who knew about the Windows-based systems. I was the only person who knew about the Linux-based [...]]]></description>
				<content:encoded><![CDATA[<p>When I left <a href="http://www.globalhealthtrax.com/">Global Health Trax</a> on the twenty-second day of February I knew that eventually, without me, they would have catastrophic failures.  There were too many single points of failure in the company.  Evan was the only person who knew about the Windows-based systems.  I was the only person who knew about the Linux-based systems.</p>
<p>After a few weeks I began to forget GHT, both the experience of working there (thankfully) and the potential issues following my departure.  Life was bliss, at least for me.</p>
<p>I received a call this morning from Mike, who had been taking up some of the slack I left.  One other single point of failure had failed.  The database and file server used by the web site had died.  Ouch.  They are pretty much up a creek without a paddle at this point.  They never did take my advice to purchase another server to provide redundancy.  At the time, they thought the server cost too much.  They would much rather waste money on a useless marketing VP.  I wonder how much money they have lost in sales with the web site down.  That server probably doesn&#8217;t seem very expensive any more.</p>
<p>While having dinner with my wife tonight, I received another call from Mike.  The poor guy was still in the office at 7:30 p.m.  Triaging server problems isn&#8217;t Mike&#8217;s job and I felt sorry for him, so I took the call.  He told me all three Linux servers had been brought from the data center in Ontario, CA to the office.  Then he handed me over to Arden, a Linux consultant they had contracted to manage the servers in my absence.  Apparently, Arden hadn&#8217;t managed the servers very well; three drives out of six in the RAID5 array had died.</p>
<p>After telling Arden there was no hope of rebuilding the array, he asked if I knew how the server was configured.  I didn&#8217;t really know, since that was Dirk&#8217;s job.  Unfortunately (for GHT), they had already called Dirk and he didn&#8217;t remember how the server was built at all.</p>
<p>So let me get this straight.  A $200 per month retainer plus a $60 per hour rate doesn&#8217;t buy a consultant who keeps records of what he&#8217;s done for a client?  I guess not.</p>
<p>As I write this, the web site is still down.  I assume the server died sometime over the weekend.  I have no idea how long it will take them to get things running again.  The ironic part is, they were due to completely scrap the old systems and go to an all new system any day now.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/inevitable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Moto</title>
		<link>http://sirhc.us/hello-moto/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hello-moto</link>
		<comments>http://sirhc.us/hello-moto/#comments</comments>
		<pubDate>Sun, 19 Mar 2006 04:19:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/03/18/hello-moto/</guid>
		<description><![CDATA[I have had my Kyocera 2235 for about three years. It is an ancient phone by today&#8217;s standards. My wife has had a Kyocera SE44 for a little over two years, and the battery life is abysmal. It was a nifty, different phone at first, but the novelty of the slider wore off quickly. We&#8217;ve [...]]]></description>
				<content:encoded><![CDATA[<p>I have had my <a href="http://www.kyocera-wireless.com/2200-phone/">Kyocera 2235</a> for about three years.  It is an ancient phone by today&#8217;s standards.  My wife has had a <a href="http://www.kyocera-wireless.com/slider-phone/">Kyocera SE44</a> for a little over two years, and the battery life is abysmal.  It was a nifty, different phone at first, but the novelty of the slider wore off quickly.</p>
<p>We&#8217;ve been out of our <a href="http://www.verizonwireless.com/">Verizon Wireless</a> contract for a few months and we&#8217;ve been talking about signing a new contract and getting fancy new phones.  I&#8217;ll be getting a phone from work, so I wasn&#8217;t sure if I wanted to continue to have a personal phone.  As it turns out, it&#8217;s not much more expensive to have a family plan with two phones than it is to have a single phone; also, one of the phones I liked was on sale, 2-for-1 as well as a $50 rebate.  So I was sold.  My wife and I both now have the <a href="http://www.motorola.com/motoinfo/product/details/0,,69,00.html">Motorola Razr</a>.</p>
<p>I&#8217;ve put off buying a new phone for so long.  I never liked the idea of a phone being more than a phone, and it&#8217;s becoming increasingly difficult to find phones without cameras or some other gimmick.  However, my resistance to the idea has finally disappeared.  The Razr really is a pretty sweet phone, even if it does seem like all the trendy people I hate so much are buying it in droves.  After using archaic technology for so long, the large color screen and downloadable applications are really impressive.</p>
<p>Until tonight, I never understood why people would set their ringer to music.  These new phones have so much more than the electronic chirps of my old phone.  I set my ringer to &#8220;latin dance&#8221; and had so much fun browsing the ring tones available for download.  I had hoped to find <a href="http://en.wikipedia.org/wiki/Star_Wars_Imperial_March">The Imperial March</a>, but struck out.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/hello-moto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>North Carolina, Day Five</title>
		<link>http://sirhc.us/north-carolina-day-five/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=north-carolina-day-five</link>
		<comments>http://sirhc.us/north-carolina-day-five/#comments</comments>
		<pubDate>Sat, 18 Mar 2006 08:21:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/03/18/north-carolina-day-five/</guid>
		<description><![CDATA[Finally, my trip to North Carolina is over. It&#8217;s not that I didn&#8217;t like North Carolina; quite the opposite, I really enjoyed what little of the state I experienced. Still, it has been a long week and I&#8217;m glad to be home. I&#8217;m disappointed that I wasn&#8217;t able to try any of the restaurants or [...]]]></description>
				<content:encoded><![CDATA[<p>Finally, my trip to North Carolina is over.  It&#8217;s not that I didn&#8217;t like North Carolina; quite the opposite, I really enjoyed what little of the state I experienced.  Still, it has been a long week and I&#8217;m glad to be home.  I&#8217;m disappointed that I wasn&#8217;t able to try any of the restaurants or visit any of the places that were recommended to me by friends, but I expect this won&#8217;t be the last time I&#8217;ll be sent to RTP.</p>
<p>We repeated Thursday&#8217;s presentation to an attendance of only three.  While the turnout could have been better, the interactivity with those who did attend was excellent.  Over two sessions, based on questions from the audience, I took three pages of notes on improving the presentation or adding features to our API.  All in all, I think it was very worthwhile.</p>
<p>Getting home could have gone better.  It wasn&#8217;t all that bad, but I was tired and was faced with several hours of flying between me and my bed.  Our flight from Raleigh-Durham to Dallas-Ft. Worth, initially departing at 4:53 PM, was delayed until 6:15 PM.  Unlike my co-workers, I didn&#8217;t have an EV-DO for my notebook, so I could spend the extra time checking my e-mail&mdash;not to say that&#8217;s a bad thing.  Strangely, while I was stuffed into seat 29F&mdash;again in one of those terribly uncomfortable McDonnell Douglass S80&mdash;my co-workers had a wonderful flight up in first class.  Oh well, at least I got some sleep.</p>
<p>We landed at Dallas-Ft. Worth at 8:38 PM&mdash;three minutes after our connecting flight left for San Diego.  Fortunately, there was another flight leaving for San Diego at 9:52 PM and we were able to get seats on it.  One of my coworkers managed to be bumped to first class again, but this time I was able to get seat 20D, exit row aisle.  We were in another McDonnell Douglass S80, but this one had been recently refurbished.  The seats were new and comfortable and the leg room in the exit row was vast.  If you have even moderately long legs and you know you&#8217;ll be flying on one of these awful S80s, try to get a seat in the exit row.  It turns the flight from unbearable to comfortable.</p>
<p>After we had checked in for our San Diego flight in Dallas and settled into the terminal to wait, I looked up and saw Dickey&#8217;s Barbeque Pit.  I suddenly realized how hungry I was and, entering the restaurant, the fragrance of the barbeque instantly made my mouth water.  I don&#8217;t know if the food was really good or if it was only because I was really hungry, but the barbeque brisket sandwich and pecan pie were amazing.</p>
<p>It&#8217;s good to be home.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/north-carolina-day-five/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>North Carolina, Day Four</title>
		<link>http://sirhc.us/north-carolina-day-four/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=north-carolina-day-four</link>
		<comments>http://sirhc.us/north-carolina-day-four/#comments</comments>
		<pubDate>Fri, 17 Mar 2006 02:41:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/03/16/north-carolina-day-four/</guid>
		<description><![CDATA[My first business trip has been exhausting. In the days leading up to this trip, I was excited. I&#8217;ve never visited North Carolina, and I&#8217;ve heard from one friend in particular who loved living in the Raleigh/Durham/Chapel Hill area. I had hoped to see some of the sights and experience some of the local culture. [...]]]></description>
				<content:encoded><![CDATA[<p>My first business trip has been exhausting.  In the days leading up to this trip, I was excited.  I&#8217;ve never visited North Carolina, and I&#8217;ve heard from one friend in particular who loved living in the Raleigh/Durham/Chapel Hill area.  I had hoped to see some of the sights and experience some of the local culture.  Unfortunately, there wasn&#8217;t much time for any of that.  Each night I worked into the wee hours of the morning on the slides for our training sessions.</p>
<p>When setting out on the project to proofread and provide input on the slides used in our training sessions, I never expected for it to take as long as it did.  The presentation still needs work, but the concensus seems to be that my changes have done much to help the overall performance as it were.  Good thing, too; we really wanted to come out to North Carolina and impress our long-distance co-workers.  Hopefully we didn&#8217;t entirely miss the mark.</p>
<p>During my first week at Qualcomm&mdash;only two weeks ago!&mdash;I attended the training session which I am now helping to deliver.  Immediately, I formed a vision of what I thought would be the &#8220;perfect&#8221; presentation.  Much of what I feel a presentation should be came from a talk I attended last August, given by <a href="http://www.csse.monash.edu.au/~damian/">Damian Conway</a>.  He was so dynamic and entertaining, yet informative at the same time.  Incidently, Damian was in town to present a couple of his talks at Qualcomm, to the very people who are now my co-workers.  With that in mind, I set out to redesign our presentation.</p>
<p>It was a lot of work.</p>
<p>It&#8217;s still not perfect.</p>
<p>In truth, I doubt it will ever be, no matter how much effort I expend.  There will always be a detail to polish or an aside to add.  That is part of what makes it fun.</p>
<p>The rest of what makes it fun is the performance.  I only presented one-sixth of the slides to the attendees, but I feel I made it as dynamic, entertaining, and informative as possible with as little preparation&mdash;and as little sleep&mdash;as I had.  I even have an entire page of notes, took during the performance, detailing ways to improve the presentation.</p>
<p>Unfortunately, I won&#8217;t be applying any of my ideas to the presentation prior to our next performance, which happens to be tomorrow.  I&#8217;m far too tired to do it right, and I don&#8217;t want to surprise the rest of my team.  No, I&#8217;ll just create a snapshot of this presentation, post it on our wiki, and save the improvements for another time and place.</p>
<p>Tonight we were treated to dinner at <br /><a href="http://www.neo-china.com/">Neo China</a> in Cary, a short drive from the facility at RTP.  The food wasn&#8217;t very good.  At least, I didn&#8217;t care for it; but, I wasn&#8217;t very hungry.  I had asked if it was family style, as Chinese restaurants tend to be, and was told it wasn&#8217;t.  The waitress even took all of our orders individually.  Well, it turned out to be family style, and the large plate of orange chicken I ordered mostly went to waste.  I seem to have made the mistake of eating some of the charred orange peel that was mixed in with the chicken; at least, I think that&#8217;s what I ate.  I have a short list of restaurants recommended to me by friends who have lived here in the past, but it seems these will have to wait until I return some day.</p>
<p>I am looking forward to getting a full night of sleep tonight, and to returning home tomorrow.  I won&#8217;t set foot inside my house until 10:30 p.m., but it will be good to see my wife, my cats, and my own bed again.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/north-carolina-day-four/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>North Carolina, Day Three</title>
		<link>http://sirhc.us/north-carolina-day-three/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=north-carolina-day-three</link>
		<comments>http://sirhc.us/north-carolina-day-three/#comments</comments>
		<pubDate>Thu, 16 Mar 2006 06:35:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/03/15/north-carolina-day-three/</guid>
		<description><![CDATA[I really need to start getting more sleep on this trip. Going to bed at 2:00 a.m. and getting out of bed at 6:00 a.m. is growing old. Thus far, I&#8217;ve remained awake at night to do the work that the daily meetings are preventing me from accomplishing. After tonight, I will have put the [...]]]></description>
				<content:encoded><![CDATA[<p>I really need to start getting more sleep on this trip.  Going to bed at 2:00 a.m. and getting out of bed at 6:00 a.m. is growing old.  Thus far, I&#8217;ve remained awake at night to do the work that the daily meetings are preventing me from accomplishing.  After tonight, I will have put the work behind me.</p>
<p>Tonight I need to finish the slides we will be using in our training sessions on Thursday and Friday.  I don&#8217;t know how much of the presentation I will handle, but I&#8217;m pretty excited at the prospect, considering this is only my third week on the job.</p>
<p>We ended up going back to NCSU for lunch today, after a failed attempt to find our way to Chapel Hill.  Four dollars and thirty-one cents at the Farmhouse bought me two slices of some of the best New York style pepperoni pizza I&#8217;ve ever tasted and a soda.  Hey Rachael Ray, I still have $35.69.</p>
<p>We did a bit better for dinner.  A couple of the locals recommended <a href="http://www.stonewoodgrill.com/html/index.html">Stonewood Grill &amp; Tavern</a>.  I&#8217;m glad they did.  Our waitress&mdash;the first accent I&#8217;ve heard on this trip&mdash;recommended the swordfish bruschetta.  Excellent.  The fish was grilled just right while the bruschetta and balsamic reduction complemented it perfectly.</p>
<p>As anyone who has had my acquaintance for more than five minutes knows, I love microbrews.  If nothing else, this trip has presented me with the opportunity to sample local beers I otherwise would never discover.  Tonight, with dinner, I enjoyed two pints of <a href="http://www.redoakbrewery.com/brewery/beers/">Red Oak</a>.  It was fantastic.  I&#8217;ll keep watch for a growler I can ship home as a souvenir of this trip.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/north-carolina-day-three/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>North Carolina, Day Two</title>
		<link>http://sirhc.us/north-carolina-day-two/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=north-carolina-day-two</link>
		<comments>http://sirhc.us/north-carolina-day-two/#comments</comments>
		<pubDate>Wed, 15 Mar 2006 06:32:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/03/14/north-carolina-day-two/</guid>
		<description><![CDATA[Flying from one coast of the United States to the other for a business trip can be brutal. Under normal circumstances, one might have the opportunity to gradually recover from the three hour time shift. Perhaps by sleeping late or napping throughout the day. The same is not true for business trips. Still operating well [...]]]></description>
				<content:encoded><![CDATA[<p>Flying from one coast of the United States to the other for a business trip can be brutal.  Under normal circumstances, one might have the opportunity to gradually recover from the three hour time shift.  Perhaps by sleeping late or napping throughout the day.  The same is not true for business trips.</p>
<p>Still operating well within the Pacific time zone, I didn&#8217;t go to bed until 1:00 a.m. this morning.  Incidently, the beds here at the Marriott are amazingly comfortable.  We got an early start today, so I was out of bed at 6:00 a.m.  In my world, that is really 3:00 a.m.  Believe me, it felt like 3:00 a.m.  At times, I barely managed to stay awake through our morning meetings.  Fortunately, by early afternoon my circadian rhythms caught up to me and I had come fully awake.</p>
<p>Lunch was a real treat.  Our host brought in authentic North Carolina barbeque.  I wasn&#8217;t thrilled with the ribs, but the pulled pork, fried okra, and hush puppies were wonderful.</p>
<p>Nothing special for dinner tonight.  We were tired and wanted nothing more than to return to the hotel.  Following a brief meal at Moe&#8217;s Southwestern Grill, we retired to the Marriott&#8217;s concierge room to recap the day&#8217;s meetings and prepare for tomorrow&#8217;s.</p>
<p>I don&#8217;t know how much time passed, but I finally had to excuse myself.  I wasn&#8217;t participating in the conversation and I had a presentation to prepare.  Four cups of coffee and four hours later, I managed to have the existing presentation proofed and about a third of the slides reworked.</p>
<p>I still have the better part of three days in North Carolina.  Hopefully I&#8217;ll get another chance to explore the area.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/north-carolina-day-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>North Carolina, Day One</title>
		<link>http://sirhc.us/north-carolina-day-one/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=north-carolina-day-one</link>
		<comments>http://sirhc.us/north-carolina-day-one/#comments</comments>
		<pubDate>Tue, 14 Mar 2006 04:27:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/03/13/north-carolina-day-one/</guid>
		<description><![CDATA[Today not only heralded my third week as an employee of Qualcomm, but my first business trip as well. So far it has been an exciting experience. After a mere two hours of sleep (thanks to a late flight returning home from Phoenix), I boarded a 6:30 a.m. flight from San Diego to Dallas/Fort Worth. [...]]]></description>
				<content:encoded><![CDATA[<p>Today not only heralded my third week as an employee of Qualcomm, but my first business trip as well.  So far it has been an exciting experience.</p>
<p>After a mere two hours of sleep (thanks to a late flight returning home from Phoenix), I boarded a 6:30 a.m. flight from San Diego to Dallas/Fort Worth.  After a chopped brisket sandwich at Cousins Bar-B-Q, I boarded another flight to Raleigh/Durham.  The aircraft for both legs of the trip were McDonnell Douglas MD-80s.  As anyone who has been aboard one of these dinosaurs can attest, little attention is paid to leg- or elbow-room.  The flights were uncomfortable, but I nevertheless managed to nap and arrived refreshed in North Carolina at 4:00 p.m.</p>
<p>I was supposed to have dinner with our hosts, but at the last minute dinner became a managers meeting, leaving me to fend for myself.  Not content with the nearby fast food, I insisted on driving until I found local flair.  I spent some time lost in the town of Cary, but eventually found my way to North Carolina State University where I had dinner at Porter&#8217;s Tavern, across the street from the university proper.  Appropriately, I sampled a local porter which I found very tasty.  The fresh fish was also quite good.  Perusing the menu I noticed the food, while not very different from what can be found in California, is prepared in a subtley different manner.  I can&#8217;t quite put my finger on it, but I will detail this further as the week progresses and I have sampled more of the local cuisine.</p>
<p>After dinner, I walked the length of the business district bordering the university campus.  Colleges, like so much else in the eastern United States, differ from their western counterparts.  UCSD, for instance, can be considered a small city unto itself; separate and distinct from the city in which the Post Office would claim it resides.  In the east, particularly those colleges I saw scattered throughout the city of Boston, there is a natural blending.  On any given street, a handful of buildings could be classrooms, university offices, even dormitories.  Here on the east coast, colleges and cities have a symbiotic relationship; they are not the Frostian neighbors that are found on the west coast.  I find this creates an unique sort of town.  The combination of old America and prevalent student life gives these towns an atmosphere not found on the west coast.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/north-carolina-day-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And Then There Were None</title>
		<link>http://sirhc.us/and-then-there-were-none/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=and-then-there-were-none</link>
		<comments>http://sirhc.us/and-then-there-were-none/#comments</comments>
		<pubDate>Fri, 17 Feb 2006 00:26:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/02/16/and-then-there-were-none/</guid>
		<description><![CDATA[As everyone is now aware, my last day at Global Health Trax is fast approaching. What few people expected was for GHT to lose both of their programmers in the span of a week. Allow me to explain. Since January of last year, GHT has had two programmers, Evan and myself. Evan&#8217;s responsibility was the [...]]]></description>
				<content:encoded><![CDATA[<p>As everyone is now aware, my last day at <a href="http://www.globalhealthtrax.com/">Global Health Trax</a> is fast approaching.  What few people expected was for GHT to lose both of their programmers in the span of a week.</p>
<p>Allow me to explain.</p>
<p>Since January of last year, GHT has had two programmers, Evan and myself.  Evan&#8217;s responsibility was the Windows-based software and database; mine was the Linux-based web sites.  This was the norm until November.  On the 29th of November, Evan reported to work for the last time.  After that, I was on my own with the Windows-based software.  Not very pleasant for me, but not very difficult, either.</p>
<p>A couple of weeks after Evan&#8217;s departure, Art had me interview Larry as a replacement.  Poor Larry was hired against my recommendation.  He was obviously not a Windows programmer, but that&#8217;s what we hired him to do.</p>
<p>Larry was fired today.  Ouch.</p>
<p>To add insult to injury, the human resources manager has an e-mail template she uses to announce someone&#8217;s departure to the entire company.  One I&#8217;ve never known her to use except when an employee is let go for less than amicable reasons.  In any case, her messages always read,<br />
<blockquote>Hi Everyone,</p>
<p>Alice is no longer an employee of GHT, but we wish her the best in her future endeavors.</p>
<p>Thanks,<br />Kristen</p></blockquote>
<p>Obviously, this message isn&#8217;t sent until after she has had the chance to escort the terminated employee out of the building.  Wouldn&#8217;t want anyone to catch wind of their imminent separation from a steady paycheck.</p>
<p>That&#8217;s how I knew Larry had been fired.  He had been summoned upstairs by a phone call.  This by itself is not unusual, so I thought nothing of it at the time.  When he returned, he was accompanied by Kristen, who hovered over him as he gathered his personal belongings.  Then, just like that, they were gone.  My cage suddenly felt very quiet and lonely.</p>
<p>I never liked Larry much, and I didn&#8217;t feel he was the most competent of programmers.  I&#8217;ve been told that he broke more things than he fixed.  Still, I find it interesting that GHT would want to go from two programmers to none so quickly.  I imagine they have a backup plan in mind that involves consultants.  I can only guess at what disasters that will cause.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/and-then-there-were-none/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hallelujah</title>
		<link>http://sirhc.us/hallelujah/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hallelujah</link>
		<comments>http://sirhc.us/hallelujah/#comments</comments>
		<pubDate>Tue, 14 Feb 2006 19:16:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/02/14/hallelujah/</guid>
		<description><![CDATA[I am absolutely euphoric right now. I have just accepted an offer from Qualcomm. Senior IT Engineer. I don&#8217;t know what I will be doing just yet. Only that it involves Perl and support of Qualcomm&#8217;s chip engineers. My last day here at Global Health Trax is the 22nd. A little over a week away. [...]]]></description>
				<content:encoded><![CDATA[<p>I am absolutely euphoric right now.</p>
<p>I have just accepted an offer from <a href="http://www.qualcomm.com/">Qualcomm</a>.  Senior IT Engineer.  I don&#8217;t know what I will be doing just yet.  Only that it involves Perl and support of Qualcomm&#8217;s chip engineers.</p>
<p>My last day here at <a href="http://www.globalhealthtrax.com/">Global Health Trax</a> is the 22nd.  A little over a week away.  That should be enough time to put together some documentation so that I don&#8217;t leave them completely high and dry.  I was tempted not to give any notice at all, and I certainly didn&#8217;t want to give a full two weeks.</p>
<p>Since I stopped telecommuting and started working in the office in January 2005, I have been miserable.  Every day, all I can think about is how much I hate my job.</p>
<p>The IT department constantly got short shrift.  Requests for new servers were met with incredulous stares.  We were moved so the VP (&#8220;America&#8217;s Video Coach&#8221;) could have a video room.  Then we were moved again to a corner of the warehouse, where a cage door was put in place for fake security.  Our warehouse location was adjacent to the training room, so I got to listen to our binary plan pitched in Spanish all the time.</p>
<p>The business model made me feel dirty and worthless.  I wrote programs that enabled our distributors to get paid for doing very little.  As I met other programmers in the small business network marketing industry, I realized that very little talent is attracted to the market.  I spent my time wondering how I ended up here.</p>
<p>I can&#8217;t stand most of my coworkers.  I&#8217;m not sure how many of them have even completed high school.  Companies have to pay for talent, and I guess we wanted to save money.</p>
<p>I can&#8217;t wait to leave.  I&#8217;m never looking back.</p>
<p>Qualcomm, on the other hand, excites me.  I told Evan once that I had an offer from a professor in college to be his graduate student and work with high performance compute clusters.  How did I end up doing web programming for a network marketing company?  Suddenly, my dream has come true.  I&#8217;ll be working for the company that <span style="font-style:italic;">Forutne</span> rated the 23rd best company to work for in 2006 and is number 381 on the <span style="font-style:italic;">Forutne</span> 500 in 2006.  Not only that, but I will be directly involved in support of a high performance compute cluster.  It took me over six years, but I&#8217;m finally going to be doing what I&#8217;ve wanted to do since I graduated.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/hallelujah/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smoke &amp; Mirrors</title>
		<link>http://sirhc.us/smoke-mirrors/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=smoke-mirrors</link>
		<comments>http://sirhc.us/smoke-mirrors/#comments</comments>
		<pubDate>Tue, 24 Jan 2006 18:00:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/01/24/smoke-mirrors/</guid>
		<description><![CDATA[Imagine, if you will. You get out of bed and arrive at the gym before the sun has poked its head over the horizon. You hit those free weights like they&#8217;ve just insulted your mother. Feeling spent, you sit on a stationary bike to really wear yourself out. Just then, someone hops on the stairclimber [...]]]></description>
				<content:encoded><![CDATA[<p>Imagine, if you will.  You get out of bed and arrive at the gym before the sun has poked its head over the horizon.  You hit those free weights like they&#8217;ve just insulted your mother.  Feeling spent, you sit on a stationary bike to really wear yourself out.  Just then, someone hops on the stairclimber behind you.  Only they&#8217;ve been smoking.  What a way to stop short a good workout.  The reek drove me away.</p>
<p>I hate smokers.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/smoke-mirrors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drawn and Quartered</title>
		<link>http://sirhc.us/drawn-and-quartered/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=drawn-and-quartered</link>
		<comments>http://sirhc.us/drawn-and-quartered/#comments</comments>
		<pubDate>Wed, 11 Jan 2006 01:48:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2006/01/10/drawn-and-quartered/</guid>
		<description><![CDATA[There&#8217;s just something about Vegas. Something magical. Something that can only be experienced. I feel this when, after hours of driving, I finally see the Strip hotels in the distance. I can&#8217;t wait for the assault on my senses as I set foot into the casino at my hotel. This time something was missing. Try [...]]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s just something about Vegas.  Something magical.  Something that can only be experienced.  I feel this when, after hours of driving, I finally see the Strip hotels in the distance.  I can&#8217;t wait for the assault on my senses as I set foot into the casino at my hotel.</p>
<p>This time something was missing.</p>
<p>Try as I might, I could not hear that sweet cacophony of coins falling from the slot machines!</p>
<p>I frantically examined every quarter slot I could find.  All of them had their coin slot welded shut.  My bag of quarters would go unplayed.  I was sad.</p>
<p>It&#8217;s not that I particularly enjoy the losing experience of slot machines; but, when I&#8217;ve been on my feet all day, I find it enjoyable to drop in a few quarters and watch the wheels spin.  I&#8217;m not about to put real, paper money into those one-armed bandits.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/drawn-and-quartered/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Priorities</title>
		<link>http://sirhc.us/priorities/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=priorities</link>
		<comments>http://sirhc.us/priorities/#comments</comments>
		<pubDate>Mon, 26 Dec 2005 17:41:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2005/12/26/priorities/</guid>
		<description><![CDATA[Dragging myself out of bed at 5:30 A.M., I manage to arrive at the gym by 5:45 A.M. My gym is located at the local shopping mall. Arriving as early as I do, there tends to be a small group of cars parked near the gym while the rest of the parking lot is deserted. [...]]]></description>
				<content:encoded><![CDATA[<p>Dragging myself out of bed at 5:30 A.M., I manage to arrive at the gym by 5:45 A.M.  My gym is located at the local shopping mall.  Arriving as early as I do, there tends to be a small group of cars parked near the gym while the rest of the parking lot is deserted.  Today was a bit different.</p>
<p>I did not find the usual parking lot devoid of cars.  Instead, the lot was fully one-third full, though far fewer cars than usual were parked by the gym.  While normally open 24 hours, the gym would be opening at 6:00 A.M. on this, the day after Christmas.  That was only a few minutes away, so I waited with about seven other people for the gym to open.  Nearby, however, a large crowd of people were awaiting the 6:00 A.M. opening of the department store.</p>
<p>Crazy world, no?</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/priorities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now I&#8217;ve Gone and Done It</title>
		<link>http://sirhc.us/now-ive-gone-and-done-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=now-ive-gone-and-done-it</link>
		<comments>http://sirhc.us/now-ive-gone-and-done-it/#comments</comments>
		<pubDate>Fri, 16 Dec 2005 03:59:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2005/12/15/now-ive-gone-and-done-it/</guid>
		<description><![CDATA[That&#8217;s right, as anyone reading this (does anyone read this?) will have noticed, I&#8217;ve started a blog. I can no longer ridicule those who have blogs for I have now sunk (risen?) to their level. Well, I can, but I must be sure to include myself in such ridicule. There are two real reasons I [...]]]></description>
				<content:encoded><![CDATA[<p>That&#8217;s right, as anyone reading this (does anyone read this?) will have noticed, I&#8217;ve started a blog.  I can no longer ridicule those who have blogs for I have now sunk (risen?) to their level.  Well, I can, but I must be sure to include myself in such ridicule.</p>
<p>There are two real reasons I waited so long to jump on this particular bandwagon.  First, I had nothing to say that I could imagine <span style="font-style:italic;">anyone</span> wanting to read.  Second, I have a tendency to want to do everything myself, from hosting the blog myself to coding the guts of the blog myself.  So what changed?</p>
<p>Anyone following my posts to this point can probably guess.  I attended ApacheCon.  Finally, the mental stimulation I so sorely lack at my day job.  Now, ideas come to me; ideas on which I am able elaborate in text for the world to read.  Also, I observed someone posting to his Blogger account (he happened to be using a Powerbook).  Why build something substandard from scratch when this Blogger thing does everything I want and does it well?  Sure, at one time in my life I may have considered it an interesting project, but today I don&#8217;t feel that reimplementing something that&#8217;s already been done well is very interesting.  I will save what little talent I have remaining for something interesting and novel.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/now-ive-gone-and-done-it/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Suffer Fools Gladly</title>
		<link>http://sirhc.us/suffer-fools-gladly/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=suffer-fools-gladly</link>
		<comments>http://sirhc.us/suffer-fools-gladly/#comments</comments>
		<pubDate>Fri, 16 Dec 2005 03:04:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2005/12/15/suffer-fools-gladly/</guid>
		<description><![CDATA[For ye suffer fools gladly, seeing ye yourselves are wise. &#8211; II Corinthians 11:19 Wise I am not, for gladly suffer fools I do not.]]></description>
				<content:encoded><![CDATA[<blockquote><p>  For ye suffer fools gladly, seeing ye yourselves are wise.</p>
<p>  &#8211; II Corinthians 11:19</p></blockquote>
<p>Wise I am not, for gladly suffer fools I do not.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/suffer-fools-gladly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java, Java Everywhere, Nor Any Drop to Drink</title>
		<link>http://sirhc.us/java-java-everywhere-nor-any-drop-to-drink/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-java-everywhere-nor-any-drop-to-drink</link>
		<comments>http://sirhc.us/java-java-everywhere-nor-any-drop-to-drink/#comments</comments>
		<pubDate>Thu, 15 Dec 2005 04:29:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2005/12/14/java-java-everywhere-nor-any-drop-to-drink/</guid>
		<description><![CDATA[I&#8217;ve mentioned previously that ApacheCon could be rebranded as JavaCon and few people would notice (well, maybe JavaWebCon). While only 33 of the 68 sessions were specifically about Apache projects written in Java, the dominant technology in use among the members of the Apache Software Foundation is undoubtedly Java. In fact, in a session on [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve <a href="http://chris-realm.blogspot.com/2005/12/apachecon-2005-day-2.html">mentioned previously</a> that ApacheCon could be rebranded as JavaCon and few people would notice (well, maybe JavaWebCon).  While only 33 of the 68 sessions were specifically about Apache projects written in Java, the dominant technology in use among the members of the Apache Software Foundation is undoubtedly Java.  In fact, in a session on extending SpamAssassin with plugins&mdash;a project written in Perl&mdash;the presenter jokingly asked if anyone was rewriting SpamAssassin in Java.  Don&#8217;t get me wrong, a lot of these Java projects are amazing.  I don&#8217;t know how Java gained such prevalence in the ASF, but it has.</p>
<p>Interestingly enough, the most popular session at ApacheCon was not about Java, but about Ruby on Rails.  It was standing room only.  This seems to go along with the hype this project has gained over the last several months.  In the hall outside the presentation room, one developer, obviously biased towards Java, snidely commented that Ruby on Rails was a fascinating toy and something to be expected from a scripting language, but would never be as robust as the type-safe Java.</p>
<p>For all of its hype, Ruby on Rails still doesn&#8217;t hold a candle to the popularity of PHP as a scripting language for the Web.  In fact, I would guess that the population of PHP coders at ApacheCon was second only to the population of Java coders.</p>
<p>I am not anti-Java or anti-Ruby or anti-PHP (well, maybe slightly anti-PHP, but that&#8217;s another rant).  If people want to code Web applications or whatever else with these languages, more power to them.  However, I am a Perl monger.  I&#8217;ve been a Perl monger since I first discovered Perl 4 in 1995 and I&#8217;m likely to be a Perl monger for a very long while yet.  So where is Perl?  Where are all the Perl mongers?  Jumping ship or hiding in caves, I imagine.  For good reason, too.</p>
<p>To put things in perspective, a short review of history is required.  Apache HTTPD 2.0 was released from beta on 6 April 2002.  Following this, mod_perl 2.0 was released from beta on 19 May 2005.  That&#8217;s right, over three years later!  To make matters worse, in order to ship the latest and greatest version of Apache HTTPD, various revisions of mod_perl 1.99 were included in Red Hat Linux 8 through Fedora Core 3 and is even still being distributed with Red Hat Enterprise Linux 4.2.  Oh, but it gets worse still.  The these revisions of mod_perl all come from before the great API shakeup in the final release candidate of mod_perl 2.0.  To maintain compatibility, RHEL can not even ship the latest stable version of mod_perl 2.0.  Now, would you use mod_perl?</p>
<p>What happened in these three years?  Well, a lot happened.  For other technologies.</p>
<p>Web Application Framework is now all the rage.  To this end, PHP 5 was released and Ruby on Rails became the Next Big Thing (also, even more Java projects were under the ASF umbrella).  Meanwhile, developers using mod_perl weren&#8217;t doing anything they hadn&#8217;t already done with Apache HTTPD 1.3.  Prominent mod_perl developers stated (and still state today) that they have not moved to Apache HTTPD 2.0 because there are no compelling reasons for them to do so.  Mason, my template engine of choice, only recently added support for mod_perl 2.0.  Bricolage, a wonderful CMS that I&#8217;d like to use, still only runs under Apache HTTPD 1.3 because mod_perl 2.0 took so long to release.  Sure, I could just build Apache HTTPD 1.3 from source, but why?  Apache HTTPD 2.0 as well as mod_perl 2.0 are already included in Fedora Core 4, and why should I install an older and inferior version of something when I already have the newer, better version?</p>
<p>There are two things that frustrate me even more than the delay in shipping mod_perl 2.0.  First, the API change in release 1.999_22 (the fifth release candidate!) was awful.  Admittedly, it was for the best and it was a simple task for me to update my code, which had not yet been released.  However, to do this so late in the development cycle only hindered acceptance and, as I have already mentioned, have kept distributions such as RHEL from upgrading to the latest version.  Second, when asked how much longer before a mod_perl 2.0 release, the lead developers merely say it would be done when it was done and if people would use it then it would be finished faster.  Okay, I can see why they would say that, and the developer in me even agrees with them; however, this does not make for good relations with the people using the software.  It becomes a cyclic argument: no one uses it because it&#8217;s not done, but it&#8217;s not done because no one uses it.</p>
<p>Now that mod_perl 2.0 has finally been released, there have been recent attempts to catch PHP and Ruby.  Catalyst is one such attempt.  Thus far, I see it gaining hype, but only in the Perl community.  As yet, I don&#8217;t see the cross-spectrum popularity that PHP or Ruby on Rails enjoy.  It still feels that many Perl developers are either using plain CGI or rolling their own frameworks, just like we did in the pre-2.0 days.  I imagine much of this is due to one of Perl&#8217;s guiding philosophies: There Is More Than One Way To Do It.  While this approach is one of the reasons I came to Perl in the first place, it tends to litter CPAN with various ways of doing something that isn&#8217;t quite what is needed.</p>
<p>In those three years before mod_perl 2.0 was finally released, I grew discouraged with Perl.  I started to feel like I wasn&#8217;t using a &#8220;real&#8221; programming language like those guys using Java or .NET.  In August, Damian Conway gave his talk on <span style="font-style:italic;">Life, the Universe and Everything</span> to my local Perl Mongers group.  Suddenly Perl was fun again.  I remembered why I was a Perl monger.</p>
<p>So, with all of this, what is a poor Perl Web developer to do?</p>
<p>Don&#8217;t get discouraged.  Keep on coding.  Get involved!</p>
<p>If enough people jump on the Catalyst bandwagon, maybe Catalyst will be the Next Big Thing at ApacheCon 2006.</p>
<p>Meanwhile, I have some Perl hacking to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/java-java-everywhere-nor-any-drop-to-drink/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Do You Yahoo!?</title>
		<link>http://sirhc.us/do-you-yahoo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=do-you-yahoo</link>
		<comments>http://sirhc.us/do-you-yahoo/#comments</comments>
		<pubDate>Thu, 15 Dec 2005 00:06:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2005/12/14/do-you-yahoo/</guid>
		<description><![CDATA[I&#8217;m excited. I finally feel that I&#8217;ve gotten something out of ApacheCon. I just attended two sessions, &#8220;Hacking Apache HTTP Server at Yahoo!&#8221; (Michael Radwin) and &#8220;Building Scalable Web Architectures&#8221; (Aaron Bannert). The presentations were interesting and, most importantly, got the wheels inside my head turning. Unfortunately, as usual my excitement is destined to be [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m excited.  I finally feel that I&#8217;ve gotten something out of ApacheCon.  I just attended two sessions, &#8220;Hacking Apache HTTP Server at Yahoo!&#8221; (Michael Radwin) and &#8220;Building Scalable Web Architectures&#8221; (Aaron Bannert).  The presentations were interesting and, most importantly, got the wheels inside my head turning.</p>
<p>Unfortunately, as usual my excitement is destined to be short-lived.  I will never get the opportunity to execute any of my ideas at my company.  However, that&#8217;s a story for another entry.</p>
<p>Michael pointed out during his talk how excited he was that the legal department at Yahoo! had allowed him to present his talk on their yapache (pronounced why-yahoo) project.  This is fascinating to me.  Google, arguably the most successful Internet company&mdash;quite possibly one of the most successful companies in recent memory&mdash;is so open in comparison.  Perhaps this is why Michael was permitted to present his talk; perhaps Yahoo! is attempting to make a name for itself in the Open Source community, nipping at the heels of Google.</p>
<p>I will shortly be attending another session presented by Aaron Bannert, &#8220;Advanced Topics in Module Design: Thread Safety and Portability.&#8221;  While the topic is not immediately useful to me, I expect it to be extremely interesting.  After that and one last keynote by the &#8220;father of virtual reality,&#8221; Jaron Lanier, ApacheCon will be over and I will once again return to my daily life at the office.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/do-you-yahoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApacheCon 2005, Day 3</title>
		<link>http://sirhc.us/apachecon-2005-day-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apachecon-2005-day-3</link>
		<comments>http://sirhc.us/apachecon-2005-day-3/#comments</comments>
		<pubDate>Wed, 14 Dec 2005 21:21:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2005/12/14/apachecon-2005-day-3/</guid>
		<description><![CDATA[It&#8217;s lunch on the third and final day of ApacheCon. I am sitting against a wall next to a precioius power outlet. I think technology conferences&#8212;probably any conference at this point&#8212;should select venues based not only on airport proximity, but on power outlet density. Easily 2/3 of the attendees have notebook computers, and I&#8217;m not [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s lunch on the third and final day of ApacheCon.  I am sitting against a wall next to a precioius power outlet.  I think technology conferences&mdash;probably any conference at this point&mdash;should select venues based not only on airport proximity, but on power outlet density.  Easily 2/3 of the attendees have notebook computers, and I&#8217;m not the only person sitting against the wall next to a power outlet.</p>
<p>Overall, I think ApacheCon was a waste of my time and money.  Some of the sessions have been interesting, but I haven&#8217;t learned anything I didn&#8217;t already know or couldn&#8217;t have learned after a minute or two on Google.  It seems the true beneficiaries of this conference are those individuals already involved with the Apache Software Foundation in some way.  ApacheCon presents an opportunity for them to meet face-to-face, drink beer, and stay up until all hours of the night talking shop.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/apachecon-2005-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApacheCon 2005, Day 2</title>
		<link>http://sirhc.us/apachecon-2005-day-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apachecon-2005-day-2</link>
		<comments>http://sirhc.us/apachecon-2005-day-2/#comments</comments>
		<pubDate>Tue, 13 Dec 2005 21:12:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirhc.us/journal/2005/12/13/apachecon-2005-day-2/</guid>
		<description><![CDATA[It&#8217;s lunch time on the second day of ApacheCon 2005. I have positioned myself next to an AC outlet in the on-line lounge. My poor Toshiba Satellite just doesn&#8217;t have the juice it used to have. I find myself looking around the sessions with envy at all the people using Powerbooks. They sure are sexy [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s lunch time on the second day of ApacheCon 2005.  I have positioned myself next to an AC outlet in the on-line lounge.  My poor Toshiba Satellite just doesn&#8217;t have the juice it used to have.  I find myself looking around the sessions with envy at all the people using Powerbooks.  They sure are sexy (the Powerbooks, not the people).</p>
<p>Day 1 (Monday) was downright boring.  Aside from Cory Doctorow&#8217;s keynote, every session was a snore-fest.  It seems that every presenter suffers from Powerpoint-itis.  I wasn&#8217;t terribly interested in any of Monday&#8217;s sessions, either.  They could rebrand ApacheCon as JavaCon and I doubt anyone would notice.</p>
<p>Today was more fortunate.  The presentation on web programming security was entertaining.  The speaker relied on his own wit and real-time demos rather than slides.  Unfortunately, the following session on the uses of mod_ssl in Apache was back to slide-reading.  Tim Bray&#8217;s keynote was interesting, but bore little interest for me as I am primarily a Perl coder.</p>
<p>I hope the rest of the day is more entertaining for me.  I&#8217;m going to steer clear of the Java sessions.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirhc.us/apachecon-2005-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
