A RailsConf Europe 2008 diary... NOT
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
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
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
For the following, I assume: a non-small monitor (19" or more), use of a
convenient mouse.
Desktop icons are dead. Why hide the important stuff behind all
the windows?
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.
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.
Windows rarely get resized or moved once they have found their own
position and size. Applications need to save their size and position.
Manual, effortless window managment is superior to automatic, but
wrong arrangements.
It follows from (2), (3), (4), (5) that tiling has no real benefit.
There should be no distinction between starting an application and
switching to it.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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