Auch 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.
Meine zwölf besten Photos aus 2013
Januar 9th, 2014Rewrite-Rules für GET-Parameter
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
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
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
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
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
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.
Speicherverbrauch per Linux-Kommandozeile
April 22nd, 2012Ein kurzer Tipp zwischendurch: Wenn eine Partition unter Linux voll ist und man herausfinden möchte, wo der Speicherplatz geblieben ist, hilft diese Kommandozeile. Sie gibt für alle Unterverzeichnisse des aktuellen Verzeichnisses, wie viel Platz sie belegen — aufsteigend sortiert:
du -s * .??* | sort -n | cut -f 2 | xargs du -sh
Meine zehn besten Photos aus 2011
Januar 18th, 2012Eine gute Idee auf die mich die Digital Photography School mit ihrem Posting 289 “Best Photos of 2011” gebracht hat: Das vergangene Jahr nochmal Revue passieren zu lassen indem man seine besten Photos heraussucht. Hier also mein persönliches Best-Of:
Wartungsarbeiten
Dezember 29th, 2011Manchmal haben wir als Webhoster die Diskussion, ob und wann Wartungsarbeiten akzeptabel sind. Da es hier oft unterschiedliche Ansichten gibt habe ich mittlerweile eine kleine Sammlung von Wartungsseiten, um zu zeigen dass es keine Schande ist, ab und zu seine Seite offline zu schalten um in Ruhe Änderungen vorzunehmen.
RIPE:
Dear colleagues, To allow us to update the software behind the RIPE NCC website and RIPE Labs, functionality on these sites will be reduced between 15:00 and 19:00 (UTC) today, 28 June 2011. During this time, the sites will remain available. However, they will be in "read only" mode. Search functionality will be unavailable, and it will not be possible to comment on articles or join in discussions. We apologise in advance for any inconvenience this might cause. If you have any questions about this maintenance work, please contact webmaster@ripe.net.