Blog

How to Read a Peter F. Hamilton Book

There's a new PFH book, Salvation, I'd like to get to reading. Before that, I have a tsundoku in iBooks. So now's the time to read the Dreaming Void trilogy; these are sequels of sorts to Pandora's Star (excellent book about a really horrible alien, read long ago), and Judas Unchained (remember less than nothing about it; did I even read it? Maybe I was drinking a lot).

But there comes the rub: You can't just read a PFH doorstop. No, you need to study it, and take notes like a college class, because the concept of focusing on one protagonist and telling a linear story isn't his thing. If it was hard to write, it should be hard to read, is his philosophy.

At 17% through The Dreaming Void, I have the following notes (in Apple Notes so I can edit them anywhere); probably SPOILER, but a good example of my process. For dead tree books I made longer notes on everyone, with page refs, but since you can search iBooks there's no need anymore.

Dreaming Void

Places, Reality

Centurion Station: Near the Void
Ellezelin: Living Dream planet, Makkathran2 city.
Arevalo: Central Commonwealth planet, Higher. Daroca city.
Far Away: Base of the Starflyer
Lytham: Central world far from Earth
Oronsay: External world 100LY from Central
Fandola:

Places, Void

Querencia: Void planet
Makkathran: Main city
Ashwell: Smaller city

Species

Human: Higher, Advancer, Natural
Prime, Starflyer: Mind-controlling aliens
Anomine: Trapped the Prime
Golant: Humanoid
Ticoth: Predators, herds of prey
Suline: Aquatic
Ethox: ?
Forleene: ?
Kandra: ?
Jadradesh: ?
Raiel: Ancient, discovered the Void
Ocisen: BEM. Opposed to Pilgrimage
Hancher: Protected by Humans, enemies of Ocisen

Groups

Commonwealth:
ANA: "Advanced Neural Activity", mind pool of dead Highers
Free Market:
External:

People, Reality

Ozzie & Nigel: wormhole inventors
Inigo: First Dreamer
LionWalker Eyre: director of Centurion Station
Aaron: Blank on Makkathran2
Ethan: Conservator of Living Dream
Lady, Bad News: ?
Chief Cleric Phelim: Ethan's secretary
Corrie-Lyn: Inigo's former lover
Marius: ANA representative
Troblum: Starflyer fanboy, Higher
Mykala: 
Eoin: 
Yehudi: 
Kazimir Burnelli: First Admiral
Delivery Man:
Justine Burnelli: ANA representative
Gore Burnelli: ANA, old boss
Nelson Sheldon: ANA, security, Gore's co-conspirator
Araminta: Waitress, Niks, Colwyn City

People, Void

Waterwalker: Entered the Void
Skylord: ?
Akeem: Eggshaper
Edeard: Eggshaper apprentice
Salrana: Priestess

Five Games (and then some)

The following challenge/meme on Fediverse is interesting:

"If you had to recommend someone play 5 games to really get a feel for you/your tastes, what five would you pick?"

Videogames:

  1. Ultima II (1982)
  2. Hitchhiker's Guide to the Galaxy (1984)
  3. Alternate Reality: The City (Atari 800 version, 1985)
  4. Doom (1993)
  5. Elder Scrolls Online (2014)

Runners Up:

  1. Star Raiders (1979)
  2. Telengard (1982)
  3. Pitfall! (1982)
  4. Omega (1987)
  5. Llamatron (1992)

Tabletop:

  1. Dungeons & Dragons Basic Set (ed. Eric Holmes, 1977)
  2. Ogre (1977)
  3. Gamma World (1978)
  4. Tunnels & Trolls (4th-5th Ed, 1977-1979)
  5. Rolemaster (1980)

Runners Up:

  1. Star Fleet Battles (1979)
  2. Champions (1981)
  3. Stormbringer (1st Ed, accept no substitutes, 1981)
  4. Call of Cthulhu (1981)
  5. Kult (1993)

What I'm Watching: Ultraviolet (2017)

No, not the vampire movie, nor the shitty DRM video system. The Polish crime drama. It is all but impossible to search for a title like this.

A Buffy-like chick: blonde, vapid, argumentative, shitty family life, etc., except she's supposedly 30 instead of 16, is working as an Uber driver in Lódz, Poland, sees a girl thrown off a bridge. The cops call it a suicide, she disagrees, and starts investigating. Finds a quasi-secret society of "Ultra-Violets" (the explanation of the name is so ludicrous you have to watch to hear it) who hang out in a Slack with a purple backslash icon and solve murders while supposedly doing their real jobs.

Social media-solves-crime is not a bad premise for a show, even if mostly social media-causes-crime in reality, and the chat and screens are usually captioned well enough to make sense despite being in Polish.

Lódz really isn't grim enough for my "Grim Scandinavian Drama" taste, just a little run-down, not cheerful enough for it to be ironic like Death in Paradise. It's like setting a crime drama in Boise or Salt Lake City; death's a bit of a relief, but not an omnipresent gloom.

The acting's a problem. Buffy, er, Ola wavers from nonentity to annoying. The useful cop is barely present. There is less chemistry between them than between noble gasses in sealed glass jars. Mom's a crying stereotype. Older dude Henryk is not bad, he might be an actual actor. The dirty cop is either stoic or stoned. The "Ultra-Violets" (snicker) are only on-screen for a line or two at a time, mostly from behind.

If they got some acting lessons, this could be watchable; as it is, it's on the "occasional watch if I'm bored" list.
★★★☆☆

What I'm Reading: Software/Wetware by Rudy Rucker

I must've read Software on release in 1982 or in the next year; heavy stuff for a 12- or 13-year-old little mutant Mark. I've reread it a number of times since, and got more out of it each time. This time, it's notable how short and fast it is for so much information.

I guess I should mention, since some people are neurotic about this, there's a lot of sex, drugs, nudity, more sex, really weird drugs, cannibalism, and bodily functions. Also a lot of violence, but the people who are most neurotic about harmless, consensual sex or drugs seem to think murdering people is fine, respectable behavior. This is why you Humans freak me out and repulse me.

Software (1982): Cobb Anderson goes from crusty old drunk to immediately going along with ("waving") the Boppers' (AI robots he created and then freed from Asimovian slavery) plan to immortalize some Humans by the messiest process possible. Sta-Hi Mooney's given very short shrift here, much of what I remember of him actually comes from the next book.

The Bopper architecture and programming are discussed in depth, and the Little Boppers' war on the Big Boppers (centralization instead of anarchy) is surprisingly, pointedly relevant to current reality for a 36-year-old book. Since the book is set in 2020, and Cobb made the Boppers for Lunar mining, uh, we're WAY fucking behind on space and robotics in our shitty timeline.

The religion Personetics is super obvious as a scam, and yet Humans really fall for Dianetics (in my OMNI rereads, Dianetics is advertising every issue with this faux-serious tone), or for that matter any religion, which are all just scams to take your money and control you. And then everything goes sideways, lack of backup systems and over-controlling middle management ruin everything. Fin.
★★★★★

Wetware (1988): I read this just going into college to fuck my brain up. Probably haven't read the whole thing since then, skimmed it in parts. The first half following Sta-Hi, er, "Stahn" Mooney and a number of boppers in a city stolen from the boppers on the Moon, is great. FANtastic, full of weird drugs, sex, murders, people with rats in their heads. The Boppers are desperate and vindictive here, war and evolution pushing them to the edge.

Second arc about Della and her new "son" on Earth is annoying, weird, and… As Cobb says, "Della's parents are jerks, I'll tell you that much. What kind of couple is named Jason and Amy?" Cousin Willy Taze screwing around (sometimes literally) with AIs is the only redeeming part of this entire shitty set of chapters. The Gimmie (easily the best name ever for the Federal government) reacts only with murder and fear, like usual. While I mostly agree with the principles of "Manchile's Thang!", the free love equality cult, I dislike every part of the delivery.

Third arc back on the Moon, and the end of the Boppers, seems a little formulaic crime drama for a while, until it gets into what price Stahn's willing to pay for revenge and to recover his wife in any form. The weapon used is interesting; as our chips get more complex, side attacks like that look more practical. The moldies and Happy Cloak's return are all friendly and heroic here, which is… not how it'll be in later books.
★★★★☆

The first book is under 180 pages, and it flew past in a couple days; it's dense but fast, a lightspeed bullet to shatter your brain. Second's just over 200, feels much longer, and took me a couple starts; most of the good parts in 5 days, but then after the second arc I paused a couple weeks. Freeware is 300. Realware is another 315. And I recall these aren't any less dense. May need some lighter fare first.

What I'm Watching: Jack Ryan

Back in the Good Old Days of the Cold War, I read the hell out of the original 3 Jack Ryan books, and I love the Harrison Ford movies, considerably less the Baffleck "Sum of All Fears". The spinoff pulp books and shitty videogames, far less so. Amazon's now got "Tom Clancy's Jack Ryan" on Prime, let's see.

Slow start, but obviously a War That Never Ends in Middle-East thing.

Blank-faced drone John Krasinski as Ryan is generically skilled, has war flashbacks while he stares emotionlessly at a ceiling, writes "SQL queries" that pop up graphical displays. He's like someone's shitty PC in Millennium's End RPG, and I don't believe from his walking meatstick "acting" that this Ryan has a PhD in Economics, or even a GED, or really more than a brainstem.

Wendell Pierce (the Bunk!) is promising, but he's playing a last-chance-don't-fuck-this-up bureaucrat section chief, nothing exciting yet.

After a bit, Ryan is Proved Right as in all Jack Ryan stories, and dragged into the field from a party for a rich asshole & his generically pretty but vapid blonde daughter.

Interrogation and the vaguely placed prison are, uh, unpleasant, but nobody's being tortured. Yet. Bombs and guns always get into these, and it's fine but very console-shooter: Indistinct action around a squad shooting aimlessly (because without mouse you can't aim).

It all seems competently produced, poorly acted, and written by very unimaginative frat boys who've played too much Tom Clancy's Rainbow Seven. Long-dead Tom Clancy is the only real writer on the show, and this is "ripped from the headlines" by some necrophiliacs last employed on garbage like Lost.

I'll probably do another couple eps to see if the Bunk does anything good, but I hold little hope unless they replace almost the entire cast and writing room.

★★☆☆☆

Julia More Packaging & Code

I don't just drink coffee or booze, watch movies and Internet drama, and look cool. I code sometimes, too! Who knew?!

Carrying on with my experiment in Julia, packaging has another step needed to make references. For instance, Ansi uses Geometry, so:

Geometry/Project.toml:


authors = ["Mark Damon Hughes "]
name = "Geometry"
uuid = "e3172796-a620-11e8-2cbf-612649bb77f8"
version = "0.1.0"

[deps]

Ansi/Project.toml:


authors = ["Mark Damon Hughes "]
name = "Ansi"
uuid = "72992c94-a620-11e8-3d05-55611ea0dbd0"
version = "0.1.0"

[deps]

Geometry = "e3172796-a620-11e8-2cbf-612649bb77f8"

Ansi/Manifest.toml:


[[Geometry]]
repo-rev = "master"
repo-url = "/Users/mdh/Code/CodeJulia/Geometry"
uuid = "e3172796-a620-11e8-2cbf-612649bb77f8"
version = "0.1.0"

All the boldface code is what I wrote/copy-pasted, the rest is generated by juliaMakePackage.zsh. I may go ahead and make a tool to link projects, because it's so error-prone. In fact, I cheated, and made a single Manifest.toml which I copy to all projects so far, and can replace whenever something updates.

Anyway, this gets me to a nice state where I can write using Ansi in my project and it'll just find it. IIUC, if I move all the libraries to a public repository, I can just change the repo-url and the packages are downloaded into ~/.julia cache somewhere.

I still haven't followed up on making a binary application; the more I look into that, the jankier it seems, more like something to defer until there's an official solution. Putting a real UI on it is also something to work on, but that's much more doable.

Coding

I've written a lot more code, over 1000 LOC, not just screwing around with packages. Mostly this is enjoyable, it's a nice systems programming language. The ugly parts haven't yet driven me insane, they're just things to work around or ignore. Far less frustrating than almost any other new language; Rusty Nail In Your Head and Go Fuck Yourself Its Google aren't my favorites.

Strong typing really is a pain in the ass. Declare a variable or struct field foo, and it takes anything. Type it with foo::AbstractString, and you soon learn nothing is not a string; foo::Union{AbstractString,Nothing} is necessary to be nullable. Ick.

Enumerations

Enumerated types @enum are disappointing. They're a little smarter than C enums, but not as useful as Java enums. They just represent a value; but you have to cast them to Int every time you use them for their value, so too painful to use them as array indices. Or as characters, a thing I like a lot for debugging. And they're not easy to reflect on:

julia> @enum Terrains begin
               Ter_Floor = Int('.')
               Ter_Wall = Int('#')
       end
julia> Ter_Wall
Ter_Wall::Terrains = 35
julia> Int(Ter_Wall)
35
julia> Char(Int(Ter_Wall))
'#': ASCII/Unicode U+0023 (category Po: Punctuation, other)
julia> String(Char(Int(Ter_Wall)))
ERROR: MethodError: no method matching String(::Char)
julia> string(Char(Int(Ter_Wall)))
"#"
julia> # FFS
julia> string(Ter_Floor)
"Ter_Floor"
julia> # Surprisingly easy!
julia> instances(Terrains)
(Ter_Floor::Terrains = 46, Ter_Wall::Terrains = 35)
julia> # Shit, this is a named tuple, not a dictionary!
julia> useful_instances = Dict()
Dict{Any,Any} with 0 entries
julia> for v in values(instances(Terrains))
           useful_instances[ string(v) ] = v
           useful_instances[ string(Char(Int(v))) ] = v
       end
julia> useful_instances
Dict{Any,Any} with 4 entries:
  "Ter_Floor" => Ter_Floor
  "Ter_Wall"  => Ter_Wall
  "#"         => Ter_Wall
  "."         => Ter_Floor
julia> # JFHC

That was an annoying adventure to get a simple reverse lookup.