My Universe Logo

My Universe Blog » Entries Tagged as Django

Website, Quo Vadis?

Posted by Jesco Freund at Sept. 17, 2011 12:01 a.m.

Vor etwas über einem Jahr ging das erste Posting mit der selbst gebauten Software auf Django-Basis online. Einiges hat sich bewährt (z. B. reStructuredText als Eingabeformat für Inhalte), anderes eher nicht (z. B. mehrsprachige Einträge – nutze ich so gut wie nicht, daher hätte ich mir die damit einhergehende Komplexität auch sparen können).

Nun ist auf jeden Fall eine Renovierung fällig. Django hat sich weiter entwickelt, und bis auf kleine Bugfixes habe ich mein Backend nie an die Neuerungen in Django angepasst. Die Kommentarfunktion musste zwischenzeitlich deaktiviert werden, weil ich keine adäquaten Spamschutzmaßnahmen vorgesehen hatte, und die Templates schreien ebenfalls nach Aufmerksamkeit. Auch im Hintergrund ist einiges zu tun: der selbstgestrickte Feedgenerator ist auf Dauer keine optimale Lösung, und die Hacks rund um den RST-Renderer sind ebenfalls dazu angetan, mir einiges Unbehagen zu verursachen. Und nicht zuletzt ist da noch der Ärger mit Redmine, der nach einer Lösung verlangt.

Doch wie soll es weitergehen? An der bestehenden Software weiterflicken, oder zumindest einzelne Teile herausreißen und neu schreiben? RST würde ich gerne weiter beibehalten, aber Textile und Markdown wären eine nette Ergänzung. Ansich ließe sich das problemlos in die bestehende Software integrieren, allerdings spukt mir in letzter Zeit auch eine andere Idee im Kopf herum.

Ausgehend von der Erkenntnis, dass relationale Datenbanken nicht der ideale Speicherort für größere Textdokumente sind, liebäugele ich mit der Idee, die Inhalte der Website einfach als Textdateien in einem SCM wie etwa Git abzulegen. Daraus ergeben sich jedoch neue Fragen und Herausforderungen, etwa wie in so einem Fall Tags realisiert werden können, oder wie genau die Erzeugung von HTML erfolgt – statisch über Hooks beim committen, oder dynamisch bei der Seitenauslieferung? Wie dynamisch muss die Website dabei überhaupt noch sein – und kann dann auf ein Framework wie Django verzichtet werden? Wie steht es dann um andere Bestandteile der Website – existierende und künftig geplante?

Wie man sieht, sind derzeit viele Fragen offen. Vielleicht finden sich im Laufe der nächsten Wochen einige Antworten, vielleicht ergeht es mir am Ende auch wie Kris, der vor einiger Zeit ebenfalls über seinen „Blog-Stack“ nachdachte (Link 1, Link 2) – und am Ende doch alles beim Alten ließ.

No comments | Defined tags for this entry: blog, Django

Python für Webanwendungen: Einführung

Posted by Jesco Freund at Oct. 25, 2010 12:49 p.m.

Django ist derzeit eines der mächtigsten RAD-Frameworks für's Web. Genau wie seine Konkurrenten (Ruby on Rails, Pylons, TurboGears & Co.) ist Django jedoch sehr stark auf Anwendungsfälle fixiert, in denen Datensätze in bzw. aus einem RDBMS angelegt, bearbeitet, angezeigt und gelöscht werden. In anderen Anwendungsfällen dominiert heute Java – wirklich gerechtfertigt ist das aber nicht.

Gerade Python macht es einem Entwickler dank WSGI und einer Vielzahl nützlicher Bibliotheken sehr leicht, sein eigenes Framework zusammenzusetzen. Dabei beziehe ich mich mit „Framework“ auf eine bestimmte Strukturierung der Anwendung, durch die Standard-Aufgaben (wie etwa das Rendern von HTML-Seiten) extrem einfach zu implementieren sind. Da ein ganzes Framework zu viel für einen einzelnen Blog-Eintrag ist, habe ich dieses HowTo in vier Stücke zerhackt:

  1. Aufbau einer Projektstruktur
  2. Integration von Genshi
  3. Authentifizierung gegen LDAP
  4. Deployment in einer Produktivumgebung

Zu guter Letzt noch ein kleiner Hinweis: Meine Code-Beispiele beziehen sich auf Python 2.7 – daher ist bei älteren Versionen (insbesondere <2.6) Vorsicht geboten. Gerade wenn Exceptions ins Spiel kommen, halte ich mich an die neue as-Notation gemäß PEP 3110.

No comments | Defined tags for this entry: CherryPy, code, development, Django, Genshi, python, TurboGears

Es ist vollbracht

Posted by Jesco Freund at July 27, 2010 5:04 p.m.

Nach beinahe dreimonatiger Sendepause und vielen Stunden Codewühlerei habe ich meine neue Website für einsatzfertig befunden – und heute live geschaltet. Als Backend kommt nun eine Django-basierte Eigenentwicklung zum Einsatz, welche die einzelnen PHP-Applikationen ablöst.

Hier die wichtigsten Änderungen im Überblick:

  • Die URLs im Blog haben sich geändert. In Anlehnung an Wordpress-URLs werden Einträge jetzt immer nach Jahr, Monat und Tag ihrer Veröffentlichung strukturiert und mit einem Slug (Bezeichner) identifiziert.
  • Lässt man besagtes Slug in den URLs weg, bekommt man das Blog für das jeweilige Jahr, den Monat oder den Tag angezeigt. Anstelle der Datumsfragmente lassen sich auch einzelne Autoren oder Tags verwenden.
  • Die alte Feed-URL http://www.my-universe.com/blog/feeds/index.rss2 ist nicht mehr gültig. Stattdessen funktioniert nur noch http://www.my-universe.com/blog/feeds/ – dafür aber mit derselben Flexibilität wie die Archiv-URLs (Angaben von Datumsfragmenten, Autor oder Tags möglich).

Alle anderen Änderungen betreffen im wesentlichen das Backend und sind daher primär für André und mich relevant.

Eine Bitte noch in eigener Sache: Ich habe mir zwar für die Entwicklung keinen Termindruck auferlegt und auch in meinem Staging-System ausgiebig getestet. Ich will aber nicht ausschließen, dass irgendetwas nicht wie erwartet funktioniert, Links vielleicht tot sind oder eingebundene Bilder fehlen. Wenn so etwas auffällt, bitte eine kurze Mail an mich – dann kann ich zumindest versuchen, es zu reparieren.

No comments | Defined tags for this entry: blog, Django

Neues vom Relaunch

Posted by Jesco Freund at April 25, 2010 3:32 p.m.

Es geht voran. Gestern Nacht habe ich die letzten Blog-Einträge auf die neue Plattform konvertiert – insgesamt ein Mammut-Akt, da die Konvertierung für jeden Eintrag von Hand durchgeführt werden musste. Damit sind nun die Inhalte im Staging-System komplett. Auch bei der Funktionalität sieht es mittlerweile gut aus; an diesem Wochenende habe ich noch mal einige Bugs erschlagen.

Einen Überblick über den Status bekommt man auf der Projekt-Seite für den Relaunch. Derzeit sind noch 5 Issues zu lösen; ich kann mir aber gut vorstellen, dass deren Zahl noch mal ansteigt, wenn ich im Laufe der nächsten Woche ein bisschen zum Testen komme…

No comments | Defined tags for this entry: blog, Django, Redmine

Ich lebe noch!

Posted by Jesco Freund at March 21, 2010 12:09 a.m.

… auch wenn man anhand der langen Zeit seit dem letzten Blog-Eintrag etwas anderes vermuten könnte :-| Da mir momentan etwas die Energie fehlt, zu allen Themen, mit denen ich mich beschäftige, eigene Blog-Einträge zu verfassen, hier ein paar Updates in der Zusammenfassung:

  • Backtory ist nicht tot oder aufgegeben. Ich habe aber entschieden, erst mal ein brauchbares Archiv-Format zu entwerfen – das wird sicherlich noch seine Zeit brauchen. So lange muss es halt mit Duplicity irgendwie gehen, auch wenn ich persönlich inkrementelle Backups verabscheue. Das Leben hält auch so schon genügend Gelegenheiten für Genickbrüche bereit…
  • Den halbfertigen Relaunch meiner Website habe ich erst mal unterbrochen – erstens keine Zeit, und zweitens gefällt mir das, was ich bisher gebastelt habe, schon wieder überhaupt nicht. Ziel ist ein kompletter Rewrite der Site mit Django, und dann gibt's auch endlich ein weniger augenkrebsförderndes Design – versprochen. Hat aber (leider) im Moment nicht die allerhöchste Prio…
  • cdeploy geht gerade in die nächste Runde. Größte Neuerungen des 0.2er Zweigs: es läuft jetzt unter Linux und ist in der Lage zu erkennen, ob eine Datei überhaupt deployed werden muss.
  • Mit Eclipse CDT stehe ich weiterhin auf Kriegsfuß – einerseits gefällt mir das Entwickeln mit Eclipse sehr gut; andererseits ist für mich die Einrichtung eines Projekts jedes Mal ein ziemlicher Albtraum.
  • Zu meinem Mercurial-Server gibt es jetzt auch endlich wieder eine Projektverwaltung. Hier verrichtet Redmine seinen Dienst, das sich endlich in brauchbarer Manier über die FreeBSD Ports installieren lässt. Dem Maintainer sei Dank!

Auch in nächster Zeit wird es hier vermutlich eher ruhig bleiben. Die wenige Zeit, die mir mein Job derzeit zur Verfügung lässt, brauche ich in erster Linie für private Dinge.

No comments | Defined tags for this entry: backtory, blog, Django, programming, Redmine, snafu

Beschäftigungstherapie fürs Wochenende

Posted by Jesco Freund at May 10, 2009 9:58 p.m.

Wenn man „nur mal eben schnell“ eine Applikation bauen will, kann dabei doch mal schnell das ganze Wochenende für draufgehen. Selbst wenn man dabei auf recht produktive Werkzeuge wie Python und Django zurückgreifen kann. Aber pünktlich zum Wochenend-Ende ist es vollbracht und mein Pasteboard ist nicht nur einigermaßen zu Ende programmiert, sondern auch per mod_wsgi auf dem Server deployed. Mal schauen, wie es sich so im Betrieb macht…

No comments | Defined tags for this entry: Django, python

Page 1 of 1