Mein erstes WP Meetup in Potsdam

Wie einige von euch wissen, war ich die letzten beiden Jahre auf den WordCamps in Berlin und Köln. Beide waren sehr unterschiedlich, aber ich habe bei beiden neue Dinge gelernt und nette Leute kennengelernt. Aber was macht man nun die restlichen 11 Monate im Jahr, während man auf das nächste WordCamp wartet? Die Anwort: WP Meetups. Hier trifft man Gleichgesinnte in einer sehr lockeren Atmosphäre und tauscht sich über ein bestimmtes Thema oder allgemein über WordPress aus.

Am Mittwoch hat es mich also vor die Tore der Hauptstadt gezogen und trotz langer Anreise hat es sich gelohnt. Einen Bereicht über die Teilnehmer inkl. Foto findet ihr in dem Beitrag von Caspar, der einer der beiden Initiatoren des Potsdamer WP Meetups ist. Es gibt auch eine Facebook Seite sowie eine Google+ Seite zum Potsdamer WP Meetup. Dort könnt ihr immer nachlesen, wass das nächste WP Meetup stattfindet und was dort als Thema vorgeschlagen wird. Das nächste findet am 14. Februar 2012 statt und so wie es im Moment aussieht werde ich wohl zum Thema „Grundlagen der Plugin-Programmierung“ einen kleinen Vortrag halten. Wer mich also mal im „real life“ treffen möchte und noch dazu etwas zur Plugin-Programmierung erfahren möchte, der muss nur noch seiner Freundin oder seinem Freund erklären, wieso er am Valentinstag nicht da ist 😉

Schutz der Website oder des Blog vor massiven Zugriffen durch Crawler oder Angreifer

Heute bekam ich über mein Monitoring-Tool mal wieder eine Mail, dass mein Blog gerade down ist. Bei allen, die das vorhin getroffen hat, möchte ich mich hiermit auch entschuldigen. Aber wieso war mein Blog mal wieder down, wo er doch in letzter Zeit so gut gelaufen ist?

Crawler: Plage oder Segen?

Jeder von uns, der eine Website hat freut sich wohl, wenn den Google Crawler regelmäßig vorbeischaut und dabei möglichst alle neuen schon nach wenigen Minuten in den Index befördert. Da der Google Crawler dabei auch automatisch auf die Performance einer Website achtet um kleine Seiten nicht zu überlasten, fällt es auch nicht weiter auf, wenn er gerade am Werk ist.

Aber leider gibt es nicht nur den Google Crawler sondern mittlerweile eine unüberschaubar große Anzahl davon. Heute hat sich also ein neuer Crawler ans Werk gemacht und meine Website im Turbogang mit Anfragen beschossen. Das ist für den kleinen V-Server dann doch etwas zu viel geworden und er hatte innerhalb kürzester Zeit eine Auslastung von 4500%!

Weiterlesen →

Handy verloren, was tun? Ein Survival-Guide für Android-Besitzer.

Am Freitag ist es mir passiert. Ich nahm nachts von der Weihnachtsfeier unseres Büros ein Taxi nach Hause. Als es ans bezahlen ging legte ich mein Handy kurz zur Seite um meinen Geldbeutel rauszuholen. Ich bezahlte, nahm meinen Rucksack und stieg aus. Keine 10 Sekunden später stellte ich dann fest, dass mein Handy nicht mehr in meiner Tasche war. AH! Ich rannte zwar dem Taxi noch hinterher, aber es sah mich wohl in der Dunkelheit nicht winken.

Die Rettung meines Handys

Zum Glück hatte ich mir vor langer Zeit mal genau für einen solchen Fall eine App auf meinem Android installiert: die App Android Lost. Diese ist recht einfach einzurichten und bietet einem später über das Online-Portal www.androidlost.com sehr viele Möglichkeiten zur Rettung seines geliebten Handys.

Weiterlesen →

Server Downtimes und keine Erklärung in Sicht

Am Freitag habe ich auf meinem Server nach Rootkits suchen lassen. Die beiden Skripte dazu stelle ich euch hier demnächst mal kurz vor. Es sah danach alles sehr gut aus. Leider war ich dann eine Weile nicht am Rechner und in dieser Zeit stürzte der Apache-Server aus bisher ungeklärten Gründen ab und war über 3 Stunden nicht erreichbar. Nach Analyse der Logfiles fand ich viele Angriffe, die auf die Sicherheitslücke in der TimThumb hindeutete. Ein Angreifer versuchte bei mir die Funktion im Plugin UberMenu zu attackieren. Es ist aber schon schlimm, dass ein „Premium Theme“ eine solche Sicherheitslücke aufweist. Zum Glück setze ich dieses Plugin nicht ein. Ich habe auch ansonsten alle Plugins und Themes gelöscht, die TimThmub einsetzen.

Heute musste ich dann leider feststellen, dass der Server erneut down war. Da das Monitoring über Pingdom mir leider keine Nachricht auf mein Handy schickte, bemerkte ich es erst nach über 7 Stunden! Hiermit möchte ich mich auch bei allen Entschuldigen, die in dieser Zeit vergeblich versucht haben meinen Blog zu erreichen.

Ich weiß leider noch immer nicht, was genau zu den beiden Ausfällen geführt hat. Die einzige größere Änderung der letzten Tage war die Installation des WP Super Cache Plugins. Falls jemand von euch weiß, ob es damit zu Abstürzen des Apache Prozesses kommen kann, dann wäre ich ihm für einen Kommentar sehr dankbar.

Ich werde jetzt meinen Server ein bisschen besser im Auge behalten. Sobald ich den Fehler gefunden habe, werde ich euch natürlich sofort berichten, woran es lag. In diesem Sinne noch ein schönes Wochenende!

Pflege des Backend Localization Plugins

Ich habe mir am Wochenende mal mein Backend Localization Plugin vorgenommen und dieses etwas aktualisiert. Zum einen sah die Sprach-Auswahl im Login-Formular nicht mehr besonders schön aus, da mit WordPress 3 das CSS dazu geändert wurde. Zusätzlich kamen einige neue Sprachen dazu, in die WordPress mittlerweile übersetzt ist (bzw. noch übersetzt wird). Hier mal eine Liste der neu hinzugekommenen Sprachen:

ISO 639 Name
es_CL Spanisch (Chile)
es_PE Spanisch (Peru)
es_VE Spanisch (Venezuela)
fa_AF Persisch (Afghanistan)
fy Westfriesisch
gd Schottisch-Gälisch
haw_US Hawaiisch
hy Armenisch
is_IS Isländisch
jv_ID Javanisch
kea Kabuverdianu
kk Kasachisch
kn Kannada
li Limburgisch
me_ME ???
mg_MG Malagasy
mn Mongolisch
ne_NP Nepali
nl_BE Niederländisch (Belgien)
pa_IN Panjabi
sa_IN Sanskrit
so_SO Somali
srd Sardisch
ta_LK Tamilisch (Sri Lanka)
zh_TW Chinesisch (Taiwan)

Es ist immer sehr aufwändig diese Liste zu pflegen, da ich erst einmal feststellen muss, was sich hinter dem ISO 639 Code verbirgt. Ich konnte aber bis auf einen Code alle finden. Wenn also jemand von euch weiß, welche Sprache sich hinter me_ME verbirgt, dann würde ich mich über einen Kommentar dazu sehr freuen.

Was man aber auch sehr gut an dieser Liste sehen kann ist die schnelle Verbreitung von WordPress in viele Regionen der Welt. Insgesamt enthält das offizielle Sprachdateien-Repository von WordPress mittlerweile 94 Sprachcodes. Hier ist aber z.B. für Deutschland nur die „Du-Version“ enthalten. Die eigentliche Anzahl an unterschiedlichen „Sprachen“ liegt also vermutlich noch um einiges höher.

Plugins und Sicherheit: Sicherheitslücke in Filedownload Plugin geschlossen

Aus gegebenem Anlass kommt heute mal ein Artikel zu einem sehr heiklen Thema: Plugins und Sicherheit. Ein mir bekannter Blog wurde letzte Woche gehackt. Anschließend konnte man auf diesem nur noch Space Invaders spielen. Glücklicherweise war es ein sehr netter Hacker, der seine Tat zugab und auch gleich erklärte, was falsch gemacht wurde und wie er damit ohne Probleme den Blog hacken konnte.

Funktion des Plugins

Die Sicherheitslücke steckte in dem Plugin Filedownload. Dieses Plugin wird eingesetzt um eine in WordPress hochgeladene Datei direkt zum Download anzubieten. In der Regel öffnet ein Browser ja eine Datei, die er direkt anzeigen kann, wie z.B. ein Bild oder eine PDF-Datei. Dieses Plugin gibt aber nun die angeforderte Datei so an den Browser zurück, dass dieser das Download-Dialogfenster öffnet und den Benutzer zum Download der Datei auffordert.

Weiterlesen →

Valides XHTML mit dem Google Analytics for WordPress Plugin

Gestern Abend hatte ich mir mal wieder die Zeit genommen meine Startseite auf invaliden Quellcode hin zu untersuchen. Da meine Seite noch XHTML als Doctype verwendet, gab es einige Fehler bzgl. Der „target“ Attribute in der Blogroll. Nach langer Recherche konnte ich das sehr beliebte Google Analytics for WordPress Plugin von Joost de Valk als Fehlerquelle ausmachen.

Das Problem

Man kann nun aber dem Plugin nicht wirklich einen Vorwurf machen. Nachdem ich den Quellcode des Plugin sowie die Ausgabe der Blogroll im WordPress Core untersucht habe, konnte ich auch keine bessere Einbindung finden als die im Plugin verwendete. Es fehlt leider ein Filter, mit dem man den Link Tags zusätzliche Attribute anhängen kann. Da aber bei aktivierten Outlink-Tracking noch ein „onclick“ Attribut notwendig ist, wurde es vom Plugin-Entwickler eben an das „target“ Attribut angehängt. Damit war denn der Inhalt des selbigen nicht mehr leer und es wurde ausgegeben, auch wenn der Link für die Blogroll im Backend auf „none“ gestellt war.

Die Lösung

Es gibt glücklicherweise eine recht einfache Lösung für das Problem. Da es einen Filter für die gesamte Ausgabe der Blogroll gibt, können wir hier ansetzen. Wir entfernen einfach sämtliche leere „target“ Attribute im Ausgabestring mit folgendem Snippet:

function remove_empty_target($content){
        return str_replace('target="" ', '', $content);
} add_action('wp_list_bookmarks', 'remove_empty_target');

Das Snippet fügt ihr einfach in die functions.php Datei eures Themes an einer beliebigen Stelle ein. Wer für seine Seite ein Theme verwendet, das als Doctpye HTML5 nutzt, der kann diesen Tipp getrost ignorieren. Denn in HTML5 ist das „target“ Attribut wieder enthalten. Trotzdem halte ich noch immer die Angewohnheit externe Links mit einem target="_blank" in einem neuen Tab/Fenster zu öffnen für eine Todsünde der Usabilty. Aber im Zusammenhang mit Formularen und JavaScript kann ein „target“ Attribut durchaus Sinn machen und notwendig sein.

Die Welt hat einen großen Visionär verloren: Steve Jobs

Wer mich persönlich kennt, der weiß, dass ich kein Apple-Fanboy bin. Das einzige iGadget, dass ich mein eigenen nennen kann ist ein iPod Shuffle und es war ein Geschenk. Das liegt nicht daran, dass ich nicht von der Qualität der Produkte überzeugt bin, sondern an meiner Ablehnung der Firmenpolitik von Apple.

Dennoch habe ich Steve Jobs für seine Arbeit und seine Visionen sehr geschätzt. Nicht nur Apple Fans weltweit verlieren mit seinem Tod einen wichtigen Vordenker unserer Zeit. Es wird schwierig die Lücke, die er hinterlässt zu füllen.

„Your time is limited, so don’t waste it living someone else’s life.“ (Steve Jobs)

Das WordCamp 2011 in Köln – Mein Rückblick

Um es kurz und knapp auf den Punkt zu bringen: Es hat sich gelohnt. Angefangen hat es schon am Freitag mit einer Zugfahrt von Berlin nach Köln, die so einiges zu bieten hatte. Das Highlight war wohl der Stopp in Hannover, wo ein Wagon aus der Mitte unseres Zugverbands rausgenommen werden musste. Insgesamt hatte ich dann fast zwei Stunden Verspätung bis Köln. Nur gut, dass ich am Freitag und nicht erst Samstagmorgen angereist bin.

Ankunft und Location

Nachdem ich endlich das richtige Gebäude gefunden hatte und mich angemeldet hatte, gab es wie auch im letzten Jahr ein sehr tolles T-Shirt. Vor der ersten Session wollte ich mich noch schnell mit einem Cappuccino stärken. Das hätte ich lieber gelassen, denn er war ein löslicher, der mit viel zu wenig Wasser aufgegossen eigentlich ungenießbar war und mir noch 5 Stunden später einen unangenehmen Nachgeschmack bescherte. Die Räume der Uni, die für das WordCamp gebucht waren, hatten eine recht gute Einrichtung. Nur an die wippenden Stühle konnten sich so manche Teilnehmer nicht gewöhnen. Ich fand sie super bequem.

Weiterlesen →

Auf zum WordCamp 2011 am 24.09.2011 in Köln

WordCamp 2011 Köln

Es ist wieder soweit. Morgen findet das diesjährige WordCamp Deutschland in Köln statt. Eigentlich wäre ich dieses Jahr nicht mit dabei gewesen, aber glücklicherweise hat sich dann gestern doch noch die Gelegenheit ergeben. Es waren zwar schon alle Plätze weg, aber fragen kostet ja bekanntlich nichts und so konnte ich den Platz eines Teilnehmers einnehmen, der kurzfristig abgesagt hatte.


WordCamp 2011 Köln

Dann ging es nur noch darum eine günstige Verbindung nach Köln zu bekommen. Und nun sitze ich im Zug Richtung Köln und freue mich schon auf viele spannende Themen rund um WordPress.

Sollte wie auch im letzten Jahr der ein oder andere von euch auch mit dabei sein, dann treffen wir uns ja morgen wieder. Alle anderen kann ich nur damit vertrösten, dass ich auch dieses Mal wieder meine Eindrücke mit euch teilen und die besten Tipps nochmals hier vorstellen werde.