abstract machines all the way down

Programming is not about writing code. Syntax changes over time but the fundamental nature of programming remains the same. The true nature of programming is taking abstract machines and putting them together to perform a task. Programming at the end of the day is about those abstract machines and their connections. This is why type theory and category theory should be essential components of any programmer’s education. Once you start viewing programming through those lenses it is impossible to go back to the syntax oriented view of programming. Here are some books and various other resources I have found useful during my education: Understanding Computation: From Simple Machines to Impossible Programs, An Introduction to Mathematical Reasoning, Types and Programming Languages, Nathan’s University, Functional Programming Principles in Scala, Applied Cryptography, Artificial Intelligence for Robotics, r/programming.

simple monitoring with xinetd

Whenever you are running servers behind load balancers you need to perform health checks for marking servers up and down. If you are lucky then those health checks are built into the application code itself but more often than not you need to hack something together on top of existing legacy application code. In those instances xinetd and a simple script can do the trick. Continue reading