Monday, September 26, 2016

Read It, Late September 2016

Well, the second half of August went fast. And so did most of September. This one has been sitting on my computer, unfinished, for some time. I’ll try to be more regular, although I am now spending my free time packing my books for a move, which is taking up a great deal of time. The library takes up a lot of boxes, and a lot of storage space! On the positive side, I am attempting to bring the database of every book, video, and compact disc my family owns completely up to date.

On to the books.

Acceptance by Jeff VanderMeer

In reviewing Authority a short while ago, I wrote:

I have started reading the third part with low expectations. I haven’t finished it yet. Already, it is more engaging than the second one. But I think my final verdict will likely be that readers should read the first book, which I reviewed highly in May, and stop there.

And in short, this is exactly what happened. I finished Acceptance this morning and found it unsatisfying. Like Authority, it suffers in comparison to the first book, Annihilation. It sets up the sensation that there will be revelations and climaxes. We learn a little more and speculate a little more about what is going on in Area X, and there are some interesting and disturbing scenes and moments, but overall the latter two books in the trilogy both lack the sense of sustained build-up, forward movement, and storytelling that keep me happily turning pages.

So I’m going to do what I said I would do, keeping the first volume in my library and giving away the other two, and accept that VanderMeer tried, but somehow wasn’t able to make this work really work as a trilogy; it was a great novel. I think the setting might still be a fertile setting for other stories, but the stories VanderMeer actually managed to tell in Authority and Acceptance just didn’t live up to the uncanny weirdness, beauty, and intensity he achieved in the first volume. Which is a shame, but not exactly a startling revelation, since many, many trilogies follow in those same well-worn tracks.

The Stainless Steel Rat Books

Some time ago I read Harry Harrison’s original novel The Stainless Steel Rat released all the way back in 1961.

In the last couple of weeks I picked up an omnibus paperback containing the first three books and so completed The Stainless Steel Rat’s Revenge and The Stainless Steel Rat Saves the World.

Revenge features a storyline about an alien civilization that has expansionist aspirations, and is invading other planets. Harrison’s world is not deep or complex but it is entertaining and fast-moving. His plot points often seem a little bit clichéd and feel like TV dramas, but I think one could make the case that this is, in part, because his novels have influenced several generations of screenwriters.

In Word there is an elaborate time-travel narrative. Time-travel stories were not new in 1972, but some of the tropes weren’t quite as tired. Slippery Jim travels back in time to 1975, and has highly amusing adventures trying to figure out the culture of old Earth.

I’m currently working on The Stainless Steel Rat Wants You. In this volume, Slippery Jim’s twin sons are full-grown and ready to embark on a dubious adventure with Jim and Angelina.

Let’s face it; the Stainless Steel Rat stories are not heavy, or deep. At least, the ones I’ve read so far are not, although amid Slippery Jim’s constant boozing, an admirable personal philosophy does emerge, a philosophy about personal freedom, coercion, and the role of the state and the military.

Harrison is apparently still writing Stainless Steel Rat stories over fifty years later, so maybe the new ones get heavier or deeper. I don’t yet know. But the volumes I’ve read so far are slightly satirical but mostly just amusing adventures in the mold of old-fashioned adventure tales. They do this admirably. Each one consists of about 21 short chapters. There are lots of narrow escapes and cliffhangers. They are, in fact, a nice antidote to some of the much heavier works that I’m reading. Works like…

The Book of the Short Sun

Having finished the New Sun books in audiobook format, I continued right on to the Short Sun books. In the past I have tried to read this series a couple of times. Each time I got hung up, if I recall correctly, about halfway through In Green’s Jungles.

I’ve had another chance to tackle this, the challenging third series of Wolfe’s “solar cycle” books, but by listening to the first two parts as audiobooks. The third part, Return to the Whorl, does not seem to be available on YouTube.

Even with the long hours in the car, available for listening, and large volumes of coffee, to focus my mind, In Green’s Jungles remains a difficult work. The first volume is, for the most part, told as a relatively straightforward story, but out of order, and with some deeply strange elements, some whose significance only becomes clear upon a second or even third reading.

Horn, a character from the Long Sun books, is the narrator. He tells us about accepting a mission to travel across the planet Blue to claim a seat on a “lander,” a spacecraft, which will return to the Whorl, the generation starship that brought humans to this solar system. His mission is to find Silk, the hero of the Long Sun books. He wants to bring Silk to Blue, because civilization on Blue is suffering from a distinct lack of coherent, moral leadership.

Horn has several adventures and misadventures, all told in a complex, interleaved retrospect. He meets a young woman who seems to be human, but who has gills, and she seems to have been transformed by a goddess into a literal siren. He is granted a vision of this goddess, who can take the form of a gigantic woman. She seems much like the Undine in the New Sun books.

Taking the young woman as his companion and lover, Horn violates his marriage. In a disturbing scene, he convinces the young woman, Seawrack, to sing for him. This singing arouses him so much that he brutally rapes her. It seems that both his violent and procreative instincts have been aroused, and he seems to try to hurt her as much as possible in the assault. This is a disturbing and baffling scene. How are we to identify with the narrator afterwards? Was he really unable to control himself because of Seawrack’s magical singing?

Wolfe here is clearly trying to challenge the reader by giving us a narrator who is difficult to empathize with, just as the New Sun books featured a young man who was literally a torturer, and whose job was to execute people by beheading, or perform other acts of punishment; after exile, Severian was appointed the administrator of a horrifying, wretched prison. I’m still disturbed by the way this Horn doesn’t seem to fit with the Horn of the remainder of the trilogy; at the very least, Wolfe is warning the reader that “this isn’t going to be easy.” At worst, it seems almost a George R. R. Martinesque act of sadism.

Horn meets one of the inhumi, a vampire-like alien being who takes on the appearance of a young boy. His difficult relationship with this inhumi, Krait, is set up in relation to his relationship with Seawrack. The cast of characters is rounded out with a hus, an eight-legged creature a bit like a boar, named Babbie. Babbie is not human, but seems to develop greater intelligence and empathy as he spends time with Horn. So does Krait. Seawrack seems to have been human once, but only constant contact with Horn keeps her so. So in addition to the actual storyline of In Blue’s Jungles, Wolfe has set up some complex philosophical questions about personhood, especially how our conception of someone’s personhood can change. But as soon as you have a feeling that you pretty well understand these issues, Horn casually mentions how all these things happened back before he died. And the issue of just who Horn actually is starts to loom large in the reader’s mind.

In the second volume, In Green’s Jungles, we are again learning more of the story out of order. The lander was a trap, and operated by the inhumu, to take humans not to the Whorl but to their planet, Green, to serve as slaves and/or food. Although the title mentions Green, almost none of the story actually takes place on Green, except in recollection of Horn’s earlier sojourn there. Well, sort of. As In Green’s Jungles is opening, Horn, years older than the Horn in the previous book, recounts staying with a man named Inclito. He tells us the story of how he winds up leading Inclito’s troops in an inter-city-state war on Blue. There are other inhumu characters to understand and contend with, some disguised and some not. And then, as Incanto, who is Horn, who may also be in some sense Silk, is left to sleep in the snow with a dying inhumu, he takes a whole contingent of fighting mercenaries to Green, via some kind of astral travel. And then things get so strange and difficult that, I think, this is the point at which I gave up in my previous attempts to complete it, and set the book aside.

I’ve done better this time, but I have to admit that after finishing In Green’s Jungles in audio form, I immediately had to go back and listen to most of it a second time before I felt like I understood it to my own satisfaction, and I don’t feel like listening to it a third time would be out of the question.

In Green’s Jungles is an immensely complex work. It bounces around in time and space such that it really would not be easy to put the chronology of events into a completely rational order. One would have to make a detailed outline and then cut it apart and reorder everything. In fact I get the sense that Wolfe constructed these three books, at least in part, by doing the opposite — tearing a detailed chronology of events to shreds and reassembled it as told by a narrator who is himself deeply damaged and confused, although (I think) not actually deluded or misled as to the true nature of events, as Severian seems often to be.

I wish I had Return to the Whorl in audio form. That book is also complex. I’d like to be able to listen to it in the car as well. Instead, I’ve been reading the printed version again. I have not gotten very far yet. In Return to the Whorl we finally start to learn what happens in between Horn’s “death” and how he fails — sort of — to complete his mission. Because I am not that far into it, I am not really sure whether In Green’s Jungles represents the peak of narrative confusion and complexity in the trilogy, and things start to become more linear in the third book, or whether Wolfe will be twisting things up even more. I’m betting that he is, at least for a while, going to ratchet the degree of difficulty up even higher.

I don’t feel like I’m even at a point yet where I can adequately review this trilogy. I’m a good reader. I once audited a seminar class on James Joyce’s Ulysses and I had a lot to say about that book, and felt as though I got a great deal out of it. I still have my notes. I was an English major and studied big and difficult books, classic works of literature like Moby Dick. Wolfe can, when he wants to, really make things hard, formally, by playing with the fundamentals of storytelling, in a way that Joyce didn’t and Melville didn’t.

The Book of the New Sun is so fascinating in part because it can be read in a very satisfactory way as a fantasy/adventure novel set in the milieu of Jack Vance’s Dying Earth stories. It is perfectly respectable to read and enjoy Severian’s adventure as a big travelogue, exploring his world and winding his way to his ascent of the throne. But the story is not quite what it appears. The fantasy world turns out to be a science fiction world. Many things that initially seem magical have a technological explanation. The lacunae and oddities and inconsistencies in Severian’s story reveal that he is not what he seems.

The second series, The Book of the Long Sun, seems right off the bat to give us an unreliable narrator — a young priest who has, in the first book’s first scene, a vision, or perhaps a mild stroke. He sets off on a great mission, believing that he has been granted enlightenment by the mysterious God, the Outsider. The story is actually quite straightforward, although through various details we come to understand that this story is connected to the Long Sun books because the gods of the Whorl, the generation starship, are the uploaded children of Pas, who is himself the uploaded Typhon, the two-headed ruler of Urth who Severian meets in both the four-volume novel and the “coda” The Urth of the New Sun. And Silk, it turns out, is not unreliable at all, although he may be divinely inspired, by a real God, not one of the fradulent technologically-enhanced human “gods” of the Whorl.

The Book of the Long Sun is not complex in the sense that The Book of the New Sun is complex. The plot is relatively straightforward. The challenge to the reader stems from the way the storytelling across the four volumes is so intense, complex, and focused. Events take place in an extremely compressed time scale. Dialogue is packed with meaning. There are dozens of characters to meet. Small details mentioned in passing become significant later, and there is a lot of detail to absorb.

The Book of the Short Sun takes yet another approach to narrative, in that we don’t necessarily have an unreliable narrator, but a scrambled narrative. In reading Severian’s account, at least for a second or third time, Severian’s identity becomes somewhat complex as we realize that his timeline has been manipulated and his whole existence across timelines interfered with. Horn has not, I think, had any such external manipulation done to him. But he has been badly damaged, his identity itself altered, and the narrative that he unspools reflects this chronological confusion; it’s a tangled ball of yarn.

The Book of the Short Sun is definitely the more difficult of the three Solar Cycle series. I think that The Book of the New Sun endures because of the way the reader can enjoy it on multiple levels, and it richly rewards re-reading. Too, I’ve started listening to The Book of the Long Sun, which I’ve read twice already. Unlike The Book of the New Sun, the story of Silk does not become more confusing on re-reading, but richer and more beautiful. I am listening with admiration as I see just how brilliantly Wolfe sets up the story from the very first sentence, making the onrushing events that overtake Silk seem inevitable. It’s a bit like an incredibly detailed short story.

Unlike these other two series, though, The Book of the Short Sun seems to require re-reading in order to understand the most fundamental aspects of the book, such as:

  • “Who is telling the story?”
  • “What happens in the story?”
  • “Who are the other characters in the story?”
  • “Which of these characters are people and should be accorded the rights of people?”

And as I have not even completed all three Short Sun books once, I still feel like I’m not quite ready to answer these questions. And I’m not really prepared to advocate for this trilogy like I have advocated for the other two, because I really have come to believe that this trilogy just isn’t written for everyone. It’s really written for a reader who wants at the outset to take on a multi-dimensional chess game with Gene Wolfe. And I’m not entirely sure, yet, whether it’s even for me.

There isn’t a lot of analysis out there on the Short Sun books, probably because they are so complex. Even though the trilogy is fifteen years old, I suspect that not very many readers have actually completed it, and of those readers, even fewer came away feeling that they understood it. I did find one interesting and, I think, correct interpretive note in the form of some incomplete notes on the Wolfe Wiki, which today seems to be off-line; I don’t even know who to credit these thoughts to, but they start off like so:

I believe we can take the old pen case as a metaphor for the old body Horn has brought back from the whorl. “At present it holds two quills, for I have taken the third one out. Two were in it when I found it in the ashes of our shop. The third, with which I am writing, was dropped by Oreb not so long ago.” To push the analogy, the three pens are three spirits: Silk, Pas, and Horn. The third, with which he begins to write this book, will be “dropped” before the end.

See http://www.wolfewiki.com/pmwiki/pmwiki.php?n=TheBookOfTheShortSun.TheOldPenCase (although as it exists in the form of a Wiki, that page may well have changed by the time you go to look at it).

I’d like to be able to sum up and render some useful final judgement on The Book of the Short Sun, but I simply can’t — at least not yet. Maybe I’ll be able to do so soon. For now, it’s just too big. For the moment let’s just say that if The Book of the New Sun is Wolfe’s Ulysses, I hope that The Book of the Short Sun is not his Finnegan’s Wake.

Next time I will to include some notes about Robert Borski’s book Solary Labyrinth. This is a book of short essays about The Book of the New Sun and the mysteries in that text, particularly the mysteries surrounding the identities and relationships of some of the characters. I re-read this work while re-reading The Book of the New Sun, to refresh my memory. Borski’s book is interesting, but in some ways, to me at least, not fully convincing. More on that next time!

Scorecard

Completed since last time:

  • Acceptance by Jeff VanderMeer
  • The Stainless Steel Rat’s Revenge by Harry Harrison
  • The Stainless Steel Rat Saves the World by Harry Harrison
  • The Stainless Steel Rat Wants You by Harry Harrison
  • On Blue’s Waters by Gene Wolfe (audiobook)
  • In Green’s Jungles by Gene Wolfe (audiobook)
  • Solar Labyrinth by Robert Borski
  • Harry Potter and the Prisoner of Azkaban by J. K. Rowling (bedtime reading for the kids)

In progress:

  • Return to the Whorl by Gene Wolfe
  • Nightside the Long Sun by Gene Wolfe (audiobook)
  • The Last Unicorn by Peter S. Beagle (bedtime reading)
  • A Hat Full of Sky by Terry Pratchett (bedtime reading)

Saginaw, Michigan
August 15, 2016

Two Interesting Games: Little Inferno and Human Resource Machine

As a guy who remembers a world before Pac-Man, I admit to having gone through phases in which I played a lot of video games. As a child my family had a game console for a time; not an Atari, but a Sears “Tele-Games Electronic Games Motocross Sports Center IV,” which had Pong-style games out the wazoo, and a deeply dumb motorcycle jump game. Back then you had to use a lot of imagination to translate the low-resolution, barely-animated game representation into something more vivid, but I had fun with it. It wasn’t like there were a lot of great video game alternatives. During the home computer years I was a big fan of Infocom text adventures, completing many of them and dabbling in programming my own text adventures (fortunately all lost). Graphics games were in their infancy by I played them. Graphics games on the TRS–80, in black and white with a resolution of 48 pixels by 128 pixels, were notably crude; remember that bit about having to use a lot of imagination?

Over the years I mostly was not a big gamer, although I went through some phases when I played a lot of games. In the early nineties, I played Doom. I had a brief infatuation with the PC-based Ultima games and played the hell out of several of them, including the two Ultima Underworld games. A few years later, I was a fan of some Nintendo 64 titles and I’ll never forget conquering the tough boss “Mad Jack,” an evil jack-in-the box, in Donkey Kong 64. I gradually migrated away from first-person shooter games towards racing and puzzle games, enjoying Mario Kart and beating Paper Mario and the sequel, Paper Mario: The Thousand Year Door as well as The Legend of Zelda: The Wind Waker.

When I moved to Saginaw and was living alone for a while I bought a few games from Steam, including Half-Life 2. It was Half-Life 2, particularly the “We Don’t Go to Ravenholm” episode, that put me off first-person shooter games, probably forever, but I enjoyed (and completed) World of Goo.

I’m sure I’m glossing over many games that were significant to me over the years, but the point of this introduction is to show that I’ve gravitated more towards puzzle games and physics games. I have never gotten into MMPORGs and modern, realistic first-person shooter games leave me cold. That makes me what hard-core gamers might call a “casual gamer.” I welcome the idea that the term is vaguely insulting — because to me the alternative is “someone who wastes far too much time playing games.” I don’t believe time spent playing games is entirely wasted — for example, I think the second game I’ll discuss below actually can hone some useful skills — but the returns diminish pretty quickly.

Since purchasing an iPad I never really found iPad games I thought were worth playing; adaptations of other games didn’t always work well on the iPad touch-screen hardware. But recently I was browsing the App Store out of boredom and found two games that I really like.

Little Inferno

The first is an oddball game called Little Inferno. The setting and plot is bizarrely simple (and simply bizarre). You’ve just received a brick fireplace, called a “Little Inferno Entertainment Fireplace,” made by the Tomorrow Corporation (which is the name of the actual company that made the game, by the way). You don’t have anything to burn in it, but you can order things from the company. They include a starter catalog. Everything is delivered right to you. The catalog is a mishmash of weird parody objects: broken toys, expired and discontinued food items, weird junk-shop finds, and the occasional amusingly explosive, infested, or toxic item. It’s first-person, and for most of the game you sit in front of the fireplace and burn stuff up, and order new stuff. Stuff is delivered in just a few seconds, with bigger-ticket items taking tens of seconds or minutes, but the game allows you to spend your bonus points on rush delivery. So you can indulge your impatience, and you quickly find that indulging your impatience makes you even less patient. That’s about it for the basic gameplay.

There’s a story arc that starts to emerge; you get mail, and you get weather reports. Apparently your community is suffering from terrible winter storms and they’ve been going on for some time. In fact, you never seem to actually leave your home, or eat or drink anything. To me, it’s a wonderfully weird satire of Amazon Prime. You earn money by burning things in your fireplace, which you can use to buy more things. When you burn “combos,” weird groupings of items with some symbolic or metaphorical relationship, you get bonus points. You can use the bonus points to order more and more things, and they arrive ever-faster. As you level up you get more catalogs, with more and more expensive items in them. The items burn in entertaining, and sometimes horrible, ways. For example, there’s a stuffed cat called Kitty Kitty Poo Poo. When you ignite it, it poops. A lot. It seems to be filled entirely with poop, which burns.

However demented and gross the game’s sense of humor, it was never quite as dark as I expected. For example, one of the required combos is called “Sorority Party.” I thought it involved the “Low Self-Esteem Action Doll” and the chainsaw, but that may be a remnant of watching one too many low-budget horror movies back in the eighties. It actually involves balloons, not chainsaws.

Eventually you level up enough to bring the game to a satisfying and surreal conclusion. I won’t spoil it for you. This game isn’t for everyone but it doesn’t take all that long to complete it, and I had fun.

Human Resource Machine

I discovered that the same developers have released another game, Human Resource Machine. Human Resource Machine is a bit difficult to describe if you aren’t already familiar with very low-level computer programming. If you’ve ever taken a data structure class, or an algorithms class, or especially an assembly language programming class, it will be familiar. You are an office drone, starting out in the mail room. You work your way through a series of rooms. In each room, your supervisor gives you an assigment involving sorting or filing or rearranging boxes, moving them from an incoming conveyer belt to an outgoing conveyor belt. But you don’t move the boxes yourself in real time; you don’t have direct control of your avatar. You can’t drag him around or make him pick up a box. Instead, you write a program, in a very simple assembly language, to control your avatar. Then you run the program. When you run it your avatar zooms around, executing the instructions. You can make your avatar run the program step-by-step, even stepping backwards, and change the speed.

The assembly language you are learning starts out very simply. Initially you have only two commands, one to take an item from the inbox, and one to put the item in the outbox. As the challenges get more difficult you get addition and subtraction, and jump operations, and conditional jump operations, and then load and store operations, and then indexed load and store operations, and then indirect indexed load and store operations. If you make it through the whole game you will have mastered the basics of assembly language programming. The Human Resource Machine instruction set is not a real instruction set architecture, but at their heart, instruction set architectures are very similar. So once you’ve mastered this one, you could presumably learn any real instruction set architecture, just as after I mastered the Z–80 (the microprocessor inside the Radio Shack TRS–80), it was relatively easy to master the 6502 (the microprocessor inside the Apple II). In fact the Human Resource Machine architecture is a bit like that of the 6502. It is a little more irregular than I think it should be. Some instructions leave objects in your hands, and some don’t (your “hands” represent a sort of accumulator, or common register used to do most operations including math operations). But real instruction set architectures all have their quirks.

If this game had existed when I was teaching the System Software course I taught at Saginaw Valley State University, and I could have arranged for the students to have access to it, I would have assigned it. It is pretty much the best attempt at “gamification” of programming I’ve ever seen. I especially like the way it teaches a very low-level language. Most programming environments you see online teach Python, or Lua, or JavaScript, or other high-level languages. It’s refreshing to see one that really gets to the bottom of how computer programs do their work.

Most of the basic problems are simple, but they get progressively harder. You have to invent some techniques to map high-level concepts to low-level instructions. For example, you don’t have an instruction to determine if two numbers are equal. But you have a subtraction instruction, and you can compare a value to zero. So you have to come up with the idea that you can check to see if two numbers are equal by subtracting one from the other. If the result is zero, they were equal. This is just one of many such techniques you have to work out.

To get to the end, you have to implement a sorting algorithm in assembly language. This would be a trivial library call in Java but in assembly language it is a fairly challenging program. I chose a maximally-inefficient version of a sorting algorithm known as “bubble sort.” It contains a lot of redundant operations, which made my little avatar go berserk for five minutes when I ran it. Some easy optimizations are possible, but the first challenge is just to get a program working.

When I completed all the required challenges, I started doing the side challenges, a parallel series of graded exercises. You can also try to maximize your points for each challenge. To get the maximum possible points, you must not only solve the problem correctly, but meet two optimization challenges: you must meet or beat a target for the minimum program length, and a target for the fastest execution. In some simple cases one solution will meet both objectives. But in many of them, the size-optimized program looks very different than the speed-optimized program. Perhaps not surprisingly, an enterprising person has set up a Github repository with optimized solutions. See https://github.com/atesgoral/hrm-solutions.

I’ve been programming computers since 1977 and although I met the requirements to complete the game, I still have not managed to beat all these assembly language optimization challenges. As the game says, some of them are quite difficult. But I did start make my own little implementation of the virtual machine and instruction set, written in C, which runs on an ATtiny 441 microcontroller. If you want to play with it, the code is here: https://github.com/paulrpotts/TinyHRM.

I had the idea, originally, that you might communicate with the tiny microcontroller running the code via the serial port, uploading the program and letting it run. But I’m not sure I will ever get around to that, since I am getting paid to write other programs, but at least I had some fun with it.

The game has cut scenes, and a concluding scene. Again, I won’t spoil it for you, but as a programmer about to celebrate my 49th birthday, I found the concluding scene slightly unnerving. It’s a great game and I highly recommend it, and I am looking forward to more releases from Tomorrow Corporation.

Saginaw, Michigan
September 26, 2016