I consider myself a programmer. What that means is that I solve problems by writing down a set of instructions to be executed by some kind of computation machine. The form of the instructions varies but at the end of the day there is an underlying science to all of it. It can be expressed in many formalisms like type theory, category theory, operational semantics, domain theory, etc. but the essence of it is called computation. It is the application of computation theory that I am truly concerned with. So really you could say as a programmer I solve problems by applying computational theory and thinking. Continue reading
Google is finally showing its true colors. Keeping your personal and private information with them is no longer a defensible position to hold because if you are even a little bit tech savvy then for a few hours of effort you can have your own personal and private cloud software suite that includes email and all sorts of other goodies. The number of guides to help you along the way is also in no short supply. I highly recommend https://github.com/al3x/sovereign for getting you started. He has already done all the hard work for you and you just need to learn a little bit about ansible to make the whole thing work but information about ansible is also not in short supply. You’re gonna need somewhere to host it all but that’s also easy and here’s a digital ocean referral link to get you started: https://www.digitalocean.com/?refcode=1f88dd059926. If I was able to get the whole thing set up then you should be able to as well.
I’m currently reading “An Astronaut’s Guide to Life on Earth: What Going to Space Taught Me About Ingenuity, Determination, and Being Prepared for Anything” and almost everything Chris Hadfield says is not just applicable to life in general but it is applicable to software engineering in particular. Continue reading
Talk title: The Trouble with Types
Speaker: Martin Odersky (Scala, TypeSafe)
Talk title: Programming the Turing Machine
Speaker: Barbara Liskov (Liskov Substitution Principle, CLU, ADTs)
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.
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
I’m in a social commentary mood. You probably have already heard about the superficial nature of Silicon Valley technologists and you can safely skip yet another spin on it. I’m not going to say anything that probably hasn’t already been said. Continue reading
I would like to work with you I really would but your collective conduct makes that almost impossible.
As long as I’m figuring things out here’s another one for you. The Silicon Valley technology worker crunch is a self-inflicted wound. Looking for programmers with X years of experience makes no sense and if this is your criteria for hiring technology workers then you are going to fail miserably. Continue reading