May 23 2020

Name That Algorithm #3

Tony Hoare, the inventor of null, claimed later in his career that null was his “billion dollar mistake.” Languages like Rust and Haskell address the issue of null very directly through the forced handling of Some and None. As for others, it’s up to the programmer to check for null values.

May 16 2020

Fastmail domain is too new, temporarily blacklisted

The other day I setup a mail server for a new business venture. We require a fair number of addresses, so I decided against a cloud solution. Typically cloud solutions start around $5 per user/month – making it a tad too expensive for an entity that doesn’t generate any revenue yet.

May 09 2020

An Open Source Utopia

The software industry is a bit of an anomaly: we as programmers are the makers of our own tools. Most of these tools exist with open source licensing, making it easier than ever to contribute. It’s with good reason that most of these tools exist on the command line: it’s more efficient. Nevertheless, it is important to recognize the slew of industries that suffer from not being able to make use of these tools. In short, software engineers are blessed with efficiency constrained by their own imagination and ability to use the command line, while many other areas lack this privilege.

May 02 2020

Declarative Programming Tastes Better

There was a TED Talk interview back in 2016 with Linus Torvalds. He mentions he likes to work with developers who have “good taste”. In the code example denoting “good taste”, he eliminates branching in the function.

Apr 25 2020

Better Coverage with DI

Global variables actually prevent us from increasing coverage.

Apr 18 2020

Avoid Vendor Lock-in with Interfaces

Vendor lock-in can be a painful experience. There are two main issues that I have noticed:

  1. Tight coupling to the service
  2. Data migration from one service to another.

Apr 11 2020

Name that Algorithm: #2

The veterans in the software industry recognize code as a liability. Code is not an asset! Maintaining 10 lines of code is easier than maintaining 100 lines of code. Similarly, 100 lines of code is easier to maintain than 1000. By reducing the size of the code, we can squeeze bugs out of their hiding place.