If you look up the term coder and programmer you will most likely find that those terms are used interchangably. I don’t use them that way and to my delight I discovered that Leslie Lamport uses the terms the same way I do: “Coding is to programming what typing is to writing” .
If you make things you have little or no prior experience with, sooner or later a web search will bring you to a forum of some sort. Where you will find a prominent post telling you that your question you wanted to ask is stupid. .
Programmers like to argue over programming languages and tooling. If we remove all the pretense, it usually comes down to people defending their personal choices. We have a tendency to try to justify and protect our investment in whatever languages and tools we know and use. This makes sense. But it isn’t always rational behavior.
With Elon Musk trying to acquire Twitter, one discussion I’ve seen pop up every now and then is that some people, including Elon Musk, think Twitter should make their algorithm public . Whatever that means. So of course, this week everyone is an expert on this topic.
Knowledge is highly ephemeral. In order to write a piece of code, you usually have to assemble a jumble of knowledge and keep it in your mind while writing the code. As soon as you are done, that knowledge will decay quickly. A good example is what happens when you are interrupted while programming. It can take minutes or hours reestablishing the mental context required to finish what you were…
The idea behind microservices is not entirely bad, but what can cause problems is when developers blindly adopt orthodoxy without thinking. A way to have it both ways is to adopt the idea of modular monoliths and to care about software plasticity.
I really like the Go programming language. It looks a bit funny the first time you start using it, but after a while you get that “ahh, I see”-feeling whenever you discover just how convenient Go is for writing server software. But as in any language there are a few things that are really annoying.
This note is actually an email I wrote in a thread where someone pointed out that: 
 When you search for “spatial web browsing,” you’ll find there are whole engineering teams trying to stick web browsers on walls within 3D AR/VR environments .
When whatever language I am using as my main workhorse language at the time gets new features I worry. Go is getting generics and I have to admit I’m a bit worried. I think it’ll be fine, but there is always the risk that this might attract a different crowd to Go.
When I see new projects being announced that are implemented in C or C++ I have to admit that I quickly lose interest. I think C and C++ are poor language choices for system software in 2021. Please don’t write system software in C or C++.
When the state maintains data that is supposed to be public, it isn’t always that leaders from a bygone era understand what this implies. The process of dragging laggards into the present can be painful - and you may end up having to take it to court.
Is Github Copilot something to get your panties in a twist over? Well, no, not really. But what’s more interesting is what made you think it would be?
Whenever race car drivers serve up excuses for why they didn’t win they tend to blame their equipment, their team or both. It is never the fault of the race car driver that she or he fails to win. It’s the suspension. It’s the engine. It’s the wrong tyres. In many ways, race car drivers have that in common with a certain class of programmers who blame anyone but themselves…
During a meeting today someone raised an interesting question about
how we vet third party dependencies in software. This is not only
a good question, but it pokes at something all programmers are guilty
of at some point: including libraries without properly vetting them.
Earlier today I was trying to upgrade a piece of software on my
somewhat ageing iMac at work. During the upgrade a message along the
lines of “your version of OSX is no longer supported” flashed past. 
 I am not overly eager to run whatever is the latest version of OSX
because with every upgrade there is the risk that I will lose a couple
of days of productivity.…
Perhaps there should be something along the lines of a “Dogme 95”
for programming. Perhaps there is. I must admit that before
writing this I didn’t check. And there is a reason for that (as you
will see later). 
 You may be familiar with the “Dogme 95” manifesto written by
 Lars von Trier and
 Thomas Vinterberg .
To quote the Wikipedia…
From a recent conversation about edge computing. 
 
 What is this edge computing thing? 
 Think of the cloud 
 Yes? 
 Now move that computer into your house 
 Yes? 
 Tadaa! 
 Wait, so you mean….just …having a computer? 
 Yes, but when this one doesn’t work you can’t know why and you can’t do anything about it. And if whatever…
In the early days of the web building a search engine was mostly about
completeness and recall. To make sure you had the content and help
users find it. 
 Now, 30 years later, we have the opposite problem. Search engines and
content services have what you are looking for, but you won’t find it
because it drowns in content you are not interested in.
A while back I was visiting the local university (NTNU) to pick up
some surplus lab equipment. While there the dungeon keeper gave us a
tour of the basement storage rooms. On a shelf in the basement I
found something I recognized: the first GSM radio prototype.
This is an adaptation of the MIT
PACT 
contact tracing scheme where we eliminate BLE and use a central server
to facilitate communication between devices. This is more a thought
experiment than a serious suggestion since this introduces privacy
problems PACT was specifically designed to avoid .
This is a design for a lasercut acrylic drawer section I designed for
storing electronics components. I’ve been trying to learn how to do
proper, constraint-based, parameter driven design in Fusion 360
lately. While I still have quite some ways to go before I can say
that I’ve cracked it, this has already saved me some time on other
projects.

 During the day I work at Lab5e AS , which is a startup I co-founded to build solutions that make mobile IoT connectivity more pleasant to work with. If you do any work in this space you might want to have a look at what we do.