Monday notes from 20 July 2020

I'm still in the beautiful Yorkshire Dales among my support bubble.

Yorkshire. Over the course of the week, rain gave way to sunshine, so we headed out on a lovely walk from Bolton Abbey to the Valley of Desolation. The terrain seemed to change regularly and dramatically along the route, from sweeping valleys with old, bouncy trees to climb, to thickly-wooded green glens with little bridges over streams and impressive waterfalls somehow tucked away. With landscape like this, it's no wonder my god-daughter is a bit feral.

On the way back, we walked through a valley in which many cattle were grazing and we talked to my god-daughter about what sort of presents she would like for her fifth birthday. One of them was very specific — a clockwork cow that could both low and lactate. I've been here nearly two weeks now, and my presence is no longer a novelty. In the mornings we've been working on a project — a dragon (or dinosaur) decorated with ultraviolet tape, paints, and electroluminescent wire, but later in the week she preferred to spend the early morning with her fathers again. It turned out we were just reaching a new balance, a combination of comforting routine and new games and projects to be done when everybody is receptive and enthusiastic, and not on demand or automatically.

Haskell and Go. I'm enjoying coding again. I'm back into the Haskell. I've reimplemented and refactored my go commentator to work with precomputed data structures which are minimally updated to reflect situtions like group adjacency or surrounding of regions. This has presented interesting new challenges in how to work with immutable structures that aren't ideally served by the standard Haskell date structures. Formerly these situations would be computed anew for each possible board following a large set of prospective moves, but now I can explore far more of the game tree than would be possible before in the same time. It is likely the intermediate result of this will be go moves library, hopefully efficient and hopefully with a monadic approach, though it looks like this has been done in goatee. The longer-term result would be some kind of web-based commentator or game tree explorer for go learners, giving higher-level descriptions of the moves at each turn.

While following go links online I stumbled across Nikoli, the Japanese puzzle magazine responsible for sūdoku and many other puzzles. They are typically free of any dependence on cultural, linguistic or mathematical knowledge but instead rely on logical deduction, usually with symbols, and sometimes with very little starting knowledge of the problem. These puzzles would be fun to code similar explorers and commentators for, or maybe machine learning-based code to (help) devise or solve.

My game with Chris ended in a decisive win for him, but playing on the larger board was much more enjoyable. Chris commented on how many twists and turns it had. I have to agree — in most of the middle game I felt like I was juggling lots of smaller situations as he effortlessly invaded areas I thought were mine. I have so much to learn!

Chess. As well as go with Chris, I've begun playing chess with Spimcoot. He's on Lichess and on, the two big places to play chess online. However, we've never enjoyed online games nearly as much as evenings sat over the board with a drink, some good music on, and with play oscillating between friendly competition and enlightening collaboration.

Of course, that's not possible at the moment, so instead we've again forgone the online chess sites, and chosen to do it by post. Correspondence chess exists, with its own federation and special postcards, but we're just using plain postcards. The average chess game is about forty moves in length, so even if we remember to post a move once a week, the game will easily go well into 2021, and likely well beyond.