Not the Gentoo Linux Newsletter, ricer edition

Brute Force: If it doesn't work you're not using enough

Random distraction: BNF and grammars

An RFC on Augmented BNF, if you ever feel the need to define your own grammars. If you have no idea what it is you should maybe read this tutorial and get really confused. Why would one do that? Hey, that's the basis for compilers. And compilers are what makes code into executables and stuff. So it's one of the really important topics in Computer Science ...

Trustee Elections!

As you can read here there will be trustee elections soon. If you intend to nominate someone you'll have to do it really soon now. The Trustees are supposed to be the wizards that take care of legal and bureaucratic things. The number of candidates that accepted the nominations is surprisingly small, and one might also assume a proportionally small amount of votes in the next month. Every Gentoo dev (apart from those that refuse to vote for moral reasons) should vote - if you don't vote you can't complain later when people you don't like are voted in and do stupid things. Vooooote!

Interview: Mark "Markey" Kretschmann

We've had some great luck catching Markey for an interview. For those that don't know him yet, to quote from his blog: "Hi, my name is Mark Kretschmann. I am the founder of the Amarok project. Amarok is the leading music player for the Linux desktop and one of the most popular KDE applications. We often hear it being called a "killer application" for Linux."

A short while ago Markey even branded himself, he now has the Amarok Logo permanently inked on his right arm, as you can see here

We had the great opportunity to have an interview with Markey. Here's the result of our Q&A session with Amarok user #1:

What's your favourite beer?
Duvel, a Belgian beer that comes in three varieties, sorted by alcohol level: normal, party, end-up-lying-in-some-corner-talking-bullshit. I prefer the third variety, which (while fatal) also tastes awesome.

What's the best beer for writing code? How much would we have to donate to keep you coding all the time?
I love beer and I know about the Ballmer-peak , but really I don't think coding and alcohol is compatible. However, I do think moderate alcohol consumption can be helpful for handling certain social aspects of project management, as it can make you more communicative. In Amarok we very much stress the social interaction of our teamsters - they are key to our success. E.g. we're regularly having Skype sessions with Amarok teamsters, and the last thing we talk about there is coding! The focus there is mostly on funny personal topics. This private sense of "friendship" is key to our project, and differentiates us from other projects. We're much like a family, and this even extends into our real lives! Actual real life partnerships have resulted of that, and I think that's really awesome.

You're originally German, don't you have any patriotism when it comes to beer?
Indeed it's a good thing to be German as a beer lover; there are many good beers made over here. Probably among the best beers of the world. Incidentally the Germans not only make decent beer, but they also enjoy drinking it. Lots of it. Which I like.

Seeing that you treat your project members as friends or even "family", is that a model that other projects should try to emulate? How does it work when your team is spread around the globe and can't meet?
It's a good model and I think we're going to maintain it for as long as possible. There's a constant influx of new developers, and some fit in, and others don't. Mostly though this works out well cause we don't take ourselves too seriously (I believe that really smart people have a good sense of humor too. Otherwise I don't consider them truly smart). But a very important factor in this is our Rokymotion (promotion) team, and especially our Community Manager Lydia Pintscher. Imagine her like a modern version of Deanna Troi (Star Trek counsellor), with the gift of "bringing like-minded people together". This is incredibly important for OSS projects, and one of the reasons for our very well functioning community. In Amarok we don't vote about decisions. Also we don't have a dictator. Instead, we always reach a consensus, or try very hard to reach that. That's not an easy goal, but so far we've always achieved it. Which we can be proud of, I believe.

Belgian beer meets geeks - will you be at FOSDEM this year?
I very much hope to attend FOSDEM, and in fact I've already booked a hotel room. Those close to me know of my unreliability in such regards though, which I'd like to apologize for. I hate travelling (the actual transport), as I am a very impatient person and almost go mental on long trains travels, e.g. If there was a teleportation device, I'd visit a lot more conferences for sure. But generally, I hope to be there this year. Meeting fellow open source folks in person is always a blast.

If you could send two people onto a deserted island, who would you send and why?
Let's be honest here: I'd send Christina Aguilera, and Anna Nicole Smith, if she was still alive. This is of course assuming that I could be on that island too ;)

If you had to invite one person for dinner, would you rather have Stallman or Torvalds? What would you cook for them?
I respect both of them, but frankly I think such a dinner is a very contrived situation. It wouldn't happen in real life, and I wouldn't want to partake in that anyway. But I'd get some decent whoppers and fries from BK, because BK of course rocks.

What distribution(s) are you using, and why? What is your opinion about Gentoo?
I'm currently using Kubuntu, and I'm very happy with it. About Gentoo: Let's be frank, compiling software is the last thing I'd like to do after a long day of software development involving compiling my own code. Compiling isn't cool; that's just a misconception of pseudo geeks. In reality it's a necessary evil, and the perfect compiler would take no time at all. So a source-based distro is probably the last thing I'd use. Still, I hear that Gentoo is technically very well put together, and I know some Gentoo developers personally, so I assume it's a smart distro. For me personally though I'd never consider it for a second.

If you could start from scratch, what would be your preferred programming language at the moment? Which ones would you like to learn if you had lots of free time?
I make no secret of being a very strong Ruby supporter. In fact I even consciously forced Ruby to be a hard dependency of Amarok; partly for technical reasons, partly simply for using my leverage to promote this language more. For me Ruby programming was an eye opener: it's so smart and wonderful on so many levels, and yet easy to learn. I tend to be vocal about such things, and I openly fight Python (which is of course the antichrist) wherever I can. Give Ruby a try, it's just a work of art, and actually useful. I use it whenever I'm not forced to use C++, and I'm even known for my wilds plans to rewrite part of Amarok in Ruby. Maybe with Amarok 3.0, we'll see :)

If you had a million dollars (that's roughly 175Eur at current exchange rates) - what would you do with it?
At first I'd make sure that I would no longer have to deal with basic life issues, paying rent, food, etc. Then of course give some to my parents and so on. Then, eventually, I'd use the cash to make my dream come true: working on Amarok full-time without monetary pressures. Probably also set up a (non-profit?) company for Amarok, so that we could afford to compensate our contributors. But let's be frank. The first three weeks I'd probably spend in a state of constant partying, substances and girls - I'm no saint, you see. I think partying is crucial for loving yourself, and loving yourself is the only way to really love other people. Think about it :)

So that explains why the Amarok crew parties so hard (see FROSCON) ?
I personally take pride in the fact that we actually know how to celebrate the moment. You see, at the end of the day, what are you going to remember in 30 years time? The day you fixed some code bug and walked the dog and then talked the day over with your partner, or the day where you totally freaked out, party animal style, dancing until sunrise with people you love, and ending up discussing life philosophies while passing around a joint? You choose.

This concludes our interview, a big thanks to Markey for taking the time for us. We appreciate the honest and lively answers and hope to be able to have a beer with Markey soon.

Public Service Announcement

Borrowed from

Ricing out your system

When you have a distribution like Gentoo that can be bent in any direction there's of course going to be a point where you ask yourself "Can it go faster?"

So here's some good, bad and/or ugly hints that may or may not speed up your computer. Of course mentioning most of those will make people ignore any bugreports you may try to file, but where's the fun in that?

Get a faster computer. This has to be about the silliest idea. But it kinda works - a faster computer will run many applications faster.

Upgrade some components. Same kind of lame, but it's cheaper. And you should not underestimate the impact of having more memory ...

Overclock ... if it can run at 2.4Ghz, why keep it at 2 ? Maybe if you add two 80mm fans here it'll go up to 2.6! that's like ... dualcore ... 2x30% = 60% performance for free. What sane person would not take it!

RAID and Solid-state disks. This one helps a lot with IO-limited things like "emerge --sync" and compiling. Using a solid state disk reduces compile times from ~6h to ~4h30 for OpenOffice!

Use a faster filesystem. Reiser4 can help there. So can ext2! Or maybe you want to use squashfs for readonly bits? Hmm, so many options of tweaking there. Oh! ext3 has sooo many options, they have to make things faster. Right? RIGHT??? Oh yeah, and XFS!

CFLAGS - the core of every ricer's work at speeding things up. Start reading this, then this. Take an afternoon to think about this one. Now you have an idea why CFLAGS are so cool and what you should do. There's so much to chose from! Including such nice flags as -falign, -fomit-frame-pointer etc. etc. And if it's less than 3 lines of text you've failed already!

LDFLAGS - when the compiler is at its limit you want the next part of the toolchain to go bananas. That's the linker (ld) and thus LDFLAGS. Set them in make.conf and watch chief bugwrangler jakub hate on you personally. The beginner's tutorial is here. And if that's not enough there's the man page with lots of neat little hints!

--as-needed will make everything better. It's the ricers instant fix, like R-Type stickers. This document explains the concepts behind it. And every ricer will enable it globally, unconditionally! Programs that can't handle it aren't worth it anyway ...

More linker tweaks!. You can't get enough of those. Here's a nice little advanced tutorial on making your linker go fastaaaaaaah!

Prelinking - makes things start faster. emerge preling; prelink -a and thingy startup faster. Don't ask me how, facts only confuse. Just do it!

Get a better compiler. This one is so obvious, and still people fail at it. There's the toolchain overlay with bleeding-edge versions. Newer means faster! Just use it and watch your computer run at lightning speed. Or even better, use the Intel C Compiler ICC. Like, you know, Intel knows their processors best. Yeah. Rock and Roll!

-ffast-math says it all ... Math, only faster. And faster is better. Yeah, there's some stupid warnings. Who cares, warnings aren't errors. Faster. We haz it

So that's our basic introduction to breaking your system. There's a few advanced topics one could mention, but just working through that list should keep you busy for a while. And the performance improvements! Liek zomg, that's at least 6% with interest!
Oh yeah, if things start crashing ... you're not doing it hard enough. Add some more CFLAGS. Overclock it another 50Mhz, it'll be finished earlier and the crash will happen when you're already done. Yeah. Just don't let the magic smoke escape, mmmhkay?

Beer suggestions