header-Umleitung funktioniert nicht? Ursache finden …

Wenn’s mit dem

header('Location: http://www.example.com');

mal nicht funktioniert, liegt es daran, dass schon eine Ausgabe vorher stattgefunden hat.

Manchmal kann es aber durchaus kompliziert sein, diese Ausgabe zu finden, teilweise meldet auch das error.log nichts, dann hilft dir eine freundliche PHP-Funktion weiter, die du zu Testzwecken direkt vor das header-Kommando stellst:

$file = ''; 
$line = ''; 
headers_sent($file, $line); 
print_r($file, $line);

headers_sent zeigt dir nun die Stellen , die vorher bereits eine Ausgabe durchgeführt haben.

Werkzeugkasten 2012

In guter Tradition hier etwas verspätet mein Werkzeugkasten für 2012.

Ich stelle dir hier Werkzeuge und Programme vor, mit denen ich gut klarkomme. Evtl. stoße ich dich auf ein Programm, was du noch nicht kennst, was dich aber produktiver macht. Wenn ja freut mich das. Ein Hinweis aber: Ich bekomme von keinem der hier vorgestellten Anbieter irgendetwas für diese Liste. Diese Meinungen hier sind nicht gekauft, die sind durch Wochenlanges Ausprobieren, rumfummeln, reinfrickeln, usw. erarbeitet. Wollte das nur vorher klarstellen, auch wenn es sich manchmal wie ein Pressetext liest.

Die Schwerpunkte “auf Arbeit” dieses Jahr sind zweigeteilt: PHP und MySQL, sowie Continous-Interation und Frameworks

  • Zend Studio
    Wie beim letzten Jahr bleibt Zend Studio die IDE meiner Wahl. Auch harte Konkurrenz durch Netbeans und PHPStorm (in dieser Reihenfolge) konnte der High-End-IDE nichts anhaben. Sicher glänzt Netbeans durch viele kostenlose Features – privat setze ich nur auf Netbeans, weil mir das Studio da zu teuer ist –, aber die gewohnte “alles-geht”-Mentalität und das “out-of-the-box” Prinzip – vor allem im Bereich debuggen von PHP-Scripten – hat mich auf’s neue Überzeugt. PHPStorm habe ich getestet – dank einer geschenkten Lizenz sogar über einen längeren Zeitraum – allerdings konnte es sich nicht gegen das Zend Studio oder Netbeans behaupten; aber ich habe bestimmt nur die falschen Projekte und die falschen Ansprüche Zwinkerndes Smiley.
  • Zend Server (CE)
    Alles aus einem Installer – Apache und MySQL-Server – und alles Updatefähig per Mausklick – noch immer überzeugt mich das “easy-going” Prinzip vom Zend Server; wahrscheinlich, weil das Studio auch besser damit zusammenarbeitet oder weil ich einfach zu faul bin, mir jede Quelle selbst zu kompilieren. Basis meiner lokalen Entwicklungsumgebung bleibt der ZendServer (CE, oder heute free-edition).
  • SVN, Vercue, Subversion Edge
    Yep, die Versionskontrolle ist ebenfalls wieder dabei. Wir wurden professioneller, haben die selbst ge”apt-get”tetten Quellen durch eine fertige kostenlose Lösung auf Serverseite namens Subversion Edge ersetzt und sind alle zufrieden. Ich, weil ich nun von überall per Browser an die Repo-Verwaltung komme, meine Kollegen, weil die das nun auch können, mein Chef, weil alle gut drauf sind und es ihn (fast) nichts gekostet hat – ausser ein paar Nerven beim Serveradministrieren.
    Vercue verrichtet weiterhin seinen Dienst im Hintergrund und informiert uns Entwickler darüber, dass ein anderer mal wieder was neuen commited hat. Sehr nützlich!
  • Git und Stash
    Leider kamen wir aus Zeitgründen noch nicht dazu, git mehr Aufmerksamkeit wie das reine “teste mal an” zu geben, aber wir sind zuversichtlich, bald die ersten Projekte mit dem Verteilten Versionssystem zu beginnen. Auf Serverseite hilft uns dabei bestimmt Stash, welches ich persönlich mit meinen Privatprojekten als Bitbucket kenne und schätze.
  • FileZilla
    Ohne Worte, oder? Ein FTP-Tool hat jeder, FileZilla ist meins.
  • Outlook, MS Office
    Jajajajaja, ruhe im Saal Zwinkerndes Smiley Im Business kommst du ohne Office-Packet nicht weit und für mich als Windows-ianer ist Outlook einfach das beste Mailprogramm, wenn man damit auch etwas mehr wie “nur” E-Mail machen möchte.
  • Zend Toolbar
    Essentiell zum debuggen, single-click-install beim ZendServer, einfacher geht’s nicht mit der Zend Toolbar. Für den Chrome könnte Zend wirklich auch mal eine Toolbar mitliefern. Die ist nämlich nicht dabei, die muss man sich aus dem Forum downloaden. Geht aber problemlos und kostet höchstens 5 Minuten.
  • Chrome, IE, Firefox, rest
    Hier die erste gravierende Änderung zu 2011: Firefox ist nicht mehr der Primärbrowser. Zu lahm, zu schwer, zu … neee-lass-mal … Beruflich wie privat ist der Primäre Browser nun Chrome geworden, schnell, schmal, und alles sieht genauso aus wie im Fox. Ist ja schließlich 2013, da sollte das auch so sein, die Browserkriege sind beendet. BEENDET! Platz 2 ist der IE, Firefox ist noch da, aber nur zum Testen, Opera ist verschwunden, weil nicht gebraucht … gibt’s noch irgendwelche nennenswerten Browser? (Ich setz Safari mit Chrome gleich, weil fast gleiche Engine).
  • Web Developer Tools
    Ja, wichtig. Mal eben die Parameter einer Form ansehen? *Klick* Da sind Sie. Top Addon, auch für Chrome, leider nicht für IE, aber was ist nicht ist …
  • MySQL Studio
    Das MySQL Studio wird mir immer wichtiger. Nicht nur zur Analyse und Debuggen von komplexen Querys hervorragend geeignet, sondern auch, um zwei mysql-dump (jeweils knappe 300MB) miteinander zu vergleichen und die Frage zu beantworten: Hat sich was an der Tabellenstruktur getan? Wenn ja, was? Und das ganze bitte Grafisch! Und anschließend bitte eine “Alter”-SQL File exportieren. Genial!
  • Notepad2, Notepadd++
    Einen davon solltest du auch auf dem System haben, es lohnt sich Zwinkerndes Smiley “Mal eben” was kleines, oder “mal eben” ein .sql durchsuchen, dabei aber Syntax-Highlighing und Code-Folding haben wollen? Kein Problem, downloaden, installieren, Arbeitszeit sparen!
  • RegEx Editor
    Ein selten geniales und simples Tool, mit dem ich problemlos auch die komplexesten Regulären Ausrücke testen und optimieren kann. Hat mir schon so manche schlaflose Nacht erspart. Grade, wenn man sich manchmal nicht mehr ganz so sicher ist, ob der neue RegEx auch diesen und jenen Fall “covert” kann man es mit diesem Tool sehr schnell prüfen. Top und kostenlos!
  • Sysinternals und WSCC
    Keine Geheimnisse mehr in Windows. Profi-Tools für Profi-Fragen und mit dem WSCC sogar ein GUI-Updater.
  • KeePass
    Mein unersetzlicher Begleiter mit allen meinen Passwörtern. Wie sonst könnte ich mir alle Kundenpasswörter auf allen Seiten merken, ohne die Sicherheit zu gefährden? Ich brauche nur noch das (elend lange) Passwort für KeePass und gut ist. Ein STRG+ALT+A und ich bin im System des Kunden. Perfekt!
  • Screenpresso
    Hab noch nichts besseres gefunden und ich suche wirklich immer nach guten Tools. Auch das Sniping-Tool von Win7 kann leider nicht alles, was mit Screenpresso problemlos geht.
  • Launchy ist weg
    Yep, Launchy ist weg, ich mach nun alles via Taskbar oder der Suche von Win7.
  • Spotify
    iTunes ist weg, Spotify ist da. iTunes war so “nett”, mir alle meine Songs neu zu “taggen”, was zu einem heillosen Chaos führte. Bei Spotify habe ich das Problem nicht und zusätzlich kann ich in neue Alben länger reinhören wie z.B. bei Amazon und mir ein Bild davon machen, ob ich es kaufe oder nicht. So manchen Album wäre nicht in meiner Sammlung ohne diese Funkttion. Leider bin ich nur “free” Member und muss Werbung ertragen, aber solange kein Justin Bieber dudelt ist alles in Ordnung Zwinkerndes Smiley
  • Social Networks
    Ja, die Produktivitätskiller schlechthin, die bösen, bösen Social-Netwörks wie Twitter, Google+, Facebook oder wie-auch-immer. Letztes mal hatte ich dafür TweetDeck, dieses mal hatte ich schlicht keine Lust. Keine Lust, jede Stunde Twitter zu checken, keinen Bock, Stundenlang auf G+ rumzuklicken, Facebook auch nur zwei Minuten daddeln und wieder weg. Ich brauche das nicht, und daher brauche ich kein Tool mehr dafür.
    Nicht falsch verstehen, ich mache immer noch mit, aber mehr passiv, ich lese mit, kommentiere kaum, schreibe so gut wie nichts (außer neue Blog Posts natürlich) und Twitter prüfe ich zweimal am Tag per Windows Phone – da fällt mir ein, ein Tool kommt in die Werkzeugkiste: Peregrine, so heißt der Twitter-Client auf meinem WP7. Das war’s schon von wegen Social … kleiner Nachtrag: Die Newsfindung erledige ich hauptsächlich per Twitter, direkt dahinter kommen die klassischen RSS-Feeds einiger Newsseiten, die ich direkt in Outlook lese, also auch hier kein Tool für RSS.
  • Windows7
    Bin immer noch Gehirngewaschen, bin immer noch bei den Proprietären Abzockern aus Redmond, immer noch beim “Klicki-Bunti” Fenster, immer noch bei der Virenschleuder, bei der Malware-Verbreitungsplattform, immer noch beim bösen, bösen Windows, bei dem wir alle nicht mehr sein wollen und auch nicht sein dürfen.
    Weißt du was: Bin ich doch!
    Und ich bin zufrieden!
    Weil alles geht, so wie es soll!
    Ja, ich kenne Linux, hab LinuxMint14 installiert und obwohl diese Distri wirklich toll aussieht und sich selbst für mich gut “anfühlt” … es bleibt leider dabei, dass ein falscher “apt-get” mal wieder meine ganze X-Oberfläche zerstört hat und ich – als Pinguin-Laie – das nicht mehr hinbekomme. Ich hätte echt Angst, wenn das mein Produktivsystem wäre.
  • PHPUnit, Selenium, LiveTest, …
    Qualitätssicherungstools stehen bei mir dieses Jahr ganz weit oben in der Gunst. Bei neuen Projekten versuche ich mich an Test-Driven-Development, was zeitlich bedingt nicht immer funktioniert. Aber der Sinn und Zweck ist verstanden und Workarounds für ein schnelles bereitstellen in den Projekten sind ebenfalls erarbeitet und funktionieren gut.
  • Codesniffer, Messdetector, …
    Und auch diese Tools dürfen nicht fehlen. Ein großer kritischer Systemausfall beginnt mit kleinen Schludereien auf Code-Ebene. Diese kleinen Helfer erinnern mich daran, wo ich zu schnell arbeite und besser auf die Bremse drücken sollte.
  • Jenkins, Continous-Development
    Und da ich – wie alle Entwickler – ja zur Gattung der Faultiere gehöre, was sich wiederholende Arbeiten gehört, macht mein persönlicher Jenkins alle QA-Sachen für mich automatisiert … nun ja, zumindest für die ganz neuen Projekte, die alten Legacy-Projekte dafür in Angriff zu nehmen ist … schwierig. Weniger vom fachlichen Standpunkt aus, mehr vom Zeitlichen Standpunkt. Aber wir arbeiten dran Zwinkerndes Smiley.
    Sehr cool ist auch, dass sich Jenkins ins Zend Studio integriert und mich die Fehlermeldungen dort per Klick direkt an die entsprechende Codestelle führen. Perfekt!
  • Zend Framework, Backend-Framework
    Mein persönliches Framework für PHP. Ich habe Symfony ausprobiert, ich arbeite bei manch Kundenprojekt mit CodeIgniter, ich habe PIMF ausprobiert, sogar FLOW habe ich mir angesehen. Steckengeblieben bin ich beim Zend Framework. Klar, Zend Studio, Zend Server, da liegt das nahe, aber die ganze Art und Weise des MVC liegt mir und ich komme intuitiv zurecht. Für mich heißt das, Zend Framework und ich liegen auf einer Wellenlänge und das heißt, dass ich damit Spaß habe und Produktiv arbeiten kann … und darauf kommt es doch an.
    ZF setze ich bei neuen Sachen wenn es geht als „Full-Stack” ein, bei einigen Legacy-Projekten läuft es als Library für ein paar Aufgaben und wird per Autoloader eingebunden. Praktisch, wenn ein Framework beides kann.
    Derzeit bin ich noch in Version 1 unterwegs, der Lernweg zur Version 2 ist schon geplant, auch vor Ralf’s Buch Zwinkerndes Smiley
  • Bootstrap, Frontend-Framework
    Wenn das Zend Framework mein Backend-Framework der Wahl ist, dann wurde Twitter Bootstrap mein Frontend-Framework, mit dem ich bestens zurecht komme. Habe mir auch HTML5Boilerplate angesehen und 960 Grid System, auch hierbei kann ich aber nur eines nehmen, am besten komme ich mit Twitters Gedanken klar.
  • Zend Certified Engineer (ZCE) PHP
    Ne, ich bin’s noch nicht, aber der Voucher liegt bereit und ich lerne fleißig. Dabei bleiben leider manche anderen Sachen liegen und ich experimentiere nicht so viel mit neuen Frameworks rum. Bald…

Und da gibt es nun auch noch den Privaten Schwerpunkt, der liegt neben PHP und allen oben genannten Sachen derzeit bei C#.

  • VisualStudio (Express)
    Klar, wer C# macht, der sollte auch Microsofts IDE benutzen. Wer schon mal C++ programmiert hat (so wie ich einst), der weiß einfach, dass VS die beste IDE der Welt ist, wenn man zu den “echten” Programmiersprachen kommt. Das Microsoft die IDE in einer benutzbaren Version kostenlos hergibt ist umso erfreulicher.
    Schade, das Microsoft (noch) kein VisualStudio für PHP geplant hat … aber die Hoffnung stirbt zuletzt Zwinkerndes Smiley

Ich denke, das waren die wichtigsten Sachen, die kleineren Tools und Helfer erwähne ich nicht, das würde zu groß werden. Trotzdem wurde die Liste ja schon recht lang.

Wie sieht deine Liste aus?

Unit Testing in C# mit Visual Studio 2010 Express und NUnit

Privat erstelle ich meine Projekte seit neuestem mit C#. Da ich ein Windows Phone mein eigen nenne und da irgendwann auch mal gern eine App für schreiben möchte, dachte ich, es wäre ganz gut, sich da mal wieder auf den neuesten Stand zu bringen und wieder aktiv in dieser Sprache zu programmieren. Denn nur, wenn du C# codest, lernst du C#. Gut und schön und mein aktives Projekt komplett neu in C# geschrieben. Es ist zwar noch nicht fertig, aber schon überkommt mich ein beklemmendes Gefühl. Es fehlt was. Nur was?

Nach kurzem Nachdenken wird mir klar: Ein neues PHP-Projekt würde ich ganz anders starten. Ich würde Tests schreiben. Na klar, meinem C#-Projekt fehlt das Unit Testing.

Nach kurzer Suche wird mir ganz anders: C# zu unit-testen geht zwar, aber nicht mit Visual C# Express 2010 … aber genau diese kostenlose IDE setze ich doch ein! Aber wie ich immer so schön zu sagen pflege: Geht nicht, gibt’s nicht (kost‘ nur mehr #hehe).

Nach ein paar Stunden rumfummeln und vielen anderen Einträgen folgt hier meine Schritt-für-Schritt anleitung zum Unit Testen mit C# mit Visual C# Express 2010 mit Mausklick (aber ohne Sahne 😉 ):

  1. Visual C# Express 2010 muss installiert sein, idealerweise hast du auch schon ein Projekt.
  2. Du lädst dir eine aktuelle Version von NUnit von der NUnit Homepage www.nunit.org runter.
  3. In deiner Projektmappe legst du nun ein neues leeres C# Projekt an (ProjektnameTest zum Beispiel)
  4. Nun im Menü unter „Extras“ -> „Einstellungen“ die Option „Experteneinstellungen“ wählen
  5. Damit wird dann der Menüeintrag „Externe Tools“ (unter „Extras“) überhaupt sichtbar.
  6. Dort dann NUnit wie folgt eintragen:
    NUnit als externes Tool in Visual C#
    Schlecht sichtbar, aber ich verlinke auf nunit-x86.exe, sonst funktioniert das bei mir nicht, da ich ein 64-Bit System habe.

So, euer System ist bereit, unter „Extras“ habt ihr nun einen neuen Menüpunkt „NUnit“, der euch das aktuelle Projekt testet, also euer Testprojekt. Achte darauf, dass du vorher auch immer das Testprojekt neu erstellen läßt, da NUnit immer die Assembly und die exe zu rate zieht und wenn die nicht auf dem aktuellem Stand ist kommen verfälschte Ergebnisse heraus.

Bei den Tests ist es wichtig, die aus PHP bekannten „Testsuiten“ mit dem Attribut [TestFixure] im (Test-)Code zu kennzeichnen, die Tests selbst als [Test], sonst funktioniert das Ganze nicht und NUnit meldet, es gäbe keine Tests zum Ausführen!

Für den Start hier mal ein kleines Beispiel für dich. Sicherlich stimmen noch nicht alle Namen und Bezeichner und die Test machen auch noch nicht viel Sinn, aber es soll ja mehr als eine Art „Quickstart“ gemeint sein, ein Grundgerüst zum Verständnis:

namespace apps.presnac
{
  using NUnit.Framework;

  [TestFixture]
  public class KeysTest
  {
    [Test]
    public void testingFileDefs()
    {
      FileDefinitions clsFiledefs = new FileDefinitions();
      FileDefinition[] filedefs = clsFiledefs.getFileDefinitions();

      Assert.AreEqual(filedefs.Length, 57);
    }

    [Test]
    public void testWillFail()
    {
      Assert.AreEqual(1, 2);
    }
  }
}

namespace UnitTesting
{
  public class deCHKTesting
  {
    public static void Main()
    {
      apps.presnac.KeysTest testingKeys = new apps.presnac.KeysTest();
      testingKeys.testingFileDefs();
      testingKeys.testWillFail();
    }
  }
}

Ja, in diesem Beispiel geht es um mein Grundgerüst zu meinem Projekt deCHK, was bald als neue Version komplett neu in C# geschrieben erscheinen wird.

Den unteren Block, die Klasse deCHKTesting mit der main()-Methode brauchst du, damit dein Projekt überhaupt eine ausführbare Datei erstellen kann, die dann von NUnit analysiert und zum testen herangezogen werden kann.

Und anschließend ein Blick auf die Testergebnisse:

nunit-testergebnisse

Also, Unit-testing in C# mit Visual Studio Express ist möglich, man muss nur 2 kleine Kniffe kennen (wie komme ich ans Tools Menü und die beiden Attribute im Code, um Tests zu markieren) und schon steht den kontrollierten Funktionssicherheitsnachweisen nichts mehr im Wege 😉 .

Was ich sehr unschön finde ist die Tatsache, dass es in Visual Studio nicht möglich ist, eine Standardvorgehensweise wie Unit Tests direkt in IDE zu integrieren. Vor allem da NUnit hier der Marktführer für .Net ist fällt es mir schwer, meine Tests nicht direkt in meiner IDE zu sehen und per Doppelklick auf einen aufgetretenen Fehler direkt zum zuständigen Code zu gelangen. Hier sollte Microsoft nachbessern, damit künftige C#-Entwickler auch in den Genuß von „Test-Driven-Development“ direkt in der VS-IDE kommen.

Ansonsten wünsche ich dir noch viel Erfolg beim Unit-Testen deines C#-Codes.

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', 'https://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?