Wieland-Gymnasium Abitur 2007

March 11, 2010


February 25, 2010



BenBenno posted a photo:


Mamiya 645, Fuji Provia 400

by nobody@flickr.com (BenBenno) at February 25, 2010 06:12 PM

Christian N.

Window management revisited

Two years ago I wrote Thoughts on window management, and in the meantime, I returned to using Linux computers for a really significant part of my digital life. Thus, it was time got pick a window manager again. I think I then tried just about every significant one and lots of unknown forks, experiments and abandoned ones.

Revisiting the ten points, I consider them still all to be valid and applied them with minor tweaks in my current setup.

A screenshot of my cwm setup

I now use the cwm window manager, an OpenBSD fork of calmwm which runs with a few small patches under any Unix. (I wrote an Arch PKGBUILD for it and also keep a Git mirror.)

cwm is a small window manager without many frills or decoration other than a simple border, but it has good and customizable keyboard control, and features just what I need: cwm uses “focus follows mouse” (the one true thing for X11 in my opinion) but does not use “click to raise”. Thus your window setup only changes when you really need it, and due to overlapping you can use your (always) limited screen space fully.

Each window can belong to one cwm group. I defined four groups: terminals, editors, browsers, distraction (e.g. IM, Twitter). By pressing the appropriate keybindings (Super-1 to Super-4), I can quickly toggle display of these windows.

Windows stay at their fixed size and position, though it is easy to maximize them full or vertically if I need it (most run vertically maximized anyway as it’s only 768 pixels). cwm doesn’t save positions, but many do it themselves or are started with appropriate geometry. Thus, spatial memory can be used as applications don’t jump around wildly.

Super-Button1 raises a window, while Super-Button3 lowers it. This is incredibly useful for an operation I call “drill-down”. Just press Super-Button3 a few times where you expect the window until you found it. This and Meta-Tab to switch between the last focused window are my main means of reaching lowered windows.

cwm itself doesn’t have a status bar, and only features a launch menu I rarely use: I wrote a status bar using conky and a launcher with dzen2. The status bar displays useful information on the top right like the time, current networks and my IP address on them, audio volume, CPU temperature, memory, CPU and battery usage as well as the currently playing song. On the top left there’s my launcher, which tries to switch to applications if they already run. I wrote a small script featuring xdotool for this task. There’s also a small dzen in the top right corner than locks my screen when I click on it.

This top bar is visible all the time, except for full-screen when watching a movie.

The structure of my desktop continues inside the applications: Almost everything uses tabs (Firefox, Pidgin, Emacs, URxvt with tmux), and I configured all applications to use Meta-Left/Right for switching tabs. Conformity really pays out here once you have the keybindings in muscle memory. In general, I only have one window open of any kind and use tabs to multiplex them. But when I really need to look at a few things at once, I can just drag out the tab (or copy the tmux session) into a new window. I rarely need other windows than these, most things are done in the shell, Emacs or the browser.

NP: Gang of Four—Natural’s Not In It (Ladytron Remodel)

by Christian Neukirchen (chneukirchen@gmail.com) at February 25, 2010 09:59 AM

December 24, 2009

Christian N.

Merry Christmas!

Santa spanking

Frohe Weihnachten, ein schönes Fest, und einen guten Rutsch ins neue Jahr wünscht euch Christian Neukirchen

Merry Christmas and a Happy New Year!

NP: Neutral Milk Hotel—The Fool

by Christian Neukirchen (chneukirchen@gmail.com) at December 24, 2009 11:48 AM

December 19, 2009

Christian N.

A nasty Android bug

When your Android phone shows the following symptoms:

  • Upon power on, some configuration (e.g. date/time format) is lost.
  • The “hang up” button doesn’t lock the screen.
  • “Airplane mode” and “Silent mode” don’t show up in the shutdown menu.
  • The “home” button doesn’t work.
  • The “call” button doesn’t work.
  • Incoming calls don’t work. (Don’t know for sure.)

…then your phone probably destroyed some configuration, likely because the battery was empty before it fully shut down. A possible fix:

  • Get the application “Any Cut”.
  • Create a shortcut to the activity “Setup Wizard” (there are three items of it, try them all).
  • Run the Setup Wizard that looks like the initial Android setup (the one where you have to click the robot first), and follow the wizard.
  • Your phone should now work again.

This worked for me on firmware version 1.6 (And I think I hit the same problem on 1.5 too, but back then had no other idea than to wipe it).

Many people seem to be affected by this, and above solution is based on this thread.

Clearly, this is a thing that should not happen, corrupting configuration due to low power.

NP: Neutral Milk Hotel—The Fool

by Christian Neukirchen (chneukirchen@gmail.com) at December 19, 2009 06:01 PM

December 13, 2009


December 06, 2009

Christian N.

Zum Advent

Vorweihnachtliche Stimmung beschreibt Lydia eh besser als ich.

Ausserdem kann ich einfach nicht wiederstehen, diesen Klassiker nochmal zu posten:

Inhalt des Gefrierschanks

wrongcards hat neue Weihnachtspostkarten: Christmas Deer, Someone Undermines Christmas, Everything is Fantastic, und natürlich Adequate Substitute for a Gift.

Sonst gibts noch eine kreative Weihnachtsdeko, und ein schönes Bild von Lichtern in Berlin.

Sterneschnippeln steht noch aus.

Ich wünsche einen frohen Advent.

NP: Tom Waits—Who Are You Cut

by Christian Neukirchen (chneukirchen@gmail.com) at December 06, 2009 01:22 PM

November 27, 2009


September 28, 2009

Christian N.

Back from Curucamp 2009

I just came home from Vienna where I attended Curucamp 2009, the probably most unconference ever. ;-) We were about thirty people, and there was a fair share of interesting talks. Of course, there was a lot of socializing, too. We had real luck with the weather. And there even was a head measuring contest!

If you are interested in my slides about Simplicity in Code, you can find them at the usual place.

NP: Pearl Jam—Unthought Known

by Christian Neukirchen (chneukirchen@gmail.com) at September 28, 2009 09:55 PM

September 19, 2009

Christian N.

Latest discoveries in hard disk archaeology

Recently I dug up an old hard disk (to be used in my Sun Blade 1000), and I found an old copy of my home directory on it. Even better, I found an even older backup of a thing I thought that was lost already: my first web site.

I could not resist putting it up, so here it is. I don’t think it ever went live, actually.

I made it in 2000/2001, so please bear with the bad English and table layouts. I also didn’t know of .png files, I guess.

The time stamp shows 2009, but that’s because I had to regenerate the site from its sources. It already used amazing technology: RCS-backed, make(1)-driven, and using cpp(1) for HTML generation is a hack I’m still proud of (well, except for the occasional <!-- ' --> to close an uneven number of quotes :-P).

NP: Pearl Jam—The End

by Christian Neukirchen (chneukirchen@gmail.com) at September 19, 2009 06:07 PM

September 11, 2009

Christian N.

Hiking in Fassa Valley

The last few days I spent in the Dolomites and we did some hiking trips that I recorded with My Tracks:

View Tag #1 in a larger map
View Tag #4 in a larger map

(I forgot to stop recording at the end, thus I don’t have exact statistics.)

View Tag #7 in a larger map

Unfortunately I see no way to export the elevation graphs, which would have been interesting to compare.

Google Maps doesn’t have much detail for this terrain, I recommend looking at the larger maps and enabling photos for a rough idea.

NP: The Magnetic Fields—I Can’t Touch You Anymore

by Christian Neukirchen (chneukirchen@gmail.com) at September 11, 2009 06:38 PM

August 22, 2009

Christian N.

Why I use the MIT license

The internet probably is the closest thing to working anarchy mankind ever had. I don’t want to, and I don’t see any point in restricting other peoples’ freedom. Since 2004, I therefore license all my new code under the terms of the MIT license or comparable licenses (notably the Ruby license).

I do this for pragmatic reasons. I’d prefer to do it like Bernstein, but this is unfortunately a lot more hassle for non-private users of my software. Using MIT is also easier than creating my own licenses. The MIT and the ISC license fit my idea of software licensing best. I mainly use MIT because it’s more popular and well known.

I have evaluated putting some works into the public domain (or license them as CC0), but I can’t do this easily for various reasons: First, I live and code in Germany, where you can’t place things into the public domain without already being dead for a long time. Second, I do not want to give up all my moral rights, because then the code can actually be used against myself (mainly “any distortion, mutilation or other modification of, or other derogatory action in relation to the said work”, I don’t care about the rest). I do not know if this matters in real life, and I hope it does it not, but I don’t want to risk it. (Still, I think CC0 is the most important recent addition to the license landscape.)

(In general, I’d even prefer if my code was regarded authorless—which does not mean I don’t care about it. But neither I don’t care at all what you do with the code, and I’ll not endorse it nor want to be identified with it in other ways—especially if you distribute modified copies! I’ve been considering anonymous or pseudonymous releases for these reasons. Again, pragmatism strikes: apart from murky and inconvenient ways to release and ensure archival, it is problematic for others that depend on the legal system to use my works.)

I consider it unfortunate that we spend so much energy on licensing debates, clarification of terms and persecution of violation. Rather, let’s code. As long as there is a single available copy of free code, its freedom is kept and can be multiplied at no cost. For code that is worth anything, it will.

I realize “bad guys” don’t cease to exist—whether they “steal”, don’t share, lock up code, or have business models in mind you don’t like. But it’s not my fault they are that way, and neither it is my job to “teach them lessons”. Good deeds have to come from yourself, and why should I not give anyone the possibility to do so.

Thus, more power to you! Now go forth and do whatever you think is right.

NP: Danger Mouse—Revenge

by Christian Neukirchen (chneukirchen@gmail.com) at August 22, 2009 08:28 PM

August 16, 2009

Christian N.

22, 026, 0x16

Der wahre Nihilist aber lebt ewig; in jeder Sekunde hinterlässt er Milliarden von Paralleluniversen, in denen er just gestorben—und verdient so weder Mitleid noch Trauer. — Was ist der Tod eines Regentropfen im Ozean seiner selbst? (10oct2007)

NP: Pearl Jam & Ben Harper—Another Lonely Day

by Christian Neukirchen (chneukirchen@gmail.com) at August 16, 2009 09:40 AM

July 26, 2009

Christian N.

SchützaBlog 2009

Ist es wirklich Schützen, wenn man nur zwei Nächte da ist?
Wenn man keinen Umzug gesehen hat?
Man nicht mal weiß, als was sich die WG-Trommler verkleidet haben? (Schweinegrippe)
Nur rasch über den Berg gelaufen ist?
Und irgendwie nie das Schützenfestlied erklang?
Man vorm Tweety eh fast keinen mehr kennt?

Schützen, ja du bist’s!
Dich hab ich vernommen.

Bis nächstes Jahr,
Scheene Schütza!

NP: Elvis Perkins—The Night & The Liquor

by Christian Neukirchen (chneukirchen@gmail.com) at July 26, 2009 12:59 PM

June 26, 2009