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

Remembering and Recognizing

Every year, we gather to remember the sacrifices of those who have given so much in defense of our ideals and our freedom. It is important because of the direct effect those lives, that innocence, given so willingly has meant for us, as regards our way of life and the high standards of living. It is also important because it helps us to realize that there are things outside of ourselves which are important to acknowledge.

So much of each day is filled with self-absorption, looking inward. I need, I want, I get to… Even as an adult, a husband, and a parent, I am constantly concerned with me and mine. The kids need, Kim needs, the house needs, gotta take the car in…

I give back. I volunteer my time as a Cub leader. I coach sports teams. I help out at Engaged Encounter weekends, showing engaged couples to their rooms, and trying to ease them into an immense and intimidating weekend.

All of this seems like nothing compared to the sacrifices that members of the Canadian military make. They sacrifice their lives, certainly, but even those who return physically sound have sacrificed things that I will never fully understand.

Apart from the innocence that is stripped by the taking of a life, which could be the subject of a blog post – or a book, a library – there is the separation that a soldier undergoes. Things change, people change. Fathers of children got and still get deployed overseas and miss out on large chunks of their children’s lives.

All of this hit me today as I watched the laying of the wreaths at the Butterdome cenotaph during the Remembrance Day ceremonies. I usually don’t make it out of that ceremony with dry eyes, but I’ve never really had the reality of what soldiers had to, and still have to face shown to me so clearly. One of the first people to place a wreath was a widow whose husband died in Afghanistan earlier this year. Beyond her personal grief is the fact of a family left without a father.

I think long and hard on my duties as a father. How much of being a good father is being there for your children? How much is providing a roof, food, and the necessities? I think and hope that evaluating what I’m doing makes me a better father. Not better than other fathers. It’s not for me to judge others and their parenting. Instead, I mean better than yesterday. Anyway, I think of this father, this soldier, caught in this same dilemma, only on a scale that I can’t really imagine. Duty as a father, duty as a soldier, providing for his family, keeping his country safe. Suddenly, my employment woes and having to wait an entire week to have an interview doesn’t seem quite so trying.

It is good to be reminded that my life and the influences on it are not the only things going on in the world. There is a lot that is a lot bigger than me and there are a lot of people whose sacrifices are a lot greater than mine. And it is for these people I am thankful. For them, I will respect, remember, and recognize.

So, Just What is it I’m Doing Now, Anyway?

Aside from the last few posts, where I’ve documented the steps I took to make some stuff work, I’ve been pretty quiet.

But you probably knew that, if you’re here.

Familially:

  • Birthdays are done for the year in the Edmonton Johnstone house. Nick’s birthday was the last one of 2009. It was an interesting party, where half of the partygoers were playing gameboy or DS at any given point in the party. There was also a modest amount of dress-up and lego. Thank you to all who came out.
  • The first bottle drive of the year for Parkallen Scouts took place this past weekend. A good time was had by all and the work went by surprisingly quickly.
  • For those of you who don’t know, or don’t follow the facebooks, Olivia spent some time in the hospital the weekend before this last one. She had some clotting issues where she would bruise up over things that normally wouldn’t be bruise-worthy. (A teething necklace left bruising on her neck, and a diaper snap bruised her hip). Turns out that she wasn’t absorbing fat properly, which led to her not absorbing vitamin K properly, which led to a (surprise, surprise) vitamin K deficiency.

Professionally:

  • My work for EbOWorld and the bronze company contract ended partway through September. Since then (before then, too), I’ve been looking for a contract to work on. There are a couple of places that seem to have work, but their feet are caught in mud. I’m willing to wait for a bit. There are some frustrations that come with waiting, but I am working on a project that promises equity in the company after working there for a year. It’s an interesting relationship. It gives me an immediate stake in helping the company to succeed.
  • I still have work to do on the database application for the Alberta Party. They want me to present a proposal in writing, which should be an interesting project. I need to actually get on it, though. There’s no guaranteed money from that, either, but it is more likely that I’ll see it from them than from the equity agreement.
  • However, through the equity agreement, I might have some paying work on a Drupal-based CMS that is integrated with Nexternal.com. There is some re-configuration they want done on the UI side, as well as the usual “It’s not good enough, make it better.” We’ll see what that means.
  • A headhunter contacted me today about what I had thought was a position I’d applied for today, and when I called them back to discuss it, I was unable to reach the agent. I’ve been waiting to hear back on this potential contract for some time. Normally, I would have walked away by now, but they send out “be patient” types of messages every so often, so I’m left dangling. Well-played, headhunter.
  • I’m also waiting to hear back on a contract through EbOWorld. If EbO gets the contract, I’ve got nine months worth of work. If not, then not. They’re considered front-runners for the contract, but as the boss says, forget about the contract, don’t consider it a done deal until the ink on the cheque is dry and it’s cashed in the bank.

I am now run down and you are partially caught up.

I will try to generate enough enthusiasm to update you more regularly.

Liam

Windows Vista MySQL Connection Problems

I like, and use, JetBrains’s wonderful IDE, IntelliJ IDEA. I think it’s better, more stable, and more professional than Eclipse. This isn’t an article aimed at Eclipse fans. It’s not an opinion-piece on which IDE is better. The point is that I prefer to use IntelliJ. The reason this is the point is because I also use Ubuntu Linux. Unfortunately, Ubuntu (since 8.04 — I looked it up) does not play very nicely with IntelliJ. I don’t know if it’s something to do with the indexing, or with the screen drawing, but IntelliJ is sluggish and almost unusable in Jaunty. I hope they will fix that for Ubuntu 9.10, scheduled to be released this month, I guess, but I don’t know what the problem even is.

So, I have a dual-boot machine and since I am more attached to my IDE than I am to my OS, I decided to tackle this project in Vista.

Since I started on the project, I take a little time out of each work session and try to get the project running in Vista. Should be no problem. A co-worker has been using Vista for this project for awhile and Robb Reid was successfully set up last week, with the help of yours truly.

We have the same code base. We have the same operating system and we have the same database.

I tried turning the firewall off because of possible port blocking. I tried turning off UAC. I tried switching it over to different ports because it might have been an issue with conflicts and collision. None of this worked. I continually got an issue that said:

Cannot obtain connection metadata.
Cannot connect to underlying database!

Eventually, after I had tried everything I could, googling every combination of MySQL Vista UAC error problem underlying database connection metadata and all of that, I finally found something.

I seached for “jdbc mysql connection problem vista” which led me to this page.

For some reason, my particular combination of Vista, MySQL, JDBC, and whatever else I have installed cannot handle the idea of “localhost”. Doesn’t like it, won’t use it.

So the solution is to use the IP address of the local machine. In configuration everywhere (we use hibernate.cfg.xml and pom.xml <– that's for maven) change localhost to 127.0.0.1 and it should solve your Connection Refused issues.

Wish I'd known about this earlier, but I'm glad I know about it now.

Update:

Thanks to Robb Reid, I have learned that another way to work with this, without having to monkey with all of the code, is to add a line to your hosts file at c:\windows\system32\drivers\etc\hosts
127.0.0.1 localhost

This will allow localhost to redirect to 127.0.0.1