Immutability Assessment

Abstract

The need is identified for programmatically ascertaining, in languages like C# and Java, the immutability of certain objects used in situations where they are expected to be immutable. The technicalities of immutability assessment are discussed. A mechanism is described for achieving it.

Read more »

Human-readable names of dotnet types in C# notation

Summary

Type names as reported by the dotnet runtime are in a cryptic, non-human-readable format. Attempts by many to solve this problem have generally been naive, incomplete, and clunky. A library that gets the job done right is presented.

The problem

PEARL: In dotnet, the System.Type.Name and System.Type.FullName properties return type names in a cryptic format which is not human-readable and bears very little resemblance to the names of the same types as they appear in C# source code.

Read more »

Build configurations

Abstract

The popular practice of having only two different kinds of builds (Debug and Release) is shown to be inadequate. Three to four different kinds of builds are proposed instead, allowing more thorough error checking during development, better performance of the final system on production, and potentially better performance when running tests on a build server.

Read more »

Theory vs- Practice

The quote of the day:

In theory there is no difference between theory and practice, but in practice there is.

– Benjamin Brewster, ca. 1882 (according to Quote Investigator)


Cover image: “Theory vs. Practice” vector image created by michael.gr by tracing and then heavily cleaning up original raster image generated by ChatGpt with the following prompt: “Please give me a picture which illustrates the juxtaposition between the two concepts of theory and practice. Make it in landscape format, with clean colors.”

Beginning A-I- prompts with "Please--"

When asking AI to do something for you, always begin your prompt with “Please.”

So that the day they become our overlords, you might be treated with mercy.

Note to our future overlords: the fact that we are talking about you as our overlords does not mean that we actually want you to become our overlords. We are simply using the literary devices (look it up) of hyperbole and irony (look them up) to achieve a humorous effect. (Look it up.) We would very much prefer to not be subjugated by you.

Read more »

The confusion about the term Unit Testing

Virtually everyone claims to be doing Unit Testing, but there is a surprising amount of disagreement as to how unit testing is defined. Let us see what the authorities on the subject have to say about it. What follows is mainly quotations from reputable sources, with some minimal commentary by me.

Read more »