Inhaltsverzeichnis
Python Workshop
ACHTUNG! Termine und so weiter werden jetzt vor allem über die Google+ Seite unserer Stuttgarter Python Interest Group gemanaged: https://plus.google.com/communities/104664589088135148756
Die Events: https://plus.google.com/communities/104664589088135148756/events
Termine / Inhalte
- Workshop 1 Sa 11.2.2012 ab 18:00
- Einführung, Typen, Literale, Operatoren, Ausdrücke, Zuweisung, Blöcke, Flusskontrolle, Funktionen, Ein/Ausgabe
- Workshop 2 Fr 24.2.2012 ab 18:00
- Klassen, Instanzen, Methoden, Attribute, Vererbung, erweitern, überladen, modifizieren.
- Workshop 3 Fr 9.3.2012 ab 18:00 - https://docs.google.com/presentation/d/1S0AiwfbXCSi9dQfHK_lpyllCatOv4OJH408BfexwA4Y/edit
- Files, „with“, standard library, Module, import
- Workshop 4 Fr 23.3.2012 ab 18:00 - universeller Encoder
- praktische Übungen / Lösung einfacher Problemstellungen
- automatisiertes Testen, Test-Driven-Development „TDD“
- Passwortgenerator
- Workshop 5 Fr 6.4.2012 ab 18:00
- Workshop 6 Fr 20.4.2012 ab 18:00
- doctests
- Metadata Dictionary Merger
- Workshop 7 Fr 4.5.2012 ab 18:00
- virtualenv und py.test testing framework
- Dupefinder für's Dateisystem
- Workshop 8 Fr 18.5.2012 ab 19:00
- Flask - Web-App Microframework
- Workshop 9 Fr 1.6.2012 ab 19:00
- Flask / Jinja2
- Workshop 10 Fr. 15.6.2012 ab 19:00
- Python auf Android-Devices
- Workshop 11 Fr. 29.6.2012 ab 19:00
- raise ValueError! Unten auf der Liste fehlt es v.a. an Interessensbekundungen / anderen Themenvorschlägen / Vortragenden.
- Workshop 12 Fr. 13.7.2012 ab 19:00
- adhoc im Workshop beschlossen / besprochen: Mercurial DVCS
- Workshop 13 Fr. 27.7.2012 ab 19:00
- adhoc im Workshop beschlossen / besprochen: Python-Backup-Script für rsync: https://bitbucket.org/thomaswaldmann/rsync_backup
- Workshop 14 Fr. 10.8.2012 ab 19:00
- adhoc im Workshop beschlossen: kivy
- Workshop 15 Fr. 24.8.2012 ab 19:00
- Workshop 16 Fr. 7.9.2012 ab 19:00
- Workshop Fr. 21.9.2012 ab 19:00
- Workshop Fr. 5.10.2012 ab 19:00
- Workshop Fr. 19.10.2012 ab 19:00
- ( Versuch Python auf Raspberi Pi / Typ B ) - Mike -
- Workshop Fr. 2.11.2012 ab 19:00
- Workshop Fr. 16.11.2012 ab 19:00
- Workshop Fr. 30.11.2012 ab 19:00
- Workshop Fr. 14.12.2012 ab 19:00
- Vorschlag: Django - Andreas
- Ergebnis findet sich auf GitHub
- Workshop Fr. 11.1.2013 ab 19:00
- Mike moechte Dateien nach bestimmten Kriterien zusammensuchen.
- os.walk + regex match?
- falls es viel komplexer wird: evtl. whoosh?
- TW schaut sich evtl. passlib an (Python-Library fuer PW-Hashes) und wie sich das integrieren laesst.
- andere Vorschlaege?
- Workshop Fr. 25.1.2013 ab 19:00
- pygame (passend zum gaming topic des wochenendes)? hat jemand erfahrung damit oder improvisieren wir?
- Umgeschwenkt auf geekromeo
- Workshop 8.2.2013 ab 19:00
- „how to fail with password crypto“ (und wie man es richtig macht) - in Python, mit praktischen Beispielen - manche Dinge sind aber auch allgemein interessant/verwendbar.
- Workshop 22.2.2013 ab 19:00
- Workshop 8.3.2013 ab 19:00
- Workshop 22.3.2013 ab 19:00
- Workshop 5.4.2013 ab 19:00
- Workshop 19.4.2013 ab 19:00
- Workshop 3.5.2013 ab 19:00
- Workshop 17.5.2013 ab 19:00
- Workshop 31.5.2013 ab 19:00
- Workshop 14.6.2013 ab 19:00
- Workshop 28.6.2013 ab 19:00
- Workshop 12.7.2013 ab 19:00 europython diskussion
- Workshop 26.7.2013 ab 19:00
- Wir haben Passwortmanager angeschaut in und mit Python.
- Workshop 9.8.2013 ab 19:00
- Django & py.test
- Workshop 23.8.2013 ab 19:00
- Workshop 6.9.2013 ab 19:00 im Raum OR2!
- Workshop 20.9.2013 ab 19:00
- Workshop 27.9.2013 ab 19:00
- Workshop 4.10.2013 ab 19:00
- http://djangodash.com/ und http://wsgiwrestle.com/ projekt-vorstellung und -nachklatsch
* Generell: raise ValueError! Unten auf der Liste fehlt es v.a. an Interessensbekundungen / anderen Themenvorschlägen / Vortragenden.
- danach regelmässig alle 2 Wochen Fr abends 19:00 (geändert, nicht mehr ab 18:00!)
Die Folien sind immer der aktuelle Workshop + die in den Workshops vorher gezeigten Folien.
Zusammenfassung, Vorkenntnisse
Der Workshop 1-4 setzt keine Python-Kenntnisse voraus. Allgemeine Programmierkenntnisse sind vorteilhaft, aber nicht zwingend vorausgesetzt. Die folgenden Workshops setzten Python-Kenntnisse voraus.
Bitte Laptop mitbringen (Shackspace-WLAN-Zugang ggf. vorher konfigurieren/ausprobieren).
Es wird um Python („die Sprache“) und insbesondere um Python 2.x („die Version“) und CPython („die Implementierung“) gehen, weil das derzeit die verbreitetste Version und die normale/übliche Implementierung ist.
Es wird den einen oder anderen Hinweis auf andere Python-Implementierungen und -Versionen geben, diese werden aber erstmal nicht tiefergehend besprochen (was aber kein Problem ist, denn vieles ist natürlich gleich/ähnlich bzw. wird dann bei Interesse in folgenden Veranstaltungen besprochen).
Vorbereitung
- Python 2.7.x (oder 2.6.x) installieren
- IDLE (als kleinster gemeinsamer Nenner - ist oft mit dabei, manchmal aber auch in einem extra Paket wie „python-idle“ o.ä.)
- Editor-Anforderungen (wer nicht IDLE benutzen mag):
- utf-8 beherrschen
- Tabulator (1) in Spaces (4) umwandeln können
- Syntax-Highlighting für Python nicht zwingend aber sehr vorteilhaft
- Umfangreiche Liste brauchbarer Editoren oder IDEs für Python siehe hier: http://wiki.python.org/moin/PythonEditors
Interessante Themen?
Nach den Grundlagen sollten wir uns mal mit div. weiterführenden Dingen beschäftigen.
Es kann jeder Themen hinzufügen.
Wenn jemand sich mit nem Thema auskennt und dazu was erzählen kann / nen Workshop leiten kann: Name(n) hinter das Thema.
Wenn sich jemand für ein Thema interessiert, Name unter dem Thema hinzufügen.
Grundlagen / Python / Standardbibliothek
- Unicode - Strategien zum schmerzfreien Umgang (Thomas Waldmann)
- Dennis
- PyPy - alternativer Python-Interpreter mit JIT (Thomas Waldmann)
- Jython - im Zuge eines Crossover-Workshops Python (Thomas Waldmann) + Java (house)?! :)
- Markus Majer
- Python 3 Porting (mit „six“ und python-modernize - derselbe Source fuer beide Pythons) (Thomas Waldmann)
3rd Party Libs/Frameworks
- MoinMoin - Wiki (Thomas Waldmann)
- Werkzeug - WSGI-Toolbox (Thomas Waldmann)
- mod_wsgi - WSGI-Python-Webapps mit Apache2 laufen lassen (Thomas Waldmann)
- Whoosh - Indexed Search Library (Thomas Waldmann)
- content extraction filters (für z.B. Indizierung div. Dateiformate mit Whoosh)
- Pygments - Sourcecode-Highlighter (Thomas Waldmann)
- XStatic - Packaging of static files (Thomas Waldmann)
- Georg
- Django - Web Framework / Python's „Ruby on Rails“ (Andreas Madsack)
- Markus Majer
- Thomas Waldmann
- Dennis
- wenn sich kein Django-Kenner als Vortragender findet, koennten wir gemeinsam mal das hier durchgehen: http://www.django-workshop.de/
- fabric - application deployment & server administration framework
- Markus Majer
- Reportlab & Co. - Dokumentengenerierung in Python
- Markus Majer
- SQLalchemy - „The Python SQL Toolkit and Object Relational Mapper“
- Markus Majer
- Tornado - „Facebook's non-blocking Real-Time Python Web Framework“
- Markus Majer
- Georg
- Christian
- PyGame
- Thomas Waldmann
- Georg
- Dennis
- Threading / mehrere Prozesse / Nebenläufigkeit / ev. eventbasierte Frameworks
- Georg
- Dennis
- Python auf Google App Engine
- Thomas Waldmann
- Camelot http://www.python-camelot.com/
- tinyWM - http://incise.org/tinywm.html - Grundlage für einen Desktop Manager. Wie wäre es, von Grund auf einen sehr sehr simplen Window Manager zu schreiben, einfach nur zum Testen? :) Das ist der ganze Code der ausreicht einen Window Manager darzustellen! https://github.com/mackstann/tinywm/blob/master/tinywm.py
- Herausfinden wie ein Python Sl4a Skript in eine android APK Anwendung gepackt werden kann. Dazu könnten wir dann auch ein kleines Tutorial schreiben.
- Sebastian
- Verstehen wie das gettext module für multilingual internationalization services funktioniert. Das ganze dann anhand eine kleinen Beispielanwendung ausprobieren.
- Sebastian
- How I use PyPi? (Upload & Download)
- Python Libs/Projekte in Debian/*buntu Pakete (.deb) bauen
- PyEXE/PyInstaller für Windows
- Celery (Asynchron Job-Queue) [amqp] (Andreas, Christoph, Christian)
- GeoDjango (PostGIS, …)
- sentry
- lynn root & al newcoder.io
- psmove (Sony PS Move controller py api)
- devpi http://doc.devpi.net/
- machine learning EP 2013 talk
- ipython instead of bash EP 2013 talk
Themen mit Python-Bezug
- sphinx - Documentations-Tool - ist in Python geschrieben und wird auch von vielen Python-Projekten benutzt, hat aber sonst nix mit Python zu tun (Thomas Waldmann)
- Markus Majer
- Mercurial DVCS - verteiltes Versions-Kontrollsystem - ist in Python geschrieben, plattformunabhänging, sonst aber kein Python-Bezug (Thomas Waldmann)
- SCons - Make-Ersatz, in Python geschrieben. Erlaubt Buildskripte für C, C++ etc. platformübergreifend in Python zu schreiben
- Georg
- Thomas Waldmann
Links
- http://python.org/ (Download, Documentation, Tutorial, Package Index, …)
- http://www.swaroopch.com/notes/Python ein weiteres Tutorial („2.x“ auswählen)
- IRC-Channel #python.de auf chat.freenode.net
- http://wiki.python.de/ - deutsches Python-Wiki
Tutorials und Bücher
- Im FullCircle Magazine erscheint eine Serie zu „Program in Python“ - ab Ausgabe 23
- Auch das Freie Magazin hat eine Serie zu Python (halt auf deutsch ;)
- http://people.csail.mit.edu/pgbovine/python/tutor.html findet frogpond recht spannend …
- Weitere Liste deutschsprachiger Tutorials etc. im deutschen Python-Wiki: http://wiki.python.de/FAQ#Wie_fange_ich_als_Einsteiger_an.3F
- Runtergesetztes Buch über Python 2.5 - für die Grundlagen zu Python 2.x kann man durchaus auch ein älteres Buch lesen, die paar Unterschiede für 2.6 und 2.7 kann man bei Bedarf dann auch im Internet nachschauen.
- Material von der Google Python Class, Videos u.a. bei Youtube et al.
- Jörg Kantel sammelt in seinem Blog immer wieder Python Links - eher etwas für Fortgeschrittene
- Sehenswerter PyCon-Vortrag (Video): Optimize Performance and Scalability with Parallelism and Concurrency