I Have a Spelling Checker

Tags

, , , ,

These days it seems like spell checkers exist in almost everything. Word processing software has had them a long time, although in the early days you had to invoke the spell check function. These days software  handily underlines misspelled words in real-time (with sometimes an advanced function we can invoke).

It always struck me as pretty lame how people (well, let’s be honest: managers) would present PowerPoint documents in important meetings with the red jagged “you misspelled this” underline sprinkled throughout their document.  What exactly did they think that meant?

But enough about managers. It’s Friday and time for some fun, so here’s an old, old poem about spelling checkers…

Continue reading

Getting to the Next Hill

Tags

, , , , ,

Last week I took my car in for scheduled service, and when I asked how long it might take, the guy said it was specified as one-and-a-half hours of labor. He could do that because there are thousands upon thousands of data points where a competent mechanic has performed that exact service, so there is a very clear idea how long it takes.

But ask a researcher how long it will take to find what they’re looking for, and the answer is usually, “I have no idea. I’ll know after I find it.” The path a researcher follows is usually new and unexplored, so it’s impossible to predict how long the path actually is.

Creating new software is much more like research than auto service, because it involves traveling unknown ground. Despite this, software development managers often act as if new development is predictable.

It often isn’t!

Continue reading

Musical Interlude

Tags

, , , , , , , , , , , ,

It’s Friday again, so it’s time to get casual and have some fun. Today I have a pair of songs for computer programmers. These files have been occupying bits on my hard drive for many, many years. I’m releasing them to the Wild World Web so they can live free!

You know the tunes, so sing along to the new words…

Continue reading

Computer programming is hard!

Tags

, , , , ,

Computer Programming is hard! It’s at least as hard as what commercial architects do, and I will argue that it’s as intellectually difficult as what doctors and lawyers do.

Many people think it’s easy, because they know some nine-year-old who “programs,” but there’s a difference between fooling around with the computer and building good software applications.

Continue reading

The Tale of the Pea Sea

Tags

, , , , , , ,

It’s Finally Friday again, so it’s time for a little fun. This is a piece I’ve had living in my files since 1995. That makes it pretty out-of-date, but it’s such a classic that it’s worth preserving and giving another airing. It does require remembering the lore of the computer middle ages (the 1980s).

The copy I have is from a USENET post © by Sean Sengenberger. It’s not entirely clear whether he (or possibly, she) just posted a piece found online or if Sean actually wrote it. (Some folks back then explicitly copyrighted their posts.) In any event, credit given where credit is due.

Without further ado, I give you…

Continue reading

Write a Formal Letter

Tags

, , ,

Think of writing code as you think of writing a formal letter.

When you write a formal letter, you have two goals: you have a message to communicate, and you must follow the protocol of a formal letter. Your message comes through when your writing is clear and good. Following the protocol is a matter of knowing and following some syntax rules.

A message + formal syntax. The result is a document with a context.

Continue reading

Managing Complexity

Tags

, , , , , , , , , ,

Somewhere I heard someone claim that: “Programming is an exercise in managing complexity.” The word “is” makes the sentence slightly ambiguous. It could mean: “Programming is just an exercise in managing complexity,” implying that that’s all programming is. Or it could mean: “Programming is an exercise in managing complexity (in addition to other things).”

I would absolutely disagree with the first interpretation; programming is definitely more than just managing complexity. On the other hand, managing complexity is a huge aspect of programming.

Continue reading

Python & Baseball

Tags

, , , , , , ,

One of the cool things about being a carpenter is that you can make your own shelves and dog houses. One of the cool things about being a computer programmer is that you can make your own computer apps!

In an era when computers are so much a part of life, that’s a useful skill. And the nice thing about doing it yourself is that things turn out exactly as you want them. You can make things that are perfect just for you.

Case in point: using Python to create custom charts of baseball stats!

Continue reading

Rule #3: Don’t Ignore Warnings

Tags

, , , , , , ,

There have been times when, working on other people’s code, one of the first things that pops up is that their code generates thousands of warnings. I’m not exaggerating the number; there have been at least two times I can recall where someone’s code set generated that many warnings. And both times, the code set wasn’t all that large (only tens of thousands of lines).

Which leads us to Rule #3: Don’t ignore warnings!

Continue reading