This is About Computing Systems, a newsletter sharing content on computing systems focusing on programming languages and software with a hint of computing history. We are surrounded by numerous systems that work in tandem to make our lives easier. At times we may overlook how beautifully they were crafted to never complain – this newsletter is to appreciate such systems and to know them better.
What is this newsletter about?
Computing Systems. The name says it all – it's about computing systems. What is a computing system though? They are all the setups that in some way compute. It includes an operating system like Linux, a programming language like TypeScript, a software system like Google Search, and many more. I will be talking broadly on topics related to systems that we frequently work with.
Disclaimer: I know very little about computing systems as compared to a lot of people out there. I like documenting and sharing as I learn, so I may not be the best at explaining topics, but I will try my best.
To avoid juggling between several topics, I will keep the focus of this newsletter on the following two:
Software Systems and Platforms
Everything that I know and learn about operating software at scale.Programming Languages
I will try exploring language tooling and design.
Translating the above topics into actionable items, the newsletter will run a few series that focus on particular areas.
To begin with, this is what you will find in your mailboxes when you subscribe:
Paper Pursuit - Research Papers Summarized
This is a series that looks out for interesting computer science and software engineering research papers in the present and the history and summarises them for you. I’ll publish this weekly. I want to bring in the most interesting research that you can read during your work breaks or your commute.
Read more about Paper Pursuit here.
How often will I write?
A rather important question (for myself), is what would be the post frequency. To avoid delays on my side, I am going to write early and start with an offset of content. So when you are reading this, I should have the next 3 pieces ready.
Keeping this rolling window helps me have a buffer, am I applying computer science algorithms in real life? 🤷 But to come back to the frequency - I will write once a week.
This may lead to my posts being broken down into “parts”, so I’ll talk about the same topic over a few weeks in some cases. I’ll add a few treats for you all as well!
Bonus - What is the cover image about?
The cover image is a collage of pictures related to some historically popular computing systems.
The first image is an advertising snapshot for Xerox Alto - the first truly personal computer. It was the first PC to have mouse and keyboard inputs and had a graphical user interface (GUI) that could be used with the mouse. It was a project that led to several other first-timers - like the first WYSIWYG editor, and the first environments for an object-oriented language - Smalltalk. Unfortunately, Xerox did not realise the potential of their invention, their mistake dawning upon them after the success of the Macintosh from Apple (inspired by Alto) a few years later.
The second picture is from the cover of the famous book Structure and Interpretation of Computer Programs. It is a weird, classically styled illustration that has the two fundamental functional operations - eval and apply. In short, when working with functions in a language, to obtain the output of a function, its arguments have to be evaluated first and then applied to the function. SICP is an interesting (and long) book that uses Lisp to talk about programming constructs while also building an interpreter. We don't see a lot of Lisp today, maybe because worse is better, quoting Richard P. Gabriel.
The third picture includes Alan Turing at work. Turing does not need an introduction if you have studied or worked with computers, but if you aren't aware of him, he was a mathematician, computer scientist, and logician whose work revolutionised and led to the creation of computers. In his paper of 1936, he proposed a universal computing machine, now known as the Universal Turing Machine, that can perform any kind of task itself by replicating a Turing Machine – a machine that can perform a specific task. Today's computers do exactly that – they can be used to type documents, send emails, watch videos, play games, etc. Today's computers are a result of implementations based on Turing's universal machine.
In the first, actual issue of this newsletter, I'll review and comment on an important research paper in software engineering. Keep an eye on your email inboxes, see you soon!
Was this email a surprise? You are receiving this because you have previously subscribed to one of my newsletters. If you don’t like this, you may choose to unsubscribe at any time!