Tutorial: Django - Hello World (WSGI-Edition) Sonntag, 10. Mai 2015

Nachdem wir bereits ein Hello World durch den in Django eingebauten Webserver haben ausgeben lassen, beschaeftigen wir uns nun damit, wie dies aussehen muss, falls wir dies mittels WSGI durch einen anderen Webserver ausgeben lassen wollen.

Im Folgenden werde ich gunicorn verwenden, jedoch sollte uwsgi oder mod_wsgi (fuer den Apache) genau so gut funktionieren. Dabei sei auch erwaehnt, dass ich noch nicht ausreichend Erfahrung mit uwsgi und gunicorn habe um fuer eine der beiden Seiten Partei zu ergreifen, bisher erscheint mir dies eher eine Glaubensfrage zu sein. Wer jedoch Apache nutzt und nur eine Python-Version braucht, wird mit mod_wsgi gluecklich ...

Tutorial: Django - Hello World Freitag, 8. Mai 2015

Um ein Django-Projekt zu starten braucht es nicht immer viel, zumindest nicht so viel wie in manch anderem Tutorial als minimales Setup angegeben wird. Zum Verstaendnis von Django kann es imho jedoch praktisch sein, wenn man sich bewusst ist, wie wenig noetig ist, damit Django laeuft.

Vorweg: Ich finde es in Buechern und vielen Tutorials immer sehr anstrengend, wenn erst Mal Zeile fuer Zeile des Codes erklaert wird, ohne dass man eine Vorstellung vom Gesamt-Bild hat. Deswegen nicht wundern, wenn ich erst den Code praesentiere, dann das Ergebnis und danach erst beschreibe was da passiert.

Virtual Environment

Zu Erst erstellen ...

Tipps&Tricks: Django Secret Key erzeugen Mittwoch, 7. Januar 2015

Je nachdem, wie man seine Django-Konfiguration verwaltet, stellt sich die Herausforderung, dass man einen neuen Secret-Key benoetigt. Und an der Stelle moechte ich jeden dazu raten, niemals seinen Secret Key auf mehreren Rechnern zu nutzen (ausser es ist ein Cluster, da ist es quasi ein Muss) oder gar in ein VCS zu importieren.

Da Django hier nichts spezielles vorgibt, kann der String an sich beliebig aussehen, solange er nicht leer ist. Somit kann man z.B. pwgen benutzen, wenn man sich einen neuen Key erstellen moechte. Um ebenfalls einen 50-Zeichen langen Key zu erahlten (django-admin.py startproject erzeugt einen 50 ...

Tipps&Tricks: Mit Git lokale und entferne Branches loeschen Donnerstag, 4. September 2014

In der Regel werden Feature-, Hotfix- und Release-Branches nur lokal erzeugt und nicht auf einen Remote-Server gepushed, da es jedoch hin und wieder Mal vorkommen kann (warum auch immer), sollte man einige Fall-Stricke beachten.

Die Befehle

Lokaler Branch loeschen, egal in welchem Zustand er sich befindet

Solange man sich nicht im zu loeschenden Branch befindet, kann dieser, unabhaengig davon in welchem Zustand er sich befindet, geloescht werden. Dabei gehen alle nicht migrierten Aenderungen verloren.

git branch -D hotfix

Lokaler Branch loeschen, nur wenn dieser vollstaendig migriert wurde

Um keine Aenderungen zu verlieren, sollte man besser -d verwenden, da dieses abbricht ...

Tipps&Tricks: SpamAssassin 3.4.0 --nouser-config Problem Freitag, 22. August 2014

Mit Ubuntu 14.04 haelt ebenfalls SpamAssassin in der Version 3.4.0-1 Einzug, welches bei der Verwendung von --nouser-config einen unschoenen Bug mitbringt, welcher in Kombination mit --nouser-config dafuer sorgt, dass SpamAssassin nicht mehr seine Bayes-Dateien aktualisiert. Ein Fehler sieht dabei z.B. wie folgt aus:

 spamd[12345]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile debian-spamd/.spamassassin/bayes.lock.example.com.12345 for debian-spamd/.spamassassin/bayes.lock: Datei oder Verzeichnis nicht gefunden

Dabei ist das for debian-spamd der interessante Teil. Hier kann prinzipiell auch ein anderer User stehen (z.B. Debian-exim oder mail oder ...

Tipps&Tricks: Mac OS X und Such-Domains Montag, 4. August 2014

Seit OS X Lion (10.7) verhaelt sich die Namensaufloesung im Zusammenhang mit den Such-Domains nicht mehr wie man dies erwarten wuerde. Hat man z.B. die Domain example.com, welche auch bei den Such-Domains eingetragen ist, und einen Host mit dem FQDN webserver.example.com kann man einfach ssh webserver im Terminal aufrufen und alles ist gut.
Hat man nun jedoch einen Server mit dem FQDN server1.webserver.example.com, wuerde man erwarten, dass man diesen mittels ssh server1.webserver erreicht. Jedoch erhaelt man nun die Meldung:

ssh: Could not resolve hostname server1.webserver: nodename nor servname provided, or ...