Freitag, 27. Juli 2018 shows best results in name-to-gender inference service benchmark

Just recently Gender API was mentioned in a comprehensive benchmark and comparison of several available gender inference services.

The team of Gender Gap in Science who conducted the survey assembled a list with more than 7,000 people and their gender and used this list as a basis for the comparison. They combined different error metrics and constraints to define benchmarks for realistic situations (e.g.minimize the proportion of all inaccuracies while keeping the mix-ups between female and male assignments under the threshold of 5. In all benchmarks, and on almost all sources comprising the test data set, Gender API shows the best results.

"In all our benchmarks, and on almost all sources comprising our test data set, Gender API shows the best results."

This outcome makes us very proud and confirms that conducting not just a simple database lookup, but working with data in detail is the best service we can offer to our customers.

Montag, 9. Mai 2016

Build ffmpeg with non free codecs included

With my recently updateted build script it is now more easier than ever to build ffmpeg with non free codecs included. At this page you will not find any ffmpeg downloads with non free codes but you can build your own binary with some simple steps.

Go to Download and install the build script. All dependencies are downloaded and compiled without any interaction.

Sonntag, 26. April 2015

Pushover Cli


pushover-cli is a command line client for to send pushover notifications. Moreover it is possible with this client to pipe streams directly to your cellphone like tail -f /var/log/my.log | pushover-cli -

Pushover Cli download and installation

Simply execute the following command to install the latest version of this script to your system:

sudo curl -o /usr/bin/pushover-cli && sudo chmod 555 /usr/bin/pushover-cli

Commandline options

Usage:   ./pushover-cli [options] <message> <title>
Stdin:   ./pushover-cli [options] - <title>
Example: ./pushover-cli -u ubLBe5u3zNXF9gBtX2zKkezSuPgu3v -t aK5BW3sjAqPsedH44VyQSbaQecoRen "Hello World"

  -u --user     <user id>             Pushover User-ID
  -t --token    <api token>           Pushover API-Token
  -p --priority <high, normal, low>   Default: normal
  -l --url      <url>                 Link the message to this URL
  -c --config   <path to file>        Default: /etc/pushover.conf
  -v --verbose                        Be verbose
  -q --quiet                          Be quiet

Dienstag, 21. Oktober 2014

FFmpeg Build Script

After searching the whole internet for a Mac OSX binary built of ffmpeg with non free codecs included i finally gave up and wrote my own building script.

Since I wanted a statically compiled binary which also can be used on devices without Xcode installed, homebrew was not the perfect solution for me.

I started from scratch building a script that automatically downloads all dependencies and compiles all necessary libraries.

My final script can be found on github:

Samstag, 11. Oktober 2014

PHP CSV detect delimiter

 * @param string $csvFile Path to CSV file
 * @return string
public function detectDelimiter($csvFile)
        $delimiters = array(
            ';' => 0,
            ',' => 0,
            "\t" => 0,
            "|" => 0

        $handle = fopen($csvFile, "r");
        $firstLine = fgets($handle);

        foreach ($delimiters as $delimiter => &$count) {
            $count = count(str_getcsv($firstLine, $delimiter));

        return array_search(max($delimiters), $delimiters);

Mittwoch, 23. April 2014

HowTo install ZendDebugger for PHP 5.4 or PHP 5.5 on Debian

Since the ZendDebugger is bundled with ZendStudio and ZendServer the PHP module cannot easily be downloaded standalone.

But with some simple steps the module can be extracted out of the official ZendStudio tarball which can be downloaded for free on


Make sure, openssl0.9.8 is installed. Newer Versions like openssl1.0.0+ will not work.

on debian squeeze

$ sudo apt-get install libssl0.9.8

on debian wheezy

$ wget
$ sudo dpkg -i libssl0.9.8_0.9.8o-7_amd64.deb

Extract the extension

Create a temporary working dir

$ mkdir /tmp/zend_debugger
$ cd /tmp/zend_debugger

Download Zend Studio 10.6

$ wget

Find the extension in the archive

$ tar -tvf ZendStudio-10.6.0-linux.gtk.x86_64.tar.gz | grep
This will give you the following output:
-rwxrwxr-x vagrant/nogroup   238153 2014-01-08 16:11 ZendStudio/plugins/com.zend.php.debug.debugger.linux.x86_64_10.6.0.v20140128-2127/resources/php53/
-rwxrwxr-x vagrant/nogroup   238217 2014-01-08 15:56 ZendStudio/plugins/com.zend.php.debug.debugger.linux.x86_64_10.6.0.v20140128-2127/resources/php54/
-rw-r--r-- vagrant/nogroup   238631 2014-01-08 15:22 ZendStudio/plugins/com.zend.php.debug.debugger.linux.x86_64_10.6.0.v20140128-2127/resources/php55/

Extract the extension for PHP 5.3, 5.4 and 5.5

$ tar -xzvf ZendStudio-10.6.0-linux.gtk.x86_64.tar.gz --strip-components 4 --wildcards *

Install the extension

Now copy the extension matching your PHP Version to the local extension dir

For PHP 5.5

$ sudo cp php55/ `php -i | grep extension_dir | awk '{print $NF}'`

For PHP 5.4

sudo cp php54/ `php -i | grep extension_dir | awk '{print $NF}'`

Update your php.ini

Add the following lines at the end of your php.ini file
[Zend Debugger]

Check the extension

$ php -v
PHP 5.5.11-1~dotdeb.1 (cli) (built: Apr  4 2014 02:15:16)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
    with Zend Debugger v6.0.0, Copyright (c) 1999-2013, by Zend Technologies

That's it. If you can find the line "Zend Debugger v6.0.0" in the output the debugger extension is successfully installed.

Dienstag, 22. April 2014

NodeJs socket hang up


        throw er; // Unhandled 'error' event
Error: socket hang up
    at createHangUpError (http.js:1472:15)
    at Socket.socketOnEnd [as onend] (http.js:1568:23)
    at Socket.g (events.js:180:16)
    at Socket.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:920:16
    at process._tickCallback (node.js:415:13)

This error happens even with the latest nodejs version if you're using a ssl certificate whose domain cannot be resolved by your dns.

Let's say your SSL certificate is issued to make sure a dns lookup can resolve this domain.

Simply add your domain to your /etc/hosts file

If your using a wildcard certificate * you can simply add this domain to your /etc/hosts file: *