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

Simple OpenGL object picking in 3D

Posted at 07 Aug 2014
Tags: opengl, math

User interaction in a three-dimensional OpenGL scene often includes “picking”, which means that a user can select an object in the scene by clicking on it. This requires to find out the correct object in the three-dimensional scene from the two-dimensional information that is provided for this user interaction event – the x and y coordinate of the click.

Read on…

CvVideoCamera vs. native iOS camera APIs

Posted at 24 Jun 2014
Tags: opencv, ios, imageproc

While OpenCV’s CvVideoCamera is great for fast prototyping and provides very easy access to the camera frames of an iOS device, it provides a rather poor performance. This is especially the case when only the luminance pixels (grayscale data) of a camera frame are needed for image processing. This article shows how to use the native iOS camera APIs to achieve this.

Read on…

Simple camera calibration tool and intrinsics database

Posted at 18 Jun 2014
Tags: ar, imageproc, opencv

At work, I’m often involved in projects that are somehow related to Augmented Reality (AR), which requires to know certain camera parameters (intrinsics). These can be found out during camera calibration, as for example described in this OpenCV tutorial. However, the tool for this that comes with OpenCV is rather difficult to use as it requires to write numerous settings in XML first. Because of this, I wrote a simpler tool for camera calibration, which can be found in the github repository cam-intrinsics-db. It works from the command line with just a bunch of program arguments. See the mentioned github repo for its features and more details. Besides this tool, the repository contains a database with the identified camera parameters of different devices. I hope that this database grows in the future and everybody is invited to submit calibration results.

Running your own CalDAV server

Posted at 05 Jun 2014
Tags: caldav, server, privacy

I thought that the first anniversary of the Snowden disclosures is a good time for a small report on how to run your own CalDAV server for calendars and contacts sharing. A few weeks ago I moved away from Google calendar in order to reclaim my personal information and since then I researched and tried out different CalDAV server software. Here’s a small write-up of my results.

Read on…

Master’s thesis featured on gpgpu.org

Posted at 01 Jun 2014
Tags: thesis, gpgpu

I’m happy that my master’s thesis is featured in a news post on gpgpu.org.

When resizing a UIView has no effect …

Posted at 21 May 2014
Tags: ios, development

… one should better look whether the method to change the view’s dimensions and/or position (e.g. -[UIView setFrame]) is called from the main thread or from somewhere else. In my case, I was calling the setFrame method from a different thread because the method invocation was inside a delegate method. Whatever I tried, the UIView’s size would not change and no error or warning was issued. Luckily, I stumpled upon the different caller’s thread name in the debugger. The solution was then to use the method -[NSObject performSelectorOnMainThread] to call a method that sets the new frame size from inside the main thread. However, this is a mistake that’s rather hard to spot. Some kind of warning or error would be nice in this case.

My master’s thesis is online

Posted at 19 May 2014
Tags: gpgpu, mobile, development, imageproc, thesis

I have published my master’s thesis “Parallel Computing for Digital Signal Processing on Mobile Device GPUs.” It covers the topic of general purpose computing on graphics processing units (GPGPU) on mobile devices. More information as well as the PDF is available on a dedicated page. The source code for some of the Android application prototypes that I developed during this thesis is also available on github.com.

Installing self-signed SSL certificates on Firefox OS

Posted at 19 May 2014
Tags: firefoxOS, ssl

Mozilla’s mobile operating system Firefox OS unfortunately does not allow to trust self-signed SSL certificates. This is bad news if you run your own Email- and/or CalDAV server and want to access those services with your Firefox-driven phone. It will give up connecting with a “bad security” failure. Fortunately, it is possible to incorporate your certificates manually and work around this “security feature” (or limitation – depending on your point of view).

Read on…

Slow connection using apt-get with ufw and IPv6

Posted at 12 May 2014
Tags: linux, admin, debian

On my Debian Wheezy system I noticed very slow HTTP connections, for example while using apt-get or wget. The problem was somehow related with the uncomplicated firewall (ufw), since it only occured while the firewall was running. After searching forums and mailinglists, I found the advice to turn off IPv6 support, which turned out to be the solution (or at least a workaround).

Read on…

New website up

Posted at 11 May 2014
Tags: website, jekyll

My personal website reincarnated, once again. After my old website suffered heavily from spam in the past few months (those CAPTCHA crackers get better and better), and I was annoyed by my websites old-fashioned pmWiki software base, I decided to create a new one. To get rid of spammers once and for all, the decision for a completely static website (yes, pure, boring HTML files) was made. Fortunately, I did not have to write all these HTML files by hand – I found jekyll, a very sophisticated static website generator.

Read on…