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 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:
- Tight coupling to the service
- 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.