Front Page

A RailsConf Europe 2008 diary... NOT

Fri Sep 05 07:39:22 +0200 2008

Around RailsConf Europe in six words.

Sunday: Arrival by train, St. Oberholz.
Then All-you-can-eat, Tacheles top floor. Yay.

Monday: St. Oberholz, Bratwurst on Rails.
Taught Geoffrey how to use zsh.

Tuesday: Vietnamese dinner with Sean O’Halpin.
Then RejectConf at Pirate Cove (Arr!),
Then to Ambulance Bar and Tacheles Garden.
To bed at about 5 am.

Wednesday: Deutsches Technikmuseum, dinner at Marx.
Then Ambulance Bar, Tacheles first floor.
To bed at about 6 am.

Thursday: Dinner at the Ständige Vertretung.
Then Ambulance Bar (See the pattern?).

Friday: Flight home, way too early.

Thanks and greetings wholeheartedly go to:
Scholle5 for the apartment and WiFi,
Members of #caboose I stayed with,
for the good time and community,
Geoffrey Grosenbach for his unhidden praise,
Sean O’Healpin for dinner and beer,
All barkeepers in previously mentioned places,
Yikes, I accidentally my whole fleshlight!

See you all in near future.

Almost overheard: Rails is getting stale.

NP: Queen Adreena—Princess Carwash

Off to Berlin

Sat Aug 30 18:20:12 +0200 2008

Busy packing my stuff to travel to Berlin where I’ll play lobbyist at RailsConf Europe 2008 (i.e. I don’t have a ticket.)

Please contact me if you want to meet up, I’m there until early Friday morning and have lots of free time.

I’ll be taking my EEE PC with me, so mail and IRC ought to be available, given I find some free WLAN (no deal).

I’m staying with Jarkko Laine, Cristi Balan, Andrei Bocan, Manfred Stienstra, Eloy Duran, and Lars Pind. Gonna have a good time.

Anarchaia will resume publishing Friday, September 5.

NP: Queen Adreena—Medicine Jar

Bookmarklets for relative navigation

Fri Aug 22 01:36:29 +0200 2008

It’s been increasingly popular to add rel="next"/rel="prev" link tags to web sites, but users of most popular browsers (and that includes me, as Safari and Firefox user) don’t have a way to access them out of the box.

Yes, there are Firefox extensions to add them, but I’d prefer not to have another toolbar sticking around. I already have a Bookmarks Toolbar, and thus decided to implement this feature as a Bookmarklet.

There you are, that wasn’t very hard, just drag these links into your toolbar: rel=prev, rel=next. You can adjust them easily if you need additional directions.

To test them, go for example here. And no, my site doesn’t support them (currently).

It rocks for dashing through blogs.

NP: Fiona Apple—Not About Love

Thoughts on window management

Thu Aug 21 17:02:13 +0200 2008

For the following, I assume: a non-small monitor (19" or more), use of a convenient mouse.

  1. Desktop icons are dead. Why hide the important stuff behind all the windows?

  2. For efficiency, every regularily used application has a fixed position that is accessible with a single click. (E.g. a window corner, or an icon in the dock.) Optional keyboard shortcuts are beneficial.

  3. Layering windows does not hurt. Expose and similar features allow to get an overview, but (2) ensures we never need to dig for deeper windows.

  4. Windows rarely get resized or moved once they have found their own position and size. Applications need to save their size and position.

  5. Manual, effortless window managment is superior to automatic, but wrong arrangements.

  6. It follows from (2), (3), (4), (5) that tiling has no real benefit.

  7. There should be no distinction between starting an application and switching to it.

  8. It should be possible to group windows into task-related, possibly overlapping positions. I may have a “web development” set that contains my editor and my browser. I may have a “typesetting” set that contains my editor and a PDF viewer. I want to cycle between applications in the current set easily.

  9. Multiple sets should be combinable. I may want to typeset something while having my music player open. My window arrangement ensures I see enough of the music player without disturbing my writing. I want to toggle visibility of my instant messenger, nevermind what I do.

  10. When switching between multiple sets is easy enough, the need for “multiple desktops” vanishes.

It should be possible to hack dwm (and maybe a bit dzen) into something like this. This is probably how dwm is meant to be used.

NP: LCD Soundsystem—Get Innocuous

21, 025, 0x15

Sat Aug 16 16:14:51 +0200 2008

The twenty-first year of my struggle against entropy went by. Swoosh. Tempus fugit. Ars longae, vita brevis. Memento mori.

How’s life? Homeostasis, check. Organization, check—at least organically. Metabolism, sure. Growth, done. Adaptation, check—still possible. Response to stimuli, ‘course. Reproduction, rather not.

Maybe that’s what life is… a wink of the eye and winking stars.

when asked t’ define yourself exactly, say you are an exact mathematician.

On related news, congratulations to Madonna and Debian.

NP: Ernest Phipps & His Holiness Singers—Shine On Me

Taming $RUBYLIB with the Z shell

Fri Aug 08 13:10:24 +0200 2008

Ok, I’m fed up. Writing a good package manager for Ruby is a fight against windmills.

So let’s do the easiest thing that could possibly work. Redefining Kernel#require is a no-go, for it will lead to the gates of hell. Installing multiple projects to the same location is error-prone, requires non-trivial amounts of code and introduces packaging effort.

Luckily, most packages these days run directly from a checkout or their released archives (and if you provide neither, you’re doing it wrong). Essentially, all you need to make it convenient setting and manipulating $RUBYLIB, “A colon-separated list of directories that are added to Ruby’s library load path ($:).” The Z shell (1, 2) to the rescue!

Add this to your .zshrc (or .zshenv, if you want it in non-interactive shells as well):

# unique, exported, tied array of $rubylib to colon-seperated $RUBYLIB
# 08aug2008  +chris+
typeset -T -U -gx -a RUBYLIB rubylib ':'
rubylib-add()   { rubylib+=("$@") }
rubylib-del()   { for i ("$@") { rubylib[(r)$i]=() } }
rubylib-reset() { rubylib=(); [[ -f ~/.rubylib ]] && source ~/.rubylib }
rubylib-reset

This creates a zsh array rubylib which value reflects $RUBYLIB and vice versa (zsh does the same for $PATH and $MANPATH, for example), and defines three functions to add and remove paths as well as reset the variable.

Also, create a file ~/.rubylib where you set the defaults. I simply use:

rubylib-add ~/projects/{testspec,bacon,rack}/lib
rubylib-add ~/src/{camping,markaby}/lib

Remember, you can use the full power of zsh to set this:

rubylib-add ~/src/rubystuff/*/(lib|ext)(/)

You need to use (x|y) instead of {x,y} here to only expand to existing files. The final (/) ensures these files really are directories.

Reload your .zshrc, and voila, your packages are accessible from every Ruby script. Now, if a project has different requirements, just create a script there to adjust $RUBYLIB. Or use vared to interactively change the load path.

[Thanks to et for improving rubylib-del.]

NP: Curve—Dirty High

SchützaBlog 2008: Danksagung

Sun Jul 20 14:44:00 +0200 2008

Dank an Peter Zimmermann, Datenschutzbeauftragten des Landes Baden-Württemberg für sein Eingreifen.

Dank an die Schweden für ihr Eintreten für Grundrechte.

Dank an Pfizer für die Forschung, die zur Entdeckung des Doxycyclins führte.

Dank ans Doxycyclin, das einen an Schützen erheblich Geld sparen lässt.

Dank an die Bäckerei Eisinger fürs Frühstück.

Dank an Izmir Pizza & Döner fürs Abendessen.

Dank an Norbert Gälle für den Böhmischen Traum.

Dank an alle, die auch Montag, Dienstag, Mittwoch da waren.

Unwort des Jahres: wasserdicht.

Bis nächstes Jahr wünsch’ ich euch eine
Scheene Restschütza!

NP: Cinema Strange—Mathilde in the Dirt

SchützaBlog 2008: Weiberschützen

Fri Jul 18 13:23:58 +0200 2008

Schützenfest in Bild und Ton:

Wenn ich träum in der Nacht
träum ich immer von dir.
Du bist der Stern in dieser schönen Nacht,
und der Stern sagt zu mir ich bleib gerne bei dir,
bis dass der Morgen erwacht.
—Böhmischer Traum

NP: The Danse Society—Don’t Stop Now

SchützaBlog 2008: Aufruf

Wed Jul 16 11:53:09 +0200 2008

Sehr geehrte Damen und Herren,
liebe Biberacher und Biberacherinnen,

Schützen ist nur einmal im Jahr. Bitte geht auf den Berg.

Danke,
Christian Neukirchen

NP: Fields of the Nephilim—Mourning Sun

SchützaBlog 2008: Bunter Umzug

Mon Jul 14 11:59:02 +0200 2008

The same procedure as last year, Miss Sophie?The same procedure as every year, James!

Die Motivation der Schüler beim Bunten Umzug ist ja immer recht fraglich. Hier daher einige Vorschläge, die vielleicht mehr Spass gemacht hätten:

  • Wir roden den Regenwald
  • Firefox 3
  • DopingEine Klasse der DRS hatte “Anna Bolika”. Und ich wartete soo auf den Muskel-Kater.
  • Bahnstreik
  • Wir boykottieren die OlympiadeDas WG hatte ein Free-Tibet-Schild.
  • Legalize it
  • H.P. Lovecraft
  • Narkolepsie
  • Hedonismus

Übrigens hat in roten Tüchern rumlaufen nix mit Türkei zu tun.

Scheene Schütza!

NP: Corpus Delicti—Sylphes

SchützaBlog 2008: Pfingstochsen

Sun Jul 13 12:14:33 +0200 2008

Wenn man den Jahrgängerumzug sieht, will man gar nicht alt werden.

…übrig bleibt der fahle Nachgeschmack einer Konsumgesellschaft voller überflüssiger Angelizismen.

Was macht eigentlich Biberach im Web 2.0? Weder auf Youtube noch auf Flickr find ich irgendwas von diesen Schützen…

Scheene Schütza!

NP: The Sisters of Mercy—More

SchützaBlog 2008: Es geht los

Sat Jul 12 12:52:17 +0200 2008

Zwei kurze Szenen vom Berg:

Ein kleines, dickes Mädchen kommt zur Frittenbude mit einer leeren Pappschale in der Hand und fragt: Kann ich Mayo haben?Nimm dir, so viel du willst.

Ein Mädchen, vielleicht 16 oder 17, nimmt ihrem Freund (wohl etwas älter) die Martini-Flasche weg, leert sie aus und brüllt: Jetzt gibts nix mehr! Du blamierst mich nicht mehr in der Öffentlichkeit! (Tipp: nicht heiraten, wer weiss wie die in 30 Jahren drauf ist.)

Desweiteren fordere ich die Schützendirektion auf, Schützen auf den alten Termin mit gutem Wetter zurück zu verlegen.

Und noch ein Nachtrag zu gestern: Schützen 2022.

Mag es soweit nicht kommen,
Scheene Schütza!

NP: London After Midnight—Kiss

SchützaBlog 2008: Kamerascheu

Fri Jul 11 11:24:15 +0200 2008

Wer das Schützenfest kennt, weiss: Ganz Biberach steht jetzt jedenfalls kurz vor der absoluten Extase und einer Woche ungehemmten Alkoholgenusses—ganz Biberach? Nein, der Autor dieser Worte musste natürlich letzten Monat von einer Zecke gestochen werden, ist seitdem auf Doxy und darf daher nix trinken. Fertig ist das ganze hoffentlich am “Bauernschützendienstag”. Super.

Das soll jedoch der Berichterstattung hier nicht schaden, ganz im Gegenteil: Frei nach dem Motto der Journaille—Eure Gunst, unser Sterben—gibts hier täglich knallharte Information vom Berg. Und diesmal werd ich mich auch noch an alles erinnern können.

In letzter Minute müssen die Kameras halt doch weg, wer hätte das gedacht? Hatten wir das nicht schon mal? Nix gelernt. Der beste Teil: Bott “vermutet, dass “hier absichtlich mit der Zeitschiene gefahren wird. Man versucht, die Dinge aufzuschieben.”” Also wenn hier jemand auf Zeit spielt, dann war das ja wohl die Stadt. Die Methode war ja schon fraglich und wurde zu Recht kritisiert.

Ich freue mich jedenfalls schon auf eine
Scheene Schütza!

NP: A Place To Bury Strangers—Missing You

Entlassungsschreiben

Mon Jun 30 18:28:44 +0200 2008

Nach Vollendung der Dienstzeit erhält der anerkannte Kriegsdienstverweigerer seine Grundrechte zurück.

Das eigentliche Dilemma des Zivildienstleistenden ist ja, dass er durch seine Verweigerung den Fortbestand der Wehrpflicht unterstützt. Gegen diesen Missstand treten nur die handvoll Totalverweigerer – deren Mut und Entschlossenheit mir Respekt abverlangt – an.

Gegen den Zivildienst als solches spricht eigentlich nichts, vieles aber gegen seine derzeitigen Umstände: Sei es die sogenannte Wehrgerechtigkeit, die resultierende Geschlechterspezifität, oder schlicht dessen Unfreiwilligkeit. Meines Erachtens sollte daher der Zivildienst in einem gleichartig bezahlten, freiwilligen und allgemeinen sozialen (oder ökologischen oder was auch immer) “Jahr” (durchaus auch mit flexibler Dauer) aufgehen. Interessenten fänden sich genug.

Nichtsdestotrotz eine annehmliche, erfahrungsreiche und durchaus prägende Zeit.

Achja, dict.cc:

[conscientious objector performing community service] :: Zivildienstleistender {m}

NP: Bob Dylan—Masters Of War

Heboris

Thu May 22 16:13:58 +0200 2008

Drop your productivity as fast as the tetrominoes fall!

If you think Tetris is a simple game, let me refer you to TetrisConcept, a wiki which aims “to compile every Tetris detail known to mankind.” Due to tricks like t-spins and other tactical rotations, the game becomes rather delicate.

Reading Tetris the Grand Master: A gameplay essay is a good way to learn about this.

Heboris Unofficial expansion is the best and most flexible version of Tetris I ever saw. It supports nine different rotation systems and a magnitude of different modes (especially really fast ones), while almost everything can be configured.

It was a bit tricky to get running on OS X, so here are the instructions:

  • Acquire hebo0019.zip. This version works fine on Windows.

  • Acquire the OS X binary.

  • From MacPorts, install libsdl-framework, libsdl_mixer-framework, and libsdl_image-framework.

  • Copy Heboris.app from the latter .zip into the former’s exe/ directory.

  • Edit heboris.ini and change it to “english = 1;” to replace most of the japanese.

Run Heboris.app and enjoy! By default, the cursor keys move and Z/Y, X, C are the action buttons (No idea where Hold is, rebind it to V maybe).

If you want to play against CPU, you need to define key bindings, enable the CPU for the second player in the Option menu and then configure the second player using his keys—the CPU will just play for it.

NP: Liars—Plaster Casts of Everything