My thesis was written at the faculty of electrical engineering at TU Dortmund. It's about the correction of errors during optical signal transmission.
When digital data is transferred with fiber optic cables, the signal suffers distortions from external influences. These distortions must be corrected before the digital information can be reconstructed from the optical signal. Traditionally that correction is done with electronic filters that digitize the optical signal and use methods of digital signal processing.
These electronic filters have a number of disadvantages which limit the increasing demand for bandwidth increases. The goal of the thesis was to evaluate optical filters which process the signal purely in the optical domain. In theory, these could have significant advantages over electronic filters.
To compare different filter designs and evaluate their performance under realistic conditions that make the results applicable in real-world use, a high-performance simulation and analysis framework was written. That made it possible to use realistic distortion models, comparison of a large number of different designs and an exhaustive optimization of the underlying non-convex optimization problem. Uses
numexpr libraries among others.
thesis pdf (in German)
This little program recursively replaces include statements in text files with the contents of that file. It was written as a Markdown helper but is completely format-agnostic.
Operates in the working directory. The output directory as well as the regular expression of the input statement and other things can be controled with command line parameters (see GitHub readme).
Like many people I've heard the tales about cosmic rays flipping memory bits. There's ECC memory to protect against bit flips, but I decided to actually look for memory flips in my (non-ECC) systems.
MCC is a c++ console program that allocates a part of the main memory, fills it with zeros and periodically checks wether they're still unchanged. Any potential bit flips are recorded on a json file. The memory is dynamically de- and reallocated to affect the running system as little as possible.
Results: After letting it run for about 3000 GB-hours on two machines I didn't catch a single bit flip. Comparing with the available literature on the matter, it seems obvious that bit flips might happen, but they're rare and caused by hardware defects rather than cosmic radiation. More details in the GitHub readme.
Lets you stalk your colleagues svn submissions. It scans new svn commits for criteria specified in a json file. When something matches, a little notification pops up. Written in Python with the help of pyqt.
headcache is a note-taking program written in Python and PyQt. It reads notes in the form of markdown files from the working directory. These notes are split into parts that can be searched instantly and are rendered as html preview.
It was designed to have a minimal and intuitive interface for quick navigation and instant search as well as rendered markdown preview
Many developers and normal people visit sites like Hacker News, Stack Exchange or Reddit (or even 4chan) daily to keep up to date. This can't easily be automated like RSS feeds from a blog, since only a tiny fraction of the many posts is relevant.
With maja, you can define minimum scores, specific keywords and other criteria for each of the sites. Matching posts get fetched in regular intervals, stored in a SQLite database and presented on a simple web interface. This approach is much more time-efficient and will catch things even if you are away for longer periods of time.
A webbased tool that compares about 50 different programming fonts. Every font is used with a range of font sizes, color themes, renderer and anti-alias settings.
The screenshots are taken in the Sublime Text editor. The process to capture the screenshots is automated with an autohotkey script which itself reads commands from a python-generated file. Imagemagick is used to extract the relevant part from the screenshots. The website is built with React.js
Simulation of a 3D DLA process inside the browser. DLAs can be simulated with a boolean grid that starts with all zeros and a one in the middle. Particles spawn at some distance from the center and random walk until they are right next to another particle. The structure grows in a crystal-like way and can be used to calculate the fractal dimension.
A LaTeX preprocessor written in Python.
A web-app for spaced repetition learning. 100% clientside; UI done with React, data stored in local storage and sync over Dropbox.