Results for category "BibaBlog intern"

11 Articles

Rautiges 2009-06-07

  • In der letzten Woche habe ich den Adobe AIR Twitter-Client “Spaz” so aufgemöbelt, dass ich damit meine Twicker-Ergebnisse direkt übermitteln kann. Die Sourcen dazu habe ich Funkatron, dem Maintainer von Spaz, zukommen lassen. Damit lässt sich recht einfach demonstrieren, wie sich der Twitter-Client erweitern lässt. Hat bis dato wohl noch keiner gemacht. Vielleicht werde ich in der nächsten Woche noch ein kleines Tutorial dazu schreiben.
  • Mittwoch habe ich im BibaBlog die ganzen alten Artikel überflogen und den vorhandenen Quellcode vernünftig formatiert. Durch verschiedene Syntax-Highlighting-Plugins gab es gewisse Divergenzen in der Darstellung 😉 Außerdem werden die youtube-Videos wieder korrekt dargestellt.
  • Florian hat im Rahmen eines kleines Projekts ein Installationsscript für EFA (Elektronisches Fahrtenbuch für Ruderer) gebaut. Damit wird – ausgehend von einem Ubuntu-Alternate-Install – ein System aufgesetzt, das nur die nötigsten Tools enthält. Besonders cool dabei: Flo hat ein Script geschrieben, dass per udev automatisch erkennt, ob ein USB-Stick angesteckt wurde und wenn dem so ist, wird die Datenbank von EFA über eine Python-GUI gesichert. Lob und Anerkennung, cooles Projekt!
  • Freitag waren die Jungs und ich in Termintor 4. Der Film war an sich ganz cool, auch wenn es einige logische Unstimmigkeiten gab 😉 Die visuellen Effekte waren aber top. Danach machten wir einen kurzen Abstecher im Sausalitos und nisteten uns dann auf der Geburtstagsfeier von Maike ein.
  • Samstag habe ich die Onlineklausur für Mathematisch-logische Grundlagen abgelegt. Die ersten 5 Minuten war ich etwas neben der Spur, konnte mich dann aber fangen und die Aufgaben relativ gut abarbeiten. Als Themen kamen vor: Bestimmung einer Gruppe/Abelsche Gruppe; Beweis des Absorptionsgesetz von Junktoren anhand Wahrheitstabelle (das war easy, ich hoffe, ich hab die Frage auch richtig verstanden 🙂 ); Bestimmen der Endmenge von Mengenoperationen; Entscheiden, ob eine Funktion surjektiv, injektiv oder total ist; Induktiver Beweis einer Formel. An dieser Stelle möchte ich mich noch einmal bei Timo bedanken, der mich in den letzten Wochen tatkräftig bei LaTeX- und Mathe-Fragen unterstützte.
  • Die letzten Tage über habe ich an zwei Songtexten für die Band gearbeitet. Einer der beiden Texte ist bereits fertig, der andere geht dem Ende entgegen. Bei einer der nächsten Bandproben wird es der Öffentlichkeit präsentiert.

Fixes in WordPress

Ein paar Dinge aus meiner ToDo-Liste habe ich abgearbeitet:

  • Kommentare lassen sich nun hinzufügen.  Dem von mir benutzten Theme Fusion fehlte folgender Code in der comments.php (Zeile 75):
    <?php do_action('comment_form', $post->ID); ?>
  • Zur Anzeige der Quellcodes benutze ich nun die beiden Plugins SyntaxHighlighter Plus und Visual Editor. Die CSS-Datei des SHPs musste ich manuell noch einmal anpassen, da der dort enthaltende Code falsch formatiert gewesen ist.
  • Bis Seite 7 habe ich meine Artikel überarbeitet 😉

BibaBlog im neuen Gewand

“Innen ist alles neu” – wie die Toten Hosen so schön in ihrem gleichnamigen Lied singen.
Heute habe ich mich endlich dazu durchgerungen, den BibaBlog auf WordPress zu migrieren. Meine Vorbereitungsphase hat sich gelohnt, denn ich konnte meine Daten aus meinem alten Blog fast 1:1 übernehmen.
Bisher funktionieren einige Features noch nicht, sind nicht implementiert oder stören. Auf meiner Todo-Liste stehen folgende Punkte:

  • Überprüfung aller alten Artikel auf Rechtschreibung, Ausdruck, Aussehen etc.pp –
  • Meinen RSS-Aggregator sowie das Geek-of-the-Day-Feature habe ich nicht übernommen. GotD werde ich wahrscheinlich auch nicht mehr auf WordPress migrieren. Allerdings stehen die Chancen für eine Migration des Aggregators ganz gut: Alle bestehenden Aggregatoren konnten nicht genau das, was mein alter konnte.
  • Syntax-Highlighting funktioniert mehr oder minder schlecht. Die Ampersands werden falsch geqoutet.
  • Die Downloads aus dem alten Blog wurden nicht importiert – ich werde sie den entsprechenden Posts im Nachhinein hinzufügen

An der bestehenden WordPress-Installation musste ich etwas herum frickeln:

  • Der Syntax-Highlighter zeigt nun die Smilies nicht mehr im Quellcode an
  • Unter /error habe ich eine Seite mit den HTTP-Errors eingerichtet
  • Das Theme wurde überarbeitet
  • Die Kategorien mussten umbenannt werden
  • Mapping des RSS-Feeds und der Artikel auf die neuen Permalinks mittels mod_rewrite
  • Eventueller Einsatz eines PHP-Caching-Tools – die Performance des Blogs ist nicht sonderlich überzeugend
  • Viele kleine Dinge, die mir alle gar nicht mehr einfallen 😉

An Langeweile wird es mir sicherlich in den kommenden Tagen nicht mangeln.

BibaBlog goes WordPress?

Ich bin seit einiger Zeit am Überlegen, ob ich denn mein BibaBlog komplett auf WordPress umstelle. Mir fehlt leider die Zeit, mich auch noch um die Migration des alten BibaBlog-Codes  zu kümmern.
Viele der Sachen, die ich momentan BibaBlog bereit stelle, kann ich natürlich mit WordPress lösen: Tagging, Posts, Statistiken und RSS-Feeds.
SyntaxHighlighter gibt es ebenfalls als Plugin für WP, meine ShortTags kann ich mit den Shortcodes aus WP realisieren, die Downloads lassen sich mit WP-DownloadManager abfackeln.

Einen Grund, weiterhin XHTML/WML als Ausgabeformat anzubieten, gibt es für mich persönlich nicht mehr. Das HTC Touch Diamond hat zwar mit dem momentanen Design seine Probleme, aber ansonsten lässt sich theoretisch alles lesen.
Was allerdings als WordPress-Plugin geschrieben werden müsste, wäre mein “Letzter Geek”-Schmankerl und der RSS-Aggregator. Ich habe mir ein paar RSS-Planet-Plugins für WordPress angeschaut und die sagen mir alle nicht wirklich zu.
Außerdem muss über das .htaccess-File die bestehenden URLs zu den Einträgen umgebogen werden. Das ist aber wirklich schnell gelöst.

Etwas irritiert war ich beim Umgang mit Pages in WP. Jeder Page -im weitesten Sinne eine statische Seite mit Inhalt, der aus der Datenbank gezogen wird- kann ein eigenes Page-Template zugewiesen werden. Dieses Page-Template muss im /wp-content/themes/-Ordner liegen und kann beliebig benamt sein (z.B. meine-individuelle-page.php).
Wichtig ist nun, dass im Template als erstes

/*
Template Name: $Irgendeine Template-Beschreibung
*/

stehen muss – Finde ich persönlich etwas unschön gemacht.
Weiterhin ließ sich einer Page dieses Template nicht zuweisen, da die Option zum Zuweisen eines Templates zu einer Page überhaupt nicht im Admin-Panel existierte.
Ein kurzes Googlen brachte dann folgendes Ergebnis: http://frozr.com/wordpress/page-template-drop-down-missing-in-wordpress-26/ und somit konnte ich meiner Page mein eigenes Template zuweisen.

pubDate in den RSS-Feed eingefügt

So, jetzt habe ich es nach langer langer Zeit endlich einmal geschafft, dass pubDate-Tag in den RSS-Feed einzufügen.
Somit wird in den RSS-Artikeln das Datum auch korrekt angezeigt.

Lebenszeichen

Ja, ich lebe noch. Es gab in den letzen paar Tagen nicht sonderlich viel Aufregendes, wofür es sich hätte gelohnt zu bloggen.
Bis letzten Freitag war Marci bei mir, das Bootcamp haben wir beide erfolgreich hinter uns gebracht. Allerdings waren wir nicht sonderlich produktiv. Das einzig erwähnenswerte ist, dass wir unter http://partyinwob.mixxt.de unsere Party-Community für Parties in und um Wolfsburg eingerichtet haben. Somit können wir die nächsten LANs und Parties über diese Plattform planen.

Von Freitag bis Sonntag ging es dann mit der Firma nach Gifhorn zur Klausurtagung. Davon gibt es ebenfalls nicht viel zu berichten, da nur firmeninterne Dinge besprochen wurden.

Die Arbeiten an meinem Blog hingegen schreiten langsam aber sicher voran. Mittlerweile habe ich meine private Zend Framework-Library ein vernünftiges Scaffolding integriert und das Projekt “Commandlets” in ein stabiles Stadium gebracht. Hinter den Commandlets verbirgen sich XML-Tags, die ich in meinen Blogs-Posts verwenden kann. Jedes registrierte Commandlet kann in einem Post verwendet werden, z.B. erzeugt mir

Porschestraße 10, Wolfsburg

einen Link zu Google Maps, so dass man sofort auf die Location zugreifen kann. An sich klingt das relativ trivial. Warum nicht gleich einen Link reintippern? Ganz einfach: Die Commandlets können als Parameter den Status des Blog-Eintrags bekommen (ON_VIEW, ON_CHANGE, ON_CREATE). Somit lassen sich bestimmte Aktionen nur beim Erstellen eines Blogs ausführen – beispielsweise das Erstellen eines Trackbacks oder ähnliches. Das Commandlet <n:songs> würde z.B. eine Link-Liste zu youtube, last.fm und Google erstellen, so dass ich automatisch zu Gitarren-Tabs, Songtexten, Videos oder allgemeine Band-Informationen weitergeleitet werde.

Das “n:” steht übrigens für den Namespace. Jedes Commandlet muss mit einem Namespace beginnen. Dies war für das vernünftige Parsing nötig.

Nebenbei unterstützen die Commandlets von Haus aus die Unterstützung des Zend_View_Interfaces, so das man die Ausgabe der Commandlets in der jeweiligen View festlegen kann. Dies erlaubt mir in Verbindung mit meiner Klasse Ckl_View_Multiple, dass ich je nach Endgerät die Ausgabe aufpeppen kann.
Möglich wäre dann z.B., dass ich bei der Anzeige mit dem Handy einen Link zum Google Mobile Maps-Routenplaner bekomme, bei Anzeige mit Firefox o.ä. hingegen direkt Google Maps über die API integriere.

Zusammengefasst sind die Commandlets mehr als irgendwelche Templates, da sie direkt Aktionen im Backend triggern können.

Arbeiten bei gefühlten 45 Grad

Sommerzeit bedeutet nicht immer Ferienzeit – für mich hieß es in den letzten Tagen: Fehler in unserer IT-Infrastruktur fixen, bis die Tastatur glimmt. Unter anderem konnte die Administrationsoberfläche des McAfee ePO 3.61 nicht mehr aufgerufen werden. Überraschenderweise stellte ich nach einiger Zeit fest, dass unsere MSSQL MSDE-Instanz, auf der das ePO liegt, alle Benutzer aus der Datenbank gedroppt hat. Ich konnte mich weder mit Domänen-Administrator, noch mit sa einloggen. Wie das Problem zustande gekommen ist, ist mir ein Rätsel – aber jetzt läuft wieder alles und ich habe gleich auf das ePO 4.0 geupgradet.
Nebenbei etabliert sich langsam aber sicher Trac als ein gutes Bugtracking-System. Unsere komplette Infrastruktur wird über das Trac-Wiki dokumentiert, alle aufgetretenen Fehler kommen inkl. Lösung in den Bugtracker. Unsere Scripte für Backup, Tools u.s.w. liegen in einem zentralen SVN-Repository, das an das Trac angebunden ist.
Sicherlich ist dieser Lösungsansatz nicht unbedingt ITIL-konform, aber er funktioniert und das ganz gut.
Vor zwei Tagen ist in mir auch langsam die Idee des Deployens unserer Anwendungen gereift. Da alle bestehenden Deployment-Tools nicht direkt unseren Anforderungen entsprechen, habe ich beschlossen, etwas eigenes zu bauen.
Unser Deployment-Client läuft als Java-Tool auf den jeweiligen Deploy-Server. Sobald von einem zentralen Server über REST ein Deployment-Prozess getriggert wird, lädt sich das Tool das jeweils zu deployende Artefakt aus unserem Artefakt-Repository und führt die Installation aus. Alle Artefakte sind als ZIP-Datei verfügbar und besitzen eine deploy.xml-Datei. Diese wiederum benutzt Ant-Tasks.
Florian kümmert sich um den Client, damit er auch mal in den Geschmack einer zu programmierenden Servlet-Anwendung unter Java kommt (eingesetzt wird Java 1.5, Jetty und Ant) 😉

Unser momentaner Praktikant hat in den letzten Tagen von mir die Aufgabe bekommen, sich mit dem Zend Framework, CakePHP, Doctrine und Propel auseinander zu setzen. Für den Serverteil unseres Deyploment-Tools, den ich entwickle, habe ich mich für das Zend Framework und Doctrine entschieden.
Was mir besonders beim Zend Framework fehlt, ist die Möglichkeit des Scaffoldings. Zwar existiert ein Proposal, das ist aber weder ausgereift, noch für den Einsatz mit Doctrine gedacht. Im Internet existiert bis dato auch keine vernünftige Zend_Doctrine_Scaffolding-Klasse.
Deshalb habe ich mich heute Nachmittag daran gesetzt, und eine rudimentäre Klasse zusammenzuschustern. Die Ergebnisse lassen sich sicherlich hier in ein paar Tagen bestaunen.

Die Scaffolding-Klasse werde ich übrigens auch für meinen neuen Blog einsetzen. Sobald die Tage wieder etwas länger und dunkler werden, werde ich die komplette Seite auf das Zend Framework und ebenfalls Doctrine umstellen. Unter anderem ist für die neue Seite Google Maps-Integration, Post-Deployment über XML-RPC an andere Blogs, eine neue Bildergalerie, eventuell Anbindung an das Active Directory der Firma und ein bissel AJAX geplant. Das Design soll weiter bestehen bleiben und natürlich bleiben auch alle Einträge erhalten.

Der BibaBlog in neuen Kleidern

Die Überschrift sagt alles – danke Marc!

Mir geht es wieder etwas besser. Gestern hatte ich enormes Fieber, Kopfschmerzen ohne Ende – das komplette Programm Sommer-Grippe. Ich denke mal, dass ich heute zur LAN erscheinen werde.

Nichts ist härter als die Wahrheit

Ich habe so eben mein RSS-Modul geupdatet: Feeds werden nun in der Datenbank gespeichert und lassen sich im OPML-Format exportieren. Ist ganz schnuckelig, da ich nun auf meinem Handy alle Feeds auf einer Seite habe 😉
Gestern Go-Kart-Fahren war sehr cool. Einen Muskelkater habe ich zwar nicht, dafür ist mein unterer Rückenbereich voller blauer Flecken. Die Karts sind für meine Größe nicht optimiert.

Am BibaBlog wird sich die nächsten Wochen wieder einiges ändern: Marci ist so freundlich und stellt das Design auf die ECW-Farben um, außerdem wird der nervige InternetExplorer-Bug verschwinden.
Somit heißt es dann: BibaBlog goes ECW-Techblog.

Bugfixes im RSS-Feed

Ich habe ein paar Sachen im RSS-Feed geändert:
*Die Id des Posts wird nun richtig angezeigt
*Es werden die letzten 10 Posts geladen (und nicht 5 wie vorher)
*Zeilenumbrüche werden korrekt dargestellt