New blog URL
pbouda am 25. Okt 11:18
I originally started this blog to share my, ähem, wisdom, about Maemo, MeeGo and Qt programming in general. As it turned out MeeGo died an unpleasant death and was replaced by Windows Phone and some OS with a strange name. Now I was looking for a new blogging plattform that might be easier to maintain than this self-developed patchwork you are watching. So I decided to start a new blog, with new technology and new URL. One of the main topics will definitely Firefox OS, there must be a way to have an open operating system on mobile phones! This here will stay as a museum. Head over to:
Kinect, PyGame, Numpy, SciPy
pbouda am 26. Jan 12:34
Ich habe die letzten Wochen ein bisschen mit den Python Tools für Visual Studio herumgespielt, auf der Website gibt es mit PyKinect einen schönen Wrapper um das offizielle Kinect-SDK von Microsoft. Ich wollte das mit einem Wassereffekt auf Basis von PyGame und Numpy kombinieren, den habe ich hier gefunden. Heraus kam das:
http://teatrominde.tumblr.com/#15777992755
Der Code dazu ist hier:
https://github.com/pbouda/stuff/blob/master/dances/WaterDance/WaterDance/Program.py
Das Tiefenbild habe ich noch per Gauss-Filter aus SciPy verschönert, damit es nicht so kantig aussieht. Alles läuft auf meinem Notebook recht flüssig, das ist schon beeindruckend. Python gilt als langsam, ist es wohl auch, aber für die meisten Zwecke reicht es dann doch.
Zwischendrin
pbouda am 29. Dez 16:47
In letzter Zeit war es hier leider recht ruhig, Arbeit und andere Aktivitäten hielten mich weitgehend vom Posten ab. Das soll sich ab jetzt aber wieder ändern. Hier erst einmal ein kleiner Zwischenbericht, was in letzter Zeit so passiert ist:
- Ich war bei der Codebits in Lissabon. Eine sehr feine Veranstaltung rund um einen 48-Stunden-Programmierwettbewerb. Wobei es eher um die Kreativität geht als um Code-Qualität oder Ähnliches. Und dieses Jahr haben wir den ersten Preis gewonnen! Hingefahren bin ich mit einer groben Idee, zurück kam ich dann mit einem Haufen Technik. Ich hatte aber auch großartige Unterstützung von Pedro und Rosana, die ich erst bei der Veranstaltung kennengelernt habe und die zusammen mit mir das Lego-Coding-Team gebildet haben. Danke an alle! Und vielleicht gibt's hier bald mehr über das Projekt zu berichten...
- Mein erstes Buch ist fertig! PyQt und PySide. GUI- und Anwendungsentwicklung mit Python und Qt
. Gibt es ab Januar in jedem gut sortiertem Buchladen. Mit zahlreichen Highlights über die GUI-Entwicklung mit Python, PyQt und PySide wie eine komplette Einführung in QML und die Anwendungspaketerstellung für Linux und Windows. Wer schon immer einmal wissen wollte, wie man Anwendungen samt Installer plattformunabhängig entwickelt, der sollte sich das Werk unbedingt zulegen.
Soweit erst einmal für heute. Ich wünsche allen Lesern einen guten Rutsch ins Neue Jahr 2012!
Maschinenlernen für Fortgeschrittene
pbouda am 07. Okt 15:57
Dieser Artikel beschreibt recht eindrucksvoll mit welchen Methoden die Radiochemie heutzutage arbeitet. Und was man doch mit Python alles machen kann. Ich habe einen Vortrag darüber auf der EuroSciPy 2011 in Paris gehört, und war mehr als beeindruckt. Nicht nur wegen der Hardware...
Processing in Javascript in QML in Python
pbouda am 05. Sep 12:31
Es gibt gute und vernünftige Gründe, warum man Desktop-Anwendungen mit Python und PySide entwickeln sollte. Aber man kann damit einfach auch nur Spaß haben. Diesen hatte ich auch, letzte Woche. Und das ist daraus geworden:
https://github.com/pbouda/Process-
Eine Processing-Variante auf Javascript-Basis, die in einer QML-Webkit-Komponente läuft, die wiederum von Python geladen wird. Viel Spaß damit!
Memory Profiling Tools für Python, Teil 2
pbouda am 02. Sep 13:33
Kaum hatte ich den vorhergehenden Blogeintrag fertig, bin ich mehr oder weniger zufällig auf zwei weitaus interessantere Projekte gestoßen, die Speicherlecks in Python-Anwendungen aufspüren sollen. Hier also, der Vollständigkeit halber, die Vo:
- Meliae: Für Python 2, wird aber im Gegensatz zu heapy aktiv weiter entwickelt. Für meine Zwecke aber derzeit unbrauchbar, bis es auch mit Python 3 funktioniert.
- gdb-heap: dies scheint aber nun wirklich der beste Ansatz zu sein: über die Python-Schnittstelle von gdb klinkt man sich direkt in eine laufende Anwendung ein und schaut sich im Speicher um. Es gibt ein spezielles Python-Modul zur Analyse der einzelnen Objekte, das an die Speicherverwaltung von Python angepasst ist. Einziger Wermutstropfen: das Tool scheint sehr an die gdb-Version von Fedora gebunden zu sein. Bei einem kurzen Versuch unter Ubuntu wollte jedenfalls das Python-Modul nicht starten. Definitiv aber ein Projekt, das ich weiter beobachten werde. Auf der Seite findet sich außerdem ein Link auf einen Vortrag auf der PyCon US 2011, der sehr schön die einzelnen Ansätze zur Speicheranalyse unter Python erklärt.
Speicherlecks in Python-Skripten finden
pbouda am 19. Aug 13:10
Da ich gerade ein kleines Speicherproblem mit einer Python-Anwendung hatte (und ich dachte schon, 8 GB RAM reichen erst einmal...), habe ich mich mal nach einem Memory-Profiler für Python-Skripte umgeschaut. Und leider nichts Vernünftiges gefunden. Was auch daran liegt, dass ich komplett auf Python 3 umgestiegen bin, und die Python-2-Profiler dann leider komplett den Dienst versagen. Hier mal drei Pakete, die wohl unter Python 2 funktionieren sollen:
- heapy: Ist angeblich das komplexeste, aber auch beste aller Tools. Als Ergebnis einer Master-Thesis entstanden, die es auch auf der Webseite zum Herunterladen gibt. Portierung auf Python 3 wohl nicht in Sicht. Und nach kurzer Ansicht des Quellcodes wohl auch nicht mal an einem Nachmittag durchführbar.
- PySizer: Weniger mächtig als heapy, und noch älter. Portierung nicht in Sichtweite.
- dowser: Die einfachste Art und Weise für Memory-Profiling. Das Tool lässt sich äußerst einfach in eigene Python-Skripte einbinden und stellt die Information dann per cherrypy zur Verfügung. So hat man während der Laufzeit des Skripts in einem Webbrowser einen Überblick über die aktuellen Objekte und deren Speicherverbrauch. Ich habe es
fast geschafft, das Ding unter Python 3 zum Laufen zu bringen; allerdings benutzt es die Python Imaging Library, für die es noch keine vernünftige Python-3-Version gibt. So fehlen auf der Ausgabe-Webseite dann die Bilder. Außerdem konnte ich die TRACE-Seiten nicht öffnen. Es waren wohl einfach zu viele Objekte in meinem Skript.
Wieder einmal das leidige Thema: Python 3 ist bestimmt toll, aber wenn es halt jeder ignoriert werden wir in 10 Jahren immer noch Anwendungen unter Python 2.x entwickeln. Übrigens habe ich letztendlich einen anderen Weg für das Speicherproblem gefunden. Das Problem war ein Parser; mit regulären Audrücken komme ich jetzt mit weniger Speicher und
Verwaltung von UI- und Ressourcendateien in PyQt- und PySide-Projekte
pbouda am 09. Aug 16:22
Hier mal wieder ein kleines Tutorial zur Entwicklung von Anwendungen mit PyQt bzw. PySide. Dieses Mal geht es um die Verwaltung der Oberflächen- und Ressourcendateien in einem Projekt, die sich auch ohne komplexe IDE einfach mit einem kleinen Python-Skript erleichtern lässt:
Automatisierung von uic und rcc
Viel Spaß damit!
Python auf dem N9
pbouda am 22. Jul 11:40
Die Nachricht ist wohl schon länger veröffentlicht, ich sehe das jedoch gerade erst: auf dem N9, Nokias erstem und letztem (?) MeeGo-Gerät, werden Python-Anwendungen und C++-Anwendungen praktisch gleichgestellt. D.h. das SDK unterstützt die Entwicklung von Anwendungen per Python und PySide, und man kann diese Anwendungen dann im Ovi Store veröffentlichen, oder wie auch immer der Laden jetzt heißt. Hier die offizielle Ankündigung:
http://www.meegoexperts.com/2011/06/harmattan-python-meego/
Damit ist und bleibt Maemo/MeeGo das einzige mobile Betriebssystem, für das sich uneingeschränkt Apps in Python entwickeln lassen. Es ergeht hiermit also ein Kaufbefehl für das N9 an alle Python-Programmierer!
Neues Tutorial: Relative Entropie
pbouda am 07. Jul 14:14
Da ich mich gerade informationstheoretisch weiterbilde hier ein kleines mathematisches Tutorial zur Visualisierung der relativen Entropie zweier binärer Wahrscheinlichkeitsfunktionen:
Relative Entropie visualisieren mit Mayavi
Das Ganze ist ein kleines Python-Skript, das zur Darstellung Mayavi benutzt.
