When you debug your code to find a problem in your program, you observe the behavior of the program and make assumptions about the nature of the problem. But the behavior you observe can lead you to the wrong conclusions. Based on the wrong conclusions, you would design a fix that might look good at first glance, but would fix nothing or even make things worse.
In this article, I will give an example of a bug hunt that went down the wrong path. Read on to see how even seemingly simple systems can be surprisingly difficult to get right.
Category: Engineering
I am an engineer at heart. I love to build technical systems, both in hardware and software. In this section, I share my insights on building these systems.
On AI and Art
The hype about ChatGPT brings AI to the attention of a wider audience. It might even seem that AI has now reached a level in which many tasks that we originally thought to be in the human domain and not in the machine domain might be taken away from us. But is that really true?
What is TLA+?
TLA+ is a modeling language in which one can model technical systems with discrete states. It has been used to describe many things, from the jugs problem in Die Hard 3 over a diverse array of algorithms up to Amazon Storage Services. The power of TLA+ comes from the TLC Model Checker, which checks your model for certain properties. These properties could be invariants — statements that are true of every possible state, like there are no buffer overruns. And it can check temporal properties — e.g., that an algorithm eventually finishes.