Over my head (Cable Car)…

Everyone knows I’m in
Over my head
Over my head
With eight seconds left in overtime

–The Fray

My wife works at a college (soon to be university I think) - Mt. Union College.  She’s worked there for about 5 years, and as one of her benefits, she, I, and our sons can take classes for “free” (not completely free – there’s a tax implication at the end of the year, but near enough).

Laura has been working on finishing her B.A., off and on when the class schedules suit her needs, which is good for her.  Unfortunately for me, I already have a B.S. and Mt. Union is a private traditional liberal arts college.  The college’s focus is on traditional students, and doesn’t offer much of anything in the way of evening classes.  That generally means that it has nothing for me in the way of academics.

This semester though, there’s a math class offered from 12:00-12:50.  Throw in a few minutes drive time to and from class, and I can fit it in by taking a 90 minute lunch.  Cool.  I decided, literally, the day classes start (today) that I’d like to take the class.  It was one of the most impulsive decisions I’ve ever made, but it seemed innocuous enough at the time.  I emailed Laura, she checked into it, and after some wrangling,  got the professor to admit me to the class as an extra (did I mention that the class was full?)100_2523

I need Calculus II, which I’ve never taken, for my M.S. in C.S. at Kent State.  I did take Calculus I at Kent State, but that was about 15 years ago, so I may be a little rusty… maybe.  I tried to take Analytic Geometry and Calculus I at Kent this past spring as a refresher, ultimately so I can take the Calc II class that I need.  I took the class on the premise that I would sign up for tuition reimbursement from NEC.  Unfortunately, due to my work-related travel I had to drop the class at the last possible opportunity, which is disappointing because I was doing really well until I missed too much time traveling to Japan and Dallas.  It was a bit frustrating as well because I didn’t get a refund for dropping the class or tuition reimbursement, so I basically paid $1200 out of my own pocket for what amounts to tutoring.  This time I saw an opportunity to take the same class at MUC for $free and avoid the downside if by chance something happens again like what happened during the spring semester.

Laura decided that she would take two classes this semester too.  One on Monday evening, and a second on Wednesday evening (interestingly, she didn’t mention that until Friday).  It really doesn’t have a big impact on me if she takes the classes other than I need to know so I can pick up the twins from pre-school after work those evenings.

That’s when it hit me.

Laura won’t be home until 9pm on Monday and Wednesday.  I’ll be taking Calc on M, T, H, and F.  The intersection of those schedules means I have to go in early on M and W – I can’t stay late.  I hit the treadmill in the mornings and the weights in the evenings.  That’s nuked.  Yeah, it’s only calc I, I won’t have to study much, especially after taking the “refresher” in the spring, but there will still be copious amounts of homework and quizzes.

Treadmill?  Weights?  Me-time?  Family-time?  Uh, Fantasy Football, hello?!

In order to take the class and pick up my boys on time on Mondays and Wednesdays, I’ll have to be at work at 7am.

I’ll have to get up an hour earlier on Mondays and Wednesdays to fit in cardio – that makes it about 5:15am wake-up (that’s the same time we got up in Army basic training, incidentally).  In order to keep my daily weight routine though, well, that’s a bit tricky.  My weight routine is Monday, Tuesday, Thursday, Friday.  My workouts last roughly an hour to an hour and fifteen minutes.  I’m already getting up an hour earlier Mondays.  I can’t go to the gym on Monday or Wednesday evenings.   Hmm.  If I tack on the time for a morning workout, then I have to get up 2 1/2 hours earlier on Mondays and Wednesdays – that puts me back to 3:45am.  Um, the gym isn’t open then.  I’ll figure something out – worst case scenario there’s an Anytime fitness near here

Moving along.  We signed Connor and Logan up for “small stuff” football at the local YMCA this fall (self so proud). That’s on Wednesday evenings at 5:30-6:45 for six weeks from September 10 through October 15.

None of this takes into account homework, work-related schedule snafu’s, recreational activities, holiday “stuff”, etc.

In short, I’m going to be a bit busy for the next 15 weeks.  No, I didn’t really think about it at the time.  I absolutely refuse to get beat by this schedule.  That’s just how I roll.  That means that I have to work out something for my gym schedule, cut WAY back on non-important things like *cough*TV*cough, and adjust my schedule a lot by getting as much sleep as possible.  Somehow, someway, I will make this work well and fluidly for everyone involved.

I think the hardest part for me will be keeping my head clear and not getting distracted.  I have a strong tendency to ruminate on things – work, health, family, etc.  This is going to be a big challenge for me to focus on one thing at a time and see it through before moving on to the next item.

Ah, the sacrifices we choose make.  I guess champions get up.  Even when they can’t.

Wish me luck.

Cheers,

Goody

Code reviews

Code reviews, the sanity check of software development.  They're a software engineering best practice initiative.  That's what a bullet point on my job description says, anyway.  Microsoft even calls them a best practice and has a slick how-to for C and C++:  http://msdn.microsoft.com/en-us/library/bb871031.aspx.

In a nutshell (a small nut) the idea is, you write some code, when you're done let me know, and then I look at it to see if it makes sense and is is free of glaring flaws.

We do code reviews all the time where I work.  I do at least one a week, and I ask other people to review my code… when I'm writing code not Word docs, all the time.  I get the occasional "why not just do this", and I occasionally I get to give it right back.  It's good.  It's a sanity check for the code.  It makes the software better; makes everyone (hopefully) better developers thanks to good feedback; and keeps maintenance costs low.

Now, here's the gaping hole: Code reviews are a sanity check on the code you wrote, not the code you didn't write.  See?  Makes perfect sense to me. 

When I look at code during a code review I'm looking at the code that you wrote.  I'm not necessarily looking for the subtle piece of logic that you left out that makes the whole feature work like the functional spec says it will.  For that matter, I may not even know what feature you're working on.  All I need to know is, what is this piece of code supposed to do, not what the entire feature consists of.  Code in and of itself does not a feature make.

Code reviews can not, nor should they, substitute for good testing, QA, and verification and validation (V&V for you software engineer types).  You still need to have some black-box testing mechanism in place to ensure that the final software does what it's supposed to do.  Code reviews can not always catch the missing logic or missing piece of code that makes sure there's money in the account before debiting it (disclaimer: that example is obviously obvious purposefully on purpose).  Having a test plan and having good QA is the only way to ensure that the software works (mostly – see "good enough").

 

Cheers,

Goody 

It’s just semantics

"Specifics, Bob."  One of my favorite scenes from any movie is the scene in Phenomenon when John Travolta is being interviewed by Brent Spiner (Dr. Bob) to assess his intelligence.  

Perhaps its just my engineer-type logic that finds it so appealing and humorous.  But for me those scenarios pop up on a daily basis.  For example, today I was sending an email with a Microsoft Word document attached.  That sounds benign, except for the extension – .docx.  In case you are… uninformed, docx is Microsoft's OpenXML format available in Microsoft Office.  It's the standard format for documents created with the newest version of Microsoft Office.  Which brings me to my point.

I stated in the email that the attachment is a Microsoft Word 2008 document.  Wha?  Hold up.  I'm sending this to a person using Windows and Office 2007.  They'll likely think I'm daft if I call it that.  So, I changed the wording to say it's Word OpenXML format, which will likely trigger the "hey, that's the new office 2007 .docx format" thought.  The thing is, I created the document using Microsoft Office 2008 for Mac OS X.  So, to me it is Word 2008.  To non-Mac people – heck, to most people – it's Office 2007.  The fact is, it's neither – it's OpenXML.

This sort of thing happens all of the time, of course: Kleenex / tissue; Coke / cola; google / search; band-aid / adhesive strip; the list goes on.

The point is…. well, there is no specific point, just an observation, I suppose.  Just remember, when you're trying to explain something, no matter how trivial, to an engineer you just can _not_ be too specific.

 

Cheers,

Goody