Bendik Solheim

Mostly a developer.

(Dis)Honest Functions

March 3, 2021 – 8 minute read

After a recent debugging session, discovering I had once again been the victim of a dishonest function signature, I was... Well, let’s just say I was unimpressed. Two thoughts popped up in my head – the first one was «ahh.. this thing again..», and the second was «wait, why is this still even a thing?». It left me in a state of frustration.

Java Version Management on macOS

January 30, 2021 – 5 minute read

With the increased frequency of Java releases handling multiple versions on a single machine is more and more relevant. Solutions already exists, such as the widely used jenv – my goto tool for a long time. For a number of reasons, I recently decided to throw it out of my system and build a solution myself. The result is a few small functions which handles most of my needs.

Functional TypeScript with fp-ts

December 12, 2020 – 8 minute read

An introduction to the library fp-ts, mostly without digging too deep but instead introducing concepts anyone can benefit from. Also tries to stay from functional lingo – something it manages to do more or less.

Characteristics of the Perfect Programming Language

December 2, 2020 – 3 minute read

This is an opinionated post. Consider yourself warned. You will probably disagree with at least some of it, and that is completely fine. The important part is the thought process – don’t just read through it and agree or disagree, think about what you agree or disagree with and why. Becoming aware of these things is valuable: once you become aware of why you dislike something, you can start doing something about it.

Immutable by Default

December 3, 2019 – 3 minute read

You should always strive to make, and make use of, immutable data structures. Even if your domain is inherently mutable (like most domains, really), there are quite a few pitfalls that can give you headaches later on if you also use mutable data structures. Many of them are avoidable simply by making it harder to accidentally modify data.