Sunday, November 13, 2011

I wrote software and helped others write software

One of the difficult things about writing software is describing what you do to other people.   If you mentioned Web development, you'll get "oh I have a 12 year old nephew who does web pages."  Mention Java and for years even some people in IT thought JavaScript.  Back in the day if I was feeling difficult I'd describe what I did as "Writing software for computers that don't exist."   Best response from that was: "Is there a market for that?".  Oddly enough there was.   

It only got worse with a job titles like Application Architect.  Most people understand that software needs to be written, but Software Architecture?  What's that?  Must be how you format all that text.  So eventually I landed on "I write software and help other people write software."  That really covered the best of architecture, as well as the teaching and mentoring I'd done. 

After 15+ years of writing software, I've taken a job where that's not the job, in fact I've been told to resist when I'm asked to write software.   On Monday, I start as Shaw's Development Practice Lead.  With zero hours on the job, my understanding is I'll be the internal coach / advocate for the development team.

While I still expect to be writing software, it's no longer my job.  My new description: I help other people write software.  Let's hope there's a market for that.

- Peace

1900 km

Ice on Fishcreek at 1900 km
Haven't been doing much riding since the 84 km epic ride to Bragg Creek and back. Unfortunately soon after that I developed some shin splints and tendonitis, so had to lay off the biking. Legs have been feeling better so I did a number of short rides this weekend and that put me over the 1900 km mark today.  Not sure how much more riding I'll get in, but I think it's safe to say the original goal of 3600 km isn't going to happen in the next six weeks.

- Peace

Friday, November 11, 2011

Nov 11th, Thoughts of My Gradnfather

My Gradfather and I
Nov 11th always means thoughts of my Grandfather who signed up before there was an RCAF so he flew with the RAF in the battle of Britton and in the North African Campaign. 

He was shot down over Egypt and survived, but wasn't re-certified for combat, so he delivered new planes to the front and brought back planes that needed service as the Allies pushed north through Italy.

So many stories.  Once while preparing to return to Egypt with a plane from Itally he noticed the grapes were ripe in the field next to the airstrip.  So he unloaded one of the ammo bays in plane and filled it with grapes.  Figured he was flying alone, so if he encountered the enemy there wouldn't be much difference between one set of guns and two.  He flew back to Egypt with a load of fresh grapes, said it made him quite popular for a couple of weeks.

- Peace

Thursday, November 10, 2011

Last Day at Blackboard Collaborate

Last Flight out of Bb collaborate

Today's my last day at Blackboard Collaborate. It's been a tough three weeks, letting go of a place where I've grown to love the people I work with. But I covered that in my last post.  So let's talk RC Helicopters.

My parting gift to the Calgary Office is pair of Force RC Battling Helicopters. We've been buzzing around our large meeting area, and shooting one another out of the sky all week :)

For the price the Force RC helicopters are very easy to fly and the combat system is a ton of fun. These are the RC toys I dreamed of as a kid.

Only complaint is they're not the toughest things in the world, even with adults it's easy to break the plastic frames. Still lot's of fun for the $$$. Got them as a set from PM Hobby Craft.

Oh and before I get accused of trying to lower productivity via gift of RC goodness, I cleared the idea with the appropriate VP before getting them. OK so said VP announced his retirement a few days later, but my conscience is clear.

Thanks to Doug for taking the picture, while I flew past the Bb collaborate poster. Thanks to Andy for helping with the initial experiments.

Thoughts on the new gig still to come.

- Peace

Wednesday, November 09, 2011

A Failed assert Is Truly Groovy Baby

While I've been a fan of Groovy for some time, I wasn't a fan of assert in Groovy, it produced a big ugly stack trace and wasn't very readable. So I just ignored assert  as I have in Java.

Most developers ignore assert in Java, it was introduced late, it's complicated to work with from a tuning and performance perspective, we've been doing unit testing long before assert was introduced...

However the core Groovy community loves assert, almost all example code for Groovy,  beyond 'Hello World', uses assert to show what's going on. Example: Introduction to Groovy

So ignoring assert in Groovy, didn't feel very groovy; I was at odds with the community. Using assert didn't feel groovy either.

That changed last night as I debugging some code for the build system. I put in a quick assert as a sanity check and it failed, but it failed beautifully.  It produced one of the most beautiful error messages I've ever seen, it looked something like:

assert demo.calcA() == demo.calcB()
       |    |       |  |    |
       |    1       |  |    2
       |            |  AssertDemo@2c79809
       |            false

The perfect amount of information, quickly showing me what was happening in my code. Turns out Groovy 1.7 introduced Power Asserts because
Groovy's "assert" keyword has sometimes been criticized as it's, in a way, limited, as it just checks that the expression it's being passed is true or false. Unlike with testing frameworks such as JUnit/TestNG and the various additional assertion utilities, where you get nicer and more descriptive messages, Groovy's assert would just tell you the expression was false, and would give the value of variables used in the expression, but nothing more.
OK, so I'm not quite alone in my lack of love for the old assert.  The new Power Assert is a thing of beauty.

Power Assert was developed as part of Spock: a testing and specification framework for Java and Groovy applications.  I haven't used Spock, but it's now on the list of things to check out.

- Peace