Archiv für den Monat: Oktober 2012

Zend Studio 9.0.4 ist da

… und keiner sagt einem was 😉

Eine offizielle Ankündigung fehlt, mir fiel das lediglich über die Updatefunktion auf, dass da grade nicht nur eine Menge Plugins auf den neuesten Stand gebracht werden, sondern auch das ganze Studio dazu.

Die Release- oder auch Patchnotes findet ihr hier:
http://static.zend.com/topics/Zend-Studio-9-0-4-Release-Notes.txt

Für mich persönlich lohnt es sich, denn endlich funktioniert die Verbindung zwischen Zend Studio und Jenkins und ich kann alle Reports direkt aus der IDE sehen und teilweise auch bearbeiten. Das gilt vor allem für die Fehlermeldungen aus phpunit oder phpcs, die ich nun direkt in ein Seitenfenster der IDE legen kann und per Klick direkt zur betroffenen Codestelle komme.

Ein ganz klares plus an Produktivität. Morgens baut Jenkins das gesamte Projekt während ich Kaffee koche, dann kann ich den Tag über die Fehler, Warnungen, Notizen usw. abarbeiten oder gemütlich an neuen Features arbeiten … oder endlich mal die „coverage“ auf einen guten Wert bringen 😉

Also, viel Spaß mit der „neuen“ IDE.

P.S. Die Version 10 teste ich grade auch nebenher, allerdings funktioniert da das UnitTesting (mal wieder) nicht. War aber auch bei der 9er im pre-release so. Ab release hat es dann funktioniert. Aber nun wechsle ich erstmal wieder zurück zur Produktiven 9er Reihe.

Automatische Validierung mit dem W3C-Validator

Das W3C stellt eine sehr elegante API bereit, mit deren Hilfe man recht einfach Seiten automatisiert überprüfen kann, ob die Seiten Fehler hat und wenn ja, welche das sind.

Ich stelle das mal mit Hilfe des Zend Frameworks vor, da es damit wirklich sehr trivial ist.

<?php
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();

$client = new Zend_Http_Client();
$result = $client->setMethod(Zend_Http_Client::POST)
->setUri('http://validator.w3.org/check')
->setParameterPost('uri', 'http://www.codemercenary.de')
->request();

Zend_Debug::dump($result->getHeaders());
file_put_contents('w3cresult.html', $result->getBody());

Als Ausgabe erhält nun die Header

array(12) {
'Date' =>
string(29) "Thu, 11 Oct 2012 12:03:20 GMT"
'Server' =>
string(22) "Apache/2.2.16 (Debian)"
'Content-language' =>
string(2) "en"
'X-w3c-validator-recursion' =>
string(1) "1"
'X-w3c-validator-status' =>
string(7) "Invalid"
'X-w3c-validator-errors' =>
string(2) "48"
'X-w3c-validator-warnings' =>
string(1) "3"
'Vary' =>
string(15) "Accept-Encoding"
'Content-encoding' =>
string(4) "gzip"
'Content-length' =>
string(4) "7228"
'Content-type' =>
string(24) "text/html; charset=UTF-8"
'Connection' =>
string(5) "close"
}

Die Header kann nun recht einfach vergleichen, bei „X-w3c-validator-status“ kann man mittels test auf „Invalid“ schnell feststellen, dass was nicht funktioniert hat. Eine kurze Übersicht über die Anzahl der Fehler und Warnungen ist auch mittels Headeranalyse möglich.

Weitere Details stehen dann im Body, den ich im Beispiel in der letzten Zeile mal eben schnell auf die lokale Festplatte downloade.

So, das war der Crashkurs zum Thema „W3C-Validierung-Prüfung mit PHP“, weitere Infos findet ihr beim W3C in der API Doku: http://validator.w3.org/docs/api.html

Blogger–Gut, dass du weg bist

Ich bin weg.
Weg von Blogger.
Weg vom eingesperrt sein, weg vom “du darfst nur, was wir erlauben”.
Ich fühle mich frei!

Der Umzug von Blogger in ein eigenes System wie z.B. WordPress hört sich ganz einfach an und ich muss zugeben, der größte Teil ist auch einfach. Aber die Probleme liegen im Detail. Einige könnten sagen, es ist jammern auf hohem Niveau. Aber ich fange am besten vorn an.

Neue Domain besorgen und WordPress darauf installieren, das sind die ersten einfachen Schritte. Dann ins Backend und “Werkzeuge” –> “Daten importieren” auswählen, dort dann entsprechend alles von Blogger importieren was geht. Das alles klappt auch angenehm gut.

Anschließend sind alle Altlasten im neuen System. Achtung: Waren Artikel in Blogger als “Entwurf” gekennzeichnet sind diese nun veröffentlicht. Also, schnell in die Blogger-Übersicht, diese auf Entwürfe gefiltert und dann diese Artikel in WordPress auch auf “Entwurf” gesetzt. Dann ist erst mal alles gut.

Und hier könnte die Geschichte enden, wären da nicht der treue Leser des Alt-Blogs und die großen bösen Suchmaschinen. Ich fange auch hier vorn an.

Der Alt-Leser des Blogs muss irgendwie auf das neue Blog aufmerksam werden. Ist auch ganz einfach: Im Alt-Blog einen kurzen Beitrag veröffentlichen mit der neuen URL, fertig; mit der Zeit kommen die alle ins neue Blog. Persönlich Bekannten und wichtigen Verlinkungen schickt man das ganze noch per E-Mail. Später zeige ich noch, wie man auch die sonstigen Besucher zum Umdenken ins neue Blog “zwingt”.

Und nun die Suchmaschinen. Denen teilt man auch mit, dass man nun ein neues Blog hat. Dies macht man natürlich nicht per Blogeintrag oder Mail, die SuMas kennen dafür Redirection-Codes. Wer sich auskennt, der weiß: 301 vom Alt- ins Neusystem und das alte Blog ist bald vergessen und man bekommt keine Strafe bzgl. “duplicate content”; Schöne Sache, die 30x Umleitungen … wenn das denn bei Blogger funktionieren würde.

Funktioniert aber nicht. Zumindest kenne ich keinen Weg.
Man kann weder eine .htaccess anlegen, die dann umleitet – was ja der klassiche Weg wäre – noch mittels PHP eine header()-Umleitung einrichten. Es bleiben einem nur HTML und JS.

Aber man kann ja legal tricksen. Irgendwie muss ja alles von A nach B weitergeleitet werden und das geht bei Blogger über den Trick des Templates.

Zuerst installier man sich das WordPress-Plugin “Blogger 301 Redirect”. Dieses gibt einem genaue Anweisungen. Wenn man sich dran hält, bekommt man u.a. ein neues Template für’s alte Blogger-Blog. Dieses sorgt dafür, dass jeder Besucher der Startseite auf die Startseite des neuen Blogs umgeleitet wird und jeder Besucher eines Artikels wird ebenso auf den entsprechenden Artikel im neuen Blog umgeleitet – gut, dass wir die vorher importiert haben.

Leider ist es dem Plugin nicht Möglich, diese Umleitungen per 301 zu erreichen, da “nur” per Javascript “window.location.href” umgeleitet wird … aber besser als gar nicht ist es allemal.

Nun noch eine Sitemap raushauen, am besten mit dem WP-Plugin “Google XML Sitemaps”, das macht den größten Teil der Arbeit selbst. Die generierte Sitemap gibt man nun noch bei den Google Webmastertools für das neue Blog an und ist auch mit dieser Baustelle fertig.

Ich versuche, mein neues Blog mit möglichst wenigen Plugins auszustatten. Ausser den beiden o.a. sind natürlich Akismet mit dabei und auch das extrem gute “2-Click Social Media Buttons”-Plugin, welches die schönen Social-Media Buttons einfügt, die man erst freigeben muss, damit einen diese Netzwerke nicht die ganze Zeit tracken.
Wer möchte, kann ganz gezielt einzele Buttons auch permanent freigeben. Tolle Sache! Danke an Michael für den Tip in seinem Blog.

Ich hoffe, ich konnte evtl. dem ein oder anderen zumindest etwas helfen.

Neue Blogadresse

Mein Blog ist umgezogen.

Vom gehosteten blogger „alles-fertig“ Blog bei Google zum „mach-alles-selbst“ Blog auf einer eigenen Domain mit eigenem WordPress. Irgendwie klingt das so, als wäre es nun schlechter.

Es ist aber besser. Mit eigener Domain und eigenem WordPress kann ich nun auch eigene Änderungen vornehmen … zur Not sogar an WordPress selbst, wenn irgendwas das nötig machen sollte. Das geht bei blogger nicht.

Naja, zu den sonstigen Vorteilen brauche ich nichts zu sagen; ich habe schon lange ein Auge auf Wordpess gehabt, doch nun gab es den entscheidenden Grund zu wechseln: Das Theme!

Ja, das Theme gab den Ausschlag. Das neue „Twenty Twelve“ hat alles, was ich von einem guten Theme erwarte. Es ist schlicht, professionell und „responsive“.

Und hier ist mein neues, altes, Blog!

Ich denke, es wird noch einige Zeit brauchen, bis alle alten Leser die neue Adresse gefunden haben und bis Google merkt, dass ich es ernst meine und alle alten Adressen auf die neuen Umgeleitet haben wird. Aber nun bin ich frei in meinem Blog und nur darauf kommt es an, oder?

Wie findet ihr es? Hat es sich gelohnt?