- Definitions of Software Architecture
Software architecture documents the shared understanding of a software system.
- One Letter Programming Languages
If you are looking for a free name, there is none.
- Thinking in Systems by Donella Meadows
Book review: A shallow introduction to Systems Thinking.
- Should version control and build systems merge?
At scale version control and build system seem to merge but there is no unified tool available yet.
- Companies are AI
Depending on the definition of intelligence, companies are intelligent beings.
- What is ASPICE?
The automotive industry knows how to develop software as demonstrated by ASPICE.
- Accidentally Turing-Complete
A list of things that were not supposed to be Turing-complete, but are.
- C++ State Machines
Avoid input parameters so state machines transitions are decoupled from transition effects.
- TipiWiki (2003)
More than 15 years ago I published a little wiki software.
- The New Economics
A book review which is about system thinking, statistics, learning, and psychology.
- Deriving Story Points
Story points are a useful technique to improve prediction but they have limits because the lack in statistics.
- The Spartan Web
Defining a label for websites I like to visit and would like to see more of.
The "Waterfall" methodology was a historic accident and they knew it.
- Dependency Abstraction
A design pattern which generalizes Dependency Inversion and can also be applied on an architectural level.
- Model View Controller isn't
Maybe the most misunderstood design pattern.
- How to implement strings
There are many alternatives to C strings. Here we explore the design space.
- Advice for a Junior Software Developer
Random wise words like "Never assume anybody is stupid".
- The Cost of Agile
Agile improves time to market at the cost of process efficiency
- My Raspberry Pi RF ID music player
My electronics for the kids music player are complete and working.
- Using an M302 RF ID Reader with Linux
How to get a cheap RF ID reader running with Ubuntu and Python
- My Linux History
I'm now using a Linux desktop for twenty years
- Lambda interpreter in the way of GOD
Good Object-oriented Design (GOD) says to avoid instanceof. Here is how to implement pattern matching another way.
- Abstracting is NOT about Names
You can abstract without giving names: The Design by Introspection technique
- Precise Abstractions
Precise abstractions apply to exactly the right types and D allows to check for that.
Bitcoin is a revolutionary technology. It might also be replaced quite soon.
- 6 Wildly Different Presentation Styles
A list of various presentations styles with and without slides
- Forget about Leaky Abstractions
If an abstraction is not perfect for you, it is incomplete or unsuitable
- How to generate Lua boilerplate with D
Lua bindings require lots of pushes and pops, but with D they are magically implicit
- Cognitive Dissonance as a Method
How populism turns people into xenophobic fascists
- Slide design for graphically-challenged people
Black on white, left align, one font for text, one font for code, fullscreen images.
- Federation is the Future for an Open Web
P2P technology is doomed on mobile. For a democratic web, we need to work on federation.
- Great Teams require Psychological Safety
Create great teams in 5 steps. Google collected lots of data about productivity in teams and these are the results.
- Memory Consistency Models for Programming Languages
The general memory consistency model is "Sequential Consistency for data race free programs". The rest is details.
- Hacker Titles for Business Cards
pointer arithmetician, languagician, object orienter, ...