Decisions Part I - What's a decision anyway?

The word decision pops up very often in our day to day conversations, and it is not that surprising. Decisions form a very central role in our lives: we can sum up someone’s life by telling the sequence of decisions they made throughout it. We judge ourselves and other people by the decisions that we make:

  • I can’t believe they are moving in together, that is just a nightmare waiting to happen…
  • You should ask your brother to go with when buying your car, he bought a really good one himself.

The sad thing is that most of us never really learn anything about making decisions.

A Philosophy of Software Design by John Ousterhout

Since I mentioned this book during my interview with Dave Rael for the podcast Developer on fire, I thought it was time to put my favorite quotes of the book online.

A Philosophy of software design looks at the creation of software through the lens of complexity in your system. This book is very small, only 200 pages, so don’t expect an in depth explanation of every topic in it. It covers the basics of every topic and it is up to you to venture out and find a more in-depth book about one of the topics in it.

The most fundamental problem in computer science is problem decomposition: how to take a complex problem and divide it up into pieces that can be solved independently. (Location 198)

Humans vs Computers by Gojko Adzic

Humans vs Computers, the first book I read in 2019 and it was an excellent choice! This book is a collection of (horror) stories about software design failures. There are 4 themes in the book:

  • Names
  • Addresses
  • Numbers
  • Time
  • Process automation

And the best part? The end of the book contains an overview of the ‘lessons learned’ you can take away from all these stories when designing software.

Of course, computers couldn’t be upgraded so quickly, so people just typed VOID into the licence plate field, and Turner started receiving all the tickets. Mistakes such as these happen when a computer insists that humans provide a piece of information that isn’t immediately available or just doesn’t exist, so people find workarounds. (loc. 94)

F# Fable 2.0 -> 2.1

This morning one of my colleagues ran into a weird error when trying to build one of our web applications with Fable:

ERROR in ./src/path/to/your/Client.fsproj Module build failed (from ./node_modules/fable-loader/index.js): Error: Cannot find module ‘fable-compiler’

At first I was very confused because as far as I could tell, fable-loader didn’t use a module called fable-compiler.

But then I remembered something from Twitter: there were plans to eliminate the dotnet cli tool in the next Fable release and replace is with a javascript module again. Yeey for reading Twitter!?

My F# aesthetics

I love churches, more specifically I love the architecture of a Catholic church build during the Gothic time period. I know, a weird way to begin an F# blogpost for the fsadvent, but bear with me for a moment.

I have tried to explain by enthusiasm for churches, cathedrals and such to many people but I have rarely succeeded in doing so. But still, I will keep trying.

Imagine a church that you visited, perhaps Notre Dame de Paris? Picture yourself standing in front of her.

In the middle of the building you have double doors, which divide the entire building into two halves. One tower on the left, one tower on the right.