1. Agile Software Development

    29. May 2015

    This article is an overview of Scrum and XP. Roles There are three main roles in Scrum. Each of it has some special responsibility. Product…

  2. Angular Velocity

    5. September 2019

    Rotation of a body in space can be represented with a unit rotation vector (axis) and an angle of rotation around this axis. The angular…

  3. ARM Cortex-M3 Architecture

    3. July 2015

    This page collects my notes about the Cortex-M3 architecture. In particular I use the EFM32TG840F32 processor on a STK3300 starter kit by…

  4. ARM Stack Frame

    20. September 2015

    This page contains notes about the usual stack frame layout (calling convention) on ARM processors. Most information is taken from ARM…

  5. Arrays in C and C++

    15. July 2015

    Arrays are simple but quite powerful constructs in C/C++. They are merely a representation of consecutive data in memory. They don’t contain…

  6. Emacs Artist Mode

    3. May 2015

    Keys Command Description - artist-mode Start artist mode C-c C-c artist-mode-off End artist mode C-c ^ Move (and draw) up (north) C-c…

  7. Blender Basics

    14. April 2018

    Right-handed (Rechtshändiges) Cartesian coordinate system. Axes: : width, red : depth, green : height, blue Mesh: vertices (3D points…

  8. Bootloaders for Embedded Linux

    21. June 2023

    Boot Sequence 1. ROM Code Runs directly after power up Provided by chip manufacturer Can usually only access SRAM (no DRAM) Capable of…

  9. BSD Socket API

    8. April 2022

    Functions : Create socket descriptor : Associate socket with a local IP address and port : Put connection-oriented socket in waiting mode…

  10. Configuration Space and Degrees of Freedoms

    14. September 2018

    Joints Every joint connects exactly two links. A joint: provides freedoms to allow one rigid body to move relative to another. provides…

  11. Closure

    13. October 2016

    There are 2 concepts that are called closure Lambdas Closures are (anonymous) functions with free variables that capture the context of the…

  12. Communication Protocols in Embedded Systems

    5. September 2022

    Serial Peripheral Interface (SPI) serial full-duplex master-slave (one master, multiple slaves) 4 wires: SCLK: Serial Clock (output from…

  13. Comparison of Rotations and Rigid-Body Motions

    5. January 2021

    Analogies Rotations Rigid-Body Motions Rotation Matrix Homogeneous Tranformation Matrix Rotation Axis Screw Axis Angular Velocity Twist…

  14. Complex Numbers

    17. May 2023

    Imaginary Unit The imaginary number is defined: it is often named instead of . But this can be confused with the electrical current…

  15. Complexity

    8. January 2017

    This page is work in progress “Halving the size of the problem at each step is the distinguishing characteristic of logarithmic growth” SICP…

  16. Concepts of Object Oriented Programming

    28. July 2015

    Core Requirements to OOP Languages Highly dynamic execution model Cooperating program parts with well defined interfaces Classification…

  17. Control Engineering Basic Concepts

    1. July 2025

    Ordinary Differential Equation Mathematical description of physical system State-space representation Matrix form () Used in Modern Control…

  18. Control Engineering Introduction

    31. August 2023

    Ordinary Differential Equation For homogeneous () linear error dynamics: Using coupled first order ODE’s defining where: The ODE can be…

  19. Cosine Distance

    8. January 2016

    useful in spaces that have dimensions Euclidian spaces Discrete euclidian spaces (i.e vectors of integers, vector of bools) … Points are…

  20. C++ on Embedded Systems

    31. March 2017

    This page is still work in progress No Exceptions (-fno-exception) What do std functions that throw exeptions What happens with library…

  21. Smart Pointers

    20. March 2017

    From: Smart Pointers to boost your code unique ownership copying prevented use to transfer ownership const prevents transfer can’t be used…

  22. Denavit–Hartenberg Transformation

    17. August 2025

    DH - Parameters Serial-link manipulator Links are rigid Joints connect links can move revolute or prismatic Every link connects 2 joints…

  23. List of Design Patterns

    17. September 2015

    Overview of Design Patterns Creational Patterns Structural Patterns Behavioral Patterns Other Patterns Abstract Factory Adapter Chain of…

  24. Distance Functions and Metrics

    26. September 2015

    Distant Functions A distant function works on two elements (i.e. vectors, sets…). A given distance function needs to fulfill properties…

  25. Docker

    19. March 2018

    See also: Docker Documentation. Setup Start the daemon (on Fedora): Start the daemon on boot (on Fedora): Run as user: First create a…

  26. Domain Driven Design

    5. January 2020

    Introduction Domain Driven Design (DDD) is a set of methodologies, tools and patterns that help to develop complex software systems. The…

  27. Dynamic Modeling

    1. July 2025

    Creating a dynamic model of a system involves multiple steps. Identify objective for simulation what do we want to accomplish define which…

  28. Eigenvectors and Eigenvalues

    9. February 2019

    An eigenvector of a linear transformation is a vector (non-zero) that, when the linear transformation is applied to it, changes by only a…

  29. Electrical Motors

    5. January 2019

    This page is work in progress AC Motors High power, single- or multi-phase, constant torque and speed, large loads DC Motors Normal DC…

  30. Endianness

    17. June 2015

    The endianness means the representation of a variable (if it is bigger than one byte) in the memory. Big-Endian: Most Significant Byte (MSB…

  31. Enums in C and C++

    16. April 2015

    Enums in C and C++ are a very simple construct. It’s just a collection of identifiers that have (usually) distinctive values. By default the…

  32. Evaluation strategy

    27. January 2021

    See also: Wikipedia: Evaluation strategy Applicative order evaluation (eager evaluation) All arguments to procedures are evaluated when…

  33. Executable Loader

    11. August 2015

    Most information of this page is taken from Calling conventions for different C++ compilers and operating systems. Some other good…

  34. Exponential Coordinate Representation of Rigid-Body Motions

    2. January 2021

    Every displacement of a rigid body can be expressed as a displacement along a fixed screw axis (Chasles-Mozzi theorem). Exponential…

  35. Files and File descriptors on Linux

    3. June 2016

    Some information on this page is taken from here (German). Process Control Block (PCB) Contains the information about a process. C struct…

  36. Finance and Capital Markets

    26. February 2018

    This article is work in progress Present Value (Barwert): value of expected income stream as of the valuation date (i.e. present). Concept…

  37. First-Order Plus Dead Time (FOPDT)

    28. August 2025

    Sometimes also referred to as the First-Order Plus Time Delay model. It’s often used to model the dynamic behavior of systems. where: : The…

  38. Flash Storage Technologies

    21. September 2025

    There are multiple flash storage options for embedded devices. NOR Flash can be mapped directly int address space code can be directly…

  39. Floating Point Numbers

    1. December 2021

  40. Free-Body Diagram

    30. January 2026

    The goal of a Free-Body diagram is to identify all the forces acting on an object and then to draw a diagram for that system. Divide the…

  41. FreeRTOS

    4. August 2017

    This page contains some random notes for FreeRTOS. See also: FreeRtosExamples and FreeRtos Configuration The configuration of the kernel is…

  42. GCC, binutils and other developer tools

    22. February 2018

    Work in Progress! ld Flags If the linker is called through the compler the linker flags need to be added with . : Symbols are resolved at…

  43. Gewohnheiten

    17. March 2021

    Diese Notizen sind grösstenteils inspiriert von: “Atomic Habits” - James Clear Nicht auf Motivation setzen! Manchmal hilft Motivation um…

  44. Git Detached Head

    18. November 2015

    If a has to be reset to a older version this is a possible workflow. The solution is from stackoverflow First checkout the version that…

  45. Dot Git Directory

    30. June 2017

    Some notes about the contents of the directory that resides in the root of a git repository. file: contains project-specific…

  46. Git Reset

    28. September 2017

    The command is not very easy and can be dangerous in some cases. The command does similar things. This overview is taken from the Pro Git…

  47. Harmful C Functions and their replacements

    18. April 2015

    Pre- and postfixes for printf and scanf There are quite a lot of functions in the and scanff amily. It might not be very clear when to use…

  48. Homogeneous Transformation Matrices

    12. December 2020

    Planar rigid-body motions A planar rigid body motion is defined as: Where: : A real matrix representig a rigid body motion in : Rotational…

  49. Hardware-Software Codesign

    15. November 2015

    0. Overview Specification and Models of Computation State-Charts Kahn Process Networks Design Space Exploration Mapping Partitioning Multi…

  50. Intel Architecture

    22. June 2015

    On this page I write down some notes about the Intel architecture (x86). Part of the notes here are for Intel 80186. But some sections are…

  51. Intel Assembler Overview

    17. October 2017

    Program Format Typical sections of an assembler program are: section: declaration and definition of initialized data section: declaration…

  52. x86 Calling Conventions

    5. November 2017

    There are a lot of different calling conventions fir x86 processors. See also Wikipedia:x86 calling conventions Unix System V AMD64 ABI…

  53. Investment Management (Coursera Specialization)

    28. July 2017

    Contents Understanding Financial Markets General Introduction and Key Concepts Investment Management in a nutshell Investment management is…

  54. Audio Plugin Development

    5. April 2026

    Digital Audio Processing Sampling Rate and Sampling Period with: : Sampling rate in : Sampling period in Samples and Frames A frame is a…

  55. L2-Norm

    8. January 2016

    L2-Norm A vector has the -Norm: : Dimensions : -th element of L2-Distance The -Distance between two vectors and is:

  56. Language Implementation Patterns

    26. December 2017

    This page collects notes and citations from the book: Language Implementation Patterns by Terence Parr Some of my examples can be found here…

  57. Lernen

    16. February 2021

    Vorgang Umfang/Thema definieren Lernmaterialien zusammentragen Überblick verschaffen Text überfliegen/querlesen Grafiken studieren evtl…

  58. Linking and Loading

    24. November 2017

    The different forms of Linking There are two major forms of linking: static and dynamic. But there are some subtle details in each form of…

  59. Linux System Calls

    6. November 2017

    A system call is the basic interface between applications and the kernel. Linux has more than 300 system calls. The syscalls are implemented…

  60. Macro Magic in C and C++

    15. May 2015

    Macro Tricks Stringification The operator allows to create a string out of a macro parameter. With the ‘stringize’ trick any defined…

  61. Make as multi-paradigm language

    29. November 2017

    Make can be seen as a multi-paradigm programming language. It supports at least three paradigms: Declarative Imperative Functional…

  62. Mechanical Constraints

    7. October 2018

    Pfaffian Constraints A Pfaffian constraint is a set of () linearly independent constraints so that: Where: : derivative of with respect…

  63. Memory Layout

    9. June 2015

    When a process is started the operating system allocates memory for this process. On modern systems this memory is usually mapped to an…

  64. Midnight Commander

    5. June 2018

    Panels Keys Function Swap panels Switch listing mode (full, brief, long …) Show current directory in other panel (synchronize) Toggle…

  65. Models of Computation

    29. February 2016

    Boolean Circuits AND/OR/NOT gates Gate: function Inputs: arguments to function In-/Outputs: wires Circuits: combination of gates Truth table…

  66. Modern C++ Design

    3. January 2017

    Part I. Techniques Policy-Based Class Design The Benefit of Templates “Templates are a good candidate for coping with combinatorial…

  67. Modern OS's

    2. April 2015

    This page collects some notes about different Operating System approaches. Most of the information gathered here is from the course Advanced…

  68. Object Databases

    20. April 2016

    Motivation Information Systems Design Conceptual Design -> Technical Design -> Implementation Orthogonal Persistence Data has to outlive the…

  69. Object File Formats

    6. August 2015

    Most information of this page is taken from Calling conventions for different C++ compilers and operating systems. Overview Object Format…

  70. ODBC and PostgreSQL

    14. December 2021

    This page collects just some random, incomplete information about ODBC and PostgreSQL on Linux. Tools : Command line tool to access the…

  71. Object Oriented Design Principles

    31. May 2018

    General Use Coding conventions Keep it simple, stupid (KISS) Boy Scout Rule: “Always leave the campground cleaner than you found it…

  72. Parsers and Lexers

    8. January 2017

    Most material on this page is from Udacity: Programming Languages Lexical Analysis (Lexing): String -> Token List Syntatical Analysis…

  73. Physics Basics

    1. December 2021

  74. Pomodoro-Technik

    17. March 2021

    Die Pomodoro-Technik ist eine simple Methode für das persönliche Zeitmanagement. Anstehende Aufgaben werden in kleine Einheiten aufgeteilt…

  75. Pose and Position

    10. November 2018

    This page is work in progress Position Position of point relative to point : In 3D space positions are represented by vectors It is…

  76. Practical C++ Metaprogramming

    17. October 2018

    Notes taken from: Practical C++ Metaprogramming Edouard Alligand and Joel Falcou O’Reilly Media, Inc. My repository with examples on Github…

  77. Preprocessor Defines

    11. August 2015

    Preprocessor Defines This page lists commonly used preprocessor defines for C/C++ Programming Language Language Define C++ C 99 Compiler…

  78. QEMU Quickstart

    6. March 2018

    This shows a basic use for QEMU. See also QEMU Documentation QEMU can emulate different processor architectures: : ARM : MIPS : PowerPC : x…

  79. Quaternions

    25. August 2025

    Quaternions are an extension to the real numbers. They have some similarities with Complex Numbers. The Quaternions are denoted with the…

  80. Regular Expressions

    7. October 2016

    See also the Python Standard Library Documentation My Repository on GitHub Metacharacters Twelve Metacharacters: Backslash Caret Dollar…

  81. Requirements Engineering

    27. June 2016

    This article is work in progress. Conceptual Design => Technical Design => Implementation Actors, Personas Mock-ups (for non-engineer) Paper…

  82. Exponential Coordinates of Rotations (Rodrigues' formula)

    8. October 2019

    Axis-Angle Representation of Rotation An alternative representation to rotation matrices is the axis-angle representation in the form: Where…

  83. Robot Operating System (ROS)

    19. April 2019

    Currently I’m using Melodic Morenia. There is -completion for almost everything Load ROS Environment For Bash: or Zsh: Commands Command…

  84. Rotation Matrix

    9. October 2018

    This page is work in progress Rotation The configuration of a point is fully described by a position, bodies additionally require a rotation…

  85. Synchronization Primitives (Read-Modify-Write)

    7. April 2016

    Read-Modify-Write Compare-And-Swap Todo Load-Link/Store-Conditional This works: But this fails: Test and Set Pseudo code: Reset: Generic RWM…

  86. Sanitizers

    5. March 2018

    Sanitizers Address Sanitizer (and Leak Sanitizer) Compile and link with the flag It might be necessary to link with with older gcc/ld…

  87. Scheme (Lisp)

    1. February 2021

    This page collects notes about Scheme (an Lisp in general). Sources Most information is taken from: Structure and Interpretation of Computer…

  88. Scheme

    14. October 2016

    Pairs (, and ) : Construct a pair : Get first element of pair (or list) : Get second element of pair (or rest of list) Lists : create a…

  89. Twist, Screw and Wrench

    27. December 2018

    Screw A rigid body can be moved from one position to any other by rotation around a line (vector) and translation along that line. This is…

  90. Setup a new Machine

    19. September 2018

    Some notes on what to do to setup a new machine for my development projects. Linux Install: with package manager: Editor: code/codium (Snap…

  91. Seven Concurrency Models in Seven Weeks

    14. May 2020

    This page collects notes taken from Seven Concurrency Models in Seven Weeks When Threads Unravel by Paul Butcher Some of my examples are…

  92. SI Units

    1. December 2021

  93. Structure and Interpretation of Computer Programs

    10. November 2016

    Notes to the book Structure and Interpretation of Computer Programs, Second Edition Harold Abelson, Gerald Jay Sussman, Julie Sussman MIT…

  94. Skew-symmetric matrix

    30. August 2019

    A skew-symmetric matrix has the property: or expressed differently: It can be formed from a vector as For real valued skew-symmetric…

  95. Software Compliance and Standards

    2. October 2025

    Cyber Resilience Act (CRA): Ensure cybersecurity for software products in the EU market. General Data Protection Regulation (GDPR, DSGVO…

  96. Software Development Priorities

    31. March 2017

    This page is still work in progress When developping software the priorities are as following: correctness maintainability efficiency…

  97. SOLID Design Principles

    10. May 2021

    The Single Responsibility Principle (SRP) A class (function, module…) should have only one reason to change. A responsibility is “a reason…

  98. Space Topology

    19. September 2018

    Space Topology Euclidian space: or Sphere: Torus: () is the -dimensional Euclidian space, the -dimensional surface of a sphere and is…

  99. Spring

    30. September 2021

    Dependency Injection and Inversion of Control The Spring IoC container needs to know which beans to create for Dependency Injection. Define…

  100. Intro to SQL

    13. April 2015

    Most notes taken here are from the Udacity SQL course and PostgreSQL Essentials: Leveling Up Your Data Work by Haki Benita. Aggregations…

  101. State Space Representation

    8. July 2025

    Differential Equation of a Dynamic System Causality: Only causal systems can be realized Relative Degree: State-Space Representation…

  102. Statements and Expressions

    4. July 2016

    “The purpose of an expression is to be evaluated to produce another expression; a statement, on the other hand, is evaluated to make some…

  103. Introduction to Statistics

    22. May 2015

    This article is still work in progress! The notes on this page are taken from: Udacity: Intro to Statistics. Packt: Statistics for Data…

  104. Notes on std

    1. July 2019

    There is a good documentaion at cppreference.com General Use only for legacy code and debugging Use explicit casts ( and ) only when…

  105. System Construction

    7. November 2015

    My Notes for the System Construction Course at ETH Minos on Raspberry PI 2 (Case Study 1) ARM A7 The ARM Architecture is not the same thing…

  106. SystemC

    15. February 2016

    SystemC is a system-level modeling language. It’s implemented as a C++ library. The library is open source and platform independent. It…

  107. A brief History of Test Driven Development

    27. October 2021

    This is a brief history of Test Driven Development. Kent Beck claimed to have rediscovered the concept of Test Driven Development. 1968 Alan…

  108. Testing Strategies

    11. March 2023

    Test are written for getting confidence about the software. There are a lot of kinds of feedback that give confidence about the system…

  109. tmux

    3. July 2018

    Prefix Key The prefix key combination needs to be pressed before any command for tmux (when tmux is running). By default the is: Sessions…

  110. Linux Toolchains

    2. September 2023

    Toolchains The GNU toolchain consists of these components: Binutils: Assembler, linker, (ld) and other tools GCC: Compilers for C, C…

  111. Twists

    1. January 2021

    Linear and Angular (Spacial) Velocities Given a transformation matrix that represents the configuration as seen from the spacial velocity…

  112. Timezones on Unix

    1. July 2019

    There is an extensive time zones database maintained by IANA: tz database Informations about time zones supported by the systems are found…

  113. Understanding Computation

    12. September 2016

    This page collects notes and citations from the book: Understanding Computation by Tom Stuart I. Programs and Machines “To create an…

  114. Unix Device Files

    5. March 2017

    Device files provide access to drivers through files. They are listed under . There are two kinds of device drivers (as shown with…

  115. Unix Directory Structure

    30. September 2016

    Linux See also the Filesystem Hierarchy Standard. Directory Content Essential commands and programs for all users System binaries: mainly…

  116. Unix File Permissions

    8. April 2022

    File Access Permissions (POSIX) Additional Bits Three additional bits with special meanings are available: (4): Change the of the process…

  117. Unix System Files

    6. March 2017

    Contains user informations. The information fields are separated by a colon. : The name that the user needs to log in. : Usually the entry…

  118. Vector Calculus

    9. September 2015

    Some notes about Vector Calculus. Mainly Divergence, Gradient and Curl. Nabla Operator () For a 3-dimensional cartesian coordinate system…

  119. vim

    4. April 2019

    Modes Key Mode Insert at current cursor position Insert at beginning of line Insert after current cursor position Insert at end of line…

  120. Visualization of Functions

    3. April 2018

    Some notes how to visualize mathematical functions. Domain and Range Input space: domain Output space: range or codomain Graphs (single…

  121. Wrenches

    4. January 2021

    A linear force acting on a rigid body at point creates a torque (moment) that can be represented in a reference frame as: With: : Torque…

  122. Zeit Management

    1. March 2018

    Allgemeines Bereiche Ziele Übersicht Prioritäten Plan Motivation Ziele Realisierare Ziele Kurz-, mittel- und langfristige Ziele Wo will ich…