Stöckchenkatapult

Wow, damit hatte ich nun gar nicht gerechnet. Mein Artikel über die Etymologie der Wochentage scheint ja auf großes Interesse gestoßen zu sein. Ich wurde gefragt, ob ich nicht auch was über den Ursprung des 24-Stunden-Tages oder der Monatsnamen schreiben könnte. Obwohl ich der Idee, etwas darüber zu schreiben, nicht abgeneigt wäre, fände ich es viel interessanter, wenn einfach andere Blogger mal etwas in diese Richtung schreiben könnten. Ich möchte also andere Blogger auffordern, etwas über alltägliche Phänomene zu schreiben, über die wir uns sonst kaum Gedanken machen, doch deren Ursache nur den Wenigsten bekannt ist. Also eine Art Sendung mit der Maus, bei der wir die Maus sind. :)

Ich katapultiere diese Stöckchen mal rüber zum Jörn, Rembrandt und Phaidros. Macht was daraus, Jungs!

Wochentage, Etymologie für Anfänger

Manchmal bin ich ein wenig erschrocken darüber, mit welchen Themen ich mich so beschäftige. Nachdem mir ein Bekannter sein Audiobuch über die Geschichte der englischen Sprache lieh, bin ich total von der Entwicklung unserer Sprache fasziniert. Auf der Suche nach etwas ähnlichem über die deutsche Sprache, bin ich über die Etymologie der Wochentage gestolpert.

Woher kommen also die Bezeichnungen der Wochentage? Die Griechen und Römer benannten ihre Wochentage (meistens) nach ihren Göttern. Als die germanischen Völker dieses System übernahmen, ersetzten sie die Götter — soweit möglich — durch die germanischen Äquivalente. Heraus kamen unsere Wochentage:

Montag
Lateinisch hieß der Montag Dies Lunae (lat. Luna, Mond). Viele europäische Sprachen haben also Referenzen auf den Mond in ihrem Montag.

  • französisch: lundi
  • italienisch: lunedi
  • spanisch: lunes
  • englisch: monday
  • niederländisch: maandag
  • dänisch: mandag
  • schwedisch: måndag
Dienstag
Der Dienstag (lat. Dies Martis) war bei den Römern dem Gott Mars geweiht. Die Germanen ersetzten Mars durch Tyr (manchmal auch als Tiu/Ziu/Tiwas bezeichnet). Im der deutschen Sprache (und vermutlich auch in der niederländischen) hat sich eine Bezeichnung durchgesetzt, die auf Tyrs Beinamen Thingsus zurück. In einigen europäischen Sprachen ist noch die ursprüngliche Referenz auf Mars im Dienstag verblieben.

  • französisch: mardi
  • italienisch: martedi
  • spanisch: martes
  • englisch: tuesday
  • niederländisch: dinsdag
  • dänisch: tirsdag
  • schwedisch: tisdag
Mittwoch
Die Römer nannten den Mittwoch Dies Mercurii. Die Germanen ersetzten Merkur durch ihren Gott Odin (Wodan). Die deutsche und einige slavische Sprachen haben hier einen eigenen Weg beschritten. Ursprünglich begann die Woche mit dem Sonntag (in den USA immer noch). Damit war der Mittwoch tatsächlich die Mitte der Woche. Auch im Polnischen heißt es środa (poln. środa, Mitte). Die übrigen Sprachen sind bei Referenzen auf Merkur oder Odin geblieben.

  • französisch: mercredi
  • italienisch: mercoledi
  • spanisch: miércoles
  • englisch: wednesday
  • niederländisch: woendag
  • dänisch/schwedisch: onsdag
Donnerstag
Donnerstag hieß bei den Römern Dies Iovis und war dem Gott Jupiter geweiht. Jupiter war für Blitz und Donner zuständig. Die Germanen hatten eine Gottheit, die auch mit Blitz und Donner assoziiert wurde: Thor. Somit haben die Wochentage in den europäischen Sprachen meist eine Referenz auf Jupiter, Thor oder Donner.

  • französisch: jeudi
  • italienisch: giovedi
  • spanisch: jueves
  • englisch: thursday
  • niederländisch: donderdag
  • dänisch/schwedisch: torsdag
Freitag
Auch wenn es viele gerne so hätten, der Freitag hat nichts mit frei haben zu tun. :) Die Römer nannten den Freitag Dies Veneris nach der Göttin Venus. Venus wurden bei den Germanen zur Frigg (althochdeutsch Frîja, langobardisch: Frea). Somit hat der Freitag in den europäischen Sprachen immer eine mehr oder minder versteckte Anspielung auf Frigg oder Venus.

  • französisch: vendredi
  • italienisch: venerdi
  • spanisch: viernes
  • englisch: friday
  • niederländisch: vrijdag
  • dänisch/schwedisch: fredag
Samstag/Sonnabend
Im Deutschen gibt es gleich zwei Bezeichnungen für diesen Wochentag. Die Bezeichnung Sonnabend wird als meist als Vorabend des Sonntags gedeutet. Für Samstag muß man wohl wieder die alten Römer bemühen, die diesen Tag Dies Saturni nannten. Da die Germanen scheinbar keine Entsprechnung zum Gott Saturn hatten, hat der Samstag in den meisten europäischen Sprachen eine Referenz auf Saturn.

  • französisch: samedi
  • italienisch: sabato
  • spanisch: sábado
  • niederländisch: zaterdag
  • englisch: saturday (ganz offensichtlich)
  • schwedisch: lördag
  • dänisch: lørdag

Interessant ist, daß das dänische lørdag auch Waschtag bedeutet. In Deutschland galt der Samstag auch als Badetag.

Sonntag
Im Latein hieß es Dies Solis (lat. sol, Sonne) oder auch Dominica (Tag des Gottes). In den europäischen Sprachen findet sich also immer eine Anspielung auf diese Namen.

  • französisch: dimanche
  • italienisch: domenica
  • spanisch: domingo
  • englisch: sunday
  • niederländisch: zondag
  • dänisch: søndag
  • schwedisch: söndag

Ich sollte an dieser Stelle anmerken, daß ich weder Germanistik noch irgendeine andere Sprache studiere. Ich hatte auch nie Latein gelernt. Außer Deutsch, Englisch und ein wenig Polnisch spreche ich auch keine weiteren Sprachen. Sollte ich hier irgendwelche Fehler gemacht haben, so wäre ich für Hinweise dankbar.

Update: Die spanische Schreibweise von „sábado“ korrigiert. Danke Andrea für den Hinweis.

Schriftwahl für Programmierer

Ein Nicht-Programmierer wird vermutlich nicht verstehen können, wie eigensinnig ein Softwareentwickler bei der Wahl der richtigen Schrift für seinen Texteditor sein kann. Ein Programm soll nicht nur gut funktionieren, auch der Programmcode soll schön aussehen. Und da spielt die Schrift eine entscheidende Rolle. Gerade heute fielen mir gleich 2 Artikel in meinem Feed-Reader auf, die sich mit diesem Thema beschäftigen. More Fonts und TextMate Fonts. Ich habe mich also auf meiner Platte umgeschaut, was ich so an Entwicklertauglichen Schriften installiert habe. Hier meine Auswahl:

Andale Mono
Andale Mono (Teil des Microsoft Core Fonts Pakets)
Lucida Sans Typewriter
Lucida Sans Typewriter (mitgeliefert bei Mac OS X)
Consolas
Consolas (mitgeliefert bei Windows Vista)
Inconsolata
Inconsolata
image
Monaco (mitgeliefert bei Mac OS X)
image
DejaVu Vera Sans Mono
image
Courier (mitgeliefert bei Mac OS X)
image
Courier New (mitgeliefert bei Mac OS X und Windows)

Die letzten beiden habe ich als abschreckende Beispiele aufgeführt. Für welche Schrift man sich letztenendes entscheidet ist eine sehr persönliche Geschmackssache. Ich werde wohl weiterhin bei Monaco bleiben.

Nachtrag: Es gibt einen Trick, um Consolas und andere Vista-only Fonts (außer Segoe UI) ohne Vista zu bekommen.

SQL ohne Schleifen

Manche Aufgaben schreien geradezu danach, mit Schleifen gelöst zu werden. In SQL ist dies selten nötig. In meinem Beispiel wollten wir für jeden Monat des letzten Jahres die Häufigkeit eines bestimmten Ereignisses errechnen um es graphisch darzustellen. Mein Kollege, der an dieser Stelle besser anonym bleiben möchte, schlug schon vor, die Abfrage 12× mit unterschiedlichen Bedingungen abzuschießen.

Mir fiel ein, daß PostgreSQL über Funktionen verfügt, mit denen man aus einem Datum Jahr/Monat/Tag (und einiges Mehr) extrahieren kann. Die Funktion heißt sinnvollerweise extract. Damit kann man das Problem mit einer einzigen Abfrage erschlagen. Dies sieht dann so aus:

SELECT EXTRACT(month FROM created_on) AS month, COUNT(*) AS occurences
FROM my_event_log
WHERE EXTRACT(year FROM created_on)=2006
GROUP BY EXTRACT(month FROM created_on)
ORDER BY EXTRACT(month FROM created_on)

Dies läßt sich auch prima in Rails verwenden.

events = MyEventLog.count(:conditions => [ "EXTRACT(year FROM created_on)=?", 2006],
                          :group => "EXTRACT(month FROM created_on)",
                          :order => "EXTRACT(month FROM created_on)")

Es sollte an dieser Stelle jedoch nicht unerwähnt bleiben, daß durch die Verwendung von Funktionen wie extract in Verbindung mit ActiveRecord, der datenbankagnostische Aspekt von ActiveRecord verloren geht, da nicht alle Datenbanken die gleichen Funktionen unterstützen. Aber vermutlich ist datenbankagnostische Programmierung eh eine utopische Vision.

Zeig mir deinen Shell-Prompt

Wo ich gerade bei den Shells bin. Hier ein Stückchen Exhibitionismus. Mein Shell-Prompt sieht so aus:

fastjack@Aphrodite:~% 

Jepp, völlig langweilig. Keine Farben, keine Uhrzeit, keine Spielereien. Der Prompt-String sieht übrigens so aus:

PS1='%(?..<%?>)%n@%m:%3~%# '

Ich benutze übrigens die zsh. Ich will also keine Mails erhalten, weil der Prompt-String in der bash nicht funktioniert-

Shell-Tricks

Alte Shell-Junkies werden vermutlich darüber gähnen, doch den meisten Einsteigern dürfte diese Funktionalität unbekannt sein. Möchte man größere Verzeichnishierarchien in der Shell anlegen, so kann man sich von der Shell viel Arbeit abnehmen lassen. Am einfachsten mit einem Beispiel verdeutlichen.

Ich möchte für Virtuelle Hosts meines Apache-Servers eine Verzeichnishierarchie erstellen, die am Ende so aussehen soll:

/var/www/vhosts/www.foo.com
/var/www/vhosts/www.foo.com/html
/var/www/vhosts/www.foo.com/html/cgi-bin
/var/www/vhosts/www.foo.com/log
/var/www/vhosts/www.bar.com
/var/www/vhosts/www.bar.com/html
/var/www/vhosts/www.bar.com/html/cgi-bin
/var/www/vhosts/www.bar.com/log
/var/www/vhosts/www.baz.com
/var/www/vhosts/www.baz.com/html
/var/www/vhosts/www.baz.com/html/cgi-bin
/var/www/vhosts/www.baz.com/log

In der zsh sowie in der bash kann ich das mit einem einzigen Befehl erledigen:

mkdir -p /var/www/vhosts/www.{foo,bar,baz}.com/{log,html/cgi-bin}

Ja, das ist alles. Die mühselige Arbeit erledigt die Shell. Nutzer der zsh können sich mit der Tab-Taste vor dem Ausführen des Befehls anzeigen lassen, wie die Shell diesen Befehl expandiert. Um die expansion wieder rückgänging zu machen, genügt ein Druck auf ^_. (Das ^ steht für die Control/Steuerung-Taste)