On the Tired Light Hypothesis

The Static Universe

The first model of cosmology that I was exposed to, as a small child, was that of the static universe, because that's all my father knew. According to that model, the universe is infinite in all directions, it is eternal, and it is not going anywhere. Of course I accepted it, because that is what kids do: accept everything presented to them as fact.

The Expanding Universe

Then, during elementary school, I heard of the Big Bang and the expansion of the universe; this new model of cosmology made me feel a bit uncomfortable, but again I accepted it, because a) that's what the scientists said, and b) I could go to my father and tell him that he is wrong.

Read more »

Code review memes

GitLab allows the insertion of images in code review comments. They make it really easy: if you have an image on the clipboard, you can just paste it into a comment. I suppose the feature exists so that programmers can exchange screenshots, graphs, etc. to explain complicated matters during code review.

I like to use this feature to post memes.

Here is my collection of the most useful code review memes:

Read more »

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.

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 »