30 Apr 2020
The Software Testing Fallacy
A quick leap from the undecidable halting problem through denotational semantics and straight to the caveats of software testing.
Nick Demming
Notes on functional programming, numerical methods, software architecture, data systems, and the practical edge where mathematics becomes running software.
Haskell · Type systems · Numerical methods · Databases · Infrastructure · Systems thinking
This is the revived demming.dev archive. The first cutover preserves the old Hakyll blog and draft corpus as faithfully as possible, then gives it a modern Astro shell so the writing can be polished and extended without losing provenance.
The historical center of gravity is Haskell, numerical computation, software correctness, data processing, and the interface between mathematical models and production engineering.
30 Apr 2020
A quick leap from the undecidable halting problem through denotational semantics and straight to the caveats of software testing.
23 Apr 2020
In the last few years with each new iteration of the C++ standard, the committee introduced further concepts inspired by functional programming. They are poised to standardize and optimize the use of modern functional-programming paradigms such as functional arguments, immutability, functors, and monads, thereby improving the notation for standard idioms such as structure-preserving transformations (functor), structure-preserving parallel computation (applicative functor) or structure-preserving sequential computations.
12 Apr 2020
A quick update on the state of the design of this blog, in which I will progressively expand on theming plain vanilla Hakyll with HTML5, CSS3, and JavaScript. Eventually, I will rewrite the frontend in TypeScript. Some separate posts will follow. Dive in!
31 Mar 2020
A lot of types satisfy the Functor laws, which guarantee that we can consistently apply functions to their values. Most importantly, the structure is preserved under the transformation that we apply. Learn here why this is important and how this works in practice. This is a great setting to familiarize yourself with key syntax of Haskell.
26 Mar 2020
In this post we will see how to employ Haskell's type system to ensure correctness of database queries. In fact, if you are familiar with SQL, you might know how unwieldy and repetitive nested SQL strings may become. The more complex they are, the more error-prone they get. Besides, many checks must be interspersed to protect the integrity of the database. In addition, query optimization has become a prevalent problem for cloud-based solutions, where a single SQL request may eat up the entire budget. To alleviate and obtain a control of such issues, Haskell's ecosystem provides us with type-checker guarantees for the correctness and integrity of the queries and paves the road for us to query analysis and subsequent query optimization. Read on for an initial survey of Haskell database libraries.