[ENC]BladeXP's Blog

Was die Welt nicht alles braucht!

Einträge in der Kategorie „Python”

Mercurial und SSH-Tuning

geschrieben von encbladexp am 26.09.2010 09:38:00.

Wer neulich meinen Artikel SSH-Tuning gelesen hat, dürfte auch bemerkt haben das Mercurial z.B. erst mit STRG-C das Terminal wieder hergibt. Das ganze ist natürlich relativ nervig, da es aber wohl nur wenige Programme gibt die damit Probleme haben, würde ich es in der Programmspezifischen Konfiguration beheben.

Für Mercurial müsste hierzu die ~/.hgrc so aussehen:

[ui]
ssh = ssh -C -o ControlMaster=no -o ControlPersist=no
Dies deaktiviert das SSH Multiplexing für Mercurial und schon ist das Problem natürlich verschwunden. Schöner wäre es natürlich wenn Mercurial direkt damit umgehen könnte ;-)

pyNeighborhood 0.5.1rc2

geschrieben von encbladexp am 20.07.2010 11:38:00.

Heute haben wir pyNeighborhood in der Version 0.5.1rc2 veröffentlicht. Hier der Eintrag vom Launchpad.

Für Ubuntu gibt es natürlich wieder ein PPA (Link), für Arch Linux ein AUR (Link) und für Debian kommen Pakete sobald die Final Version 0.5.1 veröffentlicht wurde.

Es werden noch freiwillige gesucht die im Launchpad die Übersetzungen für andere Sprachen wie Deutsch und Englisch fertig machen (Link) könnten.

pyNeighborhood jetzt auch im AUR aktuell

geschrieben von encbladexp am 15.07.2010 20:24:00.

Ich betreue nun seit heute das AUR Paket von pyNeighborhood. Es handelt sich dabei um die aktuellste Version aus den Quellen, d.h. diese ist wesentlich aktueller wie die PPAs die man z.b. auf Launchpad für Ubuntu bekommen würde.

Dies sollte einigen Leute das nervige manuelle installieren in Zukunft sparen. Das PPA wird wohl im laufe der nächsten Woche mal aktualisiert.

pyNeighborhood 0.5.1-rc1

geschrieben von encbladexp am 11.02.2010 22:23:00.

Seit Anfang der Woche gibt es pyNeighborhood in der Version 0.5.1-rc1 im Launchpad.

Zusätzlich gibt es ein neues PPA, so das es nun eine saubere Trennung zwischen meinem Persönlichen PPA und dem Projekt PPA gibt. Dies ist insbesondere sinnvoll da ich ja vielleicht auch mal was anderes als pyNeighborhood in meinem PPA haben möchte.

Hauptsächlich wurden in der neuen Vorabversion von pyNeighborhood übrigens diverse Bugs gefixt. Wenn wir nichts mehr finden was wirklich wichtig wäre hoffe ich das aus dieser Version 0.5.1 wird, welche wir dann in Ubuntu 10.04 LTS bekommen wollen. Der Maintainer hat mir zumindest zugesichert das es kein Problem sein dürfte!

Prima wäre es übrigens wenn ihr gefundene Fehler direkt im Launchpad meldet, Danke.

Auf den Spuren des Webteams...

geschrieben von encbladexp am 14.11.2009 20:22:00.

Ich hab ja auch vor ca. 2 Jahren angefangen neue Webanwendungen nur noch mit Python zu schreiben da mir PHP langsam aber sicher auf den Keks ging.

Am Anfang habe ich mit SQLite,Cheetah,SVN und CherryPy gearbeitet, was mir damals auch ausreichte. Doch mittlerweile haben sich meine Anforderungen und Wünsche geändert.

Bei der Suche nach Alternativen zu meinen bisherigen Tools war mir vor allem das Ubuntuusers-Webteam sehr hilfreich, daher kurz und Bündig: Danke!

Templating...

Das erste was ich getauscht habe war das Templating, was nicht heißen soll das Cheetah eine schlechte Template Engine wäre. Aber wenn man sich an die Vorteile von Jinja2 (vor allem den prima UTF-8 Support) mal gewöhnt hat will man kaum noch was anderes verwenden. Auch warf Cheetah bei mir viele Fehler bezüglich Python 2.4 Kompatibilität. Ein anderer, in meinen Augen großer, Vorteil ist das Jinja2 seine Template auch aus einer Datenbank oder auch anderswo her beziehen kann.

Datenbank...

Plain-SQL mit SQLite war am Anfang eine schöne Sache, doch jedes mal die Daten in Objekte einzulesen ist natürlich mehr oder weniger Aufwendig und daher auch sehr Fehleranfällig. Es musste also ein ORM her. Schon schnell (und durch einige Tipps vom Webteam) wurde mir klar das SQLAlchemy genau das ist was ich Suche!

Auch eine schöne Sache ist natürlich SQLAlchemy Migrate das es einem auf einfache weise erlaubt sein Datenbanklayout zu verwalten.

Webframework...

Auch an dieser Stelle war ich nach einiger Zeit mit CherryPy nicht mehr zufrieden. Vor allem das URL-Management und die eher fragwürdige Tauglichkeit unterhalb von mod_wsgi machten mir große Probleme. Aber auch cherrypy.session wollte nicht richtig Arbeiten sobald es mit mod_wsgi laufen sollte (Da wurde gerne mal ne Session vergessen).

Auch hier kam ein Tipp vom Webteam: Werkzeug!

Versionsverwaltung...

Am Anfang habe ich hier gerne Subversion verwendet, was vor allem daran lag das ich dies schon (nach CVS) eine halbe Ewigkeit kenne. Nachteilig war vor allem die Mobile Offline Nutzung, den auf ein Repository auf dem Server kommt man ohne Netzwerk/Internetverbindung nicht ran. Mit Mercurial geht das ohne Problem (git oder bazaar hätten das aber natürlich auch geschafft).

Fazit...

Hätte ich gleich das Webteam gefragt hätte ich mir ca. 4 Wochen arbeiten und jede Menge Frust mit Subversion sparen können!

pyNeighborhood 0.5.1 ist auf dem Weg...

geschrieben von encbladexp am 08.10.2009 12:57:00.

Ich bin ja seit einiger Zeit der Entwickler von pyNeighborhood.

Neuerungen

In der letzten Version 0.5.0 wurde das Suchen von Netzwerkfreigaben über smbtree erledigt. Es stellte sich jedoch heraus das dies nicht unbedingt die cleverste Entscheidung war. Daher haben wir für Version 0.5.1 wieder eine Browsing-Engine auf Basis von Version 0.4 entwickelt.

Das ist nicht die einzige Umstellung, auch wurde die Versionsverwaltung von Subversion auf Bazaar umgestellt, da sich diese wesentlich besser in Launchpad integriert.

Zusätzlich verwendet pyNeighborhood jetzt intern SQL zur Speicherung der Daten. Keine Angst, niemand muss deswegen eine Datenbank installieren: Wir verwenden SQLite.

Da nicht jeder Drag & Drop mochte haben wir jetzt auch implementiert das man mit einem Doppelklick eine Freigabe mounten kann. Der Rest der Änderungen sind hauptsächlich Bugfixes.

Testen erwünscht!

Da es sich hierbei um eine -rc0 Version handelt bitte ich darum pyNeighborhood einfach mal zu testen. Wenn alles gut läuft könnte dies auch die alte pyNeighborhood Version aus Ubuntu oder Debian ersetzen, was natürlich sehr wünschenswert wäre!

Bezugsquellen

pyNeighborhood steht unter der GPL-3 Lizenz und ist somit also OpenSource Software. Am einfachsten geht es wenn man Ubuntu verwenden, den hierfür habe ich schon ein fertiges PPA. Die andere Möglichkeit wäre direkt die aktuelle Bazaar Version zu verwenden in der vielleicht schon der ein oder andere Bug mehr ausgemerzt wurde. An diese kommt man über die Projektseite, auf welcher man auch gefundene Fehler melden sollte.

Der Wink mit dem Zaunpfahl...

Was pyNeighborhood noch fehlt ist ein richtiges schönes Logo im SVG-Format ;-)

pyNeighborhood 0.5.0

geschrieben von encbladexp am 14.02.2009 17:45:00.

So, endlich habe ich es mal geschafft pyNeighborhood in der Version 0.5.0 zu veröffentlichen!

pyNeighborhood ist ein Tool ähnlich der Netzwerkumgebung von Windows, es gibt bei Ubuntuusers dazu auch einen Wiki Artikel der das ganz gut erklärt (wobei der Wiki-Artikel noch für die alte Version 0.4 ist!).

Für Ubuntu Anwender habe ich hier ein PPA erstellt, alle anderen müssen das Quellpaket von Sourceforge runterladen.

Installation

Das Quellpaket kann wie folgt installiert werden:

sudo apt-get install python-glade2 gettext
tar xjvf pyneighborhood-0.5.0.tar.bz
cd pyneighborhood-0.5.0
sudo python setup.py install
cd po
sudo make install
auf einem Ubuntu System macht dies aber nicht wirklich Sinn (außer man hat noch Gutsy und älter, welche nicht durch mein PPA bedient werden!).

Start

Starten kann man pyNeighborhood am einfachsten über das GNOME Menü, oder auf dem Terminal mit:

pyNeighborhood

Deutscher Jabber Chatraum für Python gegründet

geschrieben von encbladexp am 26.01.2009 23:07:37.

So, es ist getan. Wir (ein paar Jabber Liebhaber und ich) haben einen Jabber Chatraum für Python gegründet. Erreichbar ist dieser via chat@conference.python.de!

Bedanken für das DNS Setup möchte ich mich natürlich beim Domain Inhaber Tom Schwaller sowie bei Christian vom Ubuntu-Jabber-Team welcher uns den Jabber Server spendet!

Natürlich ist am Anfang von einem neuen Channel nicht gleich die Welt los, aber ich hoffe mal das sich das mit der Zeit bessert. Ein paar andere Jabber Channel rund um das Thema Python wurden auch schon angeschrieben, mal sehen was sich hier auf dem Gebiet noch tut!

Imapbiff

geschrieben von encbladexp am 09.11.2008 18:52:00.

Wer kennt es nicht, man will mal schnell wissen ob es neue Mails in den wichtigsten IMAP Ordnern auf dem Server gibt. Doch leider gibt es (AFAIK) keinen brauchbaren biff Klienten für die Konsole, schade für Leute wo nur mal E-Mail's checken wollen, dafür aber kein X11 brauchen möchten!

Vor ein paar Tagen Stand ich auch vor diesem Problem, da ich sowieso mutt als Mail Client verwende und Python mag, bot es sich an sowas selbst zu schreiben.

Installation

Keine Angst, es muss nix Großartig installiert werden. An die neueste Version von imapbiff.py kommt man über Subversion:

svn co http://svn.stefan-betz.net/imapbiff

Nun hat man im Ordner imapbiff/trunk schon das ganze Programm imapbiff.py welches man sich nach belieben wohin kopieren kann.

Konfiguration

Beim ersten Start legt imapbiff Automatisch eine Konfigurationsdatei mit dem Namen ~/.imapbiffrc. Diese sieht so aus:

[main]
username = youruser
ssl = yes
password = securepassword
port = 993
server = imap.example.com

Die Felder sind IMHO Selbsterklärend und müssen an die Eigene Situation angepasst werden.

Verwendung

Das ganze sieht dann so aus wenn man imapbiff.py das 2. mal startet:

0 NEW and 8 UNSEEN Mail(s) in Mailinglisten/Inyoka
1 NEW and 1 UNSEEN Mail(s) in Mailinglisten/Ubuntu-LoCo
2 NEW and 2 UNSEEN Mail(s) in INBOX

Hinweis: imapbiff.py fragt nur IMAP Ordner nach neuen Mails ab die "Subscribed" (Abonniert) sind, andere Ordner werden nicht Berücksichtigt!

Bugs

Das Programm ist noch nicht richtig fertig, und es fehlt noch so einiges an Features, folgendes müsse noch gemacht werden:

  • Imapbiff zählt falsch, neue und ungelesene Nachrichten (sieht man am Beispiel) haben z.b. den selben Zähler.
  • Support für mehrere IMAP Konten (Erledigt in SVN Revision 7)
  • Support für Kommandozeilenparameter
  • Support um alle Ordner abzufragen
  • imapbiff.py stolpert aktuell über Ordner die zwar Abonniert sind, die es aber nicht mehr gibt (IMHO eigentlich ein Bug im IMAP Server, kann auch sein das dies nur bei GMX so ist)

Abgesehen davon funktioniert es schon recht brauchbar. Wer Verbesserungsvorschläge oder Patches hat die das ein oder andere Defizit beheben kann mir diese gerne an info@stefan-betz.net mailen.

Apache und CherryPy Problem

geschrieben von encbladexp am 10.10.2008 19:51:00.

Gerade habe ich auf meinem Webserver den aktuellen Entwurf einer Kundenwebseite Online gestellt. Leider hat das von mir verwendete Framework CherryPy noch ein Problem damit hinter mod_proxy zu laufen. Bis die Entwickler den Bug gefixt haben funktioniert aber auch folgendes in der VHost Konfiguration prima:

  SetEnv proxy-nokeepalive 1

Ohne diese Zeile bekommt man vom Apache ziemlich oft einen 408er der so aussieht (nein, da fehlt nichts!):

  TTP/1.1 408 Request TimeoutContent-Length: 0
  Content-Type: text/plain 

Das Problem liegt meiner Meinung nach am Keep-Alive Handling, wo genau der Fehler liegt konnte ich aber noch nicht lokalisieren :-(