Jeff Duntemann's Contrapositive Diary Rotating Header Image

Flashback: Delores Ostruska 1924-2013

Carol’s mom left us ten years ago today. I miss her; she accepted me into her family quickly and the warmth I felt in her presence never faded as long as she lived. I wrote an entry in her memory on February 4th, 2013, which I will republish here verbatim, to remind myself and all of us how truly good people affect everyone and everything around them for the better.


Carol’s mom has left us. She died quietly this past Saturday after a long illness, at a nursing facility near her Crystal Lake, Illinois home. Her daughter Kathy was by her bedside, and her two grandsons Brian and Matthew had visited her earlier that day. She was 88.

Most people in our time are lucky to have two loving parents. Somehow, incredibly, I had four. I met Delores on August 2, 1969, when I came by their house to pick up Carol for our first date. I was 17, a little scruffy, and undoubtedly, well, odd. No matter. Delores smiled and welcomed me, a welcome that never faded. Carol’s dad was a slightly harder sell, but I won his esteem by treating his daughter with respect and kindness. When I bought a lathe in 1977 he stabled it in his basement, and over time he taught me what he knew about its use, which (considering that he could grind a carbide die to a ten thousandth of an inch accuracy) was pretty much everything.

On many Sundays Delores prepared family dinners for which her sisters Marie and Bernice and her Aunt Marie and Uncle John drove up from the South Side. Pork roast, salad, vegetables, bread, dessert; a huge spread brought to the table hot and perfect in all ways. I had a place at that table, as later on Kathy’s boyfriend/fiance/husband Bob did as well. It was decades before I knew the term for the feeling that hovered all about us in Delores’ dining room, but when I found it, many things fell into place. It was unconditional love.

I had had that from my own parents, of course. And even my own father was a bit of a hard sell, since I bore little resemblance to the rowdy boy that he himself had been and expected his own son to be. All the more remarkable that Delores and Steve embraced me almost immediately as one of their own.

Delores was a child of Polish-American heritage, youngest daughter of a large family, who was born and grew up on the Near South Side of Chicago. She belonged to a group of very close teen girlfriends who called themselves The Comets. They were capable and confident girls, journeying around the city for fun, and even slept on the sand of Chicago’s 31st Street Beach. She quietly rejected the dour Polish pessimism of her own parish church, and far preferred the exuberant Catholic culture of an Irish parish a few blocks away. She believed all her life in an infinitely loving God and the goodness of all His creation. When I began struggling with my own life of faith at the dawn of middle age, it was her example that helped bring me to the unbounded and unshakable Catholic optimism that I hold today.

Delores worked at the US Treasury in downtown Chicago, where she helped trace lost and stolen US Savings Bonds. During WWII she met and in 1947 married Steve Ostruska, one of her brother Charlie’s Navy shipmates. After Carol was born the family moved to Niles, Illinois, where Delores lived for over forty years before moving in with her daughter Kathy in Crystal Lake.

Every summer while the girls were small the family vacationed along the lakes near Hayward, Wisconsin, where Steve fished for walleye and city girl Delores learned to love the outdoors. The photo at the head of this entry is from a vacation that she and Steve took to Clam Lake in July 1948. It’s not fair to picture her as an elderly woman when she has already broken the bonds of this Earth and risen triumphantly into the arms of the God she so strongly believed in. I prefer to recall her as the beautiful, vigorous person she was most of her life. In truth, all the time I knew her she glowed wth the quiet, invincible light of unconditional love, and if there’s anything closer than that to the ineffable light of God, I don’t expect to see it in this world.

A Conversation (Sort of) With ChatGPT

An AI chatbot named ChatGPT has been getting a tremendous amount of publicity lately, and a boggling amount of what I consider unwarranted acceptance, bordering on the ridiculous. No, alas. That border is now behind us: Buzzfeed will soon begin using ChatGPT to generate content for their sites, which include the Huffington Post. The source is a paywalled article in the Wall Street Journal, or I’d post a link. Doesn’t matter. Buzzfeed is clearly trying to replace human writers with an AI. Their investors evidently think it’s a good idea, given that the Buzzfeed stock price rose 92% later that day.  I’d say I’m skeptical but I’m always skeptical. Being skeptical is part of my worldview. Other skeptics are out there: One clever wag on Twitter pretty much nailed it when he said, “Journos should have learned to code before the code learned to journo.” 

Heh. Anyway, after I stopped giggling I went over and created a free account at ChatGPT. You might recall my experiments with AIs writing fiction given a few sentences to start with. It was weird. Indie SF writers are in no danger, at least for the time being. I wanted to give ChatGPT a fair chance, just like I gave Sudowrite last year. Sudowrite started out weird and got weirder. Well, hey, I wanted to see it write fiction. My challenge to ChatGPT is to answer technical questions accurately and usefully.

It’s a chat program. So I started a chat:

Jeff: Will there ever be 128-bit CPUs?

I get asked this question a lot. My answer will be in the upcoming fourth edition of x64 Assembly Language Step By Step. It’s relatively simple, though there is some nuance.

ChatGPT’s first response:

It is possible that there will be 128-bit CPUs in the future, but it is not a certainty. The development of CPU architecture is driven by a variety of factors, including performance, power efficiency, and cost. Additionally, the need for increased computational power may be met through other means, such as the use of multiple cores or specialized hardware. As a result, the use of 128-bit CPUs will depend on the specific requirements of various applications and the availability of other solutions.


Hmmm. Saying this is sophomoric would be a slander on sophomores. But rather than reply to it immediately, I was given the option to re-generate the response. I clicked the button. ChatGPT thought (erk) for a few seconds and replied:

ChatGPT’s second response:

It is possible that there will be 128-bit CPUs in the future, but it is not clear what the need for such a large word size would be. Current 64-bit CPUs are more than capable of handling the vast majority of computing tasks and the industry has not yet identified a need for CPUs with larger word sizes. Additionally, the development of new technologies such as quantum computing may render traditional CPUs obsolete in the future.


This, in fact, is true, though it was still pretty much an obvious answer to a subtle question. So I clicked the “Regenerate” button again.

ChatGPT’s third response:

It is possible that there will eventually be 128-bit CPUs, but it is not currently a technology that is in widespread use or development. The current standard for most consumer CPUs is 64-bit, and there are also 32-bit CPUs still in use. The need for a 128-bit CPU would likely depend on advancements in technology and a growing demand for more processing power and memory capacity.


Sigh. Drink from the same well and you get the same water. I figured I needed a better question. I had one lined up and ready to go:

Jeff: Aren’t 128-bit registers useful for math?

128-bit registers can be useful for certain types of math, particularly for tasks such as floating-point operations and high-precision computations. Larger registers can increase the precision and accuracy of calculations, as well as allow for more efficient processing of large data sets. However, the need for 128-bit registers would likely depend on the specific application and whether the benefits of larger registers outweigh the cost of implementing them in terms of power consumption and hardware complexity.


I didn’t bother to regenerate this one. So far it seemed to be scraping Google, and while I mostly agreed with its answer, I would hope that Buzzfeed would require something more focused and in-depth. So I mulled it a little more and asked a third rather leading question. Read it carefully. There’s a lollapalooza in there:

Jeff: Wouldn’t the vector registers in the AVX-512 math subsystem make 128-bit registers unnecessary?

AVX-512 (Advanced Vector Extensions 512-bit) is an extension to the x86 instruction set that is designed to improve the performance of floating-point and vector operations. One of the key features of AVX-512 is the use of 512-bit wide vector registers, which can be used for a wide range of scientific, engineering, and financial workloads. The wide vector registers in AVX-512 can be seen as an alternative to 128-bit wide registers, as it allows to perform more operations in parallel with a single instruction, but it doesn’t necessarily make 128-bit registers unnecessary. For example, in certain types of workloads, it might be more beneficial to have a few large 128-bit registers rather than many smaller 512-bit registers. Ultimately, the choice of register size would depend on the specific requirements of the application and the trade-offs between performance, power consumption, and hardware complexity.


Bzzzzzzzzzt! Suddenly ChatGPT’s distant descent from poor ol’ Eliza became obvious. A few large 128-bit registers might be better than a bunch of smaller 512-bit registers. Right? Right?

I may test it more as time permits. After all, it’s free. But this will have to do for today. Among other things, I write humorous stories about AI. Looks like I just wrote another, without even trying.

Sudowrite would be proud.

Things That Are Slowly Vanishing

What caught my attention was the rate at which people are abandoning landline phones. At least half the people I’ve asked about this don’t have one anymore. (We haven’t had one since we left Colorado.) In thinking a little, I discovered a few other things that seem to be going away so slowly people aren’t noticing. Here’s a list of what I think belongs in that category, in no particular order:

  1. Landlines. And phones that ring because they contain an electromechanical ringer with a metal bell.
  2. Bowling. I used to see bowling alleys regularly here and there. Heck, our parish church in Chicago where I grew up had one, and may still. Bowling was never a big thing in my family, so maybe I just don’t notice it anymore. I think I last bowled about 12 or 15 years ago, and even then I found myself thinking, “Will I ever do this again?”
  3. Roller rinks. There was one just outside Chicago called The Hub Roller Rink, where I went a few times as a kid until I realized that roller skating was not my thing. The Hub is long gone. The last time I roller skated was in Scotts Valley at a Borland Halloween party in the fall of 1987. I don’t remember the last time I saw a roller rink, anywhere, since then.
  4. Ice cream men in trucks. When I was a kid 55 or 60 years ago, Good Humor sent their trucks around my neighborhood on a regular basis in the summer, with their unmistakable bells. The last time I saw an ice cream truck was about 2008, when Carol and I had a condo in Des Plaines IL, outside Chicago. The truck we saw every week or so would play music electronically, and the music I remember clearly, because it’s a hymn that I have on a Lorie Line CD, but it’s not identified in the liner notes. (It’s in a medley with “Lord of the Dance.”)
  5. Dime-store kites. Although I see cheap kites (plastic now, not paper) in stores every spring, I almost never see kids flying them. I’m not talking about expensive fabric stunt kites you see on Amazon. I mean the plain diamond or delta kites that were ubiquitous 50-60 years ago, and probably peaked in 1964 or so. The only places I’ve seen them recently are at campgrounds, like where we camped in Nebraska for the 2017 solar eclipse.
  6. Metal construction sets. My dad bought me a British Meccano set when I was 7, and shortly after that I inherited my cousin Ron’s big Erector set. It was my favorite toy into my early teens.  I learned how a car’s differential works because I built one, out of brass gears and small steel girders. Lego took over that category (plastic is easier and cheaper to make than metal) but at least some kids are still building things.
  7. CB radio. CB was a craze in the 1970s. I bought a radio in 1971, and by 1972 most of my friends had them. I have a good antenna and a good radio that will receive (but not transmit on) the CB frequencies. I hear some distant heterodynes and an occasional trucker on the bands, but CB’s frequencies are now mostly vacant. “How ‘bout that Sundog!” was how we began a contact in 1972.
  8. Manual eggbeaters. Ok, we have cheap-ish cordless electric mixers these days, but when I was a kid I used a hand-cranked item with a red wooden handle, and used it mostly to mix chocolate pudding. It was still in the drawer when I left home in 1976. I’ve often wondered if anybody still uses them.
  9. Videotape. I still have a mini-8 camcorder. (I think.) The last time I used it was to make movies when we were fostering a mama bichon and her three puppies when their owner was in the hospital, back in 2009. One of the puppies we bought and named Dash. I still have a VHS tape deck. Ok, that stuff is already gone. but I took some terrific video with it.
  10. Sunken living rooms. These were stylish in the 70s and 80s, and the first new house Carol and I ever bought (in 1990) had one. They’re a trip-and-fall hazard, especially for the older set, and simply aren’t done anymore.
  11. Control-line model airplanes. These were big in the ‘50s and early 60’s. You stood in the middle of a circle with a handle and two wires connecting you to a gas-powered model airplane. You had a friend hook the glow-plug to a battery and spin the .049 engine until it caught, then you pivoted in a circle as the plane flew in a circle around you, going high and low in response to how you held the handle. Never did it myself, but I watched the older kids who did.
  12. Usenet. I got a Usenet login in 1981, because I worked for Xerox. It was fun, but I really didn’t know how to use it well. After I left Xerox in 1985, I didn’t see Usenet again until the mid-1990s, when most of the ISPs carried it. I had a lot of fun in newsgroups in the midlate 1990s on groups like alt.life.afterlife and the one or two that catered to assembly language. I had a paid Usenet account for a few years in the late oughts and early teens. I gave it up when what was posted was mostly porn, pirated content, and malware.
  13. Waffle irons. My parents had an electric one, and I think I remember them using it…twice. I never much liked pancakes or their nonskid brethren, waffles. But they really did used to be a thing. Maybe it’s just easier now to go to Waffle House and not make a mess in the kitchen.
  14. Drive-in movies. We went to plenty of them in the late 50s and early 60s, and I took Carol to a couple early in our history. I’m pretty sure that the land they required eventually got way too valuable to waste on a low-margin business like movies. There was one in Grayslake, near my family’s summer home, and I remember watching “Who’s Afraid of Virginia Woolf” on its screen through my 8” telescope, which dates it to 1966. It looked like two obnoxious people screaming at each other. Funny how many movies are pretty much that, even today.

That’s what comes to mind now, sitting here in my chair and pondering what was once a commonplace that just faded away. Got anything to add to the list? If I get enough I’ll run an addendum.

New Year’s Daywander–A Day Late

But better late than never. I actually relaxed, played with our Lionel trains, and posted a few Odd Lots to Twitter, which I will gather into a Contra post later this week as time permits.

One of those Odd Lots posts went viral.

This has never happened to me before. I didn’t join Twitter until 2014, and haven’t used it as much as most users, especially the bluchecks, who more or less live there. I have better things to do than live my life on social media. I keep my Twitter account because every time I post a link to one of my books, I sell a few books. This doesn’t happen on Facebook, probably because my Facebook audience is relatively static, and I’ve sold about as many books to the people who read my Facebook wall as that static audience wants to buy. I’m ok with that. Saturating an audience is a species of winning.

Twitter is different. People who read something I post and like it can retweet (basically, repost) that tweet to their own followers, most of whom have never heard of me. If it catches their attention they can in turn retweet my original tweet to their own followers, and the chain reaction continues until it burns out.

This is not a good thing if the chain reaction consists of a Twitter lynch mob. That usually happens with political tweets, which I rarely if ever post. The tweet that sparked a chain reaction this time had nothing to do with politics. It was about food: A team of University of Washington researchers scrutinized decades’ worth of studies focusing on red meat consumption and its association with various illnesses, like cancer, heart disease, stroke, and type 2 diabetes. What they found was (a little) startling: The correlation between red meat and cancer, heart disease, and diabetes was down in the noise. There was no correlation with stroke. None.

Their conclusion violated all kinds of conventional wisdom, which warmed my heart. I have some sort of genetic aversion to conventional wisdom, most of which is deliberately designed by those in power. I’d seen some research showing the meat-disease connection to be false. This time, people at a reputable institution nailed it for all time.

And it took off like an F-14. Before the dust settled last night, that one tweet got 823 likes, 295 retweets, and 16 comments, many of which I answered, spawning still more comments. Come this morning I had 21 more followers than I had before I posted the meat-bomb tweet.

No other tweet of mine has every done a tenth as well.

There were some grumblers and at least one troll, who claims that he lost weight on a high-carb diet—and stated that all books saying carbs make you fat have been debunked. They haven’t, obviously, but I’m letting him be him. Maybe he’s a metabolic outlier. It’s ok. I don’t block people unless they attack me, and politely challenging a tweet I post is not an attack.

I have no idea why that particular link started a chain reaction. I don’t really care. It’s how I build an audience for my books, and to a lesser extent, for Contra. It’ll be very interesting to see if it ever happens again.

_…_  _…_

Yesterday was Public Domain Day. This year everything published in 1927 went into the public domain. The big fish in that pond is (finally!) Sherlock Holmes. The last Holmes story was published in 1927. So now the Conan Doyle estate can pack up their tent and go home. They certainly got their money’s worth.

What else is now free as in, well, free? It’s a decent list:

  • The first three Hardy Boys books are now PD. I was never a big HB fan, but I read The Tower Treasure and enjoyed it. Expect more HB adventures entering the indie pipe soon.
  • Fritz Lang’s Metropolis.
  • The Jazz Singer.
  • …and a whole lot more.

_…_  _…_

I begin 2023 with a new blog editor for Contra: Open Live Writer. This is a fork of the Microsoft product Windows Live Writer 2012, which was open-sourced some years ago. I tried that item back in 2012, but it was not “better enough” to switch. I’ve been limping along on Raven Plus, an adaptation of the now-defunct Zoundry Raven, introduced in 2008 but basically killed by Windows 10. Raven Plus runs on Win10, if barely, and in 2022 I got tired enough of its glitches that I spent some time trying out new blog editors. Open Live Writer won. I won’t fully endorse it until I’ve used it for a few months, but so far it’s given me no trouble at all.

Oh—and I no longer post to LiveJournal. Nobody was reading the Contra mirror I maintained there, and the site finally killed my paid account for nonpayment.

_…_  _…_

So before I forget: Happy New Year, everybody! My plan file this year includes finishing the fourth edition of Assembly Language Step By Step, and finishing and publishing The Everything Machine, the first full-length Drumlins novel. If I can nail those two items, I’ll consider the year a good one. Thanks for reading and don’t lose touch!

A New Twitter Year

I don’t know how he does it. Really. Elon Musk started companies to make electric cars, orbital boosters, subway tunnels, and probably others I haven’t heard of. And then he bought Twitter and put it on his Discover card. (Sorry, dumb joke. It was actually his MasterCard.)

However he did it (and I think he paid way more than it was worth) he now owns Twitter outright. You could hear the screams out to the edges of the atmosphere: Musk is literally Hitler! Twitter is a hellscape of viewpoints I disagree with!  Twitter is literally genocide! The first thing our man Elon did was what needed doing most: Purging accounts trading in child sexual abuse material. The second most important thing: Ending the Blue Checkmark as a badge of the anointed elite. He now sells them for $8 a month. I’ll probably get one sooner or later, just to support him.

Twitter is now what it was intended to be: a virtual town square where lots of interesting things can be discussed and linked to. No more shadowbanning. No more throttling of reach. No more colluding with the Feds to suppress viewpoints that the Feds don’t like.

It’s not like there are no rules. As I mentioned above, Musk declared war on Twitter accounts that trade in child sexual abuse content early in the game, and has canceled tens of thousands of accounts for breaking those rules. There are rules against impersonating other people, and probably some others that I’m not aware of. Closer to home, I find I can post articles about “forbidden” COVID treatments, along with other contentious health issues, like whether or not red meat is a precursor to cancer and heart disease. I tried to do some of those posts a year or so ago, and every one got shot down. I had to call Ivermectin “IVN” and hope people could read the code.

All gone, and good riddance.

I don’t engage in political arguments for the most part, so I’ve not heard much of the blood and thunder raging between those who liked the old Twitter and those who prefer the new. I have seen a lot of former bluechecks claiming to have left Twitter (whether they deleted their accounts in the process or not is often hard to tell) and go elsewhere. I find it interesting that the elsewhere of choice (there are actually quite a few) is Mastodon.

Mastodon is probably the largest single player in what insiders call “the Fediverse” because of the way that Mastodon (and some others like it) operate. Mastodon as a whole is actually a collection of seperate Mastodon servers (“instances”) operating as peers over a protocol called ActivityPub. Each instance controls who can join and who can be blocked, from individuals up to whole other instances. From what I’ve read, there is a great deal of blocking going on right now. And that’s all to the good; that’s what federation is for: local (rather than central) control. If you don’t like the people on one instance, go find another. If you keep getting blocked, maybe you need some quality mirror time.

There are three major problems with the Fediverse vis-a-vis Twitter:

  • If members start doing illegal things (like posting child sexual abuse material) the operators of the instance may be held responsible by law enforcement. Musk has people paid to moderate against this. Moderation is neither cheap nor free. I doubt that more than a tiny fraction of Fediverse instances have the resources to police such things.
  • Similarly, if members of an instance start posting copyrighted material, the operators of the instance have to have a way to handle DMCA takedown notices. Disney in particular has no mercy about such things, and infringement can be very costly. Again, guarding against illegal activity takes paid staff once an instance has more than two or three dozen members.
  • No matter what the Fediverse does or how large it gets, members of any given instance will not have the reach that they did on Twitter. There are no real metrics on how much reach some instances have, given all the bitching and blocking going on right now. In a couple of years we may know more. But given the nature of federation, measuring reach may simply be impossible.

Although I like federation as a concept, to me these downsides are showstoppers. I wish all the Mastodoners good luck. They’re going to need it.

I do have some predictions about Twitter for the new year:

  • Fairly soon, Elon Musk will hire someone who understands his management style as CEO of Twitter, and that individual will do what Musk wants. This is what all the nonsense about Twitter deciding via poll whether he should step down or not was about. He knew damned well he was going to step down as CEO in favor of a hand-picked successor. He has a lot of other irons in some very big fires.
  • The rules governing moderation will be clarified.
  • Twitter will establish a policy of not cooperating with governments in censoring viewpoints or “misinformation” that cooks down to things governments don’t like.
  • The saner people who bailed out of Twitter for the greater Fediverse will (quietly) come back to Twitter once they realize how few people can hear them.
  • The genuine headcases (most of them celebrities) will stay away. Or let us fervently hope.

I like Twitter, though I don’t spend a great deal of time on it. That said, I predict that this will be the best Twitter year since…ever!

Excerpted from Old Catholics: Christmas Eve II

I have about 38,000 words down on a (mostly) mainstream novel about a tiny Old Catholic community in Chicago, which has a 1920s bungalow with an altar and a few pews in the livingroom, with the clergy (a bishop and a deacon) living in two small rooms on the second floor. A good part of what I have down takes place just before and on Christmas. I’ve published excerpts here before on Christmas Eve. I don’t entirely know how the rest of the story goes. I don’t know if I’ll ever finish it. But people have told me they’ve enjoyed the excerpts. So today on Christmas Eve, let us return to the Church of St. James & St. Julian of Norwich, just south of Devon Avenue at Campbell. The chapter posted on Christmas Eve 2018 comes immediately before this year’s chapter, so if you’ve never seen any of the story before, you might skim through them before reading further. There are mild fantastic elements in the story, especially a little old Polish lady who can read hearts and predict the future–and talk to dead people whom she considers saints. It’s a gentle, hopeful story about eccentric religious people who have no place in the larger Catholic world, banding together to worship God and heal one another of life’s inevitable traumas. Let me know what you think.


Bishop Hughes led them from the kitchen to a small round table standing a few feet in front of the bungalow-church’s front windows. The advent wreath Rob had seen on the Formica kitchen table on Gaudete Sunday was set on the table. All of the candles had seen some use, now that all four Sundays of Advent had passed. Rob remembered the ritual from his childhood: Family members took turns throughout Advent lighting the appropriate candle and reading the prayer before the evening meal. On Christmas Eve, the head of the household had candle duty. So it was that Bishop Hughes struck a wooden match on the side of its box and held it in his left hand while raising his right in blessing:

“In the name of the Father, and of the Son, and of the Holy Spirit, we gather for one final meal before the birth of our Messiah, the Lord God Jesus Christ!” Bishop Hughes reached out with the match and lit the shortest purple candle, then the one beside it, then the pink candle of Gaudete Sunday, and finally the tallest purple candle. He held out his hands to Mrs. Przybysz and Mother Sherry, who took them and in turn reached out to take hands with the others to complete the circle.

Bishop Hughes tipped his head back, and spoke the prayer as he spoke nearly everything, with force and exultation:

“O Lord, stir up Thy might, we pray Thee, and come!
Rescue us through Thy great
strength so that salvation,
Which has been hindered by our sins,
May be hastened by the grace
of Thy gentle mercy.
Who livest and reignest for ever and ever! Amen!”

“Amen!” they replied in unison. Bishop Hughes turned and gestured toward the table. Eight places had been set, and atop each china plate was a folded card bearing one of their names-all but the setting at the foot of the table. It bore no card. As only seven people had gathered at St. JJ’s, Rob did wonder why the eighth place had been set at what was already a crowded table. He bent down to peek under the table, wondering if a card had fallen to the floor during the continuous bustle leading up to the Wigilia meal.

Bishop Hughes noticed Rob’s search for the card. “The place at the foot of the table is symbolic of those who share our love for God but who cannot be here with us in the flesh. Our departed, now in the bosom of the Most High; loved ones distant in space and time; the stranger who has no place at any table-“

“And saints,” Mrs. Przybysz interrupted as she bent to place a bowl of cucumber salad and a smaller bowl of horseradish on the table. “St. Ernie and St. Mona both showed up last year. Ernie warned me of evil brewing somewhere and had to leave to go look for it. Mona said we would need a much bigger table soon–and that the fish could have spent another few minutes in the pan.” The old woman sighed. “I do my best.”

“We all do our best,” Bishop Hughes said from behind her, smiling. “God asks no more of us than that. The challenge is to discover the inner strength that few of us realize that God has given us.”

Bishop Hughes pulled Mrs. Przybysz’s chair back. The old woman sat. Rob reflected that it was a signal. He pulled out Suzy’s chair, and helped her scoot in once she was settled. PJ pulled out Mother Sherry’s chair and did the same. Deacon Dan sat, and made a down-patting motion at Rob, who sat beside Suzy. PJ took the last seat, and set his battered leather briefcase on the floor beside him. He looked spooked, and kept glancing at the empty chair at the far end of the table.

PJ sat across from Suzy. Suzy took a library card and a pen from a pocket and wrote quickly in her lap. She poked Rob and handed him the card.

I feel something weird, she wrote. Rob made just a hint of a nod and handed it back. His first impulse was to grin. But…huh? An odd prickly feeling arose in the back of his head behind his ears, like something approaching–or something that was already among them, gathering power.

Rob shivered. He had told himself a thousand times that he did not believe in demonic forces. Whatever he felt did not feel evil. It felt powerful, not angelic but somehow rooted in the Earth beneath their feet. Hell was at the center of Earth, according to Dante and probably half of Christian humanity. Rob tried to focus, desperate to get away from the impression that something malign was creeping up on him.

Then, deep in his mind, a single word, stated quietly but with the conviction of everything high and holy, resolving Rob’s confusion plainly and beyond all question:

No.”

Flashback: New Music on YouTube

I posted this entry last year on 12/23. I haven’t discovered a lot of new Christmas music since then, so I’ll repost the entry here in its entirety. This may become an annual thing, plus new tracks as I discover them. So earbuds on and enjoy!


As we close in on Christmas, I wanted to post a few items I’d found and liked on YouTube. Nearly all of it is Christmas music. (I’ll post some other non-Christmas discoveries in a future entry.)

And that, my friends, is precisely what Christmas music is for.

Odd Lots

Now Available: “The Camel’s Question”

CamelCover-500 wide.jpg

“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.”


So begins my latest ebook publication, “The Camel’s Question .” It’s now available on Amazon for 99c. It’s a short story, not a novel, and won’t taken you more than ten or fifteen minutes to read. There is a story behind the story, so what better place to tell it than here?

In the spring of 1966, when I was in eighth grade, we were tasked to write a Christmas story. It wasn’t required to be fiction, but it had to be about Christmas. So in longhand on yellow paper I wrote a story I called “Master Melchior and Me.” It was about the camels that carried the Three Wise Men to Bethlehem. We read our papers aloud in class, and when I finished reading mine, the class applauded. I had apparently touched a nerve.

I began with the title, which was inspired by a 1953 Disney animated short, “Ben and Me” about the humorous adventures of a mouse living in Ben Franklin’s house. I actually pictured it as Disney-style animation. Remember that I was 13, and “young for my age.” I was writing fiction already by 8th grade, and tended to picture it in my head as cartoon animation. I think I intended to make it humor, but as has happened so often with me, my subconscious had other ideas. The story was serious but upbeat, about a lesson one of the camels learned from the Christ Child.

Jump ahead a few years, to the fall of 1972. My father was battling cancer and losing, My poor mother was worn out by both working as a nurse, and nursing my father past the crude, debilitating, and ultimately futile radiation treatments. I wanted to give her something that would get her mind off her troubles for a few minutes. I was a junior in college and by then had taken a lot of literature courses. I realized that I had written a fable, which is an ancient literary form in which animals are made to think and talk like humans to put across a moral.

By 1972 I had already lost the original handwritten manuscript, so I started at the beginning and told it again, having in the meantime grown mostly to adulthood and written a lot of things, fiction and nonfiction. I didn’t like the title, as Master Melchior at best played a background role. But I didn’t know what to call it, so I kept the original title. The story, however, was lengthened, deepened, and in some respects moved a hair to one side of being a true fable.

It didn’t matter. I gave the typewritten manuscript to my mother as a Christmas gift, and she was deeply moved by it. The typescript went into her dresser, and Gretchen and I found it after mother died in 2000. I scanned it, OCRed it, cleaned it up a little (but surprisingly little, after 50 years of additional practice telling stories) and gave it a new title: “The Camel’s Question.” Of the three camels, two are fairly ordinary. The third–well, he’s a skeptic and a contrarian, and asks a great many questions about the world and its workings, and the men who dominate the world and the lives of camels.

One of those questions is a doozy.

And that’s where I hand the baton back to you. The story’s out there if you’re interested. It sat in a box for literally fifty years. Better late than never, I guess. It’s dedicated to my mother, who suffered far too much but never failed me in any way. It’s only the third story I’ve ever written with no fantastic elements in it.

Ok, ok. Talking camels. I did the best I could with what I had.

Thanks in advance to all who buy it and read it.

A libc Mystery…Solved

We have solved the mystery described in yesterday’s entry…

…mostly. I’ve found down the years that inside any big mystery are likely one or more smaller mysteries. And so it is. I would have figured this problem out a whole lot sooner if the symptoms had been consistent.

They weren’t. And those symptoms made me nuts for several days. Eventually I decided to yell for help.

I got a lot of very good help. If you haven’t read yesterday’s entry (and if you’re actually interested in assembly language programming) go read it now. I won’t repeat all the details here.

In short: I wrote a small demo program for my new book, x64 Assembly Language Step By Step. It didn’t work. Several of my readers took the code I posted in yesterday’s entry, built the executable, and…it worked.

That’s what made me nuts. I ran the damned thing on three different Linux instances, and the problem manifested on all three of them. But a couple of my friends ran the executable and had no trouble at all. It worked perfectly.

WTF?

That’s actually the small mystery inside the big mystery. The big mystery we figured out fairly quickly. Bruce, a new Contra commenter, built the executable and it failed. He changed one line in the program, and it worked. I tried his fix. It worked. Mystery solved.

But…why? Bruce cleared register RDI to null (i.e., 0) before calling the libc time function. I had cleared RAX, as part of an earlier test to try and pin down the symptoms. I intended to remove that line from the program. But it gave Bruce an idea: clear RDI instead. He did. It worked. I tried it, and…victory! Clearing RDI to 0 completely eliminated the problem, and I spent another hour trying various things to crash the executable. No luck. It was a consistent fix, in that once I cleared RDI to 0, nothing else would make the executable malfunction.

I think it started to dawn on several of us at once. Supposedly, the time function doesn’t take any parameters. Or so I supposed, based on my reading. But that was wrong. The Linux time function takes one (understated) parameter: The parameter can either be 0, or it can be an address. If it’s an address, time will put the current time_t timestamp value at that address. If it’s 0, time will return the time_t value in RAX.

In stepping through the demo program’s execution in a debugger, I noticed that after a call to the puts function, register RDI would contain a memory address. It wasn’t always the same, and it wasn’t generally useful, So un-useful, in fact, that the garbage addresses being left in RDI would cause either a hang or a segmentation fault. In the x64 calling convention, the first parameter is always passed to a function in RDI. I didn’t think of time as having any parameters at all, but clearing RDI to 0 before calling time guaranteed that time would place the time_t value safely in register RAX…instead of crashing.

So the big mystery was solved. I spent an hour and a half trying to get the program to crash. As long as RDI was 0 when time was called, it did not crash. Halleluia! The big mystery was solved.

The small mystery remained: Why did some of my readers built the executable and have it work perfectly, while the exact same program on my Linux machines went belly-up? That remains an open service ticket. I’m mildly curious, but as long as I know that RDI has to be either 0 (preferably) or the address of a suitable buffer to hold the time_t value, all will be well.

Let me wrap up by abundantly thanking everyone who took part in the bug hunt:

  • My friend and SFF collaborator Jim Strickland
  • Linux expert Bill Buhler
  • New commenter Bruce
  • Long-time reader Jason Bucata
  • X64 programming expert Jonathan O’Neal
  • Contra regular Keith

You guys were brilliant. I will cite you all on the Acknowlegements page in the book, when it comes up (with some luck) next summer.

Again, thanks. In a weird but satifying way, it was fun. Now I have to get back to work.