Jannis Pohlmann Personal website

Jannis

I am an open source enthusiast, student and musician from Lübeck, Germany. In my free time I enjoy hacking on Xfce and Lunar Linux. I've been a member of both teams since about 2005. Besides developing software, I love to listen to and play music (Guitar, Bass and Drums) and hang out with friends.

Contact me via jannis@xfce.org. My public PGP key is 0x354AFBA6. You can download it from here.

My CV is also available for download.

Navigation

Thursday, February 9 2012

FOSDEM 2012

This year’s FOSDEM is over and I hope that most of us have by now recovered from an exhausting weekend that was first and foremost exciting and a lot of fun! With about 12 people, the Xfce group was—I think—larger than ever before. Add to that a fairly large number of my colleagues from Codethink, into which I bumped at the beer event and FOSDEM itself from time to time. Despite mostly staying with Xfce, I enjoyed knowing and meeting people all over the place.

Unfortunately, some of us—myself included—missed half of the beer event because our trains and planes arrived late. Snow in Brussels, a cold weekend ahead. When we arrived at the Delirium Café at around midnight, I was glad to see that all the others had already made friends again. Olivier, Stephan, Peter, Nick, Simon, Christoph, everyone was there, some of them sufficiently drunk, I imagine. Although to be be fair, you wouldn’t really notice. Most of us left not to long after that in order to be in a good condition in the morning. Having only caught up half on drinking, Christian, Mike and I ended up staying at the Delirium with a few Codethink colleagues including Sam, Luc and Javier—until they finally kicked us out at around four in the morning.

Food, taxi, 2 1/2 hours of sleep later and we were sitting in the hotel, enjoying a fantastic buffet breakfast. Admittedly, I couldn’t eat that morning, ending the night in the Delirium had lead to quite a strong hangover. After the majority of us had gathered in the hotel lobby, we squeezed ourselves into the 71 bus in two groups and finally arrived at FOSDEM. I do not remember the details of the day, but it was a great mix of talks (including my own one about Tumbler, which I felt was not very special, picture below), chatting and minor hacking (at least on my side; Nick made good progress with the settings editor in the meantime). During the day, Jean-Francois, Jens and Mark joined us and we (or most of us at least) ended the day having food in a Vietnamese restaurant close to the hotel and a beer in the hotel lobby.

Sunday was similar, except that I could finally enjoy the breakfast. Lovely. Unfortunately, we didn’t manage to get everyone together anymore, so our initially large group was now split up into smaller ones for the rest of Sunday. We still managed to have a few technical chats about Xfce that day and made a few decisions (see below). Regards talks, I mostly remember the Wayland Q&A session and a talk about social engineering in free software communities, Most of us left in the afternoon or evening. I met up with Luc, Sam, Javier and a bunch of other people to have food in a very nice restaurant. Got up at six in the morning, walked to the central station, took a plane home from the airport and went back to work in the afternoon. Unlike a few others I seem to have escaped the typical illnesses (cold, broken sleep cycles, general exhaustion) that events like FOSDEM always bring along.

Xfce-Related News — Fresh from FOSDEM

Wayland was big this year. I will spare you the details of how it works. Throughout the weekend, we had various discussions that involved Wayland. While it may take some load of Olivier by eventually making window managers obsolete, there is still a major problem with it: it does not support the XEmbed protocol, and therefor will break pluggable settings dialogs and panel plugins. We have sent mails to the wayland-devel list to find out how they feel about this. For now, I suppose this is all we can do.

Reorganization of the settings dialogs

One thing we decided on Sunday was to reorganize the settings dialogs so that the location of particular types of settings becomes more predictable. This applies to appearance and window manager themeing, and the application keyboard shortcuts and window manager keyboard shortcuts in particular. We will rearrange some of these tabs and merge them so that all related settings are in one place. We will also merge the window manager and window manager tweaks dialogs into one.

Release Schedule for Xfce 4.10

Despite a lack of completed features in Thunar (which are unlikely to get finished before 4.10), there are only a few things that really keep us from releasing Xfce 4.10. We have not decided on a release date, but if things go well, we should be able to roll the first pre-release one month from now, in early March. This would mean that a final release in May or June would be feasible.

Possibility of a hackfest

Meeting up with the team is always great fun. Unfortunately, FOSDEM is a busy event and only lasts two days. Like last year, we discussed the possibility of an Xfce hackfest in the future. I would love to see this idea becoming reality. If half a dozen of the relevant people can make it for at least a couple of days, this could greatly benefit the development of Xfce. Ideally, such a hackfest would span over at least 4-5 days, ideally including a weekend to make it easier to attend for people with jobs. Given a relatively small group, it might even be possible to hold an event like this at someone’s flat. This is definitely something that we will look into soon.

Like every year, FOSDEM 2012 was a great event. And like every year, a few more nicknames have turned into real faces that, unsurprisingly, belong to incredibly friendly human beings! I only wish that we had more time to discuss things face to face and do some serious work on Xfce together. In any case, this calls for another iteration next year. And with that, I shall end this wrap-up.

Thursday, December 8 2011

Looking for new maintainers for some of my projects

I am looking for a new maintainer for some of the open source projects I started over the last couple of years. Due to taking a full-time position as a software engineer, I will have less spare time to hack in the near future than I had while being a student. I will continue contributing to Xfce but I would like to focus on core development (thunar, tumbler, garcon etc.). As a consequence, I am looking for people interested in maintaining the following projects:

Most of these are smaller projects but some of them (like thunar-media-tags-plugin and xfce4-mixer) have many users. xfce4-mixer is particularly interesting, I think. It’s code base is of medium size and it lacks integration with notification daemons, key bindings for muting and altering the volume of a selected channel. Also, the per-channel widgets could be arranged in better ways than they are right now. PulseAudio support has been requested several times but that is an entirely different story. xfce4-mixer is mainly intended as a mixer for GStreamer. A PulseAudio mixer would better be written from scratch. But if anyone is up for the task - why not!

If you are interested in maintaining any of the above (yes, you are free to rename jptemplate to something that does not carry my initials!), please let me know in a comment or send a mail to xfce4-dev@xfce.org! 

(You will need knowledge of C, GLib and GTK+ for the Xfce projects and VIM script for jptemplate. But in particular panel plugins are really simple, so the code base should be easy to understand even for a GTK+ newbie who is willing to read API manuals.)

Friday, December 2 2011

Joining Codethink

I already hinted at the end of my studies in earlier posts related to my thesis. After submitting that thesis I moved 400km south of Lübeck to enjoy a few quiet weeks, record music and work on Xfce. However, I only stayed there for two weeks before I was set to fly over to Manchester, UK. The reason: I will be joining Codethink in January!

Having spent the last three weeks in and around their office, the city of Manchester and one of its suburbs, I can confidently say that this was a great decision. Codethink is a social and diverse company with a strong background in open source, with bright people, and a nice overall atmosphere and attitude. We had plenty of enjoyable evenings, chats, not to forget the brilliant food. I managed to feel at home already, but sadly, I had to leave again yesterday.

Like many people in Codethink, Manchester appears to be a city that likes music, a place where almost everyone is either a die-hard music fan or even a musician. I found a room right in the hart of the northern quarter at 10 minutes walking distance to the office, surrounded by record shops, live music venues and pubs. Rehearsal spaces are expensive but nearby. I could list various additional reasons for why I’m really happy. This simply is a good move.

About three years ago I was about to cancel my studies and look for a job. In the end I decided to carry on. Last week my Diplom (the German equivalent of an MSc) certificate arrived. Despite many doubts throughout these years, I managed to graduate with honors. It’s funny that this grade will have no impact on anything and is only really useful for proving to myself that I can pull through if I really want to. But then again, I had a great and chilled time being a student. So in retrospective, I guess I only ever had doubts because I was impatient and eager to make a difference in what was assumed to be the “real world”. 

Now, with Codethink, I can.

Tuesday, November 22 2011

Find out the client of an Xorg UNIX socket

Today, I needed to find out why an X client did not receive any input events. Or to put it differently: to find out which process the X server was sending events to.

Running an strace on the X server process reveils the socket the X server writes X events to. Assuming that the file descriptor of this socket is 38, the following provides a way to find out which client will receive the events:

ls -la /proc/`pidof Xorg`/fd/38

This will print something like:

lrwx------ 1 root root 64 Nov 22 04:13 /proc/306/fd/38 -> socket:[4036]

So the UNIX socket is 4036. This is only the X server side of it. The following shell command will yield the complete socket pair:

grep 4036 /proc/net/unix -A1

The output of this is:

eff24600: 00000003 00000000 00000000 0001 03  4036 @/tmp/.X11-unix/X0
eff24000: 00000003 00000000 00000000 0001 03  5048

I think /proc/net/unix has all UNIX socket connection pairs in adjacent lines, so in this case the line below 4036 holds the client socket, which is 5048. Note that you may have to use -B1 instead of -A1 as the order of sockets may be different. Searching for the process that uses 5048, you can do this:

ls -l /proc/*/fd/* 2>&1 /dev/null | grep 5048

The output in this case could be something like this:

lrwx------ 1 root root   64 Nov 22 04:12 /proc/663/fd/36 -> socket:[5048]

This means that the X events are sent to the client with PID 663 with the corresponding file descriptor being 36. This can then be used in an strace on PID 663 to find out more about the reception of events etc.

Fun.

Monday, October 17 2011

An introduction to drawing graphs with TikZ/PGF, Part 3

This post is the last in a series of articles about PGF/TikZ and its new graph drawing features on which I am working as part of my graduate thesis.

In the previous two posts I gave an introduction to graph drawing, the graph syntax of TikZ and its Lua-based graph drawing engine that can be used to implement automatic graph drawing algorithms and use them to compute layouts for graphs that are to be rendered with TikZ.

For this post, my intention was to demonstrate the algorithms that I implemented as part of my thesis. These algorithms work well with many graphs, including grids, symmetric graphs, flow charts, flow networks and state machines or automata.

However, I decided to just point to the final version of my thesis here. It documents the algorithms extensively and gives many examples of how to use and tweak them. I think the thesis holds information much more useful to users and graph drawing researchers than what I’d be able to put in a regular blog post.

So, here is the official link: 

http://www.tcs.uni-luebeck.de/downloads/papers/2011/2011-configurable-graph-drawing-algorithms-jannis-pohlmann.pdf

If you find mistakes, please keep them to yourself. It still has to be marked by the two reviewers, so I don’t want to know what I did wrong yet. ;)