Works & Projects

SensorBee

SensorBee website
SensorBee GitHub repository

At Preferred Networks, I was one of the main developers of SensorBee, a stream processing engine for IoT applications. SensorBee is written in Go and compiles to a single binary, making it very easy to deploy even to small devices on the edge of the network. I designed the BQL language used to control SensorBee and implemented the BQL parser. Also I implemented large parts of the execution engine and the standard function library.

Accounting with Ledger

Accounting with Ledger (Slides)

Slides for my talk in the PFI/PFN Seminar on March 10, 2016. There is also a video of the talk (in Japanese) on YouTube.

Many people have an interest in managing their income, expenses and assets in order to understand what they have, manage payments, optimize finances, and plan their financial situation. ledger is a command-line based tool that reads plain text files as input and can create reports of various kind to assist in finance management. In this talk I introduce the ledger syntax, basic commands and explain how ledger can be used for common accounting tasks.

JubaQL Server

JubaQL Documentation
JubaQL Server GitHub repository

At Preferred Networks, I was one of the main developers of the JubaQL ecosystem in a cooperation project with NTT. JubaQL is an SQL-like language that simplifies working with Jubatus, a distributed Machine Learning software. I designed the JubaQL language and implemented the JubaQL Server on top of Apache Spark.

Apache Sparkで分散コンピューティング

Apache Sparkで分散コンピューティング (スライド)

2014年8月21日にPFI/PFNセミナーで発表したスライドです。 USTREAMでは発表のビデオがあります。

Apache SparkはScala言語ベースのビッグデータ処理フレームワークです。この発表ではまずScala言語の基本シンタックス等を説明しています。次にSparkフレームワークの重要なコンセプトや使い方について話しています。終わりにSparkに入っているライブラリーを紹介しています。

A German Viewpoint on Privacy

A German Viewpoint on Privacy (Slides)

Slides for my invited talk at the Symposium “International Reactions and Responses to the Snowden/NSA Dilemma” held at Waseda University on December 14, 2013.

The 2013 revelations by Edward Snowden on the mass surveillance conducted by the NSA have lead to different responses in various countries. In this talk which I was invited to give by the head of the Asia-Pacific Cyberlaw, Cybercrime and Internet Security Research Institute at Waseda University, Pauline Reich, I give a short overview about the history and legal foundations of privacy in Germany. I also show two recent examples, namely a toll collect system and Google Street View, and explain how they were dealt with privacy-wise in Germany.

An Introduction to the Scala Programming Language

An Introduction to the Scala Programming Language (Slides)

Slides for my talk at the English Friday Lunch Seminar during my internship at IBM Research Tokyo on October 18, 2013.

Scala is an object-functional programming language that runs on the JVM. In this talk I introduce the core syntax and semantics of Scala, how it relates to Java and some advanced language features.

restful-openerp

restful-openerp GitHub repository

As the name suggests, restful-openerp is a RESTful proxy server for OpenERP (now Odoo) written in Python using the Twisted framework. OpenERP 6 provides an XML-RPC API that allows to access data objects and trigger workflows, but to use OpenERP as the primary backend for a webshop, the speed of that API is not sufficient and caching would be hard to realize. restful-openerp follows the ideas presented in REST in Practice and therefore provides an API that is very easy to navigate (even with a browser) and to cache with an HTTP cache such as Varnish. I designed, implemented and open-sourced restful-openerp. At vismath, it was used in production for over two years between the webshop written in Scala with Lift and OpenERP.

RDF: Information Representation in the Semantic Web

RDF: Information Representation in the Semantic Web (Slides)

Slides for my talk about the Resource Description Framework at the TESOBE Open Learning Meetup #3 on December 27, 2012.

RDF (Resource Description Framework) is a system to represent, store, query, and share information in the context of the Semantic Web. In this talk I compare RDF in particular with traditional relational databases and introduce the query language SPARQL.

Diplomarbeit

Diplomarbeit: Gitterfreie Methoden zur Berechnung harmonischer baryzentrischer Koordinaten für die Geometrieverarbeitung

Meine Diplomarbeit trägt den Titel „Gitterfreie Methoden zur Berechnung harmonischer baryzentrischer Koordinaten für die Geometrieverarbeitung“ und entstand unter Betreuung von Prof. Dr. Konrad Polthier an der Freien Universität Berlin.

Zusammenfassung

Verallgemeinerte baryzentrische Koordinaten sind ein wichtiges Hilfsmittel in der Geometrieverarbeitung, Numerik und Computergrafik. Ihre Anwendungen reichen von der Interpolation von auf einem Gebietsrand gegebenen Daten bis hin zur Deformation komplexer 3D-Geometrien. Harmonische Koordinaten sind dabei aufgrund besonderer analytischer Eigenschaften eine beliebte Wahl.

In dieser Arbeit wird zunächst ein Überblick über die vielfältigen Anwendungsbereiche baryzentrischer Koordinaten und bekannte Eigenschaften harmonischer Funktionen gegeben. Im Anschluss werden nach einer kurzen Vorstellung populärer gitterbasierter Lösungsverfahren vor allem solche Verfahren beleuchtet, für die kein Gitter im Rechenbereich erzeugt werden muss; dabei wird der Fokus auf die Anwendbarkeit zur Berechnung harmonischer Koordinaten gelegt. Die vorgestellten Verfahren werden im Hinblick auf verschiedene Aspekte (u.a. Laufzeit, Speicherverbrauch) analysiert und verglichen.

Der wesentliche Beitrag dieser Arbeit besteht in der Präsentation und Evaluation verschiedener Verfahren in einem einheitlichen Rahmen. Neben den theoretischen Grundlagen jeder Methode wird das nötige Wissen vermittelt, um eine prototypische Implementierung vornehmen zu können. Es werden weiterhin die Ähnlichkeiten zwischen den vorgestellten Verfahren aufgezeigt und Empfehlungen für die Wahl eines konkreten Verfahrens vor dem Hintergrund verschiedener Problemparameter gegeben.

Besonderheiten

Die Diplomarbeit wurde – wie in der Mathematik üblich – unter Verwendung des Textsatzsystems LaTeX geschrieben, das besonders im Formelsatz herausragende Ergebnisse liefert. Ein Problem der Standard-LaTeX-Pakete ist jedoch, dass die semantische Auszeichnung (wie z.B. \section, \emph, \title) auf Formelebene endet; so ist bei $x_i$ bspw. a priori nicht klar, ob es sich um die i-te Richtungsableitung der Funktion x handelt, oder ob dies die i-te Komponente des Vektors x ist. Das LaTeX-Paket sTeX stellt Makros zur Verfügung, die die einfache Definition von semantisch aufgeladenen Mathematik-Operatoren in LaTeX erlauben, bspw. \integral{\funapp{f}{x}}{x}{0}{1}, was dann als \int_0^1 f(x) \,\mathrm{d}x gesetzt werden kann, dabei jedoch

  1. semantische Bedeutung trägt,
  2. bei Bedarf auch mit einem anderen Erscheinungsbild umgesetzt werden kann und
  3. interne Vorkommen von Punkt- und Strichoperatoren adäquat mit Klammern schachtelt.

Meine Diplomarbeit wurde unter Verwendung der sTeX-Makropakete geschrieben. Einen kurzen Erfahrungsbericht habe ich auf der stex-users-Mailingliste gepostet.

Graphen visualisieren mit Graphviz

Graphen visualisieren mit Graphviz (Folien)

Die Folien für den Auftaktvortrag in der von mir initiierten Vortragsreihe SplineTalks, April 2010.

Von der Breitensuche zum Zustandsautomaten, vom Syntaxbaum zum Netzwerkdiagramm – immer wieder kommt man in die Situation, eine ästhetisch ansprechende Darstellung eines gegebenen Graphen erzeugen zu wollen. Das Graphviz-Paket bietet eine Lösung für dieses Problem und stellt dazu verschiedene Graph-Drawing-Algorithmen und viele Optionen zur Layout-Steuerung bereit. Es wird zunächst kurz auf die verschiedenen Möglichkeiten, Graphen zu zeichnen, eingegangen. Anschließend wird die Benutzung von Graphviz erklärt, einzelne Attribute gezeigt und erklärt sowie verschiedene Beispiele gezeigt.

What is... a Geodesic on a Riemannian Manifold?

Geodesics on Riemannian Manifolds

The handout for a talk given together with Dror Atariah in the “What is…?” series of Berlin Mathematical School in January 2010. There is also a video of the talk available.

First we define (topological) manifolds and talk about various basic properties. Afterwards we introduce Riemannian Manifolds and explain terms such as metric, covariant derivative and geodesics. In our talk we use the sphere as a geometric example and the “space of shapes” of all polygons with n nodes as a more abstract example to visualize the introduced terms.

Erstellen geometrischer Skizzen mit kig

Erstellen geometrischer Skizzen mit kig

Artikel für freiesMagazin, erschienen in Ausgabe 12/2009; Zweitveröffentlichung auf pro-linux.de.

In dem Sprichwort „Ein Bild sagt mehr als 1.000 Worte“ steckt viel Wahres. Wer einen Text verfasst, macht diesen durch ergänzende Skizzen oft wesentlich verständlicher als durch die ausgefeiltesten Beschreibungen. In diesem Artikel geht es darum, wie man mit Hilfe des Programms kig und geeigneter Nachbearbeitung hochqualitative geometrische Skizzen, z.B. zur Einbindung in LaTeX-Dokumente, erstellen kann.

Subversion als Werkzeug in der Software-Entwicklung

Subversion als Werkzeug in der Software-Entwicklung (Folien)

Folien für einen Einführungsvortrag zu Subversion, erstellt für das Seminar „Unstetige Galerkinverfahren“, Sommer 2009.

Die Lage: Eine kleine Gruppe will in gemeinsamer Arbeit einmalig ein kleines Software-Projekt durchführen. Dieser kurze Vortrag führt in Grundlagen der Versionskontrolle ein, erläutert das Konzept hinter Subversion und zeigt unter Verwendung des svn-Kommandozeilenprogramms und TortoiseSVN-Screenshots eine Best-Practice-Anwendung.

Unstetige Galerkin-Verfahren und die lineare Transportgleichung

Unstetige Galerkin-Verfahren und die lineare Transportgleichung
Unstetige Galerkin-Verfahren und die lineare Transportgleichung (Folien)

Ausarbeitung und Folien für das Seminar „Unstetige Galerkinverfahren“, Sommer 2009.

Es soll eine Einführung in die Behandlung der linearen Transportgleichung mittels unstetiger Galerkin-Verfahren (DG-Verfahren) gegeben werden. Nach der Entwicklung einer schwachen Formulierung des Problems und der Vorstellung verschiedener numerischer Flüsse soll der Fokus besonders auf Fragen der konkreten Implementierung liegen, wobei der Leser befähigt werden soll, das DG-Verfahren im Zweidimensionalen selbst zu implementieren. Des Weiteren wird ein Ausblick auf Techniken zur Beschleunigung und Parallelisierung des Verfahrens gegeben.

Visualisierung zeitabhängiger Vektorfelder durch Flächenstrukturen

Visualisierung zeitabhängiger Vektorfelder durch Flächenstrukturen

Ausarbeitung für das Seminar „Ausgewählte Themen aus der Visualisierung“, Dezember 2008.

Das Ziel dieses Dokuments ist eine Einführung in zwei verschiedene aber verwandte Methoden, zeitabhängige Vektorfelder im dreidimensionalen Raum mit Hilfe von Oberflächen zu visualisieren. Die Visualisierung von (nicht nur zeitabhängigen) Vektorfeldern ist seit längerem Gegenstand der Forschung. Sie ist notwendig, um das Verhalten von Strömungen besser verstehen zu können. Die Idee der beiden vorgestellten Verfahren ist es, nicht nur die Bahn- oder Streichlinien einzelner isolierter Punkte zu verwenden, sondern die Punkte einer gegebenen Ausgangskurve zu betrachten und die von den entsprechenden Bahn- bzw. Streichlinien aufgespannte Fläche zu visualisieren.

Green Coordinates

Green Coordinates (Slides)

Slides for a talk given in the Diplomanden- und Doktorandenseminar in the group for mathematical geometry processing in November 2008.

In this talk I introduce the “green coordinates” by Y. Lipman, D. Levin and D. Cohen-Or. Green Coordinates are a set of barycentric coordinates that can be used for conformal (in d=2) or quasi-conformal (in d≥3) deformations of meshes.

Einführung in nichtkonforme Finite Elemente am Beispiel der Poisson-Gleichung

Einführung in nichtkonforme Finite Elemente am Beispiel der Poisson-Gleichung

Ausarbeitung für das Seminar „Finite Elemente“, September 2008.

Es soll eine an P.A. Raviart und J.M. Thomas orientierte Einführung in die Theorie der nichtkonformen Finiten Elemente gegeben werden, d.h. solcher Funktionen, die an den Grenzen der Teilgebiete nicht notwendigerweise stetig sein müssen. Die Variationsformulierung, die die Grundlage für den bekannten Fall der konformen Finiten Elemente darstellt, wird unter Einführung eines Lagrange-Multiplikators in den hybriden Fall überführt, dann werden Bedingungen an die nichtkonformen, endlich-dimensionalen Funktionsräume gestellt, um Existenz und Eindeutigkeit einer Lösung zu gewährleisten. Schließlich werden Beispiele für FEM-Räume gegeben, die diese Bedingungen erfüllen, und eine Fehlerabschätzung gezeigt.

Raytracing

Raytracing
Raytracing (Folien)

Ausarbeitung und Folien für das Proseminar „Computergrafik“, November 2007.

Ein grundlegendes Problem in der Computergrafik ist es, aus einer dreidimensionalen Szene, deren Geometrien mit Materialien und Texturen versehen sind, eine Grafik zu berechnen, die demjenigen Bild entspricht, das ein menschlicher Betrachter von einer bestimmten Position in der Szene aus sehen würde. Raytracing ist ein Verfahren, das dieses Problem löst und dabei durch die Verwendung verschiedener physikalischer Gesetze der Lichtausbreitung einen hohen Grad an Realismus erreicht.
Der folgende Text gibt einen Überblick uber die allgemeine Funktionsweise des Raytracings und die dort verwendeten Techniken. Zunächst sollen die Grundlagen des Renderings erläutert werden, anschließend wird erklärt, wie die einzelnen Schritte des Verfahrens ablaufen. Danach wird die Laufzeit eines allgemeinen Raytracing-Algorithmus’ analysiert und Formen der Optimierung vorgestellt.