“Normal” life for change

Caster has asked me a couple of times to blog about being out of the army so here it goes. I got out on 2007-01-05 so I have gotten to enjoy “normal” life for a change. Looking back last year was a great experience. Any way I could write and write about my last year but I think it’s OT here. If you ever meet me in person, just ask and you will get endless stories 🙂

On the Gentoo front I am nowadays the co-lead of the recruiting project with kloeri. There’s some work on going on in that front to renew the quizes to more widely test the knowledge of recruits so let’s see how that turns out. Hopefully we will continue to have a steady flow of good new people coming in this year too.

Next weekend it’s going to be FOSDEM. It’s fun to get together with the various Java packagers from the other distributions and there should be Sun people around too. Maybe I can push them towards fixing https://bugs.gentoo.org/show_bug.cgi?id=158720 and we could get sun-jdk-1.6 marked stable at some point. It has some nice fixes. For example the fonts are much nicer with subpixel hinting etc. See you in Brussels.

Making build.xml rewriting way faster

Timing the build.xml rewriting of tomcat-5.5.20-r5


real 0m4.944s
user 0m3.869s
sys 0m0.917s


real 0m1.485s
user 0m1.262s
sys 0m0.178s

So that gives us a nice 70% speed improvement. It could be even faster if it did not have to do the rewriting twice, but this starts to be fast enough not to bother me too much when writing java ebuilds. The improvement was mainly accomplished by rewriting using expat callbacks instead of manipulating DOM, which in python reads the xml file in using expat any way I think.

My thoughts on the current state of Gentoo

While I don’t usually participate in the discussions about lack of direction in Gentoo or flaming on gentoo-dev, I felt I should provide my on view on the current state of Gentoo.

Developers leaving

Nowadays when developers leave they usually write a blog post to gentoo-dev describing the reasons of their retirement. I think previously most people either just disappeared or did this in private on gentoo-core. Alec Warner seems to think that people leaving will become a problem for the project as a whole. Actually I don’t think this will happen as at the moment there are 20 new developer bugs open and I have been steadily approving new developers on a weekly basis for some time now. I have been also very happy with activity of most new people. Most recruits have had a steady flow of commits with an average of under a day between commit messages. Granted the old timers can tell stories about old times and easily answer questions that new people have to ask, but we still have plenty of people to do that and Gentoo developers should be skilled enough to figure most stuff out by themselves any way. The only problem I see with people leaving and new people joining is that we need more active recruiters to make the recruiting process faster.

Flaming on gentoo-dev

I follow gentoo-dev and gentoo-core but don’t post that often to them. I feel that if I have something useful to contribute to the big picture, I should show the code along with the specification. Most people know what needs to be done (EAPI=1, GLEP 42 etc), the only thing missing is the code. It’s much harder to argue against working code than a vague specification.

Gentoo is not progressing

My take is that people who say this just don’t remember how things used to be. I started using Gentoo in 2004 and since then I have seen steady development. For example Portage has come a long way since I started even if it is stilling missing some of the features that people need. The bugs I have filed about Portage have been fixed in a timely manner. Then let’s look the what the Java project has been doing. We basically reimplemented the whole Java setup in a way that is much better for users and developers alike. On a final note I would like to thank Flameeyes on the work on Gentoo/FreeBSD. It has come a long way since it started. So these are just a couple of examples. I am pretty sure that other teams/projects have similar success stories to share with you.

Why I still like working on Gentoo

For me it’s mostly about scratching an itch. I like the power that Gentoo gives me and as I have the knowledge to solve most bugs and do version bumps myself, why not do it? In return I regularly get thanks from the users we help on #gentoo-java and the people I recruit. For me it has always been sufficient to keep me working on Gentoo. The flames etc are of little consequence to me as long as it does not bring down Gentoo as a whole. Remember that you really don’t need to get the approval of others to start new projects. So if you are not having fun and are thinking about leaving because you feel that the developer community is not worth your time, please reconsider based on what I just said. For me the Gentoo experience has always been a positive one, so why can’t it be the same for you?

On breaking QA policies

Alec Warner wrote that there are people who continuously break QA policy and don’t use repoman. This truly is a problem if it exists. Should really look into it, as such people should not be allowed to continue their work in that way. It should be possible to kick those people out if need be. I also feel that there are plenty of things we should do to improve the QA checking tools like repoman. But this is the usual situation of show me the code. As I have been in the army, I luckily have a handy excuse until January.

Lack of direction

Let’s take a look of the business idea of Nokia. I think it’s “Connecting People”. Maybe we have a need for a similar short slogan or not but I think our core business is keeping the ebuilds updated. Then there are support functions for that like installers, releases, etc. The individual projects are usually very focused and as it should be. I don’t believe that we need a global road map saying this is what we should focus on now as things seem to be progressing nicely with the manpower we have. I firmly believe that we will overcome all the technical problems given enough time. Because no-one pays us to meet a deadline, I really can’t expect to have everything immediately. What I am really looking forward to is something like 2010 when most of the building blocks have fallen into place. What could be useful is to extend the project xml files to state current goals and collect these into one page that would be linked from the front page.

Getting MX Revolution setup in Gentoo

I recently bought a Logitech MX Revolution mouse. This is a very nice cordless laser mouse with plenty of buttons. See Gizmodo review for pictures. As usual I first googled to find what others have done to get everything working with this mouse. Of course the usual functionality was there without anything special. The first link Google gave me was
Based on this information I set out to setup my new mouse. First I changed my xorg.conf to have the following:

Section "InputDevice"
        Identifier  "Mx Rev"
        Driver      "evdev"
        Option      "Protocol"  "Auto"
        Option      "Name"      "Logitech USB Receiver"
        Option      "Phys"      "usb-*/input0

This gives evdev control of my mouse and still keeps my other stuff working using the normal /dev/mice/input. This at least makes it possible to control this mouse specifically if I need to. The hotplug input framework should hopefully make this kind of stuff obsolete in the future.

Having evdev working and handling the mouse I got xev to recognize all my mouse buttons nicely. I have been using imwheel with my previous mouses and have found it an able tool to map mouse events to keyboard events. Here is my .imwheelrc:

None, Thumb1, Alt_L|Left
None, Thumb2, Alt_L|Right
None, Left, Control_L|W
None, Right, Control_L|T

None, Thumb1, N
None, Thumb2, B

None, Thumb1, Shift_L|Right
None, Thumb2, Shift_L|Left

What this does:

  • Makes back/forward work in Firefox with Thumb buttons
  • Makes creating/deleting tabs work by tilting the scroll wheel
  • Makes Thunderbird go to next unread message / previous message using Thumb buttons
  • Makes Konsole change tabs using Thumb buttons

Using the same pattern you should be able to adjust the rest of the buttons to your liking. I will probably look into using the Thumb wheel to control beryl.

The last thing I didn’t like about the default behavior of the MX in Linux was the scroll wheel. By default it is in the Free-spin mode which means that clicking the wheel does not generate Button2 events. I found a handy tool to control the features of this mouse in the comments of that blog post and I made an ebuild for it http://overlays.gentoo.org/svn/dev/betelgeuse/app-misc/revoco/. Using this tool I can just issue revoco manual=6 and after that I can use the One-Touch Search button to change the scrolling mode of the mouse. I don’t know yet if this is good enough for the main tree as it atm must be run setuid because of default /dev/usb/hiddevN permissions. Will probably add it if I find the time to rewrite it using libhid.

The final touch to glue all this together is to have my .xprofile start the necessary programs for me:

revoco manual=6
#xmodmap -e "keycode 122 = XF86Search"
/usr/bin/imwheel -k -b "007689"

Notice that you can use xmodmap to map the One-Touch search to XF86Search if you like. It’s quite weird how the button is handled. To the OS it is shown as a keyboard with one button. Well engineers are creative.

Introducing myself

I decided to start blogging about the suff I do for Gentoo so let me introduce myself. I have no idea how many of you know me but I have been working on java and mobile stuff since July 2005. I also recently joined the recruiters to help the cronic problem of having having too few people to maintain all the packages we currently have.

On the personal side I live in Finland and am still probably the only Finn with access to the gentoo-x86 module. The last year has been quite slow to me as I have been conscript in the Finnish Defence Forces. But that ends on the fifth of January 2007 so soon I will have much more time for Gentoo again.

So now that I have introduced myself, you can wait more technical blogs entries in the future.