Viewing and setting hostname on Fedora 30

View current host name:

$ $hostnamectl status
Static hostname: localhost.localdomain
 Transient hostname: kennedy.lan
          Icon name: computer-laptop
            Chassis: laptop
         Machine ID: xx
            Boot ID: xx
   Operating System: Fedora 30 (Workstation Edition)
        CPE OS Name: cpe:/o:fedoraproject:fedora:30
             Kernel: Linux 5.1.3-surface
       Architecture: x86-64

Change the hostname to ‘kennedy.lan’:

hostnamectl set-hostname --static "kennedy.lan"

This feels very complicated. Much easier using /etc/rc.conf in FreeBSD.

Erlang founder has passed away

I’m very sad to see that the creator of Erlang, Joe Armstrong, has passed away. Erlang (Ericsson Language) is one of the pioneering languages in distributed computing, which was built by Ericsson for their carrier-grade telco switches. Erlang:

  • Is a functional programming language in the spirit of Lisp, which means it is easy to scale in horizontally
  • Fault tolerant, embracing the notion of “let it fail”. Failure is seen as part and parcel of any system
  • Used garbage collection long before Java popularised it
  • Highly available, making it possible to hot-swap parts of program code without bringing down the entire application
  • Is both a language and runtime platform using the OTP (Open Telco Platform)
  • Is one of the main influences of Akka, the Scala based actor implementation, which provides a highly scalable distributed compute platform

Joe Armstrong was a true innovator in his field and I am sad to see him pass away. You can read his seminal PhD thesis here and also hear him live on Software Engineering Radio here. The latter is more than 10 years old but still worth a listen for an introduction to Erlang and its interesting history from telco real-time system to open source innovator.

The Guardian on migrating from Mongo to Postgres

The Guardian’s Digital blog have posted an excellent write up on their recent migration from MongoDB to PostgreSQL. For the uninformed, the former is a so-called ‘NoSQL’ database that allows developed to treat persisted data and queries as pure JavaScript objects (JSON). The latter is a traditional SQL database, developed by a global community of open source hackers. The article is great as it gives concrete examples of why PostgreSQL would have been a better choice (scale, stability, maturity), the challenge of live migration in a very large environment, and how to deal with it.

Postgres has existed for more than 22 years. Their community claims it is the world’s most advanced open source database. Having worked extensively on Postgres for almost 10 years I can testify that is a true statement.

Mongo, on the other hand, emerged in the late 2000s as the pinnacle of the ‘NoSQL’ movement — developers who were thirsty for easier, more lightweight approaches to databases without the need to learn SQL. It worked, and today MongoDB is backed by a NASDAQ-listed company with $4.5b market cap and 1000+ employees. Mongo was touted as the future of databases for start-ups and full stack engineers that wish to move fast without the cruft and constraints of an orthodox SQL database like MSSQL or Oracle. Therefore when The Guardian decided to build their next generation CMS on top of this technology it was a big deal for the technology and its commercial potential.

I’m not saying Mongo is a poor choice – it was / is successful because it allows developers to move very fast from concept to production using a familiar technology stack (JavaScript). No need to learn SQL or complex relational algebra. It applied the necessary competitive pressure to prompt other vendors to add similar ease of use and speed to their own stacks (e.g. jsonb support in Postgres), creating much needed innovation in a market that had been dominated for too long by a duopoly (MS and Oracle) resting on its laurels.