MPI-based Nested Cross-Validation for scikit-learn

If you are working with machine learning, at some point you have to choose hyper-parameters for your model of choice and do cross-validation to estimate how well the model generalizes to unseen data. Usually, you want to avoid over-fitting on your data when selecting hyper-parameters to get a less biased estimate of the model's true performance. Therefore, the data you do hyper-parameter search on has to be independent from data you use to assess a model's performance.

GitLab 6 + Apache + Phusion Passenger

I've successfully been running an instance of GitLab for almost a year now. The same server is running Redmine, hence both GitLab and Redmine are running in their respective sub-directories. Phusion Passenger is my application server of choice. Unfortunately, it became increasingly difficult to keep this setup running with newer versions of GitLab. First, GitLab officially is not supporting running it out of a sub-directory, second, by default it uses Unicorn. Here, I want to detail my setup how you still can achieve the GitLab + Apache + Phusion Passenger combo, because I could only find slightly outdated guides online.

PyGObject 3.1.0 released

I am pleased to announce version 3.1.0 of the Python bindings for GObject. This is the first release of the unstable branch, which will eventually result in the stable 3.2.x series.

It is important to point out that this release reverts the change "Convert all strings to utf-8 encoding when retrieving from TreeModel" to restore backwards compatibility. If you are using Python 2 it is recommended to always use the byte-representation of UTF-8 encoded strings (str class) instead of the unicode objects. I'm going to add a section to the Python GTK+ 3 tutorial that will explain this issue and how to deal with it in more detail.


sha256sum: a5b36eff7c4b14f161bc9ba2ae09a03ddb47d9f2c769589b8f389ae3a92cc92e

Updates to Python GTK+ 3 Tutorial

I continued working on the Python GTK+ 3 Tutorial since I announced it almost a month ago. I added a section describing the Gtk.Grid widget, menus, dialogs and Gtk.TextView, the latter just added today. In addition, I added screenshots for all examples and merged a couple of grammar/typo fixes from other people. The current contents should cover the most important widgets and should allow you to create more complex applications.

Python GTK+ 3 Tutorial

One of the big advantages of PyGTK is that it is documented very well. Unfortunately, despite the efforts to make PyGObject as compatible to PyGTK as possible, the differences are still huge. A big portion is due to the changes between GTK+ version 2 and 3, of course. To date, you basically have to look into the GIR file or C reference manual to try to figure out how things work. Once you are familiar with the way C functions are converted to Python, you can guess most methods.

The Past and The Future

The Past

I recently finished my Master thesis and can now call myself Master of Science. The thesis itself couldn't turn out any better as it did. The goal was to implement a method that is capable to predict the relative location along the longitudinal axis of a slice of a X-ray computed tomography (CT) volume. The motivation behind this is to speed up the process when a physician wants to compare two CT volumes against each other. Usually, the patient's data can be accessed over the network and a single CT volume can contain more than thousand images taking more than 1 GB disk space. In addition, most physicians are only interested in one particular area they want to compare. Accordingly, it would be waste of resources if one has to transfer and load two complete volumes and manually navigate to the area of interest. The methods developed in this thesis allow the physician to select the area of interest (on the longitudinal axis) in one volume and only transfer and load the corresponding area in the other volume. Obviously, you get the biggest benefit if the volume contains a large amount of images and the region of interest is relatively small.