The difference between a coder and a programmer
2023-08-26
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”.
Unhelpful help
2023-05-10
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..
Please do not use Python for tooling
2022-08-16
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.
ESP-IDF setup on macOS
2022-05-20
This is compact set of instructions to thet the ESP-IDF tools up and running on your mac. These notes are mostly for myself.
Publishing ranking and filtering algorithms
2022-04-19
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 capture
2022-03-22
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 doing before being interrupted.
Modular monoliths
2022-02-14
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.
Go annoyances
2022-02-12
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.
Up-dimensioning for VR
2022-01-30
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.
Generics, languages and tourists
2021-12-17
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.
Writing new system software
2021-11-14
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++.
Public data
2021-09-17
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.
Artificial incompetence
2021-09-07
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?
Blaming your tools
2021-06-23
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 for their hardships.
Can I trust this code I found on the Internet?
2021-04-29
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.
My last iMac?
2020-11-30
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. And with every release it seems Apple makes life harder for software vendors. Things tend to stop working and the solutions to those things tend to be that I have to spend money on something I rather wouldn’t spend money on.
Dogma rules and programming
2020-07-09
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 article:
Edge computing
2020-06-18
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 company at the other end of the tether goes tits-up you have a an expensive brick.
- I hate new technologies
- Oh it isn’t new, but now people in bad suits get to use technical sounding jargon.
- Like “agile”?
- Like “agile”
- I see. Good talk.
Sorry about the botched formatting of the above text. I’m using a hacked up template that is a mess for this website. I’m in the process of making a template that is a little less horrible
I want a go away-button
2020-05-25
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.
The first GSM radio
2020-05-07
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.
Chirp Chat
2020-05-05
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.
Drawer
2020-01-19
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.