There are no sacred technologies

In my previous post I talked about how there are no silver bullets, that is there are no technologies that will solve all your problems without introducing some of their own. In this post I will talk about something that happens often, as development processes mature in an organization, somehow technologies become sacred. Let’s startContinue reading “There are no sacred technologies”

Typical use cases for Kafka

In my previous post I explained the main components of a Kafka system. In this post I will explain some of the typical use cases where Kafka is used. By typical I do not mean that all systems built on top of Kafka follow these patterns, only that these use cases are wildly used. BeforeContinue reading “Typical use cases for Kafka”

Data streaming with Apache Kafka

Data streaming is becoming more and more important, and hardly a new project is started without having at least considered data streaming as a solution or part of the solution. Apache Kafka is a messaging system that has become extremely popular and is the top choice for data streaming nowadays. This post goes into whatContinue reading “Data streaming with Apache Kafka”

What you need to know about interrupts

If you are from my generation or older, you remember the wonderful days of manually configuring hardware by using jumpers and then connecting the hardware to the ISA bus on a computer. Before I got my first PC, I owned a more user friendly system(an Atari 65XE), so new hardware was magically configured. Well theContinue reading “What you need to know about interrupts”

User to hardware (part 2)

Disclaimer This post is not meant to be a precise description of how a device driver works or an accurate description of the hardware components and their interactions. This post is an introductory post for people that would like to know more about device drivers and hardware programming. Therefore some simplifications have been made. InContinue reading “User to hardware (part 2)”

User to hardware (part 1)

This is the first post in a two post series covering the trip from a running process all the way down to the hardware and back. In this post I will cover the software side, this means I will start from a running process and walk through the different pieces that are needed to talkContinue reading “User to hardware (part 1)”

The so called userspace

Most people have heard the term userspace and most people have a grasp of what it means, but why is it called userspace and what is it? To understand the name we need to go back to the core and look at the architecture of a CPU. Most processors, including most microcontrollers, have two modesContinue reading “The so called userspace”

What you need to know about the C Library

Many people have heard about the C Library and for most its name inspire awe and a magic aura. In short, the C Library is the library that implements the runtime for the C programming language. The C Library also provides an interface to manage the interaction between a process and the system. This isContinue reading “What you need to know about the C Library”