Richard Stewing - Blog

× logo-full-size.png


Curriculum Vitae

Public Keys


Books I read

SHA 256 Calculator

PLs & Tools


RSS Feed




1. Version Control for the Uninigiated

The Covid19-Pandemic forced all of society to start adopting to digital infrastructure. The Pandemic education sector incredibly hard. This fact (probably) holds for the whole world. German high-schools had to catch up to years of basically not evolving.

When politicians decided that schools are going all-digital, I was hoping they would spend some time teaching kids some useful skills around the tools they could use to accomplish school tasks. One pet-peeve of mine is version control.

Published on <2020-10-16 Fri 11:40>.

Read more…

2. Competing with Unicorns

I keep a list of books I have read and what I thought about them for future reference later. These thoughts are only for me to remind myself of what I felt while reading it. I forgot so much about the other books I read, and I feel like this should help with that. I usually don't care if there are a bunch of errors in these notes. Therefore they are cheap to create for me. This piece will be a little different. I have so many thoughts about Competing with Unicorns by Jonathan Rasmusson that I felt the need to sort my thoughts more thoroughly. If you want the one-sentence summary: ''Spotify is a great company to work for, and its management style is superior to anything else.'' I'm not saying the statement is wrong, but it's so unreflected and uncritical. I will get to more details soon, but this is my first impression.

Published on <2020-12-19 Sat 16:10>.

Read more…

3. Idris' most important Feature

Yesterday I saw this discussion on HN. The author points out that ''static typing is pointless'' because the static type checker is just a crappy tool to encode simple invariants. (Link) More interesting invariants still need to be expressed in the documentation. I condensed his argument here. The essence is: Static Type Systems can't encode interesting invariants efficiently and make you jump through hoops for simple ones. So he rather not have these hoops and use dynamic types.

Published on <2021-02-01 Mon 15:40>.

Read more…

4. Wishlist for verified Programming

Verified Programming and, by extension, Verification Driven Development (VDD) focuses on writing programs that conform provably to a given specification. Whenever I use a tool that supports VDD, something is always missing. This post will list all the things I wish I had when programming in a verified manner. I'll start with a survey of what is currently out there. (At least what I'm aware of.) I'll focus on the things I have used personally. As such, my view is by necessity limited. I do think that most of these tools are very similar and, more importantly, most are research projects. Their primary purpose isn't using them in production, and ergonomics are often less critical. I want verified programming to become more mainstream, but it can only become mainstream if it becomes more ergonomic. That's why I started working on this list. But first, let's start with what's already there.

Published on <2021-03-28 Sun 17:00>.

Read more…

5. Towers of Complexity

Every problem and every solution has an inherent complexity. Interestingly, the complexity of the problem and the solution don't have to be the same. Instead, the complexity of the problem is a lower bound to the solution. ''Lower Bound" is math-speak to say that the complexity of a solution can't be smaller than the problem's complexity it is solving. Some probably think now: ''Duh, of course, problems have inherent complexity that must be dealt with in the solution.''

Published on <2021-05-22 Sat 19:30>.

Read more…