<?xml version="1.0"?>
<!-- name="generator" content="blosxom/2.0" -->

<rss version="0.91">
  <channel>
    <title>another blog   </title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi</link>
    <description>K and H blogfeed.</description>
    <language>en</language>

  <item>
    <title>Points Awarded</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/07/04#repair</link>
    <description>
&lt;p&gt;The shower door leaked for a couple years before I got around to properly plugging it. Then I managed to ignore the water damage left in the vicinity for another year. Last month, I sensed that delaying repairs further would be domestically hazardous. So I tore out the old vinyl flooring (and rotting particle board underlayment), replacing it with tile. 

&lt;p&gt;&lt;img title=&quot;tile1&quot; src=&quot;http://www.differentchairs.com/tile1.jpg&quot;/&gt; 
&lt;img title=&quot;tile2&quot; src=&quot;http://www.differentchairs.com/tile2.jpg&quot;/&gt; 
&lt;br&gt;&lt;img title=&quot;tile3&quot; src=&quot;http://www.differentchairs.com/tile3.jpg&quot;/&gt; 
&lt;img title=&quot;tile4&quot; src=&quot;http://www.differentchairs.com/tile4.jpg&quot;/&gt; 

&lt;p&gt;The operation was a success. Domestic bliss is restored.</description>
  </item>
  <item>
    <title>Detour</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/05/14#detour</link>
    <description>
&lt;p&gt;For weeks, our browser/email box had been emitting ominous noises. (The box is a venerable thinkpad laptop, with broken internal display, that drives an external sony hd monitor.) I attributed the noises to a dying power supply fan, and I backed up everything I thought was important, with intent to continue using the box until its fan died completely. I was putting off the impending maintenance headache as long as possible. 

&lt;p&gt;Last week the box died with a Windows blue screen indicating &quot;unmountable boot volume&quot;. I tried some of the usual windows tricks to revive the failed disk. (Windows recovery mode, rewrite boot sector, etc) No joy. Drive not mountable. The broken harddrive was proving more troublesome than the expected fan failure. I had a smaller drive in another non working box. So I decided to switch over to linux by installing it on that smaller drive. I did so, and in relatively short order, the box was again set up for browsing and email. But the video output to the sony monitor looked awful. The linux driver could not be convinced to use the entire screen, and to add insult to injury, the right side of the display was cut off.  The ouput left the outer 20% of the display area unused, but on a maximized window, the scrollbar at the right side was missing. A quick search online revealed that this was a known and unresolved issue with the linux support for that ati video version.

&lt;p&gt;I lived with the video limitations for a few days, but the other local users of the computer were decidedly less accepting. And meanwhile, I was discovering which files I had neglected to back up from the old failed drive. 

&lt;p&gt; So I took another run at recovering the broken drive. Amongst all the usual bogus online advice was a guy dealing with the same set of symptoms. He went through the same diagnostics as me before arriving at the final, obvious (in hindsight) step of running chkdsk. So I ran chkdsk, which grinded away for over five hours. before reporting that it had fixed some errors. After rebooting, Windows was back. Without the ominous noise. I quickly backed up all the files I wanted to preserve, and have continued to use it for a couple days now without incident. Am now returned to &quot;wait til it dies&quot; mode.</description>
  </item>
  <item>
    <title>No Excuses</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/05/04#excused</link>
    <description>
&lt;p&gt;When it comes to writing excuses for school attendance, I borrowed a page from my mother's parenting handbook. After years of providing the same boring boilerplate excuse for her four sons' absences (&lt;i&gt;&quot;Please excuse [X]'s absence yesterday. He was sick.&quot;&lt;/i&gt;) something snapped, and she decided that to be worth writing, school excuses must be made interesting. One later example I remember was when Jeff asked for an excuse to get out of a gym class requirement one day because of an injury. She wrote: &lt;i&gt;&quot;Please excuse Jeff from any activity more strenuous than thinking. His toe hurts.&quot;&lt;/i&gt; 

&lt;p&gt;This morning, Ursula handed me a stack of excuses I had provided for her one day back when she was in middle school. She's identifed some online purpose for them and so asks that I scan them for her.&lt;p&gt; 

As I recall, that middle school morning she had asked me for an excuse to get out of after school band - she didn't say why. 
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;
I dashed off this note:
&lt;td&gt;
&lt;a href=&quot;http://www.differentchairs.com/excuse1.JPG&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/excuse1-0.JPG&quot;/&gt;&lt;/a&gt;&lt;/table&gt;
&lt;br&gt; Ursula was not amused. She wanted a Real Note.&lt;br&gt;&lt;br&gt;
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;
So I tried again:
&lt;td&gt;
&lt;a href=&quot;http://www.differentchairs.com/excuse2.JPG&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/excuse2-0.JPG&quot;/&gt;&lt;/a&gt;&lt;br&gt;
&lt;/table&gt;
Still no joy.
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;
So I again returned to the well.
&lt;td&gt;
&lt;a href=&quot;http://www.differentchairs.com/excuse3.JPG&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/excuse3-0.JPG&quot;/&gt;&lt;/a&gt;&lt;br&gt;
&lt;td&gt;
&lt;a href=&quot;http://www.differentchairs.com/excuse4.JPG&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/excuse4-0.JPG&quot;/&gt;&lt;/a&gt;&lt;br&gt;
&lt;/table&gt;
Ursula was doing her best impersonation of exasperated, but I thought I detected the barest hint of amusement. Or maybe I was just projecting. &lt;br&gt;&quot;Would you just give me a usable excuse, Dad?&quot; &lt;br&gt;I protested. &quot;But you haven't even told me why you want the excuse&quot;. &lt;br&gt;&quot;That's because I told you yesterday - I have a recital this afternoon.&quot;
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;
&quot;Oh. That changes things.&quot;
&lt;td&gt; 
&lt;a href=&quot;http://www.differentchairs.com/excuse5.JPG&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/excuse5-0.JPG&quot;/&gt;&lt;/a&gt;&lt;br&gt;
&lt;/table&gt;
&quot;No.&quot;
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;
&quot;How about this?&quot;
&lt;td&gt;
&lt;a href=&quot;http://www.differentchairs.com/excuse6.JPG&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/excuse6-0.JPG&quot;/&gt;&lt;/a&gt;&lt;br&gt;
&lt;/table&gt;
&quot;Lame.&quot;&lt;p&gt;
By now, I was pretty sure she wouldn't be using any of these fine excuses, so I attempted a final hail mary to justify my efforts&lt;br&gt;
&lt;a href=&quot;http://www.differentchairs.com/excuse7.JPG&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/excuse7-0.JPG&quot;/&gt;&lt;/a&gt;&lt;br&gt;
Success. She laughed. (We'd recently watched The Matrix and Neo's quote had pleased us.)
&lt;p&gt;
&lt;hr width=&quot;25%&quot;&gt;
[fade to black]&lt;br&gt;
I don't remember if I ultimately relented and gave her a 'Real' excuse. If so, she evidently didn't see fit to save that one.</description>
  </item>
  <item>
    <title>GDP</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/03/19#GDP</link>
    <description>

&lt;br&gt;Ursula [shouting from her bedroom]: &lt;i&gt;Hey DAD. What's GDP?&lt;/i&gt;&lt;br&gt;
 
Me [shouting back from computer room]: &lt;i&gt;WHAT?&lt;/i&gt;&lt;br&gt;
 
Ursula: &lt;i&gt;What's GDP?&lt;/i&gt;&lt;br&gt;
 
Me: &lt;i&gt;G-D-P?&lt;/i&gt;&lt;br&gt;
 
Ursula: &lt;i&gt;YEAH.&lt;/i&gt;&lt;br&gt;
 
Me: &lt;i&gt;Umm.&lt;/i&gt;&lt;br&gt;
 
Me: &lt;i&gt;Gross Domestic Product?&lt;/i&gt;&lt;br&gt;
 
Ursula: &lt;i&gt;Thanks.&lt;/i&gt;&lt;br&gt;
&lt;br&gt;
 
[pause]&lt;br&gt;
&lt;br&gt;
 
Me: &lt;i&gt;Hey, URSULA. What's PeeDee WeeDee?&lt;/i&gt;&lt;br&gt;
 
Ursula: &lt;i&gt;What?&lt;/i&gt;&lt;br&gt;
 
Me: &lt;i&gt;What's PeeDee WeeDee?&lt;/i&gt;&lt;br&gt;
 
Ursula: &lt;i&gt;P-D-We-D?&lt;/i&gt;&lt;br&gt;
 
Me: &lt;i&gt;Yeah.&lt;/i&gt;&lt;br&gt;
 
Ursula: &lt;i&gt;No Idea.&lt;/i&gt;&lt;br&gt;
 
&lt;br&gt;
[pause]&lt;br&gt;
&lt;br&gt;
 
Ursula: &lt;i&gt;Well? What is it?&lt;/i&gt;&lt;br&gt;
 
Me: &lt;i&gt;When my brothers and I were around 5 years old, that's the name we gave to the condition where you've soaked in the bathtub long enough for the skin on your feet to get way wrinkled.&lt;/i&gt;&lt;br&gt;
 
&lt;br&gt;
[ursula laughs, conceding the point]&lt;br&gt;
&lt;br&gt;
 
Ursula: &lt;i&gt;How do you spell that? I need to rename my phone.&lt;/i&gt;&lt;br&gt;
 
Me: &lt;i&gt;I'm not certain. I'll need to confer with Jeff.&lt;/i&gt;&lt;br&gt;
 
Ursula: &lt;i&gt;Let me know as soon as you figure it out.&lt;/i&gt;&lt;br&gt;

&lt;p&gt;
Jeff later agreed that &quot;Peedee weedee&quot; is the preferred spelling...</description>
  </item>
  <item>
    <title>Bike Ride</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/02/01#bike ride</link>
    <description>
&lt;p&gt;Took a bike ride today around the north end of Lake Washington. I don't have any gps capability at the moment to tell me the geek stats about the ride, but the route, per my mapquest approximation, is &lt;a target=&quot;map&quot; href=&quot;http://www.mapquest.com/mq/4-gYkeytYZQ*sB
&quot;&gt;here&lt;/a&gt;. Actually, &lt;a target=&quot;map&quot; href=&quot;http://maps.google.com/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Seattle,+WA+98121+(Coleman+Dock,+Pier+52)&amp;amp;daddr=S+Jackson+St+to:108th+Ave+NE+to:kirkland,+wa+to:47.739554,-122.250023+to:NE+70th+St+to:W+Nickerson+St+to:elliott+Ave+W,+seattle+to:Seattle,+WA+98121+(Coleman+Dock,+Pier+52)&amp;amp;hl=en&amp;amp;geocode=FVRZ1gIdAT61-CG_L3Eq8kp8CA%3BFWpO1gId1lO1-A%3BFfTw1gIdqm63-A%3BFc-P1wIdIT63-Cl7zlIowBKQVDFXKHhwqmp3eg%3B%3BFZSH1wIdImG2-A%3BFfwp1wIdEr60-A%3BFdu01gId-tS0-CnZo57BZxWQVDEAlNXFFQIXgw%3BFVRZ1gIdAT61-CG_L3Eq8kp8CA&amp;amp;mra=dpe&amp;amp;mrcr=2&amp;amp;mrsp=4&amp;amp;sz=12&amp;amp;via=1,4&amp;amp;dirflg=w&amp;amp;sll=47.670705,-122.295341&amp;amp;sspn=0.179866,0.478592&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;z=12&quot;&gt;Google maps&lt;/a&gt; allowed me to enter a more precise route. They now allow you to specify a walking route, so you're not artificially constrained to roads. Amounted to about 42 miles on the mainland side, and another six on the island. (Microsoft &lt;a target=&quot;map&quot; href=&quot;http://www.bing.com/maps/default.aspx?v=2.00&amp;amp;&amp;amp;cp=47.51847425676757~-122.31197755783796&amp;amp;lvl=11&amp;amp;sty=r&amp;amp;rtp=pos.47.602732_-122.337471_801%20Alaskan%20Way%2C%20Seattle%2C%20WA_Bainbridge%20Island%20Ferry_(206)%20464-6400_e_YN926x15795462~v.47.58422791957855_-122.18760788440704_road~pos.47.63215430080891_-122.1909150481224_near%202428%20112th%20Ave%20NE%2C%20Bellevue%2C%20Washington%2098004%2C%20United%20States___a_~pos.47.67885625362396_-122.20724500715732_Kirkland%2C%20WA___e_~pos.47.74803042411804_-122.25013017654419_6808%20NE%20165th%20St%2C%20Kenmore%2C%20WA%2098028-4255___a_~v.47.7301025390625_-122.28966057300567_NE%20140th%20St~v.47.67330475151539_-122.26661570370197_Sand%20Point%20Way%20NE~pos.47.70572192966938_-122.278688326478_10625%20Sand%20Point%20Way%20NE%2C%20Seattle%2C%20WA%2098125-6923___a_~v.47.65941023826599_-122.30099022388458_Montlake%20Blvd%20NE~pos.47.645832896232605_-122.37627983093262_2820%2015th%20Ave%20W%2C%20Seattle%2C%20WA%2098119-2085___a_~pos.47.60273315012455_-122.33747027814388_801%20Alaskan%20Way%2C%20Seattle%2C%20WA_Bainbridge%20Island%20Ferry_(206)%20464-6400_e_YN926x15795462&amp;amp;rtop=0~0~0~&amp;amp;encType=1
&quot;&gt;claims&lt;/a&gt; the mainland loop is closer to 48 miles long.) Google says the route can be walked in 13.5 hours. My pace was fairly leisurely, but better than the walking benchmark. (About 3.5 hours of riding on the mainland side.) The weather cooperated - no rain until I got back to the island. Was feeling pretty spent toward the end. Had not ridden anywhere for months.


&lt;p&gt;Part of the motivation for the ride today was to meet up with George for lunch, in Bellevue. We used to do lunch fairly regularly back when we worked together. (And some of those lunches happened during especially interesting times -- e.g., on our day off from some shipyard work in Kiel, we drove to Hamburg to be tourists for a day.) But I hadn't seen George in a long while. We decided it's been over five years. The time, she flies.</description>
  </item>
  <item>
    <title>Rocket Science </title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/01/31#fairness</link>
    <description>
&lt;p&gt;The monthly power bill at our rental property over in Winthrop jumped pretty dramatically a couple months ago. Making meaningful comparisons is challenging because of rate structure changes combined with inconsistent usage patterns, but at least from our initial two samples, the effective increase to us looks to have been around 60% (compared with bills just prior to the change).
&lt;p&gt;The back story is that the electric company (the co-op) had to raise their rates to offset both recent rate increases they pay to BPA for their power, and revenue impacts from the lousy economy (lower economic activity lowers overall power usage).

&lt;p&gt;The co-op seems to have taken some pains to make the rate increase fair, while also trying to fix some inequity in their existing billing structure. Of course, fairness is a slippery concept in any universe that consists of more than one point of view.
&lt;p&gt;Stated goals of the co-op billing structure:
&lt;ul&gt;
&lt;li&gt;Fixed expenses of the co-op should be reflected in a fixed cost portion of each customer's power bill.
&lt;li&gt;Energy costs of the co-op are passed through to customers as a separate 'demand' charge on the bill.
&lt;/ul&gt;
So there's better visibility for the two things that customers need - monthly power (KWH) usage, and the
power delivery system. (The online explanations invite some confusion by overloading their use of the word 'demand'.)

&lt;p&gt;There are also secondary goals like having a rate structure that encourages predictable and uniform use
of power. A worst case scenario from the power company perspective would be if every customer consumed
power only during the same short window during the day, and all demand is seen during that time at the
edge of the network. The co-op is a power reseller that pays for power based on peak usage. Price
contracts with its provider (BPA) are negotiated each year based on expected customer usage. If
customers used significantly less than expected, there's an effective penalty in that co-op must still
pay for some agreed upon minimum.

&lt;p&gt;Whenever customer demand combines to peak above the expected/contracted usage, the co-op must purchase the
additional power at a premium price, outside of their prearranged contract. The co-op could get its
best possible price on power (per KWH) if power usage were known to be uniform at all times. (Note that
according to this thinking, conservation, per se, isn't a goal of the power company. Rather, they seek to
improve predictability and uniformity of power usage).

&lt;p&gt;One of the problematic use cases that the rate changes sought to improve is that customers with vacation homes in the area weren't paying enough to cover their share of the fixed power delivery expenses. The distribution network must be maintained to support peak demand, whether or not any power is actually consumed. And furthermore, the usage pattern for these mostly absentee property owners tends be that they show up during vacations and crank up their electric load, contributing disproportionately to a network wide demand spike. To meet the added demand, the co-op must pay for additional high cost power.

&lt;p&gt;Recent upgrades to customer meters have allowed the co-op to more closely track power usage of individual customers. This in turn allows bills to more closely reflect peak demand of customers, which according to some, improves fairness.

&lt;p&gt;A significant number of customers are upset about the rate change, feeling that they were now bearing an unfair amount
of the cost. Some openly question motives behind the rate hike, insinuating that board or employees
are somehow extracting an unfair advantage. (I'm disinclined to give much weight to what sound like conspiracy theories. I have no reason to think that the board and employees are anything but hard working and well intentioned neighbors.) There are others that hope to identify a more fair approach, without necessarily disparaging those who developed the current plan. At a recent ratepayers meeting, many stood up and offered suggestions about how to restructure rates to improve fairness. I didn't attend this meeting, but one who did noted with interest that all who spoke apparently defined fairness as a means or rationale for shifting the burden of costs from themselves onto some other group of ratepayers.

&lt;p&gt;A commonality of approach for speakers had that this is not a difficult problem. Surely we can come together to work out a more fair approach for distributing these costs. This is not rocket science.

&lt;p&gt;I suspect otherwise. It &lt;i&gt;is&lt;/i&gt; a difficult problem, every bit as intractable as rocket science. And a difficult problem is most effectively addressed
with the attitude of one who seeks to address a difficult problem.

&lt;p&gt;An ISP faces similar billing challenges. They contract to buy Internet bandwidth, and then resell it, with varying value add, to customers. The ISP pays for bandwidth based on expected peak usage. When usage exceeds expectations, the ISP pays a premium to make up the difference. So when, for example, it becomes common that a significant chunk of an ISP's customers start watching movies streamed over their Internet feed at 7pm each evening, that's going to constitute a peak system load on which the ISP gets billed. The ISP can negotiate much better (mbps) rates with the upstream provider when the bandwidth load gets distributed more uniformly throughout the day. (So the ISP explores ways to encourage 'bandwidth conservation' and distribute those peak usages more uniformly. e.g., what about a rate reduction for downloading video content beforehand, at off peak hours? or a rate surcharge for consistently consuming high bandwidth during peak hours. One possible effect is that billing then seems more complex, and by some measure, less fair.)

&lt;p&gt;&lt;br&gt;&lt;i&gt;All else being equal, customers will likely tell you they prefer rate reductions/rewards over rate surcharges/penalties. But I'm not sure I'd draw any significant conclusions from that without additional support. I certainly continue to pay my mobile phone bill every month in spite of feeling shafted by surcharges/penalties with clockwork regularity.&lt;/i&gt;


&lt;p&gt;&lt;br&gt;Here's another discussion &lt;a href=&quot;http://www.servicelevel.net/rating_matters/newsletters/issue14.htm&quot;&gt;(http://www.servicelevel.net/rating_matters/newsletters/issue14.htm)&lt;/a&gt; of issues associated with the seemingly simple problem of billing.</description>
  </item>
  <item>
    <title>&lt;i&gt;Here's an encore presentation&lt;/i&gt;</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/01/30#stories</link>
    <description>&lt;i&gt;of some growing up stories I wrote down when we were younger.&lt;/i&gt;


&lt;p&gt;&lt;br&gt;Ursula (3-1/2) and I are at the office one Saturday -- I doing my work, she busy with her drawings. The building is empty, but for us two, and Carol in the office next door.&lt;br&gt;Ursula looks up from her drawing and says to me, &quot;Steve, I gotta pee&quot;. I reply &quot;OK, just a minute. I heard Carol going into the bathroom. You can go there when she's done.&quot;
After a bit, I hear Carol emerging from the bathroom down the hall and inform U. that it's her turn. She heads down there and I continue working. Seconds later, I hear choking, gagging sounds from down the hall, and I look up to see U. returning. She's explaining to me loudly (as she passes the doorway to Carol's office) that &quot;Some people were POOPING in there and it stinks REALLY BAD!&quot;
&lt;hr width=50%&gt;
&lt;p&gt;

Before Ursula turned three, she and I were staying at my brother Jeff's house for a weekend. U. was fascinated with Jeff's cats and was constantly trying to play with them in ways that they didn't appreciate. Whenever I see this activity, I explain to U. that cats get scared when little girls are not playing gently enough, and they can hurt the little girls with their sharp fingernails. To this lecture, U. always nods and backs off for a while.
Jeff and I are downstairs talking, while Ursula is upstairs watching a video with one of the cats. At some point jeff and I hear a scream followed by crying coming from U.  I go check it out. I find U. holding her hand, which has some freshly acquired cat scratches. She sobs, &quot;That cat Hurt My Hand!&quot; I ask, &quot;Were you playing a little too rough with the cat?&quot; &quot;No&quot;, she assures me, tearfully. I say, &quot;Cats usually have a reason when they scratch people. What were you doing before he scratched you?&quot; She pointed to a grocery sack on the floor and explained, &quot;I was just trying to put him in the bag...&quot;
&lt;hr width=50%&gt;
&lt;p&gt;


When Fon was pregnant with Lia, Ursula (3) usually accompanied on prenatal visits to the doctor. Once, the doctor was conversing with Ursula and asked &quot;What are you going to do when you grow up?&quot; Without hesitation and with absolute seriousness, Ursula replied, &quot;I'm going to eat gum.&quot;
&lt;hr width=50%&gt;
&lt;p&gt;



Ursula vocabulary @ 3-1/2
Sometimes, U doesn't like to eat her &quot;retch-tables&quot;.&lt;br&gt;
U has several uses for the word chopstick, often substituting for the word plastic -- so she likes to use her &quot;chopstick spoon&quot; for cereal, and her &quot;chopstick fork&quot; at lunch. But her favorite utensil is the &quot;holes fork&quot; (a camp fork with two holes in the handle).&lt;br&gt;
The screen on the window is the &quot;holes window&quot;.&lt;br&gt;
Later Vocabulary.&lt;br&gt;
U@5: &quot;Steve, we played Parrot Shoot in class today&quot;. [parachute]&lt;br&gt;
U@6, reading a book to me: &quot;There's a unicorn. He has just one corn on his head...&quot;&lt;br&gt;
Snowflags [snowflakes].
&lt;hr width=50%&gt;
&lt;p&gt;


&lt;a name=lionking&gt;
Ursula (4)
On the way out of the bookstore, Ursula tries to negotiate for one more book. She and I stop at the discount section, where she spots a Wanna Have.
&quot;Look, Steve. LION KING!&quot;
&quot;That's nice Ursula&quot;, I stall.
&quot;We should buy this one&quot;.
&quot;I don't think so. You already have a couple of Lion King books.&quot;
&quot;Come on. It's REALLY RARE!&quot;
Little old lady standing next to us, with a laugh in her eye: &quot;Did she say Really Rare?&quot;
&quot;She's the expert&quot;, I reply.

&lt;hr width=50%&gt;
&lt;p&gt;

I'm replacing a faucet in the bathroom. Ursula's investigating possible uses for the drain stopper control mechanism. She applies pressure. Her hand slips and a finger gets cut on a small metal attachment. Her face illustrates perfectly the instant of panic and terror, followed by the swift realization that, although it's bleeding a bit, it doesn't seem to hurt much. She shifts into drama mode, and I hear her exclaim as she heads for the kitchen, &quot;Mommy, I was playing with the faucet and I got a REALLY HUGE cut on my finger!&quot;
&lt;hr width=50%&gt;
&lt;img src=&quot;http://www.differentchairs.com/photo/UandL-sis.jpg&quot;&gt;
&lt;p&gt;


We are sitting scattered about one evening, eating dinner. Ursula (5) and I are sitting on the floor, eating our rice and reading a story. Lia (1-1/2) finishes her meal at the table and then comes over to participate in the storytelling. On the way, she plants her foot smack in the middle of Ursula's rice bowl.
&quot;LIA STEPPED IN MY RICE!&quot; proclaims Ursula.
Lia assesses the situation, sits down and starts chewing the sticky rice from her foot. &quot;Gross!&quot; says Ursula. &quot;Lia...&quot; says I. The ever-considerate Lia looks at me, then at her foot. and then offers me her foot with its remaining payload of rice. I decline. She finishes off the rest.
&lt;hr width=50%&gt;
&lt;p&gt;


Ursula (5) is teaching Lia (1-1/2) how to take a photograph. Lia's very enthusiastic, but can't quite get the knack of looking through the viewer. So she settles on the technique of holding the view window to her ear when snapping a pic...
&lt;hr width=50%&gt;
&lt;p&gt;


Early one morning, Ursula (5) and I are eating our breakfast cereal, she sitting in my lap. [This has long been her preferred breakfast seating arrangement. It is not uncommon for her to go through the day with bits of wayward cereal atop her head]. Lia (2) wanders out from the bedroom and tries to take up a shared position on my lap. Ursula makes it clear that there is *not* room for two. Lia considers this briefly, then walks over to the adjoining room, to the drawer that serves as Ursula's toybox and hiding place. Lia pulls out a dollar bill and waves it slowly over her head in a manner reminiscent of a bullfighter. &quot;HEY, THAT'S MINE!&quot; cries Ursula. Lia sets the bill down, and as Ursula rushes to recover what's hers, Lia casually walks back to climb in my lap and begin consuming her share of my cereal. When Ursula returns, after re-securing her belongings, Lia slides over to make room for her sister, and we all finish our breakfast together.
&lt;hr width=50%&gt;
&lt;p&gt;


Ursula (5) and Lia (2) are sitting having a heated discussion/argument. Lia abruptly gets up, walks over to pick up a broken telephone and starts dialing. Ursula, puzzled, pauses mid-sentence and asks, &quot;What are you doing?&quot; Lia replies, &quot;I'm calling the police&quot;.
&lt;hr width=50%&gt;
&lt;p&gt;


On the way home from swimming lessons, Ursula (5) is clearly frustrated. (She's one of the slower swimmers) She declares &quot;I'm not going to swimming lessons anymore&quot;.
&quot;But Ursula&quot;, I reply, &quot;if you don't learn how to swim well, you may fall into the water someday and sink lika a rock&quot;. Helpful Lia (2) pipes up &quot;You'll sink like the Titanic&quot; (Ursula is not amused).
&lt;hr width=50%&gt;
&lt;p&gt;



Mom and Dad are sitting at the table, each trying to convince Lia (5) that she should stay with them this weekend. (Dad's going on an overnight trip). On hearing both sides of the discussion, Lia whispers loudly in Dad's ear that she wants to go with him. She then immediately goes to the other side of the table and loudly whispers into her mother's ear (for all to hear) that she wants to stay with her.
&lt;hr width=50%&gt;
&lt;p&gt;


Mom is expressing her frustration again. The daughters haven't been doing their work. Mom says she will cancel the piano lessons, the violin lessons, the singing lessons and the dance class (but not the chinese class). This prospect disturbs the daughters. Lia (5) wails to Ursula (9) - &quot;Mommy is going to change MY WHOLE LIFE!&quot;
</description>
  </item>
  <item>
    <title>Stepping in Political Sausage</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/01/26#sausage</link>
    <description>
&lt;p&gt;Some years ago, I fell briefly into a rabbit hole of small town politics. A would be competitor 
to the rural ISP I worked for was lobbying for govmint grant money that had been allocated by the state for small town
business development. This being small town, we had worked closely with this would be competitor in the 
past and were fairly knowledgeable about their business operations.

&lt;p&gt;This grant money was being requested to pay for some of their ongoing operating costs (thus allowing them to more
effectively compete with us). By our reading of the law for that grant program, the specifics of their proposed usage
clearly didn't fit the mandated criteria for awarding the money. We were concerned that the technical specifics of their
proposal induced the technically uninitiated to glaze over, and not notice the poor fit.

&lt;p&gt;So we went to city hall to learn the status of the proposal. We talked to the part time city employee whose job included
reviewing grant proposals and making recommendations to the city council. She had already reviewed the proposal and
recommended that the council move forward on it. After a bit more discussion we saw, as expected, that technical details
had only been skimmed and the winning point was the claim that it would create jobs. We conveyed to her our understanding
of what was being proposed and how that didn't fit into the intent of the grant program. She said she agreed with us, but
the matter was now out of her hands. The train had left the station, and our next opportunity to stop it would be at the
city council meeting.

&lt;p&gt;So at the council meeting, we again presented our understanding and our concerns about the grant proposal. The high
points of our argument were: 
&lt;ul&gt; 
&lt;li&gt;the wording of the law stated the grant money could be used to build new
infrastructure. But the proposal was effectively to pay ongoing costs for already operational infrastructure. Wording in
the law disallowed this use. 
&lt;li&gt;the grant would be awarded and administered by the city, but the business is in fact
located outside city limits, so the city has no jurisdiction. 
&lt;/ul&gt;

&lt;p&gt;The council listened politely but was unmoved. Awarding the grant seemed like a no brainer to them. They had gotten
around the city limit restriction before, and the new vs existing argument seemed unimportant. What carried the day was the
claim that this use of the grant money would create jobs, and if grant money wasn't awarded, it would be lost.

&lt;p&gt;I don't remember exactly how we arrived at the next procedural milestone, but the net effect is that after the outcome at the city
council, we ended up needing to make our case before the county commissioners. And this time, our would be competitors were
arguing for their proposal at the same meeting.

&lt;p&gt;After listening to the proposal and our concerns, the commissioners gave the proposal a green light. One of the good ol
boy commissioners patiently informed us in so many words that this decision was a no brainer. This grant money was exactly 
the kind
of bacon they'd been elected to bring home to constituents. Furthermore, the money was a &quot;use it or lose
it&quot; proposition - this money would return to the state pool if not awarded by counties during the current budget cycle. And that claim of job 
creation always resonates in these difficult times [with elections looming]. Concerns about
technical details of the proposal were not significant enough to warrant impeding progress.

&lt;p&gt;&quot;No hard feelings&quot;, our jubilant but gracious competitor assured us after the meeting. &quot;You really ought
to consider applying for your own grant money...&quot;

&lt;p&gt;Losing is not fun. But there we were.

&lt;p&gt;&lt;br&gt;Or were we? The concerns still seemed well founded. Laws are still laws. On the way home, we decided we'd play one 
more card. We had a contact at the county prosecutor
office. The next day, I forwarded a succinctly worded question about the relevant law, and received a quick, 
very helpful reply. The response affirmed that awarding of grants must follow the
letter of the law, and the state auditor has ultimate oversight responsibility. So I called the suggested contact
at the auditor office and conveyed the story one more time. This time, it took. Apparently, the county
government had already been in their sites for shooting from the hip.

&lt;p&gt;The grant was denied.

&lt;p&gt;&lt;br&gt;I don't know if there's any moral here. Yes, the process is ugly. But we already knew that. If I hadn't gotten involved, I
expect the grant would have gotten awarded. But I did get involved, and the outcome is that this particular tax money wasn't misspent 
on this particular proposal. 
Shall we conclude that the system worked? I suppose we could, for sufficiently broad definitions of the terms &quot;system&quot; and &quot;worked&quot;.
</description>
  </item>
  <item>
    <title>Perl Objectified (geek: ON)</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/01/15#perlStuff</link>
    <description>

&lt;p&gt;I've used the Perl programming language for years, but always as something akin to 
an interpreted 'C' (albeit with those handy native hashes and regular expressions). I never bothered to learn 
the perl object model,  I didn't look past its reputation for bolted on funkiness. And it seemed irrelevant 
for my purposes anyway, since I'd always limited my perl use to smallish tasks, addressable with and quick 
and dirty hacks.
&lt;p&gt; Recently, Jeff asked me to look at enhancing the automated backups for some of his network services, 
and I started down the path of throwing together 'the simplest thing that could possibly work', in perl. But I noticed
two things early on: 
&lt;ul&gt;
&lt;li&gt; Jeff already had a backup app running that did most of what he needs. That backup app
just needed some configuration tweaks.
&lt;li&gt; The backup functionality I was reinventing quickly grew beyond what could be easily implemented in a quick 
and dirty hack.
&lt;/ul&gt;

&lt;p&gt;So I punted on the reinvention effort (scheduling some time to work out desired config tweaks for the existing 
app), and I decided the time had come to figure out if perl objects add useful value for me when scaling up. 
&lt;p&gt; To that end, I peeled off a piece of the reinvented application I'd started. This is the piece that deals with
naming the output store (i.e., directory) for a daily backup. As part of that naming process, it also automatically 
handles moving 
off old daily backups to weekly or monthly archives as appropriate. I refactored this functionality into two 
classes, a NameRotator that knows naming rules and how they apply, and a NamerCmds that knows how to carry out 
primitive naming operations (create, list, move, delete) in the target context. Since I tend to run on Linux and code 
on Windows, I subclassed target specific NamerCmds to enable testing on each of those targets. 

&lt;p&gt;The bottom line is that it worked well, with hardly a trace of perl funkiness. This object approach yielded the benefits 
you'd expect.  The NameRotator class provided a clean encapsulation of naming rules and
their application, while NamerCmds subclassing provided useful extensibility without touching base functionality. A 
client makes use of the functionality with just a bit of straightforward code

&lt;pre&gt;
    $whelper = WinNamer-&gt;winNamerCmds(&quot;c:\\bak&quot;, &quot;svcs&quot;);
    $todaysBackupName = NameRotator-&gt;new( $whelper, &quot;err.log&quot; )-&gt;setNextName();
&lt;/pre&gt;


So, now I may be more inclined toward using Perl like an interpreted java...

&lt;p&gt;&lt;i&gt;(The finished functionality works as a motivating example that likely would have helped me
ramp up more directly on Perl objects. I put the write up at &lt;a href=&quot;http://www.differentchairs.com/NameRotator.html&quot;&gt;http://www.differentchairs.com/NameRotator.html&lt;/a&gt;)&lt;/i&gt;</description>
  </item>
  <item>
    <title>Upgrade</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2010/01/12#upgrade</link>
    <description>

&lt;p&gt;As of a few weeks ago, Ursula has been upgraded from back seat to driver's seat.

&lt;br&gt;&lt;img title=&quot;passenger&quot; src=&quot;http://www.differentchairs.com/uback.JPG&quot;/&gt; &lt;p&gt;
&lt;br&gt;&lt;img title=&quot;in command&quot; src=&quot;http://www.differentchairs.com/udriver.JPG&quot;/&gt; &lt;p&gt;

She finally wore down the parents and got her license.


.</description>
  </item>
  <item>
    <title>Read me</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/11/20#readme</link>
    <description>&lt;p&gt;
One evening, back when daughter Ursula was nearly three years old, I was reading my book in bed while she ran around noisily. Then she crashed into something and started crying. Loudly. She didn't look to have sustained any significant damage, but she couldn't be dissuaded from her misery. I tried the usual distractions: toys, books, jokes. No dice - the wailing continued. In desperation, I began, &quot;once upon a time, there was a little girl named Ursula, and she...&quot; 
&lt;p&gt;
The effect was pretty remarkable. The instant Ursula realized this was to be a story about her, she hushed up and listened intently. I don't remember the story I made up, but when it finished, she was pleased and said &quot;read me another one&quot;. Before that, all her stories had been read from books and none had ever starred Ursula. 
&lt;p&gt;
For years thereafter, whenever Ursula said 'read me', our shared understanding was that she'd prefer to hear one of those stories about Ursula, but she'd usually settle for a book story if that was the best we could do.</description>
  </item>
  <item>
    <title>Followups</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/11/13#followups</link>
    <description>
I unloaded that floor nailer I bought from ebay. Paid $140 for it and then sold it for $100 (via craigslist) a few weeks later. My net cost is $40 (not including my time), which is substantially less than I would have paid for a rental. It was still in new condition, so the guy who bought it got a good deal.
&lt;p&gt;
I got the linkage from the Ford dealer (gouge: $90) and installed it. Several hours of pain and suffering involved in figuring out how to accomplish the deed without doing any significant disassembly. (Kinda like a table cloth trick, in reverse...) </description>
  </item>
  <item>
    <title>Ross Lake '09</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/11/03#ross lake</link>
    <description>&lt;br&gt;

My drive back home from Jeff's included a two day stopover at Ross Lake for the annual confab with dad and brothers. Been doing it for ten years now.

&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/rossmorning.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/rossmorning0.JPG&quot; title=&quot;Jeff hunts for the elusive wireless signal one morning.&quot;/&gt;&lt;/a&gt;

&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/rossout.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/rossout0.JPG&quot; title=&quot;dad, jeff, gregg, brian, me&quot;/&gt;&lt;/a&gt;
</description>
  </item>
  <item>
    <title>Car Repairs</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/11/03#car repair</link>
    <description>&lt;br&gt;

On Christmas eve, three years ago, I was driving cross state with family to Jeff's home in Winthrop. It was dark, snowy and icy when the road took a turn where we didn't. The car went straight off an embankment and ended up on its side at the bottom. (A humbling experience...) We were shaken, but unhurt. The car was a mess and wasn't going anywhere soon. Jeff gave us a ride the few remaining miles to dinner with family and friends. 
&lt;p&gt;
Next morning, we returned to the scene. The car was still flopped on its side. There was a Big Rock that had rearranged the front bumper and served as our right side ramp. The other obvious damage was to the bashed in driver side door. We called a tow truck to right the car. Damage would have been considerably worse but for a well placed snow bank. 
&lt;p&gt;
The car wouldn't start.
&lt;p&gt;
Rather than deal with Christmas day car repairs, we towed it to our cabin, covered it up and arranged an alternate ride home, leaving the fixup for another day.
&lt;p&gt;
&lt;div align=&quot;center&quot;&gt;
**
&lt;/div&gt;
&lt;p&gt;
That day finally came a couple weeks ago. I picked up a used driver side door at the local wrecking yard, and hitched a ride back to Winthrop with dad.
&lt;p&gt;
The car looked the same as when I parked it three years ago. It had become a home for yellow jackets, but thankfully, those had died off or become mostly dormant by this time in the year. I replaced the dead battery and found that the engine wouldn't turn. Jeff dumped some oil in the cylinders and I manually rotated the crankshaft to loosen stuck pistons. That did the trick. It then started. But I couldn't shift. Turned out that the linkage between the shift column and transmission had busted. At this point, I was still working in the dirt at the cabin where the car had sat for three years. We installed my replacement door, I crawled under the car to manually flip the shift lever (taking care not to run over myself) and then drove the few miles up to Jeff's house, where he has a real garage to work in. There, we got it jacked up and lighted up enough that I was able to jury rig the linkage back together with wire and hose clamps. Drivability restored, I drove it back home, over the mountains. 
&lt;p&gt;

All that remained was to fix the bumper pretzel. After another trip to the wrecking yard, I swapped in a much straighter bumper and we're now back (mostly) to where we were three years ago. We've still got some driver side wrinkles as reminder that it could have been worse.  And I still need to get to the dealer to pick up the proper replacement part for my linkage hack.  

&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/fordside.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/fordside0.JPG&quot;/&gt;&lt;/a&gt;

&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/fordfront.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/fordfront0.JPG&quot;/&gt;&lt;/a&gt;
&lt;p&gt;
&lt;i&gt;A happy outcome, thanks to considerable help from Jeff and Dad.&lt;/i&gt;</description>
  </item>
  <item>
    <title>Floored</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/10/12#floored</link>
    <description>

The nailer worked. Jeff came by to visit for a couple days. He helped finish up the nailing and provided his usual energy infusion while sharing the latest from his formidable store of stories. (Will do what I can to return the favor when I go to his place next week.)  &lt;p&gt;
I'm nearly recovered from the subsequent sanding operations. That rental plate sander seems way heavier than when I last drove it ten years ago. Finished product was approved by the local committee. Now I got to get rid of one very lightly used pneumatic floor nailer.

&lt;br&gt;&lt;img title=&quot;jeff&quot; src=&quot;http://www.differentchairs.com/jeff0.jpg&quot;/&gt; &lt;p&gt;
&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/floorS.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/floorS0.jpg&quot;/&gt;&lt;/a&gt; &lt;p&gt;
&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/floorN.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/floorN0.jpg&quot;/&gt;&lt;/a&gt; &lt;p&gt;
&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/floored.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/floored0.jpg&quot;/&gt;&lt;/a&gt; &lt;p&gt;

.</description>
  </item>
  <item>
    <title>Home Improvements</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/09/20#home improvement</link>
    <description>

Am unemployed, so I have time to focus on local projects, some of which have gotten out prioritized for years. I am Home Improvement Man. &lt;p&gt;I cleaned up and finished off the garage -- got rid of most of the ten year accumulation of junk, then installed drywall, shelving and a proper workshop area. 
&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/garage.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/garage0.JPG&quot;/&gt;&lt;/a&gt; &lt;p&gt;
The well pump died, so I replaced it. Extracting the dead pump was a bit of a project. It was hanging from what turned out to be sixty feet of 1-1/4 inch steel pipe -- more than I could pull out by hand. After some head scratching and googling, I got a couple come-alongs, made wood clamp blocks and cut a hole in the pumphouse roof. This allowed me to ratchet the pipe up a few feet at a time and remove each pipe section in turn. Balancing those twenty foot sections on end for removal was a circus act, but it all worked out. I installed the new pump with lightweight plastic (PE) pipe. The plastic is infinitely easier to work with than steel. Putting the new pump in place went at least 10x faster than the old extraction and the finished product works like a champ.
&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/pumplift.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/pumplift0.JPG&quot;/&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.differentchairs.com/downpipeup.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/downpipeup0.JPG&quot;/&gt;&lt;/a&gt;
&lt;p&gt;My latest task is finishing the floor around the upstairs landing, replacing the temporary carpet scraps we installed eight years ago. First I had to tear up and reattach some of the underlying subfloor. In the process, I inserted additional nailers to fix incessant floor squeaks
&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/subfloor.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/subfloor0.JPG&quot;/&gt;&lt;/a&gt;
&lt;br&gt;
Am now partway through the installation. Getting the trim detail under the rails right makes for slow going. I rented a manual nailer for a day before deciding that it will be cost effective to just buy a pneumatic flooring nailer. It's on order a should arrive at the end of the week.
&lt;br&gt;&lt;a href=&quot;http://www.differentchairs.com/flooring.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/flooring0.JPG&quot;/&gt;&lt;/a&gt;

.</description>
  </item>
  <item>
    <title>CallerID</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/07/24#callerID</link>
    <description>

I put a writeup of the caller ID tracking program &lt;a href=&quot;http://www.differentchairs.com/exercises/callerId.html&quot;&gt;here&lt;/a&gt;. </description>
  </item>
  <item>
    <title>Accounting</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/07/13#accounting</link>
    <description>

&lt;i&gt;Scenario: we're sitting down at home to eat dinner and the landline rings.&lt;/i&gt; [Yes, I still have a home landline. But only because the mobile signal in my corner of the footprint is particularly unreliable.] &lt;i&gt;Someone gets up to look at the caller ID and says 'toll free', so we ignore it and go back to our meal. That seems like it happens all the time, but until recently, I had no way to quantify the experience.&lt;/i&gt;  &lt;br&gt;&lt;br&gt;


It has long bothered me that the landline provider (QWEST) only gives detailed accounting for outgoing long distance calls, whereas my wireless provider (VZW) gives me a detailed accounting of all incoming and outgoing calls. I'd like to have easy access to a summary of how many calls from 'toll free' and 'unknown caller' I receive every month.&lt;br&gt;&lt;br&gt;


An optimally geeky fix would be to install an asterisk pbx system at home and route all landline calls through that for logging purposes. I might get around to doing that sometime before the landline finally gets unplugged. Or I could grab any of the freely available caller ID utilities from the web. But for now, I'm satisfying the need via reinvention. I keep a modem on the line and log the caller id info it spits out. The modem is in a decrepit laptop that is only partially functional since a bike mishap a few years ago which left both me and the computer banged up. (I recovered, but the laptop still looks like an elephant stepped on it.)  I cobbled a script together to configure the modem and log its output to a file. The script works but is Most Ugly. In the interest of academics, I'll probably clean it up a bit and post it somewhere. I also expect to extend the functionality. (e.g., I'll slurp the caller id info into a real database instead of a simple flat file, and I'll add options for sending notifications on specific events).&lt;br&gt;&lt;br&gt;


Haven't yet collected enough data to better characterize the amount of those annoyance calls.</description>
  </item>
  <item>
    <title>We Have a Winner.</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/06/30#We have a winner</link>
    <description>I gave up trying to coax free email from live.com across the finish line. It just didn't want to integrate seamlessly with my version of the outlook client. My Outlook client would routinely get stuck in the 'checking email' state, and task manager suggested it was stuck while attempting to log into live.com. I removed the automatic email check from outlook (for live.com mail) and it hasn't stuck since. Gmail access from the outlook client had no such issue. It just works. 
 </description>
  </item>
  <item>
    <title>Delivered the daughters </title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/06/30#shipped</link>
    <description>to their annual week of summer music camp (at WSU) yesterday. Twelve straight hours of driving mostly straight. Two daughters, with two of their friends. All quiet on the home front today.</description>
  </item>
  <item>
    <title>Free email</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/06/04#email</link>
    <description>

Have been testing free email accounts lately. Tried yahoo!, gmail and hotmail/live. 


&lt;p&gt;I've pretty much dismissed yahoo! mail. In their ongoing efforts to commit suicide, yahoo! makes free mail accessible only from their web interface, and that web interface pummels me with a continuing barrage of ads. To be fair though, yahoo! does seem to provide the best feature set at the moment for their webmail client. And perhaps my usage patterns when using yahoo! webmail have indicated I'm a user who is best served by that barrage of ads. 


&lt;p&gt;The MS webmail client seems to serve up much of the same trashy ad content (get rich quick, miracle drugs, cheap diplomas, hot dates, improved body parts) but ads don't update at the same frenetic pace as for yahoo!, and so by comparison, the experience seems somehow less objectionable. (Go figure.) 


&lt;p&gt;Finding ads in the gmail web client, in keeping with google strategy, is like playing where's waldo. 


&lt;p&gt;Both gmail and hotmail/live are usable from my local outlook client -- my preferred mode of access. Hotmail seems significantly slower than live. But I haven't bothered to measure differences. If it really is slower, I have no clue whether that's due to something on my end, or server side.


&lt;p&gt;So in general gmail is winning, but live is still a contender.


&lt;p&gt;Kinda interesting to ponder the business model that has these giants battling to provide my free email service. My local email client will very soon be a thing of the past and I will be happily using a descendant of today's webmail/social networking clients. My consuming eyeballs will then be inextricably bound to the provider of that service. But I digress.
</description>
  </item>
  <item>
    <title>just fishing</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2009/06/04#fishing</link>
    <description>
At a previous workplace, the company had sold itself for a tidy sum, and then a few years later, the company founder bought it back at 
a fraction of the selling price. A corporate form of &quot;catch and release&quot;...
</description>
  </item>
  <item>
    <title>Commutes.</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2008/05/18#commute</link>
    <description>
Best commute I ever had was the summer just out of high school when I was changing sprinklers for a farmer 
towards the upper end of the rural valley I lived in. I'd drive 30 miles each way over traffic-free county roads and never tire 
of the unbounded postcard scenery. Gas was a lot cheaper back then. 

&lt;p&gt;Oddest commute was during my brief business stint in Seoul. The office of my host, on the outskirts, wasn't near 
any subway lines, so I took
a cab to work each morning. Rush hours in Seoul seems routinely more deadlocked than anything I've experienced at home.
But, as maybe happens anywhere, I got used to it, and I eventually always did get to where I wanted. What I never grew
accustomed to was some of the local driving idioms. Like being in the far right of six lanes of heavy rush
hour traffic and making a slow speed U turn, cutting across all lanes. This seemed a fairly standard maneuver. Less 
common, but
more alarming was making occasional use of the sidewalk as an extra traffic lane when all other lanes are at capacity. 
&lt;p&gt;In spite of the seeming deadlock, that Korean traffic did seem more orderly. I never saw any traffic accidents while there.

&lt;p&gt;During my three weeks in Seoul, I noticed a total of only three bicycle commuters. Possibly I just wasn't looking in the
right places. When in Tokyo the previous year, bicycle commuters were commonplace.

&lt;p&gt;&lt;a href=&quot;http://www.differentchairs.com/FerryWait.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/FerryWait0.jpg&quot;/&gt;&lt;/a&gt;
&lt;p&gt;Nowadays, when home, I'm primarily a bicycle commuter. To get from my island home to the office in downtown Bellevue, takes 
an hour on the road and 45 minutes on the ferry into Seattle. Other that the few blocks through downtown Seattle,
the ride is away from heavy traffic. Now the scenery isn't as consistently spectacular as for that long ago summer job 
commute. But I suppose that serves to make the good days more noteworthy.

&lt;p&gt;&lt;a href=&quot;http://www.differentchairs.com/SeattleSunrise.jpg&quot;&gt;&lt;img src=&quot;http://www.differentchairs.com/SeattleSunrise0.jpg&quot;/&gt;&lt;/a&gt;</description>
  </item>
  <item>
    <title>I'm back</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2007/10/10#back</link>
    <description>
An astute reader might notice a bit of a gap in entry dates. That pretty much corresponds to 
the year of my intense involvement with a phone project. The task was to build a full featured 
phone UI using the UI Engine and associated toolset previously developed by UIEvolution. (NDA 
says I can't disclose project details.)

&lt;p&gt;My initial task was to develop the 'platform interface' part of calling. Getting up to speed on
the platform included some back and forth travel to Seoul, to work directly with manufacturer engineers. 
I still don't understand the appeal of kim chee, but I did manage to pick up a fair bit of knowledge 
about CDMA protocols along the way. My initial role later morphed into project lead, where I had a 
significant hand in most pieces of the application.

&lt;p&gt;A modern phone is a complicated beast. Besides calling, the most substantial chunks were address book, messaging,
media access and camera. Fun project.</description>
  </item>
  <item>
    <title>Books again</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/10/22#booksagain</link>
    <description>
&lt;p&gt;Finished reading Frankenstein, and Was not especially impressed with the story. It didn't provide me sufficient basis on which to suspend disbelief. (Mainly, I couldn't buy the monster's transformation into eloquent philosopher.) In the end, it felt like the story was a fairly thin framework upon which to hang a whole lot of explicit and ponderous philosophizing.  

&lt;p&gt;Was interesting to see how little overlap there is between the original story and movies based on that story.</description>
  </item>
  <item>
    <title>Game on.</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/08/22#gameOn</link>
    <description>
There are few board ['bored'] games we play regularly at our house. Several of us like the idea of Monopoly, but we've never really got up enough steam to actually play the game to its bitter and glorious conclusion. At least not via the official rulebook. Over the years, we've refined our local rules to a much abridged game that we call &lt;i&gt;&quot;Start Monopoly&quot;&lt;/i&gt;. To play &quot;Start Monopoly&quot;, we randomly deal out all the properties beforehand and have a vigorous round of trading wherein each player tries to maximize holdings according to their preferred metric. Then, at the first turn each player buys housing for any monopolies as desired. Usually, the clear winner is pretty well determined by the 3rd or 4th turn, at which point, we call it done and move on to other activities. &quot;Start Monopoly&quot; typically takes about thirty minutes to play. </description>
  </item>
  <item>
    <title>Book Update. Phone update.</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/08/21#bookUpdate</link>
    <description>
Still using that book reader app on my cell phone. Since finishing Moby Dick [good story], I've also read &quot;A Room of One's Own&quot; and am now partway through Frankenstein. A couple of months back, I switched phones -- from the LG VX8000 to a VX9800. The new VX9800 doesn't work nearly as well in one handed reader mode as the old 8000. It's got the flip out qwerty keyboard, with keys that are too small for most functions. The cursor keys are especially challenging for my fat fingers to hit reliably. The inside display is nice, but the inside keyboard interface seems optimized for two thumbed (hunt and peck) use. 
&lt;p&gt;I plugged a 1GB memory card into the phone and loaded it up with mp3 music content. (The phone is billed as a multimedia platform, and looks to have good hardware support for audio and video.) It does sound OK. But it's no IPod killer. Too damn fat and heavy. I'm not a real fan of personal audio devices anyway. [aka, Personal Isolation Devices.] Was mostly just feeling obliged to experiment with current multimedia capabilities, since I work for a subsidiary of one of the bigger computer game makers in the world.</description>
  </item>
  <item>
    <title>BookReader</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/04/29#BookReader</link>
    <description>A few years back I carried around a PDA (PocketPC) for a while. I used it mainly for reading books, mostly while waiting to do something else. (Waiting to ride the bus or ferry. Waiting to buy something in the store.) I liked being able to read  even under lousy lighting conditions. &lt;p&gt;
Downsides were the size of the PDA (at the time, the typical PocketPC didn't easily fit in my pocket) and its relatively short battery life. After reading a few books, I set the PDA aside.&lt;p&gt;

Nowadays, the computing functionality of my cell phone is approaching that of the PDA I used before. I wrote a little bookreader app for the phone, and grabbed some uncopyrighted book content from the guttenberg.org site. The phone can't hold as much local content, but it does have a fair sized cache, and can pull in content on the fly as needed. The smaller phone display (I use an LG VX8000, which has a usable display resolution of 176x203) doesn't show as much text per page as the PDA did, but it still seems sufficiently readable to me. The reader can show text in either of 2 different sizes.&lt;p&gt;

With the larger text size, about 50 words get rendered on the screen. The smaller text allows about 70 words per screen. The improved portability more than compensates for the smaller display size. I just about always have my phone with me.&lt;p&gt;

Am currently reading Moby Dick via the phone. (One of those titles that's been on my 'to read' list forever). Am about a quarter of the way through so far.</description>
  </item>
  <item>
    <title>Blush</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/04/26#blush</link>
    <description>
Another reason it took me so long to put up a blog is that I knew it would highlight the amount of time between inspirations (or whatever it is that results in the next blog entry). &lt;p&gt;

In the absence of proper inspiration, I guess we'll designate this a slog entry...&lt;p&gt;

I just went back and looked at that pinger script. It's been running for a month, and the results are mildly interesting (to me anyway). We haven't experienced any major network outage from our provider during that time. The most significant outage happened one Friday evening for nearly three minutes. Definitely long enough to generate a support call or three.&lt;p&gt;

&lt;blockquote&gt;
&lt;pre&gt;
6:06p Fri -- 66.77.88.99 response received -- 0ms 
6:06p Fri -- 66.77.88.99 NO response received -- 1000ms 
6:07p Fri -- 66.77.88.99 NO response received -- 1000ms 
6:07p Fri -- 66.77.88.99 NO response received -- 1000ms 
6:07p Fri -- 66.77.88.99 NO response received -- 1000ms 
6:08p Fri -- 66.77.88.99 NO response received -- 1000ms 
6:08p Fri -- 66.77.88.99 NO response received -- 1000ms 
6:09p Fri -- 66.77.88.99 response received -- 10ms 
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;

And a few times a week, we see smaller, variously scattered clusters of timeouts. May result from denial of service activity on our side, or routing instability on their side. I think their side, since I'm able to get to my device just fine from my side. Sometime,I'll see if I can reduce this info down to a few digestible statistics.&lt;p&gt;</description>
  </item>
  <item>
    <title>Service Scripts</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/03/19#serviceScript</link>
    <description>
That connectivity script fits into what I classify as 'service grade system monitor scripts'. These are long running scripts that continually monitor the status of some system characteristic, and do something useful with the results. The simpler scripts just record their results to a log file. More complex scripts can also scan results for alarm conditions and fire alarms as appropriate. (There's always an element of reinventing snmp management software functionality when treading this path. But there can be legitimate reasons to roll your own.)&lt;br&gt;

These service grade scripts:
&lt;ul&gt;
&lt;li&gt;check a status while running in a continual loop.
&lt;li&gt;on startup, will not launch a second loop if they're already running (to facilitate relaunch from the OS task scheduler.)
&lt;li&gt;log results to a length limited output file.
&lt;li&gt;can open a channel to the resource in question, typically via the filesystem, telnet, http, ftp or snmp.
&lt;li&gt;aren't particulary dependent on where they sit in the filesystem, or on the current working directory.
&lt;li&gt;tend to provide both positive and negative feedback.
&lt;li&gt;may detect alarm conditions and send alarms as appropriate (say, via email or sms).
&lt;/ul&gt;&lt;br&gt;

I have this kind of script running all over the network. Some in conjunction with mrtg, others as standalone. Some of the network sites we monitor are fairly remote and expensive to get to. (Especially the mountaintops in the dead of winter.) The scripted warning system has helped us to assure sanity as the system grows in complexity.&lt;p&gt;
Whenever we get surprised by a system outage or anomaly, we consider ways to automate the handling of its next occurence. In the case of the outage yesterday, it took us a while to pinpoint the breakage to the specific edge connection, and once we did, we didn't have a precise profile trace of the outage. If that particular breakage happens again, we'll consider adding a watcher to the new logfile to fire alarm messages as appropriate.</description>
  </item>
  <item>
    <title>Connection Logger Script</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/03/19#pingNN</link>
    <description>
here's that logger script I made yesterday. 

&lt;code&gt;
&lt;pre&gt;
@goto start
pixPasswordHere




enable
pixEnablePasswordHere
ping 55.111.22.3
exit

exit

(the above cruft is used by nc.exe as telnet session input)
(replace passwords and neighbor IP address as appropriate.)

:: expected output:
10:54a Sun -- 55.111.22.3 response received -- 10ms
10:55a Sun -- 55.111.22.3 response received -- 10ms
10:56a Sun -- 55.111.22.3 NO response received -- 1000ms 
10:56a Sun -- 55.111.22.3 response received -- 10ms
10:57a Sun -- 55.111.22.3 response received -- 10ms


:start
@echo off

:: -----------------
:: pingNN.cmd
::
:: keep a running log of connection state from edge PIX to upstream interface
:: (periodically telnet into the PIX and save response of ping to its neighbor)
::
:: uses: 
::   netcat (aka, nc.exe) for scripting the telnet connection.
::   perl
::   unique.pl perl script to filter out contiguous duplicate lines of text.
::   limitAt.bat keeps a file from growing past the specified size
:: -----------------


set PixIP=10.10.2.2

set delaySeconds=20
set loopDelay=perl -e &quot;sleep %delaySeconds%&quot;

set maxLogfileSize=5000000

set mylogdir=c:\limited
if not exist %mylogdir% md %mylogdir%
set mylogfile=%mylogdir%\pingNN-fromPIX.log

:: check age of %mylogfile%
if not exist %mylogfile% goto checked
for /f %%a in ('perl -e &quot;use File::stat;print time-stat('%mylogfile%')-&amp;gt;mtime&quot; ') do set age=%%a
:: quit if already running
if %age% LSS 300 (
    echo Already appears to be Running...
    goto :eof
    ) else (
  echo.&amp;gt;&amp;gt;%mylogfile%
  )

:checked

:loop
for /f %%a in ('time/t') do (
  for /f %%x in ('date/t') do (
    for /f &quot;tokens=*&quot; %%m in ('nc -i 5 %PixIP% ^&amp;lt;%~fs0 ^| find &quot;response&quot; ^|perl c:\bat\unique.pl') do (
      echo %%a %%x -- %%m
      echo %%a %%x -- %%m &amp;gt;&amp;gt; %mylogfile%
      )
    )
  )
%loopDelay%
if exist %mylogfile% call c:\bat\limitAt %maxLogfileSize% %mylogfile% old
goto loop
&lt;/pre&gt;
&lt;/code&gt;</description>
  </item>
  <item>
    <title>Outage this morning</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/03/19#entryTwo</link>
    <description>&lt;p&gt;&lt;br&gt;
Got a call from Erik yesterday morning. The network (methownet.com) was experiencing intermittent outages. Erik had already done most of the troubleshooting. The only additional info needed was specifically where the connectivity broke down. After a bit more poking around, we learned that the break seemed to happen between the device (firewall) on the outer edge of our network and our providers  device on that same subnet.

&lt;p&gt;I called our provider to let them know that we were needing some attention, and then wrote a script to keep an ongoing log of the connectivity status for that critical link. </description>
  </item>
  <item>
    <title>chasing the blog bandwagon</title>
    <link>http://www.differentchairs.com/cgi-bin/blog.cgi/2006/03/18#entryOne</link>
    <description>&lt;p&gt;&lt;br&gt;Been intending to do this for ages. Until now, I haven't made time to scrape together the pieces needed. Due to my control freakish leanings, I'm avoiding use of the various free blogging sites. I'd rather hold onto my delusion of control over how this gets used. Or unused. &lt;p&gt;
I just came across this blog script at blosxom.com, and it looked simple enough to try. So here we are.&lt;p&gt;
Introduction? I'm Steve. Middle-aged geek of the computing persuasion. &lt;a href=&quot;http://www.differentchairs.com/photo/house14d.jpg&quot;&gt;Here's a picture of me&lt;/a&gt; a few years ago when I was working to build my home.  Nine months ago, I returned fulltime (after an extended stint as network engineer at ISP methownet.com, where I still serve as occasional consultant) to
my primary career, programming. I'm now writing applications to run mostly on cell phones, for UIEvolution in Bellevue, WA. (Java and C++, in case you're interested.)&lt;p&gt;
On the home front, been married to Fon Wen for alarmingly close to twenty years. (That used to sound like longer.) We raise our daughters, Lia and Ursula at our now [&lt;i&gt;&quot;mostly&quot;&lt;/i&gt;, reminds Fon] finished home on Bainbridge Island.</description>
  </item>
  </channel>
</rss>