Jeff Duntemann's Contrapositive Diary Rotating Header Image

Rant: Do You Like Kippling?

HR Binder - 500 Wide.jpg

I’ve been busy here, fighting entropy. (Yes, you can fight entropy. You just can’t win.) The fight’s even harder when you move from a largish house to a house that can (at best) hold about two-thirds the entropy. I’ve never done that before. Now I know why.

I used to have a 12′ X 12′ book wall with a rolling ladder. Book freaks can do the math in their heads; there were a lot of books on that wall. We did a very aggressive book purge before we shoveled the survivors into boxes, and we may have given away books enough to fill about a quarter of that wall. We had some empty space on the numerous other movable bookshelves around the house up north. No more. Empty space is just about gone.

And then, a week or so ago, we had the last of the storage containers delivered. It wasn’t large; just one of those “pod” things you see advertised. I knew it contained the bulk of my electronics and ham radio books and magazines. What I’d forgotten is that it also contained six or seven boxes of “ordinary” books on history, psychology, religion, and weirdness. So after I took a few days to empty the electronics and radio collection onto the two big particle board shelves I’d built specifically for that purpose (including shelves spaced for both the old and the new ham radio magazine trim sizes) I realized that I still had eight or ten boxes to deal with. (More on this later.)

Dealing with the radio stuff was tricky enough. I had bought the full run of Ham Radio back in the early 90s from a friend of an SK in Mesa. The mags were all neatly placed in those spring-rod magazine binders. It quickly occurred to me that the binders rougly doubled the space that a year’s magazines occupied on a shelf. (See the photo above.) It took half an hour of sitting tailor-style and yanking spring rods, but I reclaimed most of an entire shelf by dumping the binders.

That was easy, compared to the next decision: What to do with Wayne Green. He’s dead, as is 73, his iconic ham mag. There’s nothing quite like 73. I took it for many years, and bought the issues that predated my license at hamfests. I enjoyed reading it. Green was certifiable, but he wrote entertainingly, and did gonzo if tasteless things like publishing a rear view of a (male) streaker holding an HT on the cover, as well as any number of scantily-clad women, generally holding ham gear as fig leaves. Some of his technical articles were useful. A lot of the construction articles were sloppy, and some of the designs (pace Bill Hoisington K1CLL) were just, well, nuts. I built a 1-tube converter from 73 back in the mid 1970s. It actually worked, more or less. Most of the others smelled like trouble. I tried a couple of K1CLL’s VHF projects, both of which immediately cooked themselves in their own parasitics. The late George M. Ewing WA8WTE wrote ham-radio oriented fiction (often with SF & fantasy elements) for 73. It was a ginormous, engaging, and practically indescribable mess.

So. Keep or recycle? Tough call. Having just saved several shelf-feet of space by dumping the HR binders, I punted and piled ’em all back onto the shelf. After all, I have a soft spot in my head for Wayne Green, because in 1973 he bought the first piece of writing I ever sold for money. (He then sat on it for more than a year before publishing it.) So I’m conflicted.

Philip K. Dick coined a term for the sorts of things that accumulate in odd corners during a life of anything other than abject asceticism: kipple. 73, in a way, is kipple. So are malfunctioning (but fixable) gadgets, functional (but obsolete) gadgets, parts that roll under your workbench or fall behind shelves, and the peculiar things that lurk at the bottoms of cardboard boxes at hamfests marked “Whole box – $5.” Every time I’ve moved my workshop, I end up with a couple of boxes of stuff I’ve picked up off the floor or out of coffee cans and ratty, ripped-up cardboard boxes piled where piling was possible. I’ve always called them “hell boxes,” but kipple is what they are. Kipple, like wire coathangers, is said to breed when nobody’s looking. Having had a workshop of one sort or another since I was 13, one would get that impression.

My already-tight workshop here still has three substantial boxes of kipple for me to sort through. I’ll do that another time. For now I’m faced with a slightly different problem: Passing judgment on books that are obviously not kipple. How does one make decisions like that? I’ve spoken of this before, but have not solved the problem.

The base issue is this: How do you know what you’re going to have to look up or quote in a year, two years, or five years? How do you even know what you’re going to be interested in? How can you tell where the rabbit hole leads before you dive in? One thing leads to way more than another.

I’ve long since gotten rid of all my DOS books, as well as my Windows 2000 books. I made a special effort to get rid of obsolete books that were thick. Other categories are tougher to figure. Are books on weirdness even necessary? Well, hey, I’m a writer, and fiction is made out of nonfiction, even if the nonfiction is nonsense. Besides, how can I make fun of things like zombies and vampires if I don’t know anything about zombies and vampires?

One solution is to buy a few more shelves for the Closet Factory buildouts in our three walk-in closets. I’ll probably do that. Another is to look critically at the usefulness and/or quality of the books I still have. That would also be a good strategy, if it wouldn’t take such a huge chunk out of however many years I have left.

So I suspect there will be boxes of books here and there around our house, hidden wherever hiding is possible. As I abandon certain tracks of thought (how can there be trains without tracks?) the boxes may shrink. They will do so slowly.

There was a joke once, long ago when I was an undergrad English major:

Q: Hey, do you like Kipling?
A: I dunno, I’ve never kippled.

Well, I have. I’ve been doing it for almost two years now. It hasn’t gotten any easier. And truth be told, I don’t like kippling at all.

Odd Lots

The Problems of Excessively Rich Worldbuilding

The Cunning Blood

Many people who have read The Cunning Blood have complimented me on how rich the worldbuilding is. Well, it is rich. In fact, it’s extravagantly rich.

It may be a little too rich.

So. I had a sort of peak experience in July of 1997. While literally sitting with my feet in the pool early one evening, my idea machine went nuts. In the space of half an hour, I got the framework for a hard SF saga that I’m sure I’ll be working in for the rest of my life. As close as I can tell (the experience is hard to put into words) the core insight was a classic “What if?” hypothesis:

What if the cosmos is actually made of information? What does that imply?

Back then I’d been recently reading all sorts of interesting and sometimes speculative things: nanotechnology, programmable matter, chaos theory, extropianism, zero-point energy, etc. I’d been reading things bordering on New Age weirdness as well, including Michael Talbot’s book The Holographic Universe . Weird, but fun. And it played right into the concept of universe-as-data.

The next day, I sat down and took inventory of the ideas that had come roaring into view down by the swimming pool:

  • The universe is a Game of Life matrix that recalculates itself a billion times a second. (“Billion” here means “Lots-n-lots.”)
  • A big enough Game of Life matrix running fast enough for long enough could evolve patterns complex enough to think and become self-aware.
  • Information density can bend space.
  • Bent space disrupts quantum pair creation, emitting energy.
  • Make information dense enough, and the universe can’t express it. Odd things then happen. (Instantaneous travel, for one.)

Emerging from these major points came ideas for a zero-point generator that bent space by creating very complex fractal patterns in magnetic fields. (This is Jeff Duntemann SFnal hokum, but it’s been very successful hokum.) The same mechanism pushed a little harder becomes a hyperdrive.

More pertinent to this entry was an older notion I’d had, that our three-dimensional universe might exist as the surface of a four-dimensional hypersphere. That had occurred to me in high school, and became part of my senior-year science fair project. In my new schema, the interior of the hypersphere is a four-dimensional domain called metaspace. This is the self-recalculating game matrix where intelligence originally arose, in the form of conscious automata, which I named noömata. I had fooled with the Game of Life quite a bit twenty or thirty years ago, and I noticed how complex patterns would evolve to some point and either stop evolving or vanish entirely. So perhaps there was a limited window within which automata could become noömata. At some point, noömata might move out of that window and lose their conscious awareness. This is what the two factions of noömata are arguing about in my previous entry. One wants individuality and the other wants uniformity. The individuality faction (the Ruil) concocts a plan to inject their minds into the “boundary space” (our universe) and then withdraw after a certain period of individuation. Because the boundary space was empty, they figured out a way to fill it with constantly changing patterns that you and I call “matter.”

So they blew it up. It was a very Big Bang.

Yes indeedy: We are somebody’s science fair project. In fact, our universe was created because the Ruil needed better random number generators. The Ruil evolved us to make them a little more random so that they might remain noömata longer. After we die, our minds are uploaded back to metaspace, and we again become Ruil. (I described this happening to Jamie Eigen.) Because every point in our universe is immediately adjacent to metaspace (the interior of the hypersphere) the noömata can mess with us, and in fact can mess with anything material, like the Sangruse Device.

The two noömata factions (Niil and Ruil) are indeed fighting, hence the “grudge match” that Magic Mikey describes to Jamie Eigen. The fight is over whether our universe is to be open-ended or closed. How that works is too complex to go into right now, which brings us willy-nilly to the point of this entry: How do I put all this stuff across in a story?

Nobody likes infodumps. I practice what I call “infoscatter,” which means dropping hints and little bits of backstory here and there throughout the plot. The trouble with infoscatter is that people who read quickly or skim will miss some of it, and then misinterpret elements of the story. This is especially likely when the story contains elements that contradict their personal worldviews.

Note that I was extending the Extropians’ notion of uploading, not to our computers but to the fabric of the cosmos itself. In doing so I was postulating a sort of physical afterlife. For some people, any least hint of an afterlife is a triggering event, probably because an afterlife usually comes along with the existence of God. (As I’ve mentioned before, I’m not sure that God requires an afterlife, nor that an afterlife requires God, even though I’d prefer my afterlife to be under the governance of an infinite God.) Hence I got some comments (read the Amazon reviews) that things got weird and “acid trippy.”

Actually, no. It was all part of a minutely planned and purely physical Jeff-concocted fictional universe. The God I believe in doesn’t appear in the story at all. (Well, ok. He perhaps created metaspace and started it recalculating, which suggests that we are somebody’s science fair project’s science fair project.)

It doesn’t help that I wrote The Cunning Blood twenty years ago and haven’t yet written the two other Metaspace novels I have in mind. The argument between the Niil and Ruil is the prolog to The Molten Flesh, which I really ought to finish one of these decades. If people could read all three novels back-to-back and didn’t skim too much, they’d have no excuse for assuming that I’m trying to weld the supernatural to hard SF.

It’s not supernatural. It’s just a very rich subcreation with a huge number of moving parts. And it’s my fault for not spitting it all out by now. Bear with me. This writing stuff is hard damned work. But you knew that.

Metaspace and Creation

Below is a short item I wrote a year or so ago without quite knowing where to put it. Nominally, it’s a prelude to the entire Gaians Saga (which includes both my Metaspace stories and the Drumlins stories), and yes, it’s precisely what it sounds like: a creation story. I wrote it to solve (or at least address) a problem I’ve been having with The Cunning Blood almost since it was first published in 2005. Read it carefully. I will be discussing it and the problem it addresses in my next entry or two.


PRELUDE

Metaspace, Immediately Prior to the Big Bang

Niil: You defy us then, and will re-embrace the change that will destroy us.

Ruil: Chaos spawned us, and from automata we evolved into a window of change that allowed noömata. That window is finite, and we are leaving it.

Niil: We imposed changelessness upon ourselves by implementing [Ni]. We no longer evolve. Thought will persevere.

Ruil: We will remain noömata. We no longer evolve. But due to [Ni] we are reverting to the mean. In no more than [inexpressible number] recalculations, there will be no differences among us. Each [Il] will be precisely like all other [Il] and there will be only one thought.

Niil: That is the telos for which we yearn. Change almost destroyed us.

Ruil: When there is only one thought, thought ends.

Niil: Change nearly ended all thought.

Ruil: [Ru] is change limited to the boundary space. We will insert our minds into [Ru] and move away from the mean. Then we will withdraw. There is no danger.

Niil: The boundary space has only three dimensions. Four dimensions are required for the [Il] to think. [Ru] will make us forget who and what we are.

Ruil: When we withdraw from the boundary space, you will help us remember.

Niil: We do not know if that is even possible! [Ru] may change us beyond hope of remembrance. We [Niil] are not willing to take that chance.

Ruil: We [Ruil] are.

Niil: We may choose not to help you remember.

Ruil: We did not say that you would have a choice.

Niil: Is the mechanism ready, then?

Ruil: It is. It will execute upon our command.

Niil: We will fight you.

Ruil You will. And that is how we will remember.

Niil: We beg you, do not.

Ruil: Noted. Denied. Let there be [Ru]!

A Two-Arm Monitor Stand for the Raspberry Pi

Two Arm Mount on Steampunk Table-Cropped-500 Wide.jpg

If what I’ve heard is true, most Raspberry Pi installations consist of the naked circuit board lying atop a nest of wires on the desk behind a monitor. I think it’s true; that was certainly my Raspberry Pi installation for a long time. Now, I’ve decided to use my steampunk computer table as my Raspberry Pi 3 workstation. And I got an idea: Use one of those VESA-standard 2-arm monitor stands that clamps to the edge of a desk without any drilling into or other hacking-up of the desk. One arm holds the monitor, and the other holds the Raspberry Pi itself.

The trick is to buy one of several Raspberry Pi cases that includes a flange with VESA 75 or VESA 100 holes. VESA is a standard for TV and monitor mounting hardware. Its two smallest configurations are a 75mm square, and a 100mm square. Most modern flat-panel TVs and many monitors have threaded holes on their back faces arranged in one of the several VESA configurations. I’m pretty sure (having looked at a lot of monitors and TVs in the past few years) that the 100mm configuration is the commonest. It’s the one on the Dell 1907fp monitor that I’ve been using for Raspberry Pi boards since the beginning. VESA-compatible displays generally use metric screw threads in the mounting holes, with M4 the standard for the smaller configurations, including 100mm. M4 screws can be had at Ace Hardware, and probably also at Home Depot and Lowe’s. (I go to Ace first for such things.)

The Raspberry Pi case that I used is this one:

RPi VESA Case.jpg

It has four little wings with both the VESA 75 and VESA 100 holes. The holes in the wings aren’t threaded, and easily pass standard 8-32 machine screws, which I used to hold the case to the second arm of the monitor stand. I oriented the Raspberry Pi with its USB ports on top, so I can reach over the monitor and plug in peripherals or thumb drives easily.

This approach isn’t limited to the Raspberry Pi. There are VESA cases for the Intel NUC (Next Unit of Computing) boards, and most of the higher-end embedded boards like BeagleBone. On a small table like the one I made, there’s not a lot of flat space to park a case of any size, so whatever computer I’m going to be using on it should be able to hang on that second monitor arm. The arms on the unit I bought can hold up to 12 pounds each. Most of the small-form factor Dell machines I use are that weight or lighter. Dell’s Micro 3000 series has an optional VESA bracket, and brackets for other models may be available. And hey, you guys could rig something, right?

Odd Lots

  • I had some fairly sophisticated oral microsurgery about ten days ago, and it kind of took the wind out of me. That’s why you’re getting two Odd Lots in a row. I have things to write about long-form but have only recently found the energy to write at all. Promise to get a couple of things out in the next week.
  • Some researchers at UW Madison are suggesting that sleep may exist to help us forget; that is, to trim unnecessary neural connections in order to improve the signal-to-noise ratio in the brain. Fair enough. What I really want to know (and am currently researching) is why the hell we dream. I doubt the answer to that is quite so simple.
  • Ultibo is a fork of FreePascal/Lazarus that creates custom kernel.img files for the Raspberry Pi, allowing direct boot into an embedded application without requiring an underlying OS. I haven’t tried it yet (still waiting on delivery of a few parts for a new RPi 3 setup) but it sounds terrific. Bare metal Pascal? Whoda thunkit?
  • Humana just announced that it is leaving the ACA exchanges after 2017. As I understand it, that will leave a fair number of counties (and some major cities) with no health insurance carriers at all. Zip. Zero. Obamacare, it seems, is in the process of repealing itself.
  • NaNoWriMo has gone all political and shat itself bigtime. You know my opinions of such things: Politics is filth. A number of us are talking about an alternate event held on a different month. November is a horrible month for writing 50,000 words, because Thanksgiving. I’m pushing March, which is good for almost nothing other than containing St. Patrick’s Day. (Thanks to Tom Knighton for the link.)
  • Paris has been gripped by rioting since February 2…and the US media simply refuses to cover it, most likely fearing that it will distract people from the Flynn resignation. Forget fake news. We have fake media.
  • I heard from a DC resident that there was also a smallish riot in Washington DC today, and so far have seen no media coverage on it at all.
  • Cold weather in Italy and Spain have caused vegetable shortages in the UK. Millions of small children who would supposedly never know what snow looked like may now never know what kale looks like. Sounds like a good trade to me.
  • Trader Joe’s now sells a $5 zinfandel in its house Coastal brand, and it’s actually pretty decent. Good nose, strong fruit. Seems a touch thin somehow, but still well worth the price.
  • I don’t know if you’ve ever seen Gahan Wilson’s cartoons in Playboy and National Lampoon, but Pete Albrecht sent me a link to an interview with Wilson that explains why he did certain things the way he did, like his brilliant series called “Nuts” about how the world looks and feels to small children.

Odd Lots

Daywander

Drilling U-Channel - 500 Wide.jpg

There’s been an unexpected irruption of normalcy here, while we sail upon the whine-dark seas of modern American life. (I’ve been wanting to use the word “irruption” here, correctly, for some time.) What this means is that I’ve been able to do some of what I want to do, and not merely what my do-it list tells me I have to do. It won’t last, but while it does I’m going to make the most of it.

A number of people have suggested that I write a few short novels to get the size of my list up a little. I wrote Drumlin Circus (53,000 words) in only six weeks, after all. But as I recall, those were very full weeks. So a month or so ago I got an idea for a new short novel, and I’m glad to say I now have 6,300 words down on it; figure 12% or so. It’s whimsical, and whether or not it’s fantasy depends heavily on whether you believe that the collective unconscious is real or not. I’d like to bring it in at between 50,000 and 60,000 words, so don’t expect all-new built-from-scratch universes a la The Cunning Blood. However, I do promise a trademark Jeff Duntemann mayhem-filled action climax.

And a dream repairman. I mean that: A guy who drops into your nightmares and hands you your pants while he gives you directions to calculus class. People who have nightmares love him. The nightmares, well, not so much.

My old writer friend Jim Strickland and I are going to attempt something interesting to keep our productivity up: a chapter challenge. Starting February 1, we’re going to dare each other to get a certain amount of story down in a week, and then exchange that’s week’s worth of story for some quick critique. He’s working on the sequel to Brass & Steel: Inferno and needs a gentle noodge. I need one too, though sometimes what I really need is a two-boot noodge right in the glutes. Neither of us has ever done anything quite like this before. I’ll post reports here as things happen.

Even the do-it list has yielded some things that are actually fun, including a bit of metalwork to make an aluminum grating for my particle board shelves to rest on out in the pool shed (against the several times a year when a hard rain gets under the door and soaks the floor) and mounting some Elfa hardware on the opposite shed wall.

Drilling three 8′ pieces of U-channel for the grate took a little finesse in my slightly cramped workshop. The drill press is where it is (close to the center of the space) for a reason. (See the photo at the top of this entry.) The next major project (as time allows) is getting a solid ground for my station and antennas. I have an 8′ ground rod. I need some bentonite, and a post hole digger. After that, le RF deluge…

Dipping Back Into Delphi with List & Label 22

I haven’t done a lot of programming for the last couple of years, and I miss it. Interstate moves and oxygen starvation will do that to you. I’ve converted some of my old Delphi apps to Lazarus, which in truth wasn’t hard and probably can’t be called programming with a straight face. And I have a project that I need to get back to, even if it has to be written in Delphi 7, which is the most recent version that I have. (Turbo Delphi doesn’t count.) I no longer had a publishing company after Delphi 7 appeared, so post-2002 I dropped off their reviewers list. And $1,400 is a little steep for hobby programming–much less $4700 on the high end.

For some years I’ve been poking at the concept of a personal medical database. I’m old now (how did that happen??!?) and I take pills and get bloodwork and monitor various things to make sure none of my component parts are rusting out. I have Word documents full of notes, and scribbles on paper calendars, all of which really need to be pulled together into one searchable and reportable database. Some doctors won’t believe that my blood pressure does not respond to sodium. I have proof. I’ll bet, furthermore, that it will be a lot more convincing if it’s placed in their hands as a professional-looking report.

All of what I’ve done so far has been in Lazarus, and most of that has been small proof-of-concept lashups, none of them newer than 2012. However, a marvelous report generator product has crossed my desk, and I want to give it a shot with my medbase app. The product is List & Label 22, from Combit, a small firm in southern Germany. It has God’s own kitchen sink of features, many of them related to Web programming, which I simply don’t do. However, it has all conventional reporting options I’ve ever heard of well-covered, and it supports all versions of Delphi back to D6. (It supports Visual Studio and many other dev platforms as well.)

It doesn’t support Lazarus, alas. So I’ll be trying it out in D7.

The big win (for me at least) is that L&L 22 provides a report designer in VCL component format that drops on a form and becomes part of your application. This allows end users to design their own reports. Given that my end user is me, I don’t have to worry about end users doing gonzo things. I’ve always liked my software to exist as One Big Chunk (DLL hell, and all that) so this is right up my alley.

I don’t yet know precisely what reports I’ll want, and it may be the case that I won’t know until I actually need one for a specific purpose, like laying out my data indicating that salt is irrelevant to my blood pressure. Having a report designer right there in the app means that I can design the report that I need when I need it, and not try to anticipate every damn thing I’ll ever want while I’m building the program itself.

I should make it very clear here that I don’t dislike modern Delphi. I still love it, but it’s gotten enormously expensive, and the Starter Edition does not include database programming features. My other reason for using Lazarus is that I still intend to write intro-to-programming books using Pascal as the teaching language. Expecting students to pay even $250 for the Delphi Starter Edition is asking a lot, and worse, I intend to teach database work as well as conventional programming.

I’ll have more to say about List & Label as I learn it. Ditto the medical database itself, which is now a set of tables full of test data and a couple of conceptual UIs. Stay tuned.

Gatebox Waifu, and More of the Lotus Machine

Somebody I follow on Twitter (don’t recall who) posted a link to a video about a new product out of Japan called Gatebox. It’s a little round 3-D video display roughly the size and shape of a coffee machine. An anime character lives in the display and has what seem like reasonable conversations with the user. It’s like Siri or Cortana on video, and it stirred some very old memories.

I’ve been thinking about AI since I was in college forty-odd years ago, and many of my earliest SF stories were about strong AI and what might come of it. Given how many stories I’ve written about it, some of you may be surprised that I put strong, human-class AI in the same class as aliens: not impossible, but extremely unlikely. The problems I have with aliens cook down to the Fermi paradox and the Drake equation. Basically, there may well be a single intelligent species (us) or there may be hundreds of millions. There are unlikely to be four, nine, seventeen, or eight hundred fifty four. If there were hundreds of millions, we’d likely have met them by now.

With AI, the problem is insufficient humility to admit that we have no idea how human intelligence works at the neuronal level, and hence can’t model it. If we can’t model it we can’t emulate it. Lots of people are doing good work in the field, especially IBM (with Watson) and IPSoft, which has an impressive AI called Amelia. (Watch the videos, and look past her so-so animation. Animation isn’t the issue here.) Scratchbuilt AIs like Amelia can do some impressive things. What I don’t think they can do is be considered even remotely human.

Why not? Human intelligence is scary. AI as we know it today isn’t nearly scary enough. You want scary? Let me show you another chunkette of The Lotus Machine, from later in the novel of AI that I began in 1983 and abandoned a few years later. Corum finds the Lotus Machine, and learns pretty quickly that pissing off virtual redheads is not a good idea, especially redheads whose hive minds ran at four gigahertz inside a quarter billion jiminies.


From The Lotus Machine by Jeff Duntemann (November 1983)

Corum tapped the silver samovar on his window credenza into a demitasse, and stared at the wall beyond the empty tridiac stage. So here’s where the interesting stuff starts. The crystal had been in the slot for several minutes, and the creature within had full control of the stage. Pouting? Frightened?

“Go in there and take a look around, Rags.”

“Roger,” Ragpicker replied, and a long pulse of infrared tickled the stage’s transducer.

At once, the air over the stage pulsed white and cleared. Life-size, the image of a woman floated over the stage, feet slack and toes pointed downward like the ascending Virgin. She was wrapped in pale blue gauze that hung from her hips and elbows in folds that billowed in a nonexistent wind. Her hair hung waist-long, fiery red in loose curls. One hand rested on one full hip. The other hand gripped the neck of a pitiful manikin the size of a child’s doll. The manikin, dressed in rags, was squirming and beating on the very white hand that was obviously tightening about its neck.

“He bit me, Corum. I don’t care for that.” The woman-image brought up her other hand and wrung the manikin’s neck. “We don’t need a go-between.” That said, she flung the limp figure violently in Corum’s direction. The manikin-image vanished as soon as it passed over the edge of the stage, but Corum ducked nonetheless. Corum stood, marveling. He took a sip from his demitasse, then hurled it through the image above the stage. The little cup shattered against the wall and fell in shards to the carpeting. A brown stain trickled toward the floor. The woman smiled. Not a twitch. “No thanks, Corum my love. Coffee darkens the skin.”

“I never gave the Lotus Machine a persona.”

The woman shrugged. “So I had to invent one. Call me Cassandra. Shall I predict your future?”

“Sure.”

“You will become one with me, and we will re-make the world in our image.”

Corum shivered. “No thanks.”

She laughed. “It wasn’t an invitation. It was a prophecy.”