Blog

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 […]

Mechanical keyboards

The first computer keyboard that I used regularly was a mechanical one: the one built into my father’s Apple II. At some point, likely in September 2007 with an XPS 720, I acquired a wired (USB) Dell SK-8135 keyboard. Full-sized, in a UK ISO layout, it is a rubber dome keyboard but with the feel […]

The economics of OCaml

OCaml (formerly Objective Caml) is a functional programming language. I wondered if the economics of OCaml could provide a benchmark for the economics of Haskell. ML (Meta Language) influenced Caml (Categorical Abstract Machine Language) (1985) and Haskell (1990). Caml influenced OCaml (1996). Caml was developed by the French National Institute for Research in Digital Science […]