Monday, June 23, 2008

2am Some Ten Years Ago

On an online developer blog, I learned that today the Land of Lincoln is celebrating the 20th anniversary of the release of the first version of a product that one of my ex -employers made famous. The company posted a scrapbook of memories, including this wide angle photo taken sometime around the 10th anniversary of the company, shown below.

I can't make out where I am in this photo, but I remember the day we went to that park en masse to take the picture, and my autograph is there. For a fleeting slice of time, I bask in the transcendence of the moment.

The company gave me the break I needed to make the transition from engineering to software development. The pay wasn't stellar, but it was a great company to work for , and I still use and recommend the product to this day.

I still mention my experiences frequently in discussions at my current job, mostly as reminiscences, but sometimes as precedents for how we might do things. My current boss joked that sometimes I speak of the company like an ex-girlfriend that I just can't quite get over.

Carlin: Challenger of the Conventional

At this hour, the wire services are reporting George Carlin's passing at the age of 71.

Yeah, he was vulgar, and oh, could he be profane... but some of his rants about the inherent craziness in the ordinary were not only funny, they have weathered the test of time well. My favorites were his discussion of sports and stuff.

Sunday, June 22, 2008

Late Night Listening XXV: Cleaning Up the Aftermath

Those of you who read Trueself's blog know about her post from a couple weeks ago, where she saw the impact of flash flooding in the southern parts of the Hoosier state. For those who are interested in what has happened since then, you may be interested in knowing that our local newspaper is running a followup on the cleanup efforts.

With that in mind, tonight's selection is the Wyclef Jean and Norah Jones song "Any Other Day" which was released a few years ago to raise funds for the victims of Katrina.

Columbus and Franklin weren't the only places in the Midwest flooded by this summer's deluges, indeed there are reports of the impact in Iowa, Illinois, Missouri. For all the fretting I do on my own life, these things remind me that there are others who are suffering much deeper losses in this present hour.

On Dealing with Earworms

I've used the term earworm several times in this space. The generally accepted definition of this slang term is:
A song or song fragment that gets stuck in your head.

Recently, I saw a link to a small item in Wired that talks about how to deal with them, but I suspect that one of the remedies might strike some readers as a fate worse than the earworm itself. ;-)
Getting "Eye of the Tiger" stuck in your head is the result of a glitch in your auditory cortex. This part of your brain processes sounds and stores them for later recall. It powers up and can start crooning uncontrollably after hearing just a few notes of a familiar tune. Want it to stop? Listen to the whole song or do some math.

She Will Move Soon

Thanks to all readers who responded to my post about the gift card. All I would add is that if you did take advantage of the offer and don't get a followup on whether the lead was valid, let me know. You know where to find me. :-)

On June 10, my wife expressed a desire to talk. She said that a couple weeks prior, she had put down a waiting list deposit with the apartment complex she had been eyeing. Earlier that day, the office called her to let her know that a unit was coming up for move-in in August, and they needed an answer before the end of business on Wednesday. She said she wanted to say "yes" to the opening because she was tired of living in limbo.

We talked about the cost. The biggest issue I had was that the rent was about $25 more than what we currently pay for a mortgage. I said I was puzzled by her decision to move because of all the possessions in the house, most were things she wanted and bought. The room decor and paint were all her preferences, too. Of the two of us, I was the one who needed less space and could live on less.

She restated that she didn't want to have to deal with the upkeep up the house. She said she also wanted to move over that way so that she could be closer to both her old best friend and the preschool mom friends. Her old best friend just moved over to a newer subdivision on the far southeast side of town. Moving to that location would allow her to get the kids enrolled in the neighboring township's school system, and would ensure that her kids and her preschool moms friends' kids would be in the same school.

I said that I had recalculated the numbers for child support using the state's calculator website. With my current pay, her pay, me covering the kids health insurance, and her having a lion's share of the overnight stays, it came out to $275/week. The only number missing from that value was child care expenses. If I bumped up the number about $50/week and combined that with her own income, the rent would be right around 1/3 of her net pay.

She said she knew she was going to have to sacrifice on her own, but she said she refused to live in a bad apartment complex, and there weren't that many rentals over in the township. I asked whether she thought it was impossible for her to build a network of friends over here in the local township, and she said it had taken her three years to build the preschool mom friends' network, and she didn't want to have to start over.

During the conversation, she brought up the idea of cashing in the 401(k), something I have opposed consistently because of the penalties involved. She said we should use the money to pay off non-mortgage debt so that we have a clean slate. I said that we needed to talk to a financial counselor to figure out whether there is a better way to meet our goals.

She called the next day to tell them she was taking the apartment. In a way I feel relieved because the holding pattern we have been in is finally about to break, but I am also anxious on whether she can truly make both ends meet, not because she doesn't make enough, but rather because I don't fully believe she can discipline herself to do it.

Tuesday, June 10, 2008

The Closest that this Blog Comes to Running Ads

For those of you who know me, if you're interested in finding out how you can get yourself a $50 gift card from the chain that I've referred to as "Coffee on Every Corner", drop me a line. You'll find a hyperlink to my e-mail address in the sidebar of this page. My employer is running referral promotion that's pretty easy to qualify for.

Things I Hope My Daughters Never Have to Say

Some poignant observations and thoughts with the approach of Father's Day...

I've been riding the bus to and from work for over five months, and I've seen a lot of people come and go. Over the past month, I occasionally see a single mother with three small children, two boys and a girl, get on board.

Sometimes I see them in the morning, and other times its the evening. Most of the time, the mother is stressed out and snaps at the kids. One day, she didn't have enough money to cover her bus fare, and the driver graciously let her have a ride.

I saw them this morning, and heard one of the boys, not older than four years, say something to the mother that just tore at my core.
My dad hasn't got a court date yet. When is he going to get one?

I don't know the full context of the father's plight, but I suspect it's because he's run afoul of the law. Four years is too young of an age for someone to learn about the ways of the criminal justice system.

Almost all kids go through a phase where it seems that just about every aspect of a parent's conduct is grounds for embarrassment. Most of the time it's all perception. It's my hope that I never give my daughters a real excuse to be ashamed of me.

Saturday, June 07, 2008

Late Night Listening XXIV: Back to Basics Edition

Tonight's selection is Linda Ronstadt's cover of Neil Young's exploration of amorous paradoxy: "Love is a Rose".

Many of my musical loves were inherited, and the Ronstadt gene comes from my father, who owned many of her albums from the 70s. My mother accused him of having a crush on her a time or two. I remember hearing this song played on the turntable several times, but with the onset of adolescence, I soon forgot about this song.

It was an afternoon sometime in the summer of 2006 when I heard this song played on The Loft (XM-50). The fiddle riff (do fiddle's have riffs?) is unmistakable. I also think the guy that does backing vocals was a regular on other recordings from that era, and I love the blend of their voices.

Bidding an Electronic Friend Good-bye

It is appropriate I commemorate one of many song/memory reunions fostered by XM, for today, I got into my car to find that my trusty XM Roady, which I had owned since the end of 2003, was stolen sometime between Thursday evening and Saturday morning. I wasn't happy about the loss. That means I'll have to call their Listener Care line to deactivate the radio and have them mark it as "stolen" so that the thief or his customer will never have the privilege of using it or activating it.

Although the prices on satellite radios have come down quite a bit since that Roady was bought, I probably won't buy a new unit for the car. For one thing, I seldom drive my car anymore, save for short trips to the store. Second, newer hardware requires a different power supply, which means I'll have to have some sort of stereo shop rip out the old wiring and put in new.

Let's move on to current events, shall we?

The First Job Review

The big news item this week was that I finally had my first "quarterly" job review. The review was supposed to have taken place after March, but since we were so swamped with the template/rendering system rewrite, my boss decided to postpone the review until my other coworkers' reviews came up.

The review went really well. I got high marks on all aspects of the job, and got a couple of areas where I needed improvement.

First, although we're supposed to be an agile shop that does frequent releases and baby step development projects, I still get the urge to scope my projects to be as feature rich and complete on the first pass as possible. My boss noted that from my change logs that I worked really long and late hours to get things done, and he was worried that I couldn't sustain that pace of development.

Second, he said that I needed to speak up more during meetings with non-technical staff, raising questions and objections when issues arise. He thought it might have something to do with a lack of confidence in my own views (can we say "self validation issues"?). He said when I did raise concerns during our daily status meetings, my comments were very useful and help make the product better.

The update notification feature code that I had been writing for this release went live on Wednesday, with a test configuration that just uses my employer's blogs. So far it has been working well, and the president of the company sent me an e-mail on Friday afternoon saying that Do-No-Evil's update detection for her own blog now is much faster because it gets pings from our servers when her post goes live.

Wife Stricken by Virus

On Thursday, my wife fell ill to what was later diagnosed as a virus. Like most viruses of this variety, there is some lower gastrointestinal distress, and hers was to the extreme. So bad, she experienced bleeding. By early afternoon, she called one of the ask-a-nurse hotlines, who then recommended that she pay a visit to the ER. I got a call shortly before 3 pm asking me to come home early. I grabbed the next available bus, and I was home sortly after 4 pm.

She drove herself to the ER while I watched the kids. She was released around 8 pm after having had an IV and a blood draw. They ruled out bacterial infection and asked her to get in touch with a GI specialist to verify that she was OK. She was mostly back to normal on Friday, and hasn't been afflicted since.

Annual Dance Recital

Longtime readers of this blog will recall that both of my daughters attend a dance class on Tuesdays. This weekend is the school's annual recital.

I was asked to work a spotlight again, and since I knew the school's owner already looking for a second spotlight guy to replace the one whose final year doing the job was last year, I agreed so that she wouldn't be in a bind.

The show takes forever to perform, with 42 numbers performed over two acts with a 20 minute intermission. The spotlights are used only on solo numbers and duets. Rehearsing the show is literally an all-day affair, with light and stage crew showing up at 9 am and not leaving until 4 pm.

Complicating the show this year is that the middle school whose auditorium we rent for the event is undergoing some sort of renovation work that involves some really old audio equipment. Consequently, the in-house communication system that allows the stage crew to talk to the guys operating the spotlights is completely out of service One of the crew members was going to try to see if he could borrow some mobile radios from his workplace so that we could use those instead.

Some of the scrap audio hardware was still still lying around, and that was an interesting sight in itself... An vintage Ampex reel-to-reel tape recorder, some metal boxes that required battery backups, one of which was an ancient Eveready 67 1/2 volt battery, dating from the days when the brand was still owned by Union Carbide. I didn't even know they made such things.

As I arrived to the middle school, I got a sober reminder of how things could be a lot worse. I have been horribly behind on the news over the past week, basically peeking at the computer trade press, personal blogs, and the national news, just to see if Hillary had conceded yet. I wasn't aware of the devastation that had been wrought nearby.

A little over a week ago, a bad storm hit the east side of the Circle City, complete with a bona fide tornado. The apartment complex just north of the middle school looked like it had been bombed. While reading news from the past week, I realized that the gas station, where I had stopped to buy a bottle of orange juice, had made the local news.

Sunday, June 01, 2008

Answering Some Comments on the Parse Post

Digger Jones writes:
Ha! That would most likely be yours truly. While I still use XP a lot, I've found Linux to be infinitely better, safer and more stable as a browsing platform.

You don't have to convince me of that. From 1996 to 2005, I ran a dual boot desktop at home that host various Linux distributions, including Slackware, SuSE, and RedHat. My work laptop was a dual boot Red Hat and Windows XP machine.

My work laptop, where I do most of my surfing now, is MacOS X, but I do all my development using two Linux virtual machines that host the web services that power our blogging app. Unfortunately, those VMs are configured to be servers, so they don't have X11 or any GUI apps, like firefox. The only way to interact with them is through SSH.

sixdegrees writes:
So here is a bigger question. Is there something fundamentally different about the way a technically trained human brain will approach a specific problem vs the way an human-constructed algorithm does? In your case, if the algorithm had given due weight to the terms in the parentheses as opposed to just looking for OS2 anywhere in the string, the algorithm probably would have gotten the correct answer. Was this just a question of speed vs accuracy in writing the algorithm or just laziness on the part of the person who wrote that Sitemeter algorithm?

I suspect that it was probably a combination of two things, which I believe are the roots of most software bugs:

  1. An incomplete understanding of the problem being solved by the algorithm.

  2. Time constraints and larger priorities that deemphasized the creation of a robust solution.

Some aspects of the web are well defined through published specifications, and some aren't. And then there are things that get specified sooner or later but not all implementers adhere to the standard. The User-Agent field of the HTTP request header falls into this category.

Bits and pieces of people's efforts to get a handle on the real state of affairs on the web have been published, usually as webpages or blog posts.

Not all software developers will do the depth of research to get a good understanding of the problem, so they will wind up coding a naive solution that might work in most cases but not handle the edge cases. Sometimes this is laziness, but in other cases it's because the developer has so much on his plate that he or she cannot meet the overall goals of the project without making some tradeoffs.

I ran into this issue recently. With the rise of blogs, there has been the creation of numerous "ping" services that accept notification messages. Some of these services , like Google Blog Search and Technorati, are used to keep search indices fresh. The grandaddy of these services,, just publishes rolling lists of updated blogs.

Being the first of these service, developed two different ways to access the ping server. One uses XML-RPC, which is a way of invoking functions remotely using HTTP POST operations with an XML message in the post body. The other is REST, which just submits the parameters through an HTTP GET (send data as part of the URL) or POST operation (send data in the HTTP request).

One of my tasks was not only understanding the original specs, but also looking at other services to see whether they implemented these things using any variations so that my code would be forgiving of such deviations.

When I was doing the research, I took a look at how other blogging services supported this kind of configuration, and I didn't see the level of flexibility that would support multiple protocols, so I made sure that my design handled that well because it would make our product more valuable to our customers.

Some Unresolved Railroad Photo Business

In early April, I had this vision of posting several images of Amtrak trains from my personal archives, and I failed miserably in doing so. However, before I let go of that disappointment completely, I wanted to post a few images for my reader out in the western part of the Keystone State.

First is a shot of Amtrak 272 preparing to make its way through an underpass in Gallitzin. It had just exited one of the tunnels that makes the little town a big draw for railfans.

I took this in early August, 1984.

Here is a shot of a Conrail van train at the other tunnel entrance.

I can't say for certain, but I think the train was exiting the tunnel. In this area, trains required helper units tacked on the rear side of the train, so you'd see power on the front and the back. At least back in the days when cabooses were still in use, you got a little bit of a clue. :-)

Finally, here is a shot of Pennsylvania Railroad 1361, a K4 that sat at Horseshoe Curve for many years.

She looks rough and rusted in that photo. A year or so later, she would be removed from the static display and restored to operating condition. PRR 1361 ran some excursions before encountering some serious structural problems. A long running major restoration effort has been undertaken, and it has undergone several starts and stops. In some ways, this engine has withstood a very long existential crisis.

Late Night Listening XXIII: Pay for Play Edition

Update: Added Amazon widget so that people could actually listen to the track.

At work, I find myself listening to the Audio Visions (XM-77), the New Age music channel, quite a bit. Many of the tracks derive from eastern influences.

Earlier this week, I heard a track that stuck with me enough that I wound up downloading it from Amazon's DRM-free MP3 site. It's by a Canadian group called Swaha, headed by a couple of Yoga instructors who enjoy recording music that is billed as "an enticing blend of ethereal Sanskrit vocals soaring over rich earthy rhythms".

The song was called "Ganesha-Ji", track number 8 on the group's CD Salutations, which was released back in 2002. If you listen to the preview snippets at Amazon or a CD Baby, you'll come away misled. The first minute or two of the eight-minute track starts off with something that sounds like a chant, but then it kicks into a more western style of tune, a theme that sounds faintly reminiscent of hymns of British origin.

What really caught my attention was that after the transition, the lyrics are interleaving passages of Sanskirt mantras and English language. Quoting the a sample from the printed lyrics (available as a PDF on the website):
Om shree Ganesha-ji
Oh dear Lord, help me please
Om shree Ganesha-ji
Remove what lies between you and me

And the parts where Meenakshi sings "Gam gam Ganapatayay" are sheer beauty.

The song is a prayer to the Hindu god Ganesha. For those of you who have read EuroPosh's blog for a while, you might recall that EP got a Ganesha pin last fall, from an assistant at the college she was attending at the time. While I'm not convince of Ganeha's existence, his role as "remover of obstacles" sure could come in handy now. :-)

With time, I might wind up downloading the whole album because the music is truly soothing.