Jeff Duntemann's Contrapositive Diary Rotating Header Image

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!

Odd Christmas Lots

    TRexManger

    • Be careful with your art and writing, making sure it can’t be misconstrued. (See above.) In the original draft of my story “Whale Meat” (which I wrote when I was 18) I used the word “frot” as the name of a magical power. I thought I invented the word. A friend later took me aside and told me what “frot” meant. I gulped and changed it to “zot.”
    • My old friend Lee Hart took a forgotten 1844 Charles Dickens Christmas story, trimmed it down some, and modernized some Victorian archaisms. It’s free and very much worth reading. The Chimes is a short novel (about 20,000 words) so budget some time. I did a copy/paste into a Word .docx, so I could control the type size for the sake of these old eyes.
    • While we’re talking Christmas stories, just a reminder that my Christmas story “The Camel’s Question” is still available for 99c on Amazon. More on the story in this entry from a few days back.
    • While troubleshooting my Lionel ZW train transformer, I ran across a nice article on the ZW, which Lionel sold from 1948 to 1966. I may try to repair my ZW, though it won’t happen in time for Christmas this year. Or I may just hunt around on eBay until I find another one.
    • (Not Christmas, but timely): The Altair 8800 personal computer, the one that began the desktop computer revolution, went on the market 50 years ago last Thursday, on December 19, 1974. I found it at the same site with the ZW article. Other interesting stuff there too.
    • Our favorite spiked egg nog is Van Der Haute Egg Nog Traditional. Review here. We get it from Safeway, because Total Wine doesn’t carry it, nor Fry’s, though I won’t claim that no Kroger grocery does. Jewel-Osco carries it, if that’s your local store.
    • If you’re mulling the issue of spiced holiday wines, consider Firebrand Spiced Red Wine, which Total Wine carries. It’s a sweet red with cinnamon, vanilla and fruit flavors that most people would consider a dessert wine. There is no vintage year on the label, which for wines of this sort really isn’t an issue.
    • Sarah Hoyt recently published a book of four SF-flavored Christmas stories, called Christmas in the Stars. $2.99 on Kindle. I bought it but haven’t read it yet, although I’ve always enjoyed Sarah’s writing. And it’s making me wonder if there’s an AI SF story I could spin about Christmas. I haven’t written a short story since 2008, so it’s about time.
    • Some of my older readers will know why lead tinsel was a forbidden pleasure back in the 50s and 60s. Well, you can buy it on eBay. Just search for “lead tinsel.” No shortage of choices. (It seems like the Germans may still use it!)

    Trains 1, Transformer 0

    Carol and I put the Lionel tracks around the artificial Christmas tree a few nights ago. That’s how we do it; the real tree’s position in the great room has no nearby power outlets. Power is a big deal, and never more than this year.

    Basically, I connected our vintage Lionel ZW 2-control transformer to the tracks, and…nothing. Did my usual troubleshooting sequence: verify that the outlet is live, verify that the wires are properly connected and not shorted, and with that settled, put a VOM across the power terminals.

    Nothing. One of the two ZW pilot lights was on (the other not) so the ZW’s line cord was delivering AC to the ZW. Moving the controls around did not reveal any intermittents. It’s dead, Jim.

    The ZW worked fine in 2022 (we didn’t put the trains out last year) and has spent the last two years on a high shelf. Why it failed after sitting unmolested on a shelf remains a head-scratcher. So I went out to my workshop and lugged my 20-pound Alinco DM340MV adjustable DC power supply over to the tracks. I uncoupled the ZW and connected the Alinco to the tracks. The Alinco can deliver clean DC from 0-15 volts, at up to…30 amps. Sure, ok, overkill; the locos we have draw maybe an amp at full speed dragging all the cars behind them.

    I turned the very smooth voltage adjustment knob up to about 10V. Clickety-clack went my 2010-era Rail-King Jersey Central camelback steam loco around the tree. Using the voltage control knob, I was able to speed it up and slow it down. Turned it up to 15 volts for a little more speed, and…continuous ringing of the camelback’s electronic bell and whistle. That’s how the ZW works (or worked): when you push the whistle/horn control ring, the voltage goes up a couple of volts, which tells the locos to start their sound effects. By keeping it down to about ten volts, the sound effects go away.

    Carol’s 1957 Lionel steam loco makes continuous odd noises even at 10V. But my father’s 98-year-old Lionel 250 electric loco runs like a champ and emits no sound effects at any voltage. It was made in 1926; there were no sound effects in toy trains 98 years ago.

    So we now have trains, mostly. It’s too late to buy another Lionel transformer this year, but I loved the ZW and will be hunting around for another in time for Christmas 2025. The Alinco does the job well enough in the meantime. Shame I don’t have any of that 1940-50s lead tinsel…I suspect my (older) readers will know exactly why, heh.

    Again, merry Christmas! Get those trains running, guys!

    My Christmas Story: The Camel’s Question — 99c

    CamelCover-500 wide

    “Listen, young ones, for I, Hanekh, am a very old camel, and may not be alive to tell this tale much longer. Listen, and remember. If I leave nothing else behind but a spotty hide and yellow bones, I wish to leave this.”


    Only 8 more days until Christmas! Please allow me to introduce (again) my Christmas fable about the camels that brought the Three Wise Men to Bethlehem. It’s a short story with a deep history: I wrote it when I was 13 as an eighth grade English assignment, in the runup to Christmas 1965. A few years later I decided to give it to my mother as a Christmas present for Christmas 1972. Problem was, I had lost the handwritten grade school manuscript, so I just sat down and rewrote it from memory. I gave Mother the typed manuscript in a duo-tang binder. She read it, wiped the tears from her eyes, and then kept it in her dresser for literally the rest of her life. My sister and I found it after Mother died in 2000. I took the story home, where it sat in a box for 22 years. In the fall of 2022 I pulled it out, OCRed it to a text file, and then did a certain amount of editing and polishing before uploading it to the Kindle store.

    The story is a fable because animals are the primary characters. Two of the Magi’s camels ache for very different things. Then there is Hanekh, who is unlike most camels in that he tries to make sense of the world around him, a world shaped and ruled by human beings. He asks the Christ Child a question, hence the title. All three camels receive what they desire, but Hanekh—

    —Well, read the story. It’s only 99c. And keep a Kleenex handy. Or wear long sleeves. It’s not a sad story, but a story of triumph, of both God and God’s creation, camels included. I’ve written a number of stories of triumph and affirmation. This may well be my favorite.

    My Mother’s 100th Birthday

    VictoriaFrankTogether

    Today is my mother’s 100th birthday, though she left us for God’s ineffable realms back in the summer of 2000. Victoria Albina Przybytek was a Wisconsin farm girl born of Polish immigrant parents in 1924. After the War she left the family farm in Necedah, Wisconsin and moved to Chicago to earn her nursing degree at St. Elizabeth’s Hospital. She met my father in 1946, married him in 1949, brought me into the world in 1952, and my sister Gretchen in 1956. She (like my father) was a spectacular parent, who (like my father) taught me a great deal, in part by example, and in part by specific instruction. She taught me to pray, she taught me to waltz and polka, and she welcomed my friends, even when we were rowdy Boy Scouts holding noisy Fox Patrol meetings in our family room.

    Both of her parents came to live with us in their last months, and she taught us, by example, that caring about and for others and helping them was one of life’s most important purposes, one she pursued not only as a daughter, spouse and mother but also by profession, working as a nurse until her retirement. She did her best to care for my father for the eight horrible years he fought cancer, though after his death in 1978 she was never quite the same.

    Her personality was warm but also mystical, trusting that God and his angels would help her through the inevitable problems that life confronts all of us with. She had many fascinating stories to tell us of her life, her dreams, and her visions. She gave Gretchen and me freedom to roam the neighborhood and learn what such roaming could teach us–which, looking back, was critical in my journey to adulthood.

    When I first brought Carol home in 1969, my mother and my whole family embraced her as though she were already one of us. As my sister said once a few years after I married Carol, “If you two ever divorce, we’re keeping her.” Not to worry, heh. I knew what marriage was supposed to be like because I watched my parents’ marriage and did my best to follow their example. After 48 years of marriage (and 55 as inseparable best friends) Carol and I can confidently say that my mother’s lessons were successful. I’m sure that my parents are now together in God’s realms, healing one another of the pains they had suffered here on our beautiful but imperfect Earth.

    In short: I would not be the man I am, were she not the mother she was.

    A High-Glass Investigation

    Some weeks back I tried a red blend called Magic Box, and when it was gone and I rinsed the bottle for recycling, the bottle seemed awfully heavy compared to the multitudes of 750ml bottles I’ve handled down the years. The Magic Box wine was so-so and I probably won’t buy it again. But man, it took a lotta glass to get from their ships to my lips.

    As if I didn’t have anything better to do, I started setting aside empty 750ml glass bottles, not only of wine but of San Pellegrino sparkling water and Torani sugar-free coffee syrup. After accumulating six bottles, I weighed them on our digital postal scale. It’s quite a spread:

    • San Pellegrino sparkling water                  15.6 oz
    • Torani coffee syrup                             1 lb 0.65 oz
    • Radius red blend                                1 lb 0.15 oz
    • Saracco Moscato                                1 lb 1.15 oz
    • Menage a Trois Silk red blend              1 lb 7.95 oz
    • Magic Box red blend                           1 lb 13.25 oz

    None of these bottles contained high-carbonation wine like champagne. The only one with any fizz at all was the Pellegrino sparkling water—and that was the lightweight of the bunch. Yes, yes, I know, there’s lots more fizz in champagne. Since I don’t like champagne I won’t be able to weigh a champagne bottle for comparison. If you have an empty champagne bottle and a postal scale, hey, weigh it and let us know in the comments.

    Nor did I log prices per bottle. Keep in mind that I rarely pay more than $20 for a bottle of wine. So it was all cheap-ish wine, at least by sophisticated wine-fanatic standards. I have a glass of wine with dinner, and cook with it here and there. I don’t mull (heh) my wine, looking for hints of loamy forest floor or galvanized iron.

    Nope. Just a stray thought that triggered a question that led to a simple experiment. I’ve done it before. I will do it again. Questions (even those without answers) are a goodly part of what makes life worthwhile.

    Decorated!

    It took us a few days, but we got the great room decorated, including trimming both our artificial and natural (and we hope live) tree to the nines. This may be the best real Christmas tree we’ve ever had as a couple, and our hope is that with careful watering it will keep us until Epiphany.

    If we have to take it down sooner, well, the experiment was worth doing. Here’s a shot of our real tree, in the corner by the bar:

    IMG_1020

    We don’t use the bar for drinking, so it presents a nice place for decorations, this year including our creche and Carol’s Plasticville Farm, complete with farm animals and a corral of giant bichons:

    IMG_1021

    We’re going to set up the Lionel trains this year, including my father’s 1926 set that is now 98 years old. The venerable #250 electric loco still rips around the track as it doubtless did when my dad was a toddler. We’ll also be running Carol’s Lionel set from the late ‘50s; however, the trains will have to wait until after the cleaning service goes through and mops the tile floor.

    I’ll take some pictures of the artificial tree and will post them as time permits. We’ve started Christmas a little early this year, just to see what it’s like to get all Christmas-y on November 29 instead of December 15th or so. Like I said, I’ll keep you posted.

    The Long-Horizon Holiday

    Happy (belated) Thanksgiving! I’ve talked about Thanksgiving and the things I’m thankful for here several times, and won’t repeat it all here tonight. All that I said then still applies, though the list has gotten longer over the years. We had dinner with friends, starring a roast goose! I know I’ve had goose but it’s been years—nay, decades—since the last time it crossed my plate. Good wine, good food, good friends. That’s a lot of what I’m thankful for, right there, plus the woman sitting beside me, and her 55 years of love and devotion. I am a man much blessed, and appreciate it.

    It was a good day indeed. And today, well, it’s Black Friday. People complain sometimes about Christmas starting the day after Thanksgiving. I’m of two minds about it, and Carol and I prefer not to fight the crowds at major retailers. Like it or not, the reality is that Christmas has become a sort of long-horizon holiday. The stores put out Christmas goodies the day after Halloween. Some people start shopping and celebrating on Black Friday, and others continue it until the Epiphany. This year we decided to start on Black Friday, for a reason: Christmas trees.

    The Arizona desert is hard on pine trees shipped down from Minnesota or wherever. We’ve had mixed luck finding trees that lived even two weeks in the stand with plenty of water. In Colorado we had one once that lasted so long it began growing. I doubt that would happen here. But Carol and I had a plan. We knew that Whitfill’s Christmas Trees opened for business on Black Friday, so up 64th Street we went, to their usual spot between Bell Road and the Canal at 64th.

    We got there about 2PM, and the joint was jumpin’. They had trees that had to be twelve feet high. Not for us. We wanted something shorter, fuller, and greener. I didn’t want something over seven feet high.

    It took us approximately 90 seconds to find the tree that we bought.

    It’s very green, very full, maybe not quite seven feet high, and smells ever so wonderful. Trees cost down here; I paid $200. This time I think we got our money’s worth. We think it’s the prettiest tree we’ve ever had. The reason for that is probably getting there before the crowds snapped up all the really good trees. We were there early. We got a good tree. Nay, an excellent tree.

    We haven’t begun decorating it yet. We brought all our Christmas decor back from the storage unit a couple of days ago. The tree is now in its stand. Tomorrow we begin. We’ll keep you posted.

    Odd Lots

    • I asked MS CoPilot a simple question—“How does menthol alleviate pain?”—and let it rip. It ripped. And ripped. And ripped, spinning its spinner for four hours before I finally closed the window without any sort of response. I’ve had tolerably good luck working with CoPilot, but this suggests it still has a long way to go.
    • MIT appears to agree: They are now telling us that generative AIs do not build world-models and thus cannot be counted on to be useful in any arbitrary context. Ummm…did we really need MIT to tell us that?
    • Mayo Clinic researchers have found that stem cells grown in zero-G grow faster and work better in tests than stem cells grown on Earth. The research has only begun, but I could definitely see Elon Musk establishing a stem-cell farm in orbit if that research pans out.
    • Jim Strickland sent me a link to a wonderful NASA animation of Moon photos as the Moon orbits Earth, showing all the phases the Moon goes through, including libration and position angle for the full year 2025. As best I can tell, it doesn’t display lunar eclipses, but there are many other places detailing times for those.
    • Alzheimer’s may not be a brain disease so much as a mitochondria disease. Other theories beyond amyloid plaques are coming up, and this piece presents a nice summary of why we may be wrong about amyloid plaques and what other mechanisms might be behind dementia.
    • There is now reasonable research showing that the infrasonic (very low) sounds emitted by ginormous wind turbines can cause health problems in humans and other animals.
    • I ran across Justapedia about a month ago, and so far it holds up well compared to Wikipedia. The idea is to maintain a MediaWiki-based competitor to Wikipedia, one that is deliberately non-political and less obsessed with notability and various other side issues. Take a look. I’m rooting for them, but beating a competitor as entrenched as Wikipedia is a daunting challenge.
    • UTIs are very common but kidney infections—which you would think are caused by the same pathogens—are not. Here’s an explanation why.
    • When I was a little kid (figure 7 or 8, maybe 9) all the boys of similar age in my neighborhood were allowed to dig a hole in their backyards big enough to sit down in and play with toy soldiers, dinosaurs, or other injection-molded fantasy icons. There’s now evidence that letting kids play in the dirt can train our immune systems to recognize and shake off many more microorganisms than kids living in low-dirt environments like city cores.
    • And it’s not just dirt. A Harvard-trained nutritional psychiatrist confirmed that human brains need a diet rich in meat to support mental health. Let’s put it this way: We did not evolve eating kale—but that said, Carol and I do eat a rainbow salad most nights with our meat course. I’m pretty sure that evolution-wise, the meat came first.