Categories
Software Development

Why each TODO needs a Ticket

Everyone is aware that code with comments is a bad thing. It will inevitably decay, and future developers will be wondering if there is any need for it at all.

Every developer is aware of this. So they often remind themselves to follow up the commented out code with a TODO comment, to see that something needs to be done. Many IDEs support this idea and can show you all TODO comments in your current project.

However, I think using TODO comments to remind yourself of work that needs to be done is a very bad idea. Here is why.

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 Software Development

Choosing Your First Programming Language

Categories
Blog Software Development

What is a Programming Language?

Categories
Blog Software Development

Thinking Like a Computer – Data Types

Categories
Blog Software Development

Thinking like a Computer – Algorithms

An algorithm is a description of a process that operates on a given input to produce a desired output. This definition is both very general and very similar to the description of what a computer does. The difference is that an algorithm is just a description of a process. It does not necessarily have to run on a computer. But algorithms are also sequences, and thus they are very well suited to be executed by a computer program.