Looking for a full time job in Open Source

Two years ago I was really close to canceling my studies and looking for a job instead. In the end I continued studying, passed the final exams of my Diplom (the German old-school equivalent to a Master’s degree) with excellent results and started working on my graduate thesis. Today, I am 1 1/2 months away from the submission deadline and it is clear that I will make it.

So, this time I’m serious: I’m looking for a full time employment in Open Source software development, engineering or management starting November this year. Hiring me will get you an experienced and talented hacker with a natural intuition for software architecture and aesthetics as well as a scientific and painstaking approach to software planning and implementation.

Through my work at the university and within the Xfce and Lunar Linux projects, I have gained experience in/with

  • many programming languages (including C, C++, Ruby, Python, Vala, Lua, XSLT, TeX, Java, Bash and a couple of others),
  • many frameworks (the whole GTK+/GLib stack including D-Bus, a bit of Clutter, XLib and Qt/QML, SWT/JFace, the FOX toolkit as well as web frameworks like Sinatra and Rails; some knowledge about the Linux kernel, its facilities and kernel-userspace communication mechanisms included),
  • many developer tools (GNU compilers, Autotools, VIM, NetBeans, Eclipse and others),
  • many software versioning systems (Git, Subversion, CVS and Mercurial), and
  • various areas of computer science and software engineering (complexity theory, signal processing, graph drawing, micro-controller programming and sensor-based networking, software planning, testing etc.).

I feel equally at home developing for the desktop or for the web. Granted, my main area of expertise is user interface and middleware development on Linux, which my fellow Xfce hackers and I have successfully participated in, but I’ve always found web development with Ruby to be a refreshing change.

There are many other things related to open source that I love doing. Over the past years I’ve enjoyed being able to improve the transparency of the development and release management of Xfce. Streamlining the release process and providing tools for making release management fun was an initiative I am particularly proud of. The same goes for community efforts like the Xfce Foundation, which we’ve launched in early 2011 and which I am currently heading as president.

This post is not just about the past though, it’s also about what lies ahead. Things I am particularly interested in with regards to the future include

  • mobile platforms and applications (iOS and Android are not good enough, I think we need open alternatives),
  • multi-touch interfaces on Linux (yep, this is on the way, but there still is a lot of potential work to be done, I guess),
  • cloud-based applications (I know I can store files and data on the web, but where are the mind-blowing features that go beyond availability of personal data everywhere?), and
  • environmental and power saving applications (living responsibly will become important soon enough; how can we generate awareness and support environmental causes with the help of software?).

I am excited and curious what my role will be in all this. Anway, I guess this is enough information about me for now. After all, this is no biography but a job-search post. ;)

If you read this and you happen to be Microsoft or Apple, do not even bother to send a headhunter. I prefer to work in the open and I believe in Open Source for many reasons. This ecosystem that we’ve created over the past two decades provides a great way for people from all around the world to collaborate on projects they care about, in an honest and tolerant way. I think that’s an inspirational model from which our entire society can and hopefully will benefit. Why would we want to have it any other way?

If you are a member or leader of a company dedicated to Open Source software and are interested in hiring me, please let me know. Linked below are my resumé, software projects and email address. I’m looking forward to talking to you!

Download my resumé/CV — A list of references is included. Feel free to contact them; they are aware of being listed and I’m sure they will be happy to answer any of your questions.

My software projects — A list of open source software projects I am or have been working on.

Email address: jannis@xfce.org

Xfce 4.8 with Conky

I have been following a short discussion on the IRC channel #xfce regarding an issue with the use of Conky and transparency. I didn't use Conky for a very long time, but since I knew it was possible to have Conky perfectly running, I gave it a shot again and since I did a fresh reinitialization of Xfce on my workstation, I tweaked the configuration file to my need. Now I have it running in the background and I'll most probably keep it.

The configuration I was able to get for a good working Conky window with transparency is bellow. Of course I could tell you which combination doesn't work, with the why, but since there are so many of them I simply put a working one.
own_window yes # create a separate XWindow over the one from Xfdesktop
own_window_type desktop # the window cannot be moved or resized
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager # make it behave like it belongs to the desktop
own_window_argb_visual yes # true transparency, a compositor has to be active
own_window_argb_value 100 # make the background semi-transparent
double_buffer yes # avoid flickering

Here is a screenshot of the desktop with Conky in the bottom right corner, I made sure there is some I/O activity going on :-)

Xfce with Conky
Now if you want you can steal my .conkyrc file.

Xfce mailing lists moved

The Xfce mailing lists moved from foo-projects.org and are now all hosted at mail.xfce.org. Mail addresses were not changed so nobody should experience problems with this, if you do please contact us at email hidden; JavaScript is required.

We want to thank the foo-projects.org crew (yes you Auke) for excellent support in the last couple of years!

– The Xfce development team.

Analysing a phishing email

I've been hit by several phishing emails in a short time the last week. Having time this morning I took the initiative to look at the headers from one email and the phishing location.

The hosting server
The domains DNS zone is hosted on a particular network just like its website. Two different servers actually, but behind it seems to be a lucrative webhosting service where you can get your domain registered although it's not a registrar. All of this is hosted in Texas.

The email server
The email is originating from Italy. The FROM address is set up to show a truthful email (usually where you put the surname) with an inexistant email address behind that. The email address' domain name exists however and is hosted in France, but has no relation to the scam, at least the owner of this domain can't do anything about it.

The Return-Path shows a real email address with a different domain name but same network anyway. The domain name shows a dummy webpage "Under construction".

Who to contact?
All of them if you care, otherwise just let it go, because phishing pages are set up and down daily...

To contact the webhosting or email server, request the Whois information of the IP address and contact the abuse department, there is always an abuse section in the Whois of an IP address. You can also contact the domain name holder and/or look if the registrar or webhosting sevice has a dedicated abuse website page.

Of course it happens that an abuse email address forwards everything to the trash can. In order to have a chance to stop the scam, it is good to contact as many services as possible.

Irrational behaviour

So, I want a new phone. I really don’t need one, but I want it anyway.

This is my current phone:

And it fits my needs perfectly: water/dust/sand(!)-proof — Leonie and Guido are 3 and 1 year old now, so this is not a useless feature at all ;-) Moreover, it lasts two weeks without recharging and I only use it to make phone calls, so I don’t need anything with more features.

Still, I want this phone:

Basically, I’ve fallen for the pretty pcitures and UI demos, but I tell myself it is because it runs “real” linux.

What’s wrong with me? ;-)

Xfce Design Special Interest Group

A special interest group was recently started to improve the usability and visual appearance of the Xfce desktop environment. It is defined on the Xfce wiki as follows:

The Xfce Design SIG aims at improving the usability and visual appearance of the Xfce desktop environment. Our goal is to bring interested users, designers and hackers together to ensure neither of them is working in a vacuum. By establishing a context in which they can collaborate on smaller and larger design-related projects we try to increase the chance of the proposed changes to be merged into the official Xfce repositories.

Everyone is of course welcome to join this group which has already started working on several points and producing very interesting elements! I'll introduce here two of the main projects we are currently working on for Xfce 4.10. But more will follow soon!

I would like to thank Simon Steinbeiß and Pasi Lallinaho from the Shimmer Project who played a crucial role in starting this SIG.

Thunar shortcuts pane rework

You can see what is being proposed on this page. The main goals are to reduce the visual clutter in the shortcuts pane by sorting items in different categories and to integrate nicely remote file systems (Samba, FTP...) which are supported since Thunar 1.2.0. The current demo we have looks like this:

Thunar custom view for the shortcuts pane

I encourage you to have a look at the Wiki page linked above, which contains a very accurate description of what we want to achieve and how we are going to achieve it.

Merge of xfrun and xfce4-appfinder

You can see what is being proposed on this page. The goal is to produce a single interface allowing to quickly launch applications and to perform actions. We plan add an extension system similar to the Thunar Custom Actions to allow the creation of a tailor-made interface.

This is of course still work in progress, but this is how the two main view currently look. Clicking on the arrow on the right hand-side of the entry switches from one view to the other.

appfinder-compact.png

appfinder-expanded.png

I encourage you to have a look at the Wiki page linked above, which contains a very accurate description of what we want to achieve and how we are going to achieve it.

Don't worry!

We already received some mails and comments asking whether it meant that we would move towards a Gnome 3 interface. The goal is not (yet :D) to bring a revolution but rather to streamline what we currently have by improving the numerous rough edges. Of course, we might take some inspiration in other desktop environment but we will not copy what is done in Gnome 3 or KDE4, Xfce has its own philosophy which is serving its users well at the moment.

Useful links

Changing PolicyKit settings per user

I have been hit twice by a required authentication on my workstation after the Wifi connection got lost and it is clearly irritating, especially when you are not around. The authentication requests are handled by PolicyKit (polkit for short) and can be tweaked.

The message by which I was hit was the following: "System policy prevents modification of network settings for all users."

Before you get started, the system wide configuration files that contain the default values reside inside the /usr/share/polkit-1/actions/ directory. In this directory resides the file org.freedesktop.NetworkManager.policy which contains all the default actions. It does also contain the message about the network settings for which the action id is "org.freedesktop.NetworkManager.settings.modify.system." At this point I was still clueless of what I was supposed to do.

After having search the web for information about PolicyKit I have found one interesting article that helped me getting done with my issue and learning more about this authorization framework. This action being very seldom to perform, I'm summing up everything here.

There are two useful commands to perform tests with PolicyKit, pkcheck and pkaction.

The first interesting command to use is pkcheck. It will trigger an authorization request and prompt you to type in a password, simply return true if no authorization is required otherwise false. For example:
pkcheck --action-id org.freedesktop.NetworkManager.settings.modify.system \
--process `pidof gnome-session` -u `id -u`
You have to adapt the process and user parameters of course.



Next the command pkaction can be used to print the default system values, for example:
pkaction --action-id org.freedesktop.NetworkManager.settings.modify.system \
--verbose
Now to have a custom setting for your user, what has to be done is to create a PolicyKit Local Authority file inside the directory /var/lib/polkit-1/localauthority/. Here is an example:
[Let user mike modify system settings for network]
Identity=unix-user:mike
Action=org.freedesktop.NetworkManager.settings.modify.system
ResultAny=no
ResultInactive=no
ResultActive=yes
I have saved this file under /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

There are three main values you can pass to ResultActive that are no, auth_admin or yes. Respectively it will deny the authorization, ask for a password, and give access. For further information about the possible values check the polkit manpage, also don't miss the pklocalauthority manpage to read more about the localauthority tree structure.

Changing PolicyKit settings per user

I have been hit twice by a required authentication on my workstation after the Wifi connection got lost and it is clearly irritating, especially when you are not around. The authentication requests are handled by PolicyKit (polkit for short) and can be tweaked.

The message by which I was hit was the following: "System policy prevents modification of network settings for all users."

Before you get started, the system wide configuration files that contain the default values reside inside the /usr/share/polkit-1/actions/ directory. In this directory resides the file org.freedesktop.NetworkManager.policy which contains all the default actions. It does also contain the message about the network settings for which the action id is "org.freedesktop.NetworkManager.settings.modify.system." At this point I was still clueless of what I was supposed to do.

After having search the web for information about PolicyKit I have found one interesting article that helped me getting done with my issue and learning more about this authorization framework. This action being very seldom to perform, I'm summing up everything here.

There are two useful commands to perform tests with PolicyKit, pkcheck and pkaction.

The first interesting command to use is pkcheck. It will trigger an authorization request and prompt you to type in a password, simply return true if no authorization is required otherwise false. For example:
pkcheck --action-id org.freedesktop.NetworkManager.settings.modify.system \
--process `pidof gnome-session` -u `id -u`
You have to adapt the process and user parameters of course.



Next the command pkaction can be used to print the default system values, for example:
pkaction --action-id org.freedesktop.NetworkManager.settings.modify.system \
--verbose
Now to have a custom setting for your user, what has to be done is to create a PolicyKit Local Authority file inside the directory /var/lib/polkit-1/localauthority/. Here is an example:
[Let user mike modify system settings for network]
Identity=unix-user:mike
Action=org.freedesktop.NetworkManager.settings.modify.system
ResultAny=no
ResultInactive=no
ResultActive=yes
I have saved this file under /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

There are three main values you can pass to ResultActive that are no, auth_admin or yes. Respectively it will deny the authorization, ask for a password, and give access. For further information about the possible values check the polkit manpage, also don't miss the pklocalauthority manpage to read more about the localauthority tree structure.

important strategic decisions

Posting our recent decisions for Foresight Linux as sent to the mailing list by doniphon:

With the ongoing mess with the gtk2 -> gtk3 migration, followed by
the announcement of the gnome reschedule, and the gnome-shell/unity
rift, we do think our 2 major desktops gnome and xfce are rendered
unusable for the unforeseeable future. Same counts for kde as nokia
started to drop support for qt. Therefore we decided to focus our work
on getting in e19, a major enhancement to enlightements e17, using an
improved and hw accelerated curses library, done by us on a still
private bitbucket repository. This change also involves getting rid of
the much hated combination of pulseaudio/alsa in favour of the much more
modern and stable OSS 4.2, and entirely dropping Xorg and evolving to
Xfree2k. We're looking foreward to provide a superior user experience
soon with fl:3++. We'll shortly set the e19 repository to public, so you
all can benefit (and contribute) after signing our standard contribution
agreement that cedes all your present and future rights to Paris Hilton.
As a side note we'll be moving our default kernel to MinixNG too.

Have a nice day.

Porto, 1th April 2011

The Foresight Linux Council

Scale 9x: Day 3

Sunday

The final day of SCALE 9x arrived far too early, since the Gentoo developers were still recovering from the merriment the previous evening/morning. We congregated in the hotel room Mike & I shared. You know you’re having some good times when hotel security places a call to your room, asking you to keep the noise down.

The hotel experience

The Hilton is a terrible, terrible hotel. I know the organizers needed a bigger venue, and the Hilton provided more rooms. Still. All the Gentoo developers and all the attendees I talked to commented on how much worse the hotel itself was compared to the Westin from previous years. The location is worse compared to what’s in the area, the parking is more limited and expensive, the rooms were more “ghetto,” and the hotel’s prices for everything were ridiculously expensive. $5 for a half-glass of orange pulp, I mean, juice. Next year I may not stay at the Hilton, even though that would be less convenient. The expo actually felt just as packed-to-overflowing compared to previous years at the Westin, so hopefully they’ll have to move SCALE again for next year.

The expo floor

Sunday is usually more sparsely attended at SCALE; Saturday is the “big” day. However, we still had a decent amount of traffic at our booth. We gave away the last couple of LiveDVDs and a bunch more minimal LiveCDs. I just manned the booth all day, since there weren’t any talks that looked particularly interesting. This gave me an opportunity to do some swag-hunting. I picked up some Ubuntu stickers for my laptop, which dual-boots Ubuntu Studio along with Gentoo. I also got to try out the upcoming Unity desktop user interface. I dunno why everyone hates it; in my brief hands-on, it was pretty cool. Plus you can switch back to the “classic” Gnome interface at any time, so there’s no reason to complain.

I picked up some excellent swag from the OpenSUSE booth, including a plush penguin and gecko for my wife. They’re pretty cute. (Side note: I had an awesome chat with their Greek ambassador; we talked about community, and how hard it is to get people to contribute, as well as discussed KDE. I gave him one of our LiveDVDs, since he’s been talking with the Greek Gentoo KDE devs, and in return I got an OpenSUSE 11.3 disc. 11.4 will be released in just a few days!)

The expo floor and conference rooms were much better this year in a key area: wireless internet. This year the SCALE organizers managed to create and maintain a speedy wifi network. I never experienced the dropouts and miniscule bandwidth that plagued previous years. I read somewhere that a 45mbit network was setup, and that it was never oversaturated. The wifi connection, even with over 1000 users, was still faster than my home network. The organizers and admins deserve special thanks for delivering such an awesome experience. I was able to check bugs, upload files, and make CVS commits as I discussed issues with my fellow developers, all without leaving the Gentoo booth.

The machines

Sometime after noon, Robin grabbed me and told me to get my USB stick with the PowerPC ISO. Why? IBM was demoing their massive server, which included a POWER7 blade. They wanted to know if Gentoo would run on it! Our handbook doesn’t list anything more recent than POWER5, so this was a good time to learn more. A few of us headed over to watch Gentoo get loaded onto new hardware. We got a few photos and videos of Gentoo booting on the massive server; here’s one:

Gentoo on POWER7

It made it through nearly all the boot process, but apparently there are some differences in POWER7 console/tty devices or some such compared to POWER5, so it hung at the inittab step, but still! Gentoo on POWER7! It mostly boots; just needs a couple of trivial changes. That’s fantastic, given that it’s an unmodified ppc64 ISO.

We demoed a few different machines at our booth. I forgot to get any pictures of this year’s gear; sorry. Everything ran Gentoo, of course! We displayed a pair of Cr-48 ChromeOS notebooks, my ThinkPad running Xfce 4.8, an ASUS notebook, an ARM-based Nail board by Tin Can Tools, and a tiny blue XXS MIPS-based firewall/VPN cube by MyCable.

The people

Before I drove back down to San Diego, we got a group shot of current and former developers:

Gentoo Developers at SCALE 9x
Left to right: vapier, omp, antarus, dertobi123, wolf31o2, nightmorph, solar, wormo, ramereth, robbat2

SCALE was a blast; it was even better than last year. We chatted with all kinds of users, corporate reps, and people from projects like XBMC. Thanks to all the folks that came by our booth and talked with us — you guys rock. I’m looking forward to next year’s SCALE!