What’s Really Important

I’m on a Robert Reich e-mail list.  His latest missive* entitled How to prevent America and the world from falling into fascism contained eleven suggestions, the first three of which really jumped out at me:

Try not to allow issues such as whether Biden should resign, or his degree of responsibility for Gaza, to get in the way of your determination not to let Trump back into the White House. Regardless of our differences over these issues, they pale compared to the threat Trump poses.

For the same reason, please don’t decide to leave the top of the ticket blank or to vote for a third party or not to vote at all. All make it easier for Trump to win. …

Don’t become so upset with politics that you drop out, stop reading the news, or give up on activism. The stakes are just too high. …

Exactly.  If you don’t like Biden much, I probably agree with you; but the most important thing to do right now is to send the orange narcissist packing.

*This link seems to work; but when I load it directly into my browser without going through e-mail, I get a popup suggesting that I follow me. 😎  I didn’t try the options in the message box, so I don’t know what they do; but when I clicked the X in the upper right corner, the popup went away and I could read the whole thing.

That’s Not Gonna Work!

The possible itinerary I came up with for my November trip has an obvious typo returning from Wrocław on the 26th.  I have no clue why that didn’t jump out at me right away.

Also, checking for what I had really meant to write, I discovered that EuroCity 54 and 57 will be direct trains between Wrocław and the Berlin Hbf which actually works better.

Given my current mobility issues, I might have to skip the Meeting C++ and code:dive conferences, in which case I might be able to fly in and out of Berlin instead of Frankfurt; and the only hassle will be getting between the airport and the central train station.  I can decouple the plane and train legs by spending one night in each direction at a hotel near the Berlin airport, which I did for my Varna trip; so I know the drill.

We’ll see…

Update:  2024-07-12:  I think I have my Wrocław trip figured out.  I was going to give it a quick mention in another post I’m planning; but I mentioned the trip in a message to an Amtrak-related e-mail list; so I stuck the new itinerary out on my website.  Folks who click on the first link above will see the latest and greatest, and some of what I wrote herein might not make any sense.

He shall from time to time give to the Congress information of the State of the Union …

I’m getting more and more depressed about our current political discourse.  Last night, even PBS Newshour got on the Biden’s-too-old bandwagon.  They weren’t claiming to express an opinion, of course; they were claiming to be simply reporting on things like polls and interviews of random people on the streets.

I can understand the media’s obsession.  Biden’s performance, repeatedly and recently, has been shocking; but Trump’s Gish gallop of lies is just old news.

The discussion needs to move away from Biden to what the alternative is.  I wish Biden would give a speech about the current state of the union in which he spells out, in considerable detail, what we’re likely to see given another four years of Trump and his handlers.  Make it about Trump, not about himself; and he should take the gloves off.

And he shouldn’t shy away from observing what the Roberts court has done nor fail to mention their hypocrisy and sleaziness.  For example, he could point out several horrible things that he could now get away with as a sitting president and then say something like:

But I won’t do these things because, unlike the Gang of Six, I care what the Founders had in mind.

I thought of another line that I’d like to hear:

I do not say these things to shame them:  you can’t shame people who are shameless; that’s a waste of time.  My purpose is to show just how vile these people really are.

But I fear that he’ll just speak loudly, maybe pull an angry face, but otherwise fall into the trap of keeping the discussion about himself.  That strikes me as a losing tactic.

Self-Modifying and Machine-Generated Code

In a comment to my previous post, John Morales asked my opinion of self-modifying code.

Answering the question as asked

That’s an easy one:  it’s a maintenance nightmare.  Don’t do it.

More generally

Over the years, and I’m old enough to remember punching Hollerith cards1 and sticking them in sorting machines (wired boards were before my time), I’ve developed a very explicit coding style, principally because a week, a month, or a year from now, I don’t want to be wasting any time trying to puzzle out what the hell I was thinking about.  I always use meaningful identifiers (names of things that programmers make up), although I’ll break down and use abbreviations at block scope; and I avoid all the known anti-patterns (“magic numbers” come easily to mind).  When a function has more than one big thing to do, it’s time for refactoring.  I even prefer Allman-style curly brace placement precisely because it puts more white space in the code and so separates bits of code in ways that are immediately visible.

Back in my newbie days, I made all the newbie mistakes; I even thought that self-modifying code was Really Cool.  The only reason that I’m not still a newbie is that I learned from my mistakes (and I hope that I never stop learning).

Just for fun, I’ll put a cute little self-modifying PDP-8 program at the end of this post.

A related issue:  machine-generated code

This is a completely different thing and not particularly scary.  Programmers know how to write source code, which is just text; and they know how to write text to a file.  No big deal.  Indeed, the two programs that I wrote to generate simple Amtrak timetables and on-time performance statistics spit out complete Web pages2; and my timezone code comes with a couple of utilities that read Zoneinfo data and generate array initializers that get #included in other programs.  That’s all really simple stuff.

It could even be argued that this is what C++ templates are:  when you write a class template or function template, you’re telling the compiler how to write a class or a function for you.  Yes, really.  And if reflection makes its way into C++26, which is highly likely, we’ll have lots more compile-time code generation.3

1If I might stretch the meaning of “program” a bit beyond the breaking point for a moment, my first program was an 026 drum card.  That was back in the Viet Nam era when Sgt. Seymour was Base Fuels Accountant at March Air Force Base.  There was a very complicated daily report that got run overnight at 15th Air Force HQ; and it didn’t take me long to figure out that, in order to get the cards punched right the first time, I had to do it myself.

2It turns out that all I needed was good old HTML1 with no anchors or scripts…easy.

3But this kind of code generation is something that compiler authors do, not something that J. Random Coder like me does.  I know some compiler authors, and they’re way smarter than I am.  If those folks are the big leagues, I’m like an acceptable AAA baseball player when I’m having a good day.

Here’s a bit of machine-language PDP-8 code (not written by me) that sets all the bits in a memory field, including itself, to zero.

A PDP-8 field had 4096 12-bit words, so all the addresses and data are four octal digits.

----  ----  --------
0004  1005  TAD 5
0005  3410  DCA I 10
0006  5004  JMP 4
0007  5404  JMP I 4
0010  0011  (data)
0011  2010  ISZ 10

TAD:  Two’s complement add.  Add the contents of the referenced location to the accumulator.

DCA:  Deposit and clear the accumulator.  Store the accumulator in the referenced location and set all the accumulator bits to zero.  The “I” in the mnemonic means “indirect”; and when absolute addresses 108 through 178 are used as indirect addresses, they pre-increment; so the first time the DCA I 10 instruction gets executed, it stores the accumulator in address 128, then 138, and so on.

JMP:  Jump to the referenced location.

ISZ:  Increment, skip if zero.  Add 1 to the referenced location and skip the next instruction if the sum is zero.

That first three-instruction loop just sticks 3410 all over memory until it finally wraps around to location 6 where we continue to location 7 and JMP I 4 to location 3410 and start executing 3410 instructions. 😎  Since DCA clears the accumulator, at this point we’re storing zeros all over memory.  0000 is an AND instruction:  load the bitwise AND of the referenced location and the accumulator into the accumulator.

I’ve forgotten what that final ISZ instruction is for, and I’m not in the mood to puzzle it out, so I’ll leave that as the dreaded exercise for the reader. 😎

You’ll notice that that program is not an algorithm because it doesn’t halt; it just keeps on executing AND 0 instructions.  When all the lights on the front panel stop flashing, you press the STOP switch. 😎

I’ve written a little paper about the PDP-8 if anybody is interested.

The Meeting is Over

We finished the ISO standards committee meeting that I sponsored a bit before noon on Saturday, then some medical stuff got in the way of this post.  I’ll probably write about that tomorrow or Friday.

I was freaking out most of the week worried that everything would go well, in part because my hearing aids give me hardly anything but distortion when trying to listen to amplified sounds, so I spent most days working from home via Zoom.  That was OK because I have a box that I can plug into the headphone jack on my laptop that generates a bluetooth signal that feeds my hearing aids and gives me good enough quality to understand human speech.  I did check into the hotel Sunday night to help with the setup and to make sure I’d be there for the Monday morning plenary, and again Friday night to help with packing up and to be there for the Saturday plenary.

I guess I needn’t have worried so much because I got quite a few very nice thank-you notes from several movers and shakers on the committee.  Herb Sutter, the WG21 Convenor (the ISO word for chairperson), has a better post about the meeting than I could write on his own blog.  There’s a really good summary of the meeting at the beginning if anybody is wondering how this ISO committee works.  After that, it gets pretty technical and maybe not of much interest to folks who aren’t computer programmers.

I was fortunate to be able to give the committee a bit of payback for everything I’ve gotten from it over the years, but I don’t know that I’ll be able to do that again.

The next face-to-face meeting will be in Wrocław, Poland; and I’ve written about that already with a link to one possible itinerary.  We’ll see whether I’m able to attend.  All the trains I’d ride in the U.S. except the trains between New York and Boston have checked baggage service, all the stations where I’d be changing trains have red cap service (help with luggage), and I get wheelchair assistance at airports*; but I’d be lugging my luggage around on all the European trains.  A lot depends on whether I can get wheelchair assistance from the Frankfurt airport’s terminal two to the airport’s regional train station in terminal one.  The bus from terminal two to terminal one, which I’ve used before, would probably be a major hassle given my current mobility issues.  We’ll see…

Update:  2024-07-06:  I’ve found that I can indeed get wheelchair assistance between the two terminals in Frankfurt.

*I’ve found out that wheelchair assistance at airports gives me license to cut in line at security, immigration, and the boarding gates.  I’m not sure I deserve that; but I guess it makes sense to allow the folks pushing the wheelchairs to spend less time with me and so serve more customers.

By Their Fruits

It might seem strange for an atheist to quote the Bible; but from the stopped-clock-right-twice-a-day department…

Trump’s never-ending lies made me think of Matthew 7:15-20.  Near the end of the Sermon on the Mount, Jesus warns against false prophets.  He says that, just as you can’t expect to get grapes from thornbushes nor figs from thistles, so you can’t expect to get the truth from those who customarily lie.

Will “Bible believers” who “love Jesus” be moved by teaching that’s actually attributed to Jesus in a gospel?  A few might; but for the most part, nope, not a chance.  “Wherefore by their fruits ye shall know them.” (KJV)

That Horrible Debate

I still can’t process the “debate” that some of us endured on Thursday; but it’s clear that Biden’s awful performance is almost all of what the media want to talk about.  Trump’s Gish gallop of one bare-faced lie after another is hardly mentioned.

How can that be?  The only thing I can think of is that Biden’s performance was shocking, but Trump’s lies were unsurprising.

The Debate

I guess I’ll watch the big debate tonight.  I don’t expect to learn anything new about either Biden’s or Trump’s policies; but this boomer thinks it’s a civic duty…or something.  This time, it might be fun to see how Trump reacts to having his microphone cut off when it’s not his turn.

I don’t watch enough TV to justify getting cable; so I won’t be watching on CNN; but all of the usual five broadcast networks will air the debate beginning at 8:00pm central time (my time since I live in St. Louis).  Curiously, the online version of TV Guide shows FOX dumping out at 9:37 with all the others ending at 10:00.  I’m guessing that FOX is worried about having to find nice things to say about Trump in post-debate analysis. 😎  I’ll probably watch on PBS even though I’ll likely have to put up with Amy Walter making self-fulfulling prophecies about “electability” in the post-debate segment.

Two of the networks will have pre-debate analysis:  ABC News Special: Race for the White House from 7:00 to 8:00, andFOX News Special: Democracy '24 from 7:30 to 8:00.  I wouldn’t normally pay any attention to corporate media’s predictions of what will happen, preferring to see what actually happens; but the FOX show is only half an hour long; and it might be interesting to see whether they mindlessly repeat Trump’s claim that Biden will be using performance-enhancing drugs or something even more stupid.

In any event, I guess I’ll have to miss parts one and two of Planet of the Spiders on the Retro TV network.

Sentimental Value

PZ has a post about an old pocket watch that he inherited that includes:

Not particularly rare or valuable, but I didn’t expect much — it’s value is all sentimental to me.

I thought of adding a comment, but it wouldn’t have been about watches, so rather than hijack PZ’s comment thread, I decided to write a short post of my own.

Years ago, my maternal grandmother found an old sampler in a trunk; and she put it in a frame and hung it on her wall.  I was the only grandchild who stood up on a chair, pointed to each of the letters, and said, “A-B-C-D…”, so I inherited it.

About thirty years ago, I showed it to a woman (I can’t remember her name) who was the curator of fabrics at the St. Louis Art Museum.  As soon as she saw it, her face dropped.  It’s in a rather common style for the time, and it’s unfinished.

But I got her to clean it up as best she could and mount it on an acid-free backing.  That cost me way more than the object is worth by itself; but, yeah, it’s sentimental.

photo of sampler

The Next Treatment

I mentioned in a previous post that the cancer had returned and that I’d be getting yet another round of treatments.  The plan was to start four weeks of more aggressive radiation, twice a day for five days per week, and start another round of chemotherapy on radiation day 1.  That changed for some reason I don’t remember; so the current plan is to do just the chemo today, tomorrow and Wednesday, and then start the radiation and second session of three days of chemo on the 28th.

2024-05-06 13:30:

Here I sit getting my first of three days of chemotherapy.  I got started shortly after noon with some administrivia, three drugs administered from a syringe hooked up to the IV, and a bag of some drug that took about half an hour to drip.  Bag number two has started and will drip for about an hour; and then there will be maybe ten or fifteen minutes of more administrivia.  I hope to be out of here by 15:00.