Plurrrr

Fri 14 Apr 2023

EXPLAIN (GENERIC_PLAN): New in PostgreSQL 16

A while ago, I wrote about how difficult it is to get an execution plan for a parameterized query. The method suggested in that article works, but is still somewhat complicated. So I wrote a patch to support an EXPLAIN option GENERIC_PLAN, which provides native support for that. My patch got committed by Tom Lane in 3c05284d83, which means the new option will be available from v16 on. This article describes how the new feature works and how it can be useful.

Source: PostgreSQL 16: EXPLAIN (GENERIC_PLAN), an article by Laurenz Albe.

Building 15-year-old software with Nix

What is Nix? Among other things, Nix is an ecosystem of tools that you can use to build software in a reproducible way: Usually, when I try to compile a program, I need to make sure that I have all libraries and other dependencies I need, in the correct versions. With Nix, you can describe exactly which other things a piece of software depends on, and also how to build those.

So I thought: Could we try to build some really old software? Like, for example, Firefox from 15 years ago? :D Let’s try that, and let’s also try to build the graphics programs Blender, Inkscape and GIMP.

Source: Building 15-year-old software with Nix.

Pedagogical Downsides of Haskell

While running a course on functional programming and using Haskell for the practical sessions, I have experienced several issues that act as impediments to understanding.

I still think Haskell is one of the best ways to teach functional programming. In any case, the issues below are difficulties in teaching and learning Haskell. Most of them actually make the life of a working Haskell programmer better.

Source: Pedagogical Downsides of Haskell, an article by Stefan Ciobaca.