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.