I love building things. This blog in itself is one of these things. Feel free to shoot me an email.
Posts

Serving your own OSM tiles from a small VPS
I am greatly dependent on Google Maps. Whenever I go someplace new or want to navigate, I turn to Google Maps. I don’t like being dependent on FAANG companies, so here we are building our own tile server. Running your own tile server is quite intimidating, as it comes with quite a few moving parts (apache, mod_tile, renderd, osm2psql, postgres, mapnik). Also the hardware requirements are quite big for a small sideproject to run indefinitely(24+...
Read more...

Automatic Shopping List: DIY smart shelf using strain gauges
Wouldn’t it be great if your shopping list would write itself? Wouldn’t it be great to have automated statistics about your grocery buying/consumption? Reducing Shopping / Starting Stocking When Corona hit about one year ago, there were empty shelves in stores everywhere. No matter where you looked: Shanghai, Moscow, Berlin, Paris, New York  panic buying everywhere. In an effort to become resilient against such fluctuations in food (and more importantly toilet paper) availability, I...
Read more...

AWS NLBs and the mixed up TCP connections
One of my services was running into timeouts, because connections were being reset by clients. I had assumed that it couldn’t be the Network Load Balancers (NLBs) fault, a battletested piece in the cloud stack. The following is about NLBs, crosszoneloadbalancing and multiple NLBs pointing to the same set of EC2 instances and how that revealed unexpected behaviour in the NLB. TLDR: If you don’t want timeouts or connection resets, then: don’t use crosszone loadbalancing...
Read more...

Change caused by Coronavirus
While daily news is all over the coronavirus, I want to try a longterm view on what changes will happen because of Coronavirus for the next decade. Individual behaviour More food stock is kept even in urban environments > average supermarket cart size increases Handshakes become less common, hugs/kisses reserved for close friends Yearly flue shots become more popular even in healthy young people The workplace Home office has shown to be feasible during corona...
Read more...

(Emergency)Brake lights + blinker on my bicycle
On my cyclecommute there are a couple of places where better lights would come in handy. A year ago another biker drove into me, because I had to emergency brake. So when a friend gifted me his leftover addressable LED stripe I was intrigued in how well this would work, as I had previously poured ours of work into making my own addressable LEDs using shift registers see my first iron man heart build. As...
Read more...

Iron Man Arc Reactor
I finally declared my recent project, a replica of Tony Starks Arc reactor, finished. This was one of the projects I had planned with which I justified buying a 3D printer so I felt an obligation to finish it. All 24 LEDs in this rector are individually addressable via shift registers. My goal was to have some faint waft in the lights, but I curently only have them on at one brightness level. Since the...
Read more...

Bike Repair
I use my bike extensively. My commute is 15km per day and I don’t have a public transport ticket. I like the cold air blowing into my face in the morning. When spending 10+ hours a day in front of a screen, riding a bike is a relaxing part of the day. My bike was now turning 12 years old. More and more failures accumulated over time to the point where I wasn’t comfortable lending...
Read more...

100ms in additional latency cost you 1 % revenue, don't they?
When writing my master thesis about resource allocation in containers I wanted to show the relevance of performance by citing something I always knew to be true: 100ms in additional latency costs you 1 % revenue. Time to find a source for the references! All sources I could find eventually end up to be Greg Linden. He worked at Amazon for 5 years from 1997 to 2002 and worked on the recommendation system. He recounts...
Read more...

QuickStart for Let's Encrypt on Kubernetes
EDIT 20191031: I tried to update this guide to 0.11, as a lot of things have changed since the original publication. I haven’t tested the full guide in the new version yet, but it should work. EDIT 20191209: Updated for 0.12 and helm3 This post will show you how to use certmanager to automatically create and use certificates with Let’s Encrypt on Kubernetes. This is especially useful if you are looking for a successor to...
Read more...

A fork on Github is no fork
Github may block access to your repos and there is nothing you can do about it A few years ago I made a project with a friend and we collaborated on Github in his private repo. After we finished the project I forked it, to be able to still access it independently from him. While I still have unlimited private repos, my friend let his Premium Account (Student) expire. The original repo is now inaccessible....
Read more...

Machine Intelligence I  Learning Notes
This semester learning notes are about supervised learning. Previous semester on unsupervised learning Performance Measurement Neural Networks Support Vector Machines Bayesian Networks Reinforcement Learning Statistical Learning Theory(Excluded from the exam and therefore neglected here)
Read more...

Reinforcement Learning
These are exam preparation notes, subpar in quality and certainly not of divine quality. See the index with all articles in this series In reinforcement learning an actor is in a world where she can perform different actions and perceive the environment. Sometimes there may be rewards. Reinforcement learning is about choosing a policy from which to derive actions that maximize the reward. Just like the real world there are a lot of rewards that...
Read more...

Support Vector Machines
These are exam preparation notes, subpar in quality and certainly not of divine quality. See the index with all articles in this series If you are stuck, read Wikipedia in parallel. The goal of SVMs is to divide two groups with a line that separates the data points as clearly as possible. There are two cases: Data points can be cleanly split into their classes At least some data points overlap making it impossible to...
Read more...

Performance measures
These are exam preparation notes, subpar in quality and certainly not of divine quality. See the index with all articles in this series Choice of error function Usually squared error is used. CrossEntropy \(c\) := different classes (classification / symbol representation) From Wikipedia: In information theory, the cross entropy between two probability distributions p and q over the same underlying set of events measures the average number of bits needed to identify an event drawn...
Read more...

Neural Networks
These are exam preparation notes, subpar in quality and certainly not of divine quality. See the index with all articles in this series Connectionist Neurons A neural network generally has a number of inputs \(x_1...x_N\) which are aggregated into \(\underline x\). At each node there is a transfer function \(y_i\) which turns the inputs according to weights \(\underline w\) into its own output. A typical function would look like this. The part in the brackets...
Read more...

Bayesian Networks
These are exam preparation notes, subpar in quality and certainly not of divine quality. See the index with all articles in this series Bayes Rule \[P(AB) = \frac{P(BA)P(A)}{P(B)}\] Inference Bayesian Interference is about inferring probabilities from prior probabilities. Given a set of prior events, a bayesian network estimates the probability for another event. Justification of using heuristics: In realworld scenarios you never know the true probability of events. To somehow try to estimate \(P\) it...
Read more...

Statistical Learning Theory
These are exam preparation notes, subpar in quality and certainly not of divine quality. See the index with all articles in this series In a classification problem the desired goal is to reduce the generalization error \(E^G\). Unfortunately during training it is only possible to evaluate the classifier against a limited amount of data  the test data set. Therefore we can only measure \(E^T\). The problem we want to solve is to know how...
Read more...

34C3 Economics of Climate Change Lightning Talk
Your browser does not support the video tag. Youtube mirror
Read more...

Docker Images with Gitlab CI
You want to have docker tags that match your git branches? Here is how to do it with Gitlab CI. A lot of my projects have a CI pipeline that builds a docker image. Of course I do not want to always deploy the :latest tag, because that makes reproducibility and rollbacks hard. I always push to :latest. Also I want to reference by: tags/branches commit hash For this repo (the blog) it looks like...
Read more...

34C3 Day 1
Day one of the 34C3 is over. The new location in Leipzig is a lot more spacey and loftey, but I liked the old location in the CCH more. Somehow I felt that there were fewer eastereggs and hidden nuggets than in previous congresses. I guess everyone still needs to adapt to the new environment. Hopefully in the coming days there will be more. Tomorrow will also be my first Angel shift as a volunteer....
Read more...

Estimation theory  Kernel Density Estimation
Chapters General Terms and tools PCA PCA Hebbian Learning KernelPCA Source Separation ICA Infomax ICA Second Order Source Separation FastICA Stochastic Optimization Clustering kmeans Clustering Pairwise Clustering SelfOrganising Maps Locally Linear Embedding Estimation Theory Density Estimation Kernel Density Estimation Parametric Density Estimation Mixture Models  Estimation Models Density Estimation The goal of density estimation is to be able to give a density estimation for each coordinate in the vector space. There are two approaches parametric...
Read more...

Stochastic Optimization
Chapters General Terms and tools PCA PCA Hebbian Learning KernelPCA Source Separation ICA Infomax ICA Second Order Source Separation FastICA Stochastic Optimization Clustering kmeans Clustering Pairwise Clustering SelfOrganising Maps Locally Linear Embedding Estimation Theory Density Estimation Kernel Density Estimation Parametric Density Estimation Mixture Models  Estimation Models Simulated Annealing Simulated annealing is oriented in crystallization procedures in nature where the lowest energy state is achieved only when the temperature is lowered very slowly. The temperature...
Read more...

Clustering  kmeans & SOM
Chapters General Terms and tools PCA PCA Hebbian Learning KernelPCA Source Separation ICA Infomax ICA Second Order Source Separation FastICA Stochastic Optimization Clustering kmeans Clustering Pairwise Clustering SelfOrganising Maps Locally Linear Embedding Estimation Theory Density Estimation Kernel Density Estimation Parametric Density Estimation Mixture Models  Estimation Models Kmeans Clustering Kmeans Clustering is good at finding equally sized clusters of data points. Parameters Distance Function (Usually Euclidean) Number of clusters Drawbacks ???Cannot cope with clusters of...
Read more...

Source Separation (ICA)
Chapters General Terms and tools PCA PCA Hebbian Learning KernelPCA Source Separation ICA Infomax ICA Second Order Source Separation FastICA Stochastic Optimization Clustering kmeans Clustering Pairwise Clustering SelfOrganising Maps Locally Linear Embedding Estimation Theory Density Estimation Kernel Density Estimation Parametric Density Estimation Mixture Models  Estimation Models Independent Component Analysis (ICA) ICA allows the reconstruction of mixed signals. This could for example be multiple speakers on one audio track. Requirements Needs some prior knowledge The...
Read more...

PCA
Chapters General Terms and tools PCA PCA Hebbian Learning KernelPCA Source Separation ICA Infomax ICA Second Order Source Separation FastICA Stochastic Optimization Clustering kmeans Clustering Pairwise Clustering SelfOrganising Maps Locally Linear Embedding Estimation Theory Density Estimation Kernel Density Estimation Parametric Density Estimation Mixture Models  Estimation Models PCA can be used as a compression algorithm(more correctly dimensionality reduction). Its goal is to extract vectors(components) out of the sample data which minimizes the squared distance of...
Read more...

Unsupervised Learning Methods Exam Preparation
Following the principle “You only understood something thoroughly if you can explain it”  here come the prepping notes for Machine Intelligence II. If no sources are indicated, it comes from the lecture slides. Note This was foremostly written for my own understanding, so it might contain incomplete explanations Chapters General Terms and tools PCA PCA Hebbian Learning KernelPCA Source Separation ICA Infomax ICA Second Order Source Separation FastICA Stochastic Optimization Clustering kmeans Clustering Pairwise...
Read more...

DocumentDeck
Today I am excited to announce the launch of DocumentDeck. DocumentDeck solves my own problem with keeping track of invoices and credentials. The documents I receive usually end up on a large pile on my desk or in a huge binder if I have my lucky day. Now I have an easy way of just scanning the documents and having them easily retrievable in the future. Uploading is as easy as it could be. Simply...
Read more...

How to serve a website from behind a NAT with a VPS
A common way to run a website behind a NAT as you might find it at home is to configure the router to forward port 80 to your machine. This is not always doable, as you might not have access to the router. If you have access to an external server(for example a cheap VPS), you can route traffic through that by connecting to it via SSH from the local machine. I used AutoSSH which...
Read more...

Introducing Kudos
Kudos is a way to acknowledge something somewhat similar to a “like”. Each of my blog posts now has a kudos button at the bottom. I liked the simplicity of it. I use a nice libary from KudosPlease which looks quite slick. Unfortunately the API provided by them had multisecond load time. Now I run my own fast compatible API at https://kudos.nielsole.com/ . You can find the backend source on Github: https://github.com/nielsole/kudos Download the jsFile...
Read more...

Hosting sideprojects with Docker
In this article I will write about: Why I needed a new hosting setup for my projects Make a shallow dive into why I chose Docker Show great tools for easy deployments for HTTP(S) List services running with this now I regularly do sideprojects which mostly consist of some API or website of some sorts. After developing it locally I have to deploy it to a server to make it generally available. For this purpose...
Read more...

Creating timelapses of planet earth
I was very inspired by Glittering Blue which shows images of a Japanese weather satellite. After becoming interested in timelapse videos I began collecting images from the public servers of said weather satellite to compile a nice video out of it. This is the result: Some time after Glittering Blue was released someone took the time to put together a npm module. Using this I collected images for about two month. I put together the...
Read more...

Building my standing desk
I naturally spend a lot of the time of the day in fornt of the ocmputer and therefore in front of a desk. Since it is very unhelathy to always sit the entire day I first started using a gym ball. This was a great improvement for my health feeling. But the ball was eventually ripped to pieces by my cats. What I wanted was a standing desk. The problem with standing desks is their...
Read more...

Things to know about the world
Sometimes I have a feeling that a lot of people do not know basic things about the world. To improve this I want to collect a summary of statistics that are really helpful for getting a better understanding of the world. All of the statistics will be aggregated from some place so do not expect anything new if you are already well informed. I want to start at very basic things and maybe dig deeper...
Read more...

Hello World!
So I am starting my first personal blog where I’ll write about things that appear to be interesting. If you have any suggestions, feel free to contact me. As of now I am not sure, what this blog will eventually be about or how frequently I will actually publish.
Read more...
subscribe via RSS or: