Am Rande notiert ...

Luban: a generic “language” for creating user interface — luban v0.2 documentation. Mal angucken – könnte bei meiner ewigen Suche nach einem kompakt zu nutzenden Userinterface helfen. Speziell Web als UI wird ja immer interessanter mit den ganzen Sachen die in dem Bereich in den letzten Jahren entstanden sind.

PyPy Status Blog: PyPy 1.6 – kickass panda. Wird immer besser – ctypes sind jetzt richtig fix (das ist eine der FFI Optionen in Python) und es gibt Beta-Unterstützung für C-Erweiterungen aus dem cpython-Umfeld (wobei das nur eine Notlösung ist, direkte PyPy-Erweiterungen werden eigentlich immer effizienter sein, aber so kriegt man wenigstens einige der Erweiterungen überhaupt verfügbar solange diese keine eigene PyPy-Version bieten). Oh, und es gibt einen ersten Ansatz für ein numpy Modul das direkt mit dem JIT von PyPy integriert ist – noch nicht vollständig, aber ein Anfang ist gemacht.

The Python Standard Library By Example – Doug Hellmann. Für all die, denen eine gedruckte Version des Internets lieber ist: das ist ein Buch mit all den PyMOTW (Python Module of the Week) Artikeln drin, aufpoliert und angehübscht und schön zusammengestellt. Sicherlich sehr praktisch, denn manchmal hat man einfach ein Buch schneller zur Hand als einen Computer – und im Bett sind Computer sowieso verboten. (Achtung: bezüglich Bett, das ist ein 1344 Seiten Schinken!).

Python and fileinput – All this. Ich kenn das Modul, ehrlich. Aber irgendwie ist es mal wieder meiner Erinnerung entschwunden. Ist wirklich eine praktische Sache wenn man Kommandozeilentools schreibt, einfach weil es einem das Unix-typische Behandeln von Input abnimmt.

ipdb macht den Python Debugger etwas hübscher und bedienbarer indem es die Hilfsmittel von ipython integriert. Wenn man sowieso mit ipython arbeitet ist es vielleicht eine gute Idee auch ipdb zu installieren. Oder man nimmt pdbpp, welches ähnliche Features ohne ipython zur Verfügung stellt (z.B. könnte man das mit bpython kombiniert einsetzen).

rad2py – Rapid Aplication Development platform for python. Huch, wieso kenne ich das noch nicht? Sieht interessant aus, wenn auch in der Beschreibung etwas Kopflastig. Und es ist noch in einem sehr frühen Stadium (erster voller Prototyp für November 2011 geplant).

Python, SymPy and Quantum Physics. Bisher waren NumPy/Matplotlib sowie SymPy für mich mehr oder weniger zwei Welten – in diesem Blogpost wird gezeigt, wie man diese beiden verbinden kann, also seine Funktionsdefinitionen über SymPy symbolisch erarbeiten und dann nach NumPy überführen um dort numerische Untersuchungen zu machen. Was gerade im Zusammenhang mit der qtconsole von ipython interessant ist, weil die nur matplotlib Plots inline anzeigt, SymPy Plots aber in einem eigenen Fenster (da diese über pyglet laufen), was zur Speicherung eines Arbeitsergebnisses eher blöd ist.

wsgi_lite. Da ich ab und zu mal „roh“ gegen WSGI programmiere nicht ganz uninteressant für mich – ein verschlanktes WSGI, welches simplere Aufrufkonventionen für Middleware und Applikationen definiert und damit einfach den Code noch etwas weiter reduziert. Für ganze Apps bringt es in der Regel nicht so viel wie für Middleware, da man Apps üblicherweise ja mit einem Webframework schreibt und das einem schon diesen ganzen Teil erleichtert.

Issue 438 – pyglet – pyglet 1.1.3 fails on Snow Leopard. Ach menno, das ist jetzt echt ärgerlich. Pyglet wird von Sympy benutzt um mathematische Ausdrücke auszugeben. Dummerweise benutzt Pyglet auf OSX aber Carbon – und das ist nur 32bittig. Und alle Versuche von mir da irgendwas auf 32bit zu zwingen waren vergebens – eigentlich geht das per Environment Variable oder alternativ mit dem arch Tool, aber aus irgendeinem Grund (wahrscheinlich wegen interner indirekten Aufrufe von Programmen) wird das bei Python ausgerechnet nicht so gemacht wie dokumentiert. Ärgerlich, weil Sympy schon länger (nicht erst seit der QT Konsole) auf der Liste der auszuprobierenden Sachen steht.

Innovations in iPython. Sehr interessante Sachen, die bei ipython passieren – damit wird das schon sehr ähnlich zu typischen Mathe-Umgebungen ala Maxima oder Mathematica. Jedenfalls wenn man Sympy und solche Sachen installiert. Die QT Konsole hat bei mir jedenfalls nach etwas rumprobieren und nachinstallieren von Paketen mit Homebrew funktioniert. matplotlib kriege ich aber generell nicht auf Lion installiert, da hakt noch irgendwas, schade – das wäre auch interessant mit dem pylab Modus. Hier gibt es noch mehr zur QT Konsole.

WSGI and the Pluggable Pipe Dream | Armin Ronachers Thoughts and Writings. Einfach mal lesen, damit man einen guten Überblick bekommt, was WSGI eigentlich so alles ist und was damit machbar ist und wo es vielleicht auch mal klemmt.

WebKit in PyQt – rendering web pages. Da ich mal wieder über GUI Bibliotheken und Tools grüble und mit Python und Qt rumspiele sollte ich natürlich nicht die WebKit-Integration von Qt vergessen, die ist wirklich schön einfach realisiert, wie diese recht simplen Beispiele zeigen. Und die Qt-Oberflächen unter OSX sind  zwar nicht 100% wie native Anwendungen, aber schon deutlich besser als die von GTK. Und man kann seinen Code dann auch auf anderen Systemen laufen lassen, ohne große Handstände. Auf dem Blog gibt es noch mehr sehr interessante kleine Artikel über Python und Qt.

Orange – Data Mining Fruitful & Fun. Wow, gerade drüber gestolpert, das kannte ich noch nicht, glaub ich. Eine GUI-Oberfläche mit einem Node-Interface zur Definition von Datenanalysen und Visualisierungen, wobei diese Knoten in Python programmiert sind. Das ganze Interface ist mit QT gebaut, daher gibts da auch eine OSX Version davon. Wenn man also größere Datenmengen durchwühlen muss, ist das sicherlich mal einen Blick wert, zumal es Open Source ist und man sich da ja nix vergibt.

Sage: Open Source Mathematics Software. Einfach weil ich ja letztens über Worksheet-Interfaces gegrübelt habe und drüber nachdenke, was es da alles so an Auswahl gibt – Sage ist ja nicht nur ein Mathematik-Paket, sondern primär erstmal eine gigantische Modulsammlung für Python und ein Worksheet-Interface ebenfalls für Python. Ok, man benutzt einen Webbrowser gegen einen lokal laufenden Webserver, aber trotzdem ist das eigentlich eine nette Sache. Und mitlerweile ist Version 4.7 mit vielen Änderungen draußen. Und man kann gute Sachen ruhig mal wiederholen. Billiger als Mathematik ist es allemal und Python gefällt mir auch deutlich besser als Programmiersprache. Da ich warscheinlich dann irgendwann mir meinen eigenen Server installieren will, um auf Notebooks von überall zugreifen zu können, hier mal ein Blogmark auf eine Anleitung, wie man mit Ubuntu einen eigenen Sage Server baut.

XMPPFLASK — XmppFlask v0.1 documentation. Definitiv ein interessantes Projekt – ein XMPP Bot in Python, der eine ähnliche Struktur hat wie Flask, also einfache Definition für XMPP Handler mit Routing von Events. Da ich immer mal wieder vor hatte mir XMPP als Backbone für verteilte (also weit verteilte) Anwendungen mit Online/Offline-Möglichkeit anzugucken, mal geblogmarkt.

Pattern Matching In Python. Interessanter Artikel für Leute wie mich, also für Leute die Snobol4 oder dessen „Nachfolger“ (in Tüddelchen, weil es ja dann doch eine gänzlich andere Sprache ist) Icon mögen und mal eine Alternative zu regulären Ausdrücken haben möchten. Implementiert ein dem Icon-Modell sehr ähnliches Pattern-Matching-System, komplett mit Backtracking und Generatoren. Ist allerdings aus 2004 und ist eher eine proof-of-concept Geschichte, nicht unbedingt ein direkt nutzbares und installierbares Python Modul. Im Gegensatz zu SnoPy ist es aber reines Python und nicht ein Swig-basierter Wrapper für eine Ada Library.

WSGID When your WSGI app becomes a nix daemon. Mongrel2 von Zed Shaw hat mich schon geraume Zeit interessiert, aber das grösste Manko war, dass es nicht viele Python Frameworks gibt, die direkt mit Mongrel2 arbeiten. wsgid löst das Problem, es ist ein WSGI Server für Mongrel2 und kann damit dann Frameworks ankoppeln, die unter WSGI laufen können – zum Beispiel ist damit Mongrel2 als HTTP Server für eine verteilte Django-Installation benutzbar. Durch den Einsatz von ZeroMQ bei Mongrel2 ist das ganze dann deutlich flexibler strukturierbar als mit den klassischen (FCGI basierten) Serverintegrationen.

Kivy: a crossplatform framework for creating NUI applications. Interessante neue GUI-Library für Python, läuft auf verschiedensten Plattformen (und neben den drei Großen Desktopumgebungen ist mit Android ist auch schon eine mobile dabei) und kann OpenGL zur Beschleunigung der Ausgabe einsetzen (intern haben die einen JIT, der die Basisfunktionen compiliert und so schnelle Ausführung ermöglicht).

Bulbflow: a New Python Framework for Graph Databases. Auch wenn ich immer wieder denke, Graphdatenbanken sind eigentlich sowas von 70er Jahre, nicht alles was alt ist ist automatisch schlecht – IMS ist ja auch immer noch da und für manche Zwecke sehr interessant. Und das hier klingt interessant, sowas wie DBAPI für Graphdatenbanken, so dass man in seinen Projekten auch mal die Datenbank wechseln kann, ohne das alles komplett umgeschrieben werden muss.

asuhan / happy. Auch nicht uninteressant: ein PHP Interpreter bzw. Compiler in Python auf Basis der PyPy Toolchain. Ok, ist jetzt nicht der Brüller, ich glaube nicht, dass ich schon sehr oft die Frage hatte „wie kann ich jetzt in Python PHP Code ausführen“ – aber z.B. wenn eine Site auf Django-Basis den Nutzern PHP als Scriptsprache zur Verfügung stellen will, könnte sowas durchaus interessant werden – PHP ist nunmal  eine der bekanntesten Scriptsprachen für das Web, Python aber mit einigen Frameworks einfach sehr viel interessanter aus Produktionssicht.

cfbolz / Pyrolog. Hatte ich den schon mal? Ein Prolog-Interpreter in Python, der die PyPy Toolchain benutzt. Könnte sehr interessant werden wenn man mal wieder ein bischen Regellogik in seinen Programmen braucht aber nicht unbedingt externe Tools dafür anwerfen will.

paver/paver. Klingt interessant, wie eine Mischung aus SetupTools/DistUtils und Make (bzw. deren high-level Kumpel Rake/Cake). Könnte ich mir mal angucken, denn für Python-Projekte wäre das vielleicht doch recht praktisch – allerdings sind die Standardtools von Python auch schon ganz brauchbar.

Stiivi / cubes. Mal für später geblogmarkt: eine OLAP Library in Python die auf SQL Datenbanken oder MongoDB aufbauen kann. Für so einige Sachen auf der Arbeit könnte das mal interessant werden.

SymPy. Symbolische Mathematik mit Python direkt in der Python Shell. Zusammen mit NumPy für Matrizenoperationen und SciPy für diverse weitere wissenschaftliche Funktionen wird aus Python damit ganz fix ein schon recht veritables Mathematiksystem. Nichts wirklich groß neues außer vielleicht SymPy selber.

PyPy Status Blog: Global Interpreter Lock, or how to kill it. Wow, das klingt gut – das PyPy Projekt will das GIL durch STM (Software Transactional Memory) entschärfen – und hat dafür durchaus einen interessanten Ansatz. Manche Sachen sind auch erst durch PyPy möglich, weil dort entsprechende Infrastruktur für Codetransformationen vorhanden ist, die in CPython fehlen.

The Larch Environment. Mal angucken – eine visuelle Programmierumgebung für Python. Interessantes Detail: Objekte werden nicht einfach nur textuell dargestellt, sondern über einen eigenen Mechanismus auch grafisch dargestellt – klingt ein bischen wie Output-Recording von CLIM. Zusätzlich ist das ganze eher als interaktives Dokument aufgebaut – also vergleichbar zu diversen Mathematik-Systemen (z.B. Mathematica oder Maxima). Leider nicht auf der normalen Python-Umgebung aufbauend, sondern auf Jython – also JVM als Runtime drunter.

django-gae2django – Django-based implementation of App Engine APIs – Google Project Hosting.  Müsste ich mir mal angucken – damit kann man AppEngine Programme auf eigenen Servern laufen lassen, die dann auf Django basieren (die AppEngine-APIs werden also über Django-Mittel nachgebildet). Sicherlich besser als direkt den AppEngine Dev-Server zu benutzen.

Technical Discovery: Speeding up Python NumPy, Cython, and Weave. Interessant für Zahlenfresser die nicht unbedingt auf PyPy wechseln wollen, sondern in der normalen CPython Welt bleiben wollen. Gibt einen schnellen Vergleich von NumPy, Weave und Cython.

Leos Home Page. Leo ist ein Outliner und Datenorganisator – das ist erstmal nix besonderes. Aber dieser ist in Python geschrieben und Portabel (überall hin wo es PyQT gibt, zumindestens in der Version 4.9, ältere hatten auch Tkinter als Oberflächenlibrary). Kann auch als IDE für Python eingesetzt werden.

Python/Harmattan – MeeGo wiki. Im Zusammenhang mit dem N9 sehr interessant: eine vollständige (und das meinen die wirklich Ernst – fast alle Teile des Systems sind erreichbar) API für MeeGo in Python. Damit kann man das ganze Telefon komplett in Python programmieren und auch die so erstellten Applikationen im Ovi Store (Nokias Variante des AppStores) veröffentlichen. Sowas ähnliches hatte ja Nokia schon mit Symbian in Form von Python S60 und den Tabletts unter dem Vorgänger von MeeGo, von daher hat gute Python-Unterstützung schon fast Tradition bei denen.