Jeff Duntemann's Contrapositive Diary Rotating Header Image

January, 2025:

Lots of DDJ’s Text Has Gone Online

Ok, this is probably illegitimate, but it’s one way to get access to literally all my DDJ “Structured Programming” columns, which appeared from 1989-1994. In fact, even I don’t have the files containing the text of many of those columns anymore, so I’m going to download them before circumstances force the poster to take them all down.

My column was distinctive due to a trick I shamelessly copied from Isaac Asimov’s long-running science columns in Fantasy and Science Fiction: Start with a funny but pertinent story. I picked one at random, and it turned out to be one of the better ones. Below is the opener for my January 1992 column, about event-driven programming, which I was studying at the time using Turbo Vision. (I was 39.) It’s just the intro, which lays out an experience I had that most of you have heard of. It really did happen, really. I couldn’t make anything like this up.


Chewing the Wrapper

Jeff Duntemann KG7JF

It was 1971, and I was a college sophomore at a beer bust put on by a fraternity hungry enough for pledges to admit anyone. I was dressed in a bright yellow sweater and bright purple bell-bottoms, trying very hard to grow my hair without realizing the ultimate futility of the effort. (Can you picture me with shoulder-length hair? Sigh. I can’t either.)

As often happens at parties, an impassioned discussion between two people begins to attract a crowd, and before long a considerable fraction of the party was watching me debate some half-sloshed prelaw type on the merits of bringing the United Nations into the Vietnam conflict. Or maybe it was the moral imperative of passing the E.R.A. I forget–because all the while I was half-watching a pretty young woman who was hanging on my every word, following my discourse with this look of unbelieving awe on her face.

Shall we say this was not an everyday occurrence, and her interest inspired me to even greater heights of eloquence. Was it my sweater? My sideburns? Or could it be that at least one girl in this five-and-dime college appreciated the power of brains over biceps?

The prelaw slurred some minor insult at me and slunk away, defeated. The crowd wandered off–but she hung on, eyes like sapphires riveted upon me, and in our single moment of intimacy she breathlessly revealed the secret of her admiration: "You know, you always talk in complete sentences!"

Chewing the Wrapper

My God! She had thrown away the gum and was chewing the wrapper! What about my passion? What about my social awareness? What about my obvious allegiance to the greater good of mankind? No matter–she went home with some football player, and I went home with my complete sentences. I guess in the long run we both got what we deserved. [Note well: By 1971 Carol and I were a very close couple, and I had no interest in the girl as a girl. Her remark just made for a good story.]

There’s a lesson here. Rarely are our creative efforts admired for what we as creators consider most admirable. Isaac Newton wanted to be remembered for his theology–calculus was just a throwaway. The seminal object-orientation of Smalltalk was ignored for 15 years because people were too busy ooh-ing and ahh-ing at its primordial GUI.

I expect this will happen more and more these days, as it ironically grows easier and easier to create a flashy user interface and positively murder to sort out an application’s internals. It’s humbling to keep in mind as you struggle to master event-driven programming under Turbo Vision or Windows: They’re not going to admire the intricate subtlety or robustness of your event loop. They’re going to admire the color coordination of your scroll bars.

A New Year, A New Book (Almost)

Happy new year to everybody out there! May it indeed be happy, healthy, successful, safe, and fulfilling. Carol and I and Dash are still in good shape. Dash is 15 1/2, so he’s slowing down. Carol and I, well, we’re in damn good shape for being in our 70s. July will be 56 years since we met. October will bring our 49th wedding anniversary. We are more deeply in love and friendship than ever before.

It may not be what I’m remembered for in years to come, if I’m remembered at all…but my relationship with Carol is what I consider the finest thing I have ever accomplished, and she what I am by far the most thankful for. Every year brings more and better for us. Yes, friendship is the cornerstone of our love, and how it all came about. Every year that passes makes that clearer.

But friendship is also the cornerstone of the human spirit, and I’m thankful for all the years that many of you have been reading me here and elsewhere, and offering me comments and suggestions and commendations. Stick with me; more words are on their way.

The Everything Machine, my fourth novel (or fifth, if Drumlin Circus counts as a novel) hits the streets this year. It’s the “big” drumlins story, set in the same universe as The Cunning Blood, but on the other side of the galaxy. It incorporates my novelette “Drumlin Boiler,” which Asimov’s published in 2002. The manuscript is complete. I’m in discussion with an artist for a cover. I wrote the back cover copy yesterday afternoon. We’re getting there.

I did a long, close copy edit on it across the last couple of weeks. Some people have suggested that I should hire an editor to do a pass over it. I considered for some time, and finally decided against it. One reason is that while there’s plenty of action in The Everything Machine, what I put most of my energy into was the creation of the characters. Characterization was always my weak spot as a writer. This project has been a deliberate effort to improve that skill. I’m still an ideas guy, but this time, I’m giving my characters equal time with what I consider my finest SF concept in all the years I’ve been writing. There’s deliberate nuance in the characterization, and I’m leery of having someone else miss that nuance and unintentionally polish it away.

One of my alpha readers gave me a compliment that suggests it’s working: Joe said that he could always tell which character is speaking in the story, and that each has a distinctive voice and presence. Here’s an example of how I’m trying to do this:


Orsi staggered back, his eyes widening. “So you are the girl who tortured Gad Roche…with your mind.”

Maristella bit her lower lip. “That shitpile had a gun to my head. I did what I hadta do.” Maristella pointed down at the deck. “So do we got us a deal or not?”

Orsi took several long breaths. McKinnon thought he was trembling. “Prove to me…that this is…a starship.”


Consul David Orsi is weak, taking intermittent breaths, and coughing a great deal. Maristella is a bright 15-year-old farm girl who had been tossed out of grade school for being “weird.” The Bitspace Institute murdered her father and is holding her mother captive. She is angry, and more bitter than a teen girl should be.

I’m expecting some grumbling about how complicated the story is. There are several story arcs and more major characters than I’ve put in a novel before. I think it works, and my alpha readers think it works. We’ll see how it goes over with the readership at large.

It’s taken more time than my other novels, in part because I’m not 50 anymore, and in part because I had to set it aside for a year to update my assembly language book. I rewrote several parts of it more than once. I got the idea waaaaaaay back in 1997, and it will be a boggling relief once it’s finally completed and on sale.

I’ll keep you posted.

In the meantime, there are electronics to play with, and a solar maximum to allow station K7JPD to be heard farther off than California. I’m guessing that it’s going to be a mighty good year. So good luck and make it happen!