Jeff Duntemann's Contrapositive Diary Rotating Header Image

Odd Lots

Grokipedia V0.2

Having spent some time with Grokipedia back in October of last year and written it up, I went back earlier today and took another look. It’s now V0.2. More significantly, it now has 6,092,140 articles. (Back in early November, it had 882,279.)

Here are some links that are worth a look:

Wikipedia has an article on Edison Park, the Chicago neighborhood where I grew up. So does Grokipedia—but it’s not the same article. Grokipedia has much more detail, and was not copied from Wikipedia, as many of Grokipedia’s critics claim. Now, I found an error in the Grokipedia article: The northern boundary of Edison Park is not Touhy Avenue but Howard Street. A small enough thing, but if precision is required, will the AI be able to provide it?

I have a few quibbles with the biography Grokipedia posted of me; it made no mention of the 2009 third edition of Assembly Language Step-By-Step, and did not mention Carol at all. There was also some repetition about my projects like Cosmo the robot and my two home-made reflecting telescopes. I had hoped for a detailed bibliography like those on Wikipedia; no joy there. Those are gripes I found while I had my editor’s hat on, and in truth I’d rather have too much information in the piece than too little.

Although I’ve read the other articles in the above list, I didn’t put them under my editorial microscope. I was surprised at its mention of Modula2+ and Oberon 2, languages I’d not heard of before. Xerox in-house language Mesa has an article but its successor Cedar doesn’t. I did learn that there is a programming language called Haggis, for use in (where else?) Scotland. The lack of photos on Grokipedia continues, as I mentioned in my first post on the topic.

My conclusion? Grokipedia is the best AI of the several I’ve tried so far. I saw no gross AI hallucinations (like me being dead, sheesh) and significant topics are mostly covered. I didn’t read anything political and hence potentially biased; I was looking for programming languages and writers who are also friends, like Sarah Hoyt.

The research continues. I’ll post another pertinent entry here when I find something worth reporting.

Odd Lots

Scraps: “May You Always”

I haven’t done a piece on scraps in a couple of years, so if you didn’t see it back in 2023, here’s a link to where I define it. Basically, stuff that pops into your head without a trigger or other reason. Happens to me all the time. But today I had a weird one.

While I was grocery shopping, a song popped into my head: “May You Always,” by the McGuire Sisters. It peaked on the Hot 100 on January 5, 1959. I haven’t heard for a number of years. I liked it (still do) for the Sisters’ voices and harmony. I could hear it as clearly as though it were on the radio. I had it on my college-years 8” reel-to-real off-the-radio mix tapes, and heard it a lot. So it’s no huge surprise that I remembered not only the melody and harmony but also the lyrics.

Here they are if you’re not familiar with the song. (I suspect a lot of my older readers might be.) Here’s the Sisters singing it. It’s clearly a person wishing another person well. Given who’s singing, it’s no surprise that I consider the lyric’s viewpoint singer a woman. The lyrics don’t say it out loud, but it sure sounds like a breakup song. The relationship is over, and she’s wishing him all the best.

But…why did they break up? She’s wishing for him to find someone to love as much as she loves him. So it wasn’t that he found another girlfriend. People break up for other reasons, sure. But then it hit me in the back of the head: She’s dying. They love one another deeply, but she’s on her deathbed, saying her goodbyes, with nothing but loving wishes that he continue on with his life and find someone new to love.

In reading the lyrics now, that interpretation seems obvious to me. Why?

I’m 73. A fair number of my friends have died. You get into your seventies, and that will happen. It’s part of the curve that we’re on. It’s a little odd that about as many women as men in my social circles have died. But that’s how it is. (Two of the women were, egad—murdered.)

I bring this up only as a reminder that getting old means you see others leave this world much more often than when you’re young. But young women die too—and that seems to lie at the emotional core of “May You Always.” That wouldn’t have occurred to me when I was 30 or 40. Well, it occurs to me now.

Odd Lots

Crosstrekkin’

IMG_1127

Well, our poor 2001 Toyota 4Runner, which we bought new in 2001, started to fail often enough that we decided (months ago, actually) that we needed to start shopping for another second car. We did a fair amount of research, primarily because of our screwy garage door, which should have been a 16-footer but is only 15’ wide. So getting in and out of the garage can be tricky, mostly because our primary car is a 2014 Dodge Durango. The 2001 4Runner was built on a small pickup truck chassis. so it was relatively narrow but still reasonably tall. Its narrowness made slipping it in beside the Durango easier than it would be with a modern 4Runner. We looked hard for something that was no wider than the 4Runner, and as close as we could come was the Subaru Crosstrek. Ok, there were a few other candidates. Our choice was driven by what we could find.

Subaru has a good reputation for reliability. So we did what we did when we bought our Durango: drove up to CarMax to see what they had. CarMax had treated us very well when we bought the Durango there at the end of 2014. And the Durango itself has treated us very well in the 11 years that followed.

The Scottsdale CarMax had no Crosstreks on the lot. No sweat. They trucked one in from their larger facility on the west side of town, no charge. It was a white 2022 with about 15K miles on it. I brought my 25’ tape measure with me when we drove over to see it the first time. The car was within striking distance of 71” wide, mirror-edge to mirror-edge, as was our old 4Runner. So it would fit in the garage. It was a little lower than Carol would have preferred, but I doubted that anything only 71” wide would be as tall as the ‘01 Toyota.

We were offered a free 24-hour test drive. Getting the paperwork in order was an issue, especially with insurance. We basically bought a 2-day policy on the Crosstrek. Then off we went. It drove beautifully. We went back to CarMax and told them they had a buyer. A few days later (more paperwork!) we gave them a cashier’s check—and our 4Runner—and they gave us the car.

Again, it drove very well. Our problem with it was not about quality but complexity. It has a huge touch-screen control panel, as well as plenty of buttons. The stack of manuals that came with the vehicle is 2” high. Carol and I (but especially Carol) spent a huge amount of time going through the books and trying to figure out how everything worked.

There was a lot of everything.

We’re still learning. But that said, Carol loves the car. She drives it when she’s driving alone; when we go somewhere together we take the Durango. It’s an SUV with more cargo space than I would have guessed a car that small might have. Overall, a very big win. We also recommend CarMax if you’re looking for a used car. They were attentive, courteous, and had none of the weaselly arrogance that conventional car dealerships are famous for. Keep CarMax in mind if at some point you’re facing the same, um, adventure.

RIP Mass-Market Paperbacks

When I saw three articles on the death of mass-market paperbacks (MMPBs) in the last couple of weeks, I knew something was up—and the articles said what was up, if not why: ReaderLink, the largest book distributor in the US, announced that it would stop distributing mass-market paperbacks. The piece from The Guardian (an affiliate link) mentioned ebooks in passing as one factor in the collapse of the format. (The other two articles did not mention ebooks at all.) A Kindle Paperwhite is more or less the same size as an MMPB, and thinner. Furthermore, a lot of people—Carol included—now read ebooks on their smartphones.

MMPBs first appeared in the 1930s, as a means of spreading book retail sales beyond traditional bookstores. MMPBs were designed to be sold like magazines: In drugstores, grocery stores, gas stations, dime stores, train stations, and other places where casual, low-value sales occur. They were cheap to broaden the reader base beyond trade paperbacks and hardcovers. When I first began buying my own books with allowance money in high school (1966-70) MMPBs started at 60c or 75c, with fat ones (like Dune) sometimes 95c. (The obese 1970 MMPB of Blish’s Cities in Flight cost a stinging $1.25.)

How do I even know this? I still have the books. I have hundreds of MMPBs on my shelves, many going back to my high-school days. They look amazingly good for a peculiar reason: I coated most of them with my mom’s ConTact self-adhesive transparent shelf plastic. I don’t pull them off the shelf much anymore. When I have tried to read them in the past five or ten years, the yellowed and sometimes crumbly pages came loose in my hands.

I wasn’t surprised. Like the magazines that inspired them, mass-market paperbacks were intended to be read once and thrown away.

But there’s another issue that none of the articles I linked to mentioned at all: The audience is aging, and aging eyes often can’t read MMPBs comfortably. I remember when I tried to read Charles Harness’s The Ring of Ritornel two or three years ago, that I needed my strong readers to make the near-microscopic text readable. And even then, while possible, the reading was nothing anywhere near comfortable. Ink fades over time, and type contrast matters.

I’ve asked several of my contemporaries in their 70s and beyond, and they agree: The type is too small. It was small to make the books cheap. Now they’re mostly unreadable.

The answer is obviously ebooks. I don’t buy print books very often anymore, and when I do, the size of the type is often the decision hinge. I have two Samsung Galaxy Tab tablets, which I read ebooks on for a simple reason: I control the size of the type. This doesn’t work well on books containing photos/graphics or stuff like source code, but print books like that are often twice the size of MMPBs or more. And I don’t generally sit down and read print books like The Rust Programming Language from start to finish in long stretches. I read them until my eyes start to hurt.

Alas, the only serious downside to the death of mass-market paperbacks is that a lot of them haven’t made it to ebooks and probably never will. Most of the short story collections I read in high school are just gone. Groff Conklin did a lot of good anthology work. Amazon carries the crumbling print editions.

Anyway. Ebooks are the answer. My Galaxy Tab S9 is full of ebooks, many of which cost less than $5. Those old MMPB covers on my shelves remind me of being young. Sooner or later I’ll have had enough of that, and they will feed the dumpster. I just wonder what will take their places on my shelves.

Idea: A GUI Vibe Coding Prompt Editor

I was poking around my substantial library of technical books earlier today, and in a far corner getting dusty was a copy of Java Studio By Example by Lynn Weaver and Leslie Robertson. It was published in 1998, and Java Studio (along with its creator, Sun Microsystems) are now extinct. But the gist of it was that you draw a sort of schematic diagram of a program’s logic on the screen. Then you use the Studio program to generate executable Java code.

I never got to play with Java Studio, but the idea fascinated me. After all, back in the second half of the ‘90s I was Editor in Chief of Visual Developer Magazine, focused on Visual Basic and Delphi and associated products. (I was sent the book by Sun as a review copy.) And flipping through the book, it hit me: How much bad code is produced by AIs like Claude simply because the developer doesn’t know how to construct a prompt that Claude will understand correctly? I’ve never tried vibe coding, but prompt engineering sounds to me like the critical link in application development’s complicated chain.

So how about a GUI editor that gently helps a user create prompts that will allow an AI to craft workable code?

Although I’m still a vibe-coding virgin, from my reading I would guess it would be a conversation with an AI, each programmer response to the AI being a more detailed clarification of the one before it. Maybe prompts like this:

  • Create a desktop Free Pascal application for Windows that accepts and validates data-entry fields describing an MP3 music collection, stored in and managed by a desktop SQL database.
  • Create data-entry fields for these data items: cut name, cut length, cut genre, album name, performer name, composer name(s), recording year.
  • Create validator procs for each data entry field according to field rules.
  • Create a 12-line table on the main form to display cuts, with clickable header sorting and a search dialog with pull-down menu lists of all fields.
  • Create database output reports summarizing cuts by name, albums by name, albums by performer, composers by name.
  • Create buttons for adding new cuts to the database, deleting cuts from the database, saving the database, and exiting the application.

I’m a programmer, so such prompts come easy to me. That might not be the case for people who have no programming experience. The AI would be capable of natural language and could craft a list of prompts from a back-and-forth chat that the user could see on the screen and clarify if necessary.

What would the AI do in response to user prompts? It would primarily ask for clarification of prompts, but would also build an application main window mockup and dialog mockups to one side of the AI vide coding conversation window. The user could drag mockup fields around in the mockup window, or simply say, “Center the table and put the buttons evenly spaced in a line below the table.” If the application uses database tables, the AI could create a window for each table to verify field nature, size, and validation rules.

The AI could put questions or suggestions in little hover balloons that would pop up if the user spoke a field name or hover the mouse over a field.

I’m not sure how an AI would be trained to design the application. The purpose of the vibe coding editor would be to help management or other non-technical users write prompts that are sufficiently clear and unambiguous for the AI to construct code embodying what what the user is trying to describe. It might all be done by one AI, or it might be done by two AIs: One to help the user create prompts, and another to build the app from those prompts.

That’s most of the idea as it came to me. Maybe somebody’s already done this. I don’t know. From a height, the idea is to raise the abstraction level high enough through user/AI conversation so that code could be generated from clarified user prompts rather than flowcharts or source code. If nothing like this has been created yet, trust me: It will happen, and soon.

“Whale Meat,” Second Edition

WhaleMeat AI Cover Mark 2

Amazon has just approved an update to my ebook novelette “Whale Meat,” which has been available on Kindle for 99c since 2011. Some of you have probably read it. Why did I update it? Glad you asked! There’s a story about the story. Here goes:

I was enthusiastic about Kindle since Amazon first made it available in the late oughts. I was already publishing paperbacks of things like Carl & Jerry via lulu.com, but ebooks finally seemed to be coming into their own. I needed a story to test how the Kindle system worked. I would be creating book-length ebooks soon enough, but the first one would ideally be shorter than books, and not one of my best-known works. “Whale Meat” shook a fluke at me to get my attention, and so it was that the story became my very first Kindle publication.

The story itself was not new. In fact, I wrote the first draft in early 1971, when I was still 18 years old. It was the first fantasy story that I had ever completed. I was trying to write something that didn’t reek of King Arthur or the Tolkien/Lewis canon. I made it contemporary, set in urban Chicago, and whereas it was about two witches, they were not wart-equipped elderly women in pointy hats riding brooms.

No. They were hippies. Or that’s what they wanted to look like. It was a tricky business, as they were born in the 1300s and were immortal. So in pondering what it might be like to be immortal, I hit upon a possible story gimmick: Telling the story in present tense. If you’ve been alive for centuries, maybe you see the world as a perpetual Now. And that’s how I told it.

I had not yet sold a story into a professional market, but I had a book by Writer’s Digest and knew how it was done. I sent it out to several magazines, including, sheesh, Analog. It came bouncing back from all of them with little or no delay. After five rejections, I started wondering why nobody seemed interested. Maybe it was that weird way of telling the tale in present tense. So I rewrote it in conventional past tense, and a few years later sold it for $35 to Starwind Magazine, published by Ohio State University. It appeared in their fall 1977 issue.

Now, I wasn’t the first to invent present tense in storytelling. John Updike generally gets that honor, beginning with his well-known novel Rabbit, Run. But as weird as it seemed in 1971, in 2026 it’s used by a great many authors, and sounds modern and savvy. So last summer I rewrote the story, top-to-bottom, in present tense. I cleaned it up and fleshed it out in other ways as well. My intention was to replace the 2011 “Whale Meat” on Amazon with a newer, present-tenser edition.

All I needed was a cover.

So I attempted the obvious: Get an AI to draw a cover for me. I subscribe to X, and get the Grok AI as part of the package. So one afternoon a few days ago I gave Grok a prompt: Draw a scruffy middle-aged male witch in modern Chicago, summoning a whale through hyperspace.

It drew me a scruffy man…in a black robe and pointy black hat. Heh. No sale. I took a breath and gave the prompt more thought: Draw a scruffy gray-bearded middle-aged sorcerer wearing a floppy work-cap in modern Chicago, summoning a whale through hyperspace. It drew pretty much what I’d asked for. I saved that image to disk and asked Grok to regenerate using the same prompt. I got another image much closer to what I wanted. I spent some fascinating minutes regenerating images, all of which were different, and saving them to disk until I had about 15. After a certain amount of staring, I chose the image you see above. Ok, the prompt is a spoiler, but I’m guessing whoever might have enjoyed “Whale Meat” among Contra readers has already read it.

Now, this was an experiment. I’ll gladly pay a human artist for a cover on a novel-sized book. This was a 9,000 word novelette that I sell for 99c. I wanted to see how close an AI could come to something that resonated with the story. Grok did pretty well. When I uploaded the new text and cover, Amazon asked if any part the ebook was generated by AI. I clicked Yes. Other writers I know are doing this. I think Amazon is just gathering stats, and they approved the new edition a couple of hours ago. The first edition sold 55 copies across 15 years. This one may do better. We’ll see. If you read it, please drop a review on Amazon. Thanks!

The Invasion of Architectural Right Angles

Something’s going on in our neighborhood here that few people beyond those who grew up on the northern edge of Phoenix in the 1960s and 1970s will understand: Huge, expensive houses are popping up, every one utterly bereft of curves and roof peaks. They seemed odd when there was only one or two in our vicinity. Now that there are seven or eight—with several more under construction–what was odd became a trend, and ultimately an architectural style. I don’t know what architects call this new style. But boy, it’s popping up all over.

This past Wednesday Carol and I attended an open house at a newly completed home less than a block away. It was a broker open house, but we were invited because we live just down the street and around the corner. It’s right next to another similar house that was finished a few months ago, as the photo below shows. (The new house is the one on the left.)

IMG_1119

We’ve watched it go up for most of a year. The landscaping has just been completed. They did something a little odd: Using a crane, they lowered a 20 foot palm tree down through a hole in the portico, its root ball going into a hole just to the left of the front door. Here’s a better view:

IMG_1120

The house encloses 6,142 square feet, including six bedrooms and six and a half baths. There’s a fancy rectangular pool adjoining a sunken patio with a bar. Embedded in the pool are five plaster pillarettes just high enough to be bar stools. Oh—and the line of sunken bar stools is behind a linear waterfall coming down from the top of the patio roof. So you can sit on one of the stools, waist-deep in water, and sip a marguerita while the waterfall’s splashes keep your back cool when it’s 115 degrees out:

IMG_1113

Adjoining the pool area the property includes what down here we call a casita: a separate small but complete living space including a kitchen, bedroom, bathroom and living area with an electric fireplace:

IMG_1114

I didn’t take photos of the interior because the place was a madhouse when we were there, but the right-angle convention was held throughout. Oh—and there was a 6’ tall server rack in its own closet, with a bundle of fifteen or twenty cables going into the wall. It probably already holds a NAS. If not, there’s certainly room for one.

So why this and why here? Our subdivision and a few others were platted and built in the midlate 1960s. (Old enough not to have an HOA, phew.) Our house was built in 1966, but it was very heavily remodeled in 2002. The key is the lot size. These subdivisions were intended as modest-sized homes for people who wanted to keep a horse or two in their backyards. A tack shed (storing saddles etc) was a popular option. We have one of those. The lots run from half an acre in size to a full acre. Ours is 5/8 of an acre. Only a couple of people hereabouts still have horses. So, absent horses, what can you do with half- to full-acre lots?

You build mansions, that’s what. The house Carol and I toured will be listed soon for $5,375,000. It takes up almost all of its half-acre corner lot.

The house was startling, inside and out. It has amenities, but lacks coziness. We’d pass on it even if we could afford it. In a few years the neighborhood will be an interesting mix of small-ish and huge-ish homes. I honestly wonder who all of our new neighbors will turn out to be.