Saturday, September 15, 2018

The Week Ending Saturday, September 15th, 2018

Sunday

Iron Monkey

It’s been a difficult day. We stayed up later last night than we probably should have, and slept late.

First, we watched a movie in the basement, called Iron Monkey. This is a Kung Fu movie from 1993 and it’s a lot of fun, with the over-the-top flying moves and fight scenes that I love. Like a lot of Kung Fu movies, it also features characters with a strong moral code, fighting corrupt state officials and monks. there are only a few moments that make me a bit embarrassed to be showing it to my kids. There are a few painfully sexist gags where women get thrown around and used as punching bags. I’m not talking about the fight scenes that actually feature Jean Wang as Miss Orchid. She’s a great character. I’m talking about a late fight scene where a woman winds up throw around as collateral damage and literally goes richocheting off the bad guy. But it could have been worse — for the most part I thought this movie was fine for the kids. There are some terrific scenes of people cooking Chinese dishes, and scenes showing how traditional Chinese medicine was practiced. There are even some bits of music and calligraphy as well. I’m not sure how accurate these scenes were, but they were interesting. It wasn’t all ridiculously over-the-top flying fistfights, although there were plenty of those as well.

After that we sent the kids to bed but Grace and I stayed up a while longer. We got up late. I read some more of Icehenge. The second novella is really quite good, and continues to be better than I hoped.

We decided to take the kids to the St. Francis parish picnic, which was actually held indoors because it has been cool and rainy. That was a big potluck in the parish activities center. Grace made a terrific potato salad. It took us forever to get the kids ready to go, though; no one seemed to be able to find and put on decent clothes, a couple of kids couldn’t find their shoes, and then there was last-minute confusion with a car seat which had been swapped with a housemate’s car seat, and which was in her boyfriend’s car. But we made it and managed to get there in time for everyone to eat and for the kids to make it to some of the activities in the gym.

Afterwards we gassed up Grace’s truck and came on home, and started to work on putting away laundry, sorting laundry, and washing more laundry. It quickly became evident that the situation upstairs in the laundry room was a lot worse than we thought, with blankets and a forgotten load of wet items piled up there because Veronica apparently lost track of it. It was starting to get on towards evening. I hadn’t really prepared enough for a podcast; I had selected some articles to read, but hadn’t printed them out, hadn’t marked them up, and hadn’t even finished reading them. I realized I just didn’t have it in me to record and produce and upload a podcast tonight. So I wrote some notes on Facebook and Twitter apologizing for that. No show tonight. We will at leat start out the week with some clean laundry ready to go, though.

Monday

Last night was disjointed as we were off our regular schedule. We didn’t record a podcast. We spent a few hours working on laundry: folding it, putting it away, and trying to figure out what happened to some of our laundry that was left upstairs. Grace then left for a while to run a couple of errands. While she was gone I threw together one of our “such as it is” dinners — I heated up the rest of our tortillas, got out some salsa and leftover meatless taco filling made with walnuts, and a half-empty can of refried beans that was in the refrigerator. I scrambled a half-dozen eggs. I put that on the table and let the kids eat what they wanted. Elanor got a torn-up tortilla and bits of egg. When Grace got back home with more eggs and dishwasher packs, I scrambled another three eggs for her. I got the dishwasher loaded and going, and asked Veronica to do some hand-washing, and it was time to get ready for bed. Four of the kids had taken a nap late in the day, so bedtime was very unevenly distributed; Benjamin and Pippin were very restive.

In the fridge we’ve still got leftover roast chicken, another whole chicken, a bag of kale salad, and some top round we haven’t eaten yet. There’s a package of salmon burgers in the freezer, and we have a bag of little dinner rolls. We just stocked up on eggs. There’s a bag of brussels sprouts to shred or roast. There are potatoes in the pantry, and another bag of bananas that aren’t ripe yet but will be soon. There’s rice and oatmeal and chicken stock. So there’s plenty of food to get through the next couple of days. It’s just mostly not of the ready-to-eat kind of food. I will run to Costco again on Tuesday night after work to pick up a few things.

We are having some difficulties with our housemate, and I’m scratching my head as to what I want to write in this journal, which I’ve been making public. I’m also wondering if I should write about it in separate files that I keep private. I guess it depends on what I’m hoping to do, eventually, if anything, with this public text, and that private text.

In this public piece of writing I’ll just say that one big difficulty stems from conflicts over how we procure, prepare, and consume food.

Grace and I have long hoped to live in community, have tried to establish community, and have lived in community, both with our families of origin and with other people, at different points in our lives. We believe that all efforts to live in community must center around, and pivot around, preparing and eating food together. This is why co-ops of all kinds, extended families, religious orders, etc. all find ways to center and organize their lives around food. And that simple word, “food,” extends outwards in all directions — into our culture, our finances, our food choices, our desires to garden and grow our own food and to support food production in our community.

Trying to be in community with people who have fundamentally different values around food is hard.

There are other issues that have come up. One of them is the simple fact that our housemate’s boyfriend smokes, and that’s an ongoing problem. He doesn’t smoke in our house, but even the residue that spreads to everything he comes in contact with, and the people and things that are transported in his car, is a problem. It’s not even second-hand smoke; we’re talking third-hand smoke, or even fourth-hand smoke.

This past week, due to a situation involving transferring babies from their car to our car, and a sleeping baby no one wanted to wake up, Elanor’s car seat wound up in his car for a few days, and his baby’s car seat wound up in our car. We had to leave for the parish picnic with Elanor in his baby’s car seat in our car. Even our short exposure to that car seat — literally, to a thing that had been in his car while he he smoked cigarettes — left my throat raw and my voice hoarse, although I wasn’t coughing, and seems like it also left Elanor miserably coughing half the night. Elanor can get a nap today, but Grace and I can’t; I’ve got work, and she’s got a whole string of appointments.

Yesterday evening we got back Elanor’s car seat, and just a couple of days in his car left it reeking of smoke, too. So we had to disassemble it and take the cover off and run it through the washer, twice. The first time, Veronica forgot to add laundry detergent. It still smelled like smoke when it came out of the dryer. The second time, it seemed improved, so we reassembled it. But we’re wondering if actually might need to throw it out and buy a new car seat. Cigarette smoke residue is persistent. I can smell cigarette smoke on my clothes today, because I spent an hour in a car that also contained a car seat that had spent time in a smoker’s car. And smokers cannot smell it.

When we took a class on infant CPR at Mott, the respiratory therapist who taught the class described an incident in which an infant heart patient’s parent came into the room. There’s no smoking in the building, obviously, but there was smoke on the parent’s clothes. That cigarette smoke residue was enough of a respiratory challenge that the child went into cardiac arrest. She had to administer CPR and rescue the child. The parent in question apparently didn’t believe that this “third-hand” smoke could possibly be that harmful to the child, and so the next day it happened again.

I don’t think Elanor is actually that fragile — she’s been off all her medication for many months, and her vitals look good. It’s been over a year since her open-heart surgery and for the most part she seems to be quite robust, active, and healthy. But it’s an interesting correlation that just in the last week, she’s started to show health problems; we’ve been worried about pneumonia and infections. Her chest x-ray showed nothing worrying except a slightly enlarged heart, which I believe is normal for a child who used to have her particular congenital heart defect, before it was repaired; while waiting for infants with her condition to grow large enough to get through the the surgery safely, her doctors allowed her to develop a slight heart enlargement, on the grounds that it was safer than doing the surgery immediately after birth. She should “grow into it” as she gets bigger. And her blood tests showed nothing worrying, except a slight anemia. We’ll work on that with diet. So my only remaining explanation for her recent coughing is an environmental irritant. She could have seasonal allergies, I suppose, but I really don’t think that is the actual culprit.

I don’t think there’s any way we can convince our housemate to take seriously the idea that her boyfriend’s smoking could put our fragile infant with Down Syndrome and a repaired congenital heart defect into the E. R., or into the ground. She’s allowed to make her own choices about the environments she puts her children into. But Grace and I insist that we be able to control the environments our children are exposed to.

That’s all I’m going to say about this matter for the time being.

Icehenge

Last night and this morning I finished most of Icehenge. This book, which didn’t seem like it was all that promising, has continued to impress me more and more, and I now regard it as a sort of warm-up for Robinson’s amazing Mars Trilogy, and later works. The premise seemed dumb, but it’s not a dumb book at all. It touches on many of the same themes. One of the most prominent theme is Robinson’s attempt to answer this question: “What it would be like, given our limited human brains, to actually live to be several hundred years old?” He takes this question on quite seriously, and Icehenge explores how family relationships would change, how careers would change, how cultures would change, and how our own perception of our own lives would change.

I think this book would serve as a great introduction to several of Robinson’s later works, including the Mars Trilogy, Aurora, and 2312. I don’t think there’s as much of a clear through-line to his Science in the Capital series, which I have to admit I never finished, or his Three Californias trilogy, which I have to admit I never started. I don’t think I will ever finish the Science in the Capital series; it just seemed a little too much like other simplistic disaster potboilers that I’ve read. And I haven’t picked up New York 2140. You’d think, as someone very interested in anthropogenic global warming, I’d be interested in climate fiction. What I’ve read of this particular sub-genre hasn’t impressed me, though. This book is pushing me to dig deeper into Robinson’s older work.

I don’t know anything about it yet, but I’m very excited to hear that there’s a new novel from Kim Stanley Robinson, called Red Moon. It’s due to arrive in late October. When it comes out, I probably won’t be able to read anything else until I’ve finished it!

I just got a string of text messages from our realtor. So it’s time to close this file, take a deep breath and ask Dorothy Parker’s old question, “what fresh hell is this?”

Oh, That Fresh Hell

The fresh hell was nothing too unexpected; the showings of our old house this weekend resulted in no interest in a purchase.

Over lunch, I finished Icehenge. The ending is pretty satisfying, and succeeded in surprising me slightly; I thought that I might have the ending sussed out. Along the way I think I noticed two subtle references to other works: one, to Robert Silverberg’s Dying Inside, and another, to the short story by James Tiptree Junior called “And I Awoke and Found Me Here on the Cold Hill’s Side.” I think there are also some scenes that are stylistic shout-outs to William Gibson’s Villa Straylight. There may be other scenes that Robinson also had in mind, and I feel like there are, but I can’t quite put my finger on them.

Tuesday

I made pretty good progress at work and left late. The particular problem I’ve been trying to solve involves calculating wavelength given frequency. Given a frequency in Hertz, we can calculate the wavelength in meters by dividing the speed of light in meters per second by the frequency.

Things can get a little tricky when trying to do this by computer with very large or very small numbers. The speed of light is already a pretty big number, 299,792,458m/sec. But when working with frequencies of light that are more conveniently measured in THz than Hz, and wavelengths that are more conveniently measured in nm than m, we can wind up doing math on big numbers.

If we have a number like 191,500,000MHz, to get Hz we have to scale it up by 10^6. The result will be in m, and to get nm we have to scale it up by 10^9. Like so:

wavelength = 299,792,458m/sec / 191,500,000,000,000Hz = 0.00000156549586m or 1565.49586nm

Instead of scaling up the divisor and quotient we can just scale up the speed of light by 10^3 and get the same results — that is, divide 299,792,458,000 by our frequency.

Because our laser device can be tuned in increments of 1Mhz, we want to display the wavelength in nanometers with 5 fractional digits. We want a precise 9-digit number. But here’s where we start to run into a problem: the ARM microcontrollers in the device only support 32-bit integers and 32-bit single-precision floating-point. Single-precision floating-point doesn’t really provide that many digits of precision. If we do the math for 191.487767THz, we get 1565.59594. A more precise calculation using 64-bit floating-point tells us that the value should be more like 1565.59587. So that result is off by by 0.00007nm. The calculation is less precise than our laser is.

In addition, some adjacent frequency values will produce identical wavelength values. Values from 191.487768THz to 191.487784THz will all produce 1565.59582. So if the user is changing the frequency in 1MHz steps, the displayed wavelength in nm will appear to get “stuck”

We can’t fix this by, say, scaling up by 100 so that more of the digits are to the left of the decimal point. The problem is in the way floating-point numbers are implemented. They are stored as an exponent and a significand, and this gives us a very wide range of values that can be represented, but only 6 to 9 significant digits of precision. That’s because the significand has to be a binary number with a fixed width. So in this case, there just aren’t enough possible values. We’re getting values that are as precise as possible, but they aren’t precise enough for our needs. We want five significant digits to the right of the decimal point.

We ought to be able to do this using integers. Our frequency in MHz is already effectively an integer since we can only tune the laser in 1MHz increments. Working with integers, to get a wavelength value with five digits to the right of the decimal point, I want to start with six digits and round by adding 5 and dividing by ten. So we want our result to be a ten-digit integer. To get this we can scale up our speed of light value still more. For example:

wavelength = 299,792,458,000,000,000nm/sec / 191,500,000MHz = 1565495856fm

After adding 5 and dividing by ten, we’d have 156549586 in units of fm * 10. The LCD GUI could display this as 1565.549 86 (formatted with the space to separate the digit for readability).

There’s only one problem: we can’t work with integers that big.

Well, we can’t easily work with integers that big.

The Atmel SAM4 series has 32-bit integers. The compiler I’m using, for the Keil ARM-MDK, actually lies to me. The online help shows that it supports long long and claims these are 64 bit values. It will compile code written using unsigned long long. (I didn’t think the chip would magically grow 64-bit register, but I thought that maybe the compiler would do 64-bit math using a math library to provide 64-bit operations even though the hardware can really only work with 32-bit integers; it’s slower, but it certainly can be done). But no; it just lies to me. The code using unsigned long long compiles just fine, with no errors or warnings. I am able to specify 64-bit constants, and even 64-bit specifiers for formatting numbers with printf. But the generated code uses 32-bit values and so I get completely wrong results.

Finding that the compiler would accept unsigned long long produced a momentary feeling of victory, followed by a feeling of defeat as I determined that, no, it really was just pretending.

This is an absolutely egregious failure to correctly implement the C standard. I’m using the compiler armcc.exe version 5.06 update 5 (build 528), for anyone curious, part of the Keil toolchain MDK-ARM Essential Version 5.24.1. I could complain and file bug reports. But I don’t really have time to litigate this with my vendor; I’m just trying to solve a problem.

So this was discouraging, but I wasn’t sunk. There are algorithms that will let me do 64-bit division. The problem was finding one that works, isn’t too slow, and wasn’t difficult to port.

I messed around with some unattributed code I found, but couldn’t get it produce correct results. So then I turned to one of the thousands of books that are still packed in boxes in my basement. Fortunately because they are all catalogued in Delicious Library, it is easy to find the right box. The book is Hacker’s Delight, second edition, by Henry S. Warren. This is a terrific book; I used to own the first edition and liked it so much I bought the next one. You can’t go wrong with either one, but the second edition has a little more cool stuff in it.

Warren describes many, many algorithms in this book. The thing that makes it useful is that these algorithms aren’t theoretical, written for some theoretical computer. They are designed and tested to run on real machines, and tested and optimized for modern RISC instruction sets. Some of them are in pseudo-code, but he has a lot of sample code in C as well, and he’s tested this code.

Of course, “modern” is always relative, but Warren lays out his reasoning for why the algorithms are written the way they are. He’s done the math and worked out the timings, at the instruction level. He explains that if your microprocessor supports this kind of instruction, you can make the algorithm run faster this way, or if you are willing to use the space for a lookup table, it can run a little faster like so, etc.

In fact, part of what the book does is to make a case for what a future computer architecture’s instruction set ought to contain, if we want that computer to be able to run certain common operations efficiently. Another part of what the book does is to suggest what kinds of optimizations, compilers should be able to help provide, given certain hardware support. It’s really a deep dive into the relationship between algorithms, compilers, optimization, instruction sets, and hardware, wrapped up and presented as a cookbook of tricks to help the programmer do tricky things as efficiently as possible.

Anyway, the book has just the algorithm I need. It even has an implementation in C. And, the author allows people to use his code! You can even download it here. Even if you didn’t buy the book! (But I recommend buying the book; it’s a great book).

The code I’m using is available here. In particular, I borrowed his divlu2 function. That function takes four parameters:

  • Two 32-bit unsigned integers, representing the high and low parts of a 64-bit unsigned integer dividend
  • A 32-bit unsigned integer divisor
  • A pointer to a 32-bit unsigned integer remainder

It returns a 32-bit unsigned integer.

Warren has other algorithms that will work with bigger numbers, but I chose this one because it actually does what I need. My divisor and quotient will both fit into 32 bits. I made some minor tweaks to his code. I removed the remainder logic, since I don’t need it. I modified his C implementation to follow my “house style.”

My general policy, having been writing C code for a living on and off for almost 30 years, is to avoid goto. Some programmers use goto routinely in error-handling. I don’t. I use the structured programming concepts I learned way back in school. I just believe these constructs make code more readable in most cases.

But I’m not entirely dogmatic about it; I’ve used goto in C code on occasion, to break out of nested loops. The need for goto always suggests to me that I should consider refactoring my code to avoid it, but sometimes there just isn’t a simpler way to do things, so I use it. I think I’ve probably actually come across fewer than a dozen cases where I felt that goto was justified, in decades of writing code in C and related languages.

I guess my rule could be stated “don’t use goto in C code unless you have a very strong justification for doing so.”

This is not all that different than Edsger W. Dijkstra’s advice in his famous letter to the editors of CACM, “Go To Statement Considered Harmful,” in which he wrote:

The go to statement as it stands is just too primitive; it is too much an invitation to make a mess of one’s program. One can regard and appreciate the clauses considered as bridling its use. I do not claim that the clauses mentioned are exhaustive in the sense that they will satisfy all needs, but whatever clauses are suggested (e.g. abortion clauses) they should satisfy the requirement that a programmer independent coordinate system can be maintained to describe the process in a helpful and manageable way.

David Tribble has annotated Dijkstra’s famous letter, which might help us understand it:

Here, finally, we get to the crux of Dijkstra’s argument concerning the lowly goto statement. Essentially, Dijkstra argues that the “unbridled use” of goto statements in a program obscures the execution state and history of the program, so that at any given moment the values of the call stack and loop iteration stack are no longer sufficient to determine the value of the program variables.

This obfuscation is a consequence of the fact that an unconstrained goto statement can transfer control out of a loop before it is completed, and likewise can transfer control into the middle of a loop that is already being iterated. Both cases complicate the way in which the counters in the loop iteration stack are modified.

Tribble makes the point that Dijkstra is talking about the use of unstructured goto:

What Dijkstra means by the goto statement as it stands is otherwise known as an unstructured goto. That is, a goto statement with no restrictions about how it may be used in an otherwise structured language.

In my own code I’ll occasionally justify goto in cases where I want to break out of deeply nested code, jumping forward, and I can’t find a clearer way to express the code.

Of course, at the machine language level, most flow control involves jumps that are the equivalent of goto, either conditional or unconditional, and of course high-level code turns into code with this kind of goto in it. (I say “most flow control” because some architectures do provide instructions that implement loops without explicit goto).

So this suggests another possible justification: a programmer might want to use goto because he or she knows that using goto will result in a compiler generating a certain desired sequence of instructions, for performance reasons. I’m not a big fan of this approach, using C as more readable assembly language, because it tends to be very fragile. A minor compiler update or change to an optimizer can and likely will break the programmer’s assumptions. In these cases, I think it might be better to write a reference implementation in C without goto, and a platform- and compiler-specific implementation in assembly language, for maximum control of the implementation.

Warren uses goto in a couple of places like so:

again1:
   if (q1 >= b || q1*vn0 > b*rhat + un1) {
     q1 = q1 - 1;
     rhat = rhat + vn1;
     if (rhat < b) goto again1;}

He’s not using it to escape from nested loops; he’s using it to create a while loop, albeit a while loop with an extra exit condition at the bottom. So essentially he’s combining a while loop and a do loop. In C; there’s no:

loop_if ( condition 1 )
{
    /* Loop body */

} continue_if ( condition 2 );

Although — maybe there should be something like that? What if we had a language that supported this kind of loop, and we also had reversed versions of these statements:

loop_if_not ( condition 1 )
{
    /* Loop body */

} break_if_not ( condition 2 );

And what if we allowed the statements break, continue, break_if, break_if_not, continue_if, and continue_if_not to be used in the body of the loop?

Would those constructs help people better express their programs?

Then, we could also have a straight-up loop, using an unconditional loop keyword:

loop
{
    /* Loop body */
    /* optional break or continue statements or their negative versions can go anywhere in the loop body */

};

So we’d have some extra keywords; we’d have loop, loop_if, loop_if_not, continue, continue_if, continue_if_not, break, break_if, and break_if_not. But we could express a huge variety of loops, and we’d avoid keywords from Common Lisp, Dylan, and Ruby that I find hard to read, like unless. The equivalent of a C do loop could look like so:

loop
{
    /* Loop body */

} continue_if( condition_1 );

And what if we had a variant of break which used a label? That would pretty much cover all the loops I ever use, and the only conditions under which I would typically use goto. Although I’m still chewing over how to stick the label to a set of braces; I might like to put the label after the top brace, and I might like to use a Perl-like sigil as a cue to the compiler, and a label namespace. But I haven’t thought about the problem very hard yet.

Anyway, this is why they don’t let me design computer languages… but I am still harboring a secret plan to design and implement a language.

But anyway, let’s look at Warren’s code again:

again1:
   if (q1 >= b || q1*vn0 > b*rhat + un1) {
     q1 = q1 - 1;
     rhat = rhat + vn1;
     if (rhat < b) goto again1;}

There are some funny things in this code. Both conditions depend on rhat and b, and two “branches” of the first condition depend on b, so that’s three comparisons that depend on b, and two that depend on rhat. This suggests to me that there might be a way to combine these conditions. But for now I’m going to assume that if there really was a good way to optimize those comparisons, Warren would have done it, and so I’m not going to go down that rabbit hole, at least not today. (Did you ever wish you could split yourself into multiple clones, like Michael Keaton does in Multiplicity?)

Normally I’d write a loop like this, which executes zero or more times, as a while loop, and I’d use break to end the loop early. But this logic is backwards: the code goes back to re-evaluate the loop condition if rhat < b. We could do that like this:

while (q1 >= b || q1*vn0 > b*rhat + un1) {
     q1 = q1 - 1;
     rhat = rhat + vn1;
     if (rhat < b) continue; else break;}

But if we’re willing to reverse the comparison to rhat >= b, and I don’t see why we shouldn’t be willing to do that, we can just write it like this:

while (q1 >= b || q1*vn0 > b*rhat + un1) {
     q1 = q1 - 1;
     rhat = rhat + vn1;
     if (rhat >= b) break };

I took a peek at the generated assembly, and it didn’t seem to be inflated by this change, and I tested the function, and got the same results, so I’ll stick with this change to get rid of the goto statement. I think getting rid of it makes the underlying structure of this code fragment clearer; it’s a while loop with an extra exit condition. And I don’t see a good reason not to remove the goto statement.

I could spend the rest of the day profiling the slightly different versions of the function to determine if there is any significant performance difference at all, but for my present application that amount of work isn’t justifiable.

Ideally, I’d have a version of this function in optimized assembly language to use. Then I would just treat it as a black box in my code. But I haven’t been able to find one. I suppose I could work on writing one (but see again my earlier comment on splitting myself into multiple clones to free up time…)

Wednesday

Costco closes at 8:30 and I made it in the door at exactly 8:10 last night. I bought fruit, celery, pork medallions, lunch meat, rolls, a box of ramen for the kids, and a chicken pot pie. Unfortunately I didn’t have enough time to return all the returnable cans and bottles, so they are still rattling around in the back of my car. And I made the mistake of going to Costco while I was quite hungry, so I brought home a few extras that weren’t strictly necessary including a box of cookies, “Petite Palmiers.” I also bought some dark chocolate caramel candies, a bag of toasted chick peas, and a bag of toasted hazelnuts. I really do start to crave carbs, hard, as the days get shorter. I have to watch myself a little more closely; we didn’t actually need those things, although they will certainly be eaten.

Grace made chicken soup in the Instant Pot using the second chicken we bought last Friday. It was quite good. We’ve got a fair amount of leftovers, so Friday’s shopping trip shouldn’t need to be all that big.

Things have been difficult with our housemate; I’ll leave it at that for now.

While Grace was getting ready for bed, I read a bit more in Daughter of Dreams. I’ve finished the second of three parts of the novel. Things have gotten complicated as Elric, whose own body is an enchanted sleep, and who is now piloting Von Bek’s body, travels the Moonbeam Roads and meets his daughter, Oona. We’re getting into highly abstracted locations now, enchanted places, and I have to confess I am not really enjoying this part of the story quite as much as I enjoyed the earlier parts. If the third part is good, I will still consider it a good book. If the third part doesn’t improve and the story doesn’t end well, then I’ll consider it an interesting book that had a lot of promise but which didn’t quite work out.

I heard today from our realtor that she is showing the house again.

Grace and I continue struggling to try to figure out what to do with the house. I’m considering whether it might be possible to borrow a few thousand dollars to put in a furnace. That might make it simpler to lease the house as-is.

Thursday

The Saginaw house has been shown a few more times and there are more showings scheduled, but so far we haven’t gotten any new offers.

Last night we had a pot pie for dinner. The kids were begging for a movie afterwards but Grace and I were really not up for it and wanted to get to bed early. I read some of the kids a few more chapters of The Wild Robot Escapes and we sent them off to bed. Then I read a little bit more of Daughter of Dreams. Not very much, though — I was too tired to concentrate. So Grace and I did get on to sleep at a more reasonable time, about 11:30. We were woken up by Sam and Joshua making ramen for breakfast, and then Pippin screaming his head off, as someone apparently said something to him that set him off. I had breakfast at Harvest Moon. I should get paid tonight. Grace found the paperwork for renewing my driver license, which was behind one of the benches in the family room for some reason. I’d been wondering where it was. I need to get that paperwork done and also change my voter registration so I can vote locally.

I spent a good chunk of time working on what seemed like a simple task: getting our Amulet GUI to display a special character, the “plus/minus” mark. (There’s an HTML entity for it, &plusmn;, and if it works correctly in your browser, or you are reading this in some other derived format such as a printed PDF file, you might be able to see the character between the quotation marks here: “±”.

The standard Arial Bold 12 font that comes with GEMStudio doesn’t have this character; it contains a limited subset of the character from the Windows TrueType font. GEMScript has a number of strange limitations. It doesn’t handle escaped character codes in string constants, although it will do it in character constants.

What I finally wound up doing was copying and pasting the character directly into the string constant in the source code. That’s not something that I would ever consider doing in a more conventional programming language, like C, or Python, or Java, or JavaScript. In fact sometimes it works to put special characters in strings, but the C standard specifies that implementations are only required to support uppercase and lowercase letters, numerals, and a handful of special characters including punctuation, brackets, etc. (basically, everything printed on the keys of an American keyboard), and a few whitespace characters like tab and form feed.

GEMScript supposedly supports Unicode strings, but given that, it’s pretty crazy that you can’t specify Unicode characters in strings.

There’s a tool which will generate an Amulet font file from your installed Windows fonts. You can specify a range of characters to include. So I extended it a bit, to include the plus/minus character (it has the code value 0xB1). But it didn’t work right; my characters were all way too big, now.

I finally learned that the fonts that the GEM Font Converter creates are affected by my Windows accessibility settings. I had my on-screen text set to use “medium” size fonts, instead of the default “small,” because I’m fifty years old.

The idea that this setting would affect the fonts that the GEM Font Converter can retrieve from Windows is insane, but not actually surprising. Windows is a collection of layers and layers of historic hacks. Of course they just made it so that the accessibility settings simply scaled up the fonts that the Windows API provides to clients, rather than adding a new API or modifying an existing API to allow the client to indicate whether the client wants the raw font or the font scaled per the user accessibility settings. Microsoft pretty much always takes the route of maximum backwards compatibility, even if the results are surprising or confusing.

Anyway, that’s how you can waste half a work day trying to get your Amulet GUI to display a single special character. I don’t recommend it. (But the page finally looks just the way I want it).

Grayscale

As an experiment, I set my phone to show all images in grayscale. This is supposed to make your phone and the applications on it a little bit less addictive and sleep-disruptive. It seems so far like that is true, but it also seems like this setting makes the phone eat its battery charge a lot faster than usual. So I’m not sure I can leave it that way.

Friday

Last night we roasted the pork medallions from Costco and at them with kale salad. Then after a long delay trying to get everyone to brush their teeth, I took the kids down into the basement to watch another Kung Fu movie. This one was The 36th Chamber of Shaolin, from 1978.

Watching it, we had the same problem we had watching the last one: at a random point in the movie, the playback froze up, and I had to force iTunes to quit. After launching it again, I could play that same part of the movie with no issues. Technical problems like this are one of the reasons I don’t really like buying movies through the iTunes store, although I’ve been doing it since I still have a lot of iTunes store credit.

This movie is rated PG, compared to Iron Monkey which was rated PG-13, but this one actually feels more violent and includes scenes of blood. The blood is a pretty blatantly fake color (almost magenta), but it was a little surprising. We also have moderately convincing makeup showing gangrene and bruising. So I guess this movie makes the attempt to be a little more realistic, in that it connects fighting with violence and injury and even death.

The version available from iTunes is strange, in that it is both subtitled and dubbed. The dubbing doesn’t match the subtitles, so if you are reading along and listening it’s really laughably confusing at times. The movie also feels a little long, at almost 2 hours. But many of the training sequences are really fun. I was talking to the kids about their favorite rooms. My personal favorite was the one in which our hero has to walk through a room full of swinging sandbags, knocking them out of the way with his head. All around him, fellow students are slamming their foreheads into the sandbags and then falling down, dazed. I just hope this doesn’t encourage my kids to give themselves concussions.

The actual history of the Shaolin temple, and what was taught there, is a lot more mundane, although still interesting:

In the 5th century, an Indian Buddhist master named Buddhabhadra traveled to China to spread Buddhism, and by the year 477, he had become influential enough that Emperor Xiaowen of Northern Wei built the original Shaolin Temple for him to begin teaching Chinese monks. These are among the few facts of the early Shaolin that scholars generally agree upon.

But:

Over the ensuing centuries, the Shaolin Temple performed basically the same function as it still did into the 20th century. It was essentially a boarding school for boys. The younger the recruit, the better; students as young as 5 or 6 years old were preferred. They developed tremendous flexibility and agility, and studied Buddhism.

And:

In 1972, when American TV viewers first saw Kwai Chang Caine wrap his arms around the hot cauldron and brand himself with the marks, what they didn’t see was the rest of this elaborate test called the Wooden Men Labyrinth. But nobody else ever saw it either, because like so much of what we think we know of the Shaolin, it was the purely fictional invention of modern authors.

Ouch.

But still, I grew up occasionally watching Kung Fu, the television show, and my step-brother Tony liked to show me Bruce Lee movies. I’m a fan of Jackie Chan and an even bigger fan of the fantastically beautiful and artistic wuxia genre. While it’s important to be skeptical of the Orientalism and stereotyping that goes into these films, I love the tales of legendary heroes fighting corruption and injustice with humility, tenacity, bravery, and discipline. I’m a big fan of Crouching Tiger, Hidden Dragon, and Hero, and House of Flying Daggers. I’m curious about The Forbidden Kingdom, although the reviews aren’t terribly good, and Curse of the Golden Flower, although the reviews for that one also aren’t very good, and it is rated R, so I don’t want to show it to the kids. I’m also curious about The Assassin (the 2015 film), and Dragon (the 2011 film), although The Dragon is also rated R. Are there any more I should be looking for? How are the twenty-six(!) old Zatoichi films? How is the 2003 film? How is Tai Chi Zero?

Some of these are available via the iTunes store, and I still have a credit, so maybe we’ll try some more of them.

I’d like to pick up the 2013 Criterion Zatoichi set, with 27 discs(!), but that’s not really in the budget.

If you are wondering what I’d like for my fifty-first birthday, besides “selling the old house,” that’s it: the Criterion Collection Blu-ray set called Zatoichi: The Blind Swordsman. My kids and I would watch the hell out of those. In fact I thing those movies would be great to show on Potts House movie nights, when we get our basement set up with a projector or a big screen and enough chairs to have folks over to have dinner and watch movies, also known as “chili and Netflix.” But unfortunately the very basic basement home theater we hope to set up is another one of those goals, like beds for our children, that keeps receding into the future, as we continue to fail to get our finances under control.

There are three showings of our old house today. Grace and I are praying that one of these showings will turn into an offer. We just had to pay choir tuition for two of our sons and it is a big expense. We still haven’t received our last reimbursement from Liberty Mutual. I got paid overnight, and today I am making a credit card payment; I have been setting aside money from the last three paychecks to put towards paying down one of our two credit cards. But it’s discouraging when we just had to charge something that is bigger than our payment. It means our debt situation continues to move in the wrong direction.

For lunch I had a grilled cheddar and marmite sandwich with a side of pickles and olives, and a cherry Italian soda. It was tasty but like anything involving marmite, damned salty. So I’m guzzling extra water and hoping I haven’t damaged myself. While eating I read two more chapters of Daughter of Dreams. The story does pick up a bit in the third section; we get more scenes with fighting, and Elric doing things, like summoning Meerclar, Mistress of Cats. So I’m feeling optimistic about the rest of the book.

Saturday

Last night after work I went to Costco as usual. It was a pretty standard load of groceries, except that I’ve been adding red meat at Grace’s request. So I got some beef and some lamb chops. This adds quite a bit to the final bill, unfortunately. Grace and the kids did not make a pot of rice so when I brought salmon home we had salmon, salad, and one of the giant Costco pumpkin pies.

After dinner and a half-assed cleanup job we took the kids down into the basement. They wanted to watch Ninjago, but I’m kind of sick of Ninjago, so I put on the second disc of our DVD set for the original Star Trek animated series. One or two of these episodes we had seen before. So I wound up going into my little office room in the basement and continued the ongoing project of cataloguing books. I started a new box with all the Elric books I’ve finished and a couple of recent Library of America arrivals.

I’m reusing a 12" by 12" by 12" book box. This is unfortunately the last empty one. If I’m going to have to continue to store most of my books while still slowly acquiring new books for much longer, I’m going to need to order more boxes. The plan for the last couple of years has been to get everything shelved, or at least large sections of the collection shelved, and do some purging as we un-box and shelve books. I suppose we could also try to purge while everything is still in boxes, but that sounds incredibly tedious: look through the online catalog, identify some books we’re willing to get rid of, take apart the stacked boxes to pull out the ones containing the books to purge, open up the boxes and take them out, leaving loose space in the boxes which I would presumably fill with newsprint or something like that, and then re-stack everything.

My Mac Pro seems to be running slower and slower and it’s been hot in the basement. The Delicious Library program just crawls, when you do things like add a shelf. I don’t know why it is so slow, but it makes me wish I hadn’t put my whole book inventory into this program. Maybe I should have stuck with a simple spreadsheet, or just flat text files. The integeration with Amazon is nice, though; I like the ability to look a book up that I have in my hand, in Amazon’s database, and then find it and add it to my library with one click. The bar code scanning functionality is nice, too, although it tends to fail sometimes, which I think is oten more an artifact of the uneven and inconsistent bar coding on products themselves, rather than the scanning code.

I have a suspicion that the boot drive is going, or is at least very bogged down. Maybe the CPUs are throttling? But I don’t remember that ever happening before, even when I had the machine running in my hot attic office in Saginaw. I have blown out dust pretty recently so it shouldn’t be a matter of clogged airflow. And the fans aren’t blasting.

I am really not sure why it is so hot in the basement. Last summer even when it was hot outside, the basement stayed cooler than the first floor. I think it may have something to do with the old dehumidifier we are running down there; it puts out a lot of heat, and the basement level may be so tightly insulated that the heat can’t escape. I need to make sure everything gets a fresh backup. I haven’t had the money to replace drives, but it’s overdue.

While I was waiting for Delicious Library to catch up, I looked up movies this weekend. I saw a special movie scheduled, with just two showings: Dragon Ball Z: Broly - The Legendary Super Saiyan. Knowing almost nothing about the whole Dragon Ball Z franchise, I thought maybe I would take the kids. I’m trying to get them interested in animation and film that is not all part of their current obsession, Lego Ninjago. This movie is apparently in limited release as part of the marketing campaign for a a forthcoming movie, Dragon Ball Super: Broly, which I also know next to nothing about.

After the kids finished four old animated Star Trek episodes, they were bored with it and we finished up and came back upstairs. We managed to get to bed at a fairly reasonable time. This morning we didn’t sleep all that late. Grace drove down to Milan to pick up some bread at the Mother Loaf bakery. It turns out if you get there before noon, they have a lot more bread! (That’s sarcasm… we’re just always running late to do everything). We got several loaves today, including a breakfast brioche which was fantastic. While she was getting bread, I hauled out the griddle and made pancakes. It is still really hard to get good results on our cast-iron griddle. Even letting it heat for five minutes, it’s too cold for the first batch, and then too hot for the second batch. So the pancakes were unevenly cooked, although not too uneven to eat.

I took the kids to the movie. I had not really intended to take Benjamin, but he was unhappy at the last minute and I wanted to avoid a meltdown, so he came with us. When we got into the theater, the trailer for the new Broly movie was playing, but there was no sound. Some of us in the audience spent a minute or two entertaining ourselves doing our own voiceover, karaoke, and foley. But the sound remained off, so I walked back down towards the lobby and told the ticket-taker about it. He called someone on his radio. After a few more minutes we had sound, but we had missed a few minutes, so we didn’t really know what was going on. And that situation sort of continued through the movie. Most of the movie consists of big, dramatic fight scenes, which I expected, but I was expecting a little more plot and story. Maybe Dragon Ball Z is the wrong franchise for people who want plot and story.

Anyway, Wikipedia has a plot summary that explains the part that didn’t have sound:

On his planet in the Otherworld, King Kai senses the destruction of the South Galaxy by an unknown Super Saiyan, telepathically contacting Goku upon realizing that the North Galaxy will be targeted next. At that moment, Goku and Chi-Chi are sitting down having an interview at a private school which they hope Gohan will attend, Goku abrupted uses Instant Transmission to reach King Kai’s planet and get the entire story.

Back on Earth, the Z-Fighters are having a picnic in an unknown peaceful area when a spaceship lands and an army of emerging humanoids greet Vegeta as their king. Their leader is a Saiyan, Paragus, who claims that he has created a New Planet Vegeta and wishes for Vegeta to accompany him in order to rule as the new king. Vegeta initially refuses, but agrees after Paragus tells him that a being known as the “Legendary Super Saiyan” is running rampant throughout the galaxy and must be destroyed before he comes to Earth. Skeptical of Paragus’ story, Gohan, Trunks, Krillin, Master Roshi and Oolong go along with Vegeta.

So. The drawing style is all over the map, constantly shifting, which is fun. There are a lot of explosions, and the way the characters fight and smash each other and the scenery seems quite reminiscent of Akira. None of us really enjoyed the film all that much. I’m going to go out on a limb and say that hearing the first few minutes wouldn’t really have helped. Joshua described it as “all abs and eyebrows.” The movie was mercifully short, and I was grateful for that. Sam and Joshua think it could have used more dialogue and more story. I guess this wasn’t a good introduction to the Dragon Ball Z franchise. Maybe I’ll poke around in the iTunes store and see if there’s something else.

After the movie Grace and I put my old aluminum-frame Marin mountain bike, which I used to use for commuting, in the back of my Element, and took it to a local bike shop. The bike has been in storage for about ten years. Sam is behind on learning to ride, so I asked them to remove the pedals, so he can use it as a balance bike, and then maybe after a while we can put the pedals back on. I am embarrassed to report that I actually didn’t know that Sam could not yet ride a bike. We have a bunch of bikes and I see the kids riding all the time; I just thought he was riding, too. This is what happens when we’ve been living in “crisis mode” to one degree or another for about five years; we’ve been putting off every expense, including keeping the kids in rideable bikes. For a year and a half, I was only living with my family half the time, and the kids weren’t even playing outside. And since we’ve moved, it feels like all I’ve done is worry about money and try to figure out what we are going to do with the old house.

He’s tall enough now to stand over the top tube, which was a little startling. So they will check out the inner tubes which may well have dry rot by now, brake pads, etc. The bike was decked out for commuting, with a water bottle cage, frame pump, lights, lock, and upright handlebars. So I stripped some of that stuff off of it. I guess I’m giving up hopes of ever riding it again.

I used to be so into bikes — reading bike magazines, taking road rides on weekends, trail riding occasionally. Somehow all that ended, for various reasons. One reason is that most of the bike makers that I really liked, such as Cannondale, stopped making bikes in America, and I’m still disgusted about that. Another is that starting about 2001 we moved to places that I didn’t find to be very bike-friendly. I never found long road rides around Saginaw like I used to have in Ann Arbor. While I used to love commuting from my old apartment on West Hoover in Ann Arbor, to the medical campus, when we moved out to Medford, there didn’t seem to be a good, safe route to my job on South Industrial. Then in Saginaw, I worked from home at first, and later had a 45-minute commute to Dow in Midland, which would not have worked by bike at all. And now I’m about 13 miles away from my job, at least as I-94 runs. That doesn’t seem all that far, but I really can’t imagine a safe bike route. That part of town is extremely hostile to cycling.

So maybe Sam can use it, now. But I really have to find a way to get some regular exercise. My regular walks in downtown Saginaw were doing a lot to put a floor under my physical health and prop up my tendency to fall into depressive spirals in times of great stress. And I am getting nearly no exercise at all, other than the occasional shopping trip.

Joshua has been asking to learn how to play electric bass. So I’m going to get him set up with my old bass downstairs and give him access to a lesson CD and book. We’ll see if he actually shows any inclination to work at it.

I invited someone I know only through Twitter, “@verysmallanna,” to join us for a podcast episode. She’s a pastry chef and, I think, a millennial, in New York City. She has a podcast with a couple other folks, the Bread Line Podcast. It seems we have some common interests. So I’m excited to talk to her. She’s free to record on Tuesday or Wednesday night, so we’ll try that.

I’m not sure yet what we’re going to do for tomorrow’s show.

A few days ago, my father sent me a picture which was sent to him by a relative; it shows my family in Washington state. I’m wearing an R.E.M. concert t-shirt. Because of the t-shirt, and because of Google, and my memories of the show, I was able to place the exact date. I was seventeen years old. The show was at the Paramount theater in Seattle, July 12, 1985. I would have been 17, and this would have been the summer between my Senior year in high school and starting college in the fall. I don’t remember a lot of details about that trip, but I just happen to have kept a journal, which I still have. It’s short on dates and times and locations, but contained enough detail to remind me where we were, and when. I should transcribe it and find some extracts that I can add to the piles of writings that I’m trying to hammer into book-length manuscripts.

Books, Music, Movies, and TV Mentioned This Week

  • Dragon Ball Z: Broly - The Legendary Super Saiyan (1993 animated movie, 2018 Fathom events theatrical release)
  • The 36th Chamber of Shaolin (1978 Hong Kong Martial Arts movie)
  • Hacker’s Delight second edition by Henry S. Warren (used as a reference)
  • Iron Monkey (1993 Hong Kong Martial Arts movie)
  • Icehenge by Kim Stanley Robinson (finished)
  • The Wild Robot Escapes by Peter Brown (bedtime reading in progress)
  • Elric: The Moonbeam Roads (Gollancz, 2014) (omnibus volume containing 3 novels; the first, Daughter of Dreams in progress)

Ypsilanti, Michigan
The Week Ending Saturday, September 15th, 2018

Saturday, September 8, 2018

The Week Ending Saturday, September 8th, 2018

Sunday

I read “The Flaneur des Arcades de l’Opera,” the Elric story. This one is actually a “metatemporal detective” story, and it’s a big mess of overlapping tropes: seven or eight characters, alternate history, multiverse stuff, Moonbeam Roads, the Cosmic Balance, Edwardian-era settings and clothes, etc. The Elric character is an avatar of Elric in a different plane, with a sword-cane that is somehow an avatar of Stormbringer. It has some nice descriptive language and settings, but it really just seems like there is too much crammed into this thing — I suppose you’d call it a “novelette,” as it is a long-ish short story broken into chapters, but doesn’t seem long enough to be called a novella. Whatever you call it, I enjoyed some of the bits and pieces, but there was just too much flying by, too fast, to care about the characters and fear the threats they are fighting.

On Saturday night I was planning to read more of The Conquest of Bread to Grace but the kids were very slow to quiet down, so I couldn’t read out loud. Instead I started reading the last, giant volume of Gollancz Elric stories, Elric: The Moonbeam Roads. The first novel is Daughter of Dreams, originally known as The Dreamthief’s Daughter.

I am a little suprised to say it, but I’m really enjoying this novel. The writing is tighter and rich with symbols, visions, and dreams, and feels like the work of a more mature and settled and confident writer. It’s an Elric story, but, eliptically. The Melnibonéan sorcerors, as part of their education, lie on dream couches and take drugs that allow them to experience dreams that, subjectively, last tens, hundreds, or thousands of years while only a day or two of time passes in Melniboné. In this novel the protagonist is an albino aristocrat, Ulric von Bek. This Ulric is the son of the protagonist of the earlier Moorcock novel, The Warhound and the World’s Pain. He seems to be an incarnation of Elric, or else maybe Ulric is dreaming that he is Elric, or maybe Elric is dreaming that he is Ulric.

The precise nature of their connection is a bit mysterious at this point. While in the metatemporal detective novelette I found that annoying, in this context, where the story elements are stripped back and everything feels less crowded and frenetic, I don’t mind it at all. I also think it is less frustrating because we are discovering von Bek’s overlapping identities along with him. This novel is deeply entangled with Moorcock’s Eternal Champion themes and characters that crop up in many different works under many different names. As I’ve only read his Elric stories, I really don’t know very much about all this, and apparently the rabbit hole goes quite deep. In some of Moorcock’s novels we have characters that are almost, but not quite, identical, as they seem to exist in separate but very similar planes. In the Multiverse wiki, we learn about Ulrich von Bek, whose first name is spelled slightly differently. The bold annotations are my additions:

There is something curious about Ulrich von Bek.

The Dreamthief’s Daughter (also known as Daughter of Dreams) is about Ulric von Bek, who was living in the 1930s and at odds with Nazism. He’s locked up in a concentration camp in 1935, but soon escapes and thereafter has heroic adventures alongside Elric, an Eternal Champion, and falls in love with the elfin Oona.

Meanwhile, The Dragon in the Sword is about Ulrich von Bek, who was living in the 1930s and at odds with Nazism. He’s locked up in a concentration camp at some unknown time, is freed in 1938, and then escapes into the Middle Marches in 1939 after he tries to kill Hitler and thereafter has heroic adventures alongside Erekosë, an Eternal Champion, and falls in love with the elfin Alissard.

Fortunately, it doesn’t seem like I really need to solve all these puzzles to enjoy this novel. And because these novels form an intricate knot and overlap in time, I don’t think it’s really necessary to read them in any particular order. So far it’s really quite engaging, and a novel about the rise of fascism in Germany seems quite relevant these days.

I didn’t notice it initially, but the Gollancz omnibus edition has an unusual property. It’s apparently printed on paper that has a lot of ultraviolet-reactive dye in it, the same kind of stuff that is in some laundry detergents and which makes clothes look “whiter than white” — they emit more light than they (apparently take) in, because we can’t see the ultraviolet light they receive, but can see the visible light they give off. The effect is that, when reading it under our LED room lights, the paper gives off a faint purple glow. It is visible mainly where the paper curves into the binding, and so there’s a shadow there — a shadow where a faint purple glow is visible. I managed to take a picture of the effect, although it doesn’t look as bright to the camera as it does to the naked eye. I have to believe that this was a deliberate design choice, for a book with a title that mentions moonbeams!

We were slow and sluggish to get going on Sunday morning. I eventually made pancakes and bacon. There was a Huron Valley DSA picnic at Prospect Park in downtown Ypsilanti. We took the family. We didn’t bring any food, but as we expected, there was more than enough food, and at the end of the picnic folks were trying to figure out what to do with it all, so we didn’t feel too guilty for mooching. The kids played in the park. It was breezy, which make the hot day feel much more bearable, but it was making life difficult for the folks who were trying to grill burgers. We don’t really know the DSA folks all that well yet, and even among socialists I’m just not very good at socializing. But we spoke to a few folks, and the kids had fun. Joshua tells us he made four different friends. I was wearing a t-shirt that said “C.O.W.” (for College of Wooster). One guy there recognized the shirt and it turns out he was a college of Wooster alumnus, class of 2009 (graduating twenty years after I did!)

I forget his name, but I should see if I can get in touch with him; maybe he’d like to join us on the podcast, to talk about millennial economic issues?

Before we left for the picnic, Grace put a loaf of customized banana bread into the oven to bake. We were trying to use up a number of very bruised bananas that no one was going to want to eat. The “customization” was the addition of the leftover taco meat substitute we made for last Saturday, which was made from ground walnuts and contained some of our cayenne chili peppers.

The result was banana bread that left my mouth burning slightly.

The combination wasn’t really bad, but just a little disconcerting. The kids ate it all, but no one was really excited by the flavor combination. When trying to think about how we might improve it, all we could come up with was “take out the chili peppers and just use the walnuts.” That would yield a pretty standard banana bread with walnuts. In other words, we couldn’t really think of a way to improve on a basic banana bread with walnuts. Maybe add small chocolate chips? I don’t know.

We’ve had some heavy rain in short bursts over the last few days, and I’m grateful for that. I think we’re still way behind on rain, because the storms haven’t lasted very long. And it is showing us that our gutters are all screwed up.

I didn’t have a good plan for the podcast — or, rather, I had two many articles and things to talk about, but no ideas that were well-organized. I considered writing an essay about McCain, but didn’t get it done. Fortunately our friend Elias Crim was available, so Elias joined us via Google Hangouts last night. It wasn’t a very long conversation. It was under 90 minutes. So I was on track to getting the show completed fairly early in the evening. But I ran into a little problem. The hard drive that holds all the Logic projects was full.

I had not even noticed that it was getting full. So I had to transfer a number of projects to another hard drive. That took a long time. I moved most of the podcast projects from the last year. That came to about 100 gigabytes of data. That freed up enough room to work with or now. For the last few years I’ve been planning to buy some new, larger hard drives, but while the house is still our financial responsibility, it hasn’t been a high enough priority, so I’ve been getting by with older, smaller drives.

I can get bigger drives, but if I am going to continue to create 100 gigabytes or more of raw recordings a year, that’s going to add up. Drives are cheap these days, but everything I consider worth keeping, I have to consider worth backing up, and that requires at least two backup drives for each working drive. I should give some serious thought to a formal retention policy. I should probably just go ahead and delete all the raw files from the podcast projects, and keep the finished WAVE files that I use to create the MP3 files. I don’t think I’m ever actually going to need or want to remix or re-edit the podcast episodes. I don’t think my kids are going to want to open old Logic projects (and it probably won’t even be possible without a lot of software archaeology). But I still have a hard time deleting old work.

Dinner was a pot roast recipe, modified. The original recipe called for instant onion soup mix and a can of pre-made cream of mushroom soup. Several of us aren’t eating dairy. Grace put the recipe together with dried mushrooms and coconut milk and other things we had on hand. It was pretty tasty, although the coconut milk “broke” and curdled a bit.

After finishing the show about 1:30 a.m., I did some kitchen cleanup and got to bed quite late, not until about 2:30 a.m. I read a little more of Daughter of Dreams while Grace got ready for bed. I’ve finished the first four chapters. Still, I do want to get back to The Conquest of Bread. I’d like to be able to talk about Kropotkin a bit on an upcoming podcast episode.

Monday

We haven’t been getting good news about offers on the old house. Our realtor tells us that one guy who viewed the house said he would consider offering us $20,000. And she had showings yesterday, but from these showings we only got one offer, for $60,000. I have to look at the offers; I think this might have been another offer submitted by the folks that previously wrote an offer for $70,000. All this is not encouraging. As I mentioned on the podcast, “we’re in deep trouble.”

This morning (well, it was closer to noon) I made a pile of paleo pancakes with the paleo pancake mix. I used up the rest of our blueberries. We’ve been trying to use them up, because some of them have been in the refrigerator too long.

It’s about 2:20 p.m. and we had another brief downpour. We were planning to grill this afternoon. I have buns, and I was going to grill some salmon burgers and some black bean burgers. But I’m not sure the weather is going to cooperate. And really, I feel like I could use a nap. But first, Joshua wants to check his e-mail.

Tuesday

It rained on and off repeatedly for much of the day yesterday and so we did not grill out on the deck. The day had a feeling of disappointment, frustration, and helplessness about it. I felt like I spent half the day cleaning up the kitchen. The situation with our old house is weighing on me, every minute. Our financial situation is weighing on me, every minute, and leaving me constantly nervous. One thing went better this long weekend, though: I did not feel constant heartburn. So that was an improvement.

For dinner I toasted buns and baked black bean burgers. These burgers tend to be dry and so need a lot of toppings, like guacamole. I ate mine with sauerkraut and mustard. There was nothing wrong with them but after imagining all weekend that we would cook them on the grill, what we actually made was bound to seem a little bit disappointing. We ate them with more of our favorite kale salad from Costco. We made a dozen burgers, but we only ate eight of them. So I packed up two bare black bean burgers on buns and put them in a glass storage container alsong with two unopened packets of guacamole to bring for my lunch today. The lid would not fit on the container, so I wrapped it in plastic wrap and put it on the top shelf of the refrigerator, hoping I would remember to bring it.

Elanor was a bit off, yesterday, and so we’re watching her closely. She did not feel feverish, but just slightly clammy. I can’t think of a better way to describe her but “spaced out.” She would lie down for a nap, but not really sleep, just sort of stare into space. She sat in her chair and drank from a bottle of water and ate some black bean burger and guacamole, but she did it sort of robotically, without whacking the table to demand more and her usual yelling and waving her arms to communicate. She was wetting diapers and seemed like she was plenty hydrated, so we were not really that worries, but it wasn’t like her.

Later in the evening, she went off to sleep and seemed to be sleeping normally. This morning before I left for work she seemed a bit more like her old self, and smiled at me. Grace will keep a close eye on her today. We are hoping that maybe she was just fighting a virus, or maybe is having an immune response to the vaccines she received a week ago. I feel perhaps just a touch feverish today and so maybe I’m fighting the same virus. That might help explain why I was feeling pretty listless myself yesterday.

Before bed, I read Joshua and Sam a few more chapters from The Wild Robot Escapes.

While Grace got ready for bed last night I read more of Daughter of Dreams, finishing the first part of the novel. Things have started to go magical, and I’m pleased to say that the transition happens smoothly, and pretty convincingly. Moorcock still has lots of pages in which to screw up this book, but it remains really enjoyable. Our protagonist has gone down into an underground realm, which borrows a bit from the hollow-earth world of Burroughs’ Pellucidar stories, a bit from the giant underground sea imagined by Jules Verne in Journey to the Center of the Earth, and a bit from stories about the lost continent and civilization of Mu. Moorcock puts his own spin on these underground world concepts, and I really like what he’s done with the place.

This led to me thinking a bit about the nature of inspiration and “early” work versus “late” work. I’ve come to think of the early Elric stories, written by a very young Moorcock, as genuinely inspired, ecstatic work, written under the influence of the genre and the language. That’s one way to write great work: in a blast of youthful energy and inspiration. But it’s not the only way to write great work. One can also revise a great work into existence, outlining it and drafting it and diligently working it and re-working it until it is also glistens. It might not have as much of the raw exuberance as the first kind of work, but it can be as satisfying, or even more satisfying.

What doesn’t seem to work well is trying to write in the hot blast of inspiration when the inspiration has left. I believe Moorcock’s mid-career — and it seems like he had a mid-career spanning decades — fall into this hole. He wrote them quickly for money, but the inspiration and drive that used to let him write so quickly peter out as a writer’s internal editor grows in knowledge and prowess. And stretching out the short works into long works didn’t really do them any favors, because they didn’t really have enough structure and polish to be successful long works.

I think the real tragedy of Philip K. Dick is that he never really developed a later style. For whatever reason, and his biographers supply lots of them, from drugs to mental illness to physical illness, Dick continued to work as he did when he was very young, writing in binges, even as his ideas demanded more serious and sustained treatment. And so some of his greatest works like Do Androids Dream of Electric Sheep? are hot messes of brilliant insight and world-building combined with poor editing and riddled with internal inconsistencies. In the case of Androids this mostly adds to the hallucinatory quality of the novel, but I have no doubts that Androids could have been revised into razor-sharpness if Dick had approached the writing process with more diligence.

Daughter of Dreams is a work of Moorcock’s “late style.” Moorcock deliberately and consciously attempted to bring his whole ouvre into a single intricate pattern. In the introduction to the Gollancz volumes Moorcock writes that he has created:

…a new Elric/Eternal Champion sequence, beginning with Daughter of Dreams, which brought the fantasy worlds of Hawkmoon, Bastable and Co. in line with my realistic and autobiographical stories, another attempt to unify all my fiction, and also offer a way in which disparate genres could be reunited, through notions developed from the multiverse and the Eternal Champion, as one giant novel.

I think it’s debatable whether this was a worthwhile program, or a self-indulgent and gratuitious project. Were readers asking for all their favorite Moorcock works to be tied up like this? But it seems like along the way, the attempt produced a “late style” and what seems so far to be a pretty successful and visionary work of fantasy for grown-ups.

Edward Rothstein wrote, in his review of Edward Said’s book On Late Style:

What artist does not yearn, some day, to possess a “late style”? A late style would reflect a life of learning, the wisdom that comes from experience, the sadness that comes from wisdom and a mastery of craft that has nothing left to prove. It might recapitulate a life’s themes, reflect on questions answered and allude to others beyond understanding.

But even if that kind of culminating style is not granted to an artist, observers want to discern it. We want to be reassured that there really is something progressive about human understanding.

I’ll be fifty-one years old this month, and so I freely admit that when I’m seeking, and finding, in Michael Moorcock’s work a narrative of his development as a writer, I’m also seeking evidence of my own, and hope that I will be able to do some Canon Welding on my own, much more limited, pile of old writing, in the genres of criticism, personal essays, and autobiography, and make of this pile something resembling a coherent narrative of my development as a writer. And, maybe, get some traction on the next project, whatever it is, because I am starting to feel the limits of both time and inspiration. Keeping in mind that the goal has to be to keep having goals. As They Might Be Giants put it:

No one in the world ever gets what they want and that is beautiful  
Everybody dies frustrated and sad and that is beautiful.

When I left this morning, I almost forgot my black bean burgers. I was partway down the driveway to Crane Road. Driving in reverse back to our house is difficult, but I did it. I went to get my wrapped-up lunch, and was infuriated to discover that one of my burgers was gone. No one would confess to eating it, but I confess that I got angry at them. Finally Veronica told me that late last night (I think it must have been late last night), our housemate asked her if she could eat one of the burgers, and Veronica told her that she could. Of course it’s not our housemate’s fault, if she asked and got permission. But I’m angry at Veronica, because I packed them for myself, and she didn’t check with anyone else before giving one away!

And of course all this happened while I was already running late. Because even though Grace and I got to bed fairly early, we slept like logs, and didn’t wake up until quite late.

There was another burger that I had put in a plastic bag, but it was one that I deliberately did not pack for myself, because it was liberally sprinkled with vegan “cheese.” I like a lot of vegetarian foods a lot, including tofu, and some dairy substitutes like cashew milk ice cream; they’re great. But vegan “cheese” is an abomination. It has the texture and taste of the plasatic insulation that I strip from wires when I’m building an electronic project. If I went vegan again, I’d just live without cheese rather than eat that fake stuff.

Anyway. I had a few goals for yesterday, and they didn’t seem like they would be that hard to achieve. I needed to move some money between a savings account and a checking account, to get ready to write a check to the guys who did the plaster and paint work on the old house. I did that. I was supposed to sort through my clean laundry and get things folded and put away. I failed to do that. And I was supposed to ask Grace to trim my beard, since it’s time. I failed to do that, too. I did manage to give Benjamin a bath and wash his hair. I want credit for that — washing our four-year-old’s hair is not so easy. Last night as he sat on the toilet, Benjamin started singing, and completely cracked us up. He was singing “Wrecking Ball” by Miley Cyrus, the chorus that goes “I came in like a wrecking ball…”

I discovered this weekend that the kids have apparently broken the garage door opener. It looks like they were whacking at it with a broom handle or something. There’s a torn wire dangling. It still runs, but won’t stop running when the door has gone all the way up or down. And because the garage is full of boxes, I can’t get a ladder in there to climb up and examine it.

“I came in like a wrecking ball” is now stuck in my head. Benjamin will turn five in a few weeks.

Something is wrong with our water softener; it is just not maintaining itself. When I hold down the button telling it to do an extra regeneration, it seems to start, but it won’t actually do the cycle. The salt storage container has plenty of salt in it, but it doesn’t seem like it is pushing water through the container; it still has as much undissolved salt in it as it did a couple of weeks ago when we had the service technician come out and get it working. Sometimes when I examine it the display, several indicators are blinking, including the “service” indicator. Sometimes, none of them are blinking. The water is yellow-green, not the worst it’s been, but not what it should be. We need to get the service technician out to our home again. He told us that the last service call was, I think, “good for thirty days,” which ought to mean that he will come again for free. But I’m not happy to contemplate what he will tell us. If the system needs an expensive repair or some part replaced, we just can’t afford that, but yet I also don’t want to ruin our clothes and our water heater.

Wednesday

Grace mailed a check for $1,000.00 to the paint and plaster guys yesterday. We are still chewing over the question of what to do next, re: that old house.

Last night I got home quite late. Grace was putting the finishing touches on a birthday cake for one of our housemate’s children and dinner was on the table. The food per the birthday child’s request was pasta. The cake was a layer cake with strawberry filling and pink icing. I ate an embarrassing quantity of cake.

Elanor was still not feeling her best but again nothing seemed seriously wrong. She stuffed herself at dinner as usual and didn’t seem as spaced-out as she was at dinner on Monday.

Then, cleanup. I got a round of dishes going, but there was more cleanup than I could finish. And I was distracted from working on dishes. Elanor was wearing so much of her dinner that Veronica stuck her in the tub to clean her up, and she promptly pooped in the tub. I dealt with that, and it turned out to be a big pain. The bathtub drain, running very slowly to begin with, became completely clogged. So I had to sit in the bathroom and run several rounds of drain cleaner down the drain, waiting for the chemicals to do their work. That took quite some time. It eventually worked, though, and the drain started moving reasonably well again, although it isn’t completely clear like the bathroom sink drain. I will try using our enzyme cleaner for a few days, although I’m not sure it really does very much.

The tub drain is hard to do anything with, because it has a built-in stopper that just lifts up a bit leaving a small gap around it. It isn’t removable. I can’t even fit one of those thin plastic snakes down the drain to pull out hair. We’ve tried those mesh strainers that go over the drain to catch hair, but they don’t fit well over the built-in stopper. At some point I want to have the built-in stopper mechanism replaced with a more standard drain that I can clean out.

While Grace got ready for bed I read a few more chapters of Daughter of Dreams. The story is continuing to move along and I don’t really have anything to add to my comments from yesterday.

We gave Elanor some gripe water and some infant Tylenol and she seemed to sleep well, better than Monday night.

This morning Grace is going to get in touch with our realtor and see if we can counter the $60,000 offer at $70,000; we might be able to borrow enough to close at $70,000. I think that’s about all we can do, though. We are nearly out of ideas and feeling quite despondent and stressed about the whole mess. I’m running numbers to see if there is any way we can afford to have the furnaces replaced, and wondering whether that might actually gain us anything in the long run. If we can get Liberty Mutual to actually cough up our remaining reimburstment that would help, although we would still need to come up with over $4,500.

Reviewing a Review

Yesterday I listened to “Star Wars: The Last Plinkett Review,” a YouTube video by RedLetterMedia. I’m a fan of the “Mr. Plinkett” reviews, although not an uncritical one; the jokes about rape and murder of sex workers really never were very funny, but they also have held up very poorly over time, as the culture has left that kind of joke further behind. But wrapped up in all that is a pretty damning critique of Lucas and the prequel films, which are indeed awful train wrecks.

This brand-new review of Star Wars: The Last Jedi, which at this point is quite belated since the movie came out nine months ago, really doesn’t show the same degree of insight as the original prequel reviews. “Mr. Plinkett” has some good criticisms; the movie is in fact too long, and the Canto Bight scenes drag. The four-plot structure is a little bit too busy. These are valid criticisms, although I also think he’s over-emphasizing simplicity. In his first prequel review, he says:

When you’re in a weird movie with like aliens, and monsters, and weirdos, the audience really needs someone who’s like a normal person like them to guide them through the story. Now this of course doesn’t apply to EVERY movie, but it works best in the sci-fi, superhero, action, and fantasy genres.

And later:

Now I need to explain that I don’t think that all movies should be the same, or conform to the same kind of structure, but it works well in certain kinda movies. So unless you’re the Coen Brothers, David Lynch, Paul Thomas Anderson, Stanley Kubrick, Alfred Hitchcock, Lars Von Trier, David Cronenberg, Gus Van Sant, Quentin Tarantino, John Waters, Wes Anderson, Sam Peckinpah, Terry Gilliam, Martin Scorsese, Werner Herzog, or Jim Jarmusch, you really shouldn’t stray away too far from this kind of formula.

I think this is smart and true, to an extent. When The Phantom Menace came out, there hadn’t been a new Star Wars movie released for sixteen years. The movie really did need to re-introduce Star Wars to a new generation of fans, while still appealing, if possible, to old fans (and, as “Mr. Plinkett” demonstrates, it did a terrible job at that). But in his current review, he seems to be asking us to hold the eighth movie in the franchise, and the middle episode of a 3-movie series, to that exact same standard; he’s constantly carping on how it doesn’t follow the template of a basic-but-serviceable genre film. I don’t really think it was necessary for The Last Jedi to do that, though; I think “Mr. Plinkett” underestimates, and condescends to, the film’s audience.

I know getting into the comments section on YouTube is like jumping into a mosh pit of angry teenagers with body odor and fleas, but I did it anyway.

In response to “Chris Scorpio,” who wrote:

How can ANYONE watch this hour long breakdown, and STILL think The Last Jedi is a good movie???

I replied with the following (slightly edited):

Because, back when it came out, I watched it several times, and thought hard about it. I do admire the film, although this review has given me some food for thought about pacing and asked me to re-think the story and its weaknesses in The Last Jedi.

I’m considerably older than the gentleman that produced this video and I’ve been thinking and writing about the Star Wars movies for a long time. I love the old films, but I’m not dumb enough to believe they are perfect. And I’m not dumb enough to believe they are free from politics, or plot holes, or humor.

From my perspective, “Mr. Plinkett” takes Star Wars way too seriously. Worse, he apparently thinks Star Wars takes itself very seriously. It doesn’t. Star Wars has always contained a lot of comic elements. Watch for the actual gags in Episode IV. The movie is constantly injecting little jokes.

He apparently thinks the movies were consistent about what the force is. They haven’t been. In fact, in his old reviews, he brutally mocks the scene in The Phantom Menace where we learn that a person’s ability to use the force is due to midichlorians in their blood. Then, in this review, he mocks this movie for contradicting that idea, because I guess that’s canon now, and he thinks sticking to the established canon, even the stuff introduced in the prequels, which he righfully dislikes, is more important than telling a good story. I don’t respect that perspective.

Star Wars has always played fast and loose with facts and at best can only be called science fantasy, not science fiction, because the world-building doesn’t really bear any scrutiny. And that’s been OK for several generations of fans now.

Star Wars has always contained a lot of hand-waving and plot holes. It features a ship that “made the Kessel run in less than twelve parsecs.” That was a gaffe, an error in the original script, where Lucas didn’t bother to correct it to make sense of the word “parsec.” Even ten-year-old me watching it for the first time knew it was a dumb gaffe. But now it’s canon. (I haven’t seen Solo, but I hear they actually tried to make sense of this, rather than just letting it fade).

The original movies were always about implausibly close shaves. Hell, the ending of the first movie is all about an impossibly accurate shot delivered at the last possible second. “Mr. Plinkett” goes on and on about how Rose and Finn skid their stolen spaceship into the rebel base just as the door is closing. Did he ever criticize the scene in the very first Star Wars movie where Luke and Leia swing on a cable across a bottomless shaft in the Death Star, just as stormtroopers are about to force open a door and reach them? The timing of that scene is awfully convenient, don’t you think?

But no, he mocks the implausibly close shaves in this movie, not the old ones. Like many Star Wars fans he can’t see the lovable flaws in the old movies. He can’t see them because he puts the first three movies on a pedestal, because he imprinted on them at an age before his critical faculties were fully formed. I’m not asking him to disdain the old movies, but I am asking him to apply his critical insight consistently. No one could tell him, apparently, that Star Wars has always had flaws that don’t hold up under excess scrutiny. But yet now, he seems to be adamant about telling a new generation that if they enjoyed The Last Jedi, they’re wrong, because he thinks he has nothing more to learn about film.

Star Wars has always contained a lot of politics. The originals were an allegory about Nazis and resistance fighters and featured a line of heroes that literally inherit their special abilities. Those ideas were old then, and they were political. That’s OK. But why is it not OK to subvert those stale tropes now? Because most Star Wars fans are reactionary. This movie presses their buttons rather than comfortably patting and stroking their feelings and their world view with its nationalism, American exceptionalism, white supremacy, male domination, and unexamined views about race and inheritance.

So, he’s given me some good points to think about regarding the length of the film, and plot holes. But you know what? I’ve thought all those thoughts already. I thought most of them while I was in the theater. And I grimaced for a moment and shrugged them off and continued to enjoy the film simply because there is a lot in it to enjoy. I even went back to see it again, to absorb more details that I missed the first time, and I enjoyed it even more the second time. I didn’t conclude that this movie was so terrible that I should boycott Star Wars films forever.

Because deep down I’m not a reactionary crank.

I still respect “Mr. Plinkett’s” reviews of the prequels, though. The prequels are awful and deserve every bit of scorn he heaps upon them.

And honestly it’s pretty funny how this review is basically a soft remake of his famous prequel reviews, only this one isn’t as funny, insightful, or convincing. Let it never be said that “Mr. Plinkett” doesn’t know how to use irony.

But honestly this comment by “btron3k” sums it up better than I did:

Plinkett has jumped the shark. Just another clichëd review jumping on the “Last Jedi is terrible” bandwagon. Plinkett was better when he actually deconstructed the films in a thoughtful way and the side jokes were a natural part of the review. Now it’s repeating the formula and just looking for negatives to make the review stand out from the million other negative Internet reviews.

And put even more simply, “The Chosen Chub” replied:

It’s fundamentally a great movie despite its flaws. I enjoyed it.

I think it’s too early to claim that The Last Jedi is “fundamentally a great movie.” I think it has a lot going for it, though, and it deserves thoughtful consideration. “Mr. Plinkett” doesn’t agree, though; while, in the introduction, he says “it both succeeds and fails for me at the same time,” by the end of the review he is emphasizing only the failures, and jokingly (or not so jokingly) calling for a boycott of the next one.

This video is much more interesting and convincing, illustrating why the script of The Last Jedi takes such great pains to overturn expectations, while “Mr. Plinkett” doesn’t really explain the director’s iconoclastic approach, instead referring to Rian Johnson’s attempt to make a great movie that subverts expectations as “trolling,” and asking “why troll the situation at all?” As if iconoclasm wasn’t a time-tested and proven strategy for making memorable movies. And he accuses the director of actual hostility and disdain for the audience, while at the same time speaking condescendingly of that same audience. He claims that Johnson

…didn’t want to give the audience what it wanted, what it craved.

(Apparently they wanted Brawndo, with electrolytes!)

And what it craved was the familiar, the heroic… the adventure. He was kind of like a schoolteacher that was rewarding us with “movie day.” But instead of showing us something fun, he showed us something fun, but educational, too. That’s not fun!

I’m still scratching my head wondering just what he thought The Last Jedi was trying to educate us about. Of course what he really means it that he thinks it was trying to indoctrinate us with a world view. And that’s true. But it’s also true of all the old Star Wars movies. It’s just that the world view is the world view of a newer generation and not the prematurely aged unwilling to consider that there rigid world views might run better with software updates.

The audience wanted wanted Luke to come out of hiding, show that he was a true Jedi badass and help Rey stop Snoke and Ren.

Imma stop him right there and say that clearly, yes, a lot of “the audience” wanted that. But I didn’t. Why? Because it was too late for that. That would have worked great in a movie made in 1985, thirty-three years ago, a movie released a couple of years after Return of the Jedi, a movie picked up the story a few years after the events that movie, a movie about the resurgence of the Empire and the re-awakening of the resistance. But that movie never happened. Instead we jumped reality tracks and we’re on the bad timeline, where the bears are named Berenstain and we got Jar-Jar Binks. Then we got a “soft remake,” The Force Awakens, because it was necessary to pretty much re-introduce Star Wars after such a long hiatus, and we got the First Order, just because.

Thirty-five years after the Return of the Jedi, it was too late to the sequel. That broken timeline can’t simply be duct-taped back together and decades edited out to let Luke come back as that “true Jedi badass.” In-universe, we’d need some really good explanation for why Luke wasn’t broken and changed, but just chose to hide out for all those years on Temple Island while the First Order rose to power. I suppose they could have had him frozen in carbonite, but other than that, it wouldn’t make sense for Luke to be actually tanned, rested, and ready to return; did he just have really bad Internet access, so couldn’t get any news? And of course in in our bad-timeline universe, real-life Mark Hamill is 66 now. Would he really make a convincing Jedi badass? Harrison Ford, now 76 years old, already got his wish and Solo died in a terrific scene in The Force Awakens. And Carrie Fisher — well, I still can’t really talk about it, okay? She was sixty, but seemed older; a healthy lifestyle, she had not, as Yoda would say.

“Mr. Plinkett” also asks “why not take the audience in an entirely new direction?” He mocks the idea that the Star Wars universe is “played out.” And I agree, there’s lots to do in the Star Wars universe, as in any fictional universe. But I don’t think he’s actually asked thoughtful question, in good faith. Is he seriously proposing that the long-awaited eighth film of a series beloved by generations of fans should just bail out completely on the characters and situations set up by the previous seven? And he knows very well that Star Wars is never going to end; press releases have already announced that there will be another trilogy, and it won’t feature the Skywalker family, or any of the well-known locations. What we’re watching when we watch The Last Jedi is the middle episode in a trilogy that has been constructed to wind up an arc, and pass the torch; basically, to do what Lucas himself utterly failed to do when he chose to focus the prequel trilogy on the story arc of an an iconic but lightweight character from the original trilogy.

“Mr. Plinkett” says:

Our black-and-white, good-versus-evil space saga is now a muddled ambiguous gray.

Yes — because this Star Wars was made to appeal to grown-ups, who are ready to ponder ambiguous and serious messages.

I wrote a long review of The Force Awakens on my old blog a couple of years ago. But I still have not published a detailed review of The Last Jedi, because I didn’t feel the need to, but in my 2017 wrap-up I wrote the following (slightly edited):

After The Force Awakens, it was not entirely clear to me what direction Episode VIII would take. Would it just remake The Empire Strikes Back, or would it do something bolder? It would have been a safe choice to follow the story arc of Empire closely, and a lot of fans probably would have enjoyed that, but to really open up the possibilities for future films, it needed to do something bolder. It actually really impressed me and won me over emotionally in scene after scene. In fact I’d say it isn’t just “good for a Star Wars movie,” but actually a good movie even considered outside of the narrowed criteria of Star Wars, or even science fiction, fandom.

I can see how people who were very attached to the structure of the original trilogy found themselves offended. There are indeed some updated politics at play. But I wouldn’t really call them radical. Basically, this film introduces 1990s-era “social justice” ideas into the script, including feminism, disdain for toxic masculinity, and tropes about success through collective action and mutual aid rather than extremely high-risk, unlikely individual heroics.

People offended by the idea that Star Wars movies would have a political agenda forget that the originals had political agendas, not from the 1990s but from a hundred years earlier. Those agendas included toxic militarism, and the idea that a person’s importance in the galaxy depends primarily on who that person’s parents are.

For every angry reaction, it seems to me like people have forgotten what is in the original film. People are angry about the “jokes” in the movie. They forget that some of the most iconic scenes in the original 1977 film involve sight gags and bad jokes. People are angry about how Finn does not behave heroically. They forget that Han Solo had a similar moment, in which he planned to take his reward and get the hell out of danger. Reading complaint after complaint about the new movie, it really seems like people forgot what Star Wars is. Folks are complaining that “the force doesn’t work that way,” and I hear them saying “but… but… the gleep glop magic fantasy world doesn’t have glop gleep magic! That’s not canon!”

This is a little different than the disastrous retconning that George Lucas did in the prequel trilogy. He said that instead of gleep glop magic, your ability to feel and manipulate the Force comes from the midichlorians in your blood, which deflates the fantasy aspects of the movies entirely; who wants The Force to have an entirely materialist explanation? It’s like saying that achieving sainthood just requires enough vitamins.

The amazing battle sequence at the end of the movie takes place on a white plain of salt crystals with red underneath. This is a call-back to the battle scenes on Hoth in Empire, but with a twist; the white surface has become a blank page. When one of the ship’s skis, or even a person’s foot, touches the salt surface, it turns blood red. (This is not really a spoiler; it’s in the trailer). In this sequence the sacrifices of all those who died fighting the Empire (and the First Order) are inscribed on the landscape in what looks like their blood. It’s moving, and jaw-dropping.

I get that arguing about all this is not actually going to “fix” the movie, for anyone who went to see it and found themselves thrown out of the story by the iconoclasm of the new one. For those people I can only suggest giving it a second chance. Each time the director broke with the storytelling tradition established over the previous seven Star Wars movies, I felt myself puzzled at first, but then I came to feel that at each of these points, he had successfully used the breaking of the convention to tell a bigger, more open, more universal, and yes, more inclusive, story, and it worked for me.

I first saw Star Wars before it was called Episode IV, in the initial 1977 release — actually, in a sneak preview showing before the film officially opened. It was probably on May 24, 1977. That summer, I was nine years old; young enough to be completely wowed by the movie, but old enough to bring some critical judgement to the movie as well, especially to my repeat viewings. I saw it again at least a half-dozen times over the next year. The movie moved me, pushed back the boundaries of my imagination, shaped me, and gave me, and has continued to give me, a lot to enjoy, chew on, think about, and re-think over the years.

Those years, though. They’ve gone by. It’s been forty years. You can’t keep telling the same story in the same way. I think this new movie really does a fantastic job of breaking out of the limitations of the original film, bringing Star Wars to another generation in a way that allows it not to be constrained by the limitations of the aging cast or the original story. Anything can happen, now. And Star Wars is made great again.

Meanwhile, “Mr. Plinkett’s” own review contradicts itself, revealing his lack of good faith.

He talks early on in the review about how many people were concerned, after The Force Awakens which was a “soft remake” of the first Star Wars movie (although he insists on calling it a “soft reboot”), that The Last Jedi would be a remake of Empire. It isn’t really a remake of Empire — not really — although of course there are some parallels.

He makes this point when he points out the huge differences in plot structure. But then, towards the end of the review, although he has not been focused on the parallels to Empire for most of the review, he comes back to further criticize the movie by contrasting scenes The Last Jedi with scenes in Empire, pointing out how scenes that he now claims are parallel have different moods.

Which is it? Is The Last Jedi a remake of Empire, or a different movie that isn’t directly comparable? “Mr. Plinkett” seems to want to have it both ways, and criticizes The Last Jedi both because it is, and because it isn’t, a remake of Empire. That really reduces his credibility, and makes him seem like he’s reaching for any reasons to criticize the movie, even reasons that contradict each other.

At many points in the review he finds things to like about the movie, and tells us so. He says the script “has its moments.” He says “you really can’t fault how great this movie looks.” He says “Another thing people take issue with is the ‘low-speed chase’. You know, I’m OK with this. In a weird way it kind of reminds me of Star Trek… it was different, to say something positive.” He says “I’m not here to take a huge dump on this movie.” He says “you got me movie, I’m interested now.” But then in the last few seconds of his review, he claims that the movie “fails spectacularly on every level.”

There’s a reason for the disconnect. While “Mr. Plinkett” spends much of the movie talking about technical problems he finds in the script and story, poor blocking, and supposedly contradictory statements by characters (which are mostly not really contradictory, but reflect different circumstances in different moments), and hating on the jokes, he’s left out the arguments that justify his claim that the movie “fails spectacularly on every level.” He’s left them out, because to include them he’d have to say the things that he’s not comfortable saying out loud, but really only wants to hint at.

He didn’t make this particular review to convince an unbiased person; the actual case he builds against the movie isn’t all that convincing, and demonstrates a “more in sorrow than in anger” attitude. Watching it, I don’t believe he really despised the movie; he had a mixed reaction to it. A mixed reaction doesn’t justify saying the movie “fails spectacularly on every level.”

But he had to come to that overhelmingly negative opinion. Because that’s where the clicks and shares live — in a cynical kind of rancid negativity.

In his reviews of the prequels, “Mr. Plinkett” did use negativity and button-pushing jokes, but they weren’t in the service of something entirely cynical. His nasty jokes wrapped well-structured and well-thought-out criticism of the prequel films, criticism which I believe is still convincing. In this review? Not so much; he cherry-picks weak moments (his comments about the really stupid fight choreography in Snoke’s throne room is absolutely correct), and nit-picks plot details, and claims that these add up to a terrible movie. And he also claims that moral and emotional ambiguity (also known as “complexity” and “realism”) also completely ruin the movie.

Clicks and shares, baby. Clicks and shares.

“Mr. Plinkett” crafted this particular review video not to convincingly review the movie, but to cater to the angry, toxic Star Wars fans, who have attacked the cast of The Last Jedi on social media.

At this point in his career, “Mr. Plinkett” is a disguise that the successful Mike Stoklasa no longer actually needs. He’s earning plenty of money from his ventures now; his other video series are extremely popular. Why is he still dragging out “Mr. Plinkett?”

Because he’s hiding behind that identity; he’s using it to shield himself from the criticism he deserves, for producing work that panders to reactionaries.

Do you think I’m exaggerating? At one point in the review “Mr. Plinkett” jokingly yells the following:

I wasn’t expecting such outdated and sexist sailor talk from such a progressive film. How dare they! I’m protesting! C’mon Antifa, let’s get Star Wars next!

He’s mocking “political correctness” that he finds in this movie by imagining a viewer who would find it sexist to refer to the Millenium Falcon_ as “she.” But no one’s done that. He’s joking about the politics of an imagined fan of this movie, without really making a good-faith effort to talk about the politics of this movie.

It’s lazy. And he’s addressing this right at an audience that thinks Antifa is a punch line, and feminism is a punch line. Remember, he’s doing this as “Mr. Plinkett.”

This is why this all seemed weird and bad. When they’re on the casino planet, and Rose is complaining about, like, the industrial-military complex of the universe, or whatever?

Yeah, that significant scene in the film when Finn, a former stormtrooper, is beginning to come to grips with the moral consequences of his whole previous life, and his complicity in the First Order. I hate it when a movie makes me think.

At best “Mr. Plinkett” is channeling the reactionary world view of Fry in Futurama, who famously said that “clever things make people feel stupid, and unexpected things make them feel scared.”

He sets himself up as arbiter of That Which is Acceptable in filmmaking:

Twists and turns are one thing, but confusing actions and motivations that are literally incomprehensible? That’s not acceptable.

Thanks for weighing in, boss. I’ll make sure management gets your memo. This really seems odd.

And Stoklasa, now a multi-millionaire, is just a funny guy punching up, right?

Personally, I don’t think joining the chorus of those criticizing The Last Jedi from the alt-right shows courage, or convictions. I’d like to think that Stoklasa is smarter than this, because I really do enjoy a lot of his work. But now I think maybe I’ve been over-estimating him, giving him the benefit of the doubt that doesn’t deserve. And maybe “Mike Stoklasa” is the real mask, covering up the truth about the man behind this review — that inside, he really is Mr. Plinkett.

How does that phrase go, the one that’s been kicking around social media for a while? The one attributed to Maya Angelou, well-known feminist and member of Antifa?

Oh yes — “when someone shows you who they are, believe them the first time.”

While I’m Hating On Things

I also hate The Big Bang Theory. Just, you know, in case you were wondering.

I Hate My Phone

Last night I spent a little time trying to figure out how to disable as many of the Google apps on my phone as I could. I never installed or opted-in to these apps; they installed themselves, and they are constantly updating themselves, and they are constantly turning on new tracking or notification features that I don’t want. Even though I don’t use them, they use up an increasingly large chunk of storage on my phone, to the point where they are starting to generate notifications complaining that they don’t have enough storage space left to update themselves.

The only app on my phone that I’ve deliberately chosen to install is Twitter.

It seems to be possible to delete the updates, turn off notifications, delete the space by, kill, and disable these apps. I’ve done this to a number of them and that freed up a lot of space. I’m not very confident that they will remain killed and disabled; I guess I’ll find out over time. I need to try the same thing on Grace’s new phone, which is pestering her constantly.

If this doesn’t work, I guess the next step is to try to install a completely new OS. I’ve done a little bit of Android hacking, just enough to know that this could be a huge time sink.

Here’s an article with a few more tips.

Where’s a fully open source, surveillance-free phone that I can purchase and use with T-Mobile?

Thursday

My father called me late yesterday afternoon for an update. His older brother, my oldest uncle, died. I can’t consider flying out to attend the memorial. I unfortunately never got to know this uncle well. I only met him a couple of times. I think the last time was twenty-five years ago. This is the lasting consequence of the way my family split apart and wound up spread thousands of miles apart. My father would like to find some way to help us deal with the house, but neither of us is quite sure what he can do. We’re just not sure that putting any more money into it at all would help us get it sold. I’ve been trying to figure out a way to do that which will leave my credit rating intact, but we’re running out of options and it may be time to just bite the bullet and allow the lender to foreclose, leaving it to the banks and attorneys to figure out. Without even one viable offer at this point, trying to get a short sale completed before winter doesn’t seem possible.

Last night I got home relatively early, about 6:30. The kitchen was not ready for a meal. The kids were working on that. Grace was engaged with paperwork for doctors, so I sat and worked on the blog for a while. After a while it became clear that no one really felt like cooking, so we went ahead and ordered a couple of pizzas.

Elanor seemed chipper when I got home, like she must be feeling better. But Grace told me she had not really been well, and had slept for a good portion of the day. Again, she never seemed to have a fever to speak of, except perhaps a mild one. But Grace was concerned enough that she set up an appointment yesterday for 8:00 this morning.

At bedtime I read more of Down and Out in Paris and London. I’m getting closer to the end of the book. Orwell writes in this part of the book about the various professions employed by beggars, about English slang, about the hierarchy of beggars, and his theory as to why begging was so disreputable. (His interesting conclusion: it isn’t because of the nature of the work, since many people in English society do menial or useless work, but it’s really entirely because it isn’t sufficiently remunerative. I want to read this section on the podcast, and talk about it). I also read more of The Wild Robot Escapes.

Despite the labor savings that came from ordering pizza for dinner, we did not get to bed very early. In fact it was about 1:00, and we set our alarms for 7:00. We did not want to give Elanor medications that might hide her symptoms. She slept badly, with mild fits of coughing, and a lot of yelling, so of course we slept badly too.

Grace got her to the doctor this morning and they seem to be taking her symptoms seriously; they wanted to get a blood test, but could not access a good vein. They also want a chest x-ray. So they sent her home for us to get her as hydrated as we can. (She drank water from a bottle at dinner last night until she refused to take anymore, so I’m not entirely sure this will work). I think they want to rule out pneumonia, so Grace and I are a bit worried. Apparently chest infections are common in infants with Down Syndrome.

Grace also heard from Mott yesterday trying to confirm an appointment on Monday. We are confused because we didn’t think she had anything scheduled until December. So Grace will try to confirm that. Maybe it is best if they move it up given her recent illness.

Grace’s schedule is stacking up with a lot of appointments and it is a lot to keep on top of, especially combined with our ongoing concerns about getting the old house sold, which is sapping our concentration.

The Saginaw contractors are a gift that keeps on giving. Yesterday Grace got a call from a duct-cleaning contractor because he couldn’t get into the house. He couldn’t get into the house because we had been informed that the duct-cleaning company had finished that work something like six weeks ago, and we have since removed the contractor lockbox and put on a different realtor lockbox.

Apparently they never completed the cleaning and were trying to complete it yesterday. Grace was understandably infuriated. We’ve been telling potential buyers that the ducts were professionally cleaned. We had to spend a chunk of our own money to have asbestos remediated to get this done. Back in July. We both feel like suing this company, or at least reversing the credit card charge. But unfortunately none of that will actually get the job done, so we will probably wind up just grinding our teeth and scheduling a time when Grace can meet the contractor up at the house.

We’ve been constantly, repeatedly gob-smacked by the utter incompetence and carelessness of everyone involved in getting repairs done on the Saginaw house, and that includes (oh boy, does it ever include) our insurance company.

We don’t have word back from our realtor on the buyer’s response to a counter-offer.

Of course our highest priority is our baby’s health. There’s not a lot I can do from here. I’ll take off work if it seems like that would help.

So, there are plenty of things hanging over our heads right now. Low blood pressure should not be a problem!

Friday

Last night Grace was very tired, and I don’t blame her, since she had to get up and out early on Thursday morning. We gave Elanor a dose of infant Tylenol again at bedtime and while she complained a lot about going to sleep, once she was asleep she stayed that way without coughing or waking up and griping.

The kids weren’t very cooperative getting dinner together. It sometimes happens that when Grace and I are stressed out, the kids actually start to act out worse and worse. We theorize that they pick up on our stress level and it stresses them out. Don’t ask me to explain it further than that, as I really can’t. But it happens fairly reliably that when we are at a low point and need them to be calm and well-behaved, they do the opposite.

I wasn’t willing to read most of the kids a bedtime story because they were so bad about getting ready for bed in a timely manner. But Sam got one — I read him part of “The Council of Elrond,” the next chapter in The Fellowship of the Ring. That book was by request. This is a great chapter, one of the most famous. It’s very talky, and it may be hard to get through for first-time readers, but there’s so much back-story unfolding and so much detail. And the voice of each character is quite distinct.

When we left off, Elrond had just brought Boromir up to date on the recent history of the ring. The idea that Boromir’s people have known about Imladris (their name for Rivendell) for many generations but never tried to go there is maybe a little hard to swallow, although the in-universe explanation is that it is hard to find Rivendell if the elves don’t want you there. The idea that Boromir basically got the Microsoft Outlook meeting notice inserted into his calendar via a dream, and managed to arrive the morning of the meeting, is also perhaps a bit much — when did Elrond send the message, and how long did it take Boromir to find the place? The text says:

‘Here,’ said Elrond, turning to Gandalf, ‘is Boromir, a man from the South. He arrived in the grey morning, and seeks for counsel. I have bidden him to be present, for here his questions will be answered.’

Boromir reports that:

’In this evil hour I have come on an errand over many dangerous leagues to Elrond: a hundred and ten days I have journeyed all alone.

Boromir tells us that his brother (Faramir, though we have not heard his name yet) experienced a dream, several times (“…a like dream came oft to him again…”), and Boromir experienced it too (“…and once to me”).

Is it implied that Elrond sent the dream? To make that work, he would have basically needed administrative access to the whole calendar! That suggests that someone above his pay grade made these arrangements. This idea isn’t really emphasized a lot in Tolkien’s work, but it pops up occasionally; Gandalf mentions to Frodo early on that he believes “Bilbo was meant to find the Ring, and not by its maker.”

Compiler

I got myself prematurely excited because it appeared that my compiler for the ARM SAM4 family, part of the Keil MDK-ARM, supports long long. It’s mentioned in the online documentation that 64-bit numbers are supported (I know they wouldn’t be natively supported by the microcontroller core, or fast, but I thought they might be supported by a standard library).

But in fact this is a sort of feint. Apparently some compilers support it, but not others. They must share a front end, or something like that: this compiler accepts long long, and unsigned long long, and the size-specific uint64_t and int64_t types, and long long constants, signed or unsigned, and the %lld and %llu type specifier strings for printf. But it’s all a ruse. It actually silently compiles the code to use 32-bit values. And the debugger gives strange results; viewing two uint64_t values in the watch window will show the same value twice.

So that’s very annoying. If the compiler can’t actually handle uint64_t and related types, it shouldn’t pretend to. It should issue an error.

I’m working on this because I have to come up with a way to calculate wavelength values that are accurate to more digits than I can calculate with 32-bit floating-point numbers. Our laser modules allow tuning in 1MHz steps. The corresponding change in wavelength is small. So if we can specify two adjacent frequencies, for example 191,529,986MHz and 191,529,987MHz, I want to be able to display a similarly precise wavelength value when we switch between them. This is easily calculated using double-precision floating-point, yielding approximately 1565.250769 and 1565.250761. (I will display these values with 5 fractional digits).

If you do the calculation using single-precision floating-point, though, which is what the LCD GUI and my SAM4E microcontroller both support, there’s a problem; the precision tops out at about seven digits. There aren’t enough floating point values available to uniquely represent these result values that are close together. So when the user is turning the encoder knob to adjust the fine-tuning offset, the frequency value on the screen changes continuously in steps of 1MHz, but the displayed wavelength value gets stuck for a while, and after every 16 steps or so, jumps to approximate value. That’s ugly and it’s going to confuse end-users.

I’m not out of tricks yet, though; there’s a 64-bit integer library that might run on the SAM4E. I’m going to try using that to do the calculation. I wasn’t able to find a fixed-point type library that seemed suitable, but this one might do the trick. It implements 64-bit integers using a struct containing two 32-bit integers. What to do with the truly gigantic integer result, after calculating it, might get a little bit tricky. I can only pass data to the LCD GUI using 16-bit words, or strings. I can’t use snprintf directly on the structures. The saving grace will be, I think, that I know how many digits, in decimal, the result is going to be. So I can divide by a large power of ten to scale 64-bit values down to 32-bit values that I can work with directly, using groups of digits. If I have a modulus operator that would be great, but if I don’t, I should be able to fake it with division and subtraction.

Grace tells me that Elanor is slightly anemic, and she told me about some new research that suggests that this sometimes happens to babies who were born by C-section. So we’ll look into supplementing her diet. I don’t think all the blood test results are back yet.

Our realtor told me that she has given more showings, and we’re waiting to see if any of those showings result in offers. I heard last night that one buyer offered $65,000. I am really struggling to decide if I want to try to make that offer work. I’d have to borrow about $30,000 and that is a lot to borrow, especially on top of an existing pile of debt. It will leave us burdened financially for a long time.

Grace has been looking into options to lease the house and it’s possible we might wind up considering doing that after all, although it is not my first choice.

I’m headed to Costco.

Saturday

I indulged myself yesterday and had breakfast at Zingerman’s Roadhouse. It’s been a few months. I like to have a breakfast dish, sometimes one of their breakfast specials, sometimes not, and a side of fruit, which is little platter of very good fruits. Their basic “Roadhouse Joe” coffee is strong and bitter, but not very acidic. I drink it with cream but no sugar. I have asked at the Harvest Moon Cafe if they would consider putting some kind of fruit on the breakfast menu — anything, really. I’d settle for a scoop of frozen berries, or some pre-cut melon, or a banana. The waitstaff tells me they get a lot of requests like this, but at present they have nothing like this available at all.

I went to Nicola’s Books and they had the new J. R. R. Tolkien/Christopher Tolkien book, The Fall of Gondolin. This is not really new material, exactly; I think most or all of the text exists in The Book of Lost Tales, Unfinished Tales and The Silmarillion. Christopher Tolkien has done is tease out those different threads of the story and put them in one volume as the last of three “great tales.” The first two were The Children of Húrin and Beren and Lúthien.

I believe that the first of these three is the smoothest and most coherent. I’ve read that one. The next one contain fragments of stories that don’t entirely match up in style, and which were written decades apart. Even the character names are inconsistent. I believe this one is the same way. I think it is actually to Christopher Tolkien’s credit that he didn’t try to homogenize these pieces. But I think that also means that the latter two books are really only for hardcore Tolkien fans who are willing to accept the inconsistencies.

Oh, and there are also gorgeous illustrations by Alan Lee. I haven’t actually started reading the text, but I confess that I did eagerly page through it looking at Lee’s amazing drawings.

I also picked up a mass-market paperback edition of Kim Stanley Robinson’s older novel Icehenge. This story weaves itself into the story of Earth’s colonization of Mars, although I think it doesn’t ever actually match up with characters and events in Robinson’s terrific Mars trilogy.

I bought a fairly modest load of groceries at Costco last night, as Costco loads go. For dinner we had salmon, salad, and an apple pie. I brought home a couple of fresh whole chickens and some red meat. I should have gotten eggs, too. Some things are getting more expensive. I haven’t gotten cashews in a while and I wanted to get a container of cashews, but they are now $21.00. That just seemed too high so I didn’t do it, although brown rice with cashews and sriracha sauce is a favorite snack in the Potts household.

I also got one more lantern to keep in the basement for future power outages. I’ve been buying one a week for a few weeks now, and we have six. I think that’s plenty for us to get through a power outage. Next week I will get more spare batteries. Costco also has some smaller lanterns and flashlights that might be useful. I also want to get a set of 3 dish tubs, a small container of dish soap and a small container of bleach, paper plates, and paper towels, and bundle these things up on a shelf to have ready for washing up when we only have bottled water. I would also like to have a whole-house surge protector installed, get the electrical panel rearranged and correctly labeled, and have it wired up so there is a place to hook in a generator. Some of that has to wait until there is more money available. I’m hoping we can get through the fall without a lengthy outage.

The kids were not very cooperative last night, in getting ready for dinner, and cleaning up after dinner. So we had no story. While Grace was getting ready for bed I read the first few pages of Icehenge. It’s quite an engaging story and a quick read as well, although I wish this reprint paperback edition had been re-set and looked better. It’s not as bad as some terrible-looking print-on-demand books I’ve looked at recently, but it doesn’t look very good, and Robinson’s story really deserves better.

This morning I picked the book back up, and finished the first section. It features some of the same themes that are important in Aurora, notably the difficulties in creating a sustainable closed ecosystem inside an interstellar spaceship. It’s impressive work, and really deserves a better edition. It’s especially impressive considering that this was his first published novel (although it is really sort of a fix-up, as the first two parts were published earlier as separate novellas).

Grace has been juicing. Her breakfast for a few days has been a celery/apple smoothie. This seems to be helping her feel better and lower her blood pressure, so I’m all in favor. I will have some, although I don’t really love the flavor of celery juice the way she does.

It has cooled down quite a bit, and I am grateful! We might try to get out for a walk this afternoon. Grace and I were pretty lazy this morning. I made bacon and blueberry pancakes and haven’t done much else.

Books, Music, Movies, and TV Mentioned This Week

  • The Fellowship of the Ring by J. R. R. Tolkien (bedtime reading in progress, again, after a long hiatus)
  • Icehenge by Kim Stanley Robinson (in progress)
  • The Fall of Gondolin by J. R. R. Tolkien, edited by Christopher Tolkien, with illustrations by Alan Lee (ooh, nice pictures)
  • Antifa: The Anti-Fascist Handbook by Mark Bray (in progress)
  • Down and Out in Paris and London by George Orwell (in progress)
  • The Chapo Guide to Revolution: A Manifesto Against Logic, Facts, and Reason by Chapo Trap House (in progress)
  • The Conquest of Bread by Peter Kropotkin (in progress)
  • The Wild Robot Escapes by Peter Brown (bedtime reading in progress)
  • Elric: The Moonbeam Roads (Gollancz, 2014) (omnibus volume containing 3 novels; the first, Daughter of Dreams in progress)

Ypsilanti, Michigan
The Week Ending Saturday, September 8th, 2018