Wednesday, September 14, 2022

Perhaps it is just me, but...

... I really think they're making the Wordle words harder.

Lofty, Tibia, Booze, Alpha, ...

Plus, today's word matches last Friday's word in four of the five letters.

Our scores nowadays are regularly four guesses, and frequently five guesses.

Of course, there is the other theory: I'm just getting old.

Friday, September 9, 2022

Progress in diff-land

Years ago, in an earlier stage of my career, I was totally and obsessively fascinated with the internals of 'diff'.

Then I wandered away from that extremely deep, but extremely narrow, field of study, and lost track of what was going on with 'diff'. The last thing I had really paid any attention to was Patience Diff, which is decades old at this point.

Browsing the net this week, I find out that, of course, progress never stops, and big steps continue to be taken:

  • About 5 years ago, Tristan Hume published an article on an interesting new approach to tree diffing: Designing a Tree Diff Algorithm Using Dynamic Programming and A*.
    After 2+ days of research, discussing ideas with my mentor, and sitting down in a chair staring out at the nice view of London while thinking and sketching out cases of the algorithm in a notebook, I had something. It was a recursive dynamic programming algorithm that checked every possible way of placing the :by-date blocks and chose the best, but used memoization (that’s the dynamic programming part) so that it re-used sub-problems and had polynomial instead of exponential complexity.
  • A year or so later, Russell McQueeney built on this tree-diffing algorithm to build a new structural diff algorithm for Clojure: Autochrome - Structural diffs for Clojure source code
    in order to frame tree diffing as a pathfinding problem, you need to extend the concepts of location, cost, and adjacency to tree diffs. Location is clearly needed to know where you are, but in addition locations need to be comparable, so you know not to bother when you already have a better path to the same place. Cost is what makes some paths preferred over others. For pathfinding on a road network, this would be the total distance traveled along the roads used. Adjacency is what states are reachable from a particular state. For roads you might say that intersections are the nodes and adjacency means there is a road connecting them.
  • And now, Wilfred Hughes takes a further step, abstracting out the language syntax to allow the algorithm to support a variety of programming languages: Difftastic, the Fantastic Diff
    Autochrome and difftastic represent diffing as a shortest path problem on a directed acyclic graph. A vertex represents a pair of positions: the position in the left-hand side s-expression (before), and the position in the right-hand side s-expression (after).

    The goal is to find the shortest route from the start vertex (where both positions are before the first item in the programs) to the end vertex (where both positions are after the last item in the program).

If I could just live another 50 years, what a marvelous 'diff' tool I could look forward to!

Wednesday, September 7, 2022

Vaccine heh

I realized the other day that it'd been 9 months since I got my third COVID-19 vaccination (my first booster). Since I'm over 61, and it is suggested that a second booster would be valuable, and since my calendar had an opening that matched the pharmacy's schedule, I went online and scheduled my appointment.

The online system asked me if I wanted Pfizer or Moderna, so I picked one.

My appointment date came, and I got to the pharmacy and told the pharmacist I was here for my COVID booster appointment.

Well, as I guess everyone in the world knows, between the time that I made my appointment, and the time of my appointment, a new booster shot was approved.

The Safeway Pharmacy computer had scheduled me for an appointment for the regular booster.

Which is no longer available, since now there is a new booster.

So Safeway canceled my appointment (although they didn’t tell me when they did that, they just waited for me to show up).

I guess their computer couldn't just switch my appointment to the new booster.

Although that probably couldn't have worked, because the Safeway Pharmacy doesn't have the new booster, either.

Right now, they don't have any booster at all.

I apparently can make a new appointment sometime in the future and it will be for the new booster, but I can’t do that until they get the new booster, and they don’t know when that will be.

So, there you go. I still only have a single booster shot. But that's better than nothing, so it's fine. It's all fine.

Friday, September 2, 2022

There should be more articles like this on the Internet

From one of my favorite newletters comes a nice short article about a bunch of board games I'd never heard of: Stardock Game Night: Games for Big Groups.

I thought I would share a few of our favorite group games here at Stardock in case you find yourself bursting at the seams on game night.

Tuesday, August 16, 2022

A long trip to Hunky

Yeast : yellow 'y'

Ducky: green 'u','k','y'

Bulky: green 'u','k','y'

Funky: green 'u','n','k','y'

Junky: green 'u','n','k','y'

Hunky: green 'h','u','n','k','y'

"Hunky" ? For real?

Well, at least we had 6 guesses.

And man oh man, was 'Ducky' a good guess (thank you to the best partner there is!)

Tuesday, August 2, 2022

First Wordle bust in 6 months

Ouch!

Time to start a new streak!

At least now I am 'Y's to the word that broke our streak :)

Monday, August 1, 2022

Backpacking 2022: The McKinney fire

It was time to go, we had made our plans, we had packed our gear, so we loaded up the cars and went.

Only, just as we were getting on the road for the 7 hour drive to the trailhead, the McKinney fire was ignited by a cluster of lightning strikes over the Klamath National Forest.

As we headed north, we could start to see the amazing pyrocumulus cloud created by the fire. Reports estimated that it reached 50,000 feet.

By the time we were nearing the town of Yreka, CA, the sun was no longer visible.

We spent the night in a motel in Yreka, surrounded by wilderness firefighting units who had arrived from all directions.

In the morning, there was ash everywhere, and the air was unbreathable. We wished the firemen good luck and hopes for a favorable turn in the weather, climbed back in our cars, and headed home.

On the way home we visited Burney Falls State Park, where the weather was beautiful and we ate our backpacking food as a fine picnic lunch near the falls.

We will have to try again next time.

Friday, July 29, 2022

Some Wordles are strangely hard.

Steep, stamp, stump, stomp.

When you start out with 3 letters in the correct positions, you feel unreasonably aggravated when it takes you 4 total guesses to find the final word.

Then the very next day we caught a break and found the answer on the second guess (very rare for us, our average is about 3.5)

I find doubled letters very hard. Madam was one of our rare 6-guesses.

I also don't have a good understanding of Wordle's treatment of plurals. It seems like Wordle will very rarely choose a word such as 'nails' or 'belts' as the final word, but it will happily accept such guesses from us. So when we get an 's', we try to avoid guessing a simple 4 letter plural. If that's a true understanding of Wordle's behavior, it suggests that the game has two dictionaries, or at least some sort of additional logic in the selection of the daily word to downplay simple plurals.

After 190 games, we've never guessed the word on our first guess.

Thursday, July 28, 2022

Dead and Company, June 17-18, 2022

I got a chance to hook up with my friends and make the Dead and Company shows in Boulder, Colorado, on June 17-18 this year.

Boulder is an unusually nice place to be, at any time of the year, but in early summer it is delightful. Gorgeous weather, the Rocky Mountains, and outdoor music: what more could you want?

This is the 50th anniversary of Europe '72, felt by many people to be the best Grateful Dead album of them all, and the two Boulder shows dipped deeply into that history, featuring 10 selections from that album, all told:

  • I Know You Rider
  • Ramble on Rose
  • He's Gone
  • Brown Eyed Women
  • Truckin'
  • Morning Dew
  • One More Saturday Night
  • China Cat Sunflower
  • Hurts Me Too
  • Mr. Charlie

The band also included many other fan favorites, both older ones (Viola Lee Blues, The Other One, Wharf Rat, Bertha) and newer ones (Althea, Terrapin Station, Let It Grow)

I particularly enjoyed a number of covers of other music that I hadn't ever heard them play in person, including:

  • All Along the Watchtower
  • Dear Mr. Fantasy
  • Hey Jude
  • Milestones

All in all, it's a remarkable catalogue.

Somewhere I read that Jerry Garcia was known to have performed over 1,000 different songs in his career (which wasn't all with the Grateful Dead). This First Monday essay states that the Grateful Dead are known to have performed over 450 unique songs.

I had a wonderful time, and I do hope I get the chance to do something like this again.

Hey! I still wasn't the oldest person at the shows, not by a long shot!

Monday, July 18, 2022

Cornell '77: a very short review

Cornell University Press published a serious book of history about the Grateful Dead: Cornell '77: The Music, the Myth, and the Magnificence of the Grateful Dead's Concert at Barton Hall

The concert in question was just one show in the band's 1977 spring tour; it happened to be on the campus of Cornell University and was organized by the students at the university.

I'm sure you have to already be a fan of the band (a "Deadhead") to really enjoy the book; certainly you have to be at least a little interested in the band to have any interest in the book.

I really liked the book and passed it on to my brother-in-law, who is also a Deadhead, and who even has a collection of CD's of recordings of other concerts on the same tour.

My guess is that: if you're a little bit interested in the band but not very knowledgeable about them, you'll learn a lot from Cornell '77, while if you're already very knowledgeable about the band, you won't learn very much. I guess I was somewhat in the middle, because I learned more than I was expecting to learn (including a little bit about Cornell University, about which I knew next-to-nothing).

Saturday, July 9, 2022

Apache DB is 20 years old

The DB project at the Apache Software Foundation was founded on July 16th, 2022, which means it's 20 years old.

The software that is maintained by the DB project includes work that was donated to the ASF, but was completed years before that, so some of this software is more than 25 years old and is still in regular use around the world.

Pretty good achievement.

Wednesday, July 6, 2022

Easy bus never comes around

Here's a really lovely short speech by Kara Lawson, Duke University women's basketball coach.

Excerpt:

"We all wait in life for things to get easier. ... It will never get easier. ... What happens is you become someone who handles hard stuff better."

"That's a mental shift that has to occur in each of your brains. It has to. Because if you go around waiting for stuff to get easier in life, it's never going to happen."

Sunday, July 3, 2022

Release It! : a very short review

Michael Nygard's Release It! is now five years old, which seems like an eternity in the world of Cloud Computing, so I was prepared for it to seem stale and out-dated, but in fact it still feels fresh and relevant.

Nygard nicely describes the goal of his book in the very first paragraph of the Preface:

In this book, you will examine ways to architect, design, and build software -- particularly distributed systems -- for the muck and mire of the real world. You will prepare for the armies of illogical users who do crazy, unpredictable things. Your software will be under attack from the moment you release it. It needs to stand up to the typhoon winds of flash mobs or the crushing pressure of a DDoS attack by poorly secured IoT toaster ovens. You'll take a hard look at software that failed the test and find ways to make sure your software survives contact with the real world.

In this compact description, Nygard conveys all the reasons that I found his book to be well worth the time:

  • It's based in experience. Nygard shares dozens of real situations that he's encountered while building modern Internet systems, and isn't afraid to reveal his mistakes and how he learned from them.
  • It provides solutions, not just problems. Nygard survived his mistakes and kept good records about basic, solid approaches that he used successfully in his work.
  • It's lively and fun to read. If you've ever tried to spend time digging into Cloud Computing technology in areas such as networking, security, or resource virtualization, let me tell you: it is dry, dry, dry, full of acronyms and abstraction. Nygard's writing style is a bit breezy, but it's light and entertaining and he succeeds, for the most part, at taking some very dull material and making it, well, at least bearable.

It's probably worth comparing Release It! to a broadly similar book, Site Reliability Engineering, which I discussed about six years ago, briefly.

The Google SRE book is longer and more in-depth. It is also considerably harder to read, partly because each chapter of the SRE book is written by a different set of authors, all of whom are experienced in their subject matter, but each with a different writing style and approach. Moreover, the Google SRE book is focused on Google-specific solutions to problems.

Nygard's book is shorter and a lot more fun to read, making it more likely, frankly, that you'll get through it and actually learn things and remember them.

And Nygard doesn't assume you work at Google.

I'd suggest: read them both! Read Nygard's book first, to get a broad and readable grounding in lots of important subjects. Then, if you find yourself actively working in a particular area, dive into the particular subject matter in the Google SRE book as well, for additional depth and more detailed material.

Of course, neither of these alone will make you a successful Infrastructure Engineer at a Cloud Computing company. For that, you'll need a lot more study, a lot more practice, and the opportunity to actually work in such an environment and learn from your peers. None of this comes easy.

Wednesday, June 29, 2022

The Disappearing Spoon: a very short review

Here I am again, twelve years late to the party, but please allow me to tell you about Sam Kean's wonderful The Disappearing Spoon.

The Disappearing Spoon is a history of chemistry organized around the periodic table of the elements.

Whoa! Back up! That sounded really boring! Let's try again:

The Disappearing Spoon is a collection of fascinating vignettes about the chemists, physicists, and other scientists who developed and refined our understanding of modern chemistry, grouped roughly into thematic categories of related tales, inter-sprinkled with just enough basic chemistry information to make you interested in something you (maybe) always thought was too boring for words.

That's better, but still doesn't do it.

The Disappearing Spoon is the sort of book where you start reading about Maria Goeppert, born in Germany in 1906, who was educated in Germany and met her husband, Joseph Mayer, then moved to Baltimore where he was a chemistry professor. You then learn that

her work touched on a mystery that was more difficult to grasp, a deceptively simple problem. The simplest element in the universe, hydrogen, is also the most abundant. The second-simplest element, helium, is the second most abundant. In an aesthetically tidy universe, the third element, lithium, would be the third most abundant, and so on. Our universe isn't tidy. The third most common element is oxygen, element 8. But why?

Now hooked on the question, so nicely-presented, you read on about Goeppert-Mayer's work on the nuclear shell model, and how it was able to explain the prevalence of oxygen in the universe, and how it led to being awarded the Nobel Prize in Chemistry. All well and good, the story then concludes:

Still, she never quite shook the stigma of being a dilettante. When the Swedish Academy announced in 1963 that she had won her profession's highest honor, the San Diego newspaper greeted her big day with the headline "S.D. Mother Wins Nobel Prize."

Many thanks to my great friend Roger, who raved about The Disappearing Spoon for years until I finally broke down and read it, wishing I had listened to him a decade ago.

Saturday, June 25, 2022

An alternate way to visit Yosemite

The nation's very best National Park is, of course, Yosemite National Park. But because of (a) it's the best park, and (b) it's therefore very popular, and (c) it's quite a distance up in the mountains, it can be quite a challenge to visit Yosemite.

The best of all possible ways to visit Yosemite is to arrange to take a backpacking trip into the wilderness; I've been lucky enough to do this multiple times in my life. But this is a big undertaking, and is really not for most people.

Another lovely way to visit Yosemite is to camp or stay in Yosemite valley. There are cabins and tent campsites available in the valley, as well as the Ahwahnee Lodge. These are all wonderful ways to visit Yosemite! But these campsites are very much over-subscribed, and you have to make reservations a year in advance. That's a lot of advance planning!

Many people arrange to stay outside the park, in places like Mariposa or Oakhurst or Sonora, all of which are very nice and have plenty of nice lodging. The downside is that it is at least a 90 minute drive to Yosemite valley from any of these places, possibly longer, which means you're spending a lot of your visiting day in a car. And none of them are actually in Yosemite National Park, so in the morning and at nighttime, you're not in the park, you're in a Gold Rush Town. Which is fun, but not the same thing.

Recently we went to visit Yosemite, and we found a spot in Wawona Village via Yosemite Scenic Wonders. I was a little uncertain about doing this at first, because I'd never done it before, but it turned out to be a wonderful visit. Scenic Wonders operates two areas of rental cabins that are actually inside the Yosemite National Park gates, one in Yosemite West and one in Wawona Village. Wawona Village is a beautiful, under-visited part of Yosemite, located in a small valley on the South Fork of the Merced River (Yosemite Valley is on the main Middle Fork of the Merced). It's quiet and beautiful, and is a lovely place to stay.

Wawona Village is not really close to Yosemite Valley, it's still a significant 45 minute drive, but that's much more feasible than a drive from Mariposa or Oakhurst, and more importantly at night-time you're in the wilderness, you're not in a city!

You get the real experience.

Thursday, June 23, 2022

The Moving Toyshop: a very short review

About eighty years ago, Bruce Montgomery, under the pen name of Edmund Crispin, wrote a series of detective novels featuring Gervase Fen of Oxford. Much has changed in the intervening years, yet Crispin's The Moving Toyshop is still quite enjoyable and entertaining.

The Moving Toyshop is, by turns, silly, exciting, intriguing, amusing, and sexy. At times it often felt like "what Wodehouse would write, if Wodehouse wrote amateur detective stories set in Oxford." Which is no bad thing!

When Crispin so desires, he can write a hard-boiled detective scene with the best of them:

Trapped in the pitch blackness of that musty-smelling passage, his self-control suddenly failed. He knew there was a soft, padding step coming towards him. He knew that he threw the empty torch blindly, and heard it strike the wall. And he sensed, rather than saw, the blazing beam of light which shone out from behind. Then there was a dull, enormous concussion, his head seemed to explode in a flare of blinding scarlet, and there was nothing but a high screaming like the wind in wires and a bright breen globe that fell twisting and diminishing, to annihilation in inky darkness.

And Crispin can be silly:

'Golly,' said Sally when he had finished, and added a little shyly: 'You do believe what I told you, don't you? I know it sounds fantastic, but - '

'My dear Sally, this is such a wild business I'd believe you if you said you were the Lady of Shalott.'

'You do talk funnily, don't you?' But the words were swept away in the rush of wind and the din of the engine.

'What?' said Cadogan.

Wilkes turned round in the front seat. He could hear better when there was a noise going on. 'She says you talk funnily.'

'Do I?' It had not previously occurred to Cadogan that he talked funnily, the thought disturbed him.

'I didn't mean to be rude,' Sally said. 'What do you do? What's your job, I mean?'

'I'm a poet.'

'Golly,' Sally was impressed. 'I've never met a poet before. You don't look like one.'

And Crispin can be sexy:

A girl had just emerged from an alley-way which ran behind one of the shops in the Cornmarket. She was about twenty-three, tall, with a finely-proportioned, loose-limbed body, naturally golden hair, big candid blue eyes, high cheek bones, and a firmly moulded chin. Her scarlet mouth broke into an impish smile as she called back to someone in the alley-way. She wore a shirt and tie, a dark brown coat and skirt, and brogue shoes, and walked with the insouciant swinging grace of perfect health.

A particularly fun part of reading The Moving Toyshop is the number of times I had to reach for my dictionary. Crispin deploys a broad vocabulary, and it was a nice change of pace to stop and look up some of the relatively unusual words I encountered: homiletic, steatopygic, budgerigars, atrabilious, fortalice, myrmidons, prepossession, perorated, rodomontade, groined, cheiromancer.

Along the way, our merry band of adventurers manage to track down and collar a group of scoundrels and deliver them to the local authorities, then retire to the local pub for their deserved, but mannered, celebratory feast.

Although The Moving Toyshop was published in 1946, Crispin is typically considered to be part of the great Golden Age of British detective writing, alongside other giants of the time such as Agatha Christie, Margery Allingham, Ngaio Marsh, Dorothy Sayers, GK Chesterton, Anthony Berkeley, Nicholas Blake, and more.

And, clocking in at a brisk 200 pages of rapid, easy reading, Crispin is a lovely way to explore that great period of writing, and I look forward to spending more time with his work in the future.

Tuesday, June 7, 2022

Oksi: a very short review

I don't read graphic novels very often (although I do like the genre).

I really don't read Finnish novels very often.

Mari Ahokoivu's Oksi is definitely the only Finnish graphic novel I have ever read.

I tend to read graphic novels too quickly, not paying enough attention to the artwork as I go, and Oksi is no exception. Worse, I read it quickly and yet over multiple sittings (it's quite a large book). So I tended to get immersed, and then break away, and then later I'd return to the book with a profound sense of dislocation, and struggle to re-capture whatever it was I was feeling the previous time.

Still, I felt that Oksi is deep, thought-provoking, disturbing, and complex. It's very effective, and I think this is a great example of why a graphic novel can be considered to be serious literature.

I found several online reviews where readers said that, having read it quickly (as I did), they now felt the urge to go back and re-read it slowly.

I think I'm different: I enjoyed the hours I spent with Oksi, but I'm going to pass it on to somebody else now.

But one last comment/question: how does this relate to Oski the Bear? I assume they're the same underlying character, although I've never heard anything about the mascot's name being related to Finnish mythology.

Monday, May 23, 2022

Abraham Lincoln, Vampire Hunter: a very short review

Wow, it's been a really long time since I wrote on the blog. Bad Bryan!

Seth Grahame-Smith's quite bizarre Abraham Lincoln: Vampire Hunter followed just a few years after his earlier (and better known?) sensation: Pride and Prejudice and Zombies (which I didn't read).

Abraham Lincoln: Vampire Hunter has several things going for it:

  • It's a quick read, with (unsurprisingly) lots of action!
  • The decision to suspend your disbelief is not complicated here: you either accept the basic premise or (and I'm sure this is common) you just don't bother with the book.
  • Grahame-Smith actually turns out to be much more interested in Abraham Lincoln than he is in Vampires
  • And, perhaps most importantly, the premise is actually quite an interesting metaphor.

It's that last point that is surely arguable, and I'll concede it is not to be taken too seriously. The two hundred and fifty years or so during which North America experienced the horrors of human slavery are surely among the most evil period of modern human history, and anything which deflects from that evilness can be criticized and rightly so.

On the other hand, it is all too easy for modern Americans in their easy chairs to look away from that time, close their eyes, and try to avoid thinking about it entirely. For how can we easily come to grips with the sheer monstrosity; it is so dreadful that we cannot even bear to contemplate it, and yet, undeniably, Abraham Lincoln did contemplate it, and did come to grips with it, and did do something about it, and did pay for that with his own life.

It's a story worth telling, and if Grahame-Smith's bizarre mash-up of history and horror novel manages to provoke even some people to stop and consider and imagine what it must have been like in those times, and how hard it must have been to completely re-shape the country into a totally different result, I'm willing to grant him considerable latitude in trying to take steps in that direction.

Wednesday, May 4, 2022

Death and Judgement: a very short review

Donna Leon's Death and Judgment is the fourth Guido Brunetti novel.

But rather than becoming formulaic and predictable, Leon's books are progressing nicely, becoming richer, more compelling, and more fascinating.

Indeed, at this point we can perhaps say that Leon has solidly found her footing, and Death and Judgment is perhaps the first complete work of the Guido Brunetti series.

What evidence can I present for this claim? Well, here's a sampling:

  • The plot is sharp. The criminals are despicable, and the villains are truly horrific. The three page segment late in the book in which Brunetti finally connects all the dots when he views a short video of one of the crimes is one of the most gripping sequences I've read in years. After I got through it, I had to put the book down and go for a long walk in the sunshine and look out over the ocean and try to recover: it was that vivid and terrifying.
  • The supporting characters become richer and more fascinating. Previously we've learned a lot about Brunetti's wife Paola; in Death and Judgment it is his daughter's turn. And this, too, adds depth, as Brunetti observes when he reflects on the consequences of bringing his work home with him:
    His mind flew up and away from the room. He tried to think noble thoughts, tried to think of something to say that would assure his child, convince her that, however wicked what she had seen, the world was a place where things like that were random, and humanity remained good by instinct and impulse.

Brunetti does not so attempt to convince his daughter. Rather, he is straight with her, in a quietly powerful conversation.

Everything is working for Leon: her pacing is excellent, her characters are believable, her evocation of Venice is engrossing, and her plots and tales are just as vivid and compelling now as when she wrote Death and Judgment twenty seven years ago.

Can't wait to read more of Comissario Brunetti's adventures!

Saturday, April 30, 2022

Before the Fall: a very short review

Noah Hawley is perhaps best known for his work in television: first Bones, then the extremely well-received Fargo.

It turns out that he's also written a number of novels. I was looking for something simple to take along with me on a cross-country plane trip, and I ended up with his Before the Fall

Hawley developed his skills as a screenwriter and you can really feel it in his writing. Before the Fall opens with a BANG! and the first 50 pages fly by before you can catch your breath.

The rest of the book careens along like Mr Toad's Wild Ride, but Hawley has a natural sense of pace. Each time I felt my attention about to flag, he'd drop another shoe and hook me for another few chapters.

Overall, the book delivers on its promise: it's an enjoyable time-filler, keeping you just intrigued enough to see it through to its satisfying conclusion.

One detail, though: I think I mentioned I picked this up for a plane trip?

Uhm, perhaps not my most well-considered choice, as the entire book is about a plane crash.

Heh. Serves me right.

Wednesday, April 27, 2022

What does Google have against "exposed"?

I was writing a document using Google Documents, and I wrote:

[Activity X] exposed problems with [Program Feature Y]

Google flagged "exposed" as an undesirable word, and said to me:

Word Choice: These synonyms may make your writing flow better. Try using:
  • uncovered
  • revealed

Elsewhere in my document I wrote:

The precise timeframe for this ...

and Google flagged "precise" as an undesirable word, and said to me:

Word Choice: These synonyms may make your writing flow better. Try using:
  • specific
  • exact

What the heck is up with Google?

Tuesday, April 12, 2022

California COVID progress

From what I can tell, the California state-wide COVID-19 website has now switched to twice-a-week updates.

For many months, the site was updated seven days a week, with only occasional omissions for major holidays.

Sometime last fall, the site switched being updated only five days a week, taking Saturday and Sunday off and bundling those results into Monday's update.

This week, when I look at the website, it says:

Data is updated on Tuesdays and Fridays.

I suppose this is probably progress, as the state presumably feels that it's no longer important to update the site as frequently.

P.S. I think nobody makes the attempt to say "Data are updated..." anymore. I am showing my age.

Release notes done well

In computer industry parlance, Release Notes are a mechanism for communicating change.

A software system typically undergoes a series of development cycles, with the result that, every so often, a new version of the software is released. Each release generally contains a compendium of bug fixes, as well as some number of new features.

For a small piece of software, or for a piece of software that is frequently released, release notes can be boring and mostly inconsequential, simple recitals of bug fixes which are often only of interest to the handful that encountered that particular bug.

For a large and sophisticated piece of software, a long time may have elapsed between releases, and a large team may have been working on the software, and so the scope of the change between releases may be hard, and challenging to communicate.

A common approach is to have a summary listing, embedded with myriad links to details, for example the Linux Kernel release notes tend to follow this format. Another classic example is the Java release notes.

Now, Unreal Engine is a very sophisticated piece of software which is nearing its 25th anniversary.

Unreal Engine 4 was released in 2015. Unreal Engine 5 was released in 2022.

That's a long time, and that's a large piece of software, and so the technical communication challenge is immense.

So it's lovely to see what a stunning job has been done with the Unreal Engine 5 Release Notes.

Although the overall format is very similar to the Linux Kernel release notes, being a single immense listing of changes, each with their own hyperlink to background material with further details, what a difference the presentation makes! The Unreal Engine 5 release notes are lavishly illustrated, with animated GIFs and other illustration techniques throughout.

Of course, this material is not for the novice reader; you have to be prepared to encounter sentences such as

The Shader Complexity view mode shows a heatmap of shader instruction counts per pixel, encompassing all rendered objects. Nanite's existing Material Complexity view mode shows a heatmap of the number of unique materials on Nanite geometry only per 8x8 tile, which is a useful metric for determining material coherency in the Nanite pass.

But my oh my, if this is the sort of stuff that gets you up in the morning, browsing the Unreal Engine 5 documentation will provide many hours of glorious exploration of new and fascinating ways to make computers work magic.

Thursday, March 31, 2022

USMNT is Qatar-bound!

Losing to Costa Rica by a score of only 0-2 turned out to be plenty to retain third place in the CONCACAF World Cup qualification group, and means the US has qualified for the 2022 World Cup, to be held in Qatar approximately eight months from now.

I haven't followed the qualification matches closely, but all accounts seem to agree that the team have recruited some young and exciting talent and hopefully it will be fun to watch!

Actually, the big surprise from this round of matches is the impressive performance of the Canadian team, which finished clear first in CONCACAF. This is the first time in THIRTY SIX YEARS that Canada have qualified for the World Cup, and to do so by taking clear first in the group is remarkable.

Looking forward to November!

Thursday, March 24, 2022

More mysteries of COVID-19

Both from the most excellent Bloomberg Prognosis newletter.

  • From the current Moderna study on vaccination of very young children:
    The drugmaker said Wednesday that its shot appeared effective for kids aged 6 months to 5 years. The trial found it generated a strong immune response, without any serious safety concerns. You could practically hear parents everywhere breathing a sigh of relief.

    But don’t start celebrating just yet. Dive into the data and it gets a bit more complicated: The shot was only around 44% effective in stopping Covid cases in the 6-month to 2-year age range, and around 38% effective for 2- to 5-year-olds. None of the 7,000 children in the trial contracted a severe case of the disease, but it's hard to tell whether the shot was the reason, since no one in a placebo group caught a severe case either.
  • From South Korea, which has a relatively unique COVID-19 policy:
    In just one day, Covid-19 cases jumped by more than 220,000 to a world-topping daily tally of 621,328.

    Normally such a case count would cause shock and panic. But not in South Korea, where government officials were breathing a sigh of relief. Their singular focus — the fatality rate — was still falling, dropping to 0.14%, one of the world’s lowest. That meant Korea’s virus-death rate was less than one-10th that of the U.S. and the U.K.

    Unlike other countries that have given up and stopped tracking the virus, Korea continues to test everyone, at a cost of $1.3 billion so far, which led to the astronomical case counts. But testing diligence, combined with a focus on vaccinations, is credited with keeping hospitalizations and deaths low.

Monday, March 21, 2022

Statistics are looking better, at least close to home

The number of COVID-19 hospitalizations in Alameda County hasn't been this low since December 20, 2021.

And the test positivity rate hasn't been this low in Alameda County since before Thanksgiving of 2021.

Those are nice things to see.

We went to a youth musical theater event this weekend, indoors. They checked our vaccination cards at the door, and we were fully masked for the entire event, which was fine with me.

Overall, nobody seemed to be complaining about the protocols, which doesn't surprise me here in the East Bay. People are still taking things quite seriously here.

But it sure is nice to see the statistics improving.

Saturday, March 19, 2022

Dressed for Death: a very short review

Book 3 in Donna Leon's Guido Brunetti detective series is Dressed for Death.

Having established Brunetti and his cohort as central characters with solid backgrounds, Leon now starts to spend less time on the familiar characters and more time on other topics.

Here, the topic material initially starts as a crime against sex workers in the mainland Mestre borough of Venice, then moves on to a financial crime hidden behind a non-profit organization's front.

Even more shockingly, Leon dispatches one of Brunetti's colleagues suddenly and unexpectedly, in a passage of real drama, making Book 3 considerably more "hard-boiled" than the first two, which could have been written by Agatha Christie 50 years earlier.

I sailed happily through Dressed for Death in a matter of days, hungry for more.

Thursday, March 17, 2022

I got bit by the Docker pid 1 Zombie child reaping problem

Heh, how's that for a hook?

I was having the hardest time porting a collection of test suites to a new testing lab.

In particular, I was struggling with a shell script that does a strange thing:

  • The script is trying to shutdown a server process.
  • After various other steps, the script does a kill -9 to kill the process.
  • Then the script enters a loop where it checks whether the process still exists,
    • And it doesn't exit that loop until the process is gone

And the script was hanging.

Now, I agree, that seems like a strange thing for a script to do, since as we all know, signal 9 cannot be blocked nor caught, and the signal action is to end the process. Why was the script bothering to verify that the signal 9 worked?

But, more curious, why wasn't the signal working?

At first, I followed a wild goose chase, convinced that I was struggling with some sort of security issue which was preventing one process from inquiring about the status of another process. We were using kill -0 [PID] to check to see if the other process existed, so I tried messing about with that. I tried switching that code to use test -e /proc/[PID]. I tried using /bin/kill to see if we were somehow using a Bash with a built-in kill command that was malfunctioning. I tried using various incantations of the ps command to examine the target process, like ps -o pid= -p [PID] and ps -ef | grep \w[PID]\w | grep -v grep | wc -l.

All of these various approaches agreed: the process was still alive.

How could kill -9 not kill the process?

Finally I collected ps -ef output at the point where the termination script was hanging.

And, indeed, the process still existed!

It was in [defunct] state.

At this point, I finally knew what was really going on: the system wasn't reaping Zombie processes properly.

This is the function of the init process, so then I started searching the internet for things like Zombie defunct init Docker and I very quickly found the answer:

  • Docker and the PID 1 zombie reaping problem
    When building Docker containers, you should be aware of the PID 1 zombie reaping problem. That problem can cause unexpected and obscure-looking issues when you least expect it. This article explains the PID 1 problem, explains how you can solve it, and presents a pre-built solution that you can use: Baseimage-docker.

At this point, one (properly) skeptical colleague of mine said: "why are you pointing us at a 7-year-old blog post? Surely that's been fixed by now?".

But it hasn't! It's mostly fixed, but it's still a problem. The "fix" was to document the behavior:

  • Run multiple services in a container
    The container’s main process is responsible for managing all processes that it starts. In some cases, the main process isn’t well-designed, and doesn’t handle “reaping” (stopping) child processes gracefully when the container exits. If your process falls into this category, you can use the --init option when you run the container. The --init flag inserts a tiny init-process into the container as the main process, and handles reaping of all processes when the container exits.

There's a long tortured backstory for people who want to learn the gory details:

  • Zombie Processes
    If like in standard docker container launching a command, there is no proper init process, nobody will care about orphaned processes and they will stay here as zombies also called defunct.
  • Introducing dumb-init, an init system for Docker containers
    Lightweight containers have made running a single process without normal init systems like systemd or sysvinit practical. However, omitting an init system often leads to incorrect handling of processes and signals, and can result in problems such as containers which can’t be gracefully stopped, or leaking containers which should have been destroyed.
  • https://github.com/krallin/tini
    Tini is the simplest init you could think of. All Tini does is spawn a single child (Tini is meant to be run in a container), and wait for it to exit all the while reaping zombies and performing signal forwarding.

Note that tini is init spelled backward. We programmers like that sort of joke.

And buried in that backstory is the odd side-story that bash, if used as --entrypoint, does reap zombie children, which explains why all my simple reproduction tests never reproduced the problem cleanly, so that I could only reproduce it with a two hour complicated full test run (groan).

But the bottom line is: docker run --init is there for a reason.

And kill -9 doesn't always "work", if init isn't reaping processes.

Sunday, March 13, 2022

This is why the Internet exists.

There are important questions.

They are hard to answer.

They NEED to be studied.

And on the Internet there will be, given enough time, someone who will study them.

What literature did Nate and Nora keep on their shelves?

Wednesday, March 9, 2022

One full month after fully recovering from my case of COVID-19...

... about all I can sensibly say about the experience is: if this is what it was like to catch the "mild" variant of COVID-19, after being fully vaccinated and also having my booster shot, and being of generally good health for my age, then I can hardly imagine what it would have been like to catch the "full" variant of COVID-19 with no vaccination protection at all.

All in all, it was mild, I rested a LOT, drank VAST amounts of water and tea and juice, snuffled and sniffed and cleared my throat for about 8 days, then spent about 10 more days just feeling tired and achy and generally low.

But now at last I feel back to my normal self.

(Whatever that is.)

Sunday, March 6, 2022

Disco Elysium: a very short review

Disco Elysium was for quite a while the highest-rated game on the Metacritic PC review aggregator, and justifiably so: it's an excellent game, and I thoroughly enjoyed the 70 hours or so that I spent with the game this winter.

It's a little bit hard to describe Disco Elysium. The overall plot structure is a murder mystery: your character is a police officer, charged with solving the murder of a man who is found dead in the alley outside the local pub. The game is set in a small physical realm, but the gamespace is rich with interactivity: objects, characters, events, etc.

As a Role Playing Game, you find a lot of choice in how you play the game. Initially, you must go through the typical character design step, where you choose some basic characteristics of your character which will establish how the game behaves.

But there are several dozen characteristics!

Some of them are quite obvious, such as Intellect, Endurance, Reaction Speed, etc. Others are uncommon but fairly obvious, such as Perception, Suggestion, Empathy, and Rhetoric. Others still are quite unusual, with names like Inland Empire, Shivers, Savoir Faire, and Half Light.

Given that, over the range of the game, your character might come to have a level anywhere between 1 and 10 for each of these 24 characteristics, the span of possible states is enormous.

In practice, what this means is that each encounter in the game plays out in a very different way depending on how you chose your initial characteristics, and on how you chose to develop your character during the game.

And, of course, depending on how you chose to respond during each encounter. Particularly since the results of earlier encounters and decisions change the odds and outcomes of later ones.

And just to expand the variability still more, there is the traditional RPG element of chance, as the game nearly always throws the dice as part of each particular event.

It's a truly immense pallette of possibilities.

Faced with this, rather than designing my character intricately bit-by-bit, I chose one of the "presets" that the game offered at the start. The preset I picked was "sensitive", which was basically an arbitrary choice on my part. I suspect that the game designers intended this to take me down a particular play style, in which my decisions were emotional, dramatic, perhaps even impulsive.

As the game went on, though, I found myself choosing dialog selections that were perhaps at odds with my character's attributes, as the game kept bestowing honors on me such as "Unbelievably Boring", and "The World's Most Laughable Centrist", and "Literally The Sorriest Cop On Earth".

It's that kind of a game, snarky and yet incisive all at once.

The game was enjoyable from start to finish, and I really enjoyed the conclusion, as it indeed seemed to result in the outcome that my character deserved. Many people talk about the immense replayability of Disco Elysium, and it clearly would reward various replays with completely different approaches that would reveal various other aspects of the game world.

But time is short and I had a very satisfying first play, so I suspect I'm unlikely to find another 70 hours anytime soon, as there are too many other demands on my time.

Friday, February 18, 2022

Statistically speaking...

... I continue to visit the California COVID-19 dashboard, nearly every day.

The total number of cases, total number of hospitalizations, and test positivity rate are continuing to fall very rapidly in the last 10 days or so.

However!

The absolute numbers, both state-wide, and in my county of residence, are STILL higher than they were at the PEAK of last summer's wave.

Be careful out there, everyone! Get those vaccines, get those boosters, wear a GOOD mask when you're in an indoor space, or even in a crowded outdoor space.

Take it from someone who did all that, and is still working to recover from a bout of COVID himself...

Friday, February 11, 2022

Repairing the Tonga cable

Wonderful article on Reuters (with lovely and very informative graphics) about the work to repair the Tonga cable: The race to reconnect Tonga

The 827 km (514 miles) cable from Fiji to Tonga is one of 436 active undersea cables that connect the globe.
...
Most cable damage occurs due to ship anchors or fishing trawlers and occasionally environmental factors such as earthquakes.

Faults are common and typically most traffic would be rerouted to another cable. However, in Tonga’s case, there is only one cable connecting the country.
...
The fibre optic cable isn’t easy to fix. A technician splices the glass fibres and uses glue to attach the new section of the cable. This fibre optic splicing can take up to 16 hours and is the most crucial aspect of the repair work.
...
A remotely operated vehicle (ROV) may descend to the seabed to inspect and help bury the cable, although they can only work to a certain depth. In the case of the Reliance, the vehicle can descend up to 2,500 meters.

Thursday, February 10, 2022

A couple fun gaming articles

Happened across these for various random reasons, and enjoyed them.

  • Meet the hundreds of horse girls running Red Dead Online's kindest posse
    In early 2020, when the global response to Covid-19 mandated national lockdowns and stay-at-home orders, online gaming had a huge boom. Friends celebrated birthdays inside Animal Crossing: New Horizons. Gamers introduced family members to browser party games to keep in touch.

    ...

    "Quarantine happened and a lot of people weren't able to see their horses," Farace explains. She was frequenting a Facebook group of horse-loving gamers at the time, and a post caught her eye. "Red Dead people were like 'let's have online trail rides!'"

    "With RDR2 having some of the most beautiful horse models in video games, topped off with beautiful motion captured animations and a breathtaking wilderness, it's a blast to take pictures in this game." It was by uploading her photos to the Rockstar Social Club that Sunny met another member of The Rift and started joining in on trail rides.
  • The Notorious Board Game That Takes 1,500 Hours To Complete
    The game itself covers the famous WWII operations in Libya and Egypt between 1940 and 1943. Along with the opaque rulebook, the box includes 1,600 cardboard chits, a few dozen charts tabulating damage, morale, and mechanical failure, and a swaddling 10-foot long map that brings the Sahara to your kitchen table. You’ll need to recruit 10 total players, (five Allied, five Axis,) who will each lord over a specialized division. The Front-line and Air Commanders will issue orders to the troops in battle, the Rear and Logistics Commanders will ferry supplies to the combat areas, and lastly, a Commander-in-Chief will be responsible for all macro strategic decisions over the course of the conflict. If you and your group meets for three hours at a time, twice a month, you’d wrap up the campaign in about 20 years.

    ...

    “Every military division has a sheet of paper, and on it you’ve got a box for every battalion. It’ll tell you how many guns you have, but more interestingly, it’ll also list the fuel and water. Every game turn, three percent of the fuel evaporates, unless you’re the British before a certain date, because they used 50-gallon drums instead of jerry cans. So instead, seven percent of their fuel evaporates,” explains Phipps.

    ...

    We’re in the midst of a tabletop renaissance. Global board game sales have boomed over the past few years, and a renewed interest in the hobby has seeped into coffee shops, video game publishers, and publications like ours. Despite that, the classic hexagonal historical war-game—the true bones of the industry—are a dying breed. This is the Catan generation: millennials weaned on the crisp, instinctual gameplay perfected by the German masters. Phipps has fond memories of the late-’70s “the golden age” of war-gaming - where publishers routinely tried to out-convolute each other with their designs, because surely, the more complex a game is, the grander it must be. “After that golden age the designs got better,” he says. “But at the time there’s this sense of excitement, everything is new and possible.”

Monday, February 7, 2022

Cartographer humor

Ah, delightful: Sea Chase.

References, for you mapping nerds out there (pretty sure none of you read my blog anyway):

Saturday, January 29, 2022

Death in a Strange Country: a very short review

Donna Leon's second Guido Brunetti book, Death in a Strange Country followed close on the heels of her first, as she established from the start the pace that has allowed her to write thirty-plus books in barely 25 years.

The "strange country" of the title refers to the uneasy existence of U.S. military troops on European soil, something that was established at the end of World War II and then expanded greatly as the NATO alliance grew and deepened over the following decades.

You could see the "strange country" in either direction, as the American military personnel clearly find themselves in strange country whenever they are posted abroad, or conversely as Brunetti experiences when he visits the base:

The walls held posters of unnamed cities which, because of the height and homogeneity of their skyscrapers, had to be American. That nation was loudly proclaimed, too, in the many signs which forbade smoking and in the notices which covered the bulletin boards along the walls. The marble floor was the only Italianate touch.

The case which Brunetti must solve intricately winds in and out of these two strange countries, Italy and the American military base, sending Brunetti and his colleagues back and forth as leads point this way and that, and in the end the case becomes a tangled knot of corrupt officials, organized crime, and unfortunate happeners-on who found themselves consumed by the consequences.

As is, I expect, a theme with all of Leon's books, Death in a Strange Country features a critical point where Brunetti must make a judgement call of his own, choosing his own path to follow and making his own decisions about where the distinction lies between justice and law.

Though it took me a long time to get through Leon's first book, personal circumstances were such that I flew through the second one, finishing it in only a few days.

However, just as with the first, I ended Death in a Strange Country eager to begin the next Brunetti novel (which is already on its way!).

Saturday, January 22, 2022

Horizon Zero Dawn: a very short review

For much of the last six months, one of my pandemic companions has been Horizon Zero Dawn, the richly-imagined, deeply-realized, beautifully-executed, eerily-compelling video game from the Dutch game developer Guerilla Games.

HZD is five years old at this point, as it was released in 2017. It was a Playstation exclusive at that point, and it quickly became known as one of the signature games for the PS4, and it was credited with substantially boosting PS4 sales.

I originally bought HZD for the PS4, and even tried it once or twice. But I find playing games on the PS4 directly to be hard. I find the Sony controller to be awkward and I've struggled to learn how to use it properly. It often slips out of my hands, and I don't have the coordination, sadly to execute multi-finger combination key sequences with fingers and thumbs of both hands simultaneously, with the result that, sadly, the controller generally ends up in a corner of the room and the (human) controller stomps away in frustration.

Over the years, my kids continued to play the game, and would regularly tell me and show me how wonderful it was, so every so often I'd pick up the controller and try again, only to set it down again.

But in late 2020, Guerrilla released a PC version of the game, and my interest was rekindled.

I don't know, in detail, how the PC version differs from the Playstation version, but I can certainly tell you that the PC version is just gorgeous! It's essentially bug-free, very very stable, very responsive on my six-year-old PC, and oh so very much fun to play.

The overall story arc of Horizon Zero Dawn is quite well known, and you can read about it everywhere, so I encourage you to do so. The game executes that story extraordinarily well, immersing you in a world that is both foreign and familiar, real and yet fantastic, current and yet remote.

As the story is unveiled, and you begin to put the pieces together, the decisions you make as you play take on more and more importance, and you quickly find yourself in something that's much, much more than just a hack-and-slash typical adventure game of quests and monsters.

The story comes to a very interesting conclusion, which will certainly leave you thinking about our modern world, and its modern technology, for quite a long time.

For me, it's hard to decide on a tie breaker, but I think by a slight margin the best quest was Maker's End, where you learn all about Elizabet Sobeck and her relationship with Ted Faro, and the second best quest was The Mountain That Fell, where you learn all the details of the great betrayal and its consequences.

The collectables quests that I most enjoyed were the Banuk figurines, because I loved the mountain climbing and ropes courses, and the Vantages, because again I loved the world exploring. The Vantages quests also provide the loveliest alternate plot line, I think.

And I can't stop without observing that the Frozen Wilds DLC, which came bundled in the PC version I bought, is far and away the most visually appealing of the world landscapes to me. The snowy peaks and valleys and the lovely color pallette of whites and blues and grays combined with some very different background music made that section of the game really immersive to me. The DLC also has the single most appealing location to me, namely the enormous dam and waterworks with its deep underground areas.

Lovely game, through and through. I really, really enjoyed it.

Thursday, January 20, 2022

Death at La Fenice: a very short review

I'm, as usual, exactly 30 years late to the party, but let me just be one of the most recent to tell you about Donna Leon and her lovely series of detective novels featuring Commissario Guido Brunetti of the Venice Police.

The first in the (wow! 31!) novels in the series is Death at La Fenice.

As the first novel, it spends a certain amount of time helping us get to know the major characters, including Brunetti, his wife Paola, and his various other colleagues on the Venice Police.

Death at La Fenice is a lovely detective novel by itself: never rushed, never forced, never awkward or clumsy. Leon's tale proceeds through both time and space as Brunetti's investigation leads him to explore how events in wartime Germany continue to affect Italy today.

As so many other reviewers have remarked, the best part of Leon's books is how Venice comes alive. Leon, an American writer, talks of the city with a tenderness and respect borne of her own many years living there, and lets us see Venice through her eyes.

Thursday, January 13, 2022

Wordle

I really enjoy Wordle.

But somehow, my brain is busted from years of playing games like Jotto and Mastermind as a child, so I keep making dumb mistakes.

Today, for example, I got stuck because I thought that Wordle's word list did not allow repeated letters; that is, that a valid Wordle word was five distinct letters.

I, of course, was wrong. Repeated letters are in fact allowed in Wordle.

And that's true of Jotto, also, I guess, although in my family I recall that we disallowed repeated letters in our secret words (though, importantly, not in the guess words). Wikipedia notes that this was a common "table rules" decision when playing Jotto. And the version that MentalFloss describes was quite strict about the no-repeated-letters rule.

I guess I'm not the only person who sees Wordle in this historical context: Wordle’s massively popular (Jewish) predecessors

I am a child of the 60's, after all (though not Jewish).

My parents played Mental Jotto with me as well; it was quite the mental workout! We didn't take walks to the synagogue, but, living in Southern California, we did often find ourselves going on multi-hour drives (that's what Southern Californians do for fun, after all), and Mental Jotto definitely passed the time! Clearly we weren't the only ones who did this.

Thursday, January 6, 2022

Dead and Company winter tour upheaval

Bill the drummer has a Twitter account? How did I not know this?

Bummer of a way to find out, though.

And John Mayer is ill as well, oh dear.

I'd never heard of Tom Hamilton before, although my tour buddies are quite familiar with him, as they've seen Joe Russo's Almost Dead multiple times.

Chasing those links led me to see that JRAD are headlining the High Sierra Music Festival. This looks great! Maybe I should check it out next summer? (Check out the Guidelines for important Hula-Hoop information!)

I bet Quincy is wicked hot in late June, but I've been there before in the summer and, being at moderate elevation (3500'), it was lovely in the evenings, and even pretty decent in late afternoon.

Gotta keep on truckin...

UPDATE Now they're starting to cancel the shows. They haven't canceled the entire tour yet, but ...