Random numbers

A pseudo-random number generator (PRNG) is a function g -> (a, g) where the sequence of a values from its repeated application to the g values meets certain criteria. The System.Random module of the random package for Haskell exports a class RandomGen g which promises functions including genWord64 :: g -> (Word64, g). It also […]

Programming ligatures revisited

Since version 1.40, Visual Studio Code allows fine-grained control over OpenType font features. Windows Terminal v1.11.2921.0 (pre-released in v1.11.2421.0) now allows the same. However, Cascadia Code has gone backwards (from a Haskell perspective). I decided to swap Fira Code for Cascadia Code. Visual Studio Code In Visual Studio Code’s settings.json: cv02 turns on a variant […]


The Haskell type Char represents Unicode code points. I was struggling with the output of certain Unicode characters by Haskell code on Windows Terminal, under Windows 11. Specifically: either did not work at all or, when the OEM code page was changed in PowerShell Core 7.2.1 from the default 437 to 65001 (UTF-8) (using command […]

Windows 11

Offered the opportunity to replace Windows 10 with Windows 11, I took it up. Having done so, I had mixed feelings. Chat The Chat app is integrated with Windows 11 and its icon appears on the Taskbar by default. At first, the app did not work at all, reporting only that it ran into unspecified […]

Reanimator revived

Over a year ago, I hit a dead end on Windows 10 with David Himmelstrup’s reanimate package. I returned to the package with a simple animation in mind. In the interim, things had moved on. I had no difficulty creating the animation and rendering it to a GIF image: Dependencies On Windows 10, the Haskell […]

Kiln shelf stacker

Kiln shelves are brittle and should be stored standing on their edges. Some furniture was required to store three circular kiln shelves. I built it using scrap wood. Design I had some rough-sawn softwood boards of width 12 cm and thickness 25 mm, recovered from a palette. The circular shelves were of diameter 350 mm and thickness 10 mm. […]

Wedging table

Wedging is the process of kneading clay to remove air bubbles before use. A wedging table is a low, study table with an absorbant surface (a concrete paving slab can be used) for wedging. A wedging table was required. I built one using softwood timber which had been found free on Freecycle. Design Five key […]

gnuplot and Excel, scratching the surface

Microsoft’s Excel is ubiquitous in finance. The current version (version 2105) provides the Surface chart type, with four varieties of the chart: 3-D Surface, Wireframe 3-D Surface, Contour, and Wireframe Contour. The underlying data is provided as a rectangular grid or, rather, a list of series of data. The names of the series provide the […]

Mortal engines

Over forty years ago, my late father brought a Mamod steam engine into the home, screwed it down onto a strip of chipboard, and made it run. I can not remember now if it was a toy for me or a toy for him. Eventually, like childish things, it was put away, in a shoe […]

The big blue

On 9 July 2020, I received a new Dell XPS 8930. From about 13 August 2020, I have had a series of BugCheck events (Event ID 1001), logged in the System log. All of them, except two, were code 154. Could I find the cause? I thought I had but it was a false dawn. […]