Mark Gilbert's Blog

Science and technology, served light and fluffy.

GE Flyover

GE has a phenomenally cool way to showcase some of their production facilities – flyovers with a camera mounted to an R/C helicopter.  Check it out on their YouTube channel:

November 19, 2011 Posted by | General | Comments Off on GE Flyover

Visual Resume

A while back, Jim Holmes posted that he had converted his resume to be more visual, following in the footsteps of Jef Newsom.  I thought it was a cool idea, so naturally I had to see what my resume would look like, so converted:

Visual Resume Thumbnail

(Click to enbiggen)

Like Jim, I used Visio to lay this out.  I started out with a vertical timeline, but I couldn’t get all of the pieces to lay out nicely, so I switched it to the horizontal layout you see.

When I have a diagram that gets this dense, I will frequently use color to make similar logical groups stand out.  The Yellow group here are specific platforms or programming languages that I’ve worked with; the Green is a methodology that I wanted to call out; the Purple are the organizations that I’ve worked for; and the Blue are the community groups that I am involved with.

Then I took the coloration a shade further – pun intended: the more brilliant hues represent the most recent or most relevant experience or points in my background.

The overwhelming majority of resumes that I’ve come across are arranged in portrait mode.  In my case, nearly everything on my visual resume is arranged in landscape.  So, to make it easier to a recruiter or HR person to access mine when it’s in a stack, I put my name and contact information both horizontally and vertically (email and phone removed for the purposes of this post).

I don’t think it turned out too bad, but I’m curious if I would be more or less likely to get an interview based on this.  It is certainly eye-catching, and would definitely stand out among the traditional text-heavy resumes, but would the layout be more conducive to finding a candidate with a particular skillset or background?  Or would you have to put too much energy into deciphering it, and therefore ultimately toss it?  If this were saved as a PDF and published on the web, how would it fare with search engines?  Questions, questions…

At any rate, it was an interesting exercise.

May 28, 2011 Posted by | General | 1 Comment

Going Minimal

I’ve been through a very odd transformation in the last three weeks.  The dramatic part of this transformation started with a small gift three weeks ago, but the roots of it go back years.

A little more than three weeks ago we held the third annual Kalamazoo X Conference, of which I am one of the organizers.  Mike Eaton, who wrangles all of the speakers and MC’s the event itself, gave each organizer a Moleskin notebook as a thank-you gift for helping organize this year’s conference.

Now, I’ve seen these notebooks, and I’ve known people over the years who have sworn by them, but I had never used them myself.  I’ve stuck with recycled scrap paper and legal pads over the years is because I didn’t think having all of my notes from ten different projects lumped into the same notebook was a good idea, and having to manage ten different notebooks seemed like a waste (of money and time).  So, single-sheets it was.

So, I have this lovely notebook, and some serious doubt as to whether I would use it.  But it got me thinking, and it didn’t take long for me to realize an interesting fact about what I usually did with those single-sheets of paper with notes from meetings on them: I would transcribe them into my digital organization system, Tasks.  Then I would file them away, and would very rarely look at them again.

Ok, so if I rarely needed to refer back to the original notes, what’s the harm in lumping all of them together into a single notebook?  So, the following Monday, I started using the Moleskin for my time tracking, meetings, and phone calls.  By Friday of that week, I was really enjoying the experience.

Now for the real transformation.

You see, for at least the last six or seven years, I’ve carried a laptop backpack with me between work and home.  And until a couple of years ago, I actually had a laptop in it.  For the last two years, though, I’ve had a desktop at work, but I’ve maintained the use of the backpack because it had my portfolio-with-legal-pad, pens, highlighters, gum, etc..  So, with a week of the Moleskin as my backdrop I asked “Why was I hauling this stuff back and forth to work?”  The Moleskin had taken over the functions of the portfolio, so I could leave that at home now. 

Hmm.  What else could I get rid of?  Would it be possible for me to stop carrying the backpack altogether?  The answer to the latter was “yes”.  The answer to the former was “a lot”.

I emptied the contents of my backpack onto my desk at home, and started picking through it, segregating it into four piles:

  1. Pile A was for stuff that I could just throw away.
  2. Pile B was for stuff that would be left at home.  (In going through this process, I found a couple of refills for my good pen that were more than 10 years old, still in their original packaging.  Yeah, it was time to clean out the backpack.)
  3. Pile C was for stuff that only ever used at work.  That stuff would go in with me on Monday and stay there.
  4. The last pile was for stuff that would need to travel to and from work daily.  My goal was to minimize this pile as much as possible, and in the end it consisted of my primary USB drive, my MP3 player, and the Moleskin.



Travel for the last two weeks has been weird downright surreal.  The USB drive and MP3 player go into my pocket.  All I carry is the Moleskin and my lunch.

I should have done this years ago.

May 23, 2011 Posted by | General | Comments Off on Going Minimal

None shall pass! GoDaddy Email and Spam Filters

Earlier today I checked the GoDaddy email box that I use to blast out to our user’s group, the Microsoft Developers of Southwest Michigan (MDSM).  Typically, I’ll send a formal invitation message out a couple of weeks ahead of the meeting.  The message is sent to the address, and then I blind-copy all of the mailing list members.  It’s worked flawlessly for years.

And, since I’m now blogging on it, you can probably guess that it didn’t work today.

GoDaddy’s mail server flagged it as spam and refused to forward it on.  Specifically, the message bounced back with:


Hi. This is the qmail-send program at
I’m afraid I wasn’t able to deliver your message to the following addresses.
This is a permanent error; I’ve given up. Sorry it didn’t work out.

<>: failed after I sent the message.
Remote host said: 554 The message was rejected because it contains prohibited virus or spam content


Every address included in the distribution group failed with this error, including as you see above, the Contact box that I included in the To line.

The messages that I send out are mostly text – date/time/room, topics to be covered, bio for the speaker, and so on.  I tend to include several hyperlinks throughout the message directing people to a map to the building we meet in, links in the speaker’s bio for organizations and events that they are part of, links back to our site, and so on.  My first thought was one of these links was killing it, but I’ve used most of these in all of the previous messages as well.  I started to worry that GoDaddy had deployed some super-stringent spam filter in the last month, and it would now be a game of trial and error to figure out which link or bit of copy was throwing the flag.

As it turns out, I got extremely lucky.  My first attempt was to turn the message to plain text, cutting out all of the HTML.  That failed – the message was still bouncing, even when I just tried sending to Contact.  My second attempt was to cut out all of the links to upcoming industry events.  That allowed the message to go through. 

So, I dropped all of those links, and put a single message at the top of that section saying “please visit for links to each event”.  The links were on our site already – I had just been including them in the emails as a courtesy.  This wasn’t a terrible workaround, especially given how quickly I stumbled onto it.

The moral of the story?  If the black knight is stopping you at the bridge, just lop off his legs and move on.

May 6, 2011 Posted by | General, MDSM | 1 Comment

Kalamazoo X Conference 2011 – Light-Hearted Recap

I’m still on the mental buzz from yesterday’s Kalamazoo X Conference.  Here is a rough agenda for the last four months, from the perspective of an organizer:


1/1/2011, Midnight – 4/30/2011, 8:49 am: 

  • Issues
  • Headaches
  • Worries
  • Scrambling

4/30/2011, 8:50 am – 4/30/2011, 5:10 pm:

  • The Zen of Awesome
  • Adrenaline High

4/30/2011, 5:11 pm – 4/30/2011, 8:10 pm:

  • The after-event conversations
  • Adrenaline high redux

4/30/2011, 8:11 pm

  • Adrenaline high ends
  • Extreme weariness sets in


I’m sure I’m not the only conference organizer in history to follow this basic agenda.  I was simply amused by how clearly the boundaries were defined this year.

The speakers did an outstanding job, and like last year, there was a lot of humor throughout the day.  I tried to capture some of those gems:

  • "I want [to hire] someone with [a degree in] English Lit because if they could send out an email without a grammatical error, that would be so great.” – Joe O’Brien
  • “The graph shows minus 30 degrees.  It doesn’t say Fahrenheit or Celsius, but at 30 below it doesn’t matter.”  – David Giard
  • One time I wore a sport coat!” – Leon Gersing
  • “You can’t erase the internet.” – Jeff Blankenburg
  • “’Great teams’ don’t mean you can set them free and let them go and spend all your time on XBox.” – Jim Holmes
  • “Buy your teams foodstuffs.  Be careful about food allergies.  Don’t kill ‘em.  That would be bad.” – Jim Holmes
  • “If you could give an Oscar to a puppet, you should have!” – Leon Gersing, about Yoda.
  • “And I thought following lunch would suck!” – Dan Neumann, on following Leon’s session
  • “You do not want your conscious brain to make those life or death decisions, because you will die.” – Laura Bergells, on the value provided by the amygdala

Thank you to all of our speakers and to all of our attendees.  Without you, it would just be me and a few guys in a room all day with a ton of caffeine but no XBox.  Thank you for saving us from that fate.

May 1, 2011 Posted by | General, Kalamazoo X Conference | Comments Off on Kalamazoo X Conference 2011 – Light-Hearted Recap

Kalamazoo X Conference 2011

It’s hard to believe it’s been 3 years already.

3 years ago today I, along with a passionate group of my fellow organizers, were neck deep trying to make the first Kalamazoo X Conference fly.  We wanted to put on a different kind of conference, one that focused not on technology and tools, but on everything else that goes into making a great software developer, software architect, or technical manager: soft skills, personal branding, networking, dealing with change, and so on.

We weren’t sure if people would “get” it.  We were worried about the turnout – and then we got a nearly-packed room.  We were worried about the format, a single track conference where everyone sees and hears everyone – and it worked brilliantly on several levels.  We were worried about so many different things, and the conference was just plain awesome.

The passion continued at last year’s conference.  I personally walked away with several new ideas and perspectives on my craft, some of which I implemented at my company.  I know I wasn’t alone.

And now, we’re at year 3.

Join me on Saturday, April 30 for the 3rd Annual Kalamazoo X Conference, being held at the downtown campus of Kalamazoo Valley Community College, Kalamazoo, Michigan.  We’ve got a great lineup of people again this year, so get registered. For more information, check us out at

April 14, 2011 Posted by | General, Kalamazoo X Conference | Comments Off on Kalamazoo X Conference 2011

5oz Birds and 1lb Cocaine

Silly smugglers.  They should have gone with an African Swallow:

January 20, 2011 Posted by | General | Comments Off on 5oz Birds and 1lb Cocaine

REM Moon Distances

I love computers and I love software development.

Of course, both have done their best to drive me insane at points, but as I look back on the 35 years of my life, I think they’ve brought me much more enjoyment than stress.

I am by no means a master developer – I have neither the breadth nor depth of knowledge to claim that – but at the very least I am comfortable sitting down at a computer to engineer a little miracle here and there.

But it wasn’t always that way.  In fact my initial experiences with computers were fairly rocky, at least when it came to programming.

My first exposure to computers came in the second grade when my elementary school was able to get ahold of an Apple IIe.  I don’t think they had an official “computers class”, but at the very least one of my teachers had enough experience with computers that he tried to teach the rest of us. 

Some of what I remember from that class was just playing video games.  To this day I still think this is a great way to get comfortable with a computer.  Playing a game, especially if it’s a virtual version of one that you like to play in real life (like solitaire, chess, or hearts), allows you to learn the basic commands and mouse maneuvers needed to get around the computer and software in general.

The rest of what I remember from that class involved programming in BASIC.  In particular, there were two lessons that I frequently recall.  The first involved a simple program that would print out my name multiple times without having to repeat the Print statement – obviously an introduction to looping.  The second was a simple program that would print my name multiple times, but diagonally as you went down the page:


This second one did, in fact, use multiple print statements, and each time would print additional space before the name.

Later that week (I assume it was only a week or so later), my teacher gave me a quiz.  The first question was to write a program that would print my name multiple times without repeating the Print statement itself.  I distinctly remember being confused by that question, even though I had seen the completed program already, and as a result I botched the answer.

Now granted, I WAS only in second grade.  However, I was at or above grade level in everything else.  In fact, I got so far ahead of the rest of my class in math that I went on to be double-promoted, and spent the rest of my academic life a year younger than all of my peers.  I don’t say that to toot my own horn, but only to illustrate that there was something about computer programming that just hadn’t clicked for me yet, even when seemingly everything else did.

Some time after that quiz (probably within a year or so), I decided that I would write a program that would calculate the distance between the Earth and the Moon.  Don’t ask me why I thought this was something that I needed a computer program to do, but that was the task I gave myself.  My first (and I think only) attempt looked something like this:

REM Moon Distances
for i = 1 to 10000
for j = 1 to 20000
for k = 1 to 15000
for m = 1 to 35000
for n = 1 to 42000

By golly I going to master that loop syntax yet!  Loops for EVERYone!

Ahem.  Obviously, the concept of programming still hadn’t quite sunk in yet.

Somewhere around this time, my Dad sent away for a Timex Sinclair computer kit.  The computer arrived in pieces and you had to solder it together.  It did work for a time, but eventually we traded up for an Apple IIe – the same model that I had in elementary school.  That computer, with its green/yellow display, no hard drive, and dual 5 1/4” disk drives, lasted us into my high school years.  I remember my Dad doing some programming on that machine, copying programs out of computer magazines, one command at a time (it was only later that I figured out what peek and poke were for, but that chess program he typed in used a LOT of them).  I primarily used it for computer games (Ultima I and Wings of Fury were my two favorite) and writing papers for school.  The programming bug had left with Moon Distances, and hadn’t returned quite yet.

My sophomore year in high school, I decided to do a software-based science project.  I found a few books on fractals, non-Euclidean geometry and the like, and decided that I would write a program that would graph these out.  Never mind I was totally neglecting anything resembling “science” or the “scientific method” here – I just thought it would make a cool, stand-out-ish project.  With my Dad’s help, I wrote the program on the Apple.

I don’t know if the math involved was simply more than the IIe could handle, if I was just doing it wrong, or both, but the program took a frightful amount of time to run – it took several minutes to plot a single point, so before anything resembling a pattern required me to leave it on overnight.  Once I had a fair number of points plotted, I hit the equivalent of “Print-Screen”, and changed the formula being plotted to run it again.

Now, my high school happened to have a couple of Apple IIgs machines in the library.  I got permission to run my program there and was totally blown away.  Not only were the school monitors color – a stark contrast to the green/yellow display I had at home – but my program seemed to run 1-2 orders of magnitude faster.  What had been taking me overnight to complete on my home machine was getting done in half an hour there.  I decided to finish the “data gathering” portion of the project at school.

Looking back, that project was a milestone for me.  Regardless of the quality of the science project itself, I managed to get the computer to do what I wanted, and I’m pretty sure it didn’t require five levels of nested FOR loops.  The next year I decided to take the Fortran 77 class offered by my school, and it was that class where my passion for software really blossomed.  Finally!  Programming was coming as easy as math had in the ten previous grades.  Clearly, somewhere between “Moon Distances” and 10th grade my mind developed to the point where programming started to make sense.  So while I never any difficulty picking up math or science, programming required something more.  I think it was that year that I decided to major in Computer Science when I got to college

I did and I’ve never regretted it.

January 4, 2011 Posted by | General | Comments Off on REM Moon Distances

A little four-thought – My four-year blogging anniversary

Today is the four-year anniversary for my technical blog.  I decided to take this opportunity to look back, and look forward.

I am by no means a prolific blogger – in the past 48 months, I’ve averaged only 3 posts per month.  However, with a few exceptions, I’ve managed to post something every month in that time.  Here are a few major categories for what I’ve written:

  • My first few posts were about a SQL Server Management Studio plugin that I wrote called the SSMS Scripter.  I wanted to show it off to the world, and at the suggestion of my boss and mentor at the time, Matt, I started a blog to do just that.  This was the first of several Tools and Toys that I would unveil with the blog.
  • I’ve documented strange errors, bugs, and other quirky items – things that caused me hours or days of grief and had limited or scattered solutions on the ‘Net.  I used my blog to poull those resources together, and document what I did to troubleshoot and eventually solve it (or at least work around it).  My goal was twofold – document what I did so if I ever hit it again I would have it written down somewhere (‘cause, if I don’t write things down, they cease to exist pretty quickly), and provide a walkthrough for anyone else out there who was hitting the same thing.
  • I’ve also written several pieces on agile methodologies and the software process, as I tried to sort out the best way to build software.  And just for the record, I still don’t have a good answer to THAT question.
  • I’ve used the blog to announce several meetings, topics, and other news for the Microsoft Developers of Southwest Michigan user group (of which I am a member and co-coordinator).

Why have I kept it up for 4 years?  Why do I want to keep doing it?

Do I make scads of money from ads on my site?  No.

Have I gotten offers to write books based on the blog?  No.

Have I gotten job offers because of the technical prowess demonstrated on the site?  No.

What do I get out of it?  All of those pieces are interesting in their own right, and bring value to at least a few people on the planet – myself included.  However, I think when it comes right down to it, I think the real reason I’ve done it, and continue to do it, is because I enjoy the writing.

I like telling technical stories: how I got myself into a predicament, how I waded through, and the way out.  I like incorporating humor into the posts, such as with <rant /> tags, references to movies and movie quotes, and nefarious puns.

If you had told me in high school – where English was one of my weakest subjects – that I would be writing for fun twenty years from then, I probably would have laughed.  But enjoy it, I do.  Here’s to another four years!

December 15, 2010 Posted by | General | Comments Off on A little four-thought – My four-year blogging anniversary

Seeing the Lines

For most of the last two years, I’ve played chess with a couple of the guys in the office.  One of them, Jack (not his real name), has played a LOT of chess in his time, and has competed often.  So, when I say that I "play chess" what I’m really saying is that I move pieces around the board and try to make Jack work for his win.  It’s all in good fun.

Even better than being able to laugh off a fabulously bad move, or marvel at a stellar one, is simply learning to play better.  Jack is more than willing to explain why he made the move he did, and what it "got him" – better position, opening up possibilities for later, forcing me to move one of my pieces out of his way, and so on.  He’s also very good about explaining the pros and cons of the moves I make, showing me how moving my bishop there instead of here would have been a stronger move, and why.  He is a very good teacher.

One of the points that he frequently comes back to is the concept of "lines".  With the exception of knights, chess pieces move in straight lines. As a result, positioning those pieces so they are on "good" lines becomes very important in the game.  More than once I’ve seen him move a rook (for example) onto a particular column on the board, and then not touch it again for 5 moves.  What I discovered on move 6 was that he was herding my king to that line, and removing the intervening pieces one by one.  He could see how the game was likely to unfold, and put the rook into position to be ready to strike when everything was in place.

It’s a skill I’ve struggled to gain, let alone master – to be able to see the lines, and move pieces accordingly.

What I’ve realized in the last week is that I’ve actually been playing another game of chess at home.  For the last 18 months, I’ve been working on a prototype of a system that I think has commercial potential.  For most of the last year, I’ve been letting thoughts about how I would take this commercially simmer and stew in the back of my head, and collecting thoughts as they came up (a lot of my side projects work like that – collect ideas until I reach critical mass, and then move on it).  Part of that simmer-timer was to compile a list of systems and applications that would conceivably be competition.  This past week it was time to start organizing those thoughts, and really start moving the business side of this little endeavor forward.

In the course of checking out those other systems, I realized there were already two applications that did much of what I wanted mine to do.  I never seriously suspected that what I was building was, at its core, unique, but I had hoped that there were pieces that would make mine easier to use, easier to extend, easier to deploy – something that would set mine apart from the others and allow me to capitalize on it.

Which brings me back to chess.  I think I’m having trouble "seeing the lines" again.  On the surface it looks like what I’ve built very closely resembles what is already out there.  Trying to field a third product that does the same thing seems silly, especially since I can only devote about 5 hours a week on it.  At that rate, I simply can’t afford to go up against those other products with a product that merely replicates what they do.  In other words, I can’t play by their rules.  I need to find my own line.

I think my options at this point are 1) find a way to distinguish it in the current market, or 2) create a new market that I’m the first and only player in.  I don’t see the strategy – the line – that will lead me, 5 moves from now, successfully down either of those roads. 

To further complicate things, I’m also been asking myself "Are these my only two options?"  Am I failing to see yet another line?

October 15, 2010 Posted by | General | Comments Off on Seeing the Lines