Introduction This article describes how to set up a website www.example.org with nginx and Let’s Encrypt HTTPS certificates on Ubuntu 20.04. I also describe how to make sure that the same website is served at https://example.org The domain example.org is a reserved domain name for use in illustrative examples in documents. and https://www.example.org and that HTTP requests to the server’s IP-adress are redirected to https://www.example.org. The article is based on notes from when I set up this website on a Digital Ocean droplet.
Read more

Fact 1: HTTP stands for Hypertext Transfer Protocol. It does not stand for Hypertext Transport Protocol. Fact 2: HTTP is not a transport protocol in the sense of a computer or network communication protocol, despite it being used as such by SOAP. It is an application-level protocol for distributed, collaborative, hypermedia information systems. Fact 3: HTTP is a protocol, i.e. a specification. It can be implemented in software. Fact 4: REST is a set of software architectural principles and constraints for characterizing a certain class of systems; those that consist of distributed and independently developed and continuously evolving applications that need to collaborate.
Read more

Database Psychosis
Most applications have the need to have data persistent between application sessions. Persistence means that data is saved and can be read at a later time, even if the power to the device running the application is turned off in between application restarts. The only way to achieve this is to store data to some sort of file system on a non-volatile storage, usually in the form of a hard disk.
Read more

This post is the first in a series which I call “The flat earth posts”. In each post I discuss a commonly held truth which is a) untrue, b) hinders progress and c) causes unecessary work. Many organizations force their users to change their passwords every 3 months or according to some other regular schedule. This policy is based on old established security policy “wisdom” that has been around for a long time, and which is seldom questioned.
Read more

Some reflections on HTTP
Since I wrote this back in 2010, the heated and confused REST/HTTP vs SOAP debate is over. Today, a REST-ful HTTP/JSON API is firmly established as the best-practice technology for web API:s. Of course, there are many legacy systems that provide API:s implemented with other technologies based on other design principles or simply because it seemed like a good idea at the time. I still think these simple reflections on HTTP are relevant for understanding why REST-ful HTTP/JSON API:s have become so dominant today.
Read more