In the field of computer science, a graph is an abstract data type that is widely used to represent connections and relationships. This post gives an overview about a selection of definitions, terms, and algorithms, which are related to graphs. The content was put together during preparation for a theoretical computer science test at Cooperative State University Baden-Württemberg and is mostly taken from either Wikipedia or lecture notes. Continue reading Graph Theory Overview

## Least Squares Derivation

The least squares optimization problem searches for a vector, that minimizes the euclidean norm in the following statement as much as possible: $$x_\text{opt}=\arg\min_x\frac{1}{2}\left\lVert Ax-y\right\rVert^2_2\,.$$This article explains how $x_\text{opt}=(A^{\text{T}}A)^{-1}A^{\text{T}}y$, the solution to the problem, can be derived and how it can be used for regression problems. Continue reading Least Squares Derivation

## VPA Compact GPS Impressions

The Vodafone VPA Compact GPS is a Personal Digital Assistant (PDA) with the operating system Windows Phone. It was released in late 2006 and it was the first smartphone I have ever owned. Just recently I rediscovered the phone, which was lost without trace for a couple of years. This post is about sharing some impressions of an era where the first iPhone was not even on the market yet. Continue reading VPA Compact GPS Impressions

## Cubic Spline Interpolation

Cubic spline interpolation is a mathematical method commonly used to construct new points within the boundaries of a set of known points. These new points are function values of an interpolation function (referred to as *spline*), which itself consists of multiple cubic piecewise polynomials. This article explains how the computation works mathematically.

After an introduction, it defines the properties of a cubic spline, then it lists different boundary conditions (including visualizations), and provides a sample calculation. Furthermore, it acts as a reference for the mathematical background of the cubic spline interpolation tool on tools.timodenk.com which is introduced at the end of the article. Continue reading Cubic Spline Interpolation

## Commute Time Tracking

According to the U.S. Census Bureau the average commute time for U.S. citizens who are neither working at home, nor walking or biking to work, is 25.9 minutes. My commute time from Karlsruhe to SAP is usually about 38 minutes one-way; often protracted by traffic jams. However, these can be avoided by departing at times where rush-hour traffic has not fully built up yet. But which departure time works best? Is it 07:00 or rather 09:00? When departing at 07:40 how much time could one save by departing just ten minutes earlier? In addition to the traffic conditions on the outbound trip, the delay on the way back has to be taken into account likewise. With about 9 hours and 20 minutes spent at work, the traffic at 16:20 matters for a departure at 07:00. For a 09:00 departure it would be 18:20.

Continue reading Commute Time Tracking

## Observing the ISS from Earth

The International Space Station is orbiting our planet since 1998. One orbit takes only approximately 92 minutes and the ISS is sometimes visible at the night-sky. To the naked eye it looks like a bright star crossing the night sky in just a few minutes.

In April 2017 I was visiting my uncle in Almeria, Spain. He has a nice telescope and we were wondering, whether it would be possible to recognize the International Space Station’s shape through the telescope. As it turned out it is possible but not easy: The primary difficulty was to keep the rapidly moving ISS within the telescope’s field of view. Additionally, the video output was very shaky, which made comprehensive post-processing necessary.

If you want to spot the station check out NASA’s website spotthestation.nasa.gov. But first of all enjoy the video which we recorded that night!

Continue reading Observing the ISS from Earth

## Port Manipulation and Arduino’s digitalWrite Performance

The widely used Arduino IDE offers many easy-to-use functions, one of them is `void digitalWrite(uint8_t pin, uint8_t val)`

. It sets one of the microcontroller’s pins to either high or low and serves well in many cases. However, it has a really poor performance, i.e. execution time. This post analyses both, speed and interior of the digitalWrite function, and proposes alternative, high performance solutions for setting output pins.

Continue reading Port Manipulation and Arduino’s digitalWrite Performance

## Program Arduino in Assembly or C/C++

This post is a tutorial on how to get started on programming your Arduino in Assembly or C/C++. In order to follow you need a Windows machine and a microcontroller programmer like the Atmel-ICE.

Continue reading Program Arduino in Assembly or C/C++

## SAPUI5 Data Binding Examples

This post lists several examples of simple and more complex data binding use-cases in SAP’s web technology SAPUI5. For more examples you should definitely check out the SAPUI5 Explored page.

Continue reading SAPUI5 Data Binding Examples

## Arduino 433 MHz Wireless Module

This post provides a quick reference for the 433 MHz wireless module, which is widely used in combination with the Arduino. The VirtualWire library is one possible way of utilizing the module. Continue reading Arduino 433 MHz Wireless Module