Blog

Category theory

Я (ya) is a letter of the Cyrillic script and the name of a new ‘programming experience’ developed by Murat Kasimov (MK) presented at his website and implemented in Haskell. MK’s articles use terminology that derives from category theory. Class A class is a collection of objects that are defined by a property. Some classes […]

Mounting

I needed to support lightweight trellis a little way from the back side of traditional featherboard fencing, with no effect on the fencing. Design and construction The fencing panels had three horizontal arris rails of the traditional size (that is, cut from 3 in or 75 mm square posts). I used spare softwood sticks of […]

Stack on NixOS

I had configured stack as a system package on NixOS/Plasma. That provided stack –version of 3.9.3 x86_64 hpack-0.39.1, the NixOS project’s version of Stack 3.9.3. On NixOS, Stack’s nix: enable configuration option defaults to true. That means that Stack uses Nix to manage GHC versions and builds, by default, in a pure Nix shell. Building […]

Configuring NixOS

After I was able to dual boot into NixOS/Plasma, I needed to configure it. Scaling the display The default scaling on my 1,920 by 1,200 screen was too small to be legible. I set and applied Scale as 150% in System Settings > Display & Monitor > Display Configuration. This was also reflected on the […]

Dual boot from an external SSD

I wanted to experience the NixOS Linux distribution outside of Windows Subsystem for Linux (WSL). I had preserved the 220 GB SSD from my Dell XPS 9360 in an enclosure, when I upgraded its internal storage in June 2024. I decided to attempt to dual boot from that SSD, first with a minimal installation of NixOS […]

Caging

A small cubic cage was needed, to protect potted strawberry plants from birds. I had twelve pieces of 43 mm () width by 20 mm waste wood to hand, each of which could be trimmed to about 610 mm in length (using a stop, for consistency). Design The design was two square frames with mitred […]

Second staging

Further greenhouse staging was needed. I built some using purchased wood, but modified my original design. In particular, I replaced the planks of the original with a slatted top and shelves. Materials The original design was over-engineered. Wickes sold 1.8 m sticks in treated ‘softwood’ with nominal dimensions 38 mm by 19 mm. The sticks as delivered […]

Greenhouse staging

Replacement greenhouse staging was needed, with dimensions about 90 cm high, 90 cm wide and 35 cm deep. I built some using purchased wood. Materials The choice and cost of wood influenced the design. Champion Timber offered untreated planed redwood (Pinus sylvestris) planks at 94 mm by 15 mm at £ 9.61 a metre. B&Q offered […]

Memory

My Dell XPS 8930, new in July 2020, came with 8 GB of DDR4 2666 MHz RAM (non-ECC, I assumed) in one of its four UDIMM slots. Windows 11 specifies 4 GB as the minimum memory requirement, but, recently, the system had been behaving as if it had run out of memory. I decided to […]

Pattern synonyms

Pattern synonyms are an extension to the Haskell programming language provided by GHC since GHC 7.8.1. Their definition is enabled by language extension PatternSynonyms. Their use does not require the extension. There are three forms: unidirectional, bidirectional and explicitly bidirectional. Synonyms A synonym is introduced with the keyword pattern. Synonyms have three forms: prefix, infix […]