Software is evolving all the time. Bugs get fixed, the documentation is improved, it is compiled for new operating systems, ported to other devices, new features are added. New developers get trained and old developers leave the team.
People who think software is once written and then finished got it wrong. Software is like a garden: You have to put effort into it to keep the current quality.
To me, software gardening tasks are small- to medium-sized tasks that you can almost always do. If done regularly, they don’t require a lot of effort. Software gardening makes sure that complex…
Bitcoin and Ethereum made it to the news in 2021 due to all-time high price records. People know that they somehow are related to “the blockchain”, but very often the knowledge is rather fuzzy. During the onboarding process at my new job at Cashlink, I’ve participated in several learning sessions given by Niklas Baumstark which sharpened my knowledge.
After reading this article, you will know the basic terminology and be able to set the concepts into context.
This article will not go into different use-cases of blockchains. If you’re looking for that, please read:
A transaction (short: TX) consists of…
Software projects need to be handed over all the time. New people join, others leave the company. When I did my first handover, I was pretty bad at it. I improved over time and just got an excellent introduction by Niklas Baumstark.
Let me share some ideas on how I think you can structure amazing handovers in nine steps. Let’s get started!
The Unix programming philosophy is to do (just) one thing but do it well. Focusing on one core task is hard as developers see and feel their users' pain points and desires. To be able to focus on the core product but allow additional functions we cannot take care of, we develop plugin systems. One way to do this is by giving hooks.
A hook is a way to extend software.
Think about an email client. The email client might define a hook
pre_send that receives the current receiver, subject line, and content of the email. Developers can use this…
We developers like to throw around terms that feel natural to us, but are technical terms that most non-developers don’t use in the same way. This article is aimed at all the poor souls who have to deal with us, e.g. product managers, product owners, scrum masters, business people.
After reading this article, you will understand the difference between synchronous vs asynchronous vs concurrent vs parallel. Let’s start!
If you want a program or website to feel faster, you have various options:
Software is correct if it acts as specified. It is robust if it can take a high load until it goes down. Software is resilient if it can go back to normal after a disruption. The disruption could be a power outage, a temporary network outage, a full disk, or a web service that is temporarily not reachable. There are patterns to deal with those issues. Learn them, use them!
You probably know it: You’re commuting, reading your favorite articles on your smartphone when the connection drops. You enter your favorite blog URL — martin-thoma.com, …
Having full control over encrypted messages is sometimes just nice and crucial in other situations and/or places in the world. GPG, the Gnu Privacy Guard, is a commonly used tool to encrypt, decrypt, and sign secrets.
After reading this article, you will know how to use GPG. Let’s go!
Symmetric cryptography is easy to understand. You have two functions,
decrypt . Both use a key to generate the output:
encrypt(clear text, key) = cipher text
decrypt(cipher text, key) = clear text
The issue with this concept is that you need to exchange the key in a secure way.
Preventing code duplication is a software development principle called DRY — Don’t Repeat Yourself. DRY is important because duplicated code usually means way more code that needs to be maintained. If you need to fix a bug, you need to fix it in all duplicated places. If you need to extend the capabilities, you need to do it in multiple parts of the code. When a new developer adjusts one part of the duplicated code and forgets to adjust the other places, the situation gets more complicated.
The car market is changing. While we were improving cars powered by Gasoline and Diesel for a long time, Tesla made the industry move. Electric vehicles (EV) and hydrogen cars were seen as two equally valid options for a long time, this changed in the past few years. Let me explain why I think that the hydrogen car will die.
Most websites only have one piece of evidence that is used to authenticate you: A password. However, having multiple pieces of evidence increases security quite a bit. Those pieces of evidence are also called “factors” and they fall into three groups:
Using multiple factors for authentication is also called multi-factor authentication (MFA). If you use two factors, it is two-factor authentication (2FA). Hence 2FA is the simplest form of MFA.
After reading this article you will understand how MFA…