pre-release: PyCon DE meeting announcement

Please take a moment to review your details and reply with OK or edits.
Subject and below is what will go out and also will be used to title the videos.

Subject: 
ANN: PyCon DE at Saal 1B Mon October 29, 9p


PyCon DE
=========================
When: 9 AM Monday October 29, 2012
Where: Saal 1B

None

Topics
------
1. Plone-Tutorial
Philip Bauer, Patrick Gerken
tags: web, plone
Teil I: Einstieg in Plone

    Setup der Entwicklungsumgebung und Installation (30 min)
    Plone-Konfiguration mit buildout (15min)
    Vorstellung der Funktionen von Plone (30min)
    Typische Aufgaben bei Content Management (Strukturaufbau, Content-Rules, Workflow, Collections (30min)
    Einfache Anpassungen (Portlets, Viewlets, Actions) (20min)
    Plone mit Erweiterungen anpassen:
        Formulare mit PloneFormGen erstellen (15min)
        Internationalisierung mit LinguaPlone (20min)
        Webdesign mit plone.app.theming (20min)

Teil II: Anpassungen von Plone

    Eigene Anpassungen als python-Pakete erstellen und in Plone einbinden (40min)
    Eigene Inhaltstypen mit Dexterity erstellen (40min)
    Views mit eigener Logik schreiben (TAL, Python, Grok-Views, ZCA)
        View für einen dexterity-Content-Typen (40min)
        Standalone-Views (60min)

Nicht behandelt werden:

    Hosting und Deployment
    Klassisches Theming
    Archetypes
 recording release: no  

2. Einsteigertutorium Python
Thomas Lotze
tags: anfänger, python, tutorial, einsteiger, tutorium
Das Tutorium soll folgende Schritte umfassen, wobei es vom Vorankommen und dem
gewünschten Detailgrad abhängen wird, wieviel davon in der vorhandenen Zeit zu
schaffen ist:

- Ausführen eines sehr einfachen Programms ("Hello world") auf dem eigenen
  Rechner, Umgang mit der interaktiven Python-Umgebung (15-30 Minuten)

- Erläuterung einiger syntaktischer Eigenheiten von Python an einem einfachen
  Beispiel, ggf. Diskussion der Unterschiede zu anderen Sprachen
  (30-45 Minuten)

- Vorstellung der grundlegenden Programmkonstrukte (Bedingungen, Schleifen,
  Funktionen) und Datentypen (Zahlen, Text, Listen, Dictionarys) (60 Minuten)

- Verwendung der Standardbibliothek in einem einfachen Beispiel (30 Minuten)

- bei genügend verbleibender Zeit: kurzer Einblick in Pythons Objektsystem:
  Klassen, Objekte, "Duck-Typing"

- offene Fragerunde (15-45 Minuten)

Die Teilnehmer des Tutoriums bringen bitte ihren eigenen Rechner mit, auf dem
eine aktuelle Version von Python (mindestens 3.2) installiert sein muß. Als
Entwicklungsumgebung werden wir im Tutorium das mit Python ausgelieferte
"idle" verwenden, was je nach Betriebssystem möglicherweise zusätzliche
Bibliotheken benötigt oder als eigenes Programmpaket installiert werden muß.
Teilnehmer, die mit der Kommandozeile und einem einfachen Texteditor vertraut
sind, können auch gern diese Arbeitsumgebung verwenden. Im Tutorium wird
jedoch keine Zeit sein, um auf damit verbundene Probleme einzugehen.

 recording release: no  

3. Schöne Diagramme mit Matplotlib
Mike Müller
tags: animationen, diagramme, matplotlib, plots
Dieses Tutorial stellt matplolib mit Beispielen vor. Themen sind:

* Nutzung von Python mit matplolib (10 min)
* einfache Plots (25 min)
* wichtige Objekteigenschaften (15 min)
* Text effektiv anordnen (20 min)
* Achsenbeschriftung (20 min)
* Zusammenspiel und Anordnung von Plots und Teil-Plots (20 min)
* Übersicht über mögliche Diagrammtypen (15 min)
* objekt-orientierter und MATLAB-Ansatz (15 min)
* eigene Digarammtypen entwickeln (20 min)
* Animationen (20 min)

Das Tutorial ist so angelegt, dass die Teilnehmer mitarbeiten können. Nach jedem Abschnitt gibt es eine kurze Übung. Jeder Teilnehmer erhält ein 30-seitiges Dokument mit ausformulierten Texten zu allen behandelten Themen.

Ich habe dieses Tutorial bereits auf den EuroSciPy-Konferenzen 2010 und 2011 in Paris sowie auf der PyCon US 2012 gehalten.

Die Teilnehmer sollten grundlegende Python-Kenntnisse haben und Laptops mit installiertem Python 2.6 / 2.7, Python, NumPy und matplotlib in einer aktuellen Version mitbringen. Eine Installationsanleitung bekommt jeder Teilnehmer in Form eines Test-Scripts.
 recording release: no  

4. Python-on-PaaS: Entwicklung für die Wolke
Felix Knoepke
tags: zero-administration, zero-maintenance, paas, skalierung, on-demand, entwicklung, development, cloud
Kickstart (15min)
===============
Kurze Einführung, wie mit PaaS (cloudControl) gearbeitet wird (Schritt-für-Schritt-Mitmach-Tutorial)

* Installation der cloudControl Command-Line-Tools 
* Anlegen eines cloudControl-Accounts
* Anlegen einer App/eines Deployments
* Hinzufügen von Add-ons (Datenbanken, Performance-Monitoring...)
* Integration des Credential-Files in den Source-Code
* Apps auf der Plattform deployen
* App-Auslastung in der Konsole ansehen
* Apps skalieren

Feature-Branches/Feature-Deployments (20min)
===================================
* Erklärung des Konzeptes (10min)
* Praktische Umsetzung (Demo) (10min)

Arbeiten mit Workern & Message Queues (55min)
====================================
* Erklärung des Konzeptes (15min)
* Übung anhand eines Fallbeispiels (40min)

Pause (30min)
===========


Arbeiten mit Add-on-Services (55min) 
============================
* Erklärung des Konzeptes (10min)
In diesem Block wird eine vorgegebene Applikation Schritt für Schritt um Funktionalitäten erweitert
* Caching mit memcached (5min Einführung+15 Min Übung)
* Mailversand mit Sendgrid (10min Einführung+15 Min Übung)

Lastsimulation und Performanceoptimierung mit Blitz.io & New Relic (35min)
========================================================
* Erklärung des Konzeptes (15min)
* Übung (Finden des Bottlenecks in einer vorgegebenen Applikation) (20min)

 recording release: no  

5. Schnelle Schleifen mit Cython
Stefan Behnel

[Cython](http://cython.org/ "Web-Seite des Cython-Projekts") ist eine Programmiersprache, die die Sprache Python um zusätzliche Features ergänzt. Sie macht das Schreiben von schnellen Erweiterungsmodulen für CPython und das Anbinden von externen nativen Bibliotheken (C/C++/Fortran/...) so einfach wie Python selbst.

Dieses Tutorial vermittelt einen Überblick über die Sprache Cython und bietet einen Einstieg in die Optimierung von schleifenbasierten Algorithmen über NumPy Arrays, mit denen große Datenmengen effizient verarbeitet werden können. Dazu werden Memory-Views verwendet, die mit Version 0.16 in Cython Einzug gehalten haben, parallele Schleifen, sowie generische Funktionen, die es dem Compiler erlauben, einmal geschriebenen Code für verschiedene native Datentypen zu optimieren.

Kurz: hier wird performanter Code geschrieben, ohne die Schönheit und Einfachheit von Python verlassen zu müssen.

Ungefähre (geplante) Gliederung:

* Einführung Cython: ~10 Min.
* Übersetzen des ersten Cython-Projekts: ~20 Min.
* Überblick Cython: ~30 Min.
* Einführung in NumPy-Arrays und Memory-Views: ~20 Min.
* Übung zu Memory-Views: ~30 Min.
* Parallelisierung eines Array-Algorithmus: ~20 Min.
* Optimierung von Code für verschiedene Datentypen: ~20 Min.
* restliche Zeit: Pause, Ausprobieren, Fragen, etc.

Benötigte Software:

* Python 3.2 (alternativ Python 2.7)
 * Cython 0.17.1
 * NumPy 1.6.x
 * C-Compiler mit OpenMP-Unterstützung: gcc auf Linux/Unix/Mac, MSVC oder MinGW auf Windows.

Die Installation des C-Compilers bitte vorher testen durch Übersetzung eines C-implementierten Packets von PyPI, z.B. bitarray  (http://pypi.python.org/pypi/bitarray/0.8.0) oder jsonlib (http://pypi.python.org/pypi/jsonlib).
 recording release: no  

6. Schnelleinstieg in pytest
Holger Krekel
tags: testen, pytest
Motivation und Grundbegriffe? (10 Minuten)
- Unit- und Funktionale Tests
- Warum automatisierte Tests?
- Existierende Python Testing Tools

Was bringt pytest? (10 Minuten)
- Automatisches Finden von Tests, Einfaches Schreiben von Tests,
  Print-Debugging
- setup Funktionen und Fixtures
- Resourcen-Verwaltung über Dependency Injection
- Verteilen von Tests auf mehrere Prozesse
- Kurzvergleich mit nosetests

Installation, Scheiben von einfachen Test Funktionen (30 Minuten)
- Installation
- Test functions
- 20 Minuten work time
  - Aufsetzen eines einfachen Testscenarios

Grundlegende Benutzung von pytest (40 Minuten)
- Assert Introspektion und Reporting
- Arbeiten mit Fehlern, Debuggen mit print
- Arbeiten mit Exceptions
- Übungen
- Definieren von Test Klassen
- Überspringen von Tests
- Übungen

Pause

Kommandozeilenoptionen (25 Minuten)
- --exitfirst
- --looponfailing - Test failures wiederholt laufen lassen bis
  sie funktionieren
- -k und -m zur Testauswahl
- Optionen um Traceback Anzeigen zu beeinflussen
- --pdb und der Python Debugger
- Übungen

Parametrisieren von test funktionen (20 Minuten)
- Uebungen

Aufsetzen von Test Resourcen (25 Minuten)
- Das "Funcarg" Konzept
- Erzeugen und Benutzen von Test Resourcen/Funcargs
- Übungen

Fragen und Feedbackrunde (20 Minuten)
 recording release: no  

7. Deployment von Webanwendungen: Konzepte und praktische Umsetzung
Christian Theune
tags: cloud, konfiguration, betrieb, web, deployment
Dieses Tutorial soll umfassend die technischen und organisatorischen Aufgaben beleuchten, die beim Betrieb von (Python-)Webanwendungen relevant sind.

Dabei werden wir die Präsentation von Konzepten und deren praktischer Umsetzung anhand eines konkreten Beispiels durchführen.

Es werden folgende Themen und Konzepte vorkommen:

* Überblick über aktuelle Entwicklungen und Ideen zu "gutem Betrieb"
* Anforderungen an moderne Infrastrukturen und Plattformen und dazu passende Lösungsideen
* Checkliste vor Inbetriebnahme eines Dienstes
* Ablauf zur Migration eines Dienstes
* Review verschiedener Komponenten und deren Eigenheiten, die als Backing-Services
 zum Einsatz kommen. Empfehlung und Erläuterung von Best-Practice-Ansätzen.  
* Deployment-Konzeption und Umsetzung eines Beispielprojekts mit batou:
    * Komposition eines Dienstes anhand von Komponenten
    * Detaillierte Erläuterung und Demonstration des Komponenten-Konzepts
    * Variation in Umgebungen (Development, Staging, Production)
    * Verwaltung von Secrets
    * Abbilden von Plattform-Spezifika

Teilnehmer sollten bereits Erfahrung mit Python und Webanwendungen haben und selbständig in der Lage sein eine moderne Entwicklungsumgebung (virtualenv, Python 2.7) mitzubringen. Zur Demonstration werden virtuelle Maschinen in unserem Rechenzentrum zur Verfügung gestellt - dazu werden wir von jedem Teilnehmer einen öffentlichen SSH-Schlüssel benötigen. WICHTIG: auf Windows-basierende Arbeitsumgebungen unterstützen wir leider nicht. 
 recording release: no  

8. Presenting for Geeks
Dirk Haun
tags: presenting, präsentation
Du bist also ein Geek und wirst eine Präsentation über ein Thema geben, dass Dir sehr am Herzen liegt. Du bist folglich sehr enthusiastisch. Du möchtest Deinem Publikum am liebsten alles über Dein Thema erzählen. Aber aus irgend einem Grund, obwohl Deine Präsentation doch alle Aspekte behandelt, zeigt sich das Publikum weit weniger enthusiastisch als erhofft. Woran liegt das?

Kommt Dir diese Situation bekannt vor?

In diesem Tutorial werden wir einige der grundlegenden Fehler besprechen, die Geeks bei der Vorbereitung ihrer Präsentationen oft machen und warum diese dazu führen, dass der Kontakt mit dem Publikum nicht wirklich zustande kommt.

Du wirst einige einfache Methoden und Regeln kennenlernen, die Dir helfen werden, Deine Präsentation besser auf Dein Zielpublikum auszurichten und die diesem zudem helfen werden, sich an Deine wichtigsten Punkte zu erinnern. Wir werden natürlich auch darüber sprechen, wie und warum diese Methoden funktionieren.

Das Tutorial ist in drei Teile gegliedert, die jeweils etwa 60 Minuten (inkl. Übungen) umfassen:

Die Vorbereitung
- Der Fokus liegt auf Deinem Publikum und deren Erwartungen
- Der Fluch des Wissens
- Going analog
- Das SUCCESs-Prinzip
- Was Elevator Pitches und Call for Papers gemeinsam haben
- Ja, und?
- Die Honeymoon-Frist

Grundlagen der Foliengestaltung
- Wie man den Bullet Point Overload vermeidet
- Das richtige Foto finden
- Diagramme
- Ein paar einfache Design-Grundlagen
- Die erste, die letzte, und die unnötigen Folien

Die Präsentation
- Früh ankommen
- Den Draht zum Publikum finden
- Die 10-Minuten-Regel
- Nicht überziehen!
- Wie man Fragen und Antworten behandelt
- Ein starkes Ende

Teilnehmer sollten die Bereitschaft zum Lernen und etwas zum Schreiben (und Zeichnen) mitbringen. Ein Laptop wird nicht benötigt.
 recording release: no  

9. Agile testing in the large
Mark Fink
tags: testing
Das Tutorial ist gemäß den Herausforderungen beim Testen von Ajax
Applikationen aufgebaut.
Für die Übungen wird eine Beispiel-Applikation (Javascript / Python
backend) genutzt.

10 min Intro, Überblick

15 min Agile development / Continuous integration (Jenkins)

20 min Practice / Questions

---
25 min small developer tests (Nose, Jasmine)

20 min Practice / Questions

---
25 min medium / large developer tests (Jasmine)

20 min Practice / Questions

---
25 min Acceptance Tests (FitNesse, Selenium)

20 min Practice / Questions

Notwendige Software für die Übungen:

* Texteditor oder IDE
* Python 2.7
* Java JRE or JDK (>6?)
* Running Node.js wäre von Vorteil
* Internet Browser (aktuelle Version wäre von Vorteil)
* IE6 not supported :-)
* GIT
* Bash (Linux bzw. eine Möglichkeit um Shell-Skripten auszuführen. Solltest
Du .cmd Skripten benötigen, bitte ein paar Wochen vorher mir persönlich
Bescheid geben).

 recording release: no  

10. Pyramid Tutorial
Daniel Nouri
tags: python, framework, pyramid
In diesem Tutorial werden wir from scratch eine kleine Pyramid-Applikation namens "FabCollab" bauen.  Benutzer können sich bei FabCollab registrieren, und Inhalte in persönlichen Arbeitsbereichen erstellen.  Außerdem können Sie andere Benutzer in diese Arbeitsbereiche einladen, um zusammenzuarbeiten.

Während wir die Applikation erstellen, werden wir Schritt für Schritt die Konzepte des Pyramid-Frameworks lernen.  Konkret werden wir zusammen:

- Pyramid mit Hilfe von "virtualenv" installieren
- Pyramid "Scaffolds" zum schnellen Start ins Projekt kennenlernen
- mit Templates effizient arbeiten (Chameleon-Templates)
- Models und Views erstellen
- eine eigene Authentifizierung schreiben
- Pyramid's Unterstützung für "Access Control Lists" verstehen und anwenden
- "Traversal" verwenden, um URLs auf Objekte aus der Datenbank zu matchen
- Web-Formulare mit der "Deform" Bibliothek erstellen
- die ZODB-Datenbank benutzen, um unsere Modelle zu speichern


Dieses Tutorial ist aufgeteilt in sieben Schritte, wobei wir in jedem Schritt ein bestimmtes Feature umetzen.  Dokumentierter Code fuer jeden dieser Schritte sowie Code fuer die finale Applikation wird bereitgestellt.

Voraussetzungen

Mac OSX und Windows-Benutzer die kein Python 2.6 oder Python 2.7 installiert haben, sollten vor dem Tutorial die Pyramid Installationsanweisungen durchlaufen.  Außerdem wird ein C-Compiler fuer das Installieren der ZODB benötigt.

Den Code zum Tutorial findest du hier: https://github.com/dnouri/pyramid-tutorial
 recording release: no  

11. Django: Schnell performante Web-Applikationen entwickeln
Markus Zapke-Gründemann
tags: framework, python, django, web
## Vorwissen

Wir erwarten von den Tutorialteilnehmern grundlegende Programmierkenntnisse in mindestens einer objektorientierten Programmiersprache. Weiterhin ist ein grundlegendes Verständnis des HTTP-Protokolls (Request/Response) sowie Grundwissen in den Bereichen HTML und CSS erforderlich.

## Inhalt

Wir beginnen mit einer kurzen Einführung in die Grundlagen von Django und das Model-Template-View-Prinzip. Als erstes muss jeder Teilnehmer, sofern noch nicht vorhanden, Python auf seinem Rechner installieren. Danach wird Django mit Hilfe von pip installiert. Nach dem Erstellen des Django-Projektes beginnt die Arbeit an der Applikation. Für die Verwaltung der Daten werden zunächst einfache Objekte (Models) angelegt, für die im Laufe des Tutorials Templates und Views zur Darstellung der Inhalte im Browser erstellt werden. Dabei wird das in Django bereits enthaltene Admin-Backend vorgestellt und zum Anlegen und Bearbeiten der Datensätze genutzt.

 recording release: no  

12. Iteratoren, Generatoren und Dekoratoren
Mike Müller
tags: iteratoren, generatoren, dekoratoren
Iteratoren und Generatoren
--------------------------

* Iteratoren (15 min)
* Generator-Funktionen (10 min)
* Generator-Ausdrücke (10 min)
* Coroutinen (20 min)
* In-Reihe-Schalten (5 min)
* Itertools (20 min)

Dekoratoren
-----------

* Dekoratoren nutzen (10 min)
* einfache Dekoratoren schreiben (15 min)
* Parametrisierte Dekoratoren (15 min)
* Dekoratoren hintereinander schalten (10 min)
* Klassen-Dekoratoren (10 min)
* Best Practice (15 min)
* Anwendung für 
    + Argumentkontrolle (5 min)
    + Caching (5 min)
    + Logging (5 min)
    + Registrierung (5 min)
    + Verifikation (5 min)

Der Inhalt dieses Tutorials ist Bestandteil meines Kurses für fortgeschrittene Pythonnutzer.

Jeder Teilnehmer erhält ca. 25 Seiten mit ausformuliertem Text und allen Beispielen mit Erläuterungen.

Die Teilnehmer sollten Python gut beherrschen und einen Laptop mit installiertem Python 2.7 oder 3.3 mitbringen. 
 recording release: no  

13. Vortrag: Python und DTrace
Thijs Metsch
tags: monitoring, debugging, tracing, dtrace, profiling
 
Just on-line bank things out ... love the photos! I attempt to find out by checking out various other photos, also. 
 
my website - http://journal-cinema.org/
 recording release: no  

14. Echtzeit Browsergames
Michael P. Jung
tags: realtime, gevent, python, echtzeit, javascript, spiel, game, django, rabbitmq, socketio
Mit gevent und browserseitigem JavaScript können Mehrspieler Browsergames entwickelt werden, die Spielerinteraktionen in Echtzeit zulassen. Dieser Vortrag versucht Lust auf das Echtzeit Web zu machen und zeigt anhand eines konkreten Spieles  (KODEX, [http://kodexgame.com/](http://kodexgame.com/)) Lösungen für Entwicklung, Hosting und Vertrieb auf.

Der Vortrag beleuchtet neben den Implikationen des Realtime Web wie Caching, Scaling, Same-Origin-Policy und Cross-Origin-Resource-Sharing auch Strategien zur horizontalen Skalierbarkeit, oder: Wie löst man das [C10K](http://www.kegel.com/c10k.html) Problem?

Während NodeJS oft als *die* Lösung für Echtzeitanwendungen angepriesen wird, kommt hier auf der Serverseite gezielt Python mit gevent zum Einsatz.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1486/echtzeit-browsergames 
15. Funktionale Programmierung mit Python
Mike Müller
tags: closure, itertools, funktional, generator, iterator, paradigma, verzögerte auswertung
In den letzten Jahren hat die funktionale Programmierung wieder mehr Aufmerksamkeit erhalten. Das Vorurteil nur für akademische Nutzer interessant zu sein hat sich stark abgeschwächt. Haskell, Erlang und F# sind funktionale Programmiersprachen, die verstärkt für praktische Zwecke zum Einsatz kommen.

Python unterstütz mehrere Programmierparadigmen. Neben der prozeduralen und objektorientierten unterstütz es auch wichtige Konzepte der funktionalen Programmierung. Der Vortrag zeigt wie sich diese Merkmale wie Funktionen als Objekte erster Klasse, Funktionsabschlüsse (Closures), Funktionen ohne Seiteneffekte, Currying, verzögerte Auswertung, Vermeidung veränderlicher Datenstrukturen und Einsatz von Iteratoren, Generator und Comprehensions anstatt von Schleifen nutzen lassen. Beispiele verdeutlichen die Vor- und Nachteile des funktionellem Ansatzes für verschiedene Aufgaben.

Der Aufbau eines Programms mit funktionalen Ansatz kann sich stark von dem eines objektorientierten unterscheiden. Beispiele zeigen wie mit Python Teile eines Programms die Vorteile der funktionalen Programmierung nutzen können und sich schrittweise funktionale Prinzipien in objektorientierte Programme einbeziehen lassen.

Der Vortrag verdeutlicht wie das Modul itertools die verzögerte Auswertung unterstützt. Mit den Funktionen dieses Moduls lassen sich Algorithmen oft kurz, gut lesbar und effizient umsetzen. Auch hier ist eine Integration in sonst nicht-funktional geschriebene Programme einfach möglich.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1423/funktionale-programmierung-mit-python 
16. Grundlagen des Open-Source-Lizenzrechts
Andreas Schreiber
tags: recht, open-source
Ein kompakter Überblick über die rechtlichen Aspekte von Open-Source-Software. Neben den rechtlichen Grundlagen werden die wesentlichen Eigenschaften von Open-Source-Lizenzen vorgestellt. Außerdem werden einige verbreitete Lizenzen detaillierter erläutert.

Inhalt:

- Rechtliche Grundlagen: Urheberrecht und Lizenzrecht

- Open-Source-Software: Lizenzarten von Software, Definition Open-Source-Software, Open-Source-Lizenzmodelle, Copyleft vs. Non-Copyleft

- Ausgewählte Open-Source-Lizenzen: Apache License, GPL, AGPL, LGPL, BSD License, Eclipse Public License, ...

- Praktische Nutzung von Open-Source-Software: Lizenzkompatibilität, Nutzung von Open-Source-Software in eigenen Programmen, Auswahl einer Open-Source-Lizenz für eigene Programme
 recording release: yes license:   
 Video: http://pyvideo.org/video/1426/grundlagen-des-open-source-lizenzrechts 
17. Metaprogrammierung, praktisch.
Andreas Albrecht
tags: metaprogrammierung
Metaprogrammierung ist eine fortgeschrittene Methode der
Programmierung. Wie das "Meta" im Namen schon vermuten lässt, findet
Metaprogrammierung auf einer abstrakteren Ebene statt - oder etwas
einfacher: man programmiert, was man programmiert. Obwohl
Metaprogrammierung in Python auf eine lange Historie zurückblicken
kann, ist sie dennoch eine Technik, der oft mit einer gehörigen
Portion Skepsis und fragenden Blicken begegnet wird. Der Vortrag will
aufzeigen, ob diese Skepsis gerechtfertigt ist, wie Metaprogrammierung
in Python funktioniert und wie man diese Technik sinnvoll einsetzen
kann.

Zu Beginn des Vortrags wird das allgemeine Konzept der
Metaprogrammierung vorgestellt und in einem kurzen historischen
Aufriss der Einzug dieser Technik in Python skizziert. Im Hauptteil
des Vortrags werden gängige Muster der Metaprogrammierung in Python
und deren Funktionsweise anhand von Beispielen
präsentiert. Abschließend wird mit Beispielen aus der Praxis und aus
OpenSource-Projekten auf konkrete Anwendungen hingewiesen, die Ideen
zum Einsatz dieser Technik geben sollen - aber auch mögliche Probleme
aufzeigen.

Der Vortrag richtet an alle, die mehr über die Technik der
Metaprogrammierung in Python erfahren wollen. Die Beispiele sind so
gewählt, dass sie auch für weniger erfahrene Entwickler
nachvollziehbar bleiben.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1455/metaprogrammierung-praktisch 
18. Twitter Bootstrap – Schweizer Messer fur Webanwendungen?
Stefania Trabucchi
tags: front-end, webdesign, twitter bootstrap, reponsive webdesign
Twitter Bootstrap –„Schweizer Messer“ für Webanwendungen?
- Toolkit zur Gestaltung von (Python-)Webanwendungen am Beispiel von Plone -

Twitter Bootstrap in Front-End, Diazo als XSL-Transformation-Server und Buildout bieten in ihrer Kombination eine ideale Möglichkeit, mit geringem Aufwand und nachhaltiger Wirkung Lösungen für Responsive Webdesign bei Verwendung von Plone, Django oder anderen Web-Anwendungen zu realisieren.

Twitter Bootstrap als gut dokumentiertes, flexibles und in seiner Bedeutung wachsendes Werkzeug ermöglicht Designern und Entwicklern eine gute Zusammenarbeit. Die Macher von Twitter Bootstrab haben HTML 5, CSS, JS-Libraries, Less-Unterstützung und gute getestete Cross-Browser-Sicherheit u.a. auch für mobile Endgeräte in dem Toolkit mitgeliefert. Sein Erfolgsrezept  sind die vielen vorgefertigen Oberflächenelemente, welche in Form von Widgets, Buttons, Dropdownmenus, Slides, Forms oder Tabs leicht zu integrieren sind.

Aufgrund der zunehmenden Abhängigkeit von Designern und Entwicklern in Projekt-Teams bildet die Nutzung solider Frameworks die Basis des Erfolgs. Ob sich also Twitter Boostrap als „Schweizer Messer“ der Webentwickler erweisen kann, und in welcher Weise Designer und Entwickler vom Einsatz derartiger Toolkits profitieren können, zeigt dieser Vortrag vor dem Hintergrund der persönlichen Erfahrungen der Referentin mit Diazo und Plone.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1438/twitter-bootstrap-schweizer-messer-fur-webanwend 
19. Cython mit PyPy - das Beste aus drei Welten
Stefan Behnel

Die Programmiersprache Cython (http://cython.org "Web-Seite des Cython-Projekts") ist das de-facto Standard-Tool um CPython um nativen Code zu erweitern. Die Python-ähnliche Sprache macht schon seit einigen Jahren das Schreiben von schnellen Erweiterungsmodulen für CPython und das Anbinden von externen nativen Bibliotheken (C/C++/Fortran/...) so einfach wie Python selbst und gleichzeitig so effizient wie C. Davon profitiert besonders das weite Feld des High-Performance-Computing in Python (NumPy/SciPy/Sage/...), aber auch zahllose andere Bereiche, die eine effiziente Verarbeitung großer Datenmengen und die Anbindung von nativen Bibliotheken an die Programmiersprache Python benötigen.

Die neueste Version des Cython-Compilers bietet erstmals auch Unterstützung für PyPy an, eine alternative Python-Implementierung, die vor allem durch ihren schnellen JIT-Compiler von sich reden macht. Dadurch kann einmal mit Cython geschriebener und in C übersetzter Code sowohl in CPython als auch in PyPy verwendet werden. So wird es beispielsweise möglich, in einer einzigen Code-Basis effiziente Anbindungen externer Bibliotheken für beide Laufzeitumgebungen zu entwickeln.

Dieser Vortrag von einem der Cython Core-Entwickler erklärt, welche Fallstricke dabei noch auf Benutzerseite zu erwarten sind und gibt Hilfestellungen beim Schreiben von Cython-Code, der sowohl in CPython als auch in PyPy funktioniert.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1431/cython-mit-pypy-das-beste-aus-drei-welten 
20. DEXISION -- Moderne Finanztheorie und -praxis mit Python
Dr. Yves Hilpisch
tags: dexision, bewertung von derivaten, on demand, simulation, finanzen, scientific python
DEXISION ist eine kommerzielle Bewertungslösung für Finanzderivate. Sie wurde durch die Visixion GmbH im Wesentlichen auf Basis von Python entwickelt. Der Vortrag zeigt, wie moderne, Web-basierte Finanzlösungen mittels Python zu implementieren sind. Aspekte wie Effizienz in der Entwicklung, Performance, Erweiterbarkeit, Wartbarkeit und Sicherheit sind dabei von besonderer Bedeutung.

Die Architektur von DEXISION fußt auf einem LAMP-Stack und es kommen dabei nur Open Source-Komponenten zum Einsatz. Unseres Wissens nach ist DEXISION nach wie vor die einzige kommerzielle Finanzlösung dieser Art, die in allen Bereichn -- auch bei rechenintensiven Simulationsaufgaben -- voll auf Python setzt.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1420/dexision-moderne-finanztheorie-und-praxis-mit 
21. Machine Learning mit Scikit-Learn
Andreas Müller

Machine Learning und Data Mining beschaeftigen sich mit dem Lernen aus beobachteten Daten, dem erstellen von Vorhersagen und dem finden von interessanten Mustern in Daten. Diese Gebiete sind zwei schnell wachsende Forschungsbereiche mit einer staendig steigenden Anzahl an kommerziellen Anwendungen wie Produkt-Empfehlungen, Bildersuche und Spam-Filtering.

Scikit-learn ist eine Python Library fuer Machine Learning die besonderen Wert auf einfache Benutzung, Skalierbarkeit und hohe Code-Qualitaet legt. Ziel ist es eine leicht anzuwendende, flexible Bibliothek fuer Forschung wie auch kommerzielle Anwendungen zu schaffen. Der Vortrag bietet eine kurze Einleitung in Grundlagen des maschinellen Lernens und die Anwendung von Scikit-Learn.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1419/machine-learning-mit-scikit-learn 
22. Dokumentenmanagement mit Plone
Maik Derstappen
tags: cms, extranet, dms, intranet, plone
Plone ist weit mehr als nur ein CMS, es bietet mit seiner einfachen Rechteverwaltung, dem flexiblen Arbeitsabläufen (Workflows), der möglichen Anbindung an Dateisysteme per Web-Dav und der ausgereiften Suchfunktion, die mit Volltextindizierung und Livesearch aufwarten kann, gute Voraussetzungen für den Einsatz im Intra- und Extranet.

Der Vortrag gibt aus Anwendersicht einen kurzen Einblick in die Möglichkeiten, Plone im Intranet oder Extranet zur Verwaltung von Dokumenten und Informationen einzusetzen. Es werden Themen wie Rechteverwaltung, globale und lokale Arbeitsabläufe, Regeln zur Ereignissteuerung, Möglichkeiten der eingebauten Suchfunktionen (Volltextsuche/Verschlagwortung), sowie der Einsatz von Kollektionen zur Aufbereitung von Inhalten behandelt.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1458/dokumentenmanagement-mit-plone 
23. Nebenläufige Programme mit Python
Stefan Schwarzer
tags: gil, queue, threading, deadlock, multiprocessing, nebenläufigkeit
In diesem Vortrag soll es um Grundlagen nebenläufiger Programme gehen, wie sie mit den Modulen threading und multiprocessing möglich sind.

Zuerst wird erklärt, in welchen Fällen Nebenläufigkeit sinnvoll ist. Danach wird auf die grundsätzlichen Probleme nebenläufiger Programme eingegangen, insbesondere Änderungen an gemeinsam genutzten Ressourcen (zum Beispiel Dateien oder auch "nur" Objekte im Speicher) durch mehrere Threads oder Prozesse. Schließlich wird gezeigt, wie man solche Ressourcen-Zugriffe durch Locks oder Queues entschärfen kann.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1448/nebenlaufige-programme-mit-python 
24. Praktische Anwendung von Metaklassen
Mirko Dziadzka
tags: debugging, metaclasses
Metaklassen (metaclasses) in Python werden oft als exotische Spracheigenschaft betrachtet. Der Vortrag zeigt anhand konkreter Beispiele, wie sich Metaklassen in realen Projekten zum Debuggen und zum Code vereinfachen einsetzen lassen.

# Praktische Anwendungen von Metaklassen

Python besitzt mit den Metaklassen ein sehr mächtiges Werkzeug, um orthogonale Eigenschaften eines Programms zu Implementieren. Das Stichwort dazu lautet "aspektorientiertes Programmieren". Leider werden Metaklassen aber oft als komplex und schwierig angesehen.

Der Vortrag zeigt  an einem konkreten Beispiel, wie sich durch die Verwendung von Metaklassen Programmentwicklung vereinfachen kann. Konkret wird die Implementation eines einfachen Debug- und Trace Frameworks vorgestellt.
Dieses erlaubt das nachträgliche instrumentieren von Klassen-Methoden, um eine selektive Ablaufverfolgung von Methodenaufrufen auf Objekten ermöglicht. Dies wird erreicht, ohne das  diese Debug Aufrufe im normalen Quellcode erscheinen oder bei nicht Benutzung Performance Auswirkungen haben.


 recording release: yes license:   
 Video: http://pyvideo.org/video/1436/praktische-anwendung-von-metaklassen 
25. EnArgus - ein ontologiebasiertes Forschungsinformationssystem
Thomas Koch
tags: suche, energieforschung, wiki, ontologie, pylucene
Forschungsaktivitäten in vielen Disziplinen werden durch unterschiedliche politische Instrumente gefördert. Die Erfassung und Darstellung von betriebswirtschaftlichen Kennzahlen zu Forschungsaktivitäten ist bereits etablierte Praxis; darauf aufbauende Informationssysteme bieten jedoch oft nur unzureichende Auskunft über inhaltliche Zusammenhänge und Entwicklungen. Am Beispiel des Forschungsthemas Energietechnik wird im EnArgus-Projekt untersucht, wie sich die Transparenz staatlicher Förderpolitik durch Aufbereitung vorhandener Projektdatenbanken und inhaltliche Erschließung  mit Unterstützung einer Fachontologie verbessern lässt und die Ergebnisse auch der interessierten Öffentlichkeit zugänglich gemacht werden können.

Der Vortrag gibt eine Einführung in das Thema ontologiebasierte Suche und stellt das Forschungsprojekt EnArgus (www.enargus.de) vor. Das Ziel von EnArgus ist die Konzeption, Entwicklung und Erprobung eines zentralen Informationssystems für Energieforschungsvorhaben aus dem Bereich der Förderung durch Bund und Länder. Das EnArgus-System soll Politik und Gesellschaft einen Zugang zu Informationen über die Energieforschung ermöglichen und so die Transparenz staatlicher Förderpolitik verbessern. Der Einsatz von Python spielt bei der Systementwicklung in EnArgus eine bedeutende Rolle.

EnArgus ist ein gemeinsames Vorhaben aus Energieforschung und Informatik. Zur inhaltlichen Erschließung  der Anwendungsdomäne werden von Energieexperten Texte in einem Wiki verfasst und bilden die Grundlage zum Aufbau der Energieforschungs-Ontologie. Dabei kommt u.a. die Wiki-Software MoinMoin zum Einsatz. 
 recording release: yes license:   
 Video: http://pyvideo.org/video/1429/enargus-ein-ontologiebasiertes-forschungsinforma 
26. Erfahrungen mit Py4A sowohl mit SL4A als auch Kivy
Nik Klever
tags: kivy, py4a, android, sl4a
Es werden die Erfahrungen mit der Scripting Layer for Android API (SL4A) aus einer Lehrveranstaltung vorgestellt, die Grundlage für das Python-for-Android (Py4A) Package ist. Die einfache SL4A API erlaubt Studierenden die Erstellung von einfachem und schnell entwickelten Python Code für mobile Anwendungen. Einige Eigenschaften der Android GUI und des darunterliegenden Linux werden mit einfachen Anwendungen,u.a. einer ortsbezogenen (GPS) Anwendung vorgestellt. Zudem wird auch der Unterschied zwischen der Device-orientierten und der Emulator-orientierten Entwicklung und die hierfür notwendigen Tools angesprochen. Im zweiten Teil wird auf den Ansatz Python-For-Android aus der Multitouch-Entwicklungsumgebung Kivy eingegangen, deren GUI plattformübergreifend ausgelegt ist und für alle Platformen (Windows, Mac, Linux, iOS, Android) auf OpenGL ES 2.0 aufgebaut ist. Der Vortrag wird weniger in die Details eingehen, als eher die Möglichkeiten aufzeigen, Python auch auf Smartphones zu nutzen und einzusetzen. 
 recording release: yes license:   
 Video: http://pyvideo.org/video/1443/erfahrungen-mit-py4a-sowohl-mit-sl4a-als-auch 
27. "Getting things done" - Pragmatische Projekte mit Plone
Andreas Jung

Plone ist ein komplexes Web-Framework with vielen Modulen und vielschichtigen Abstraktionsebenen. Kundenprojekte im Bereich Web erfordern oft Anpassungen auf mehreren Ebenen: neue Inhaltstypen, Änderungen an Templates und existierenden Funktionalitäten etc. Es ist immer schwierig den richtigen Weg bei einer Anpassung zu finden insbesondere wenn die üblichen Projektressourcen wie Personal, Zeit und Budget begrenzt sind und nicht beliebig skalierbar sind.

In dem Vortrag berichte ich wie wir in vergangenen großen Webprojekten mit diesem Spannungsfeld umgegangen sind und  Plone-Anpassungen in einer pragmatischen Art und Weise durchgeführt haben - ohne dem Kunden einen Sack voller hässlicher Workarounds zu liefern aber auch nicht mit dem Anspruch die perfekteste Lösung gebaut zu haben.

Ich behandle Techniken zur Anpassungen von existierenden Templates und Views, Strategien bei der Behebung von Fehlern in Plone oder Drittprodukten, die Verwendung von Site-Fixtures, um Kunden und Designer frühzeitig eine Site mit Fake-Inhalten (Text + Bilder) zu versorgen sowie Ansätze zum pragmatischen Testen in großen Web-Projekten.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1427/getting-things-done-pragmatische-projekte-mit 
28. Effiziente Datenanalyse mit pandas
Dr. Yves Hilpisch
tags: datenanalyse, zeitreihen, pandas
Datenanalyse ist eine der Kernaufgaben moderner Technologie. pandas (vgl. http://pandas.pydata.org) ist eine leistungsstarke Python-Bibliothek, die die Möglichkeiten zur Datenanalyse mit Python/NumPy/SciPy in viele Richtungen erweitert. Der Fokus liegt dabei auf Convenience und Performance.

Python in Kombination mit pandas macht Datenanalyse im Unternehmens- und Forscheralltag effizient und kann z.T. sogar komplexe und kostenintensive Business Intelligence-Lösungen ersetzen. Besondere Stärken zeigen sich im Zeitreihenmanagement, was für viele Branchen und Unternehmen eine immer höhere Bedeutung erlangt (z.B. Finanzbranche, Energieversorger).

Mit pandas werden die guten Datenanalysefähigkeiten von einer typischen Python-Installation mit NumPy, SciPy etc. in vielerlei Hinsicht erweitert, indem z.B. viele Eigenschaften und Features der statistischen Sprache R in die Python-Welt portiert werden. Es ist dabei kein Ersatz für Standard-Bibliotheken wie NumPy, sondern eine nützliche Erweiterung mit viel "eingebauter Intelligenz" für die Datenanalyse.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1474/effiziente-datenanalyse-mit-pandas 
29. 10 Jahre Python-Forum
Marek Kubica

2012 wurde das deutsche Python-Forum nun 10 Jahre alt. Zeit das Forum den Leuten vorzustellen, die das Forum noch nicht kennen oder eine Abneigung zu Webforen haben. 10 Jahre, das ist genug Zeit um in dessen Geschichte zurückzublicken wie es zum Forum kam und wie es sich entwickelt hat, was es so für Phasen gab und wie sich die Python-Community in dieser Zeit geändert hat.

Ebenfalls kann man die Entwicklung anhand einiger Statistiken verdeutlichen und vielleicht daraus Trends für die Verbreitung von Python in Deutschland ableiten.

Ein wichtiger Punkt ist natürlich die Community, welche Regeln im Forum gelten und warum wir finden dass sie funktionieren. Dabei muss man verstehen wie die Community "tickt" und wie der Job eines Moderators ausschaut. Die ein oder andere lustige Geschichte findet sich im Vortrag sicher auch, von den Foren-Memes, über Flamewars bishin zum gemeinschaflichen Codegolfen. Und wer Interesse hat, kann einfach so im Forum auf [python-forum.de](http://www.python-forum.de/) mitlesen oder sich anmelden und mitposten.

Der Vortragende ist nun seit einigen Jahren Mitglied im Foren-Team und sowohl im Forum als auch auf der Newsgroup/Mailingliste und hat schon eine ganze Reihe Trends gesehen und Threads gelesen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1491/10-jahre-python-forum 
30. Programmieren als Kulturtechnik? Über Hobbyprogrammierer, Gelegenkeitsskripter und Python.
Jörg Kantel
tags: keynote
Nicht nur bei Berufsprogrammierern ist der sogenannte Quereinsteiger weit verbreitet. Auch in Wissenschaft und Technik gibt es Menschen, die »nebenher« programmieren, weil es für ihre eigene Arbeit nützlich ist. Nicht nur in den Natur-, sondern auch in den Sozial- und Geisteswissenschaften gibt es Wissenschaftler, die an neuen Methoden des Zugangs zu ihrem Forschungsmaterial arbeiten und dabei auf »selbstgestrickte« Programme zurückgreifen.

Auch im Hobbybereich sind Programmierer anzutreffen. Hier sind sogar in der kurzen Geschichte der Programmierung regelrechte, zu bestimmten Ereignissen auftretende kreative Explosionen zu verzeichen, die auch Rückwirkungen auf die professionelle Programmierung hatten.

In meinem Vortrag möchte ich kurz auf die Geschichte dieser anderen, mehr spielerischen Seite des Programmierens eingehen und dann die Frage beantworten, welche Bedeutung Python als lauffähiger Pseudocode
speziell im Wissenschafts- und Hobbybereich hat. Python ist in diesem Bereich eine sehr populäre Programmiersprache. Aber ich möchte auch Entwicklungen benennen, die meiner Meinung nach dieser Popularität gefährlich werden könnten und auch anhand von anderen Umgebungen zeigen, was es eventuell zu integrieren gilt.

Über all dem steht mein Kredo, daß jedefrau und jedermann wenigstens ein wenig programmieren können sollte, weil sie sonst programmiert werden. Und ich glaube, daß Python immer noch die beste Einstiegssprache dafür ist.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1489/programmieren-als-kulturtechnik-uber-hobbyprogra 
31. Lightning Talks (Dienstag)


(Needs description.) 
 recording release: yes license:   
 Video: http://pyvideo.org/video/1434/lightning-talks-dienstag 
32. 10 Jahre Python Forum


10 Jahre Diskussionen rund um die Programmiersprache Python: Das deutsche Python-Forum wird 10 Jahre alt. Ein Grund zum Gratulieren!

Im letzten Vortrag vor der Keynote am Dienstag wird Marek Kubica, einer der Administratoren des Python-Forums, zurückblicken und allen die Erfolgsgeschichte des deutschen Python-Forums näher bringen.
Im Anschluss an das Konferenzprogramm am Dienstag laden wir dann ab 17:30 Uhr zu einem kleinen Empfang im Foyer des Kubus ein, um auf das Jubiläum anzustoßen. Alle Benutzer und Freunde des Forums und natürlich die, die es werden wollen, sind herzlich willkommen und können sich bei einem Imbiss und kühlen Getränken - diesmal im Real-Live - austauschen und die ein oder andere Geschichte aus den letzten 10 Jahren des Forums zum Besten geben.
 recording release: yes license:   

33. Putting Technical Debt under Control
Waleri Enns
tags: qualität, code
"You don't control what you cannot measure" 
     Tom Peters paraphrasing Lord Kelvin

Die aus den Fugen geratende Qualität des Source Codes und das
excessive Akkumulieren des sogenannten Technical Debt ist eine häufige
Ursache für das vorzeitige Ableben von Software Projekten. Das
Kontrollieren dieser Aspekte ist essentiell für eine langfristige
Gesundheit der Software. Die Kontrolle setzt jedoch Messung voraus;
erst die Definition und systematische Erhebung einer Qualitätsmetrik
versetzt den Entwickler (und seinen Manager) in die Lage, die Qualität
dieser Software zu überwachen und ggf. kontinuierlich zu verbessern.

Das Gespann "Sonar + Python AddOn" gibt eine State-Of-The-Art-Antwort
auf die Frage "Was ist qualitativ hochwertiger Python Code?". Dieser
Vortrag führt aus, wie die Qualität bzw. Technical Debt einer Python
Code-Basis gemessen, zu einer Kennzahl 'verdichtet' und kontrolliert
werden kann.

Dieser auf Softwaremetriken basierende Ansatz wird auch Continuous
Inspection genannt. Es ist abzusehen, dass diese Technologie einen
ähnlich starken Einfluss auf die Entwicklung von Software haben wird
wie die Continuous Integration / Continuous Deployment in der letzten
Dekade.

Mit Sonar und dem (noch jungen) Python Plugin steht die wesentliche
Infrastruktur um Continuous Inspection in der Praxis für Python
Projekte umzusetzen. Das Ziel dieses Vortrags ist es, die Python
Community für diese Technologie zu begeistern.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1433/putting-technical-debt-under-control 
34. OpenOffice-Dokumente selbst modifizieren
Reinhard Wobst

Der Vortrag stellt eine Python-Klasse vor, die das fast beliebige Modifizieren von Open/LibreOffice-Dokumenten bequem ermöglicht. Es geht mehr um die Vorstellung einer Methode als um ein fertiges Werkzeug. So manche Aufgabe lässt sich damit erheblich einfacher bewerkstelligen als mit Makros oder über die pyUNO-Schnittstelle.

Hat man eine größere Zahl von ODF-Files (also im Open Document Format) oder ein großes ODF-Dokument an vielen Stellen in gleicher Weise zu bearbeiten, ist das ermüdend, zeitaufwändig und fehleranfällig. Wozu gibt es Computer? Open/LibreOffice erlaubt zwar Makros, doch deren Leistung ist beschränkt, und die pyUNO-Schnittstelle ist kompliziert, schlecht dokumentiert und noch nicht ausgetestet.

Es geht auch anders: ODF-Files sind Zip-Archive von XML-Files, und diese lassen sich mit Pythonskripten einfach bearbeiten. Das ODF-Format ist relativ leicht zu verstehen (der Standard ist gut lesbar), der Phantasie des Anwenders sind keine Grenzen gesetzt - sei es, um manuelle Formatierungen zu markieren, in bestimmte Tabellen Spalten einzufügen oder diese um Zeilen zu ergänzen, deren Berechnung partout nicht ins Konzept der Calc-Formeln passen will.

Dabei sind allerdings einige kleine Stolpersteine zu beachten, auf die der Vortrag hinweist. Die hier vorgestellte Klasse ist eine mögliche Methode, um sich auf die "wesentlichen Dinge" konzentrieren zu können.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1450/openoffice-dokumente-selbst-modifizieren 
35. Konferenz-Organisation mit Plone
Andreas Mantke
tags: plone, dexterity, konferenz-organisation, add-on
 
Great images, the color and depth of the photos are breath-taking, they attract you in as though you are a part of the composition. 
 
my website - http://journal-cinema.org/
 recording release: no  
 Video: http://pyvideo.org/video/1487/konferenz-organisation-mit-plone 
36. Plone Theming, flexibel, schnell und einfach!
Maik Derstappen
tags: plone, diazo, cms
Das Theming von komplexen Content Management Systemen ist häufige eine sehr arbeitsintensive Angelegenheit - Plone ist dabei keine Ausnahme. Dank Diazo ist kein Plone-Experten-Wissen mehr notwendig, um beliebige Designs in Plone umzusetzen. Der Vortrag stellt an einem Beispiel aus der Praxis den Einsatz von Diazo vor.

Dank Diazo und plone.app.theming kann ein Designtemplate (aus html und css komplett unabhängig vom CMS gehalten werden. Ein einfaches Regelwerk verknüpft das Designtemplate mit dem CMS. Ein Theme kann als Zip-Datei verpackt, direkt in Plone importiert und aktiviert werden ohne das System neu starten zu müssen. Der Vortrag weist an Beispielen den Weg vom statischen Template zum dynamischem Plone-Theme. Schwerpunkt ist hierbei die Erzeugung der Regeln mit denen die Elemente des statischen Templates mit den Inhalten aus dem CMS verbunden werden.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1454/plone-theming-flexibel-schnell-und-einfach 
37. Schnelle Schleifen mit Cython
Stefan Behnel

Keine PyCon(-DE) ohne Cython, die de-facto Standarderweiterungssprache für Python. Diesmal geht es um ein paar neuere Spracherweiterungen zur Python-Syntax, die den Cython-Compiler besonders attraktiv für High-Performance-Computing machen: Parallele Schleifen mit OpenMP, effizientes Slicing mit Memory-Views und generische Funktionen.

[Cython](http://cython.org "Web-Seite des Cython-Projekts") ist eine Programmiersprache, die die Sprache Python um zusätzliche Features ergänzt. Sie macht das Schreiben von schnellen Erweiterungsmodulen für CPython und das Anbinden von externen nativen Bibliotheken (C/C++/Fortran/...) so einfach wie Python selbst.

Dieser Vortrag gibt einen kurzen Einblick in Cython und speziell in die Optimierung von schleifenbasierten Algorithmen über NumPy Arrays, mit denen große Datenmengen effizient verarbeitet werden können. Dazu werden Memory-Views verwendet, die mit Version 0.16 in Cython Einzug gehalten haben. Hinzu gesellen sich parallele Schleifen, sowie generische Funktionen, die es dem Compiler erlauben, einmal geschriebenen Code für verschiedene native Datentypen zu optimieren.

Eine ausführliche Version dieses Vortrags mit entsprechenden Übungen wird zusätzlich als Tutorial angeboten.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1424/schnelle-schleifen-mit-cython 
38. Practical DevOps
Schlomo Schapiro
tags: open source, scrum, agile, devops, python, web, kanban
DevOps ist eine aktuelle Bewegung in der IT, die sich zur Aufgabe macht, ein Umdenken in den klassischen Lagern Entwicklung und Betrieb einzuleiten. Der Vortrag wirft einen Blick auf die noch junge Bewegung und zeigt mit Geschichten aus dem wahren Leben, wie sich die agile Denkweise fortschreiben lässt, die mit SCRUM ins allgemeine Bewusstsein getreten ist.

Schlomo gibt einen Überblick über das Thema und berichtet über die DevOps Erfolge bei der [ImmobilienScout24](http://www.immobilienscout24.de). Nach 2 Jahren agilem Umdenken in der Entwicklung zeigte sich, dass die klassische Gewaltenteilung Plan - Build - Run einfach nicht mehr gut funktioniert weil sich die Anforderungen und Erwartungen sowohl in der Entwicklung als auch im Betrieb ändern und daher auch eine neue Form der Zusammenarbeit nahe legen.

Die Ideen aus der DevOps Bewegung lassen sich fast überall einsetzen, wo bisher ein "über den Zaun werfen" gespielt wird und haben das primäre Ziel, alle Beteiligten gemeinsam an einem Strang ziehen zu lassen. Mit den Ideen und Erfahrungen aus dem Vortrag lassen sich sicher die ersten Schritte in die richtige Richtung einleiten.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1473/practical-devops 
39. Python 3.3
Martin v. Löwis
tags: python3, python
Am 29.9.2012 wurde nach 19-monatiger Entwicklungszeit Python 3.3
fertiggestellt. Es ist die größte Erweiterung von Python seit Version
3.0; Änderungen gab es in allen Bereichen der Implementierung (Syntax,
Standardbibliothek, Paketierung, interne Strukturen). In dem Vortrag
werden die wesentlichen Änderungen umrissen, sowohl aus Anwendersicht
wie auch aus Sicht eines core committers.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1442/python-3-3 
40. Debugging mit Python
Stefan Schwarzer
tags: debugger, fehlersuche, programmzeiger, breakpoint, print, fehler, unterbrechungspunkt, debugging
Manche Fehler in Python-Programmen lassen sich mit Print-Anweisungen aufdecken, in komplizierteren Fällen ist aber ein Debugger gefragt.

Der Vortrag behandelt Grundlagen für die Fehlersuche in Python-Programmen. Zunächst soll es - für die einfachen Fälle - um Print-Anweisungen gehen. Danach kommt die Verwendung des mit Python gelieferten Debuggers pdb. Dazu werden Grundbegriffe wie Programmzeiger und Breakpoint erklärt und gezeigt, wie man die Befehle des Debuggers für die Fehlersuche benutzt (zum Beispiel Setzen von Breakpoints, schrittweise Ausführung ohne und mit Funktionsaufrufen sowie natürlich die Untersuchung von Objekten).

Ich kann den Vortrag wahlweise als 55- oder 25-Minuten-Version halten. Im ersten Fall würde ich auch noch auf andere Debugger wie pudb, pdb++ und WinPdb eingehen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1447/debugging-mit-python 
41. Der Django-Admin-Bereich im Überblick
Andreas Albrecht
tags: django
Das Django-Webframework bringt mit einem automatisch generierten Admin-Bereich ein mächtiges Werkzeug zur Administration von Webapplikation mit.

Der Vortrag stellt den Admin-Bereich des Django-Webframeworks in den Vordergrund und richtet sich an Django-Einsteiger und -Interessierte, aber auch an Entwickler, die sich bisher noch nicht sehr intensiv mit dem Admin-Bereich auseinander gesetzt haben.

Dazu wird kurz das Berechtigungskonzept als Grundlage des Admin-Bereichs erläutert, die Erstkonfiguration beschrieben und die Funktionalität vorgestellt. Der zweite Teil des Vortrags beschäftigt sich dann mit den Erweiterungs- und Anpassungsmöglichkeiten, die die Django-API bereit stellt.

Die abschließende Diskussionszeit kann für Fragen verwendet werden.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1465/der-django-admin-bereich-im-uberblick 
42. Metro-Programmierung mit Python
Martin v. Löwis
tags: metro, winrt, app
Metro ist die Nutzerschnittstelle für Apps in Windows 8. Microsoft unterstützt App-Programmierung in C, C++, C#, VB und JavaScript. Im Vortrag wird das API WinRT vorgestellt und gezeigt, wie mit Python Apps entwickelt werden können. 

Themen sind:
- Windows 8
- Metro-UI
- WinRT und COM
- Python als App
- Python-WinRT-API
 recording release: yes license:   
 Video: http://pyvideo.org/video/1444/metro-programmierung-mit-python 
43. Virtuelle Entwicklungsumgebungen mit Vagrant
Markus Zapke-Gründemann
tags: virtual box, vagrant, virtuelle maschinen
Oft benötigt man für verschiedene Projekte ganz unterschiedliche Bibliotheken, Dienste und Werkzeuge. Alle Abhängigkeiten auf einer Maschine zu installieren kann schnell anstrengend bis unmöglich werden. Hier kommt Vagrant ins Spiel: Mit Hilfe von Vagrant kann man einfach und schnell Virtuelle Maschinen als Entwicklungsumgebungen erstellen, konfigurieren und benutzen.

Durch die Nutzung von (vorhandenen) Provisioning Tools wie Chef oder Puppet kann man vorhandene Konfigurationen von Produktiv-System zum Setup der Virtuellen Maschinen nutzen. Außerdem lassen sich mit Vagrant auch komplexe Cluster-Setups auf dem eigenen Rechner aufbauen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1446/virtuelle-entwicklungsumgebungen-mit-vagrant 
44. Agile testing in the large
Mark Fink
tags: testing
Im Vortrag "Agile testing in the large" nutze ich wieder OpenSource Tools die leider nicht alle in Python implementiert sind, jedoch hervorragend geeignet sind, um u.a. Python Webapplikationen zu testen.

Der Vortrag erläuterte das Testen moderner Web-Anwendungen und gliedert sich so:

*  Einleitung
*  Continuous Integration
*  kleine Entwickler-Tests
*  mittlere und große Entwickler-Tests
* Acceptance Testing mit Selenium2

Themen exploratory Testing und Performance Testing bleiben absichtlich unbehandelt.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1440/agile-testing-in-the-large 
45. Python und OpenCV
Andreas Bunkahle

Python hat zu Unrecht den Ruf einer einfachen Skriptsprache, die für Grafikanwendungen ungeeignet sei. Gerade in Verbindung mit den starken Python-Bibliotheken und Modulen, die in C++ geschrieben sind, wird die Brillianz und Einfachheit von Python als vollwertige Programmiersprache auch für Grafikanwendungen sehr deutlich. Hier wird exemplarisch das Zusammenspiel der mächtigen Grafikbibliothek OpenCV mit Python demonstriert.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1428/python-und-opencv 
46. nagiosplugin - eine Python-Bibliothek für Monitoring-Plugins
Christian Kauhaus
tags: icinga, monitoring, plugin, nagios
Auch wenn in der letzten Zeit sehr viel Bewegung in die Monitoring-Szene gekommen ist (#monitoringsucks etc.), werden die Platzhirsche Nagios/Icinga und ihre Standards auf absehbare Zeit nicht verschwinden. Das Nagios-Plugin-API stellt eine sehr weit verbreitete Schnittstelle zur Anbindung einzelner Checks an Monitoring-Systeme dar. Obwohl das API in den Grundzügen sehr einfach ist, ist der Programmieraufwand für vollständig konforme Plugins erstaunlich hoch.

Die [_nagiosplugin_-Bibliothek](http://pypi.python.org/pypi/nagiosplugin/) nimmt dem Entwickler viele Details ab, so dass er sich auf den Inhalt seiner Checks konzentrieren kann. Der Vortrag führt in das Schreiben von Nagios-kompatiblen Plugins ein, zeigt den typischen Aufbau von Nagios-Plugins und das Grundprinzip eigener Plugins. Die Konfiguration und der Betrieb von Monitoring-Systemen im Großen sollen nicht thematisiert werden.

Eine Einführung stellt die notwendigen Elemente wie Klassengerüst, Messwerterhebung, Ranges, Statusausgabe und Performancedaten sukzessive in aufeinander aufbauenden Beispielen vor, so dass am Ende ein einfacher, aber praktisch einsetzbarer Check entsteht.

Der Teil über fortgeschrittene Aspekte und Stolperfallen reißt Einzelbeispiele zu Themen wie mehrere Datenquellen, Timeouts, Auswertung wachsender Logfiles und Checks mit "Gedächtnis" an und zeigt typischen Fehlerquellen auf.

Den Abschluss bildet ein kurzer Ausblick auf die weitere Entwicklung der _nagiosplugin_-Bibliothek.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1460/nagiosplugin-eine-python-bibliothek-fur-monitor 
47. pytest - rapid and simple testing with pytest
Holger Krekel
tags: python, testen
Das Werkzeug py.test erlaubt es schnell und einfach Test für Python-Programme zu schreiben. Dieser Vortrag stellt die grundlegende Nutzung von py.test und wichtige Terminologie dazu vor. Zusätzlich zeigt die Präsentation wie py.test Unit- und funktionale Test mit besonderen Mechanismen wie "perfected assertions" und "dependency injection" unterstützt.

Der Vortrag führt in die Prinzipien der Unit- und funktionalen Tests kurz ein und geht auf die Vorteile von py.test gegenüber dem in der Standardbibliothek enthalten Paket unittest ein. So kann py.test Tests, die über verschiedene Python-Versionen und- Implementierungen hinweggehen, ausführen. Der Schreibsstil der Tests ist "pythonic" und die Plugins lassen sich für verschiedene Projekte nutzen.

Nach einem einfachen Test-Beispiel, das die Grundprinzipen umfasst, folgen Beispiel zu "dependency injection". Die Nutzung von py.test im Mozilla Projekt webqa und die Möglichkeiten des "mocking" und "monkeypatching" schließen den Vortrag ab.



 recording release: yes license:   
 Video: http://pyvideo.org/video/1432/pytest-rapid-and-simple-testing-with-pytest 
48. Django, App-gehoben
Frank Becker
tags: app, pluggable, web, package, module, reuseable app, django
Das Webframework Django kommt ganz wie Python mit "Batteries included". Ähnlich wie sich in Python mit seiner umfangreichen Standardlib viele Alltagsaufgaben mit wenigen Zeilen Code erledigen lassen, so vereinfacht Django die Entwicklung von Webanwendungen. Und genau wie es im PyPI unzählige Packages für so gut wie jede Aufgabe gibt, so umkreist auch Django eine Fülle von sogenannten Pluggable Apps, also Zusatzmodulen für fast jeden Anwendungsfall.

Der Vortrag stellt einige Highlights solcher Django-Packages vor, welche ohne viel Aufwand gewöhnlichen Djangoanwendungen erweiterte Funktionalität mitgeben.

Es werden aus den Bereichen RESTful API, Formulare, Sicherheit, CSS/SCSS/JS Handling, Softwaretesting, Taskqueue, Ajax, Suche, Datenbankschemamigration und Authentifizierung jeweils ein populäres Beispielpackage kurz vorgestellt. Der Fokus liegt bewußt nicht auf Details. Gezeigt wird grob die Funktionsweise, Installation und ein paar Erfahrungen aus dem praktischen Einsatz.

Der geneigte Zuhörer soll angeregt werden ähnliche Django-Packages in seinen eigenen Projekten zu verwenden. Der Benefit für den Einzelnen ist, schnell meist gut getestete Funktionalität für das eigene Projekt einzubauen. Die Gemeinschaft profitiert von gemeinschaftlich entwickelter Freier Software.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1425/django-app-gehoben 
49. batou - multi-(host| component| environment| version| platform) deployment 
Christian Theune
tags: deployment
Batou ist ein Open-Source Werkzeug um mit Python das Deployment von komplexen Anwendungen zu beschreiben und zu automatisieren.

Das Konzept besteht darin eine passende allgemeine Modellsprache in Form einer API zu definieren. Dabei stehen Wiederverwendung, Toleranz gegenüber unbekannten Zuständen und Ausdrucksstärke im Vordergrund.

Der Vortrag zeigt den Werdegang und unsere Motivation zur Entwicklung von batou auf und zeigt die konzeptionellen Stärken anhand praktischer Beispiele.

Wir haben in den letzten Jahren eine Reihe großer und kleiner Projekte beim Deployment betreut.

Im Rahmen unserer Plattform "gocept.net" bereiten wir unsere Erfahrungen in Dokumentation und offenen Werkzeugen auf und haben daher batou entwickelt.

batou ist sowohl in Python geschrieben und nutzt Python um Deployment-Strukturen zu beschreiben.

Wir möchten Batou gerne vorstellen um unsere Erfahrungen weiterzugeben und (auch auf den Sprints) anzuregen sich mit dem Werkzeug auseinanderzusetzen, Feedback zu bekommen, und daran weiterzuarbeiten.

Beispiel-Code des Werkzeugs:
https://code.gocept.com/hg/public/batou/file/920e606b2959

Beispiel einer Deployment-Beschreibung:
https://bitbucket.org/ctheune/sprintsite
 recording release: yes license:   
 Video: http://pyvideo.org/video/1463/batou-multi-host-component-environment-vers 
50. Designing and Testing PyZMQ Applications
Stefan Scherfke
tags: zeromq, ømq, process tests, pyzmq, unit tests, system tests, application design, testing
PyZMQ ist eine mächtige aber dennoch einfach zu benutzende Netzwerkbibliothek.
Neben ZeroMQ’s und PyZMQ’s ausführlicher Dokumentation existieren auch einige
gute Tutorials. Über einfache Beispiele oder allgemeine System-Architekturen
gehen sie jedoch oft nicht hinaus.

In diesem Vortrag werden daher Wege gezeigt, wie größere PyZMQ-Anwendungen
entworfen und getestet werden können. Behandelt werden dabei neben Unit-Tests
auch Prozess- und System-Tests.

Der Vortrag basiert auf den Erfahrungen, die der Autor bei der Entwicklung
eines verteilten Simulations-Frameworks gemacht hat.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1484/designing-and-testing-pyzmq-applications 
51. Vortrag: SimpleCV: Spass mit Computer Vision
Ernesto Rico-Schmidt
tags: python, simplecv
Der Vortrag ist eine Einführung in SimpleCV und zeigt die interessanten Möglichkeiten die heutzutage in der Computer Vision stecken, und die ganz einfach mit Hilfe von Python implementiert werden können.

[SimpleCV](http://simplecv.org/) ist ein plattformübergreifendes Framework, das mehrere leistungsstarke Open Source Computer Vision Bibliotheken in einem praktischen Paket vereint. Mit ihm hat man Zugriff auf Algorithmen zur Feature- und Mustererkennung sowie Filterung, ohne sich mit Bit-tiefen, Dateiformaten, Farbräumen, Eigenwerten und Matrizen beschäftigen zu müssen. Man kann Videostreams von Microsofts Kinect und Webcams erfassen und in Echtzeit verarbeiten.  
Das integrierte [IPython](http://ipython.org/) Shell macht das Experimentieren leicht.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1462/vortrag-simplecv-spass-mit-computer-vision 
52. Django class based generic views
Klaus Bremer
tags: django, class based generic views
Django class based generic views können zu einer strukturell einheitlichen View-Programmierung beitragen, was Programm-Entwicklungen erleichtern und mögliche Fehler verringern kann. Der Talk gibt eine Einführung in Struktur und Funktionsweise dieses Subframeworks.

Mit den class based generic views bietet Django ein umfangreiches Subframework zum erstellen von class based views. Die Dokumentation ist recht rudimentär und erlaubt nur einen groben Überblick, erst die Studie des Quellcodes offenbart ein tieferes Verständnis der Klassenhierarchie und Funktionsweise. Ziel dieses Talks ist es, durch Vermitteln der Funktionsweise eine Einarbeitung zu erleichtern.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1459/django-class-based-generic-views 
53. LFS - Ein Online-Shop basierend auf Django
Kai Diefenbach
tags: django, e-commerce
LFS ist ein Online-Shop basieren auf Python, Django und jQuery. Er erfreut sich zunehmender Aufmerksamkeit, sowohl bei Entwicklern als auch bei Anwendern. Laut djangopackages.com ist LFS der am häufigsten heruntergeladene Shop für Django. Änderungen am Source Code verfolgen über 200 Entwickler und die Google-Gruppe hat zur Zeit über 170 Mitglieder.

LFS ist praxiserprobt. Beispiele für große und erfolgreiche Shops sind:

* demmelhuber.net
* holzimgarten.com
* anwaltakademie.de

Kai Diefenbach, Gründer und einer der Kern-Entwickler, gibt in diesem Vortrag ein Überblick zu folgenden Themen:

* Live-Shops. Vorstellung von einigen Live-Shops: Zahlen und Fakten.

* Features. Vorstellung der wichtigsten Features, beispielsweise: Produktarten, Katalog, Zahlmethoden, Liefermethoden, Mehrwertsteuer, Checkout, etc.

* Entwicklung. Alles rund um die Entwicklung: Wie geht diese vor sich? Wie kann ich teilnehmen? Wie können Erweiterungen entwickelt werden?

* Ausblick. Die Zukunft von LFS: Releases, neue Features, etc.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1466/lfs-ein-online-shop-basierend-auf-django 
54. Die Infrastruktur für Erweiterungen der Wiki-Software MoinMoin (moin2).
Reimar Bauer
tags: wiki, python, moinmoin, plugins
Die Wiki Software moin2 kann mehr als nur  ein Wiki betreiben.
U.a. kann man moin2 für einen Pastebin, Blog und ein Ticket-System verwenden. 
Der Vortrag gibt Einblick in Erweiterungen und den Stand der Entwicklung.

moin2 ist ein Redesign der Wiki-Software von moin1. 
Es hat viele Merkmale mit einigen anderen Webanwendungen gemeinsam. 
Durch die offene Architektur und die vorhandenen Sicherheitsmechanismen gegen Spam ist es z.B. möglich einen pastebin analog zu lodgeit zu integrieren.
Blog Posts unterscheiden sich auch nicht wesentlich von Wiki Items. Mit einem Ticket-System lassen sich Arbeitsabläufe optimieren. 

Der Vortrag zeigt, wie in moin2 solche Erweiterungen integriert werden und zeigt den Stand der aktuellen Entwicklung.

Für Eigenentwicklungen wird ein Einblick
auf das neue Plugin Konzept gegeben.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1485/die-infrastruktur-fur-erweiterungen-der-wiki-soft 
55. eGenix PyRun - Python Laufzeitumgebung in einer Datei
Marc-Andre Lemburg
tags: virtualenv, kompakt, laufzeitumgebung, python, interpreter, open-source
eGenix PyRun kondensiert eine komplette Python Laufzeitumgebung mit Interpreter und Standardbibliothek in eine einzige sehr kompakte ausführbare pyrun Programmdatei.

Da PyRun keine Installation benötigt und unabhängig von einer Python System Installation arbeitet, bietet es sich damit als portable Lösung für Skripte, Applikationen und in der Entwicklung als virtualenv Ersatz an.

PyRun ist nur 12-13MB groß, enthält aber den größten Teil einer üblicherweise ca. 100MB großen Python Installation. Die Größe kann per gzexe oder upx auf unter 4MB reduziert werden.

Es bietet damit eine ganze Reihe von Vorteilen gegenüber einer regulären Python Installation. Hier die wichtigsten Aspekte:

* Sehr kompakt
* Keine Installation oder Root Rechte notwendig
* Kann unabhängig von einer System Python Installation verwendet werden
* Bessere Startzeit als reguläres Python
* Kompatibel mit distutils/setuptools/pip/etc.
* virtualenv Ersatz

Derzeit unterstützte Systeme sind Linux, Mac OS X und FreeBSD. Es sollte aber auch auf anderen Unix Systemen verwendbar sein. PyRun wird von eGenix unter einer Open Source Lizenz verfügbar gemacht.

Der Vortrag wird das Projekt vorstellen, eine Anwendungsdemo zeigen und je nach verfügbarer Zeit auch die Übersetzung demonstrieren.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1435/egenix-pyrun-python-laufzeitumgebung-in-einer 
56. GR - ein universelles Framework für Visualisierungsanwendungen
Josef Heinen
tags: frameworks, visualisierung, opengl
Zur Erstellung von Visualisierungsprogrammen existiert eine Vielzahl freier und kommerzieller Tools und Bibliotheken. In einem heterogenen Rechnerumfeld zeigt sich aber, dass es keine durchgängig einsetzbare Lösung gibt, welche die speziellen Anforderungen in einem wissenschaftlichen Umfeld abdeckt.

GR ist ein universell einsetzbares Framework für plattformübergreifende Visualisierungsanwendungen. Es bietet Entwicklern eine kompakte, portable und einheitliche Grafik-Bibliothek für ihre Anwendungen. Das Anwendungsspektrum reicht von der Erzeugung publikationsreifer 2D-Diagramme bis hin zur Darstellung komplexer 3D-Szenen.

Der Vortrag beschreibt zunächst die Funktionalität des GR-Frameworks, welches im wesentlichen auf einer Implementierung des graphischen Kernsystems (GKS) sowie der Programmierschnittstelle OpenGL basiert. Es wird aufgezeigt, wie GR als geschlossenes System schnell und einfach in vorhandene Anwendungen – z.B. mit dem ctypes-Mechanismus in Python - integriert werden kann. Neben dem Einsatz in imperativ programmierten Systemen ist auch eine Integration in moderne objektorientierte Systeme, die auf GUI Toolkits aufbauen, vorgesehen. Darüber hinaus werden die Stärken des GR-Frameworks in Bezug auf die Interoperabilität mit aktuellen Web-Technologien und mobilen Geräten herausgestellt.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1449/gr-einuniverselles-framework-f-r-visualisierung 
57. "White Box Debugging" - Debugger für Unittests nutzen
Reinhard Wobst

"White Box Testing" ist das Testen von internen Zuständen zur Laufzeit, während ubliche Unittests in der Regel nur Funktionen rufen. Man kann aber mittels eines Debuggers White Box Testing durchführen - ein Pythonskript erlaubt dies fur Python mit pdb wie auch für C/C++ - Programme mit gdb.

Unittests sind ohne Frage unerlässlich, aber oft aufwändig zu programmieren und beschränkt aussagefähig, da in der Regel nur einzelne Funktionen oder Module als Black Box getestet werden können. Nicht selten ist sogar gesonderter Code notwendig, um sinnvolle Tests zu ermöglichen.

Aussagekräftiger und naheliegender wären Tests auf Werte mitten im Code, doch solch eine Funktionalität bietet bisher nur die assert-Anweisung, die bei Fehlern mit einem wenig aussagekräftigen Abbruch endet.

Die Idee des Python-Skripts "wbd" ("white box debugging") ist, aus Kommentaren im Quelltext Konfigurationsfiles für Debugger zu erzeugen, so dass an bedingten Breakpoints Tests stattfinden. Beim Fehler landet man gleich im Debugger und kann die Umgebung analysieren.

Das funktioniert derzeit für Pythonskripte und C/C++-Programme und ist auch gut als Hilfsmittel beim Debuggen selbst einzusetzen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1437/white-box-debugging-debugger-f-r-unittests-nut 
58. Hunting down the Universe - was alte Bugs mit neuer Physik zu tun haben
Benedikt Hegner
tags: keynote
Zur Zeit findet am CERN in Genf wohl eins der größten wissenschaftlichen Experimente der Menschheit statt - der LHC. Aber was wird an diesem Teilchenbeschleuniger eigentlich gemacht? Warum fasziniert die Suche nach dem Higgs eine ganze Physikergeneration? Wieso ist der LHC nicht nur einphysikalisches, sondern auch ein soziologisches Experiment? Und was hat schlussendlich die Suche nach neuen Teilchen mit Python und der Suche nach Bugs zu tun? Diese Keynote wird versuchen, diese und andere Fragen zu beleuchten.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1490/hunting-down-the-universe-was-alte-bugs-mit-neu 
59. Lightning Talks (Mittwoch)


(Needs description.) 
 recording release: yes license:   
 Video: http://pyvideo.org/video/1481/lightning-talks-mittwoch 
60. dev --+ qual --+ prod
Thomas Güttler
tags: virtualenv, deployment, linux
Es wird das Konzept vorgestellt, wie man Projekte strukturieren kann um von der ersten Minute an eine mind. dreistufige Landschaft (Entwicklung, Qualitätssicherung, Produktiv) vorzusehen.

Die zentrale Rolle spielen getrennte Systemnutzer um isolierte Umgebungen zu erstellen. Dieser Ansatz ist für Python-Server-Anwendungen wie z.B Django-Anwendungen sehr gut anwendbar.

Seit einiger Zeit setzen wir getrennte Linux-Nutzer anstatt virtualenv ein. Das zentrale Merkmal, ist der Name des Systemnutzers:

Namensschema des Linux-Nutzers: app_customer_stage

* app ist die Anwendung (zB cms)
* customer ist ein Kürzel für den Kunden
* stage ist d, q, p (dev, qual, prod).

Beispiel:

* mycms_customer1_d Entwicklungssystem
* mycms_customer1_q Qualitätssicherung
* mycms_customer1_p Produktivsystem

In einer zentralen Datei wird konfiguriert auf welchem Host welches System läuft. Jedes System kennt das nächste System (Bsp dev->qual), so dass ein Abgleich relativ einfach möglich ist.

Das simple System hat viele Vorteile, die ich in dem Vortrag vorstellen möchte.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1461/dev-qual-prod 
61. Mercurial - ein verteiltes Versionskontrollsystem
Markus Zapke-Gründemann
tags: python, dvcs, mercurial, softwareentwicklung
Dieser Vortrag stellt Mercurial vor, zeigt aber auch optimale Vorgehensweisen für den Entwicklungsalltag sowie die Grundlagen der Entwicklung von Mercurial Extensions.

Mercurial ist ein verteiltes Versionskontrollsystem. Die Befehle und Funktionen sind einfach zu lernen.

Da es unabhängig vom einem Server arbeitet kann jeder lokal und auch ohne Internetverbindung Dokumente oder Quellcode damit verwalten. Trotzdem kann man mit Mercurial die Repositories untereinander austauschen und so auch über weite Entfernungen zusammen arbeiten.

Mercurial ist komplett in Python geschrieben und lässt sich deshalb einfach erweitern.

Viele bekannte Open Source Projekte und Firmen setzen Mercurial ein. So zum Beispiel Atlassian, Dovecot, Gajim, Google, Facebook, Mozilla, OpenOffice, OpenSolaris, Python, PyPy, RabbitMQ, Unity, Vim oder Xen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1441/mercurial-ein-verteiltes-versionskontrollsystem 
62. "The pythonic way" für IT Projekte
Lutz Mende
tags: trac, agil, scrum, python, testcase, usecase
"Potentially shippable increment of product in 30 days" -- dies ist die Vision von Scrum bzw. das grundsätzliche Ziel von agiler Softwareentwicklung bzw. Vorgehen in IT - Projekten.
Dieses Ziel fordert, dass innerhalb eines Sprints , entworfen, implementiert,
getestet, freigegeben und eine Distribution erstellt und installiert wird.

Im Rahmen des Vortrags wird behandelt, wie durch den Einsatz einfacher Python -
Macros innerhalb des Projekt- und Issue-Trackingsystems TRAC methodisch gute
(für Entwickler und Kunden verständliche) Userstories, Usecases und Testcases
entstehen. Es wird gezeigt, wie diese erzeugt, verwaltet, angewandt und durchgeführt
werden und damit allen Projektbeteiligten ermöglicht wird, agile
Paradigmen und Vorgehensweisen einfach und effizient anzuwenden.

Die vorgestellten Vorgehensweisen wurden von den Autoren, mehrfach erfolgreich
in großen Industrieprojekten als auch in kleinen internen Softwareprojekten
angewendet.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1457/the-pythonic-way-fur-it-projekte 
63. Python-Web-Sprints
Veit Schiele, Christian Theune
tags: sprint, web-anwendungen
Seit April 2011 finden regelmäßig dreitägige Sprints zu verschiedenen  Themen rund um Python-Web Anwendungen statt. Dabei geht es meist nicht um die schnelle Implementierung spezifischer Features sondern um grundlegende, von den Beteiligten mitgetragene Konzepte. Meist wird auch nicht an einzelnen Komponenten, sondern an einer Toolchain zur Lösung konkreter Probleme gearbeitet. Schließlich werden die Ergebnisse in einer Anwenderdokumentation festgehalten.

Die Initiatoren des Sprints, Christian Theune und Veit Schiele, stellen das Konzept der Sprint-Reihe vor und gehen auch die Ergebnisse der bisherigen Sprints ein. Die Themen der bisherigen Sprints waren: PyPI-Mirroring und Performance-Optimierungen, Sicherheit und Datenschutz  bei Web-Anwendungen sowie Betrieb und Deployment  von Python-Webanwendungen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1480/python-web-sprints 
64. Schneller ohne C++
Stefan Behnel
tags: python, entwicklungskosten, c++, sprachintegration
Die Sichtbarkeit von C++ in der Software-Entwicklung ist auch in ihrem 33. Jahr noch enorm. In vielen Bereichen, z.B. im Ingenieursumfeld und im Embedded-Bereich wird schon aus Tradition mit C und C++ entwickelt, oft ohne den Blick auf Alternativen. Eingespielte Entwicklerteams und große, über lange Zeit gewachsene Code-Basen lassen einen Umstieg unmöglich erscheinen.

In diesem Vortrag werde ich die Frage stellen, warum C und C++ so große Verbreitung besitzen, trotz der hohen Anforderungen an Entwicklererfahrung und der aufwändigen und fehleranfälligen Entwicklung mit diesen Sprachen. Dabei zeigt sich Python als ganz natürliche Ergänzungssprache, die sich leicht mit bestehenden Code integriert und in vielen Bereichen die Entwicklung dank des Paretoprinzips merklich beschleunigt.

Python erlaubt sowohl eine schnelle prototypische Umsetzung neuer Anforderungen als auch die Integration anspruchsvoller Features durch die breite Funktionalität in der Standardbibliothek und den nahezu allumfassenden Fundus an Bibliotheken. Das Spektrum geht dabei von einfachen Skripten über Test-Unterstützung und Web-Frontends bis hin zu Finanzanwendungen, Bildverarbeitung und zur performancekritischen Analyse gigantischer Datenmengen aus Tiefseesensoren und Radioteleskopen.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1439/schneller-ohne-c 
65. Pydica - eine Open-Source-Plattform zum Scannen und Validieren von Formularen in Python
Daniel Szoska
tags: distributed document capture, formularerfassung
Pydica steht für *Distributed Document Capture* und ist eine Plattform, mit der die verteilte Verarbeitung ausgefüllter Formulare vom Scannen über die OCR bis hin zur anschließenden Validierung möglich ist. Wir stellen die Plattform, unser Sicherheitskonzept und einen konkreten Anwendungsfall vor.

Für das Problem der Erfassung, Validierung und Weiterverarbeitung großer Mengen ausgefüllter Formulare wie zum Beispiel Verträge, Umfragen, Krankenscheine, Rezepte, Überweisungen, Schecks o. ä. existiert keine Lösung.

Ziele von Pydica sind:

__Skalierbarkeit:__ Die verteilte Architektur sorgt dafür, daß mehrere Scanner- und Validierungsarbeitsplätze genutzt werden können. Auch die Serverkomponenten für OCR und automatische Validierung sind frei skalierbar.

__Komplexe Validierungsregeln:__ Die Validierung beschränkt sich nicht nur auf einzelne Felder, sondern ist auch über mehrere Felder möglich, wie dies z. B. bei Prüfsummen der Fall ist.

__Offene Toolchain:__ Pydica ist keine abgeschlossene Software, sondern darauf ausgelegt, die erfaßten Daten an Drittsoftware, wie zum Beispiel Abrechnungssysteme, zu übergeben.

Ein konkretes Anwendungsbeispiel von Pydica, welches am Ende des Vortrags vorgestellt wird, ist die Verarbeitung von Rezepten im Rechenzentrum für Berliner Apotheken Stein & Reichwald GmbH.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1430/pydica-eine-open-source-plattform-zum-scannen-un 
66. Flugplanung, Datenverwaltung, Visualisierung mit einem Wiki zur Unterstützung von Meßkampagnen
Reimar Bauer
tags: moinmoin, wiki, python, wissenschaft, plugin
 
Your pictures look wonderful !!! 
 
my website - http://onlinesmpt200.com
 recording release: no  
 Video: http://pyvideo.org/video/1453/flugplanung-datenverwaltung-visualisierung-mit 
67. Tiffany - Multipage-Tiff Lesen und Schreiben mit PIL ohne PIL 
Christian Tismer
tags: multipage-tiff, pil, monkey-patching, fax-g3/g4, distributed document capture
Tiffany steht für beliebiges Tiff. Das kleine Modul löst eine grosse Menge
von Problemen, hat keine Abhängigkeiten, keine Binaries und läuft
überall wo Python läuft.

Bei der Entwicklung von Pydica (Distributed Document Capture) wurden wir
mit dem Problem konfrontiert, mehrseitige Tiff-Dateien anzuzeigen. Das
GUI-Toolkit PySide (Qt) unterstützt zwar Tiff, zeigt jedoch nur die erste Seite.
Zudem behandeln wir Fax-komprimierte Dateien, was Qt aber unterstützt.

PIL verfügt über eine Bereinigung der Tiff-Tags, kommt aber nicht mit der
Fax-Kompression zurecht. Es gibt seit langem einen Patch dafür, jedoch ist
der Build-Prozess erschwert und zieht mit libtiff eine Kette von Abhängigkeiten
nach sich.

Daher benutzt Tiffany einige wenige Dateien aus PIL ohne diese zu verändern und täuscht
vor, die Tiff-Dateien zu entpacken, tut es aber nicht. Es werden lediglich die
Tiff-Tags ordentlich aufbereitet. Die komprimierten Daten werden so übernommen
wie sie sind. Beim Schreiben von Dateien werden daher lediglich die vorhandenen
Daten in anderer Reihenfolge wieder zusammengesetzt.

Im Vortrag werde ich die Implementierung vorstellen sowie weitere Alternativen,
die Zukunft von PIL sowie auf weitere Tips und Kniffe in unserem Projekt eingehen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1445/tiffany-multipage-tiff-lesen-und-schreiben-mit 
68. Didaktische Anforderung an die erste Programmsprache
Nik Klever
tags: didaktik, erste programmiersprache
In diesem Vortrag geht es darum, dass im Herbst am Zentrum für Hochschuldidaktik der bayerischen Hochschulen für Angewandte Wissenschaften ein Fachdidaktikarbeitskreis "didaktische Anforderungen an die erste Programmiersprache" eingerichtet wird, in dem herausgearbeitet werden soll, welche Anforderungen an eine Programmiersprache aus didaktischer Sicht für einen Einstieg in die Programmierung am besten geeignet ist. Die Erfahrungen der anwesenden Experten soll in einer Art Brainstorming genutzt werden, um "didaktische" Argumente für die Verwendung von Python als erste Programmiersprache zu sammeln und in diesen Arbeitskreis einfliessen zu lassen. Evtl. könnte dieser Vortrag / dieses  Brainstorming auch als Start für eine Open Space Session innerhalb vom Barcamp zu diesem Thema sein. Die Zielgruppe für diesen Vortrag ist neben den Experten sicherlich auch für Neulinge geeignet. 
 recording release: yes license:   
 Video: http://pyvideo.org/video/1464/didaktische-anforderung-an-die-erste-programmspra 
69. Fanstatic zum Einbinden statischer Ressourcen - Was es kann und was es können sollte.
Daniel Havlik
tags: fanstatic, javascript, css
Fanstatic ist ein einfaches und doch mächtiges Werkzeug zum Einbinden statischer Ressourcen in Webanwendungen. In diesem Vortrag werden die Grenzen von Fanstatic aufgezeigt und Lösungen für diese vorgeschlagen.

Die Autoren setzen Fanstatic in fast jedem Projekt ein. Doch immer wieder stolpern wir über Probleme wie das Einbinden von Stylesheets für spezielle IE-Versionen (Conditional Stylesheets) oder die fehlenden Möglichkeit, Stylesheets für den Druck zu spezifizieren. Auch wäre eine Integration mit z.B. CoffeeScript wünschenswert.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1488/fanstatic-zum-einbinden-statischer-ressourcen-w 
70. Aus der Werkzeugkiste eines Python/Web-Entwicklers
Wolfgang Schnerring

Werkzeuge erleichtern uns die Arbeit oder nehmen sie uns durch Automatisierung sogar ganz ab. In diesem Vortrag stelle ich einige Werkzeuge vor, die sich im Alltag bewährt haben, von der ersten Idee bis zur Live-Schaltung einer Webanwendung, von Testen über Debugging bis Deployment, für Python bis Javascript.

Der Vortrag richtet sich an (Web-)Entwickler aller Arten. Er soll als Inspiration sowie als Anstoß zum Gedankenaustausch miteinander dienen: Was für Werkzeuge benutze ich andauernd? Welche davon möchte ich nie mehr missen? Über welche ärgere ich mich, welche könnten deutlich besser sein? Wie lösen andere die üblichen Probleme?
 recording release: yes license:   
 Video: http://pyvideo.org/video/1452/aus-der-werkzeugkiste-eines-py 
71. Beziehungen? Nein danke! - Agile Datenbankentwicklung mit schemafreien Datenbanken und Python
Martin Schönert
tags: orm, python, datenmodellierung, agile softwareentwicklung, nosql, datenbank
Python-Projekte haben immer häufiger alternative Datenbanken aus der nosql/newsql-Familie in ihrem Stack, seien es Graphendatenbanken wie Neo4j, Key-Value-Stores wie Redis oder dokumentenorientierte Datenbanken wie MongoDB. 

So verschiedenartig diese Datenbanken auch sind, gemeinsam ist ihnen, dass sie nicht das relationale Datenmodell implementieren, Daten nicht in miteinander in Beziehung stehenden Entitäten ablegen. Während Nicht-Normalisirung bei relationalen Datenbanken meist als Anti-Pattern angesehen wird, ist es bei schemafreien Datenbanken Prinzip, das schnelles und agiles Entwickeln und Deployen fördert.

Dieser Talk zeigt an Hand eines konkreten Use-Cases, welche Auswirkungen die Verwendung einer nicht-relationalen Datenbank auf den Entwicklungsprozess hat, zeigt wie Daten modelliert werden können und auch, wie Veränderungen am Datenbankmodell implementiert werden können, wenn es kein "Alter table" mehr gibt.

Diskutiert werden sollen dabei auch die Pros und Kontras der verschiedenen Datenmodelle hinsichtlich ihrer Query-Möglichkeiten, der Query-Performance, Anforderungen an Plattenplatz und Auswirkungen auf die Client/Anwendungsseite.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1451/beziehungen-nein-danke-agiledatenbankentwickl 
72. Weiterentwicklung der PyCon DE Konferenzreihe
Marc-Andre Lemburg
tags: pycon de, interaktion, konzept, konferenz, community
Die PyCon DE Konferenzreihe wurde 2010 von einer Gruppe interessierter Python Nutzer angestoßen und dann über eine Community Abstimmung in den Jahren 2011 und 2012 an die Python User Group Leipzig vergeben. In diesem Vortrag soll kurz auf die Entstehungsgeschichte eingegangen werden und dann in Zusammenarbeit mit den Zuhörern das Konzept der Reihe weiterentwickelt werden.

Der Vortrag wird interaktiv gestaltet werden. Nach der kurzen Einführung steht die Diskussion mit der Community und ggf. auch Abstimmung über Vorschläge im Vordergrund. Die Resultate der Diskussionen sollen dann in die Konzeption für die PyCon DE 2013 und 2014 einfließen.

 recording release: yes license:   
 Video: http://pyvideo.org/video/1456/weiterentwicklung-der-pycon-de-konferenzreihe 
73. Python-Code für Debian paketieren
Jan Dittberner
tags: debian, paketierung
Das Debian-Projekt ist mit mehr als 30000 Binärpaketen eine der größten Distributionen freier Software. Auch viele Python-Bibliotheken und Anwendungen wurden bereits für Debian paketiert. Es gibt aber viele Software die noch auf eine Paketierung oder bessere Pflege wartet.

Im Vortrag wird gezeigt, wie man Python-Code für Debian paketiert. Dabei wird anhand eines Beispielpakets auf folgende Punkte näher eingegangen:

* Wie erleichtert man als Upstream die Paketierung seiner Python-Software?
* Was sind die aktuellen Tools für das Python-Packaging?
* Wie baue ich Python2-, Python3- und (sphinx-)Dokumentations-Pakete?

 recording release: yes license:   
 Video: http://pyvideo.org/video/1475/python-code-fur-debian-paketieren 
74. Building New Communities
Steve Holden
tags: keynote
As commercial and governmental entities become more aware of the advantages of
open source software, they are seeking to engage with the existing open source
communities in a variety of ways. In this talk Steve examines some of the
models that are being used, and takes a look at the possibilities for new ways
of working in the open source world.
 recording release: yes license:   
 Video: http://pyvideo.org/video/1479/building-new-communities 


Location
--------
Saal 1B


About the group
---------------