-
HTML5 in der Praxis – Erfahrungen einer Erstimplementation
Stefan · 27.10.09, 00:31 Uhr · HTML5, Programmierstil · Keine Kommentare
Das HTML5 ein aktuelles Thema ist, ist nicht mehr zu übersehen. Neben Youtube (komplette Demo Seite für HTML5), GoogleMail und Apple (Promovideos mit Video-Tag gelöst) gibt es zahlreiche andere Demo Seiten im Netz, die sich mit HTML5 beschäftigen.
Eines Vorweg: HTML5 ist leider noch lange nicht vollständig in den Browsern implementiert, da HTML5 derzeit noch den Status “draft” besitzt, sprich noch in Bearbeitung ist. Nichts desto trotz kann man verschiedene Features bereits heute nutzen. Daher hatte ich vor kurzem beschlossen, eines unserer neuesten Blogs auf HTML5 zu programmieren.
-
Kurioses: HTML und Listen
Stefan · 16.06.09, 17:45 Uhr · Allgemeines, Programmierstil · Keine Kommentare
Ich habe heute die Aufgabe gehabt, mir Volltext-XML Dateien inkl. Formatierung aus Redaktionssystemen anzuschauen. Das ist auch eine interessante Art, Aufzählungen/Listen zu schreiben:
<p><strong> • </strong> ...</p> <p><strong>• </strong> ...</p> <p><strong>•</strong> ...</p> <p><strong> • </strong> ...</p>
Mich erstaunt ja, dass es immerhin geschafft wurde, den Punkt als Sonderzeichen einzufügen.
-
Probleme bei Datenbankkonvertierung UTF8 und Latin1
Stefan · 14.06.09, 17:28 Uhr · Allgemeines, Movable Type, PHP, Tutorials · Keine Kommentare
Wer kennt es nicht: Man hat eine uralte MySQL-Datenbank die ursprünglich im latin1-Format gespeichert wurde (MySQL Default latin1_swedish, da MySQL eine schwedische Firma ist) und im Laufe der Zeit wurden Tabellen sowohl in latin1_swedish, utf8_unicode und utf8_general gespeichert. Mit viel tricksen kommen zwar noch im Frontend die richtigen Buchstaben raus, aber sobald man ein Datenbank-Upgrade wegen einer neuen Anwendungsversion braucht, hat man ein Problem. » Kompletten Beitrag lesen
-
Relaunch HalloHund.de
Stefan · 06.05.09, 23:27 Uhr · HalloHund, Konzepte · 1 Kommentar
Heute haben wir unserem Projekt HalloHund.de einen kleinen Relaunch unterzogen. Wir haben dazu die kompletten Übersichtsseiten neu designed und von Grund auf neu entwickelt, um unseren beiden Hauptzielen Usability- und Performanceoptimierung Rechnung tragen zu können.

-
Neues MovableType Plugin mt:TemplateModifiedDate und Minify
Stefan · 22.04.09, 22:37 Uhr · Konzepte, LesMads, Movable Type · Keine Kommentare
Wir sind ständig am Optimieren der Ladezeiten des Frontends unserer Websites und Blogs. So auch Letztens bei LesMads.de geschehen. Wir versuchen momentan alle Scripte und CSS über Minify zusammenzuführen und die Dateigrößen zu verringern.
Das Grundprinzip von Minify ist recht einfach: Verschiedene Dateien selben Typs werden in Gruppen zusammengefasst, und diese werden mittels einer URL neu aufgerufen. Nun werden diese Dateien zusammengeführt und verkleinert. Um auch performant zu arbeiten, werden diese Dateien zwischengespeichert (gecached).
Das ergibt nun folgendes Problem: Wie merkt dieses Script jetzt, wenn eine Änderung in einer der Dateien vorgenommen wurde? Indem man die Dateien versioniert, d.h. einen eindeutige Zeiger mit an die URL hängt. Oftmals werden da zufällige Timestamps genommen, allerdings würden diese das Caching ad absurdum führen. Daher nimmt man bei Nutzung eines CMS entweder – bei vorhandener Versionierung – die Versionierungs-ID, oder aber das letzte Änderungsdatum der Datei.
Bei unserem oft verwendeten Movable Type (OpenSource) 4+ hat man leider keine Versionierung und einen Standard-MT-Tag der das Modifizerungsdatum eines Templates ermittelt, gibt es ebensowenig. Daher habe ich folgendes kleines Plugin entwickelt, was dieses nun für uns tut:
» Kompletten Beitrag lesen -
Aufbau eines REST Web-Service – Teil 3
Stefan · 06.12.08, 18:30 Uhr · Konzepte, Tutorials · Keine Kommentare
Um einen REST Web-Service aufzubauen, eignet sich vor allem ein Framework, das nach dem MVC Pattern arbeitet. Wir haben uns als Default PHP Framework schon vor einiger Zeit für das Zend Framework entschieden, das vor allem durch die vielen mitgelieferten Klassensammlungen hervorsticht, einem dabei allerdings nicht wie bei anderen Frameworks üblich, eine MVC-Nutzung aufzwingt.
» Kompletten Beitrag lesen -
Internet Explorer und falsche Charsets
Stefan · 06.11.08, 15:29 Uhr · Allgemeines · Keine Kommentare
Der Internet Explorer birgt immer mal wieder kleine Überraschungen. Heute: Daten aus einem Webformular wurden nur im Internet Explorer in einem falschen Encoding geliefert und bei Umlauten auch die Datenbank-Inserts an der Stelle des Umlauts abgebrochen. Die komplette DB Struktur ist sauberes utf8, und auch die Zend Framework Response Objekte geben eigentlich einen korrekten Header mit dem korrekten Charset zurück.
Zusätzlich stand aber im Template folgender Meta-Tag:
<meta http-equiv="content-type" content="text/html; charset=utf8" />
Schaut eigentlich richtig aus. Das Problem war zu beheben, indem wir den Content-Type in folgenden geändert haben:
<meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
So hatte ich das Problem auch noch nie. Vor allem, da in allen anderen Browsern alles problemlos funktionierte und nur im Internet Explorer die Datenbank-Inserts abbrachen.
-
PHP5 Tipp: Serialisierte Objekte in Exceptions
Stefan · 28.10.08, 18:13 Uhr · Allgemeines, PHP, Programmierstil · Keine Kommentare
Wenn man in PHP5 ordentlich programmiert, dann tut man das in der Regel Objektorientiert und wirft bei Fehlern auch aussagekräftige Exceptions, um spätere Fehlerbehandlungen einfacher zu gestalten.
In einem meiner derzeitigen Projekte übergebe ich als Hilfsmittel hauptsächlich zum Debuggen in der Exception Message auch das serialisierte Objekt, das den Fehler verursacht hat. Solange man nur public Properties im Objekt hat, ist das auch alles kein Problem. Gestutzt hatte ich als die Exception geworfen wurde und mein serialisiertes Objekt einfach nur zur Hälfte in der Message stand. Schuld war der Geltungsbereich von Properties. Eine als
privateoderprotecteddeklarierte Eigenschaft wird serialisiert mit folgenden Flags gekennzeichnet:' . "\0" . 'oder' . "\0" . '*' . "\0" . '. Und genau das scheinen die Exceptions nicht zu mögen.Folgendes Testobjekt
class Test { protected $_property = array( 'id' => 12, 'content' => 'test' ); }erzeugt folgende Ausgabe in der Serialisierung:
'O:4:"Test":1:{s:12:"' . "\0" . '*' . "\0" . '_property";a:2:{s:2:"id";i:12;s:7:"content";s:4:"test";}}'Das Ganze jetzt in einer Exception gethrowt kam bei mir so an:
O:4:"Test":1:{s:12:"Lösung des Ganzen: Beim Throwen einer Exception statt einem
serialize($object)noch zusätzlich einvar_exportdrumherum setzen, dann klappt das auch mit der Exception:throw new Exception(var_export(serialize($object), true));
-
PHP5 Snippet: Mehrdimensionale Arrays zu eindimensionalen Arrays
Stefan · 15.10.08, 18:30 Uhr · PHP · 2 Kommentare
Man braucht immer mal wieder so kleine Helfer in Projekten, da diese eigentlich nützlichen Funktionen in PHP nicht integriert sind. Heute: Wie erzeuge ich aus einem mehrdimensionalen Array einen einfachen eindimensionalen Array der die Inhalte eines bestimmten Array Keys enthält:
» Kompletten Beitrag lesen -
Reminder: Google Developer Day in München
Stefan · 22.09.08, 12:26 Uhr · Allgemeines · Keine Kommentare
Morgen (23.09.08) findet der Google Developer Day in München im ICM statt. Die Agenda liest sich gut. Ich werde mir wohl die ganzen OpenSocial Geschichten anschauen.
Wenn wer noch da ist, kann sich ja dort gerne auf einen kleinen Plausch mit mir treffen.
