Hello 2021

Well, lately the temperature outside has dropped below freezing and, having finally got into the swing of checking for supermarket delivery slots, I admit that until yesterday I had barely needed to leave the house for days. There's been a period of quite intense development at work, so it was good to get away for a walk yesterday with Dan and Ⓑ.

Our plan for a walk yesterday was to do the Bath Skyline. Given the recent weather, however, virtually every footpath in the area appears to be unnavigably due to mud. We decided to repeat the Two Tunnels Greenway so that we could enjoy the diggy hole, the woods and the other things along the way, like donkeys and a castle, without wellies for once. On the walk back, it started snowing. Though it never pitched, the flakes got bigger and bigger, so we grabbed a taxi home and watched it fall in between eating pizza and watching The Goonies (1985).

I managed to get a bit of my own coding done this week too, on the software that outputs this site. Not only are the pages here served over HTTP, but also over Gemini. I've tried to keep the method of delivery separated from the content itself by using an intermediate markup language that promotes this kind of so-called 'bihosting'. Behind the scenes, whenever there is a link on this site, the author specifies one or more equivalent links. When constructing pages in each protocol, the software picks the most appropriate link.

I have some projects on the horizon that involve some maths, so I've also added the ability to include arbitrary maths in the form of LaTeX source into my pages on both protocols. Although MathML has been around since 1999 and is part of HTML5 and is even specified in an ISO standard, its browser support is still not fully reliable. In particular, in 2014 Google removed support for MathML in Chrome completely. Rendering maths is not a trivial task, and on rawles.net the actual output is done by MathJax, a JavaScript display engine. Where maths appears on a page, the generating program adds an HTML tag to pull in the MathJax scripts and fonts from an external site. Though this data is cached by the browser, it amounts to about two hundred kilobytes, many times larger than this entire site. Moreover, it's not always strictly necessary, since HTML provides tags for relevant text effects such as subscripts, plus it's possible to use symbols and tricks from Unicode. On the Gemini side, such tricks become more important, since Gemini pages are specified in what is essentially plain text So, the generator now parses the LaTeX expressions and attempts, if at all possible, to construct plain HTML and Gemini versions of its rendering with the goal of making the page as lightweight and as fast as it can.