Welcome to the personal website of Markus Konrad. You can find blog posts about computer science related topics here, as well as information about own open-source software projects.

Blog Posts

Scraping data from Facebook groups and pages

Posted at 23 Dec 2015
Tags: facebook, scraping, nlp, python, php

I’ve written a small set of tools to (semi-)automatically collect and analyze data from online discussions on Facebook groups and pages. It is available on github. It can be used to collect posts and comments (including their hierarchical structure and some metadata) from public groups and pages automatically. For closed groups, manually saving the HTML output and parsing it with a provided Python script is necessary.

After collecting the data, statistical analyses can be performed on it. For now, identifying and counting nouns as described in a previous blog post is implemented.

Extracting Nouns in German texts with Python using Pattern library and libleipzig

Posted at 13 Dec 2015
Tags: python, nlp, pattern, libleipzig

Extracting nouns in their baseform (lemmata) from German texts can be easily done using Python and the Pattern library, especially its pattern.de module. However, using the pattern.de library alone often leads to unsatisfying results, because the baseform is often not correctly determined. The results can be enhanced using libleipzig which queries the Wortschatz Uni Leipzig database.

Read on…

Finally valid and free SSL certificates

Posted at 08 Dec 2015
Tags: ssl, server

After years of self-signed certificates, I finally have valid, trusted SSL certificates for my domains thanks to Let’s Encrypt. Although still in beta, having the certificats issued worked flawlessly using the letsencrypt command line tool and the short instructions from the official documentation.

Now it’s no problem to access HTTP, CalDAV, email or other services on my server without being bugged by “invalid certificate” warnings or, in case of many mobile OS, needing to install a self-signed certificate manually on the client device.

ZwoSchlagzeilen Twitter-Bot

Posted at 31 Oct 2015
Tags: python, twitter, language processing

@ZwoSchlagzeilen is a Twitter-Bot that mixes recent headlines of leading German newspapers and posts one of them each hour. Sometimes it produces funny results. It is basically the German variant for the American archetype @TwoHeadlines.

It uses feedparser to fetch headlines from some German newspaper RSS services and tries to match headline parts by using “right neighbor” lists provided by libleipzig.

The source code is a Python 2 script named “zweischlagzeilen” and can be examined in the github repository.

A small update for ogles_gpgpu

Posted at 04 Apr 2015
Tags: ogles_gpgpu, gpgpu, android, ios, opengl

My library for GPGPU on mobile and embedded systems, ogles_gpgpu, received a little update: Unfortunately, I was unaware that the LGPL apparently conflicts with the App Store (or, the other way around), so I chose to switch to the Apache 2 license for this project. Now it’s no problem to use this library in applications that will be released via App Store. Furthermore, I created an XCode static library project (see my previous post) for ogles_gpgpu, so that you can integrate it into your iOS project more easily. Along with a small bug fix, all changes have been pushed to the GitHub repository.

XCode static libraries: Preserving header directory structure

Posted at 29 Mar 2015
Tags: xcode, ios, c

Building static libraries in XCode for reuse in other projects is supposed to be quite easy and straight-forward. However, if you’re planning to build a larger library (of C or C++ code for example) with lots of submodules contained in a directory structure, you will soon get problems with XCode – especially with the header file output of your library. But with some tricks it is still possible to get XCode to export your original header directory structure. It requires some manual work, though, and you might wonder how on earth this simple matter could be so complicated in XCode.

Read on…

Deep Q AI playing arcade games

Posted at 01 Mar 2015
Tags: link, ai, games

Making emotive games from open data

Posted at 22 Feb 2015
Tags: link, games, opendata

Library for GPGPU on mobile and embedded systems: ogles_gpgpu

Posted at 10 Jan 2015
Tags: ogles_gpgpu, gpgpu, android, ios, opengl

I have just finished the first stable release of my library for portable GPGPU on mobile and embedded systems. Because it uses OpenGL ES 2.0 for GPU-powered processing, it is called ogles_gpgpu. Until now, it supports iOS and Android systems, so embedded systems such as the Raspberry Pi have not yet been tested with it, but this is something I plan for the future.

It is available on github.com and some more information can be found on the dedicated page for this project.

Android off-screen rendering using EGL pixelbuffers and OpenGL ES 2.0

Posted at 08 Dec 2014
Tags: android, opengl, egl, ndk, gpgpu

Setting up an Android project for OpenGL ES 2.0 on-screen graphics rendering is quite easy using GLSurfaceView. However, if you want to do off-screen rendering (like rendering to a texture), you need to go the long the way by manually setting up an EGL context and creating an EGL pixelbuffer (“pbuffer”) surface to render to. By this, OpenGL runs completely in the background without any visible surface or view, and will render to a pixelbuffer which you can later read back to main memory, for example by using glReadPixels(). This is the fundament for OpenGL-driven GPGPU experiments on Android devices. This small posts explains how to do that.

Read on…