Auch dieses Jahr habe ich meine Photos des vergangenen Jahres nochmal Revue passieren lassen und die besten ausgesucht. Um meine Bilder besser präsentieren zu können habe ich mir allerdings das auf Photos spezialisiertes CMS (Content Management System) Koken auf einer anderen Domain installiert. Ab sofort gibt es also unter HAL.de in unregelmäßigen Abständen Photos von mir zu sehen. Fangt am besten mit meinen Best of 2014 an.
Archive for the ‘deutsch’ Category
Meine zwölf besten Photos aus 2014
Montag, Januar 12th, 2015E-Mails einer Mailbox neu zustellen
Samstag, März 22nd, 2014
©Rosa Rotkraut / photocase.com
- nach Empfänger in der eMail
-
formail -s sendmail -t < mailbox
- an eine bestimmte Adresse
-
formail -s sendmail recipient@example.com < mailbox
Wie ich mir die Zukunft vorstelle…
Montag, März 17th, 2014In letzter Zeit gibt es immer mehr sogenannte SmartWatches, die als Zubehör zum Telefon (Smartphone) fungieren sollen. Dies hat mich daran erinnert, dass ich schon in den 90ern eine Vision hatte, wie die Zukunft der Informationstechnologie aussehen könnte.
Es begann mit einem Palm III

© knallgrün / photocase.com
Damals besaß ich meinen ersten PDA (Personal Digital Assistant), einen Palm III. Für mich als Oberstufenschüler war das ein seltsames Gefühl, ein so teures Gerät quasi täglich mit mir herumzuschleppen. Trotz seiner im Rückblick ziemlich eingeschränkten Kommunikationsfähigkeit war es faszinierend – mein digitales Adressbuch, topaktuell wenn ich daran gedacht hatte ihn mit meinem PC zu synchronisieren. Dazu noch die Möglichkeit, Notizen, meinen Kalender, und diverse kleinere Programme auch unterwegs zu nutzen.
Ergänzt wurde das ganze durch eine Armbanduhr, eine Timex DataLink. Diese Uhr hatte mein Vater von einer USA-Reise mitgebracht, auch sie konnte man mit dem PC synchronisieren – Kabellos. Man musste nur die entsprechende Software starten, die Uhr in den Synchronisationsmodus schalten, und vor den Bildschirm halten. Dann blitzten Linienmuster auf, in denen alle Informationen kodiert waren, die von der Uhr per Photodiode erfasst wurden.
Einziges Manko war, dass der PC zu Hause immer noch der Dreh- und Angelpunkt der Information war. Es gab keine Möglichkeit, im Palm etwas einzutragen, und später unterwegs per Armbanduhr auf die Information zuzugreifen, es sei denn man hatte zwischendurch synchronisiert. Mobiles Internet und Daten in der Cloud waren damals noch Utopie, und auch heute würde ich gerne ohne auskommen.
Die Vision
Daraus erwuchs mit der Zeit folgende Idee: Der Palm war ein hervorragendes Anzeige- und Eingabegerät. Der PC war noch ein bisschen besser für solche Zwecke geeignet. Die Uhr eignete sich nur zum rudimentären anzeigen, aber alle benötigten einen Speicherplatz für meine Informationen.
Aber wieso brauchte jedes Gerät einen eigenen Speicherplatz? Konnte man das nicht optimieren, um das ewige hin-und-hersynchronisieren zu vermeiden? Ich stellte mir vor, die Armbanduhr hätte ausreichend Speicher, um meine Daten aufzunehmen. Sie hätte ich immer dabei, und könnte zumindest die Daten anzeigen, eine Telefonnummer nachschlagen, was vor dem Handyzeitalter durchaus mal vorkam, wenn man z.B. bei Freunden telefonieren wollte, oder eine der damals noch zahlreichen Telefonzellen benutzen musste. Sie könnte mich an Termine erinnern, und meine Notizen anzeigen.
Sollte ich gerade auch meinen Palm zur Hand haben, könnte dieser auf die Daten der Armbanduhr zugreifen, sie anzeigen und mir ermöglichen sie zu bearbeiten. Um das Display zu betreiben, hätte der Palm eine eigene Stromversorgung, wäre diese erschöpft fiele halt ein Eingabegerät weg.
Am PC könnte ich ebenso auf diese Daten zugreifen, vielleicht sogar die Uhr als Datenträger verwenden, anstatt immer eine 3,5″-Diskette in der Jackentasche dabeizuhaben.
Umsetzung heute

© kallejipp / photocase.com
Die Verbindung könnte per Bluetooth erfolgen, zusätzlich könnte man mit der Cloud synchronisieren. Die Armbanduhr könnte als Authentifizierungsmerkmal benutzt werden, per NFC als Zahlungsmittel dienen oder als RFID-Transponder beim CarSharing das Fahrzeug öffnen.
Unter diesen Umständen könnte ich mir vorstellen, wieder eine Armbanduhr zu tragen. Dies habe ich mir damals abgewöhnt, weil mir der Palm und später mein Handy als Taschenuhr vollkommen ausgereicht hat. Aber eine sogenannte SmartWatch, die verblödet, sobald das Telefon ausser Reichweite ist, kann ich mir nicht vorstellen.
Meine zwölf besten Photos aus 2013
Donnerstag, Januar 9th, 2014Auch dieses Jahr möchte ich wieder die Zeit nutzen um einen Blick auf das vergangene Jahr zu werfen und eine Auswahl meiner Photos des Jahres zu machen.
Rewrite-Rules für GET-Parameter
Montag, Juli 15th, 2013Manchmal steht man vor dem Problem, dass eine Website auf ein neues oder anderes Content Management System (z.B. Joomla! oder WordPress) umgestellt wird, man aber die alten URLs per Redirect auf die neuen umleiten möchte, z.B. um weiterhin per Google gefunden zu werden.
Intuitiv würde man dann Rewrite-Regeln wie die folgenden schreiben:
RewriteRule ^start/$ /start.html [R=301,L] RewriteRule ^index.php?page=imprint$ /imprint.html [R=301,L]
Die erste Regel funktioniert auch problemlos, die zweite allerdings nicht, weil die Parameter eines Requests nicht an der Stelle mit ausgewertet werden. Daher muss man anstelle dieser Regel mit einer Bedingung vorweg arbeiten:
RewriteCond %{QUERY_STRING} ^page=imprint$ RewriteRule ^index.php$ /imprint.html? [R=301,L]
HTTP mit Redirect auf Kommandozeile
Samstag, Juni 8th, 2013Ich habe vor längerer Zeit mal beschrieben, wie man per Telnet oder Netcat einen HTTP-Request ausführen kann. Noch besser geht dies mit dem Perl-Tool lwp-request. Unter Linux findet man die Befehle GET und HEAD, aufgrund der fehlenden Case-Sensitivität gibt es diese nicht unter MacOS X. Behelfen kann man sich mit diesen beiden Alias-Definitionen:
alias GET='lwp-request -m GET' alias HEAD='lwp-request -m HEAD'
Dann hat man die Möglichkeit, eine Seite abzurufen:
$ GET http://www.example.com
Will man die Header einer Antwort überprüfen ist das HEAD-Kommando nützlich:
$ HEAD http://www.example.com 200 OK Connection: close Date: Sat, 08 Jun 2013 11:19:20 GMT Accept-Ranges: bytes ETag: "780602-4f6-4db31b2978ec0" Server: ECS (iad/1984) Content-Length: 1270 Content-Type: text/html; charset=UTF-8 Last-Modified: Thu, 25 Apr 2013 16:13:23 GMT Client-Date: Sat, 08 Jun 2013 11:19:21 GMT Client-Peer: 93.184.216.119:80 Client-Response-Num: 1 X-Cache: HIT
Will man allerdings auch sehen, ob eine Weiterleitung korrekt funktioniert und ob es ein permanenter Redirect ist, benötigt man den Parameter -S:
$ HEAD -S http://www.example.com HEAD http://www.example.com 302 Found HEAD http://example.iana.org 200 OK Connection: close Date: Sat, 08 Jun 2013 11:20:09 GMT Accept-Ranges: bytes ETag: "780602-4f6-4db31b2978ec0" Server: ECS (iad/1984) Content-Length: 1270 Content-Type: text/html; charset=UTF-8 Last-Modified: Thu, 25 Apr 2013 16:13:23 GMT Client-Date: Sat, 08 Jun 2013 11:20:10 GMT Client-Peer: 93.184.216.119:80 Client-Response-Num: 1 X-Cache: HIT
DSLR Vergleich Crop-Kamera mit Vollformat
Donnerstag, April 4th, 2013Bei digitalen Spiegelreflexkameras (DSLR) gibt es Unterschiede in der Größe des Bildsensors. Ausgangspunkt ist das “normale” Kleinbild-Negativ mit 24x36mm, dies nennt man auch Vollformat. Günstigere Kameras haben hingegen einen kleineren Crop-Sensor, angelehnt an das APS-Format. Neben Qualitativen Unterschieden bezüglich Rauschempfindlichkeit bringt der größere Bildsensor mit sich, dass auch die Objektive einen größeren Bereich abdecken müssen.
Ich möchte hier ein paar Beispielphotos zeigen, die ich mit einer Kamera mit Crop-Faktor 1.6x (Canon EOS 300D) und einer mit Vollformat-Sensor (Canon EOS 5D MarkIII) gemacht habe. Die verwendeten Objektive sind das Tamron SP AF 10-24mm sowie das Canon 17-40mm, da man besonders bei dem Tamron-Objektiv sehen kann, was es bedeutet wenn ein Objektiv eben nicht für Vollformat geeignet ist.
Vorab eine Warnung: Objektive für Vollformat-Kameras haben ein EF-Bajonett. Die meisten Objektive, die für Crop-Kameras gedacht sind, haben ein EF-S Bajonett. Hierbei darf ein Teil des Objektivs weiter in die Kamera hineinragen, als bei dem EF-Bajonett. Wer also ein EF-S-Objektiv an einer Vollformat-Kamera anbringt, läuft Gefahr dass der Spiegel beim Auslösen an das Objektiv anschlägt und beschädigt wird. Das Tamron 10-24mm Objektiv ist zwar nicht für Vollformat-Sensoren ausgelegt, ist aber EF-Konform, und kann damit gefahrlos an einer Vollformat-Kamera benutzt werden. Weitere Infos hierzu gibt es bei Wikipedia.
Nun zu den Bildern. Da es hier ausschließlich um die Abbildungsverhältnisse geht habe ich kein besonderes Motiv ausgewählt, sondern einfach vom Balkon photographiert. Auch die Belichtung ist nicht bei allen Photos optimal.
Tamron 10-24mm an Canon EOS 300D
An der Crop-Kamera macht das Tamron 10-24mm Objektiv gute Bilder. Die scheinbare Brennweite aufgrund des Crop-Faktors beträgt ca. 16-38mm.
Tamron 10-24mm an Canon EOS 5D MarkIII
An der Vollformat-Kamera sieht man erstmal bei 24mm (linkes Bild) den größeren Bildausschnitt. Wenn man nun auf 10mm herauszoomt, dann erkennt man den Schwachpunkt dieses Objektivs an einer Vollformat-Kamera. In den Ecken erscheint eine Vignettierung, die ab ca. 15mm beginnt. Es entsteht ein Eindruck ähnlich eines Fisheye-Objektivs. Wenn man nun noch die Streulichtblende aufsetzt wird klar, dass das Objektiv nicht für diesen Einsatz gedacht ist.
Canon 17-40mm an Canon EOS 5D MarkIII
Anders sieht die Sache aus wenn man ein Objektiv verwendet, das für Vollformat konzipiert ist. Hier ist der gesamte Zoom-Bereich ohne sichtbare Vignettierung nutzbar. Der Bildausschnitt entspricht ziemlich genau dem des 10-24mm Objektivs an der Crop-Kamera.
Canon 17-40mm an Canon EOS 300D
Der Vollständigkeit halber hier noch die Bilder vom Canon 17-40mm Objektiv an der Crop-Kamera. Durch den kleineren Bildsensor ergibt sich eine rechnerische Brennweite von ca. 27-64mm.
Meine zwölf besten Photos aus 2012
Dienstag, Januar 29th, 2013Ursprünglich sollte dieser Beitrag wie im letzten Jahr zehn Photos enthalten – ich konnte mich aber nicht entscheiden und habe deshalb zwölf ausgewählt.
MySQL Connect Errors provozieren
Samstag, Januar 26th, 2013Manchmal meldet ein MySQL-Datenbankserver den Fehler
ERROR 1129 (HY000): Host '192.0.1.47' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
Das ist eine klare Fehlermeldung, mit einer einfachen Handlungsanweisung. Kürzlich wollte ich aber genau diesen Fehler auf einem Server absichtlich provozieren. Hierzu muss man einfach eine TCP-Verbindung zum Datenbankserver öffnen, und darüber ungültige Daten senden. In einer Schleife ausgeführt ist dies schnell erledigt:
for i in $(seq 1 200) ; do nc 192.0.1.47 3306 <<< "foobar"; done
DNS-Einträge automatisch erzeugen mit BIND
Donnerstag, Januar 10th, 2013Da grundsätzlich jede statisch oder dynamisch vergebene IP-Adresse eine funktionierende DNS-Auflösung haben sollte, bietet sich neben einem Skript, das solche Einträge erzeugen könnte, die Makro-Funktion des BIND Nameservers an. Hiermit kann man automatisch passende Einträge erzeugen lassen:
Forward-Zone example.com:
$GENERATE 42-47 static-192-0-2-$ A 192.0.2.$
Reverse-Zone 2.0.192.in-addr.arpa:
$GENERATE 42-47 $ PTR static-192-0-2-$.example.com.