Posts

May 30 2020

Maintaining Blog Cadence

These last couple of months, I’ve been able to hold a steady blog release schedule. Three things have helped me release a steady stream of content. First, I am a part of a mastermind group that holds me accountable to making releases. Next, I keep a backlog of posts so that I don’t feel pressured to write, edit, and release on a single day. Finally, I follow a pipeline to iron out the kinks between stages of publishing. Maintaining these three habits guarantee a steady flow of content.

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.