Kleinere Optimierungen

Auch heute gibt es wieder ein paar kleinere Optimierungen.

Die auffälligste Änderung betrifft die Tag Cloud – sie ist jetzt endlich eine. Wie üblich bei derartigen Wortwolken wird nun die Schriftgrösse der Links durch die Anzahl der mit den jeweiligen Wörtern getaggten Artikeln bestimmt. Eine Kleinigkeit, aber so wirkt die ganze Angelegenheit doch bereits viel „Web 2.0“-mäßiger…

Darüber hinaus wird neben dem Link zum Trackback der „Permalink“ dargestellt, unter dem der jeweilige Artikel dauerhaft verfügbar ist. Oder zumindest so lange, wie diese Site in dieser Form existiert.

Tags:
Kategorie:

Blog oder nicht Blog – Trackbacks!

Was ist ein Blog? Eine Software? Eine Web-Site? Eine Lebensphilosophie?

Diese Frage lässt sich wohl nicht abschliessend beantworten. Aber Stück für Stück kommt kuerbis.org dem näher, was allgemein als Blog bezeichnet wird. Typisch für jene Gattung Software ist die Trackback-Funktion, mit der man sich beim Verfassen eines Artikels direkt auf einen anderen beziehen kann. Der zitierte Artikel wird darüber mittels Trackback benachrichtigt („angepingt“), woraufhin der Verweis automatisch hinzugefügt wird.

Zumindest diese Hälfte des Trackback-Protokolls ist nun auf kuerbis.org implementiert, zu erkennen an dem unter jedem Artikel vorhandenen Hinweis auf die jeweilige Trackback-URL. Diese kann einfach kopiert und in der jeweiligen Blog-Software eingetragen werden.

Die andere Hälfte, die ausgehende Benachrichtigung per Trackback beim Schreiben eines Artikels fehlt dem System zwar noch, aber auch das ist nur noch eine Frage der Zeit – man erinnere sich, hier wird Django und somit Python eingesetzt – Stichwort „Batteries included“…

In der nächsten Zeit werde ich mich aber verstärkt um die Klausuren des aktuellen Semesters kümmern müssen, insofern könnte es doch noch ein wenig länger dauern. Also VWL und Kostenrechnung anstatt entspannter Programmierung mit Django / Python…

Tags:
Kategorie:

„Sprechende“ URLs in einer Minute

Der „slugify“-Filter macht’s möglich.

Längere URLs, dafür „sprechend“, d.h. der Titel der jeweiligen Seite wird – ein wenig abgewandelt – zusätzlich in den Link gepackt. Der Web-Server muss schliesslich nur noch damit umgehen können.

Dieses Feature gibt es nun auch für den Artikel-Bereich auf dieser Site.

Zeit für die Umsetzung: Etwa eine Minute.

Zwei, drei Templates ändern, dazu die Datei urls.py, in der beim Django-Framework das Mapping von URL zum betreffenden View enthalten ist. Genial. Habe ich schon erwähnt, dass mir Django immer besser gefällt? Und Python natürlich. Aber das versteht sich ja von selbst.

Des weiteren gibt es nun Links am Ende eines jeden Artikels, mit denen die URLs selbiger zu einigen der allseits beliebten „Social Bookmarking“ Dienste gepostet werden können. Den Anfang machen del.icio.us, Digg und Mister Wong.

 

Tags:
Kategorie:

Detailverbesserungen und Profilbilder

Nach geraumer Zeit gibt es heute mal wieder ein paar Neuigkeiten auf kuerbis.org.

Die erste betrifft den Footer, dieser ist ein wenig verändert worden, zeigt nun an prominenter Stelle einen Hinweis, dass diese Site auf Basis von Django erstellt wurde.

Die zweite ist weniger offensichtlich und betrifft den internen User-Bereich. Dort ist es nun möglich, eigene Profilbilder hochzuladen. Dies allein ist zugegebenermassen wenig aufregend. Doch da Profilbilder eine feste Grösse besitzen sollen, ist es wünschenswert, die Bilder nach dem Upload bearbeiten zu können. Dafür gibt es z.B. die JavaScript Image Cropper UI, die mit Hilfe der JavaScript-Libraries Prototype und Scriptaculous eine simple, web-basierte Oberfläche für diese Funktionalität bereitstellt. Diese Demo-Anwendung, welche auf PHP und ImageMagick basiert, hat bei der Implementierung ebenfalls geholfen.

Wir sind jedoch in der Welt von Django und Python, insofern kommt statt ImageMagick die Python Imaging Libraryzum Einsatz. Die Adaption ist – wie nicht anders zu erwarten – simpel und elegant.

Dennoch wird das Zuschneiden des Bildes bis auf weiteres die einzige Stelle sein, an der Scriptaculous hier Verwendung findet, denn an anderer Stelle setzt diese Site auf die wundervolle JavaScript-Library jQuery. Zum Beispiel beim Löschen des Profilbildes – kleine, aber nette Effekte sowie Ajax zur Kommunikation mit dem Server.

Der gesamte Quellcode steht selbstverständlich als Open-Source zur Verfügung, bislang bin ich zwar noch nicht dazu gekommen, das Subversion-Repository zu veröffentlichen, aber für Fragen stehe ich jederzeit zur Verfügung.

Update: Da haben sich wohl doch noch ein paar Fehler eingeschlichen, man sollte nicht zuviele Updates auf einmal machen…

Update 2: Die Fehler sind nun behoben. Eines der Probleme lag in der Verwendung der newforms-Library von Django, die sich noch in stetem Wandel befindet. So wurde aus clean_data nun cleaned_data. Nicht unlogisch, und sogar dokumentiert, aber bis gestern hatte ich noch nicht auf die aktuelle Version updated, so dass dies beim Testen natürlich nicht auffiel.
Ein zweites Problem lag schon etwas tiefer. Es handelte sich um fehlerhafte Lookups, infolge derer nicht diejenigen Objekte zurückgeliefert wurden, die man eigentlich erwartete. Auch dieser Fehler ist nun behoben.

Tags:
Kategorie:

Neu: Der User-Bereich

Und wieder eine kleine Neuerung auf dieser Site: Seit heute gibt es wieder einen User- bzw. „Community“-Bereich.

Damit knüpft diese Site langsam wieder an das an, was es auf den alten kuerbis.org-Seiten bereits vor langer Zeit gegeben hat. Doch diesmal natürlich auf Basis von Django und Python.

Der User-Bereich bietet eine kleine, aber feine Basis für Community-Anwendungen. Für die Anmeldung reichen grundlegende Daten wie Name und E-Mail-Adresse. Letztere muß natürlich bestätigt werden, bevor der Account freigeschaltet wird. Nach dem Einloggen können im internen Bereich dann z.B. die Nutzerdaten vervollständigt oder das Passwort geändert werden. Selbstverständlich ist eine jederzeitige Löschung des Accounts ebenfalls möglich.

Insgesamt alles nicht unbedingt neu oder besonders aufregend, aber dennoch beinhaltet die „ComCore“ getaufte Application die bis dato meisten Views und die umfangreichste Logik innerhalb der kuerbis.org-Anwendungen. Nur das Model ist vergleichsweise simpel gehalten, da es auf der von Django innerhalb Contrib zur Verfügung gestellten User Application basiert.

Ein kleines Schmankerl gibt es aber dennoch: Für sämtliche Formulare und deren Handling wurde die brandneue und nur in der Developer-Version vorhandene django.newforms-Library benutzt. Da die Dokumentation momentan noch etwas dünn ist, musste an einigen Stellen zunächst ein wenig experimentiert werden, aber es hat sich gelohnt. Die neue Library bietet wesentliche Verbesserungen, angefangen bei der Erstellung bis hin zur Validierung.

Momentan bietet der User-Bereich zwar noch nichts, was hier nicht auch ohne Account erreichbar wäre, aber die Voraussetzungen sind nun geschaffen, etwa wie auf der alten Site für private Fotoalben – oder auch ganz neue Anwendungen – also einfach abwarten…

Tags:
Kategorie:

Zeitreisen – es gibt sie.

Geschichten über Zeitreisen sowieso. Aber das meine ich nicht. Nicht im Fernsehen, nicht im Film.

Rein persönlich, individuell. Ob in die Siebziger oder irgendwann Anfang der Neunziger, beinahe täglich können sie uns begegnen, vielleicht beim Tanken, vielleicht im Supermarkt oder der Bäckertheke.

Dummerweise hat man in solchen Augenblicken ausgerechnet keine Zeit, um dies vielleicht geniessen zu können, um vielleicht ein Stückchen davon in die Gegenwart zu bringen. Geschweige denn dass man vielleicht mal schnell genug ist, um nicht nur ein paar Kennzahlen errechnen zu können. Aber die eigene Reaktionsgeschwindigkeit ist naturgemäß reziprok zur nachträglich empfundenen Relevanz. Und ändern läßt sich daran vermutlich nie etwas.

Sicherlich – die nächste Gelegenheit kommt bestimmt – so in ca. fünf Jahren…
Und Allegro. Danke sehr.

Aktuelle Empfehlung:

Tags:
Kategorie:

Feedback? Ja, bitte!

Eine kleine Neuerung am Rande – den Spammern sei Dank…

Heutzutage ist es leider nicht mehr möglich, ein ganz normales Feedback-Formular ohne (noch mehr) Anti-SPAM-Maßnahmen ins Web zu stellen. Zwar konnte dieses Feedback-Formular niemals missbraucht werden, dass Dritte Schaden genommen hätten (etwa durch Eingabemöglichkeit beliebiger Mailadressen, das wäre auch einfach nur grob fahrlässig). Somit war ich der einzige, der jene zweckfreien Ergüsse zu lesen bekam. Aber auf Dauer ist auch diese Werbung störend, eben aufgrund der Sinnlosigkeit derselben.

Daher die heutige kleine Neuerung – ab sofort wird das Feedback-Formular durch eine kleine Rechnung geschützt. Ich denke, das kleine Einmaleins beherrscht jeder, und ein wenig Addieren oder Subtrahieren ist auch nicht zuviel verlangt. Schliesslich sind die bekannten CAPTCHA-Bilder auch mitunter sehr mühsam zu lesen. Ergo einfach ein wenig rechnen, das Ergebnis eingeben, und schon kommt das Feedback auch bei mir an.

Wem das zuviel ist, kann natürlich gerne per E-Mail mit mir in Kontakt treten (Adresse dürfte bekannt sein, wenn nicht, hilft z.B. Google), oder sich „Social Software“ wie OpenBC/Xing bedienen.

Tags:
Kategorie:

Django – 200!

Mindestens…

Die nächste Mini-Applikation von kuerbis.org wird ein kleines Quickpoll-System. Nichts Besonderes, aber aus irgend welchen Gründen bin ich in den letzten Jahren mit PHP nie dazu gekommen, dies zu programmieren.

Falls man dazu ein Konzept haben muss, hatte ich dies längst in der Schublade – beispielsweise sollte quips im Gegensatz zu den meisten ähnlichen Systemen die Möglichkeit besitzen, nicht nur Einfach- sondern auch eine Mehrfachauswahl anzubieten.
Nur eine Kleinigkeit, aber nett.

Und natürlich das Admin-Tool nicht zu vergessen – öffentlich unsichtbar, aber zwingend notwendig für den Betrieb, und wie so häufig der aufwendigste Teil des gesamten Programms.

Nun sitze ich im ICE von Köln nach Hannover. Das Data-Model hatte ich am letzten Sonntag in etwa einer Stunde hineingezimmert. Heute sitze ich seit vielleicht einer halben Stunde an der Abstimmungs-Routine. Jetzt. Django mit Tempo 200 zwischen Hamm und Bielefeld. Der Kern von quips ist fertig.

Noch ein paar Verschönerungen, noch ein paar Aufräumarbeiten, der Code der Kommentierungs-Funktion gefällt mir noch nicht ganz, die IP-Sperre muss noch integriert werden, und später soll quips auch die Auswertung grafisch darstellen können.

Dank Django mit „Batteries included“ Python lassen sich derartige Web-Anwendungen jedoch unglaublich schnell entwickeln. Sicherlich ist Django nicht zu vergleichen mit z.B. reinem PHP – ohne zusätzliche Frameworks. Und die Entwicklungen der letzten Zeit zeigen auch hier Fortschritte, etwa in Symfony, CakePHP o.ä.. Und der Urvater, Ruby on Rails, soll hier auch nicht vergessen werden.

Fazit: Web-Applikationen programmieren macht wieder Spass. Schnelle Ergebnisse, sauber erstellt, leistungsfähig in der Anwendung.

Aktuell fährt dieser ICE nur noch 160 km/h. Naja, man kann nicht alles haben…

Tags:
Kategorie:

kuerbis.org Relaunch

Willkommen auf den neuen Seiten von kuerbis.org!

Es wurde langsam Zeit, nach einigem Stillstand ist es endlich geschafft, kuerbis.org hat ein neues Gesicht bekommen. Neben den eigentlich weniger wichtigen Design-Änderungen gibt es einige weitere Neuigkeiten…

Rückblick

Die erste Generation dieser Site bestand aus nur einigen statischen HTML-Seiten. Dies hat Anfang 1999 für einen privaten Web-Auftritt vollkommen ausgereicht, es gab letztlich auch nicht allzu viel zu sehen. Für einen Trip in die Vergangenheit empfehle ich einen Blick auf archive.org.

Die darauffolgende Generation brachte PHP ins Spiel, und selbstverständlich eine Datenbank. Und so blieb es eine ganze Weile, Features wie der Bilder-Bereich, der persönliche Login und das unumgängliche Gästebuch wurden nach und nach hinzugefügt. Neben den reinen Inhalten war ein Aspekt von kuerbis.org jedoch insgeheim wichtiger – es handelte sich um mein privates Experimentierfeld für neue Anwendungen bzw. Skripte.

Baustellen…

Auf den öffentlichen Seiten weniger ersichtlich waren die Änderungen im Hintergrund. Aus den Libraries, die ich im Laufe der Zeit schrieb, und einigen neuen Ideen, die in etliche Skripte einflossen, hatte ich im Laufe des Jahres 2005 ein kleines Content Management System (CMS) bzw. Framework namens Oovebobe zusammengestellt.

So schien es wohl nur eine Frage der Zeit, bis kuerbis.org auf Basis von Oovebobe neu aufgebaut werden sollte. Doch wie dem so ist – genau der Zeitfaktor war es, der dies verhinderte. Oovebobe befindet sich in einem Stadium irgendwo vor alpha, d.h. die meisten Funktionen sind zwar vorhanden und nutzbar, aber für die Verwendung im realen Leben fehlt noch die eine oder andere Kleinigkeit, was auch der Grund ist, dass Oovebobe noch nicht „richtig“ veröffentlicht worden ist. Dafür fehlt insbesondere die Dokumentation. Und wahrscheinlich sind es diese Features, die noch einmal die Hälfte der Entwicklungszeit des gesamten Systems kosten…

Parallel dazu sorgten andere Systeme und Stichwörter für Furore – CRUD, DRY, Rapid Development usw., für die Web-Entwicklung in Form von Ruby on Rails, Django, CakePHP, TurboGears, Symfony und etlichen anderen.

Die Qual der Wahl – welches Tool für den längst geplanten Relaunch nehmen? Zum Aufbau mit Oovebobe hätte ich noch eine Weile gebraucht – letztlich zu lange. Bestehende CMS, etwa Mambo oder Typo3 kamen aufgrund verschiedener Nachteile ebenfalls nicht in Frage. Dazu vielleicht an anderer Stelle mehr. Mit den neuen Frameworks jedoch war es plötzlich möglich, mit relativ wenig Aufwand schnell zum Ziel zu kommen und dabei trotzdem etwas Eigenes zu kreieren. Nach kurzer Evaluation und Test auf einer anderen kleinen Site fiel die Entscheidung schliesslich zugunsten von Django. Zu den genauen Gründen – vielleicht auch später mehr…

Back to the roots

So entstand diese Site nun auf Basis von Django, ergo Python, in Verbindung mit einer SQLite Datenbank. Momentan fehlen auch noch einige Features, die z.T. bereits im Entwicklungsstadium sind, aber diese werden eben genau dann veröffentlicht, wenn sie fertig sind. Die relevanten bzw. aus meiner Sicht wichtigen Inhalte wurden übernommen, andere, dies betrifft zunächst das Gästebuch, was nicht wirklich notwendig ist, sowie die Bildersammlung, werden auch in absehbarer Zeit nicht neu aufgelegt. Die Fotos werden zunächst weiter auf einer Sub-Site bleiben, die alten Benutzerdaten gelten dort nach wie vor, der entsprechende Link wird in Kürze hier veröffentlicht.

Neue Features sind natürlich erstmal das Artikelsystem, was vorher in dieser Art nicht vorhanden war und als Art CMS oder auch Blog eingesetzt wird. Jeder Benutzer ist herzlich eingeladen, zu ausgewählten Artikeln einen Kommentar abzugeben. Völlig neu, auch weil zugegebenermaßen gerade „in“, ist die Navigation mittels Tags, wobei das Tagging anwendungsübergreifend konzipiert wurde, was eine transparente Wiederverwendung in weiteren Applikationen ermöglicht.

Zukunft

Insgesamt plane ich, kuerbis.org persönlicher und interaktiver werden zu lassen, und somit auch wesentlich öfter hier den einen oder anderen Text zu verfassen, ähnlich einem Blog. Aber nur ein bestehendes Blog einzusetzen, wäre wiederum zu langweilig gewesen, ganz abgesehen von den zu häufigen Patches wegen diverser Sicherheitsrisiken, die nur Zeit und Nerven kosten. Statt dessen wünsche ich mir kuerbis.org als lebendiges und dynamisches System wachsen zu lassen, als Experimentierfeld, in welchem die Programmierung selbst nach Feierabend noch Spass macht. :-).

Tags:
Kategorie: