<?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>Rants and Revelations</title>
	<atom:link href="http://blog.xcski.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.xcski.com</link>
	<description>Everything I used to bore people on newsgroups and mailing lists with, now in one inconvenient place.</description>
	<lastBuildDate>Sun, 06 May 2012 02:56:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
	<atom:link rel="hub" href="http://superfeedr.com/hubbub" />
			<item>
		<title>StackOverflow</title>
		<link>http://blog.xcski.com/2012/05/05/stackoverflow-2</link>
		<comments>http://blog.xcski.com/2012/05/05/stackoverflow-2#comments</comments>
		<pubDate>Sun, 06 May 2012 02:56:29 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Revelation]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2732</guid>
		<description><![CDATA[StackOverflow (aka &#8220;SO&#8221;) is the best site on the net for asking and answering questions about programming. Not about the job of programming (there is another site in the same family) but specific problems in &#8220;how do I do this&#8221; &#8230; <a href="http://blog.xcski.com/2012/05/05/stackoverflow-2">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/05/05/stackoverflow-2#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2732" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>StackOverflow (aka &#8220;SO&#8221;) is the best site on the net for asking and answering questions about programming.  Not about the job of programming (there is another site in the same family) but specific problems in &#8220;how do I do this&#8221; in programming.  One of the ways it became good and stays good is that when you ask or answer a question, other people can vote your question or answer up (or down) and you gain (or lose) &#8220;reputation&#8221; points. (In the early days of the site, I tried to get people to call them &#8220;XP&#8221; as we called experience points back when I played Dungeons and Dragons, but to no avail.) The points aren&#8217;t good for anything in the real world (except they&#8217;ve sent me a couple of free t-shirts because of my work there), but we geeks prize being ranked, and so getting more reputation is a desirable thing.  Plus you get some more rights and privileges at certain XP levels.</p>
<p>Because I was active in the beta of SO, and it was in beta at a time when I was bored out of my mind at work, I have pretty high reputation.  In the first year of the site, I was in the top 15 users, and I think I&#8217;m still in the top 150 or so.  But when I look over my past contributions, I see a bit of a pattern &#8211; most of my points come from one of two types of responses: &#8220;Fastest Gun In the West&#8221; (FGITW), where I was the first person to answer a fairly trivial problem like &#8220;how do I count how many items in an array in perl&#8221; and &#8220;Crusty Old Guy Imparting His Wisdom To the Newbies&#8221; where I try to impart some of what I&#8217;ve learned in over 25 years of working in good places and bad places and places that leave you so bored you spend all your time on SO.  There aren&#8217;t enough of my answers where I actually took some time and effort to research something, write some example code and test it, or generally did something that somebody else couldn&#8217;t have done just as well.  And in a way, I feel like it&#8217;s almost too late to change that &#8211; there are so many people on SO answering questions that unless you have something really specific where you just solved a very difficult problem you were having on something very obscure, somebody else is going to have the same answer as you.</p>
<p>So these days I try to resist the urge to answer the FGITW type questions.  Instead I&#8217;ll put a comment after the question, and I&#8217;ll wait for the first couple of answers and see if I have anything to add, either in comments on the answers or by directly editing them (one of the privileges of high XP I mentioned earlier).  I don&#8217;t care if I get points for them any more, I don&#8217;t want points for those sorts of answers.  The other thing I do a lot of on the site these days is &#8220;patrolling&#8221; &#8211; looking for spam, stupid questions, joke answers, and the like, and voting to close them, voting them down or flagging them as spam or abuse, etc.  I have considered running for the position of community moderator a few times, but in the last couple of elections they&#8217;ve demanded that you have done certain things on the Meta site, and I hate that place.</p>
<p>But of course, now that I&#8217;m trying to resist the urge to get meaningless XP for FGITW, I feel like everybody should have had the same revelation at the same time as me, so I have to resist the urge to tell people off for doing the same thing.  I was actually prompted to make this blog post because I looked at a question a few hours ago, recognized it as a FGITW type question, and when I waited for answers, discovered that the first two were people like me, with +50K in XP.  Hey, idiots, we know you&#8217;re smart, how about letting somebody who needs some XP have those points and do something to improve the site!  It seems so obvious now that I&#8217;ve had the epiphany.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/05/05/stackoverflow-2#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2732" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/05/05/stackoverflow-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupid Perl Tricks</title>
		<link>http://blog.xcski.com/2012/04/19/stupid-perl-tricks</link>
		<comments>http://blog.xcski.com/2012/04/19/stupid-perl-tricks#comments</comments>
		<pubDate>Thu, 19 Apr 2012 20:15:12 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Revelation]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2730</guid>
		<description><![CDATA[I&#8217;m certainly delving into some depths of Perl I&#8217;ve never touched before. I need to lookup a record in one table using a subclass of DBIx::SearchBuilder::Record, and depending on what it says in the &#8220;table_name&#8221; column, look up a record &#8230; <a href="http://blog.xcski.com/2012/04/19/stupid-perl-tricks">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/04/19/stupid-perl-tricks#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2730" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m certainly delving into some depths of Perl I&#8217;ve never touched before.</p>
<p>I need to lookup a record in one table using a subclass of DBIx::SearchBuilder::Record, and depending on what it says in the &#8220;table_name&#8221; column, look up a record in one of several other tables, each one of which has its own subclass of DBIx::SearchBuilder::Record.  And after some delving on the internet, I was amazed to find out you could put the class name in a variable when you &#8220;new&#8221; it.  Unfortunately you still need to &#8220;eval&#8221; the require statement.<br />
<code><br />
my $mainRec =<br />
RTx::FooProject::Record::MainTable->new($cfHandle);<br />
$mainRec->LoadById($main_id);</p>
<p># Ok, here comes the tricky part. Try to get figure out the class name<br />
# from the table name<br />
my $table_name = $mainRec->table_name;<br />
$table_name =~ s/^dsu/DSU/i;<br />
$table_name = ucfirst($table_name);<br />
$table_name =~ s/_([a-z])/uc($1)/eg;<br />
$table_name =~ s/s$//;</p>
<p>my $subRec;<br />
{<br />
  no strict 'refs';<br />
  my $fullClass = "RTx::FooProject::Record::$table_name";<br />
  eval "require $fullClass";<br />
  $subRec = $fullClass->new($cfHandle);<br />
  $subRec->LoadByCol("main_id", $mainRec->id);<br />
  $self->SubTableRec($subRec);<br />
}</code></p>
<p>I literally threw my hands in the air in exultation when it worked. And then was rather painfully reminded of my recent shoulder surgery.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/04/19/stupid-perl-tricks#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2730" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/04/19/stupid-perl-tricks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another sleepless night</title>
		<link>http://blog.xcski.com/2012/04/17/another-sleepless-night</link>
		<comments>http://blog.xcski.com/2012/04/17/another-sleepless-night#comments</comments>
		<pubDate>Tue, 17 Apr 2012 09:38:30 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2727</guid>
		<description><![CDATA[I was having trouble sleeping. I thought it was because I have a sort of &#8220;rubbed raw&#8221; feeling in my arm pit. I got the same thing last time &#8211; because I can&#8217;t lift the arm, my arm pit doesn&#8217;t &#8230; <a href="http://blog.xcski.com/2012/04/17/another-sleepless-night">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/04/17/another-sleepless-night#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2727" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>I was having trouble sleeping.  I thought it was because I have a sort of &#8220;rubbed raw&#8221; feeling in my arm pit.  I got the same thing last time &#8211; because I can&#8217;t lift the arm, my arm pit doesn&#8217;t dry out properly and so it rubs painfully.  But then I realized there was a lot of light coming from my office.  And so I went to have a look, and sure enough my Linux box had crashed, frozen on boot, and so therefore the screen saver wasn&#8217;t shutting down the monitors properly.</p>
<p>A few days ago I got a little overzealous in removing old kernels, and since then every time the update process has installed new stuff it&#8217;s given me a failure message about running lilo.  (Yes, I still use lilo rather than grub because when I first installed this system you couldn&#8217;t use grub with a software raid and lvm2 &#8211; one of these days I&#8217;m going to have to reinstall just to correct that and a few other nagging problems)</p>
<p>I realized that if that was the cause of the problem, I was going to have to boot with a live or rescue CD and remount everything, chroot to it, and fix the lilo problems and run the lilo installer command.  So the first thing I tried was downloading the &#8220;Ubuntu Rescue Remix&#8221;, burning a CD with it, and booting with it.  I discovered the hard way that the &#8220;Rescue Remix&#8221; is a i686 kernel, which means I can&#8217;t chroot to my amd64 install and expect to run commands.  Oops.</p>
<p>Next I started to download the latest Ubuntu CD.  Chrome said I had 27 minutes remaining, so while I waited I dug out the previous Ubuntu CD, and booted with that.  I had to &#8220;apt-get install lvm2&#8243; and &#8220;apt-get install mdadm&#8221;, but afterwards I was able to &#8220;mdadm &#8211;assemble&#8221; both software RAIDs, and mount the lvm2 partitions under /mnt.  I chrooted to /mnt, and ran &#8220;lilo&#8221;.  First problem was that the boot drive was specified using /dev/disk/by-id/&#8230;., which it didn&#8217;t like in the chroot environment, so I changed that to /dev/sda.  Then it complained about the &#8220;Linux.old&#8221;, so I commented that out.  With both of those changes made, lilo installed without any further errors, and when I rebooted everything came up fine.</p>
<p>I&#8217;m just manually restarting all my nightly backups which normally happen during the time the computer was down, and then I&#8217;m going to try to get an hour or two sleep.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/04/17/another-sleepless-night#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2727" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/04/17/another-sleepless-night/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forth?  Why Forth?</title>
		<link>http://blog.xcski.com/2012/04/01/forth-why-forth</link>
		<comments>http://blog.xcski.com/2012/04/01/forth-why-forth#comments</comments>
		<pubDate>Sun, 01 Apr 2012 14:15:45 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2724</guid>
		<description><![CDATA[Had a dream last night, in which the programming language Forth played a big role. Which is a bit of a puzzlement because I&#8217;ve never learned to program in Forth. There was a time when Forth was tagged as the &#8230; <a href="http://blog.xcski.com/2012/04/01/forth-why-forth">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/04/01/forth-why-forth#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2724" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>Had a dream last night, in which the programming language Forth played a big role. Which is a bit of a puzzlement because I&#8217;ve never learned to program in Forth. There was a time when Forth was tagged as the next big thing and every computer magazine had articles about it, but that was around the time when commercial software started advertising &#8220;written in C for speed&#8221; and an interpreted language like Forth didn&#8217;t have a chance. I believe Forth became the core of PostScript. </p>
<p>The first thing I remember from the dream is seeing two small computers with a wire connecting their &#8216;pin 1&#8242;s. Somebody asked the Forth guru why they were connected, and I said &#8220;I know that, it&#8217;s so their clocks are in sync&#8221; and I said something about events on rising edges. I have no idea what that&#8217;s about &#8211; I&#8217;ve never done anything that low level. Evidently my dream self has been taking electrical engineering courses. </p>
<p>Later I was talking to the guru in front of three real train tracks, and every time a train went by a single alphanumeric letter above the track lit up. I wonder if that is some dream reference to the famous Tech Model Railway Club, but I really only know about them from the Jargon File.  I wonder if they used Forth?</p>
<p>Later the guru was showing me about ports to respond to external events and control things like lights and heat in a house. I distinctly remember a panel showing four room mates and an indicator of whether they were using Forth to control their thermostats or not. </p>
<p>Anyway, it seems odd to me to be dreaming about a programming language I&#8217;ve never used, and low level hardware stuff I&#8217;ve never done. Not sure if that&#8217;s a subconscious reflection of my recent surgery, or trying to do object oriented programming in Perl.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/04/01/forth-why-forth#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2724" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/04/01/forth-why-forth/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Perl and IDEs</title>
		<link>http://blog.xcski.com/2012/02/25/perl-and-ides</link>
		<comments>http://blog.xcski.com/2012/02/25/perl-and-ides#comments</comments>
		<pubDate>Sun, 26 Feb 2012 01:54:38 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Revelation]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2720</guid>
		<description><![CDATA[From about 1987 to about 4 or 5 years ago, I did all my software development using vi (and later gvim), ctags, and all the Unix command line tools. But towards the end of my time at Kodak, I got &#8230; <a href="http://blog.xcski.com/2012/02/25/perl-and-ides">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/02/25/perl-and-ides#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2720" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>From about 1987 to about 4 or 5 years ago, I did all my software development using vi (and later gvim), ctags, and all the Unix command line tools.  But towards the end of my time at Kodak, I got the Eclipse religion, at least as far as doing Java.  Sure, I dislike having to move my hands away from the keys to move the cursor around all the time, but the code completion, integrated debugging and all that other good stuff won me over. The ability to click on an existing method call and see the javadoc for the method and to hit F3 and be taken to the actual code was a game changer for me.  So much better than ctags.  But for non-Java, whether shell scripts at work or perl at home, I still relied on gvim and the other command line tools.</p>
<p>But I&#8217;m about to start a huge and long term perl project, a large part of which is trying to learn all I can about an existing open source code base.  So I wanted to see if an IDE would give me an advantage in terms of moving around the code I&#8217;m trying to learn. I installed the EPIC plugin for Eclipse, and also a dedicated perl IDE called &#8220;Padre&#8221;, and noodled around on both, and so far I&#8217;m forced to conclude that neither of them are as useful in perl as Eclipse is in Java.  The biggest missing feature seems to be that F3 gets me the wrong function or method declaration most of the time.  I don&#8217;t know why, possibly the typing system in perl is too weak for the sort of analysis and introspection that Eclipse does in Java.</p>
<p>So I think I&#8217;m going to be back to doing gvim and ctags and find and grep and perldoc and all the other fun stuff.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/02/25/perl-and-ides#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2720" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/02/25/perl-and-ides/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moving on, moving up&#8230;</title>
		<link>http://blog.xcski.com/2012/02/17/moving-on-moving-up</link>
		<comments>http://blog.xcski.com/2012/02/17/moving-on-moving-up#comments</comments>
		<pubDate>Sat, 18 Feb 2012 00:35:06 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Job Experiences]]></category>
		<category><![CDATA[Revelation]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2717</guid>
		<description><![CDATA[I was a little bit annoyed at work this week &#8211; they had me rush rush rush to finish something, and when I did they didn&#8217;t seem to have anything more for me to do. Ok, if I&#8217;m honest with &#8230; <a href="http://blog.xcski.com/2012/02/17/moving-on-moving-up">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/02/17/moving-on-moving-up#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2717" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>I was a little bit annoyed at work this week &#8211; they had me rush rush rush to finish something, and when I did they didn&#8217;t seem to have anything more for me to do.  Ok, if I&#8217;m honest with myself, this new subproject they put me on has annoyed me because nobody seemed to want to communicate, and so maybe I wasn&#8217;t making the effort I should have to go find something to work on when they didn&#8217;t give me something.  But still, I was mildly annoyed.</p>
<p>And then out of the blue, an on-line friend popped up on Facebook and said &#8220;hey, do you know any perl programmers looking for a job?&#8221;  Well, I&#8217;ve done a fair amount of perl coding for my navaid.com site as well as scripts here and there at Global Crossing and Kodak, although I&#8217;m not one what you&#8217;d call a &#8220;perlmonger&#8221; or &#8220;perl monk&#8221;.  As a matter of fact, I&#8217;ve been seriously telling people on StackOverflow that if I weren&#8217;t so proficient in perl already and didn&#8217;t have so much working code written in perl, I would seriously be trying to forget everything I knew about it and learning python instead.  So I asked him for more details.  But he quoted me an hourly rate that was more than double what I&#8217;m currently making.  I suddenly remembered that I&#8217;m a perl <strong>God</strong>.</p>
<p>The contract involves learning all there is to know about their business process, and all there is to know about an open source project called &#8220;Request Tracker&#8221; (aka RT), and seeing how much of their business process I can shoe-horn into RT (using its built in customization hooks and APIs) and how much would require custom coding of separate apps that maybe talk to RT for some parts, and doing the customizing of RT and the custom app coding.</p>
<p>In some ways this job looks like enormous fun and quite a growth experience, but &#8220;growth experience&#8221; also means &#8220;opportunity to fail&#8221; so I&#8217;m also somewhat scared of this.  Not only do I have to become proficient in RT and in corners of the perl world that I&#8217;ve never touched before (Mason, anybody), but I&#8217;ve got to do my own requirements gathering, project plan, and every other aspect.  I&#8217;ve got nobody else to blame if things don&#8217;t go right.  But looking at the sunny side, if I do this right, I&#8217;ve got a major successful project on my resume and a happy customer to vouch for me for the next thing that comes along.  It&#8217;s going to be great!</p>
<p>Anyway, long story short, I just turned in my notice at my current job.  No more 3.5 hour return drives to Ithaca every week or two.  (I just spent over $1000 on flights, hotels and rental car for a week down at their site for the project kick-off one week info dump, though.)</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/02/17/moving-on-moving-up#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2717" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/02/17/moving-on-moving-up/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>No good news on the medical front</title>
		<link>http://blog.xcski.com/2012/01/28/no-good-news-on-the-medical-front</link>
		<comments>http://blog.xcski.com/2012/01/28/no-good-news-on-the-medical-front#comments</comments>
		<pubDate>Sat, 28 Jan 2012 18:15:16 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Pain]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2714</guid>
		<description><![CDATA[I had a talk with my shoulder surgeon yesterday. He said my MRI didn&#8217;t show any &#8220;smoking gun&#8221;. There was a little damage where the acromium meets the collar bone. There is also evidence of bone bruising, but I&#8217;m not &#8230; <a href="http://blog.xcski.com/2012/01/28/no-good-news-on-the-medical-front">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/01/28/no-good-news-on-the-medical-front#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2714" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>I had a talk with my shoulder surgeon yesterday.  He said my MRI didn&#8217;t show any &#8220;smoking gun&#8221;.  There was a little damage where the acromium meets the collar bone.  There is also evidence of bone bruising, but I&#8217;m not sure how that could have happened or how it could be causing a problem that started 3 months ago.  He said that might be the problem, or there might even be referred pain from the neck.  He basically said that we need to try a few things to help diagnose the problem, so he injected some cortisone into the AC joint.  A few hours later, when the numbing agent wore off, I was treated to some of the worst pain of my life.</p>
<p>I slept on a chair last night because I knew that if I slept on a bed, I&#8217;d roll onto that side and make it even worse.  It&#8217;s still pretty bad this morning, but I&#8217;m trying to keep it propped on my chair arm and not move it much.  I&#8217;m back to using my old Bamboo trackpad instead of a mouse because I use that with my other hand, but it registers things as clicks when I don&#8217;t mean to click and doesn&#8217;t register when I do want to click, so I don&#8217;t like it much.</p>
<p>Anyway, if this cortisone shot is anything like the one I got last summer, I&#8217;m hoping to start feeling some relief tomorrow or the next day.</p>
<p>Meanwhile I spent half the night wondering what I&#8217;m going to do for fun when I can&#8217;t paddle any more.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/01/28/no-good-news-on-the-medical-front#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2714" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/01/28/no-good-news-on-the-medical-front/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Phil Gustafson, diode re-arranger</title>
		<link>http://blog.xcski.com/2012/01/21/phil-gustafson-diode-re-arranger</link>
		<comments>http://blog.xcski.com/2012/01/21/phil-gustafson-diode-re-arranger#comments</comments>
		<pubDate>Sat, 21 Jan 2012 07:18:02 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2709</guid>
		<description><![CDATA[Back around 1991-2 era, I joined an on-line community. Or rather, I started participating in a Usenet newsgroup called alt.folklore.urban, the core membership of which was turning into an on-line community, pretty much before the idea of &#8220;on-line community&#8221; had &#8230; <a href="http://blog.xcski.com/2012/01/21/phil-gustafson-diode-re-arranger">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/01/21/phil-gustafson-diode-re-arranger#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2709" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>Back around 1991-2 era, I joined an on-line community.  Or rather, I started participating in a Usenet newsgroup called alt.folklore.urban, the core membership of which was turning into an on-line community, pretty much before the idea of &#8220;on-line community&#8221; had been invented.  We cognoscenti called the newsgroup &#8220;AFU&#8221;, and the core of the core were known as &#8220;the hats&#8221; or &#8220;old hats&#8221; (or later &#8220;Best Mates&#8221;).  One of the first &#8220;old hats&#8221; was a guy named Phil Gustafson.  He was funny, he was smart, he made wicked puns, and he was part of the memes of the group (one of which was that Phil would &#8220;rearrange your diodes&#8221; if you didn&#8217;t behave).  He travelled to all the real life meet-ups (which at the time were almost always on the west coast) and it was frequently his descriptions of these meet-ups that had the rest of us rolling in the aisles and wishing they&#8217;d have some out this way.<br />
<span id="more-2709"></span><br />
Over the years, I weaseled my way into this group of &#8220;hats&#8221;.  Like any big group of people, we didn&#8217;t all get along perfectly with each other, but each of us liked enough of the other members that we could tolerate the ones we didn&#8217;t like because so many of the ones we liked also liked those ones.  If you get what I mean.  And unusually for an on-line community spread across the world, we met many of the other members off-line (or &#8220;IRL&#8221; as the kids say) as well, often travelling long distances.  But even for this group, Phil stood out as a person who would be willing to travel long distances for these meet-ups.</p>
<p>I met another &#8220;hat&#8221; named Vicki Robinson, fell in love and eventually we married.  Not the first time two of the hats got married, and not the last either, but certainly before people &#8220;meeting on the internet&#8221; was a common thing.  We had a tiny wedding, and though we would have liked to invite all the hats to the wedding, we didn&#8217;t have room so we invited a few to represent the group, and Phil was one of them. </p>
<p>Over the years, that group of people spent less and less time on the original Usenet newsgroup, as Usenet deteriorated in a mass of spam and trolls and idiots, and more and more of our daily interaction was on a couple of very busy private mailing lists.  I hear on other mailing lists complaining when the volume hits 4 or 5 emails a week &#8211; these mailing lists sometimes hit &#8220;gusts&#8221; of over a hundred mails a day, especially if one of the members was having a problem or was celebrating some wonderful life event.</p>
<p>So why am I telling you all this?  Well, yesterday one of the Best Mates found <a href="http://www.mercurynews.com/scott-herhold/ci_19768994">this article</a> about how Phil had been found dead in his bed and alerted us.  The author of the article had used the occasion to do a set piece about the lonely old hermit dying alone and unloved.  And the people who&#8217;d read the article and not known Phil had left comments continuing that meme.  But then those of us who had known Phil stepped up.  (If you read that article you should really click the triangle so you can see the comments in chronological order, and you can see the sudden change from the people who were buying the narrative to those of us who knew him.)  Phil had been found with his computer on, and I&#8217;d like to hope that he&#8217;d just read some email from our group or been playing poker with his on-line poker buddies or was otherwise interacting with one of his groups of friends before he passed away.</p>
<p>As well as Phil&#8217;s friends correcting the record in this article&#8217;s comment section, we stepped in in a more practical sense as well.  One of us who lives nearby contacted the coroner, and found out that the coroner didn&#8217;t have next of kin details.  Phil didn&#8217;t write effusively about his family, he wasn&#8217;t that sort of guy, but over nearly 20 years of continual email correspondence, we had a few details about his family including his brother and sister&#8217;s names, approximately where they lived, and in the case of the brother, what slightly unusual branch of Judaism he practiced.  From that, it was fairly easy to find a phone number for his brother&#8217;s synagogue and then for his brother, and one of our number called him and broke the news.  I&#8217;m happy that Carl could have received the news from somebody who knew and liked Phil instead of a coroner.  Anyway, thanks to us, Carl and the coroner are now in touch with each other.</p>
<p>Phil had been a classmate of Tom Magliozzi from Car Talk at MIT, and when Tom mentioned him and his Volkswagen on Car Talk, Phil had told us some more of the stories, including the bits that will never be on the radio.  So a couple of us independently thought to contact the Car Talk people to let them know about Phil&#8217;s passing.</p>
<p>Meanwhile, Phil&#8217;s Facebook wall, which he&#8217;d never posted to himself, is alive with his many friends expressing their thoughts about him.  We&#8217;ve also been discussing some other form of on-line memorial for him, because, not surprisingly in a group of people who got together on-line in the days of 24 lines of 80 characters in black and white (or black and amber) text, some of his oldest friends are the sorts of curmudgeons who don&#8217;t &#8220;do&#8221; Facebook.  Well, like I said he pretty much didn&#8217;t &#8220;do&#8221; Facebook either.</p>
<p>I&#8217;m going to miss Phil.  He wasn&#8217;t always the warmest or the most touchy-feely of people, but he was a great person to know and I feel my life slightly emptier without him.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2012/01/21/phil-gustafson-diode-re-arranger#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2709" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2012/01/21/phil-gustafson-diode-re-arranger/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>This time I think it was the cache&#8230;</title>
		<link>http://blog.xcski.com/2011/12/02/this-time-i-think-it-was-the-cache</link>
		<comments>http://blog.xcski.com/2011/12/02/this-time-i-think-it-was-the-cache#comments</comments>
		<pubDate>Sat, 03 Dec 2011 00:27:27 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Job Experiences]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2707</guid>
		<description><![CDATA[As I wrote about in 2007 in articles and , back in 2004 I wrote a cache for part of the product I was working on at Kodak. In the first release to QA, I made sure that area of &#8230; <a href="http://blog.xcski.com/2011/12/02/this-time-i-think-it-was-the-cache">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2011/12/02/this-time-i-think-it-was-the-cache#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2707" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>As I wrote about in 2007 in articles <a href="http://blog.xcski.com/2007/05/03/dear-boss" title="Dear Boss"></a> and <a href="http://blog.xcski.com/2007/06/01/theyre-doing-it-again" title="They’re doing it again"></a>, back in 2004 I wrote a cache for part of the product I was working on at Kodak.  In the first release to QA, I made sure that area of the code got tested thoroughly, and they found a bug, and fortunately I got it fixed before it went out to the customers.  But to my chagrin, my boss and other people on the project got it in their heads that somehow any problem anywhere near that part of the product must be the fault of my cache, even though time and time again it was proven that there were no further bugs in that code for the following 3+ years.</p>
<p>Now flash forward to the product I&#8217;m working on now.  We have a &#8220;go live to the very important customer&#8221; happening in just a few days, and we&#8217;re supposed to be in code semi-freeze.  But the &#8220;Performance Project&#8221; just put their performance cache into the product, evidently without giving the local QA much chance to test it before it went to the customer&#8217;s QA.  That seems just a little bit dangerous to me.  But no matter, they assure me they&#8217;ve written tons of unit tests.  So what could possibly go wrong?</p>
<p>Today the customer called up saying that they&#8217;re setting up a new client on the admin site, but every time they go to the &#8220;branding setup&#8221; for that new client, they see some other client&#8217;s branding setup.  This branding consists of things like the client logo and some &#8220;terms and conditions&#8221; text and the like.  Since they&#8217;ve got literally hundreds of QA people hitting this site, I naturally wondered if they weren&#8217;t seeing some interaction between multiple people messing with the setup.  But after hours of poking around on their site, one of my peers and I (neither of us members of the &#8220;Performance Product&#8221;, I might add) are convinced it&#8217;s the performance cache.  Evidently if you use one browser to look at one client&#8217;s branding, and then use a different browser to look at the branding of the client who hasn&#8217;t been setup yet, you see the branding from the client that you&#8217;d looked at in the first browser.  Somehow the cache is reacting to the absence of information in the database for a client by pulling up information from some other client out of the cache.  That&#8217;s not good.</p>
<p>Hopefully that will get fixed, and hopefully somebody will set up a test plan that actually tests what the cache does not just on a cache miss, but also on a database miss as well.  And hopefully the important customer won&#8217;t think we&#8217;re all a bunch of idiots for not testing this properly.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2011/12/02/this-time-i-think-it-was-the-cache#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2707" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2011/12/02/this-time-i-think-it-was-the-cache/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What goes up must come down</title>
		<link>http://blog.xcski.com/2011/12/01/what-goes-up-must-come-down</link>
		<comments>http://blog.xcski.com/2011/12/01/what-goes-up-must-come-down#comments</comments>
		<pubDate>Thu, 01 Dec 2011 16:39:03 +0000</pubDate>
		<dc:creator>Paul Tomblin</dc:creator>
				<category><![CDATA[Kayaking]]></category>
		<category><![CDATA[Pain]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.xcski.com/?p=2704</guid>
		<description><![CDATA[A few weeks ago I was feeling great. I was erging longer and longer distances every night, feeling good and not feeling any pain. I was up to doing 3 sets of 2000 metres, at pretty good speed and not &#8230; <a href="http://blog.xcski.com/2011/12/01/what-goes-up-must-come-down">Continue reading <span class="meta-nav">&#8594;</span></a><div class="tantan-getcomments"><a href="http://blog.xcski.com/2011/12/01/what-goes-up-must-come-down#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2704" width="100" height="15" style="border:0;" /></a></div>]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I was feeling great.  I was erging longer and longer distances every night, feeling good and not feeling any pain.  I was up to doing 3 sets of 2000 metres, at pretty good speed and not much pause between then, and I had every expectation that I was going to increase the number of sets and distances continually.  But then I started doing some extra stuff with Dan, trying to build up my core and other muscles and other things I&#8217;d need for the up coming season.  But instead, I ended up overdoing it (due to the strange slowness of the way my body responds to pain, I never feel it when I&#8217;m overdoing it, only afterwards).</p>
<p>The next day, my shoulder was a little bit sore when I woke up, but I attempted to go paddling with the guys, but ended up falling in at the dock (due to using a different boat) and not going, but by evening my shoulder was killing me.  And it kept feeling bad.  I tried icing it, I tried stretching, and I tried taking more Aleve than usual.  Nothing has really helped.</p>
<p>Yesterday I had a massage from my <a href="http://www.robinthomanlmt.com/">favourite massage therapist</a>, and then a few hours later I tried a tiny bit of erging.  By tiny bit, I mean less than a minute.  I felt a tiny twinge, so I stopped.  And a few hours later, it was back to feeling really bad.</p>
<p>My enthusiasm and optimism for next season has pretty much evaporated now.</p>
<div class="tantan-getcomments"><a href="http://blog.xcski.com/2011/12/01/what-goes-up-must-come-down#comments"><img src="http://blog.xcski.com/wp-content/plugins/tantan/get-comments.php?p=2704" width="100" height="15" style="border:0;" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.xcski.com/2011/12/01/what-goes-up-must-come-down/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

