Under Da Sea

Only once during my university career did I plan on returning to university at the end of the school year. That was my last year, and I ended up going to school through the summer as well. To my credit, there was only one year I didn’t return in the ensuing fall. That was my first year.

During one of the summers where I made a late decision to return – a painful back injury made me realize that I could not make a life-long career out of landscaping – I was in Lethbridge, securing a place to live. The good Dr. Yue had kindly supplied me with muscle relaxants and anti-inflammatory pills after reassuring himself that my back was not broken. I had taken one of each of these pills, and I was in McDonald’s, eating lunch, when I found myself picking my face out of my fries. I don’t imagine it was all that dramatic, or even all that noticeable. Nobody came to my rescue, nobody came to my ridicule, nobody was even looking at me. All of this is prologue.

Last week, I put my back out once again, playing floor hockey. I went to Shopper’s to find some pain medication. The Double-B, my compatriot and fellow contractor suggested back-centric Tylenol. I figured that it was probably a good idea. After all, that’s what hurt. The quicker among you will have already put the puzzle pieces together. Yes, Back Relief Tylenol is laced with muscle relaxants. I will let the wise words of the Double-B stand for my demeanour: “Liam + Muscle relaxants = Closest thing to seeing Liam drunk.”

For myself, it felt like I was under water – not the suffocation, but the lethargy. I quickly made arrangements with my chiropractor and went home to sleep. Dr. Dan, my chiropractor, mentioned that I should always come in doped up, since normally I’m stiff and difficult to adjust. So now, I know. No more muscle relaxants unless I don’t have any immediate, or not-so-immediate plans.

For Your Eyes Only

For Your Eyes Only

Buying glasses is quite frequently an experience that leaves a person feeling like they’ve been put through the wringer. I know that my own experience last year felt like someone turned me upside down and shook my lunch money out of my pockets.

When I was a kid, the drill was simple: You go to the optometrist, have your eye test, you pick your glasses, and you go home. In a couple of weeks, you pick them up, and you are bespectacled.

Now, they have all kinds of designer fames, super lightweight, scratch-proof, shatter-proof, water resistant to 50m, transition, fog-repellent lenses with windshield wipers and a laser guidance system.

In the shop I decided on, they never mentioned anything so prosaic as price, so, caught up in the experience and the atmosphere, I didn’t consider the price either, which I’m coming to realise is all part of the trap these businesses set for customers.

When I got the bill, my jaw literally dropped. I sat there with my mouth open, unable to believe that the bill for a single pair of glasses could possibly come to $1000.00. Still, they didn’t make a big fuss about it. It was just another part of their day. ‘Sure, what’s the big deal?’ they seemed to say. ‘People drop a G on glasses every day. And what the Hell, right? You’re worth it.’ I went along with it with a horrible feeling. Had the market gotten so completely out of whack in the short time since my last pair of glasses?

Getting back to the office, I was assured that, no, the market had not gotten so expensive. In fact, with the internet, glasses were cheaper than ever. I sucked up my pride and walked back to that fancy eyeglasses store and canceled my purchase – much to the chagrin and attempted pressure of the saleswoman – and finally got my glasses at another physical store for a much lower price.

I have never had the experience of, nor heard of an optometrist that didn’t also sell glasses. I like to believe the guys I’ve seen wouldn’t prescribe a pair of glasses to someone who didn’t need them, but their fancy machines for accurately measuring the distance between your eyes is only for use for those who wish to purchase glasses in the same building. This makes buying glasses on the internet a pretty unsure prospect, no matter what quality the glasses they sell. I sat in the bathroom with a ruler pressed up against my nose, and came up with a number for my PD. I’ve had the fortune of peeking at my official PD. I was only out by half a millimetre, but the distances for either side are not equal.

Now that I know this magic number, I suspect that I’ve bought my last pair of glasses in a store. The markup is just unbearable.

It would also be interesting to know what the measuring equipment plus training would cost, and what the ROI would be for charging potential internet glasses customers $5-10 a pop for their magic numbers.

Remembrance

I miss my mom. These days, it is not the soul-rending sadness that it was in the days, weeks, and months immediately following her death. And I’ve found myself able to remember her without a tearing feeling. I’ve even been able to write about silly things involving her.

There are times I want to ask her questions. About music, about family, or any number of things.

Mostly, I want to make her laugh. I always loved making her laugh.

Mom died one year ago, today. I didn’t want the day to go by without acknowledging this.

The Trouble With Being a Geeky Fan

Letting go of attachments

I don’t know how TV networks can justify to themselves this four or five month hiatus between episodes, in the same season of a series.

Yes, I’m probably wearing my old-man pants, shaking my cane-wielding fist to the sky. I’m probably the only one who sees something horribly wrong with this. But hey, this is my place.

FlashForward, you and I are quits. Everything that made the show compelling in the first place – the opportunity for water cooler talk, the speculation – that’s all gone. All I can remember is the horrible, horrible acting of Joseph Fiennes. Maybe when he acts in British, he’s okay, but I can’t get past his two looks: Grumpy and Dopey. Maybe the bar was set too high by Lost for me to enjoy you properly, but why can’t I expect a show that started out that strongly to remain that strong? I certainly have no qualms about saying goodbye to you, since you haven’t been on the air in two or three months.

V, I’m very disappointed in you. You wave Alan Tudyk under my nose, with the promise of reviving one of my favourite series from the 80s. Then you not only make him a bad guy, but you kill him off right away. I don’t mind any of the actors, or the characters. The pacing was all right, tending a little to the slow side of things. But you aren’t on the air right now, are you? You’re screwing around with your agenda, trying to squeeze the last little bit of market share. You’re doing this for all the wrong reasons. You’re not there to entertain people, you’re not even there to sell soap. You’re there to entice people to sell soap with numbers that are completely artificial. This is the same bullshit that got Kings canceled. Don’t think I don’t have my eye on you, ABC.

Glee, I don’t really care. I watched a couple of your episodes. But my wife is very much looking forward to you coming back. And you’re gone almost until summer. What the hell is that?

All of this is pretty much leading toward me not watching any more new dramas until they are out on DVD.

Why My Mom Could’ve Taken Chuck Norris

People like to pretend that Chuck Norris is the toughest, baddest so-and-so ever to grace the Earth. While he is definitely badass, and it’s fun to recite the list of so-called Chuck Norris facts, the bearded spin-kicker comes in a very distant second when it comes to out-and-out toughness. To whom, you ask? Why, my mom, of course.

Special Move: Chuck Norris, of course, has his roundhouse kick. This is, of course, a formidable weapon. The unkempt, the unshaven, the seedy, and the cheesy, many have felt the wrath of Chuck Norris’s right foot. This is nothing in comparison to the Peggy Johnstone death-glare. Nobody was safe. For saint or sinner, fear of the death-glare was the fear of divine retribution. While Chuck Norris may break more panes of glass, Peggy Johnstone broke more souls.

Cool Beard: The edge goes to Chuck Norris here, since I’ve never seen my mom wear a beard. I guess it was a lifestyle choice.

Legendary Stories: “Before he goes to sleep at night, the boogeyman checks under his bed for Chuck Norris.” “Peggy Johnstone once shunned hospital care for a suspected stroke, saying it was ‘Just a small one’.” More awesome AND true!

Sacrifice for Ideals: Chuck Norris, starring as Colonel James Braddock once sacrificed his own well-being for belief in truth. Peggy Johnstone once sacrificed a life of musical study to raise a family. The edge might go to Chuck Norris if those things hadn’t happened to a movie character, but they did.

Pain Tolerance: Chuck Norris’s characters have been dragged over the coals, and I feel for them, if not him. Mom took everything MS had and kicked its ass. Did she suffer? Yes. Did she ask for help? Yes. But if you think that takes anything away from it, you’ve obviously never suffered any amount of pain and have watched too many Rambo movies.

So you see, it isn’t even close. My prediction is this: In some strange world where Chuck Norris and Mom were to fight, the Karate Commando would take one look at Mrs. Johnstone whose blue eyes would cut you apart, weigh you, measure you and have an itemized list of your sins in an instant. He would look, his soul would unravel, and Mom would emerge victorious.

Disclaimer: The above is in no way intended to disparage the amazing acting career of Chuck Norris. Neither is it a desire for an alternate dimension where Chuck Norris and my mother are pressed into single combat. However, were that to happen, Mr. Norris, please rest in peace.

Freeing Up My Personal Time

Last month, I was at the end of my rope. I was spending my workday working, the sliver after work and before the kids’ bedtime trying not to think about work, then after the kids were in bed working on another project. I was not being the husband, the father, the homeowner, or the dog owner I wanted to be.

I’d put off certain things as long as possible. My dishwasher was broken, things were piling up, and I had to make a decision. So, I made it. The only thing that could be cut out from my life was the work I was doing that wasn’t paying me any money.

I felt bad about leaving the team. They’re working hard and doing a good job on a project I think has real wheels. I also really enjoyed the work.

I feel like I’m catching back up with life, finally. The kids and I have been under the weather, so I might have a little more catching up to do, but I went back to playing ball hockey in the morning. I am (obviously) getting to spend a little time writing blog entries. Kim and I are spending more time together in the evenings after the children are tucked away in bed, and I have gotten back into practicing the guitar.

Actually, the last couple of nights, I have been working on exercises from A Modern Method for Guitar while Kim and I catch up on Lost.

I’m guessing I’ll have more to write about guitar in the coming weeks, as I manage to get my fingers working with my brain which I have to teach to work with my eyes when it comes to reading music. The reading music is coming back faster than I thought it would.

So, while I will miss working with the team from California on the project about which I’m never sure how much I’m allowed to say, I feel that the spare time I’ve gained has allowed me to grow into a more well-rounded person, a better father, husband, homeowner and dog owner. As well as guitar owner. They were feeling sadly neglected.

So I got them some company.

Say Hello to the guy in the middle.

Say Hello to the guy in the middle.

Until I have more to say,

Liam

A Picture in Time (or… how I spent my summer vacation)

In lieu of a month-by-month year in review for 2009, I’ve decided to capture memories that strike me from that period. I can’t say that this won’t be the only one of these, but if more memories come up and kick me, I’ll write ‘em down and put them up here. –lj

“They’ve decided not to renew your contract.”

Usually, the end of a job is a bittersweet scene. I have an exceptionally hard time saying goodbye, and an even harder time keeping in touch. Keeping in touch usually just prolongs the agony of parting. With only two exceptions, leaving a job has been more bitter than sweet. The first of these was Intuit, where everyone was already gone and the lack of meaning was the primary reason I left. The second was Accenture.

I will admit, my time at Accenture was not perfect. I could couch that with excuses, maybe even reasons, but I won’t. What I will say is that throughout the last three weeks of my stay there, I worked my ass off in the neighbourhood of sixty hours a week, trying to squeeze a project out the door.

I was not sad to leave. However, with those last weeks being what they were, I felt oddly disconnected and the momentum kind of carried me out of a regular sleeping pattern. Fortunately, having children and a very pregnant wife forced me back to the “day is day and night is night” pattern.

I spent the next couple of weeks playing with Lily. Nick was largely gone during the day, playing at the green shack with summer vacation kids. I would walk around the block with Lily on her bike. I would ride Kim’s bike, with Lily on the back. Those were great days. I felt free. I’d saved up enough that I could look for work at a less hectic pace than I had at the end of Haemonetics: Part One.
Work, however, was not there to be found. The economy had shriveled up into a hard, angry little pea and businesses were holding on to that pea as hard as they could. Two companies for whom I would have been a good fit left me hanging because they could not get budget approval, after having posted the jobs. Fortunately, my Project Manager at Intuit came through for me. He and his partner were looking for programmers to work on a Ruby on Rails project. I had no experience in Ruby, but apparently, that was not required. So, four of us set off on a learning experience, picking up Rails conventions while we wrote a web app for a bronze company.

The summer flew by, with a few exceptions. Olivia came into our lives, hollering and shivering, on July 21, at a quarter to two in the morning. Aside from the obvious, that time is memorable for the time Kim and I spent out on the deck, appreciating a warm summer night. Also for songs on the record player, falling asleep on the kitchen floor between Kim’s contractions, and hauling water.

I swear, I would have made a good farmer back in the day. I haul water really well. (Get it? Well? Water? Heh.)

As summer faded into fall, work on the bronze project wrapped up and I continued my quest for more employment.

Sub-Classes, Shared IDs, and Hibernate

Finding common functionality and shoving it into a superclass can be extremely helpful in Java, particularly when you want a list of things that have that stuff in common and don’t particularly care (at the time) about the special properties those objects have. Heck, that’s what Object Oriented Programming is all about.
Hibernate does a good job of representing Object Relationships, understanding how they are to be mapped in the database, fetching them out of the database, and putting the properties into objects so that the programmer doesn’t have to worry too much about that.
One place Hibernate seems to fall down is this: If your ID information is contained in the superclass, Hibernate does not understand subclassing enough to grab from the correct table. I don’t know what the criteria are for which tables it looks in first, maybe the first one mapped, maybe the first one inserted into, but if you have an ID clash between two subclass tables, there is no guarantee that you will be getting the right data.
In general, Hibernate messages this correctly, letting you know that, hey, this is the wrong type. However, if you are using an association table for a many-to-one mapping, that goes a little beyond what Hibernate understands, I think, and the messaging is a little obscure:
org.hibernate.PropertyAccessException: could not set a field value by reflection setter [field-name]
My first reaction to this was to check and see if there was something wrong with either end of the association. Nope. They were both coded fine. Then to check the getters and setters in the association table. Nope. Fine. So, I went on google. They confirmed my “check your types and methods” vibe, which was very self-affirming, if completely useless.
Then I remembered that I’d gotten the wrong type errors with one end of the association, and had fixed that by monkeying with my IDs, making sure they were all unique, not just per table, but across all the tables that derived from the superclass. The same class structure exists for the association table (many subclasses deriving from one superclass with the ID information in the superclass) so I monkeyed with my association table IDs and, lo-and-behold, everything worked. It was fetching the association table and bringing the one end of the association along with it, just fine.
So, if there’s a moral to this story, which I’m not sure there is, but if there is, it’s “Be careful with your test data” or “Keep your metadata in one spot” or “Hibernate is useful but not all-knowing”. Sure, not a great moral, but if you’re having trouble tracking down a “org.hibernate.PropertyAccessException: could not set a field value by reflection setter” issue, this could be your ticket.

Something a Little Different

Lately, I’ve spent some time thinking about the direction of this space. It started out as a place for me to update on family stuff, review books I’ve read, and put my writing out there. It evolved to include a lot more than that. While I’m happy with the things I’ve posted here, it comes across, to me, at least, as scattered and directionless at times.

To remedy this, I’m going to try and wrestle my posts into a limited set of categories:

Entertainment: Let it come to you – this is push entertainment: Music, movies, TV…

Entertainment: Go out and get it – activities you have to work at to be entertained: reading, sports, etc.

All In The Family – Updates from the wacky world of the Edmonton Johnstones.

Workin’ In a Code Mine – Anecdotes, updates, and learnings from my professional life.

You Cheap Bastard – An attempt to explain some of my Do-It-Yourself projects. Whether how I was able to succeed, or why the hell I would have tried to do something so stupid in the first place. (thinking about the time I dismantled my Tablet PC for the latter.)

Fooling Yourself (The Angry Young Man) – I used to be much angrier, but every once in awhile, I need to let off some steam.

Metablog – Posts that are about the Blog itself. Kinda like this post!

Output – Creative stuff, goals, basically anything that I’ve made or achieved that I want to share.

Floggin’ and Stumpin’ – Anything I’m particularly supportive of, which I think needs more attention. Because, as you know, this site is one of the most popular on the internet, and anything I like is destined to be an overnight sensation.

That’s all. Back to your blog, as previously scheduled.

Hear! Hear! say

I’m never entirely sure how much to believe of what’s said in the media. Radio, TV, print, even these here fine blogs. So much is hearsay, rumour mongering, made-up statistics, and outright lies that when I hear anything, read anything, or find anything out, I tend to take a step back and try to think about who would have the most to gain from whatever was said.

All that went out the window the other day. I was listening to the news in the van (two very rare occurrences – I was driving the van by myself and I was choosing to listen to the news) when I heard that the financial news for Canada is not as good as it should be. There will be improvements, but not as sharp of improvements as were expected (which reminds me of the time that Google’s stock dropped because they didn’t exceed expectations as much as was expected). However, some government official (I can’t remember his name) supposedly said that the markets were failing because Canadians weren’t productive enough.

Holy crappin’ beezus, did I fly off the handle. I was stopped at a stop sign, yelling at the radio, ranting about how Canadians are people, living their lives, not automata whose sole purpose is to protect the pension of some bureaucratic big-mouth whose bottom line is so high I couldn’t see it with a telescope.

I’ve recovered to a certain degree, but a lot of me is still pretty angry. Is that how all government officials think of their citizens, as some black box you build roads for, which spits out reams of cash?

Having recovered a little bit, I’d be interested to hear a quote, read a transcript, or at least find some context to what this guy said. It would be nice to know that he was taken out of context, or misquoted, or even to just have some ammunition for some kind of pissy missive to my MP.

As it is, I’m sure it’ll fade into the background of my consciousness soon enough.

Later