uwMike.com

I will be in Seattle in September, and back in Waterloo next January.

Archive for the 'Musings' Category

With Joy

October 10th, 2005 0

Joy seems to be back.

It’s one of those words that sort of fell out of favour for a while. Are we too cool to be joyful? No one pretends that most of life isn’t the relentless pursuit of happiness, so what about Joy?

What are car commercials? Get the car, get the girl. Girl + car = happiness.

Happiness is a feeling. But joyfulness is a state of mind, perhaps even of being. Joy made the cut for the nine fruits of the spirit, and happiness didn’t. And Joy certainly fits better with the likes of Patience and Faithfulness. Read on…

Seeing Things

July 30th, 2005 0

I simply love Watership Down.

In the middle of the story, one of the rabbits tries to explain the miracle that allowed him to escape from an extraordinarly powerful foe:

“It’s going to be very hard to describe what happened next. Although all four of us were there, we don’t understand it ourselves. But what I’m going to say now is the cold truth. Lord Frith sent one of his great Messengers to save us from [our pursuers]. Each one of us had fallen over the edge of the bank in one place or another … And then–then an enormous thing–I can’t give you any idea of it–as big as a thousand hrududil–bigger–came rushing out of the night. It was full of fire and smoke and light and it roared and beat on the metal lines until the ground shook beneath it. It drove between us and [the enemy] like a thousand thunderstorms with lightning. I tell you, I was beyond being afraid. I couldn’t move. The flashing and the noise … they split the whole night apart.”

Read on…

Avoiding Special Cases

July 14th, 2005 0

Every programming problem has some corner case. Every loop has a first or last element that requires slightly modified processing.

Every time I create a special case in a program, I feel a little bit dirty. I’ve gone ahead and created redundant code. I’ve placed the same logic in two places. When one is changed, the other will break. Read on…

Unfair Calculator

June 8th, 2005 0

A story has come up on CNN about a calculator recall in Virginia. Eleven thousand previously state-approved devices are being replaced with a slightly crippled model so that students don’t use one particular function to gain an advantage on standardized tests.

As I read the piece, I noticed that the feature was the ability of the calculator to convert most decimals to a reduced fraction. Read on…

Wine At The Feast

June 6th, 2005 37

Lewis’ book The Great Divorce is a compelling hypothesis on the nature of Hell. There’s really not much about the afterlife in the Bible, but it’s fun to speculate, at least in moderation.

I’d love to think that Heaven is like an enormous never-ending dinner-party. Read on…

Greyhound Does It Right

May 24th, 2005 0

Greyhound treats their customers properly. In the tech sector, one company stands out as the one that serves their users first and stockholders second. It’s been a rude awakening to some of the others.

But if these ‘others’ need a second example, perhaps they could turn to one of the companies that’s been serving people and earning trust since 1914, long before the modern ‘tech sector’ was ever dreamt of.

Coach Bus: The Customer’s Side

I buy a ticket. The ticket is not for a particular seat, a particular bus, or even a particular day. It’s just a starting point and destination, valid in the couple months following its purchase.

I can take whatever bus I want, but the onus is on me to be early enough that I get a seat. If I don’t get a seat, I may have to wait for the next bus.

Greyhound’s Side

They have to plan a bus and a driver for every time and route on the schedule. If only two people show up with tickets, the bus runs anyways, and the schedule will be revised.

And if a greater number of people than expected appear, a second bus must run. This is a last-minute decision, and thus it means that there are buses and drivers standing-by, waiting to take the overflowing routes.

But what about if there’s just a few too many people?

Customers First

Yesterday evening I was coming back to Waterloo from Toronto. I was aiming for the 9:30pm bus, the one that everyone aims for.

There were well over a hundred people on the platform, waiting on a bus that seats fifty-five.

The company ran three buses. But they didn’t even all do the same route. One went to the Kitchener Terminal, and the other two came straight to the University. The third bus was barely half full.

Special?

Is this really that great? Yes, it is.

I’d already bought my ticket. Their statement is:

Seating is on a first-come, first-served basis. Advance purchase tickets do not guarantee a seat.

This absolves them of any resposibility to me in light of my purchase, except that I get to my destination… eventually. Yet they voluntarily ran a half-empty third bus, a cost expended where the only value back was in customer appreciation.

Mike

Collaborative Hackers

April 28th, 2005 0

Douglas Bowman has posted a piece about the role of the designer in collaborating with their clients. This same philosophy is as applicable in software design as it is web development and branding.

I’ve recently moved from being a hobby programmer to a hobby programmer who sometimes gets money. Which sort of makes me a ‘professional software developer.’

“Development”

To me, the term software development reflects a distinctly corporate attitude toward the creation of software:

  • The developers’ natural tendency is to Mess Up.
  • We must meticulously document every facet of every feature in order to Prevent This.
  • We will Design It. They will Implement It.
  • We are not interested in a work-in-progress, we will see it when it’s Done.

It’s not hard to see how this pattern of thought may have developed: Hackers speak in programming concepts. How intimidating it must be to hear expressions like ‘referencial integrity’ thrown around the design table!

It should be our job to carefully explain these things as necessary, rather than jumping to conclusions and leaving the client in the dark. After all, when decisions need to be made, how useful is a customer who’s full of buzz-talk but has no basis for understanding the underpinnings of their new software?

The other part of this is that they need to show us the flow of their business. Not what they percieve the flow of the application should be, that can come later, but the actual product process. The more time is spent showing your programmers the big-picture view of what’s going in the company, the better their understanding will be. The more they see where their new application fits into the existing framework, the more ‘little things’ they’ll be able to add to make it that much better.

With all this teaching going on, there’s an upfront time commitment to be made. But it’s a worthwhile one. And it’s time that would have been spent writing a spec, anyways, so instead of just saying what needs to be done, why not persuade each other of what needs doing?

The Risk

What’s the problem here? The problem is that you can end up with a pig-headed hacker who thinks he knows what you need and won’t bother to learn even if you try to persuade.

Fire him.

And when you’re hiring to replace him, look for someone who’s 50% teachable and 50% able-to-teach.

Pick a project from their portfolio and ask them to talk about it. You’re looking for an explanation of the lowest-level and the highest-level. What makes this thing tick under the hood? And what role did it play in the greater scope of the organization? After data left your program, where did it go?

The amount they’ll share about that project is indicative of what they’ll bother to learn about yours… and what they’ll teach you about it.

Mike

First-Person Narrative

April 5th, 2005 0

There are some books from my childhood that never seem to leave the radar. If my little brother’s got them out of the library while I’m home, I’ll check out from the conversation and curl up with an old friend.

One such book is Henry Reed, Inc., by Keith Robertson. (and indeed, all five in the Henry Reed series.)

Henry Reed

Henry Reed’s parents are in the diplomatic service. So although he’s travelled worldwide with them, he has yet to experience any kind of normal adolescent lifestyle. He’s sophisticated and eloquent, and extremely dry.

The books are the journal he keeps over the summer, staying with his aunt and uncle in the 5-house town of Grover’s Corner, NJ.

Journal Style

One of the masterful things that Robertson accomplishes with these books is an utmost adherence to the creative writing guideline of “show, don’t tell.”

When writing first person, there’s a tremendous temptation to save on words and fill out sentences with bare moods. After all, it’s a first-person perspective, they can just go ahead and say how they’re feeling, can’t they?

One of the charms of Henry Reed is that no matter how absurd the situation is that he finds himself in, he never admits to it. He simply carries on presenting facts for the digestion of the reader.

Others

I encounted a similar narrative style at home on the weekend, re-discovering Sid Fleischman’s book Humbug Mountain.

One final example that deserves mention is The Chicken Doesn’t Skate, simply because the characters that Korman presents in this instance are all ridiculous caricatures, and yet their own self-righteous opinions of each other are conveyed beautifully through the situations and actions, rather than by talking to the reader.

Mike

Teething

March 22nd, 2005 0

I’ve developed the utmost sympathy for babies who cry at night from the pain of their new teeth cracking through the gums.

Like everyone’s, my wisdom teeth are enormous chunks of bone that show up late for the mouth-party. There’s also the distinct probability that they are appearing in the wrong position and/or orientation.

Feeling around ‘back there’, I can tell that on my lower-right tooth, one of the four corners, turrets if you will (my sincerest apologies to oral professionals), has broken through. The other three hover directly beneath a thin layer of gum, stretched taut, and raw to the touch.

If I could leave them alone, I’m convinced that they’d hurt less than they do now. But the activity of computer programming, which I engage in all day long and most evenings, requires a fair amount of intellectual flexing and cogitation. Flexing the Brain Muscle means nervous activity. I explain that by saying that an inconsequential distraction such as eating carrot sticks or rubbing gums with the tongue protects my concentration from being shattered at its most fragile moments.

In short, I’m facing the probability of having to get my wisdom teeth extracted.

I’d be hearing ominous music, but I’m listening instead to Terry S. Taylor’s delightful Imaginarium — Songs From The Neverhood.

Mike

Sickness

March 16th, 2005 0

I don’t take sick days.

Anyone who knew me in high-school will tell you this. I probably spread more disease by coming to class clutching my cough syrop and Kleenex than everyone else combined. Once or twice, I got really, really sick, like, unconcious… but if I was mobile, I was at school.

Rest is an important part of illness recovery. But rest doesn’t have to mean drooling on a pillow all day long and breathing stale bedroom air. For me, it means hitting the sack early and getting nine hours of sleep instead of seven.

Psychologically, I feel more in control if I’m still flexing my brain and being useful even away from the office. Besides, the projects I’m working on are interesting and captivating.

Having a cough doesn’t prevent fingers from typing. If I laid in bed, I’d think about the algorithms I’d otherwise be coding. So I might as well just be doing it.

Mike

© 2004-2008, Mike Purvis, some rights reserved. I'm running Wordpress, and I have an RSS feed.