====== Python Workshop ====== {{tag>project event software workshop edu}} ---- **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 * http://pythonchallenge.com/ * 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 * [[friedhof:python_workshop_sl4a|python workshop sl4a]] * 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 [[https://github.com/shackspace/geekromeo|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/ * Kivy http://kivy.org/ https://ep2012.europython.eu/conference/talks/opengl-and-python-on-computer-and-embed-devices * Python & Arduino https://ep2012.europython.eu/conference/talks/python-and-arduino-a-tale-of-snakes-and-kings * OpenCV https://ep2012.europython.eu/conference/talks/lets-play-with-python-and-opencv * uWSGI / nginx https://ep2012.europython.eu/conference/talks/going-massive-with-uwsgi-and-nginx * 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) * [[http://www.scons.org/|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 * [[https://gist.github.com/289467|Evolution of a Python prgrammer]] ==== Tutorials und Bücher ==== * [[http://pythonbooks.revolunet.com/|PythonBooks - best free python resources]] * [[http://greenteapress.com/thinkpython/thinkpython.html|Think Python - How to Think Like a Computer Scientist]] * [[http://inventwithpython.com/|Invent Your Own Computer Games with Python]] * [[http://learnpythonthehardway.org/book/|Learn Python the hard way]] * Im [[http://fullcirclemagazine.org/downloads/|FullCircle Magazine]] erscheint eine Serie zu "Program in Python" - ab Ausgabe 23 * Auch das [[http://www.freiesmagazin.de/freiesMagazin-2011-04-02|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 * [[http://www.terrashop.de/Buch/Einfuehrung-in-Python-Mark-Lutz-David-Ascher-ISBN-3897214881/art/89721488/ | 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. * [[http://code.google.com/intl/de-DE/edu/languages/google-python-class/|Material von der Google Python Class]], Videos u.a. bei [[http://www.youtube.com/watch?v=tKTZoB2Vjuk|Youtube]] et al. * Jörg Kantel [[http://www.schockwellenreiter.de/blog/category/python/|sammelt in seinem Blog immer wieder Python Links]] - eher etwas für Fortgeschrittene * [[http://gnosis.cx/TPiP/|Text Processing in Python]] * Sehenswerter PyCon-Vortrag (Video): [[http://www.youtube.com/watch?v=ULdDuwf48kM|Optimize Performance and Scalability with Parallelism and Concurrency]] * [[https://ep2012.europython.eu/p3/schedule/ep2012/ | EuroPython 2012 Vorträge / Videos]]