Evaluating 'simplicity'

❝How to answer the question: 'Can we make it any simpler?'❞ After a lot of talk about simplicity, let us make things practical. This post is intended to highlight the concerns of each of “the components of simplicity” as I previously defined them. We make things practical with questions and examples, instead of abstract descriptions. Simplifying is a two-step process that may loop around as long as the question itself can be improved based on further insights, i.e. goal is an absolutely simple answer.


Read more ...

Absolute and relative simplicity

❝Whether or not you are allowed to rephrase the question itself.❞ In post “Questioning the scope of simplicity” we pondered whether question is relevant when considering if something is “simple”. In it we pointed out that given a complicated question, e.g. a question that is overly-broad, we cannot expected to give the simplest answer possible. The answer can only be as simple as the question it is stated to answer, and if you can rephrase the question to be more specific, then your answer may become simpler.


Read more ...

Bad example demonstrates failure in complexity

❝How I failed to "fix" a simple example illustrating simplicity.❞ I decided to demonstrate the three components of simplicity, that I was writing about in posts The definition of simplicity, with an example in mathematics. It is supposed to be as trivial as possible, so as not to distract from the concept “simplicity” in itself. There was some mathematical ambiguity – which really is not relevant for illustrating the idea – but it kept bothering me. The simple example In posts The definition of simplicity and Refining ‘simplicity’, I go into we can break down the concept of simplicity in three components, concerns if you will: specialized, unoptimized, reduced.


Read more ...

Questioning the scope of 'simplicity'

❝Pondering the question of whether the problem - as well as the solution - contributes to 'simplicity'.❞ In the post Refining ‘simplicity’, I decided to move away from the property named ‘specialized’ in favor of ‘dedicated’. I thought it would better cover the intended semantics, as both specialized and specific would equally apply otherwise. In doing so, I intuited that these were both relevant properties, but I could not quite put to words why this is the case. I wanted to write about the scope of simplicity and in multiple attempts to write I realized … it is not that simple.


Read more ...

Discussion for users, issues for devs

❝Exploring the idea of having discussions among users for primary project communication, and issues managed by developers only.❞ This post is a write-up of the ideas that came to mind after reading “It doesn’t work” by Frank DENIS and comparing the circumstances of the present to past years. Most noticeably, and you undoubtedly have run into these discussions and blog posts yourself, the many discussions on whether IRC should disappear and/or how IRC is better/worse than other chat platforms. Or the way the old “forums” have all but disappeared to be replaced with issue trackers and other variants of discussion boards.


Read more ...

Rust memory management: Reasoning from local scope - part 1

❝A from-local-scope way to think about memory management in Rust that allows understanding and working with the borrow-checker instead of against it.❞ Disclaimer This article is written with the experience level of someone who is learning about memory management, the borrow-checker, and Rust in general. Given that I have experience with other languages, I will allow myself to reason about the mechanisms in rust and its differences, as a way to thoroughly comprehend. Invariably there will be subtleties that are incorrect and/or details in the actual mechanisms that I missed. This article is not a complete picture.


Read more ...

Refining 'simplicity'

❝Refining the definition of simplicity: 'specific' becomes 'dedicated', 'deoptimized' becomes 'unoptimized'.❞ In “The definition of simplicity” I explained my proposal for how to define simplicity, such that this “intangible” concept can be expressed as a property triple. A good definition of simplicity should “feel” correct in the same way we all “feel” what it is for something to be “simple”. Original definition: simple = specialized & deoptimized & reduced Previously I defined simplicity as such and explained how all three properties are complementary.


Read more ...

git: merge only the completed work

❝The benefits of merging only a completed work, forgetting in-progress development history.❞ Something that pops up occasionally in a conversation on software development, is how one should reintegrate feature branches into the main line of development (typically “master” or “develop"). There are a number of options for reintegrating development work that lives on a separate branch: Merge the branch using a merge-commit. Rebase feature development work on top of the main line. Introduce the work, squashed into a single commit. In this article, it is assumed that a new feature is developed on a separate branch, then reintegrated when finished.


Read more ...

On Error Handling

❝On error handling - a general outline on case and error handling❞ A living document on the fundamentals of case and error handling. A general programming language-agnostic guideline for application development of all sorts. The article attempts to establish first principles that can be applied in any context where defined trade-offs give you the necessary adaptability to make it suitable to any situation. Note In this document I use “case” and “error” interchangeably. Anything that’s not on the expected happy path is typically an alternative “case” and if this happens to be undesirable we call it an “error”.


Read more ...

What if Programming Is Like LEGO?

❝What if programming would be as easy as playing with LEGO-bricks?❞ TL;DR There is no point in searching for programming-like-LEGOs. PHP allows us to pretty much do the programming-like-LEGOs thing. It is insufficient in the long run. “LEGO-likes” leave a lot to semantics, therefore do not give us the level of control we need in software development. Disclaimer I have little (recent 😁) experience in creating with LEGO. I may slip up in painting a picture of LEGO that is too limited or subtly incorrect.


Read more ...