![]() |
|
…and Urbans Blog-O-MatSpaß an "krummen Dingen" |
Mehr als zwei Jahre ist es nun her, dass ich mein erstes offizielles WordPress Plugin Faviroll im WordPress Plugin Directory veröffentlicht habe. Lange Zeit stand es unverändert in der primitiven Version zur Verfügung. Ein Anwender kontaktierte mich neulich und fragte, ob ich nicht mal eine Überarbeitung im Backend machen könnte und verwies mich auf das andere Plugin Noio Iconized Bookmarks. Als ich zurückfragte, wieso er dann nicht das andere Plugin verwenden möchte, kam die Antwort, weil ihm die Cache Engine von Faviroll um Längen besser gefiele. Das fand ich gut und gab mir wiederum die Motivation mich mal wieder dem Thema zu widmen. In der Tat war das Backend nicht wirklich toll, aber ich wollte auch nicht 1:1 bei Noio abkupfern denn dieses Panel gefiel mir auch nicht in allen Details. Aber die Grundidee war gut.
Die PNG Cache Engine. Jedes Icon wird lokal als PNG im cache Verzeichnis gespeichert. Das Plugin bedient sich ausschließlich aus dieser Sammlung. Für die Icons finden keinerlei externe Zugriffe mehr statt. Hierdurch verhindert wird, dass der ein evtl. gerade belasteter externer Server die eigne Seite in der Performance herunterzieht. Die Unterstützung des Plugins wp-render-blogroll-links, falls man die Blogroll auch mal in einem Artikel einbauen möchte, wird’s da auch bunt werden.
Der Nachteil, dass manche ICO Images sich nur in schlechter Qualität ins PNG konvertieren lassen. Diesen blöden Effekt konnte ich (noch) nicht beseitigen. Aber ab sofort hat man mit den “custom icons” zumindest die Möglichkeit dem Bookmark ein Icon mit einer besseren Qualität zuzuweisen.
Sofortige Übernahme aller Aktionen, der SUBMIT Button ist komplett entfallen.
Alle Favicons können nun auf bequeme Weise beliebig den Bookmarks zugewiesen werden, einfach per Mausklick.
Jedem Bookmark wurde eine weitere Spalte für ein “custom icon” spendiert. Sollte die Standard Icons nicht ausreichen oder eine schlechte Qualität besitzen, kann man hier eine beliebge Bilder-URL angeben, das Bild wird dann automatisch mit in den cache als 16×16 Pixel Icon hinzugepackt und kann beliebig verbaut werden. Sollte es sich bei der URL nicht um eine Bilderquelle handeln, wird automatisch das Favicon des angegebenen Servers in den Cache gepackt.
Zurücksetzen der Original-Icons. Hat man sich zu sehr bei der Neuzuordnung der Favions verzettelt, kann man mit dem Button “restore bookmark icons to their origins ” den Urzustand der Bookmarks wiederherstellen.
Zusätzlich werden die Favions auch in der Standard Links-Verwaltung dargestellt.
So weit erst mal von hier, ich wünsche viel Spaß beim Icons klicken.
Falls jemand weitere Ideen für das Thema hat, immer her damit.
( Don’t forget to vote the plugin there )
Vespa fahren macht ungeheuren Spaß, keine Frage. Etwas trübend ist die Tatsache, dass der Fahrer im Soziusbetrieb auf die aktive Mitarbeit der hinteren Begleitperson angewiesen ist. Diese muss die Füßchen rechtzeitig von den hinteren Rasten nehmen sobald es ans Anhalten geht. Verpasst der Sozius dieses, bekommt der Fahrer einen unschönen “Knuff” von hinten in die Waden. Die Fussrasten sind etwas zu weit vorn angebracht, die Fußspitzen treffen genau den hinteren Beinmuskel des Fahrers (wenn dieser nicht gerade ein 2Meter großer Basketballspieler ist). Im www.vespaforum.de stand dieses Thema ebenso zur Diskussion. Die Lösung dort war die Verlagerung der Sozius Fussrasten mittels Adapterstücke. Netterweise hat “Andie” den Link zu seiner Dokumentation inkl. technischer Zeichnug dort im Forum hinterlegt. Beim Besuch meines Lieblings-Schrottplatzes Zabel in Helmstedt fiel mir neulich eine 3cm starke Aluminiumplatte in die Hände… “Müsste passen” dachte ich mir, für 10 EUR ging diese in meinen Besitz über. Mein altes Schlosserherz spürte, dass die Adapter demnächst an meiner Vespa ihren Platz finden werden. Der Weg dorthin war jedoch kein Spaziergang. Die Dinger sollten “handmade” hergestellt werden, der Arbeitsaufwand dafür ist unbezahlbar. Für die Umsetzung durften ausschliesslich Standard-Werkzeuge im Hausgebrauch verwendet werden. Ich wollte zeigen dass man keine Spezialwerkzeuge wie Oberfräse usw. benötigt um zukünftig komfortabler die Vespafahrt genießen zu können.
.
Hier die Auflistung der Arbeitsschritte “from Art to Part”.
Irgendwann einmal habe ich eine alte Militärkiste aus Holz mitgebracht, die jemand zum Sperrmüll an den Straßenrand gestellt hatte. Die Kiste war innen mit zwei herausnehmbaren Brettern in 3 Fächer unterteilt. Da ich derzeit diese Unterteilung nicht benötige, habe ich die beiden Bretter herausgenommen und nebeneinander ins Werkbank-Regal gestellt, ohne diese weiter zu beachten.
Als meine Frau nach Hause kam, sprach sie: “Wow, was muss das nur für ein tolles Zeug gewesen sein?”
Ich: “Hää, was meinst Du?”
Sie: “Ja, schau doch mal was da steht?”
Und was dort steht, musste ich sofort auf diesem Foto festhalten.
Jetzt haben die beiden Bretter einen besonderen Ehrenplatz im Regal erhalten.
Endlich eine schöne Lösung in zumindest in PHP, um einen komplexen String in seine Bestandteile zu zerlegen. Jeder der schon mal eine “google-like” Suchmaschine gebaut hat kennt das Problem, den eingegebene Suchstring in einen SQL-Querystring umzusetzen. Ein einfaches explode(' ',$suchStr) ist da leider nicht leistungsfähig genug, da u.a. komplexe bzw. verschachtelte Suchworte ( Blabla “Bla Bla” FooBar ‘Foo Bar’ ) also mit Anführungszeichen innerhalb des Suchstrings falsch zerlegt werden. Eine Google-Recherche nach einer pragmatischen Lösung brachte die abenteuerlichsten Routinen anderer Entwickler. Damit wollte ich mich noch nicht zufrieden geben aber auch nicht selbst beginnen, über evtl. reguläre Ausdrücke einen eigenen Stringparser zu bauen. Also habe ich erstmal etwas anderes gemacht. Eine erneute Recherche zu einen späteren Zeitpunkt führte mich zu: PHP explode the string, but treat words in quotes as a single word. Dort fand ich putzig, das oben ein interessantes RegExp-Pattern diskutiert wurde, am Schluß jedoch der schnörkellose Satz auftaucht: “This would have been much easier…”. Gemeint war die PHP Funktion, str_getcsv(), welche seit PHP 5.3 in zu den Standard-Funktionen gehört. Ich übernehme der Einfachheit halber einfach mal das “Lorem ipsum” Beispiel vom Stackoverflow, um das Ergebnis von str_getcsv zu demonstrieren.
Für alle die, die noch nicht PHP 5.3 einsetzen können, sollten sich die str_getcsv-Manualseite bei PHP.net durchsehen, dort sind abwärtskompatible Übergangslösungen gelistet.
$string = 'Lorem ipsum "dolor sit amet" consectetur "adipiscing elit" dolor'; var_dump(str_getcsv($string, ' '));
Ergebnis:
array(6) {
[0]=> string(5) "Lorem"
[1]=> string(5) "ipsum"
[2]=> string(14) "dolor sit amet"
[3]=> string(11) "consectetur"
[4]=> string(15) "adipiscing elit"
[5]=> string(5) "dolor"
}