Categories
Blog Engineering Software Development

How a Bugfix Can Take the Wrong Turn

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.

Categories
Blog Engineering

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?

Categories
Blog Engineering Software Development

Train Sidings – A TLA+ Example

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.

Categories
Blog Engineering

Creativity and Engineering

Categories
Blog Engineering

Energy and Information

Categories
Blog Engineering

The Holistic Engineer