<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>klugblog</title>
  <link>http://larryklug.livejournal.com/</link>
  <description>klugblog - LiveJournal.com</description>
  <lastBuildDate>Sat, 30 Aug 2008 03:17:37 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>larryklug</lj:journal>
  <lj:journalid>3580096</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://l-userpic.livejournal.com/19028942/3580096</url>
    <title>klugblog</title>
    <link>http://larryklug.livejournal.com/</link>
    <width>44</width>
    <height>60</height>
  </image>

<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/18037.html</guid>
  <pubDate>Sat, 30 Aug 2008 03:17:37 GMT</pubDate>
  <link>http://larryklug.livejournal.com/18037.html</link>
  <description>working later than usual tonight</description>
  <comments>http://larryklug.livejournal.com/18037.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/17879.html</guid>
  <pubDate>Sun, 24 Aug 2008 20:17:24 GMT</pubDate>
  <link>http://larryklug.livejournal.com/17879.html</link>
  <description>The vast majority of my time is spent fixing broken things. Businesses, software, furniture, toys, relationships.</description>
  <comments>http://larryklug.livejournal.com/17879.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/17539.html</guid>
  <pubDate>Sun, 24 Aug 2008 18:03:34 GMT</pubDate>
  <link>http://larryklug.livejournal.com/17539.html</link>
  <description>Removed gitosis and configured plain git server.</description>
  <comments>http://larryklug.livejournal.com/17539.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/17228.html</guid>
  <pubDate>Sun, 17 Aug 2008 18:49:47 GMT</pubDate>
  <link>http://larryklug.livejournal.com/17228.html</link>
  <description>Completed gutter repair</description>
  <comments>http://larryklug.livejournal.com/17228.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/17058.html</guid>
  <pubDate>Sat, 16 Aug 2008 21:22:27 GMT</pubDate>
  <link>http://larryklug.livejournal.com/17058.html</link>
  <description>Trying to repair a broken gutter with one 6 foot ladder and one 32 foot ladder.</description>
  <comments>http://larryklug.livejournal.com/17058.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/16703.html</guid>
  <pubDate>Sat, 16 Aug 2008 12:55:29 GMT</pubDate>
  <link>http://larryklug.livejournal.com/16703.html</link>
  <description>Testing intertwingularity</description>
  <comments>http://larryklug.livejournal.com/16703.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/16545.html</guid>
  <pubDate>Fri, 09 Nov 2007 19:00:41 GMT</pubDate>
  <title>Music on my mind</title>
  <link>http://larryklug.livejournal.com/16545.html</link>
  <description>After a many year hiatus, I have been performing quite a bit lately. It started earlier this summer when my sister was visiting. She hadn&apos;t seen me play in many years and she asked if I could schedule some small scale coffee house gig somewhere during the time she would be in town. I found an open-mic show in the downtown area and did four or five of my original songs for her. It was so much fun, the following week I started looking around for other places to play and dusting off some of my old material. I did the next 13 consecutive Wednesdays at a small club in Cary with a lovely outdoor patio performance area. Another musician buddy of mine called and invited me to split a Friday night show with him at this coffee house in Apex. After the show, we went to the sports bar near to the coffee house and found out that the sports bar owner was looking for live music as well. We have been playing there every weekend for the past 5 weeks. &lt;br /&gt;&lt;br /&gt;Having a steady gig has helped to motivate me to finish some of those incomplete songs I had lying around and has really whipped my voice back into shape. I&apos;m certain I will be playing more around the area as I have been getting a pretty good response from the people who have been out to listen. You can check my &lt;a href=&quot;http://myspace.com/larryklugmusic&quot;&gt;myspace&lt;/a&gt; profile if you would like to see my performing schedule.</description>
  <comments>http://larryklug.livejournal.com/16545.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/16254.html</guid>
  <pubDate>Fri, 09 Nov 2007 15:27:43 GMT</pubDate>
  <title>Mark Holland: RIP</title>
  <link>http://larryklug.livejournal.com/16254.html</link>
  <description>Another good friend of mine has &lt;a href=&quot;http://www.sptimes.com/2007/11/06/Hillsborough/Family__friends_mourn.shtml&quot;&gt;passed away&lt;/a&gt;. He had talked to me before about wanting to take his own life, but that was years ago when he was involved in some city zoning issues and he thought he was going to lose his business.&lt;br /&gt;&lt;br /&gt;When I last spoke to him a couple of weeks ago, he said that since those business issues had been resolved, those dark thoughts had not been with him. We laughed and laughed about stupid childish things, playfully insulted each other repeatedly and sang songs back and forth to each other. &lt;br /&gt;&lt;br /&gt;Mark was getting ready to go on vacation to Canada and he told me he kept having this dream about waking up in the front seat of his van with fallen snow completely covering the front windshield. He said that this dream gave him the most pleasant, sedate feeling he could imagine and that with his vacation approaching, he was daydreaming about that scenario constantly. &lt;br /&gt;&lt;br /&gt;Often, I would answer the phone to hear only music playing. Mark would just set the phone down beside some wobbly old Jimmie Rodgers song and hang up without a word after the song was done. Damn, I&apos;m going to miss that.&lt;br /&gt;&lt;br /&gt;He distinctly promised me he would not do this...</description>
  <comments>http://larryklug.livejournal.com/16254.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/16032.html</guid>
  <pubDate>Fri, 22 Sep 2006 22:29:02 GMT</pubDate>
  <title>Work: Cruise Control</title>
  <link>http://larryklug.livejournal.com/16032.html</link>
  <description>I&apos;ve just started development on a new project at work. I&apos;ve taken the time to establish as many agile best practices as I can BEFORE coding begins. I&apos;ve always wanted to do this up front work, but I could never seem to resist the urge to start coding right away. Since it&apos;s nearly impossible to retrofit a project after you&apos;re into the gutty-works, I usually wind up doing without and kicking myself later in the project when things go awry. &lt;br /&gt;&lt;br /&gt;We&apos;ve employed an XP like agile process, so all of the story cards have been authored, estimated, prioritized and added into our project management tool (Rally). We&apos;re also using Rally to manage defects and to drive the acceptance criteria.&lt;br /&gt;&lt;br /&gt;I&apos;ve started with the new ASP.NET 2.0 framework and SQL server 2005. I made all of the database creation, population, cleanup and incremental scripts earlier this week. No db hacking without the db scripts being updated to reflect the change. &lt;br /&gt;&lt;br /&gt;I&apos;ve switched to Subversion as my source control repository and added a DevStudio Subversion plug-in to replace the behavior of the gawdawful Visual Source Safe integration.   &lt;br /&gt;&lt;br /&gt;I&apos;ve added log4net for app logging. I&apos;ve also included my old javascript debugging framework and a standards compliant templated presentation pattern using xhtml, css and MasterPages. &lt;br /&gt;&lt;br /&gt;I&apos;ve added NUnit.ASP and MBUnit and a series of unit test stubs in order to be ready to use the &quot;Test First&quot; development approach.&lt;br /&gt;&lt;br /&gt;I&apos;ve created a series of scripts to manage the build and deployment of the project externally using MSBuild. &lt;br /&gt;&lt;br /&gt;I just managed to get CruiseControl.NET working about an hour ago. Now whenever code is committed to the repository, a clean-room build gets kicked off and any compilation, deployment or testing failure sets off the fire alarm.&lt;br /&gt;&lt;br /&gt;Although I&apos;m tired from wrestling with these components all day, I can hardly wait to get to coding with all of my new bits in place. It&apos;s the first time I&apos;ve actually wanted to code work stuff over the weekend in quite some time.</description>
  <comments>http://larryklug.livejournal.com/16032.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/15622.html</guid>
  <pubDate>Thu, 21 Sep 2006 23:21:58 GMT</pubDate>
  <title>Life: Still alive</title>
  <link>http://larryklug.livejournal.com/15622.html</link>
  <description>I&apos;m finally beginning to feel like a normal human being. I suppose you never can predict what type of event will toss you into an emotional tailspin. My grandmother passes away and I blog of my sadness. Grandfather dies, brief little expression of grief. My music partner, who I haven&apos;t been face-to-face with in three years dies and I spend two weeks crawling on the floor and kicking holes in the walls. Sure, I&apos;m my usual happy-go-lucky self most of the time, but my wife leaves for work, I crumble. Alone in the car...crying like a baby. I&apos;ll be normal at work all day long, laughing, kicking ass and productive, then in my car, sobbing all the way home and pounding the dashboard. I drive around my neighborhood for twenty minutes trying to compose myself. This has been going on for an entire month. &lt;br /&gt;&lt;br /&gt;I&apos;m getting better. It&apos;s only happened once this week, but DAMN, I am officially ready to be back to normal now.&lt;br /&gt;&lt;br /&gt;My 20th high school reunion is happening in a couple of weeks. I won&apos;t be able to make it, as I&apos;m scheduled to be in Las Vegas . I&apos;ve recently made contact with many of my old, long lost friends from the high school days. It&apos;s weird to see names you so strongly recognize, but haven&apos;t spoken aloud for twenty years. I called my high school girlfriend and got an answering machine. Three seconds of her voice and I was crippled with nostalgia.</description>
  <comments>http://larryklug.livejournal.com/15622.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/15500.html</guid>
  <pubDate>Thu, 10 Aug 2006 23:21:09 GMT</pubDate>
  <title>Richard Charles Hasley - RIP</title>
  <link>http://larryklug.livejournal.com/15500.html</link>
  <description>Richard Charles Hasley&lt;br /&gt;&lt;br /&gt;August 08,2006&lt;br /&gt;&lt;br /&gt;NASHVILLE, Tenn. Richard Charles Hasley, born July 29, 1961, died Friday, Aug 4, 2006. He was a graduate of Kinston High School and was employed by Dell Computers in Nashville, Tenn. Rick was a wonderful son, brother, grandson, nephew, and to his cousins a brother. He was loved so deeply by all his family. He loved his music and his family very much. Preceded in death by the late Robert C. Hasley, Richard is survived by his mother, Jeannie Dunn Hasley; his beloved sister, Tammy H. Rouse and brother-in-law Greg; a very special niece Jessica Rouse; grandmother Annie C. Dunn; uncle Bobby Dunn, aunt Sandra D. and uncle Alton Deaver, aunt Linda D. and uncle Bob Melvin; cousins, Dionne J. Hill Williams, Chris Jones, Louie Deaver, Joshua and Ashley Deaver, Ryan Hill, Corey Hill, Carson Deaver and Quentin Deaver. The funeral will be held at 1 p.m. Tuesday at Edwards Funeral Home in Kinston, N.C. with burial to follow at Westview Cemetery. The family will receive friends at the home of Bobby Dunn, 209 Hill St., Kinston, N.C. Edwards Funeral Home is in charge of arrangements.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://gramparsons.com/test/calamity/img/twins_mangler.jpg&quot;&gt;Ricky, Mangler and Me&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://gramparsons.com/test/calamity/img/twins.jpg&quot;&gt;Me and Ricky with Gram&apos;s Nudie suit bottoms&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://gramparsons.com/test/calamity/img/twins2.jpg&quot;&gt;Coming offstage after first Gramfest&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://gramparsons.com/test/calamity/img/twins_star.jpg&quot;&gt;With Polly at Gram&apos;s Star in the Country Music Walk of Fame&lt;/a&gt;</description>
  <comments>http://larryklug.livejournal.com/15500.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>70</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/15178.html</guid>
  <pubDate>Sun, 19 Mar 2006 15:16:53 GMT</pubDate>
  <title>Back In Blog</title>
  <link>http://larryklug.livejournal.com/15178.html</link>
  <description>Wow, it&apos;s been a while.&lt;br /&gt;&lt;br /&gt;I started my new job in January. I took a principal role with an &lt;a href=&quot;http://www.iticentral.com&quot;&gt;excellent software consulting firm&lt;/a&gt; here in Raleigh. The job is an excellent fit for me (as well as for the company). I was a bit worried about joining a smaller practice, but I&apos;ve been nothing but impressed. The team are very good, all seasoned veterans, all serious hard workers. The President is trying hard to make this the best software practice in the world (&lt;a href=&quot;http://www.iticentral.com/tiki-read_article.php?articleId=42&quot;&gt;and making good progress&lt;/a&gt; towards that goal). It&apos;s a great place to work.&lt;br /&gt;&lt;br /&gt;My previous employer seems to be amplifying the pace of their death march. The managers are playing &quot;musical chairs&quot; again, shuffling their offices around. The team is pouring effort into tweaking the task management tool while the real product is broken and hemorrhaging. The director promised me that administrative changes would happen. Maybe he meant when one manager quits, an underling would move from their own (equally sized) office into the now vacant office, then their underling would move into their empty office and so forth. I&apos;m no longer offended, I&apos;m genuinely sad. All that hard work wasted.&lt;br /&gt;&lt;br /&gt;I haven&apos;t checked my personal email account for almost two months. I think I&apos;ll just delete that account for a while. I get continually pissed when some spambot succeeds in authoring a subject header that gets me to view it&apos;s spammy payload. In ten years, I&apos;ve received only two emails from long lost friends. If there are any more long lost friends out there who were planning on catching up with me via electronic mail, you can google my phone number in somewhere around &lt;a href=&quot;http://www.google.com/search?q=klug+raleigh+nc&quot;&gt;0.05 seconds&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://gramparsons.com&quot;&gt;GP website&lt;/a&gt; is overrun with comment spam. I&apos;ve been manually deleting the spam for quite a while, but I&apos;m behind the curve and can&apos;t seem to get motivation enough to cook up a better solution. &lt;br /&gt;&lt;br /&gt;I&apos;ve been doing mostly dotnet development recently. I like C# quite a bit, but have been struggling with Windows as my primary OS more than anything. DevStudio is not so bad for most things but seems pretty unstable. DevStudio will just disappear without a trace several times a day while I&apos;m doing something seemingly innocuous (like editing a style sheet selector). Sidebars fly open and sometimes won&apos;t close, not sure why. Long pauses for no observable reason. Business objects are sometimes cached, sometimes not...&lt;br /&gt;&lt;br /&gt;Googling is much tougher now... &quot;ASP.Net&quot; often finds matches with oldschool Active Server Pages code or worse...Visual Basic code, which is often cross-pollinated with VBScript. JScript frequently pollutes javascript results. Is &quot;DotNet&quot; what I am doing, or is it &quot;ASP.Net&quot;, and how do I describe only the C# variety (or does &quot;csharp&quot; return better results)? Visual Basic seems to be the default everywhere. Also, how do I describe specifically the web application development portion? I&apos;m not building executables. Oh, and I&apos;m using version 2.0, with codebehind and masterpages. &lt;br /&gt;&lt;br /&gt;There are no clear standards or best practices around variable naming, method naming, class naming, package naming. How should I indent, gnu, K&amp;R or BSD? DevStudio autocompletes with BSD, but then cut and paste reformats to K&amp;R. Sun says K&amp;R and I&apos;ve gotten used to that over the years. I&apos;m trying to use BSD for classes and methods now, but still using K&amp;R for interior ifs and loops.&lt;br /&gt;&lt;br /&gt;The whole team project and build management and deployment process has been a struggle for me to figure out. When you change a line of code in DevStudio, magic happens...something gets pre-compiled into something else, deployed somewhere (not sure where), processed by some mystery server process and delivered through some random IP port... Mono has helped me understand much more about what dotnet is all about where DevStudio tends to hide everything. If I had the energy, I would start a book called &quot;How to find out what Microsoft thinks you shouldn&apos;t need to know&quot;.&lt;br /&gt;&lt;br /&gt;Anyway, it&apos;s good to be blogging again.</description>
  <comments>http://larryklug.livejournal.com/15178.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/14943.html</guid>
  <pubDate>Fri, 23 Dec 2005 12:58:38 GMT</pubDate>
  <title>Work: Time for new business cards</title>
  <link>http://larryklug.livejournal.com/14943.html</link>
  <description>I resigned. Yesterday was my last working day at &lt;a href=&quot;http://fiserv.com&quot;&gt;Fiserv&lt;/a&gt;. I&apos;ll still remain employed until the end of the year, but I will be serving out the remainder of my term by burning the last of my vacation time. The last two weeks have been an emotional rollercoaster for me, with some of the lows being lower than I can recall. After years of travel ritual, every single event became a milestone; my last commute to D.C., my last night in the hotel, my last drive to Tysons Corner, last time pressing the broken 2 button in the elevator... &lt;br /&gt;&lt;br /&gt;This all coincided with the last broadcast of Howard Stern on terrestrial radio. Howard has been an important part of my morning routine since my first commute to D.C. more than five years ago. After my first day of travel to D.C., I set the hotel clock-radio alarm to 6:00 AM leaving the station set to whatever was selected by the previous hotel patron. The next morning, Howard woke me, and managed to hold my ear for the next hour or so. That morning, after leaving the hotel, he found his way into my car, earning a rare programmed slot in my radio station favorites list. Howard would wake me every morning I spent on the road and would accompany me for my morning drive to work, ever since. I&apos;ve never really gotten into his television show, and I couldn&apos;t really hang on into the third or fourth hour of the radio show, as that part seemed to be comprised of the more racy and &quot;shocking&quot; bits, which I find boring and contrived. I&apos;m not sure I will be as interested in his new satellite gig, but I may get nostalgic and try to give it a listen at some point in the future.&lt;br /&gt;&lt;br /&gt;I sent Marijah back to her Mother and Stepfather in Virginia last weekend. Long story... Emotionally, this has been the most difficult time in my life. I feel completely defeated. I can still barely keep it all inside.&lt;br /&gt;&lt;br /&gt;I&apos;m frazzled. Sad about leaving my friends and the job I&apos;ve been doing for years. Happy about the new job. Sad about losing Marijah. Happy about my Dad staying with us for a while. I can continue this list for pages, but that would be obsessive (or is it compulsive?). Ugh... the holidays are tough.</description>
  <comments>http://larryklug.livejournal.com/14943.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/14771.html</guid>
  <pubDate>Thu, 15 Sep 2005 14:02:13 GMT</pubDate>
  <title>Life: I&apos;m fine...no really...</title>
  <link>http://larryklug.livejournal.com/14771.html</link>
  <description>It&apos;s called a Basilar Ocular Migraine (or &lt;a href=&quot;http://www.migraine-aura.org/EN/ICHD-II_1.4_Retinal_migraine.html&quot;&gt;Retinal Migraine&lt;/a&gt;). It&apos;s some form of severe migraine-zilla that effects the rear cerebral cortex, the same area responsible for ones vision. It was my first migraine headache since I quit drinking soft drinks more than a year ago, and it was like I had saved up a collective year of mild headaches and unleashed all of them at once. Glad to know it&apos;s not a tumor...&lt;br /&gt;&lt;br /&gt;Events since my last post:&lt;br /&gt;&lt;br /&gt;1. Crashed my car while driving to work (no significant injuries). The insurance company found the damage to be Fifty dollars short of a total loss. It was my first auto insurance claim in just over 20 years of driving.&lt;br /&gt;&lt;br /&gt;2. My daughter had her 17th birthday and got her driving permit (not in that order). She&apos;ll be a month short of 18 years old before she is eligible for her regular drivers license. Want to understand the true state of the U.S. Federal Government at work? Go sit in the DMV waiting room for about 5 hours (wait, I&apos;m sure you&apos;ve all done that already).&lt;br /&gt;&lt;br /&gt;3. Had some trivial bit of neatness that I wanted to share with my blogging buddies, every few hours, pretty much every day, but completely forgot what it was after the thirty seconds it took me to log into my blog and begin composing a message.</description>
  <comments>http://larryklug.livejournal.com/14771.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/14432.html</guid>
  <pubDate>Fri, 29 Jul 2005 15:05:14 GMT</pubDate>
  <title>Life: Warning: Office social events are dangerous to your health.</title>
  <link>http://larryklug.livejournal.com/14432.html</link>
  <description>Yesterday, our office had a &quot;team building&quot; event at a &lt;a href=&quot;http://woodysgolf.com/&quot;&gt;nearby golf complex&lt;a&gt;. After some lovely picnic table food/drinks and the mandatory &quot;team building&quot; exercises, we went off to break in some of &lt;a href=&quot;http://mojavelinux.com&quot;&gt;Dan&apos;s&lt;/a&gt; new golf clubs. After attempting to show off a bit to my friends, and successfully making the requisite fool of myself, I embarked on my 270 mile drive back to North Carolina with my shoulders and neck feeling the toil of testing every club I could get my hands on. &lt;br /&gt;&lt;br /&gt;The traffic was moving at its usual creeping pace when I started to notice that I was unable to relax my neck and shoulder muscles. I felt a strange cramp in my neck when looking over my right shoulder and continued wrenching my head around in an effort to loosen things up a bit. Knowing I was in for a longer-than-usual commute, I reclined my chair an extra notch and tried to remain as stationary as possible. I couldn&apos;t seem to relax.&lt;br /&gt;&lt;br /&gt;After one hour I had traveled just under thirty miles. I wasn&apos;t able to remain still in my seat. I had developed a tremendous migraine headache and my neck had become more painful and stiff. I continued twisting and turning my head, carefully examining every painful movement, over and over in some strange ritual of self-diagnosis. At some point, I noticed that when looking at the license plate of the car in front of me, I had to concentrate in order to read each letter individually. I could read words at a glance, but when I read letters individually, the letter immediately to the left would disappear from my view, making me lose my place within the sequence of characters. Not sure if this was some normal visual anomaly I normally overlook, I became more aware of my difficulty, comparing the sensation to looking around a room after looking directly at a camera flash. My overall field of vision seemed fine, I could clearly see the road and the cars around me but I was becoming less able to see the items I was focusing on directly. Traffic was barely moving, but I made my way to the shoulder and tried to calm myself.&lt;br /&gt;&lt;br /&gt;After sitting for a minute or two, the dashboard seemed to be pulsing with strobing flashes in the left half of my vision in both eyes. I became unable to read the numbers on my dashboard clock. They weren&apos;t out of focus, they simply didn&apos;t exist. It was as if my eyes had seamlessly stitched together my left peripheral view to my right peripheral view. I could only see things if I didn&apos;t look directly at them. I could see vague peripheral motion, the passing car was red...that was a U-Haul truck...I could see that I was parked near an enormous green exit sign, but when I would shift my gaze to read the words, the entire sign would disappear. &lt;br /&gt;&lt;br /&gt;Two more minutes passed and I was completely blind.&lt;br /&gt;&lt;br /&gt;I held my phone in my hand and thought about how to call for help. I hadn&apos;t paid attention to the passing mile markers. I couldn&apos;t read my odometer, which I always reset when beginning my drive. Assessing my vision had distracted me from paying attention to local landmarks. There was a giant exit sign directly in front of me that I could not read. My wife is programmed on speed dial and I can dial her without looking. Menu-Right-Up-Up... I hesitated before connecting the call. I don&apos;t want to cause panic. How can she help me with this situation? I place my thumb on the 9 button and feel the relative proximity of the 1 button. My mind is racing. Could this exit be Occoquan? Maybe it&apos;s that Dumfries exit, what is that called? &lt;br /&gt;&lt;br /&gt;I sit staring straight ahead, relaxing every muscle and take minute to compose myself. I&apos;m afraid to close my eyes. The strobing flashes start to return and rather than trying to evaluate how much I can see, I simple continue to stare straight ahead, letting my vision fade and drift for a bit. I prevent myself from looking directly at the    specific elements of the dashboard, looking instead THROUGH it and off into infinity. The flashing begins to fade and my peripheral view begins to widen again. I feel a bit more calm when I can see that the odometer has a three and a nine in it. &lt;br /&gt;&lt;br /&gt;After a few minutes, my vision returns enough for me to move from the shoulder and cautiously continue to a rest area a few exits away. Shaken, I call my wife. After talking to her, I realize how fucking scared I was. I took some headache medicine and continued on my way, keeping my neck relaxed and calling her every few minutes. There is no hint of vision trouble at all, but the headache continued moved up the back of my head, then settled in my nose, teeth and jaw. When the headache becomes unbearable, I try singing. Surprisingly, that helps a great deal. I gradually feel better over the next five hours of driving and singing, arriving home welcomed by the most amazing electrical storm. &lt;br /&gt;&lt;br /&gt;I took a hot shower and went straight to bed. Woke up this morning feeling quite sore in the neck and shoulders. Right now it feels like I am walking around wearing a midget in a backpack.&lt;/a&gt;&lt;/a&gt;</description>
  <comments>http://larryklug.livejournal.com/14432.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/14102.html</guid>
  <pubDate>Wed, 01 Jun 2005 02:30:50 GMT</pubDate>
  <title>Work: Time for new business cards.</title>
  <link>http://larryklug.livejournal.com/14102.html</link>
  <description>I started working on my current project in June 2001, as a consultant for a &lt;a href=&quot;http://freddiemac.com&quot;&gt;Congressional chartered mortgage underwriting company&lt;/a&gt;. In September, 2002, the product was purchased by a &lt;a href=&quot;http://emergis.com&quot;&gt;Canadian eBusiness company&lt;/a&gt; (interestingly, forged from the remains of a former U.S. telecom monopoly) for somewhere around 30.5 million dollars. After the sale, the project began to down-size, and the development slowed to a crawl. There were several rounds of lay-offs, and periodic bouts of infectious employee attrition. In January of this year, I converted from a consultant to an employee, just as the project hit its lowest head-count ever. &lt;br /&gt;&lt;br /&gt;Last week our product was again purchased, this time by a massive &lt;a href=&quot;http://fiserv.com&quot;&gt;financial industry technology services company&lt;/a&gt; for just under 14 million dollars. We&apos;re now pouring resources into the project with all speed. The influx of resources is great, and feature growth is awesome. We&apos;re now able to do many of the things we&apos;ve wanted to do for years, but couldn&apos;t approach for lack of resources.&lt;br /&gt;&lt;br /&gt;Although I have been on the project longer than any other, due to my recent conversion from a consultant, I am considered one of the newest employees, and have been struggling most with the transition. The Canadians have been extremely slow to embrace me as a new employee, losing paperwork, screwing up payroll, allowing benefits to lapse, etc. The new American company, however have made the transition like turning a switch. I&apos;m flying the new company flag high.</description>
  <comments>http://larryklug.livejournal.com/14102.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/14017.html</guid>
  <pubDate>Sun, 06 Mar 2005 00:42:35 GMT</pubDate>
  <title>Tech: CoLinux</title>
  <link>http://larryklug.livejournal.com/14017.html</link>
  <description>I&apos;ve been fiddling with &lt;a href=&quot;http://colinux.org/&quot;&gt;Cooperative Linux&lt;/a&gt; recently. CoLinux is an interesting Windows hack, allowing a modern Linux kernel to be run as a privileged mode Windows device driver. Windows normally switches the machine&apos;s state between any available privileged mode OS drivers giving full processor and hardware control to each. This was originally designed to allow Windows to utilize some POSIX and OS2 functionality, but with CoLinux, it allows Windows to run a natively compiled Linux kernel (2.6.8) at nearly the same performance as it would run on the same machine standalone. I&apos;m suspicious about the speed, since there are no benchmarks available and the kernel boot message measured only 289.99 BogoMIPS (the same machine measures 3342.33 BogoMIPS when running Linux natively). I suppose the native compilation could have altered the BogoMIPS measurement like it did on my Mac (it measured only 993.28 BogoMIPS but claims to compare closely to a 1.7 GHz Pentium IV). After all, BogoMIPS are, well, Bogus.&lt;br /&gt;&lt;br /&gt;I&apos;ve just installed Fedora Core 1 on CoLinux and it seems to be working fine. The running CoLinux daemon uses less memory than my instant messenger. I&apos;m curious to compare it&apos;s performance with that of VMWare.</description>
  <comments>http://larryklug.livejournal.com/14017.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/13774.html</guid>
  <pubDate>Tue, 15 Feb 2005 17:30:49 GMT</pubDate>
  <title>Work: OOP</title>
  <link>http://larryklug.livejournal.com/13774.html</link>
  <description>In 1993, I got a certification from Microsoft for Object Oriented Programming in C++. What I remember clearly from my final exam is that Otis Spunkmeyer makes a white chocolate macadamia cookie, and a tiny electric oven that the instructor can use to bake them right in the classroom.&lt;br /&gt;&lt;br /&gt;Since that time, I thought I clearly understood the rules of Object Oriented Programming. However, I spent a good part of this past weekend trying to figure out why a simple polymorphic solution I had employed in Java was not working properly. I had thirty or so derived classes that I needed to modify in order to accomplish a simple task. I had added member variables to each class and (for no really particular reason) I was trying to complete the task without adding getter methods to each class. I spent hours trying to get my tests to exhibit the behavior that I expected, but couldn&apos;t seem to get them working properly. My own stubborness got in the way.&lt;br /&gt;&lt;br /&gt;Somehow, back in the day, after grasping the concept of polymorphic methods using method overriding, I assumed that member variables would exhibit the same behavior. Afterall, they both appear to utilize inheritance, and appear so similar, I had assumed that at some level, variable definitions and method definitions were very nearly the same thing.&lt;br /&gt;&lt;br /&gt;For example, compare: &lt;br /&gt;&lt;br /&gt;&lt;code&gt;public String variableName = &quot;quoted string&quot;;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;with:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;public String getVariableName() {return &quot;quoted string&quot;;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note the similarity? So similar in fact, that my mind had merged the two until they appeared to derive from the same construct. I expected them to follow the same inheritance rules and polymorphic behavior. It turns out that I had completely misunderstood &lt;a href=&quot;http://builder.com.com/5100-6370-5031837.html&quot;&gt;Variable Shadowing&lt;/a&gt;. The value of the member variables will always follow the cast of the object, not the value of the originating object as an overridden method will.&lt;br /&gt;&lt;br /&gt;Frustrated, I broke down as I created the most elementary test objects I could conceive.&lt;br /&gt;&lt;pre&gt;
public class Parent() {
    public String variableName = &quot;parent value&quot;;
    
    public String getVariable() {
        return variableName;
    }
}  
&lt;/pre&gt;&lt;br /&gt;and:&lt;br /&gt;&lt;pre&gt;
public class Child() extends Parent {
    public String variableName = &quot;child value&quot;;
    
    public String getVariable() {
        return variableName;
    }
}  
&lt;/pre&gt;&lt;br /&gt;Then I tried:&lt;br /&gt;&lt;pre&gt;
Parent myParent = new Parent();
System.out.println(&quot;myParent.variableName = &quot; + myParent.variableName);
System.out.println(&quot;myParent.getVariable() = &quot; + myParent.getVariable()

Child myChild = new Child();
System.out.println(&quot;myChild.variableName = &quot; + myChild.variableName);
System.out.println(&quot;myChild.getVariable() = &quot; + myChild.getVariable()
&lt;/pre&gt;&lt;br /&gt;The output is:&lt;br /&gt;&lt;pre&gt;
myParent.variableName = parent value
myParent.getVariable() = parent value

myChild.variableName = child value
myChild.getVariable() = child value
&lt;/pre&gt;&lt;br /&gt;Just as I expected, but then came the strange part:&lt;br /&gt;&lt;pre&gt;
System.out.println(&quot;parent member cast as child = &quot; + ((Child)myParent).variableName); 
System.out.println(&quot;parent method cast as child = &quot; + ((Child)myParent).getVariable()); 

System.out.println(&quot;child member cast as parent = &quot; + ((Parent)myChild).variableName); 
System.out.println(&quot;child method cast as parent = &quot; + ((Parent)myChild).getVariable()); 
&lt;/pre&gt;&lt;br /&gt;The output is:&lt;br /&gt;&lt;pre&gt;
parent member cast as child = child value
parent method cast as child = parent value

child member cast as parent = parent value
child method cast as parent = child value
&lt;/pre&gt;&lt;br /&gt;See, the member variable is always bound to the cast, regardless of the originally instantiated object, but the method follows the overridden method. My mind simply did not believe the outcome, and I spent hours re-testing and trying to find some glaring flaw that I was convinced I had made somewhere. Even when the outcome was crystal clear, I still didn&apos;t believe that was the proper behavior, and kept fiddling with my test code until it became cluttered and overwhelming. Then I would throw it out and start again. I just couldn&apos;t accept the outcome.&lt;br /&gt;&lt;br /&gt;I finally found the section on &lt;a href=&quot;http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#34133&quot;&gt;Shadowing Declarations in the Java Language Specification&lt;/a&gt;. Boy, reading that bit makes me understand why people may get a bit confused. Here&apos;s a snippet:&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dd&gt;&lt;br /&gt;A declaration &lt;i&gt;d&lt;/i&gt; of a field, local variable, method parameter, constructor parameter or exception handler parameter named &lt;i&gt;n&lt;/i&gt; shadows the declarations of any other fields, local variables, method parameters, constructor parameters or exception handler parameters named &lt;i&gt;n&lt;/i&gt; that are in scope at the point where &lt;i&gt;d&lt;/i&gt; occurs throughout the scope of &lt;i&gt;d&lt;/i&gt;.&lt;p&gt;&lt;br /&gt;&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;It&apos;s a rookie mistake that took me twelve years to stumble across.</description>
  <comments>http://larryklug.livejournal.com/13774.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/13493.html</guid>
  <pubDate>Sun, 06 Feb 2005 18:24:02 GMT</pubDate>
  <title>Tech: Eclipse</title>
  <link>http://larryklug.livejournal.com/13493.html</link>
  <description>I&apos;ve been using Intellij Idea for most of my development over the past few years. I&apos;m always interested in trying other methods of development, so I frequently spend my free time exercising other code editors and IDE&apos;s in a constant quest for the IDE holy grail. I have tried dozens. Visual J++, SlickEdit, JEdit, Visual Cafe, NetBeans, JBuilder, Visual Age, Vim, XEmacs, Epsilon, Jed, CodeForge, UltraEdit, TextPad, MonoDevelop, etc. Normal procedure is for me to set up one of my existing projects and try to hang with the product exclusively for a few days. I usually keep a few around that exhibit special features that none of the others seem to provide.&lt;br /&gt;&lt;br /&gt;Twice before I have given Eclipse a try, simply trying to make my existing J2EE application fit within what I understood was a peer J2EE capable IDE. Twice before I was left frustrated and confused and deleted Eclipse from my machine. This weekend I gave it another try.&lt;br /&gt;&lt;br /&gt;Third attempt at trying Eclipse:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Surfed eclipse.org for about fifteen minutes. Could not find an appropriate section relative to the Eclipse Java IDE, having not fully understood the differences between the numerous &quot;projects&quot; that were outlined. The site is massive and intimidating.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Surfed the Frequently Asked Questions for anything related to &quot;Java&quot; and &quot;IDE&quot;. Read the entire FAQ. Still not sure if I need to download the &quot;Eclipse Platform&quot; or the &quot;Eclipse SDK&quot; or possibly both. Most SDK&apos;s that I have seen contain libraries, tools, examples and documentation, and I don&apos;t think that is what I need. Still frustrated, not being able to find some sort of organized &quot;product&quot; that will assist me in writing java code. &lt;br /&gt;&lt;br /&gt;&lt;li&gt;Surf to the download page. Pick a mirror and select &quot;3.1 Stream Stable Build&quot; (it seems to be the latest stable build). The resulting download page spills on for pages.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Guessing that maybe the &quot;Eclipse SDK&quot; is actually what I need to download (since it is listed at the top) I pick the appropriate platform. The resulting download is a stunning 92.2 MEGABYTES! And that&apos;s WITHOUT the required JDK. &lt;br /&gt;&lt;br /&gt;&lt;li&gt;I already have the necessary JDK as part of my Intellij Idea install so I skip the JDK download. &lt;br /&gt;&lt;br /&gt;&lt;li&gt;I explode the compressed Eclipse package. &lt;br /&gt;&lt;br /&gt;&lt;li&gt;My default system JDK is 1.3.1 since that is the target for my J2EE app. I try to find anything that looks like a config file or such to point Eclipse to the appropriate JDK. Can&apos;t find anything except a standalone executable. &lt;br /&gt;&lt;br /&gt;&lt;li&gt;Make several unsuccessful efforts at launching the executable with the appropriate JDK. Decide it is easier to configure my J2EE app to use the older 1.3.1 JDK than continue trying to fool the stupid Eclipse executable.    &lt;br /&gt;&lt;br /&gt;&lt;li&gt;Surf to sun.com to find the necessary JDK. Download 1.4.2_07 (80.9 MB). Install another freaking JDK on my machine.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Talk with a friend who suggests I try MyEclipse instead of regular Eclipse. Decide that that might be better for me since it seems to be more of an organized &quot;product&quot;.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Delete the installed Eclipse directory.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Surf to MyEclipseIDE.com. Hey, it even has IDE in the name... Clearly this is closer to what I was expecting from Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Register as a user, log in, surf to the Downloads page. Note with disgust that MyEclipse Enterprise Workbench 3.8.4 states &quot;Make sure you have Eclipse 3.1 M4 installed before downloading.&quot; Gah!&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Surf to the Eclipse download page...again. Download the same 92.2 MB file...again.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;I explode the compressed Eclipse package...again.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Download MyEclipse Enterprise Workbench 3.8.4 (an additional 58.22 MB). This project has now consumed more than 231 MB.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Install MyEclipse. Now I have a 150 MB Eclipse direcory and a 91.5 MB MyEclipse directory. MyEclipse contains no application, just an enormous plugins directory. &lt;br /&gt;&lt;br /&gt;&lt;li&gt;Launch MyEclipse using the installed shortcut, which interestingly simply points to the original Eclipse directory.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Create a new EJB project. Select the top level directory of my J2EE project, but the dialog will not let me continue. I change to a subdirectory that contains the src directory and I can continue. The app then nails the processor at 100% for about twenty minutes (on a 1.70 GHz Pentium 4 with 1 GB of ram).&lt;br /&gt;&lt;br /&gt;&lt;li&gt;My project directory is now polluted with hundreds of *.class files mixed in among the src directory, and there are various new directories scattered about (.metadata, .plugins, etc.). Why is everything being compiled before I have set up any project specific configuration? I haven&apos;t told Eclipse where to put my compiled classes or where the required libraries are located. I try to open a single java file, and the app again pegs the processor and is unusable for five minutes.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;I cannot stand having anything in the project that is not part of the CVS repository, so I delete the project directory and pull new source from CVS. Surely there must be some way to keep the Eclipse related config pollution out of the source code directory, otherwise someone might accidentally check this stuff into CVS.  &lt;br /&gt;&lt;br /&gt;&lt;li&gt;I also delete the pollution from eclipse/workspace as well. Let&apos;s try this again.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;New EJB Project. This time I choose the default location (eclipse/workspace). Now I can&apos;t select the location of my source code since it resides outside the eclipse/workspace directory. Delete, start again...&lt;br /&gt;&lt;br /&gt;&lt;li&gt;OK, I can&apos;t select the top level of my project, since the src directory is not a direct descendant. If I choose the parent of the src directory, I cannot choose the appropriate compilation target since that is now outside the project root. Either way, my project directory gets polluted with Eclipse config turds.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;I specify top level of project and set a relative path for src directory. Eclipse pegged for twenty minutes with status &quot;Building workspace (n%)&quot; Why the hell is it building before I can configure anything?&lt;br /&gt;&lt;br /&gt;&lt;li&gt;I fight to prevent Eclipse from building after any config change, managing to find and squeeze in a few project configuration changes such as the proper output directory and inclusion of the necessary libraries along the way. Eclipse still seems to not want to cooperate most of the time and most of my time is spent looking at a modal progress bar, despite having cancelled the current action.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;I delete the current project and try again several times, each time making slight changes to the project and waiting for twenty minutes. Once the project contained no files at all. Once all of the packages in the project were prefixed with &quot;src.&quot; which caused thousands of warnings and a five minute pause after selecting any file. Once the application just crashed after reporting that one project was overlapping a previously created project.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;After considerable effort, I think I have somewhat of a workable project. There are still missing pieces, but I could probably now effectively write code even if I had to compile and deploy by calling ant externally.&lt;br /&gt;&lt;/ul&gt; &lt;br /&gt;I was ready to give up and delete Eclipse many times throughout this exercise, and had I not taken the time to document my frustration, I would likely have done so immediately before the last couple of steps. I&apos;ll try to hang with Eclipse over the next couple of days and see how my overall opinion develops.</description>
  <comments>http://larryklug.livejournal.com/13493.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/13243.html</guid>
  <pubDate>Wed, 19 Jan 2005 01:07:50 GMT</pubDate>
  <title>Work: Employment Update</title>
  <link>http://larryklug.livejournal.com/13243.html</link>
  <description>I spent the past couple of weeks filling out countless online application forms, interviewing, providing skills assessments, taking qualification exams and being quizzed endlessly. The non-stop quizzing made me so quiz-trickery-suspicious that I became frozen with indecision when trying to answer even the simplest questions. Something like &quot;Are you willing and able to: Work weekends [ ], Work evenings [ ] or Travel [ ]&quot; had my mind going: &quot;hmm, willing AND able, wait... OR travel? Comma after weekends, but then &apos;OR&apos; travel, is that right? Wait...there&apos;s no question mark, is this a question or a statement? Let&apos;s see... ((willing &amp;&amp; able) &amp;&amp; (weekends || travel))... no AND travel... GAH!!!&lt;br /&gt;&lt;br /&gt;So anyway, you might remember the end of my previous bench rant, where I said: I keep fantasizing that my last client will call me up and say, &quot;Come back Larry, we just can&apos;t seem to get along without you.&quot; Well, my client called me back and made me an offer, just minutes after I found out that the awesome local position that I was hoping to land had been pulled from the market. I was impressed with the offer that my client had prepared. They were clearly aware of the issues I had been confronting as a consultant and made every effort to accommodate my situation. They even worked out all of the details with &lt;a href=&quot;http://idea.com&quot;&gt;Idea&lt;/a&gt; before presenting the offer to me. That was a classy move.&lt;br /&gt;&lt;br /&gt;I&apos;m basically doing the same job as before. My machine had not yet been wiped, so after getting the various user accounts and permissions re-established, I got right back to work. The best part is, now that I am no longer a consultant, I am eligible to telecommute. I&apos;m in the process of setting up my remote machine now.&lt;br /&gt;&lt;br /&gt;The drive into the office yesterday wasn&apos;t the usual drudgery I had grown to resent, but was actually pleasant. Nothing resets your perspective like having no income for a while. It was a bit awkward to be denied access to the building and such, but I couldn&apos;t have asked for a more comfortable &quot;first day on the job&quot;. &lt;br /&gt;&lt;br /&gt;Cherise started her new job today, her first in nearly eight years. It sounds like an excellent fit for her. I&apos;m sure today was a blur for her and I can&apos;t wait to hear how it went.&lt;br /&gt;&lt;br /&gt;Also, Marijah is moving in with us on Friday. Awesome!&lt;br /&gt;&lt;br /&gt;This will certainly be a week to remember.</description>
  <comments>http://larryklug.livejournal.com/13243.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/12866.html</guid>
  <pubDate>Thu, 06 Jan 2005 03:26:46 GMT</pubDate>
  <title>Tech: Meshing</title>
  <link>http://larryklug.livejournal.com/12866.html</link>
  <description>I haven&apos;t used PHP in quite some time. A few years ago, I used PHP to prototype nearly everything. I would often smooth difficult Java framework complexities by simply porting them to PHP. The act of reworking everything from top to bottom in another language helped me to view the overall picture with more clarity, and helped me to recall framework specifics longer than my usual two or three day memory threshold. &lt;br /&gt;&lt;br /&gt;Last month I was working on a presentation pattern retrofitting strategy that used &lt;a href=&quot;http://www.opensymphony.com/sitemesh/&quot;&gt;OpenSymphony&apos;s SiteMesh&lt;/a&gt; framework. I like the concept of using a decorator pattern rather than the clunky Struts Tiles pattern I had been using. Since our application server framework already has a central controlling dispatcher servlet, and we&apos;re only using Tiles for the template processing features and not leveraging the request processing capabilities of Struts, it all seems a bit disjointed. By creating a few decorators and deploying incrementally at the directory level, I could replace the existing presentation pattern gradually instead of the traditional &quot;big bang&quot; approach, which leaves more than 1200 pages that would need to be tested. Unfortunately, I left the project before I got a chance to deploy the new pattern.&lt;br /&gt;&lt;br /&gt;I stumbled across &lt;a href=&quot;http://xaoza.net/software/phpmesh/index.html&quot;&gt;PHP-Mesh&lt;/a&gt; a short while ago and wanted to try it out as well, but couldn&apos;t get it to work properly. I actually installed the tiny tarball on two separate occasions, each time spending about fifteen or twenty minutes trying to get things to work as I expected before giving up, deleting the code and moving on to something more important. &lt;br /&gt;&lt;br /&gt;Today I tried again. This time I actually read the installation instructions...completely. No really, ALL of the instructions before even beginning to fiddle with things. Ten minutes later, installation complete, still not working. So I cracked open the code. It looked like ancient hieroglyphics. I had forgotten everything about PHP. I referred to the PHP language reference to remind my self of the syntax of even the most simple tasks, but eventually found and fixed a critical defect with PHP-Mesh.&lt;br /&gt;&lt;br /&gt;The defect is in Page.class.php, line 150:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;       $property_value = $this-&amp;gt;_properties[$property_name];&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;should be replaced with:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;       $property_value = $this-&amp;gt;_properties[$propertyName];&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this repair, PHP-Mesh works as intended, and I have successfully convinced myself that I haven&apos;t completely LOST my mind, just temporarily misplaced important parts of it.&lt;br /&gt;&lt;br /&gt;I shot an email to the author, informing him of the fix.</description>
  <comments>http://larryklug.livejournal.com/12866.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/12699.html</guid>
  <pubDate>Tue, 04 Jan 2005 16:09:47 GMT</pubDate>
  <title>Life: On The Bench</title>
  <link>http://larryklug.livejournal.com/12699.html</link>
  <description>Yesterday was my first day on the bench. &lt;br /&gt;&lt;br /&gt;When I first joined &lt;a href=&quot;http://www.idea.com&quot;&gt;Idea&lt;/a&gt; nearly five years ago, I arrived at the office, shook a few hands and was immediately taken to a client kickoff meeting. I became client billable on my first day on the job. I filled out my new hire paperwork while looking at slides of architectural diagrams and gantt charts. My manager said &quot;Larry, I expect you to bill at least 40 hours per week.&quot; I remember thinking, &quot;What else would you expect?&quot;, not understanding the appeal of bench time to salaried consultants. At the end of each project, I actually looked forward to the prospect of getting a few days of bench time, but I never did. I was placed on another project with a another client, in another city, occasionally another country. After four or five clients, all hundreds of miles away from my home, I began to fantasize about a few days of bench time. I could write an article, publish a white-paper, study some other interesting technology offering. Still, I was proud of the fact that I had never been on the bench. It became a measure of my commitment to my company and my career.&lt;br /&gt;&lt;br /&gt;Eventually, I was the last of Idea&apos;s global practice, the traveling heavy hitters used to augment the various regional practices around the globe. All of the other road warriors were set free, but I latched on to my client with all of my might. I was never late, arrived before most everyone else and left after most had gone home. Most of my co-workers didn&apos;t even know I was a consultant, let alone that I lived 271 miles away from my cubicle in Tysons Corner, VA. I was scheduled to roll off my project several times, but I was always extended, even after attending various going away celebrations with the team. I remained with my last client for three and a half years. &lt;br /&gt;&lt;br /&gt;At some time shortly after the dot bomb began and the IT consulting market was suffering, I signed a deferred payment agreement that stated that for a term of six months, I agreed to be paid significantly less if I landed on the bench. Still, I remained billable for the entire term of the agreement. By keeping myself billable, and keeping my client happy, I survived three rounds of layoffs. The Raleigh Idea practice, where I had planned to work after I had completed my traveling dues, was closed due to lack of engagement prospects. When the consulting market started to recover, Idea had successfully weathered the market storm and emerged when most of our closest competitors had not made it through. Still, Idea needed to stay lean in order to survive. The dot com boom had inflated many IT consultant salaries, and my company was forced to trim some of those salaries in order to stay competitive. Rather than having my salary trimmed again, I chose to become an hourly employee, with no benefits. &lt;br /&gt;&lt;br /&gt;For the past year and a half, my travel expenses, my health-care premiums, vacation and sick time have all come out of my pocket. I traveled 50 weeks in 2004 and the hotel costs alone are more than what many people in this area make per year. Tysons Corner, VA has some of the more expensive hotels in the country, forcing me to drive to Fairfax or Falls Church in order to find cheaper lodging, thus adding a pesky daily commute to my enormous weekly commute. The housing prices in northern VA are inflated to an even more ridiculous degree. I can&apos;t see paying a half a million dollars for a two bedroom ranch on a sixth of an acre unless it is over a huge receptacle of crude oil or overlooking a nude beach or something. &lt;br /&gt;&lt;br /&gt;Flying has gotten to be too expensive, so I didn&apos;t fly at all in 2004, opting to make the 271 mile commute by car. Leaving for work on Monday mornings at 5:30 AM, arriving at my office around 11:00 AM, working 12 or 13 hour days and leaving a bit before close of business on Thursdays. This results in three nights away and four nights home, a critical mental tipping point, allowing me to emotionally justify the balance of time away and time at home. I also leave before the kids are awake, which avoids a potentially debilitating emotional scene. &lt;br /&gt;&lt;br /&gt;The job itself has been great, being a good mix of pressure and challenge with frequent opportunities for me to really show off my skills and impress my peers. I would probably have been there indefinitely, but the client was ordered by corporate to remove all consultants seemingly to prepare for an acquisition of the product by another party. I feel more like an employee of the client than an employee of my company, probably due to my status as the last of the traveling dinosaurs. I can&apos;t seem to steer my mind away from the problem solving aspect of my job. This morning I caught myself trying to think through the scenarios that could be causing the last defect I was working on, which I was forced to leave unsolved.&lt;br /&gt;&lt;br /&gt;My company has been hiring quite a great deal lately, and so now has many other consultants on the bench. Our largest private sector client has a consultant freeze and all of our other clients are fully staffed. Even if something opens up immediately, I  expect the salaried consultants will be placed before me, as they are burning company money while on the bench. I am simply burning my own money.&lt;br /&gt;&lt;br /&gt;I cannot afford to stay on the bench for long, so I have been looking into some local contracts in order to have the time to find a better local fit. I can&apos;t help hoping that my company will be able to place me immediately, and I keep fantasizing that my last client will call me up and say, &quot;Come back Larry, we just can&apos;t seem to get along without you.&quot;</description>
  <comments>http://larryklug.livejournal.com/12699.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/12476.html</guid>
  <pubDate>Wed, 10 Nov 2004 23:46:41 GMT</pubDate>
  <title>Work: New Developer</title>
  <link>http://larryklug.livejournal.com/12476.html</link>
  <description>I&apos;ve been extremely busy at work lately. My client finally hired a &lt;a href=&quot;http://www.mojavelinux.com/&quot;&gt;new developer&lt;/a&gt; with the skills and interest necessary to help me get some real work done. The company tends to ignore the web UI completely and hire only B2B developers, which is sad considering the enormous volume of jsp&apos;s (1191) and the number of active B2B integrations (1). I&apos;m preparing for a massive re-branding effort next week and having &lt;a href=&quot;http://www.mojavelinux.com/&quot;&gt;Dan&lt;/a&gt; around for planning and brainstorming has really energized me. He really gets what I&apos;ve been trying to do around here and that has been quite a relief. I didn&apos;t like the prospect of leaving this client without someone who is genuinely capable at the helm.&lt;br /&gt;&lt;br /&gt;We did some nice &lt;a href=&quot;http://www.xmlrpc.com/&quot;&gt;XML-RPC&lt;/a&gt; type work last week that was awesome. I love having pages dynamically retrieve data from the back end without a visible round-trip to the server. This technology has been around for so long and I&apos;m embarrassed that I didn&apos;t make use of it before now.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://webmethods.com&quot;&gt;WebMethods&lt;/a&gt; had a bug last week where all of their application servers ran out of bytes to store the current date, resulting in complete server failures. This caused them to have to scramble to diagnose and repair the problem and then to ship new binaries to all of their customers on a moments notice. We were only down for a day or so, but the fact that this type of defect still happens to critical systems software providers makes my Quality Assurance gland ache severely.</description>
  <comments>http://larryklug.livejournal.com/12476.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/12068.html</guid>
  <pubDate>Sun, 10 Oct 2004 15:33:48 GMT</pubDate>
  <title>Life: Brainletting</title>
  <link>http://larryklug.livejournal.com/12068.html</link>
  <description>Last week Cherise and I celebrated our TENTH wedding anniversary. I&apos;m as happy with my home life as I&apos;ve ever been, my wife is awesome and I am swollen with pride and satisfaction over the prospect of spending the rest of my life with her. I should&apos;ve been shouting it from the highest mountain, instead I headed off to work and my brain fell into autopilot. Work was good, I was finally able to put some time into something I was genuinely interested in, after months of drudgery. Marijah called on Wednesday and we had a good conversation. I was feeling like things were going particularly well, Marijah seemed much more receptive to the idea of coming to live with us, my job was actually fun for a change, and I was looking forward to a long weekend with the kids. The only stain on a wonderful series of days was when Marijah told me that Nanny (my paternal grandmother) was doing so poorly that she now had to have in-home care. Ten minutes after I hung up the phone with Marijah, I got another call...&lt;a href=&quot;http://www.legacy.com/kentucky/LegacySubPage2.asp?Page=LifeStory&amp;amp;PersonID=2694253&quot;&gt;Nanny&lt;/a&gt; is dead.&lt;br /&gt;&lt;br /&gt;My parents are very young. I was conceived when my mother and father were 16 and 17 years old respectively. Needless to say, I spent a great deal of time with Nanny when I was a child. She had terrible asthma her entire life and was probably the least healthy person I have ever known. At the same time, I considered her bulletproof. Nanny was the only stable person in my life. Hers was the first telephone number I learned when I was a child, and in my entire life, is the only one I know that has remained unchanged. Her health kept her from driving so she rarely left the house. She answered the telephone every time I have ever called, including the last time I called a couple of months ago. Paw-Paw cannot speak, and like my mother is dying from smoking related illness, so it is likely that I will never dial her number again. &lt;br /&gt;&lt;br /&gt;I still haven&apos;t really thought much about the whole situation. I find myself inviting trivial distractions whenever my mind drifts to Nanny, ooh, gotta book another hotel room, gotta pay that credit card bill... I&apos;m sure it will hit me hard sometime after work next week when I am alone in the hotel. That is the main problem with my travel schedule. It is not the inconvenience, not the disruption to my family or friends, or even the stress of the job itself. It is the hours of alone time. My exhausted mind wants to wander unbridled to all sorts of unspeakable places, and it sometimes impacts my confidence and causes me to question my own satisfaction. I think too much anyway, but spending four days a week, 270 miles from home and jammed into a car or a hotel room alone for hours upon end leaves way too much time for raw mental muse. I need a new hobby to consume my weeknights.&lt;br /&gt;&lt;br /&gt;I will miss you Nanny.</description>
  <comments>http://larryklug.livejournal.com/12068.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://larryklug.livejournal.com/11913.html</guid>
  <pubDate>Wed, 22 Sep 2004 21:57:16 GMT</pubDate>
  <title>Tech: Windows Woes</title>
  <link>http://larryklug.livejournal.com/11913.html</link>
  <description>I switched to the Windows partition of my primary development box yesterday, and used Windows for actual development for the first time in 18 months. I&apos;ve had to boot into Windows to change my network password every couple of months for the past while, so when password changing time rolled around this week, I decided to see if I could hang with Windows for a couple of small development tasks.&lt;br /&gt;&lt;br /&gt;It only took me a half hour or so to update my poor neglected Windows development environment. I pulled a fresh instance of the trunk codebase from CVS and got a clean build immediately, (not surprising really, the vast majority of developers here use Windows exclusively). I found myself leaning very heavily on Cygwin and writing many more small shell scripts than I remember needing before. &lt;br /&gt;&lt;br /&gt;Boy, what happened to the Windows fonts? Back when I started using Linux exclusively, Windows was far ahead in the GUI department with clean anti-aliased fonts, cursor drop shadows and smooth window scrolling. In the past year, Linux font rendering has so far surpassed Windows that I can barely stand to look at the Windows fonts even with font smoothing turned on. As I&apos;m typing this, the letter V seems especially jaggy (I think the font is Courier New). The window scrolling now seems jumpy and appears to queue up if the mouse wheel is spun too fast. The Windows menu items seem thicker and blockier to me than they used to...as if they were made out of those Sheridan 3D button widgets from back in the VB days. Also, how come I never noticed before that the Windows cursor tail is really seriously bent to the right? Man, the Linux desktop has come a long way in the past year. Kudos to the Gnome UI team.&lt;br /&gt;&lt;br /&gt;I found a &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=261006&quot;&gt;defect&lt;/a&gt; with version 1.0 of Firefox. It renders transparent PNG images improperly, which is worrisome considering how hard I fought to convince our business team to embrace our usage of PNG, not to mention the difficulty I had getting IE to render PNGs with alpha transparency properly. &lt;br /&gt;&lt;br /&gt;I&apos;m going to try to hang with Windows for another day or so... We&apos;ll see how it goes.</description>
  <comments>http://larryklug.livejournal.com/11913.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
</channel>
</rss>
