The secret to a really productive desktop environment

I recently discovered how to increase your productivity by 300% or more*. I’d like to share this with you, so that when you follow my advice, you can PayPal me €100 for every hour you save.

  1. Buy an SSD. Really, this is important.
  2. Switch to a minimalist desktop environment like XFCE.
  3. Turn off any and all distracting eye candy, transitions and animations.
  4. Replace the slow software you use with faster equivalents.
  5. Enable e-mail notification, but don’t look at the e-mail exactly when it arrives, leave it for a few hours or at least until you’ve finished what you’re working on at the time.

And here’s a screenshot of what that looks like:

I use Terminator instead of gnome-terminal or xfterm so I can look at multiple terminals and multiple tabs at the same time. One terminal has a red background so I immediately know it’s my local root terminal without having to read any titles. This saves me from switching between lots of tabs before finding the right thing.

The desktop environment is XFCE, which is super-fast out of the box, and I’ve set up the bottom panel so that it makes the best use of Fitts’s Law. The panel is 32 pixels tall, the window buttons are nice and big so it’s fast and non-annoying to switch windows. The bottom right has instant messaging, calendar and mailbox notifications and a volume slider — and nothing else! I could even remove the volume.

Also, there is a second monitor to the right of this one showing more stuff, so I can look at what’s really important right now with one glance instead of having to unfocus from the task in front of me.

The mail client is Claws Mail, which is fast as hell and has many time-saving features for hardcore mail users like me.

The web browser is Chromium, which is Chrome without the Google in it. It’s very fast, still faster than Firefox, and more stable IMHO, so that crashed browser sessions don’t lose me any productivity.

With this setup, every response I want from my PC is almost instantaneous. I click check mail, whoosh, there’s the new mail. I ctrl-enter to send an e-mail, fthagn, the window is gone, the mail is sent. No effects, no wobbly windows, no desktop cubes, no sliding shit, stuff just happens super-quickly instead.

The rest is just discipline. Focus on the task at hand and build a desktop environment for yourself that doesn’t distract you. No Twitter, no Facebook, no games, no news, no RSS feeds. Do those in your spare time. I’ll pretty much guarantee you’ll be more productive like this.

Now about that PayPal donation (thanks!):

*YMMV, IANAL.

Avoding “Invalid byte sequence in UTF-8″ with Ruby and CSV files

If you’re running into a ton of problems reading e.g. an ISO-8859-1 encoded CSV file into your (probably UTF-8) Ruby or Rails application, and if the error you get is “Invalid byte sequence in UTF-8″ even though you’re giving CSV.open the correct encoding options, here’s a solution.

The example CSV file is a tab-separated, ISO-8859-1 encoded file with CRLF line endings. You’d expect the following to work:


CSV.open(@infile, "r:ISO-8859-15:UTF-8", {:col_sep => "t", :headers => :first_row})

But it fails mysteriously! Even though the conversion to UTF-8 goes without problems, you get an ArgumentError complaining about some illegal byte sequence. If you analyze deeper, you might find (in this case) a complaint about rn. The solution is very, very non-obvious: You need to specify the row separator in addition to your encodings!

mjtko from the #rubyonrails channel on Freenode discovered this. If we change the line to the following:


CSV.open(@infile, "r:ISO-8859-15:UTF-8", {:col_sep => "t", :row_sep => "rn", :headers => :first_row})

Boom, there’s your working CSV object, with working encodings.

Watch TV on your PC, no ads, no Flash

Roman Haefeli strikes again: Watchteleboy makes it possible to watch dozens of live TV channels using mplayer in your very own machine, without the need for Flash, a web browser or any other such nonsense.

Here’s the source code: https://github.com/reduzent/watchteleboy

Here are Ubuntu packages he maintains: https://launchpad.net/~reduzierer/+archive/reduzent

And here’s an Arch Linux package of it that I maintain: http://aur.archlinux.org/packages.php?ID=52232

Caveat: This only works if you’re located in Switzerland or in some other place that Teleboy’s geotargetting likes (such as Italy).

It’s Quality Assurance Duck!

My development team got a new member: A rubber duck that goes “öööp” when tests fail:

This is an all-analog, no-automation thing. When I see tests fail on our integration server, I smash people over the head with the squeaky duck. Eventually I’ll hit someone hard enough to produce a graceful öööp.

So far it’s working well, test success is back to 100% green :)

Schweizerdeutsch erhält das “womit”

In dieser Reihe von Blog-Postings verfolge ich den Einfluss des Deutschen auf das Schweizerdeutsche, die meistgesprochene alemannische Sprache.

Heute im Tram musste ich hören, dass es dem “mit was” vielleicht an den Kragen geht. Zwei Mädels vor der Lehrabschlussprüfung. Fragt eine die andere: “Womit häsch am meischte müeh?”

“Womit” gab es in der schweizerdeutschen Sprache bisher genausowenig wie “wofür”, “weshalb”, “worauf” oder “wessen”. Stattdessen sagt man “mit was”, “für was”, “warum” (kausal) bzw. “uf was” (lokal) und “wem sis”.

Sowieso gibt es im Schweizerdeutschen eine ganze Menge weniger Adverbiale als im Deutschen. Wenn Zürcher Lehrabschlussprüflingerinnen da einen Trend vermuten lassen, nicht mehr lange!

“Übercho” wird schleichend ersetzt durch “becho”

Und gleich noch etwas zur Verdeutschung der schweizerdeutschen Sprache: Wenn man etwas bekommt, heisst es in den meisten Dialekten entweder “übercho” (Zürich und die meisten Dialekte) oder “kriaga” (Khûrertütsch). Baselditsch macht vielleicht eine Ausnahme — ich weiss es nicht.

In Zürich hört man aber immer öfter das neue “becho”. Beispiele:

“Ich han es buech becho”, “Bechunsch du bscheid?”, “Bechunt er ä rechnig?” statt “…übercho”, “Chusch du bscheid über?” und “Chunt er ä rechnig über?”

Wie man schön sieht, geht in der dem Deutschen angeglichenen Deklination sogar die Trennung verloren.  Etwas, das für viele solche schweizerdeutschen zusammengesetzten Verben grammatisch so charakteristisch ist, wie in Bayern die Doppelverneinung (“…wo sich koa mensch ned hisetzt”).

Wäre schade, wenn so etwas der Verdeutschung zum Opfer fiele.

Khûrertütsch scheint nicht betroffen, dort kriegt man Dinge traditionell, man bekommt sie nicht: “häsch dia rechnig scho kriagt?”, “kriagt dä herr döta’n'an kaffee?”, “miar kriagend bald a neus sortiment.”