» Visualisierung von Metriken in Voronoi-Diagrammen

May 22, 2016 | cpp development german math | Adrian Kummerländer

In der Analysis 2 Vorlesung meines Mathematik Studiums beschäftigen wir uns derzeit mit Normen und Metriken in endlich dimensionalen Vektorräumen, welche wiederum die Grundlage für die Übertragung der, aus Analysis 1 bekannten, Konvergenz und Stetigkeitsbegriffe in höhere Dimensionen schaffen. Während der Bearbeitung der entsprechenden Übungsblätter habe ich dabei nach Visualisierungsmöglichkeiten recherchiert, um eine bessere Intuition für diese Begriffe zu erlangen. Voronoi-Diagramme sind eine solche Möglichkeit, deren Grundlagen und Generierung ich in diesem Artikel zwischen Theorie und Praxis näher erläutern möchte.

» Notes on function interposition in C++

February 21, 2016 | cpp development english | Adrian Kummerländer

To counterbalance the vastly increased amount of time I am spending on purely theoretical topics since I started studying mathematics, my most recent leisure time project was to familiarize myself with function interposition in C++ on Linux. This article will document some of the ins and outs of using this technique in an actual project in addition to describing how the acquisition of the interposed function’s pointer may be reasonably abstracted by a function template.

» The joys of IPv6

September 24, 2015 | english linux network opinion | Adrian Kummerländer

A couple of weeks ago I moved to Karlsruhe where I will study Mathematics starting this fall. Among other things this meant that I had to search for an Internet provider for my new appartment. Previously I used a DSL connection by Telekom which offered nothing to complain about if one disregards the abysmal bandwidth available in my small home village in southern Germany. Luckily my new appartment offers the option of accessing the Internet via TV-cable instead of POTS which promises a better connection bandwidth than DSL even in the city. As my new provider uses a special kind of dual stack system I was finally confronted with IPv6 and want to summarize my experiences in this article.

» Nokia’s heir and hardware keyboards

September 18, 2015 | english linux opinion | Adrian Kummerländer

Yesterday I randomly stumbled upon my trusty old N900 in a drawer and decided to charge it and revisit past times. Maybe I am becoming older and more nostalgic and this is clouding my judgement but I feel that in 2009 mobile devices had more character. Booting up the N900 and being greeted by the familiar but nowadays seldomly heard Nokia jingle followed by a actually usable mobile Linux distribution makes me feel right at home in a way that today’s devices - in my case a Jolla with a TOHKBDv2 external keyboard - somehow simply can’t.

» Using Scheme as a metaphor for template metaprogramming

March 6, 2015 | cpp development english | Adrian Kummerländer

Back in January I looked at compile time computation in C++ based on handling lists in a functional fashion using a mixture between templates, generic lambda expressions and constexpr functions. The conclusion of the appropriate article was that the inherent restrictions of the approach taken in ConstList, namely the missing guarantee on compile time evaluation, inability to make return types depend on actual values and lambda expressions being unable to be declared as constant make viewing types as values and templates as functions the superior approach. This article describes how this approach works out in practice.

» A look at compile time computation in C++

January 14, 2015 | cpp development english | Adrian Kummerländer

The C++ language landscape may be pretty old by now but that doesn’t mean that its continental plates have ceased their movement and no new and exciting things happen anymore. To the contrary the recently approved C++14 standard picks up what was started in C++11 by continuing to modernize and empower the language via e.g. introducing generic lambda expressions and relaxing the restrictions on the constexpr keyword. Especially the last improvement caused me to think about how one could use the new language features to perform compile time computation in a fashion actually applicable in practice. This is what I want to talk about in this article.