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 Raum 3 (Haus 6) Mon October 14, 9p


PyCon DE
=========================
When: 9 AM Monday October 14, 2013
Where: Raum 3 (Haus 6)

None

Topics
------
1. Iteratoren, Generatoren und Dekoratoren
Mike Müller
tags: iteratoren, dekoratoren, generatoren, koroutinen
Python bietet einige interessante Möglichkeiten, die meist als fortgeschrittene Programmierung bezeichnet werden. Die Details von Iteratoren und Generatoren gehören dazu wie die beliebten Dekoratoren. Dieses Tutorial zeigt, mit vielen Beispielen, wie diese Sprachmerkmale funktionieren und wofür sie sich sinnvoll einsetzen lassen.

##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 
  1. Argumentkontrolle (5 min)
  2. Caching (5 min)
  3. Logging (5 min)
  4. Registrierung (5 min)
  5. Verifikation (5 min)


 recording release: yes license:   

2. Flask: Microframework für Webanwendungen
Dominik George
tags: web, framework, flask, wsgi
Flask ist ein Mikroframework, mit dem sich beliebig einfache oder komplexe Webanwendungen entwickeln lassen. Das eingesetzte Programmierkonzept sowie eingesetzte weitere Frameworks bleiben dem Entwickler überlassen. Flask ist so gestaltet, dass es alle wichtigen Werkzeuge bietet, dem Entwickler aber nicht im Weg steht (= Mikroframework). In diesem Tutorial entwickeln wir eine kleine Webanwendung, um den Einsatz von Flask zu zeigen.

- Was ist Flask? (5 Minuten)
- Model, View, Control (5 Minuten)
- Objektrelationale Mapper und Datenbank (5 Minuten)
- Der Flask-Kern und seine Funktionen (5 Minuten)
- Erweiterte Flask-Bibliotheken (SQLAlchemy, Bootstrap) (5 Minuten)
- Putting it all together (10 Minuten)
- Entwicklung einer Anwendung (60 Minuten)
- Eigene Weiterentwicklung und Vertiefung (90 Minuten)

Es werden benötigt: Flask, Flask-Login, Flask-SQLAlchemy, Flask-Bootstrap.
 recording release: yes license:   

3. Erstelle eine Webseite mit django CMS
Stefanie Weilenmann, Stefan Foulis, Patrick Lauber, Benjamin Wohlwend
tags: cms, django cms, webseite, python, django
In diesem Tutorial wirst du lernen, wie einfach mit django CMS eine Webseite erstellt werden kann. Folgende Themen werden dabei behandelt:

Teil 1: System-Setup und best practices:
Wir setzen zusammen ein Django-Projekt mit django CMS auf. Wir stellen dir auch einige Django Apps vor, die sich besonders gut mit django CMS integrieren lassen.

Teil 2: Templates und Placeholders:
Wie integriere ich django CMS am besten in meine vorhandenen Templates? Was ist ein Placeholder, und wie schreibe ich ein einfaches Plugin? All diese Fragen und mehr werden beantwortet, während wir gemeinsam eine statische Vorlage in eine komplett im CMS editierbare Seite umwandeln.

Teil 3: Plugins:
Mit Plugins bringst du deine eigenen Inhalte ins CMS. Aufbauend auf Teil 2 zeigen wir dir, wie sich auch komplexe Daten und Layouts in Plugins umwandeln lassen. Dabei lernst du auch die beinahe unbegrenzten Möglichkeiten kennen, welche verschachtelte Plugins bieten.

Teil 4: Wir erweitern das CMS mit einer integrierten Blog Applikation:
django CMS ist ein Teamplayer. Wir zeigen, wie einfach sich eine Blog Applikation in das CMS integrieren lässt. So kann deine App ganz einfach vom intuitiven Frontend-Editing von django CMS profitieren. Du lernst auch, wie du das Menü erweitern oder deine App in unsere Admin-Toolbar integrieren kannst.

 recording release: yes license:   

4. Einführung in NumPy
Christian Geier, Henning Dickten
tags: numerische berechnungen, array, numpy
NumPy ist der Quasi-Standard für schnelles Arbeiten mit Arrays in Python. In diesem Tutorial sollen grundlegende Kenntnisse von Array-Erzeugung und deren Eigenschaften über Array Operationen, bis hin zu Slicing und Broadcasting erlangt werden.

## Installation
Vorrausgesetzt wird eine funktionierende NumPy Installation. Matplotlib ist zur Visualisierung nützlich aber nicht notwendig. IPython inkl. Notebook erleichtert insbesondere das interaktive Erarbeiten der Tutorialinhalte; IPython ist ebenfalls nicht notwendig aber sehr empfohlen.

### Beispiele für NumPy, IPython und matplotlib Installation

#### OS X
  * http://fonnesbeck.github.io/ScipySuperpack/

#### Debian/Ubuntu
  * aptitude install python-numpy
  * aptitude install python-matplotlib
  * aptitude install python-ipython (mit Ubuntu LTS besser über 3rd Party installieren pip im virtualenv, Enthought Canopy etc.)

#### Windows
  * 32bit: http://sourceforge.net/projects/numpy/files/NumPy/  
  * 64bit: http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
  * ipython: http://ipython.org/install.html
  * matplotlib: http://matplotlib.org/users/installing.html#installing-on-windows

#### FreeBSD
  * portupgrade -N math/py-numpy
  * portupgrade -N devel/ipython
  * portupgrade -N math/py-matplotlib

#### virtualenv
  * pip install numpy
  * pip install matplotlib
  * pip install ipython

## Numpy-Versionen: numpy 1.6–1.9

**Grundlegende Python-Kenntnisse sind erforderlich.**

## Gliederung: (insgesamt 180min):

* Einführung NumPy
* Arrays und deren Eigenschaften
* Indizierung und Slicing
* Ein- und Ausgabe
* Reshaping
* Grundlegende Array Operationen
* Broadcasting / np.newaxis
* Vektorisierung
* Ein- und Ausgabe
* Ungültige Werte und maskierte Arrays
* Weitere Optimierungen (Ausblick auf C-API, Cython, numba)
* Wenn Zeit: Views und Kopien; strided\_as

## NICHT eingegangen wird auf:
* NumPys Fähigkeiten im Bereich der lineare Algebra
 recording release: yes license:   

5. Echtzeit Web-Apps mit Mushroom
Michael P. Jung
tags: gevent, http, network, javascript, long polling, messagin, ipc, websocket, real-time, mushroom, python, echtzeit
[Mushroom](https://bitbucket.org/terreon/mushroom) ist ein einfach zu verwendendes Echtzeit Web Messaging Framework, welches neben Browser Push Nachrichten auch Funktionen für die Interprozesskommunikation zur Verfügung stellt.

Dieses Tutorial zeigt wie mit Mushroom auf sehr einfache Art und Weise Echtzeit Web Anwendungen realisiert werden können.

- Kurze Vorstellung von Mushroom und seinen Designprinzipien (10min)
- Kurze Einführung in gevent und greenlets (5min)
- Vorstellung einer Beispielanwendung (15min)
- Vergabe der Aufgaben: Die Teilnehmer können sich entweder selbst eine Aufgabe ausdenken, die Sie programmieren möchten oder eine vorgegebene Aufgabe bearbeiten (15min)
- Implementierung 1. Teil (60min)
- Fragerunde (15min)
- Implementierung 2. Teil (60min)
- Endrunde für Fragen (15min)

Je nach Geschwindigkeit der Teilnehmer und dem Schwierigkeitsgard können auch mehrere Aufgaben nacheinander bearbeitet werden.

Benötigte Software:

- Virtualenv
- Git
- Python (2.7+ oder 3.3+)
- Text Editor mit Syntax Highlighting (alternativ eine Python IDE)
- Browser: Chrome und/oder Firefox + Firebug (Internet Explorer wird aufgrund der mangelhaften Developer Tools nicht empfohlen)
- RabbitMQ für Interprozesskommunikation (optional)

Benötigte Pythonpakete:

- mushroom
- gevent
- gevent-websocket
- django (optional)

JavaScript Bibliotheken:

- mushroom.js (Teil von Mushroom)
- [jQuery](http://jquery.com/)
- [Knockout](http://knockoutjs.com/)
- [SugarJS](http://sugarjs.com/)
- [Simple Class Inheritance by John Resig](http://ejohn.org/blog/simple-javascript-inheritance/)

Die JavaScript Bibliotheken sind, von mushroom abgesehen, optional. Wenn Teilnehmer lieber andere Bibliotheken einsetzen möchten (z.B. Prototype, Backbone, etc.) ist dies auch möglich.


Mushroom wurde auf Linux und OS X getestet. Prinzipiell sollte die Software überall dort laufen wo auch Python mit gevent läuft. Teilnehmer mit einem Windows Betriebssystem sollten dies vorher testen indem Sie eines der Mushroom Beispiele laufen lassen.
 recording release: yes license:   

6. In sechs Stunden zur eigenen Django App
Markus Zapke-Gründemann, Florian Apolloner
tags: python 3, orm, ajax, frontend, authentifizierung, django, bootstrap, formulare
Django ist ein Python Web Framework, dass für die schnelle Erstellung von Websites konzipiert wurde. Diese Eigenschaft werden wir uns zunutze machen, um in sechs Stunden eine eigene Django App zu schreiben.

Dabei werden alle aktuellen Themen der Webentwicklung behandelt (Model-View-Controller-Muster, Template Engine, Authentifizierung, Formulare, AJAX, Testing). Das Tutorial kann sowohl mit Python 2 als auch Python 3 umgesetzt werden.

Es ist gut, wenn schon Python auf dem eigenen Gerät installiert ist, aber falls dies nicht der Fall ist, kann es zu Beginn des Workshops nachgeholt werden.

1. Installation von Python, distribute, pip und Django (20 Minuten)
2. Neues Django-Projekt einrichten (20 Minuten)
3. Models erstellen (45 Minuten)
4. Django Admin konfigurieren und nutzen (20 Minuten)
5. Routing und Views erstellen (30 Minuten)
6. Templates anlegen (30 Minuten)
7. Anmeldung einrichten (30 Minuten)
8. Formulare im Frontend hinzufügen (45 Minuten)
9. Tags im Frontend mit eigenem Feldtyp und Autocompletion hinzufügen (45 Minuten)
10. Eine Tag-Cloud im Frontend erstellen (45 Minuten)
11. Unit Tests erstellen (30 Minuten)
 recording release: yes license:   

7. Verwendung nativer Bibliotheken mit Cython
Stefan Behnel
tags: cython, c, nativer code, externe bibliotheken
* Einführung in Cython (30 Min)
* Bauen von Cython-Modulen (20 Min)
* Verwendung von C-Bibliotheken in Cython (60 Min)
* Low-Level Fehlerbehandlung und Exceptions (20 Min)
* Anbindung von C++ Code (30 Min)
* Fragen, weitere Beispiele, ... (20 Minuten)

Der C++ Teil ist optional und kann auf Wunsch der Teilnehmer vor Ort durch einen längeren praktischen Teil zur C-Anbindung ersetzt werden.

Teilnehmer sollten genügend Python-Erfahrung mitbringen, um flüssig Programm-Code schreiben zu können. Daneben ist ein grundlegendes Verständnis der Sprache C erforderlich (Structs, Funktionen, Pointer, malloc), um den Beispielen folgen zu können.

Als Laufzeitumgebung wird Python 2.7 oder 3.2/3.3 empfohlen, ältere Python 2.x Versionen sind ebenso nutzbar.

Vorab sollten die Teilnehmer die neueste Cython-Version installieren ("pip install Cython") und sicher stellen, dass sie einen funktionierenden C-Compiler installiert haben und Binärmodule bauen können. Die korrekte Installation von Cython als Source-Build ist ein gutes Indiz dafür. Grundsätzlich wird dabei die Verwendung eines Virtualenv empfohlen.

 recording release: yes license:   

8. Entwicklung von Web-Applikationen mit web2py
Christoph Iserlohn
tags: framework, entwicklung, web-applikationen
Web2py ist ein umfassendes und leistungsstarkes Web-Framework, welches den Vergleich mit den etablierten Python basierten Web-Frameworks nicht scheuen braucht. Einfach in der Handhabung bietet web2py alles was man für die Entwicklung von schnellen, sicheren und skalierbaren Web-Applikationen braucht.

Dieses Tutorial führt die Teilnehmern von der Installation bis zur ersten eigenen Web-Applikation.

Teilnehmer sollten Grundkenntnisse in HTML und Python-Programmierung mitbringen.

## Teil 1 - Einführung, Installation und Setup ##
* Einführung: Was ist web2py (20 Minuten)
* Praxis: Installation und Setup von web2py (35 Minuten)
* Praxis: Exploration der Admin-UI / Erstellen einer Beispiel-Applikation mittels der Admin-UI (35 Minuten)

## Teil 2 - Die Struktur einer web2py Applikation ##
* Verzeichnisse und Dateien einer web2py Applikationen (10 Minuten)
* web2py API und built-in Objects (25 Minuten)
* URL Dispatch / MVC (25 Minuten)
* Praxis: Erstellen eigener Views und Controller (30 Minuten)

## Teil 3 - Views und Controller im Detail ##
* Die web2py Template Language (10 Minuten)
* Seiten-Layout (15 Minuten)
* Praxis: Views mit eigenem Layout versehen (20 Minuten)
* Controller Actions (15 Minuten)
* HTTP Errors und Redirects (10 Minuten)
* Praxis: Controller mit individuellen Actions (20 Minuten)

## Teil 4 - Persistenz mit dem Database Abstraction Layer (DAL) ##
* DAL Basics (10 Minuten)
* Datenbank-Verbindungen, Tabellen und Felder definieren (20 Minuten)
* DAL Operationen: Select, Insert, Update (20 Minuten)
* Praxis: Eigenes Datenmodell mittels DAL abbilden und in die Applikationen einbinden (40 Minuten)

### Benötigte Software-Pakete
Python 2.5, 2.6 oder 2.7 (2.7 empfohlen) und ein aktueller Webbrowser (Firefox Version 20 oder höher empfohlen). Optional ein Editor oder eine IDE mit guter Python Unterstützung.
 recording release: yes license:   

9. Pygame-Einführung
Dominik George
tags: spiele, pygame
Pygame ist eine bekannte Python-Bibliothek, mit der sich einfach und sauber 2D- und mit etwas Anstrengung auch 3D-Spiele entwickeln lassen. In diesem Tutorial stellen wir die Grundkonzepte bei der Planung eines 2D-Spiels und die wichtigsten Programmierkonzepte und Eigenschaften der Pygame-Bibliothek vor. Das Tutorial ist besonders auch für Jugendliche mit ersten Programmiererfahrungen geeignet.

* Was ist Pygame? (10 Minuten)
* Python-Konzepte, die PyGame benutzt (10 Minuten)
* Spielobjekte und Konzepte (30 Minuten)
* Programmierkonzepte (20 Minuten)
* Hauptschleife und Events (30 Minuten)
* Grafik und Sprites (30 Minuten)
* Sonstige Medien (10 Minuten)
* Putting it all together (30 Minuten)
* Fragen (10 Minuten)

Benötigt wird Python 2 oder Python 3 mit der jeweils neuesten unterstützten Pygame-Version. Wir empfehlen Debian sid (oder mindestens wheezy) mit den neuesten Paketen, Python und Pygame ist jedoch für alles gängigen Betriebssysteme verfügbar.
 recording release: yes license:   

10. Deskriptoren und Metaklassen verstehen und nutzen
Mike Müller
tags: metaklassen, deskriptoren, fortgeschritten
Deskriptoren und Metaklassen gehören zu den komplexesten Merkmalen von Python.
Dieses Tutorial erläutert die grundlegenden Funktionsweisen und zeigt mit konkreten Anwendungsbeispielen wo Deskriptoren und Metaklassen vorkommen und welche Aufgaben sich damit besser lösen lassen.

##Deskriptoren##

* Deskriptoren sind allgegenwärtig (5 min)
* Properties (15 min)
* Verallgemeinerung zu Deskriptoren (15 min)
* Funktionen sind Non-Data-Deskriptoren (5 min)
* Deskriptoren sind Klassen basiert (15 min)
* Anwendungsfall - Attribut-Kontrolle (15 min)
* Übungen (20 min)

##Metaklassen##

* Allgemeine Funktionsweise (10 min)
* Arbeiten mit `__init__` und `__new__` (15 min)
* Beispiel: Klassen mit ausschließlich rufbaren Attributen (15 min)
* Beispiel: Arbeiten mit Slots (15 min)
* Beispiel: Klassendefintionen zählen (15 min)
* Übungen (20 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: yes license:   

11. Kurzeinstieg in IPython und IPython Notebook
Frank Becker
tags: ipython, interaktiv, shell
IPython ist eine erweiterte interaktive Pythonshell. Wer Python interaktiv nutzt,
wird darin viele nützliche Erweiterungen finden. Wer nicht lange suchen will, findet
in dem Tutorial einen Schnelleinstieg. Zuerst gibt es einen Überblick einiger 'Magic Functions' wie dem nachträglichen Start des Debuggers.
Neben ein paar Tricks zur Softwareentwicklung wird auf die Unterstützung
für parallele Programme eingegangen.

Ein weiteres Feature sind die IPython Notebooks, welche eine Webseite in einen interaktiven
Python-Interpreter verwandeln. Anhand eines einfachen Beispiels wird deren Anwendung
in Kombination mit der Datenanalyse-Library Pandas gezeigt.

Als Zuhörer sind alle eingeladen, die häufiger interaktiv mit Python arbeiten.

Aufbau:
=====
* Einstieg 5 min
* History 5 min
* Magic Functions 20 min
* Code entwickeln/ausführen/debuggen 20 min
* Konfiguration und Profile 10 min
* Paralleles Arbeiten 10 min
* IPython Notebook (Grundlagen) 10 min
* IPython und Pandas 10 min

Softwarevoraussetzung:
===============
* IPython (ab 0.13)
* optional Pandas (>=0.11.0)
* optional Matplotlib>=1.1.1
 recording release: yes license:   

12. Praktische Datenanalyse mit Python pandas
Thomas H. Marcon
tags: datenanalyse, python, numpy, pandas
*** Agenda: ***   
Grundlagen 10 Min   
Datenstrukturen (Series, DataFrame) 15 Min   
Übung Datenstrukturen	30 Min    
Daten Laden, Speichern, Dateiformate (CSV, TXT) 15 Min    
Übung Laden, Speichern, Dateiformate 20 Min   
Daten Bereinigen, Transformieren, Umformen, Visualisieren 30 Min   
Übung Bereinigen, Transformieren, Umformen, Visualisieren 45 Min    
Ausblick: Zeitreihen, Datenagregation, komplexere Anwenungen, HDF5 15 Min   

*** Software-Pakete: ***   
Python, pandas (>0.8), Numpy, matplotlib, IPython
 recording release: yes license:   

13. ABGESAGT: Packaging and Testing with Python
Holger Krekel
tags: testing, packaging, package index, upload
The tutorial covers:

- introduction into current standards (30 minutes)
- basic setup.py file creation for metadata (30 minutes)
- setuptools mechanisms to specify dependencies (30 minutes)
- setting up a private PyPI server with devpi (30 minutes)
- testing a package (30 minutes)
- pushing a package to the public index (30 minutes)

The slides will be in english. Talking language will be english, to be determined at the tutorial start. 

You need to bring a working Python interpreter and be prepared to edit files and execute command line utilities. 

Tools we will be using: pip/easy_install, virtualenv, devpi, tox and pytest. 
 recording release: no  

14. Unittests für Einsteiger
Johannes Hubertz

Das Tutorial soll einen kurzen und einfachen Einstieg in das Thema "Test driven Development" bieten. Zielgruppe: Einsteiger, die schon etwas Python kennen und lernen wollen, ihren Code zu testen.


* Warum wollen wir überhaupt Tests? Welcher Mehrwert entsteht dadurch? (15 Min)
* Ein Einfaches Beispiel mit doctests (30 Min)
* Test Driven Development, Kurzdarstellung (30 Min)
* Erste unittests (15 Min)

* Und Wenn ich was an meinem Code ändere? (15 Min)
* Wer hat hier was zum Testen? Beispiele der Teilnehmer (45 Min)
* Codeabdeckung, timing (15 Min)
* tox? (15 Min)
* Manöverkritik (15 Min)

Weiterführende Unterstützung: python_koans, Python testing cookbook, professioneller Code, z.B. OpenStack.

Voraussetzungen für die Teilnehmer: Anfänger mit Python, aber die ersten Gehversuche mit der Sprache sollten schon erledigt sein. Ein Laptop ist mitzubringen, darauf sollte eine funktionierende Python Umgebung installiert sein, die Betriebssystemunabhängigkeit ist durch die Sprache bereits gewährleistet.
 recording release: yes license:   

15. Python Einsteiger-Programmierwettbewerb
Reimar Bauer
tags: einsteiger, pymove3d, wettbewerb
Im Planungsprozess der diesjährigen PyCon DE ist ein Programmierwettbewerb für SchülerInnen im Alter von 13 bis zum vollendetetem 21 Lebensjahr enthalten.

Die Techniken, die zur Vorbereitung eingesetzt wurden, sowie die Medien und die Python Software des Portals pymove3d.pysv.org werden dargestellt. 

Das Ergebnis des Wettbewerbs und der Ausblick auf 2014 mit der Zielvorgabe diesen Wettbewerb zur Europython fortzusetzen bedarf großer Aufmerksamkeit. 


 recording release: yes license:   
 Video: http://pyvideo.org/video/2384/python-einsteiger-programmierwettbewerb 
16. Echtzeit Web-Apps mit Mushroom
Michael P. Jung
tags: gevent, http, network, javascript, long polling, messagin, ipc, websocket, real-time, mushroom, python, echtzeit
[Mushroom](https://bitbucket.org/terreon/mushroom) ist ein einfach zu verwendendes Echtzeit-Web-Messaging-Framework, welches neben Browser-Push-Nachrichten auch Funktionen für die Interprozesskommunikation zur Verfügung stellt.

Dieser Vortrag versucht, Lust auf das Echtzeit-Web zu machen und beantwortet grundlegende Fragen zu Themen wie Skalierbarkeit und Deployment.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2392/echtzeit-web-apps-mit-mushroom 
17. Sponsoring von Open-Source - und damit den Chef überzeugen
Schlomo Schapiro
tags: wirtschaft, open-source, kultur, politik, geld
Nutzen Sie Open-Source-Software? 

Haben Sie schon einmal eine Kleinigkeit ändern wollen? 

Konnten Sie für “Einwurf kleiner Münzen” diese Änderung machen lassen?

Open-Source-Software zeichnet sich unter anderem durch die leichte Anpassbarkeit an die eigenen Bedürfnisse aus. Doch nicht jeder kann oder möchte die Software selbst ändern. Lieber würde man die Autoren oder andere Spezialisten damit beauftragen.

Der Vortrag gibt Einblick in die praktische Arbeit mit dem Sponsoring von Open-Source-Projekten und beantwortet die Frage, wie man mit Hilfe von Sponsoring seine eigenen Probleme schneller und günstiger lösen kann: Nach der Vorstellung typischer Entwicklungsmodelle von Open-Source-Projekten erfahren Besucher, wie sie Kontakte zu Open-Source Projekten knüpfen können und damit jemanden finden, der ihnen weiter hilft.

Weitere Themen sind

*  rechtliche Aspekte wie ein Werksvertrag, Gewährleistung und einfache Abwicklung
*  Anforderungen so formulieren, dass der Kundennutzen und die Nachhaltigkeit im Vordergrund steht
* Abnahmekriterien für den Auftrag
* Wirtschaftlichkeitsberechnung und Kosten-Nutzen-Abwägung
* Nachhaltige Lösungen statt ewigen Workarounds
* Mehrwert für sich und die Open-Source-Gemeinschaft schaffen
* Imagepflege über Open-Source-Sponsoring
* Eigene Open-Source Projekte durch Externe weiterentwickeln lassen

Als konkrete Beispiele dienen diverse in Python entwickelte Open-Source Projekte der ImmobilienScout24.


 recording release: yes license:   
 Video: http://pyvideo.org/video/2402/sponsoring-von-open-source-und-damit-den-chef-u 
18. -getrieben. Wer treibt eigentlich die Test-Entwicklung?
Andi Albrecht
tags: testing
In den letzten Jahren machen auch in der Python-Welt immer mehr “getriebene” Entwicklungsmethoden die Runde, so zum Beispiel Test Driven Development, Behavior Driven Development oder Feature Driven Development. Kaum ist davon die Rede, kommen noch weitere Schlagworte aus dem Bereich des Testens, wie Acceptance Test, Unit Test, Functional Test oder Integration Test, dazu und die Verwirrung ist oftmals perfekt. Verliert man in diesem Dschungel an Begriffen den Überblick, ist die Gefahr gegeben, dass man das Testen entweder ganz lässt oder keine der Methoden richtig anzuwenden.

Der Vortrag gibt eine Ordnung für diese Begriffe und versucht dadurch etwas mehr Licht ins Dickicht zu bringen. Dabei steht weniger die lehrbuchartige Klassifizierung der Methoden im Vordergrund, sondern es wird die Fragestellung verfolgt, wer eigentlich die Zielgruppe eines Tests ist. Das können neben Entwicklern auch Qualitätssicherer, Projektleiter und -Mitglieder, aber auch letztlich Kunden eines Produktes sein. Wer “liest” also die Testergebnisse und in welcher Form sollten die Ergebnisse vorliegen, damit sie nutzbar sind. Zusammen mit einer Betrachtung der unterschiedlichen Test-Gegenstände wird die Wahl der Test-Methode und die Implementierung der Tests klarer.

Zu den vorgestellten Methoden werden beispielhaft Python-Test-Frameworks wie zum Beispiel Selenium, das Robot-Framework und klassische UnitTest-Frameworks vorgestellt. Anhand von kurzen Code-Beispielen wird der Einsatz dieser Werkzeuge für bestimmte Methodiken verdeutlicht und es wird gezeigt, wie auf Basis der Testergebnisse Berichte und Metriken für die jeweiligen Zielgruppen generiert werden können.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2417/-getrieben-wer-treibt-eigentlich-die-test-entwic 
19. Vom Commit zum Deployment - Build pipelines in Jenkins
Thomas Fenzl
tags: continuous integration, build pipeline
Wenn man Code in ein Repository eincheckt möchte man dazu schnelles und aussagekräftiges Feedback. 

Natürlich sind lokal die Tests durchgelaufen (oder etwa nicht?), aber wie kann man weitere Überprüfungen automatisieren? Dieser Vortrag zeigt, wie man in Jenkins und Werkzeugen wie nose/pylint/coverage build pipelines anlegt, die von Unittests und linting bis zum Deployment gehen können.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2405/vom-commit-zum-deployment-build-pipelines-in-je 
20. Plone 5
Timo Stollenwerk

Plone 5, das nächstes Major Release des Python-basierten Open Source Content Management Systems Plone, verspricht einige interessante Neuerungen.

Der Vortrag wird den aktuellen Stand der Entwicklung vorstellen und insbesondere auch im Detail aufzeigen, welche Neuerungen heute schon produktiv mit der aktuellen Version 4.3 eingesetzt werden können. Unter anderem wird Plone 5:

- neue, leistungsfähigere Inhaltstypen zur Verfügung stellen, die through-the-web veränderbar sind
- ein neues, moderenes User Inteface bekommen, einschließlich neuer Widgets
- ein neues Modul für multilinguale Seiten bieten
- schneller sein
- einfacher zu erlernen sein
 recording release: yes license:   
 Video: http://pyvideo.org/video/2389/plone-5 
21. Python verbindet - Der Python Software Verband e.V. in 20 Minuten
Mike Müller
tags: pysv, community, verband
Der Python Software Verband (PySV) ist als eingetragener Verein in Deutschland organisiert, und versteht sich als Support-Organ der gesamten deutschsprachigen Python-Community. 2011 hat sich der PySV langsam aber sicher organisatorisch aus dem früheren DZUG e.V.,  der bereits vollständig aus Python Enthusiasten bestand, emanzipiert und seine Neustrukturierung im letzten Jahr weitgehend abgeschlossen.

Die wichtigsten Mittel zur Unterstützung der Community sind u. a. unsere aktiven Mitglieder und die PySV-Website als zentraler Anlaufpunkt und der neue Usergruppen-Hub. Der PySV unterstützte und organisierte bereits die Python-Konferenzen PyCon.DE 2011 und 2012 als verantwortlicher Partner mit. Auch die PyCon.DE 2013 wird er in enger Zusammenarbeit mit der Kölner PyCologne Usergroup und dem DLR ermöglichen. In den Jahren 2014 und 2015 wird der PySV sogar Mitausrichter der EuroPython – der größten europäsichen Python-Konferenz – sein. Die Berliner Usergroup mit dem PySV im Rücken konnte sich in der Bewerbung durchsetzen.

Auch kleinere, aber deswegen nicht unwichtigere Events unterstützt der PySV. Neben dem mittlerweile schon traditionellen PythonCamp in Köln sind das verschiedene Python-Sprints und u.A. der World Plone Day an mehreren Orten. Auf Messen wie der CeBIT, der überregionalen FrOSCon Konferenz und den Berliner und Chemnitzer Linuxtagen und dem Linuxtag in Berlin sorgt der Verband dafür, dass Python regelmäßig präsent ist. 

Der gemeinsam neu entwickelte Programmierwettbewerb nimmt Formen an. Studenten erhalten vom PySV Unterstützung für die Teilnahme an der EuroSciPy.  

Wie der Verband der Community helfen kann, wird mit allen, die mithelfen wollen, gemeinsam erarbeitet. Er bietet organisatorische, finanzielle und technische Hilfe für Usergruppen, Sprints und Workshops mit Python-Bezug. Alle Python-Enthusiasten sind eingeladen im Verein aktiv mitzuarbeiten. Neue Ideen und Verbesserungsvorschläge sind immer gern gesehen. Unsere Grundregel lautet: “Soviel Unterstüzung wie möglich, so wenig Reglementierung wie möglich.”

 recording release: yes license:   
 Video: http://pyvideo.org/video/2383/python-verbindet-der-python-software-verband-e 
22. devpi: driving packaging and testing needs
Holger Krekel
tags: testing, qa, packaging
devpi provides both a private pypi server, a self-updating pypi.python.org package cache, and work flow commands for uploading, testing and installing packages.  This talk shows some example scenarios and discusses the unique feature of seemlessly "inheriting" the pypi.python.org packages into your private index.  We'll also look into how you can perform testing of a package before you push a release to the public index or your company-specific private index. 
 recording release: yes license:   
 Video: http://pyvideo.org/video/2407/devpi-driving-packaging-and-testing-needs 
23. Schwachstellen und Sicherheitslücken
Christian Heimes

In diesem Vortrag werden eine Reihe von Schwachstellen behandeln, die in der Vergangenheit in CPython oder prominenten Pythonprojekten aufgetreten sind. Als Python Kernentwickler und Mitglied des Python Security Response Team war ich in die Analyse und Korrektur, zum Teil auch in die Entdeckung dieser Lücken involviert.

Jede Schwachstelle zählt exemplarisch einen oder mehrere typische Programmierfehler auf. Mit Hilfe von best practices wird gezeigt, wie man sicher mit Betriebsystemressourcen und Daten aus nicht vertrauenswürdigen Quellen umgeht, kryptographischen Algorithmen korrekt verwendet und side channel attacks verhindert.

Desweiteren werde ich einen Ausblick auf geplante Änderungen und sicherheitsrelevante Verbesserungen in Python 3.4 geben. Jenseits von Python wird der Vortrag auch beleuchten, welche Fallstricke und Probleme Compiler, Betriebsysteme und moderne CPU-Architekturen mit sich bringen und sie sogar die Entwicklung sicherer Software verhindern können.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2391/schwachstellen-und-sicherheitslucken 
24. Von der Entwicklung bis zum Deployment mit standardisierten und konfigurierbaren Laufzeitumgebungen
Juergen Schackmann
tags: virtualenv, django, deployment, vagrant, puppet, bootstrapping
Es wird gezeigt, wie Laufzeitumgebungen (Betriebssystem, Services wie Datenbank oder Webserver, Python, Applikation) standardisiert konfiguriert und automatisiert erzeugt werden können. Somit wird sichergestellt, dass eine Applikation immer in definierten und weitgehend identischen Umgebungen ausgeführt wird - unabhängig von den verschiedenen Phasen des Lebenszyklus (Entwicklung, Test, Produktion etc.) und persönlichen Präferenzen und Know-how der involvierten Personen.  Hierfür eingesetzt werden: Vagrant, Virtualbox,Puppet, Virtualenv.


 recording release: yes license:   
 Video: http://pyvideo.org/video/2403/von-der-entwicklung-bis-zum-deployment-mit-standa 
25. Who let the robot out? Qualitativ hochwerte Software mit Hilfe von Continuous Integration erstellen
Timo Stollenwerk

Continuous Integration ist Begriff aus der Softwareentwicklung, der den Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung beschreibt. Das Ziel der kontinuierlichen Integration ist die Steigerung der Softwarequalität. Jede "Integration" führt zu einem automatisierten Build-Prozess der verschiedene Software-Tests und Code-Analyseschritte ausführt um Fehler so früh wie möglich erkennen und beheben zu können.

Dieser Vortrag wird die Prinzipien der Kontinuierlichen Integration vorstellen und aufzeigen wie diese für ein Python-Projekt umgesetzt werden können. Dabei werden die Erfahrungen aus dem Betrieb des CI-Servers für das Plone Projekt, eines der größten Python-basierten Open Source Projekte, vorgestellt. Unter anderem werden die folgenden Themen behandelt:

- Aufsetzen eines Continous Integration Servers mit Travis-CI oder Jenkins
- Einbindung verschiedener Versionskontrollsysteme
- Das Ausführen verschiedener Tests und die Analyse der Code-Qualität für jede Integration
- Wie Jenkins verwendet werden kann um automatisch eine Software Dokumentation zu erstellen, die Entwickler zu benachrichtigen, Software Releases zu erstellen und Software zu deployen
- Das Schreiben und kontinuierliche Ausführen von funktionalen Akzeptanztests, basierend auf Robot Framework
 recording release: yes license:   
 Video: http://pyvideo.org/video/2388/who-let-the-robot-out-qualitativ-hochwerte-softw 
26. OpenTechSchool Potpourri
Robert Lehmann
tags: opentechschool
Die OpenTechSchool ist eine Community-Initiative die freie Programmierworkshops für sämtliche Zielgruppen anbietet.  Mit mehreren freien Materialien für Programmieranfänger und -fortgeschrittene bringen wir unseren Teilnehmern Grundlagen oder spezielle Themenkomplexe bei.

Dieser Vortrag blickt zurück auf ein Jahr voller Workshops in mehreren Städten, mit einem Fokus auf Python.  Mit verschiedenen Konzepten wie Workshops, Learners Meetups und Hackdays haben wir das verschiedenste Publikum — von Konferenzteilnehmern zu Kindern — bedient.

Der Vortragende speist seine Erfahrungen aus der Erarbeitung mehrerer Python-Curriculi, dem Coaching auf verschiedenen Events in Berlin sowie der Organisation der Lokalgruppe in Zürich.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2408/opentechschool-potpourri 
27. Entwicklung wissenschaftlicher Applikationen mit Python
Florian Rhiem, Ingo Heimbach
tags: opengl, wxpython, python, numpy, anwendungsentwicklung, visualisierung, opencl
Durch Experimente und Simulationen werden im wissenschaftlichen Bereich große Mengen an Daten erzeugt. Diese müssen geeignet aufbereitet werden, um sie in eine für die Wissenschaftler verständliche Form zu überführen. Ein Beispiel dafür ist die Untersuchung von Phasenwechselmaterialien, welche in wiederbeschreibbaren optischen Medien eingesetzt werden. Der beim Löschen und Beschreiben eintretende Wechsel zwischen kristallinem und amorphen Zustand wird auf Großrechnern simuliert und die resultierende molekulare Struktur auf Hohlstellen hin untersucht, da diese Rückschlüsse auf das Verhalten des Materials zulassen. Den Kern der Präsentation nimmt die Entwicklung der Anwendung *pyMolDyn* ein, welche die Analyse und Visualisierung der Moleküle und Hohlstellen übernimmt.

Dieser Vortrag gibt einen Einblick in die Erfahrungen, die während der mehrjährigen Entwicklung dieser Software gesammelt wurden. Zum einen wird dabei die rechenintensive Analyse der Daten betrachtet und wie diese durch Verwendung von NumPy und (py)OpenCL vereinfacht und beschleunigt werden kann. Zum anderen werden die grafischen Anwendungskomponenten beschrieben, welche mithilfe von wxPython, (py)OpenGL und einem gezielten Zusammenspiel dieser beiden Pakete umgesetzt werden konnten. Neben Performance und Einfachheit der Programmierung werden auch die gewonnenen Eindrücke zu Plattformunabhängigkeit und Interversionskompatibilität vorgestellt. Weiterhin werden Eigenheiten der Anwendungsentwicklung im Bereich der Forschung erläutert und es wird darauf eingegangen, welche Stärken und Schwächen Python in diesem Zusammenhang bietet. Abschließend folgt ein Überblick darüber, wie sich die weitere Entwicklung von *pyMolDyn* gestalten wird und welche Konsequenzen die gesammelten Erfahrungen in Zukunft für das Projekt haben werden.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2398/entwicklung-wissenschaftlicher-applikationen-mit 
28. BACARDI - Ein Katalog für Raumfahrtrückstände
Michael Meinel
tags: zeromq, skalierbar, protocol buffers, middleware, space debris, weltraumschrott
Das Thema Weltraumschrott tritt vermehrt in die Öffentlichkeit, denn nur wenn jetzt das Augenmerk der raumfahrenden Nationen darauf gerichtet wird, werden wir auch in Zukunft zu den Sternen reisen können. Die Grundlage für eine nachhaltige Raumfahrtstrategie ist die Beobachtung und Katalogisierung der Raumfahrtrückstände für die Planung und Durchführung von Missionen. Am Deutschen Zentrum für Luft- und Raumfahrt e.V. entsteht derzeit der Backend Catalog for Relational Debris Information (BACARDI) als Technologiedemonstrator zum Umgang mit großen Datenmengen.

Die Python-Software kombiniert dazu moderne Technologien wie ZeroMQ und Protocol Buffers zu einem flexiblen, skalierbaren Gesamtsystem, das in der Lage sein soll, den wachsenden Ressourcenansprüchen zu genügen. Dank der plattformunabhängigen Schnittstellen können Komponenten später auch in anderen Programmiersprachen wie C, C# oder Java angebunden werden.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2395/bacardi-ein-katalog-fur-raumfahrtruckstande 
29. Cython für schnelleren Python-Code
Stefan Behnel
tags: cython, optimierung, compiler
Der [Cython-Compiler](http://cython.org) ist mehr als nur ein Weg, Erweiterungsmodule for CPython zu schreiben. Durch die statische Übersetzung von reinem Python-Code öffnen sich neue Möglichkeiten, den Code vielfach zu beschleunigen. Anhand einiger Beispiele wird gezeigt, wie durch Profiling und gezielte manuelle Optimierung auch reiner Python-Code von statischer Kompilierung profitieren kann, ohne dabei das Ökosystem der CPython-Laufzeitumgebung verlassen zu müssen.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2385/cython-fur-schnelleren-python-code 
30. Effiziente Python-Entwicklung mit kleinen Teams
Marc-Andre Lemburg
tags: projekt, effizient, team
Python bietet eine sehr effiziente Basis für das Umsetzen von komplexen Projektanforderungen. Die dadurch bedingten kürzeren Entwicklungszeiten liefern allerdings nicht nur Vorteile, sondern bringen auch neue Herausforderungen mit sich.

Der Vortrag liefert praxisnahe und -erprobte Vorschläge für das Projektmanagement, die eine möglichst effiziente Umsetzung von Projekten auf Python-Basis ermöglichen.

Darüber hinaus soll der Vortrag einen Anstoß zu einer Diskussion über Erfahrungen aus dem Bereich Projektmanagement in Python-Projekten liefern. Ziel sollte es sein, durch Erfahrungsaustausch Python insgesamt im Projektgeschäft voranzubringen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2390/effiziente-python-entwicklung-mit-kleinen-teams 
31. Python in der Automobilentwicklung
Markus Bläser
tags: xml, scipy, numpy, maplotlib, matlab
Der Vortrag soll beispielhaft die Verwendung von Python in der Automobilentwicklung zeigen.

Im industriellen Umfeld nimmt der Effizienzdruck, auch in der Entwicklung, stark zu. Anstatt sich in  hochoptimierten Algorithmen und Datenstrukturen zu „Verkünsteln“, gilt es in dieser Anwendungs-Domäne schnelle, verlässliche Resultate mit vertretbarem Aufwand zu realisieren.

Die Programmiersprache Python hat sich aus verschiedenen Gründen in diesem Umfeld bewährt. Neben den sehr effizient nutzbaren Sprachelementen ist dies vor allem der großen Anzahl von Libs zu verdanken. So ist es möglich in kurzer Zeit mächtige, wartbare und verlässliche Anwendungen zu entwickeln.

Konkret wird eine Aufgabenstellung aus der Entwicklung von Klimasteuergeräten vorgestellt. Im Rahmen von Simulationsversuchen werden Daten im proprietären Matlab (*.mat) Format erzeugt. Diese umfangreichen Daten werden unter Verwendung von Python/NumPy/SciPy/Matplotlib aufbereitet und in mehrseitigen PDF-Reports aufgegeben.

Die einzelnen Seiten des PDFs Reports beinhalten u. A. Diagramme verschiedener Ausprägung. Die Diagramme werden gemäß hinterlegter XML-Konfig Dateien erzeugt. Weiterhin finden eine Filterung, Skalierung sowie weitere Datenaufbereitungen im kleineren Umfang statt.

 recording release: yes license:   

32. Über die Verwendung von Python zur Strukturanalyse von Schiffen
Berthold Höllmann
tags: numpy, fem, extension
Der Germanische Lloyd ist ein international tätiges technisches Dienstleistungsunternehmen, das sich mit u.a. mit der sicherheitsrelevanten Bewertung von Schiffsstrukturen befasst.

Für die Festigkeits- und Schwingungsberechnung von neuen Konstruktionen wurden und werden beim Germanischen Lloyd Python Tools eingesetzt. Diese dienen zur Manipulation von Berechnungsmodellen, zur Bereitstellung von Simulationsmodellen in unterschiedlichste Berechnungsformate, zur Kopplung unterschiedlicher (kommerzieller und nicht kommerzieller) Berechnungsprogramme, zur Implementierung eigener Berechnungsverfahren sowie zur Ergebnisdarstellung. Für die unterschiedlichen Aufgaben werden verschiedene frei verfügbare Bibliotheken wie numpy oder scipy sowie eigene in C, C++ und FORTRAN geschriebene Extensions und Module eingesetzt. Für die Anbindung der Extensions an Python werden sowohl Interface Generatoren (f2py, Cython) als auch handgeschriebener Code unter Verwendung der Python C API verwendet.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2401/uber-die-verwendung-von-python-zur-strukturanalys 
33. Sphinx i18n
Markus Zapke-Gründemann
tags: sphinx, i18n, gettext, transifex, internationalisierung, dokumentation
Sphinx hat schon rudimentäre Unterstützung für die Internationalisierung von Dokumentationen mit Hilfe von gettext. Dieser Vortrag berichtet über die eigenen Erfahrungen und diskutiert weitergehende Lösungsansätze.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2410/sphinx-i18n 
34. Recruiting Session (Neu)
Daniel Hepper

Sponsoren stellen sich vor und weisen auf aktuell offene Stellen hin.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2437/recruiting-session-neu 
35. Dienstag Lightning Talks


(00:00) Ilan Schnell - Conda Packaging

(0:05:00) Stefan - Ada Lovelace Day

(0:05:30) Marius Wesener - eGenix PyRun Not entirely sure about the last name, it is shown on the first slide.

(0:09:49) Marius - Smarthome: Steuerung mit KNX Last Name might be Hübner, but the res is too low for me to read it off the slide

(0:13:41) Programmierwettbewerb - Blender He did not say his name :-) He mentiones a URL in the talk, I could not read it.

(0:18:50) Benimm Dich! Das "behave" Tool für Behaviour Driven Development He did not say his name, maybe there is something in the slides.

(0:23:55) Arnold - GPG Key Signing Party

(0:25:43) Online Python Courses He did not say his name :-)

(0:27:46) Schlomo Schapiro - Distributed Monitoring Configuration

(0:32:59) Science Hack Day No name, maybe mentioned on slides but too small to read

(0:35:51) Beautiful Projekt No name.

(0:41:03) Arnold - mezzanine-workout Sportuhren auslesen und veröffentlichen

(0:43:01) BVG Abfahrten im Büro anzeigen Name was said too fast, maybe you can read it off the first slide.

(0:44:50) Christian - Compiler optimieren Kryptographie bis sie unsicher ist

(0:49:52) Dirk - NumPy

(0:54:53) ?? - Spielend Python lernen Name is visible but too small to read
 recording release: yes license: CC BY-SA  
 Video: http://pyvideo.org/video/2548/dienstag-lightning-talks 
36. Spinning a Web Framework
Martijn Faassen

Over the years I've been exposed to a lot of ideas in web frameworks. Reflecting on these ideas is valuable when you build a new one, but also when you simply use an existing web framework.

In this talk I will discuss the slow genesis of Morepath, a micro web-framework with super powers that I've created, and discuss some of the ideas behind it, things I've learned, and also share some thoughts about the creative process.

The ideas behind Morepath are not revolutionary, but hopefully still make you think.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2416/spinning-a-web-framework 
37. ABGESAGT: IronPython - ein Hochzeitskuss zwischen C# und Python
Mathias Mielitz
tags: c#, erweitern, python, ironpython, plugins
**Achtung:** *Dieser Vortrag wurde abgesagt und fällt aus!*

Wir erweitern die Funktionalität eines .NET-Programmes (C#) mit Hilfe mehrerer Plugins, die wir gemeinsam in IronPython schreiben.
Dabei lernen wir mehr über das Zusammenspiel beider Sprachen kennen und werden Trauzeugen einer Hochzeit zweier ungleicher Ehepartner.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2434/abgesagt-ironpython-ein-hochzeitskuss-zwischen 
38. Interaktive Datenanalyse und Visualisierung mit Python, pandas & Co.
Dr. Yves Hilpisch
tags: visualisierung, data analytics
Python hat sich als ernste Alternative für die effiziente und hochperformante Analyse auch von großen Datenmengen etabliert. Der Vortrag stellt die wesentlichen Python-basierten Tools für die interaktive Datenanalyse und Visualisierung vor und veranschaulicht diese an Hand von praxisnahen Beispielen.

Der Vortag nutzt IPython Notebooks um die Interaktivität in Echzeit zu veranschaulichen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2399/interaktive-datenanalyse-und-visualisierung-mit-p 
39. Introduction to django CMS
Benjamin Wohlwend, Stefanie Weilenmann
tags: open source, django cms, website, python, django
Wir werden das Open Source Content Management System «django CMS» vorstellen. Einerseits zeigen wir das Backend, aber auch das Frontend, geben Erfahrungen von Developern weiter und von CMS-Verwendern. Patrick Lauber, als Senior Web Developer geht in die Tiefe, Stefanie Weilenmann wir das CMS anhand einer kurzen Schulung zeigen. 
 recording release: yes license:   
 Video: http://pyvideo.org/video/2412/introduction-to-django-cms 
40. File-I/O ist doch ganz einfach, oder?
Christian Kauhaus
tags: zuverlässigkeit, systemprogrammierung, plattformunabhängigkeit, acid, input/output
Der Vortrag soll Bewusstsein dafür schaffen, wann man sich aus einer komfortablen Umgebung (z.B. einem Application-Framework) in eine systemspezifische Domäne begibt. Aus meiner Erfahrung im DevOps-Umfeld sind mir viele Fälle bekannt, in denen Code auf Entwickler-Maschinen keine Probleme macht, sich aber auf produktiven Servern nicht ausreichend robust verhält. Die Eigenschaften von File-I/O in Python dienen dabei als durchgehendes Anwendungsbeispiel.

Der Vortrag gliedert sich in zwei Teile. Im ersten Teil möchte ich anhand von ausgewählten "Pannen" zeigen, wann ein *with open(...)* allein nicht ausreicht, da z.B. die Python-Standardfunktionen keine Zuverlässigkeit im Sinne der ACID-Eigenschaften gewährleisten. Im zweiten Teil geht um konkrete Programmiertechniken wie Write-Replace-Updates, Locking oder fsync, die die Robustheit von I/O ggf. unter Einschränkung der Plattformunabhängigkeit erhöhen. 

Der Anwendungsteil des Vortrags basiert auf Material aus meinem [Blogpost](http://blog.gocept.com/2013/07/15/reliable-file-updates-with-python/) zum gleich Thema.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2404/file-io-ist-doch-ganz-einfach-oder 
41. Data Mining mit Orange
Andreas Bresser
tags: orange, klassifikation, classification, data mining
Es wird eine einfache Einführung in das Thema Data Mining gegeben. Dazu werden anschauliche Beispiele für den Einsatz von Orange gezeigt. Orange ist ein Open Source Programm, das Data Mining und Datenvisualisierung durch visuelle Programmierung oder Python Scripting ermöglicht.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2411/data-mining-mit-orange 
42. Fluid-Simulation für VFX mit PyOpenCl
Dieter Morgenroth
tags: pyopencl
Python ist zu langsam für die Berechnung von komplexen Simulationen für Visual FX? Weit gefehlt! Wir stellen ein System vor, dass auf Basis des PyOpenCl Projekts von Andreas Klöckner eine Fluid Simulation umsetzt, die sich über ein Client / Server Konzept direkt in die Software 3dsmax integriert und interaktives Arbeiten ermöglicht. Dabei läuft die Simulation gleichermaßen auf allen Kombinationen aus Linux / Windows / GPU / CPU.
Ein Erfahrungsbericht aus der Anwendung der PyOpenCl Library. 
 
 recording release: yes license:   
 Video: http://pyvideo.org/video/2400/fluid-simulation-fur-vfx-mit-pyopencl 
43. Content Management mit Web APIs
Arndt Droullier
tags: web api, cms, nosql
NoSql ein Schritt weiter: CMS-Systeme mit Web API lassen sich wie NoSql Datenbanken erweitert um Daten-Validierung, Workflow und Template Renderer verwenden. Ergebnis sind neue Anwendungsfälle wie Backends für Javascript Anwendungen oder Structured Data Services. Gezeigt am Beispiel [Nive cms](http://cms.nive.co/).
 recording release: yes license:   
 Video: http://pyvideo.org/video/2415/content-management-mit-web-apis 
44. Schlangenhochzeit in der Wolke
Jens Klein
tags: plone.testing, pyramid, buildout, velruse, appengine, mobile, gruntjs, testlayers, cloud, webtest
Googles Appengine steht für hochskalierbare Anwendungen in der Cloud. Locandy ist unser Startup für mobile Location based Games.

Auf der Cloud-Platform mit ihrer sehr restriktiven Python-Umgebung haben wir das Portal für Spieler, Autoren und Business Kunden umgesetzt. Browser, Mobile-App und PDF-Server werden damit bedient.

Dabei ist nicht alles so rund gelaufen, wie wir es gerne gehabt hätten. Die Probleme wurden gelöst - dank Python mit seinem starken Werkzeugkasten. 

Der Vortrag geht kurz auf die Anforderungen ein, zeigt auf welche Probleme es gab und wie wir sie gelöst haben. In einem Github Repository stelle ich ein Buildout inkl. kleiner Beispielapplikation mit den meisten dieser Lösungen zur Verfügung.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2406/schlangenhochzeit-in-der-wolke 
45. SCons - Software bauen in Python
Dirk Bächle
tags: framework, building, build system, programming, software
Dieser Vortrag stellt SCons (www.scons.org) und seine Benutzung vor. Er richtet sich in erster Linie an Softwareentwickler oder Betreuer von großen Buildumgebungen, die nach Alternativen zu herkömmlichen Tools, wie CMake oder autotools, suchen.

SCons ist ein Buildsystem das vollständig in Python programmiert wird. Die Eingabedateien zur Definition der einzelnen Buildschritte werden ebenfalls als Pythonskripte ausgeführt. Durch diese Kombination einer DSL (Domain Specific Language) mit der Allzwecksprache Python, lassen sich auch komplizierte Softwareprojekte einfach spezifizieren und bauen.

Das Framework das sich hinter dem Startskript verbirgt, ist auf einfache Erweiterbarkeit und hohe Flexibilität ausgelegt. 

Während des Vortrags soll gezeigt werden wie man ein Projekt richtig anfängt und make-typische Denkweisen vermeidet. Die Vorteile von SCons und  Standardfragen, z.B. zur Erweiterung des Systems für neue Buildschritte, werden diskutiert.

Am Ende soll der Zuhörer einen Eindruck von der Arbeitsweise des Programms erhalten haben, und entscheiden können ob sich der Einsatz von SCons für sein Softwareprojekt lohnen würde.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2409/scons-software-bauen-in-python 
46. MIDI-Geräte drahtlos steuern mit OSC, Raspberry Pi und python-rtmidi
Christopher Arndt
tags: remote control, musik, diy, midi, raspberry pi, osc
Mit der [python-rtmidi](https://pypi.python.org/pypi/python-rtmidi) Bibliothek lässt sich mit Python unter den drei gängigsten Betriebssystemen Windows, OS X und Linux auf MIDI-Schnittstellen zugreifen und MIDI-Daten senden und empfangen. Viele elektronische Musikinstrumente und anderes Soundequipment werden noch immer vorwiegend über das MIDI-Protokoll gesteuert und besitzen nur herkömmliche MIDI-Interfaces. Mit Hilfe einer auf *python-rtmidi* und [pyliblo](http://das.nasophon.de/pyliblo/) aufsetzenden Software, der *OSC-MIDI-Bridge*, einem Raspberry Pi und je einem billigen WLAN- und USB-MIDI-Interface, lassen sich solche Geräte kostengünstig in ein drahtloses Netzwerk einbinden und z.B. über Tablet-Computer steuern, auf denen entsprechende Software installiert ist, die OSC ([Open Sound Control](http://opensoundcontrol.org/)) unterstützt (z.B. [TouchOSC](http://hexler.net/software/touchosc) oder [TB MIDI Stuff](http://www.thiburce.com/TBStuff/)). Dies ist insbesondere für Situationen praktisch, in denen kein sperriger Desktop-Computer oder Laptop mit MIDI-Schnittstelle vor Ort vorhanden oder gewünscht ist.

Mit einer "Live"-Demonstration zeigt der Referent diese von ihm implementierte Software in Aktion (ca. 4 min) und erläutert dann kurz die dabei benutzten Protokolle (MIDI und OSC) (5 min), stellt die verwendeten Python-Bibliotheken *python-rtmidi* und *pyliblo* vor (4 min) und erläutert die eingesetzten Software-Techniken. Dabei wird insbesondere auf die asynchrone Behandlung von MIDI-Input und Output via des *multiprocessing*-Moduls der Standardbibliothek eingegangen (5 min). Abschliessend werden noch einige Anregungen für weitere Einsatzzwecke von *python-rtmidi* und der OSC-MIDI-Bridge gegeben (2 min).

*python-rtmidi* ist ein Python-Bindung für die C++-Bibliothek [RtMidi](http://www.music.mcgill.ca/~gary/rtmidi/index.html) und wurde mit [Cython](http://cython.org) realisiert. Die Software befindet sich noch im Alpha-Status, da momentan noch die Unterstützung der Kernel Streaming API unter Windows fehlt (Windows wird aber über das WinMM-Framework unterstützt). Die vorhandene Funktionalität ist jedoch stabil und es ist geplant, vor der PyCon.DE eine Beta-Version zu veröffentlichen. Die darauf aufsetzende OSC-MIDI Bridge ist bisher nur als Beispielskript in der *python-rtmidi*-Distribution verfügbar, wird aber stetig weiterentwickelt und voraussichtlich demnächst in ein eigenes Projekt ausgegliedert.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2393/midi-gerate-drahtlos-steuern-mit-osc-raspberry-p 
47. Wo ist meine Pfadklasse?
Oliver Bestwalter
tags: peps, pfade, standard library
Zusammenfassung der Diskussion um die Einführung einer Pfadklasse in die Python Standard Library. Überblick über bereits existierende Bibliotheken, gefolgt von einem pragmatischen Ausblick.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2414/wo-ist-meine-pfadklasse 
48. ABGESAGT: Die Cloud vom Python-Prompt
Frank Becker
tags: cloud, boto, aws
**Achtung**: *Dieser Vortrag wurde abgesagt und fällt aus!*


Ein Vorteil von Cloud Computing ist, dass man Ressourcen aller Art dynamisch hinzufügen oder abschalten kann. Reicht z. B. die Rechenkapazität der Anwendung nicht aus, fährt man einfach noch ein paar Rechner hoch. Selbst bei einfachen Anwendungen mag man das nicht manuell per Mausklicks erledigen. Python ist eine ideale Programmiersprache, um die Steuerung der Cloud zu übernehmen.

Der Vortrag führt in das Paket *Boto* [0] ein. Diese Bibliothek bietet ein integriertes Interface der Amazon Web Services (AWS) Infrastrukturdienste. Sie stellt das umfassende AWS API für Python Programme bereit.

Zuerst werden Konzepte und die einfache Nutzung vorgestellt. Dazu dienen einfache Beispiele wie das Starten, Abfragen oder Terminieren von virtuellen Hosts mit unterschiedlichen Konfigurationen.

Darauf basierend wird erläutert wie man ein skalierbares Continuous Integration System 
inkl. Compileserver mit Python/boto aufsetzt. 

Entlang der Beispiele gibt der Vortrag einen Überblick zur Nutzung dieser leistungsfähigen Bibliothek und zeigt wie leicht umfangreiche Systeme mittels Python gesteuert werden können. 

[0] https://github.com/boto/boto
 recording release: yes license:   

49. Asynchrone Programmierung mit Tornado
Florian Ludwig
tags: tornado, asynchron, websockets, non-blocking
Tornado ist eine asynchrone Netzwerkbibliothek mit der Fähigkeit zehntausende Verbindungen zu verwalten. Dieser Vortrag legt dar, wie dies erreicht wird und für welche Probleme Tornado die Lösung ist - und für welche nicht. Mit Praxisbeispielen wird vorgestellt, wie TCP-Server und Webanwendungen realisiert werden können und wie man asynchron auch ohne Callback-Jungle programmieren kann.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2397/asynchrone-programmierung-mit-tornado 
50. Wissenschaftliches Publizieren mit Python
Dr. Yves Hilpisch
tags: python, wissenschaft, latex, publizieren
Python hat sich als eine der bedeutendsten Programmiersprachen in vielen Bereichen der Wissenschaft etabliert. Jüngere Entwicklungen im Bereich des Publizierens machen die Nutzung von Python noch attraktiver. So ist es heute recht einfach möglich ausführbaren Python-Code in Dokument-Sourcen zu integrieren und die Ergebnisse dieses Codes direkt in das Dokument zu importieren (z.B. Formeln, Berechnungen, Abbildungen).

Der Vortrag skizziert Tools wie IPython Notebook, Sphinx (inkl. IPython Extension) oder auch PythonTEX. Er zeigt auch, wie einfach Open Research mit Hilfe dieser Tools zu realisieren ist.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2413/wissenschaftliches-publizieren-mit-python 
51. Komponenten einer komplexen Web-Applikation
Daniel Hepper
tags: search, deployment, haystack, elasticsearch, django, celery, fabric, salt, solr, sentry
Komplexe Web-Applikationen bestehen aus mehr als einem Webserver, einer Datenbank und etwas Code. Dieser Vortrag gibt einen Überblick über die typischen Bausteine wie Celery als Task Queue, Haystack für Volltextsuche, Sentry als Log-Diensten und automatischem Deployment mit Fabric und Salt. Die vorgestellte Komponenten werden anhand einer Django-Applikation erläutert, sind jedoch zum Großteil auch mit anderen Frameworks nutzbar.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2387/komponenten-einer-komplexen-web-applikation 
52. Wiki-Restauration aus dem Web Cache
Reimar Bauer
tags: moinmoin, adapter pattern, python, markup, html
Nach einem Totalschaden ist bei Webanwendungen nicht unbedingt alles verloren. Die Inhalte sind in der Regel auf eine begrenzte Zeit in Suchmaschinen wieder zu finden.

Der Vortrag beschreibt ein Verfahren das Anfang des Jahres zum Einsatz kam um Wiki-Seiten aus dem HTML Webcache zurück in Wiki-Seiten Markup zu übersetzen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2386/wiki-restauration-aus-dem-web-cache 
53. Ereignis-diskrete Simulation mit SimPy
Stefan Scherfke
tags: simpy, generators, zeit-diskret, simulation, ereignis-diskret
Simulationen kommen immer dann zum Einsatz, wenn Experimente an realen Systemen
mit hohen Risiken bzw. Kosten verbunden oder gar nicht erst möglich sind. Zudem
erlauben Simulationen es, Vorgänge, die in der realität lange Zeiträume
beanspruchen, in zumeist wesentlich kürzerer Zeit nachzuvollziehen. 

Nach einer
kurzen Einführung in das Thema zeigt dieser Vortrag anhand einfacher Beispiele,
wie sich Ereignis-diskrete Simulationen mit SimPy umsetzen lassen und welche
Funktionen SimPy zur Umsetzung komplexerer Simulationen bietet.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2396/ereignis-diskrete-simulation-mit-simpy 
54. XML generieren mit lxml
Stefan Behnel
tags: lxml, xml
[lxml](http://lxml.de/) ist der Platzhirsch unter den XML-Tools für Python. Über das übliche Parsen hinaus bietet es auch einige schöne Möglichkeiten, XML-Dokumente effizient zu generieren. Der Vortrag bietet eine Einführung in die Teile von lxml, die das Erzeugen von XML einfach und übersichtlich machen.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2394/xml-generieren-mit-lxml 
55. Mittwoch Lightning Talks


(00:00) 2. Test Driven Infrastructure - Schlovo

(0:04:48) 3 What's (Not so) New In Python 3.4 - C. Heimes

(0:04:50) 3 What's (Not so) New In Python 3.4 - C. Heimes

(0:09:38) 4. Unicode: wide build vs narrow build - Christian Kauhans

(0:14:23) 5. Nikola - Static Blog Generator - U. Spallele

(0:18:51) 6. Ahoy! Local Message Broadcasts - M. Specht

(0:23:34) 7. Python 2 & 3 mit demselben Code - Stefan

(0:27:12) 8. YADT - An Augmented Deployment Tool - YADT Team / Max Riehl

(0:31:51) 8. YADT - An Augmented Deployment Tool - YADT Team / Max Riehl

(0:31:53) 10. Krumme Nadel im Heuhaufen - R. Wobst

(0:31:58) 10. Krumme Nadel im Heuhaufen - R. Wobst

(0:37:00) Python Brochure

(0:41:22) Python Brochure

(0:41:26) Python Brochure

(0:41:32) 9. Python Camp 2014 PyCologne - Reimar Bauer
 recording release: yes license: CC BY-SA  
 Video: http://pyvideo.org/video/2438/mittwoch-lightning-talks 
56. High-Level Programmierung in der Raumfahrt
Felix Huber

Field Programmable Gate Arrays (FPGA) werden normalerweise auf Registerebene programmiert mit Hardwarebeschreibungssprachen wie Verilog oder VHDL. Dies ist vergleichbar mit Assemblerprogrammierung eines Mikroprozessors. Die Sprache Handel-C (sic!) hat sich zum Ziel gemacht, Hardwarebeschreibung mit C-Syntax zu ermöglichen, unabhängig von der zu Grunde liegenden Hardware. Dazu muß das Problem die Synchronizität durch die inhärente Parallelität einer Hardwarefunktion gelöst werden. Mit Handel-C ist es nun möglich, einen Algorithmus in C zu schreiben, auf einem Rechner zu simulieren und anschließend aus dem identischen Quellcode eine Hardwareimplementierung zu synthetisieren. Dabei gehen die Vorteile einer Hochsprache nicht verloren, im Gegenteil: durch den global optimierenden Compiler werden weniger Ressourcen auf dem FPGA benötigt. Zusammen mit Bibliotheken für Fest- und Fließkommaarithmetik, Graphikausgabe und Tastatur bedient sich ein FPGA dann wie ein embedded Prozessor mit einem Geschwindigkeitszuwachs von Faktor 100.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2431/high-level-programmierung-in-der-raumfahrt 
57. Python Packages
Daniel Hepper
tags: virtualenv, setuptools, packaging, pip, pypi
setup.py, PyPI, easy_install, pip, distutils, setuptools, virtualenv - wer ein Paket nutzen oder den eigenen Code als Paket verteilen will muss sich durch einen Dschungel von Modulen und Werkzeugen kämpfen. Dieser Vortrag bringt Licht ins Dunkel und stellt aktuelle Best Practices für die Verwendung und Erstellung von Python-Paketen vor.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2419/python-packages 
58. py.test - feature and new release highlights 
Holger Krekel
tags: testing, fixtures, pytest
py.test is a popular tool for writing tests in Python.  It offers unique features not found in other testing tools.  Apart from some basics, this talk introduces the modular fixture mechanism, the assert statement reporting and discusses the latest news of pytest-2.4 such as better doctest support and using contextmanagers in conjunction with fixtures.  We'll also quickly discuss the most popular from the many existing plugins.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2429/pytest-feature-and-new-release-highlights 
59. boost.python - die Nabelschnur zu Python
Reinhard Wobst
tags: python-c-api, boost.python, embedded python
Mit boost.python kann man Klassen und Klasseninstanzen an einen eingebetteten Python-Interpreter weiterreichen und die Instanzen dort verändern; ebenso lassen sich Python-Objekte bequem in C++ verarbeiten. Gegenüber der Python-C-API entfällt das fehlerträchtige Referenz-Handling, und der Stil ist näher an Python. Eigentlich ist diese Bibliothek die erste Wahl für diese Situation, doch leider ist die Dokumentation völlig unzureichend. Hilfe gibt es im Netz, doch unstrukturiert und nicht immer optimal. Der Vortrag geht auf Missverständnisse und typische Fehler ein, die bei der Nutzung wenigstens anfangs auftreten, zeigt die (noch vorhandenen) Grenzen auf und bietet einige "Kochrezepte". Außerdem zeigt er, wozu das alles in der Praxis gut sein kann.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2424/boostpython-die-nabelschnur-zu-python 
60. Continuous building with Pybuilder
YADT Project
tags: automation, lifecycle, python, maven, pybuilder, build, buildtool
Pybuilder ist ein erweiterbares und benutzerfreundliches *continuous Build Tool*
für Python, welches die Arbeit mit fremden (und eigenen) Python-Projekten
angenehmer macht. Damit lassen sich diverse Buildtools wie coverage, unittest,
pip oder auch setuptools zentral instrumentieren. Und das Beste zum Schluß : 100% open source!
 recording release: yes license:   
 Video: http://pyvideo.org/video/2422/continuous-building-with-pybuilder 
61. VHIST - Dokumentation von Workflows wissenschaftlicher Python-Anwendungen
Andreas Hüsgen, Stefan Vollmar, Michael Sué
tags: vhist, workflows, reproduzierbarkeit bei scientific computing, gute wissenschaftliche praxis, strace, dokumentation
Wir haben mit VHIST ein Dateiformat entwickelt, um Workflows im Bereich Scientific Computing  möglichst vollständig zu erfassen. VHIST ist PDF-kompatibel sowie PDF-unabhängig auswertbar. Wir bieten Werkzeuge, um halb- bzw. vollautomatisch VHIST-Dateien zu generieren und auszuwerten. Die Referenzimplementierung verwendet Python; Python-(scriptable)-Programme können besonders gut integriert werden.


 recording release: yes license:   
 Video: http://pyvideo.org/video/2423/vhist-dokumentation-von-workflows-wissenschaftl 
62. Pythons Datenmodell - Ein Überblick
Oliver Bestwalter
tags: protokolle, oop, datenmodell, pythonisch
Pythons Datenmodell ist sehr einfach: alles ist ein Objekt (wirklich *alles*).
Darüberhinaus verfügt die Sprache über eine Reihe von Konventionen und Protokollen, die es sehr einfach machen, die eigenen Klassen dazu zu überreden, sich wie native Datentypen zu verhalten.

In diesem Vortrag werden die dafür nötigen zentralen Konzepte eingeführt und mittels einfacher Beispiele demonstriert.


 recording release: yes license:   
 Video: http://pyvideo.org/video/2427/pythons-datenmodell-ein-uberblick 
63. Continuum Data Analytics Stack
Dr. Yves Hilpisch
tags: data analytics, python, visualization, financial analytics
Continuum Analytics bietet mit Anaconda Accelerate eine kommerzielle, skalierbare und unternehmenstaugliche Python-Distribution. Diese basiert auf der beliebten Open Source Distribution Anaconda.

Gegenüber der freien Distribution verfügt Accelerate über Bibliotheken wie NumbaPro oder IOPro, die eine nachhaltige Beschleunigung von typischen Data Analytics Aufgaben mit Python  erlauben.

Bokeh, eine Open Source Bibliothek, etabliert einen neuen Standard für die interaktive, Web-basierte Visualisierung von großen Datenmengen.

Der Talk illustriert die Leistungsfähigkeit des "Continuum Data Analytics Stack" an Hand einer Reihe von praxisnahen Beispielen, z.B. aus dem Finanzumfeld, und gewährt auch einen Einblick in aktuelle sowie geplante Entwicklungen und Erweiterungen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2425/continuum-data-analytics-stack 
64. Table Partitioning with Django
Max Tepkeev
tags: partition, database, django, partitioning
Table partitioning can be thought of as a division of one large table into several smaller tables which represent that original table. Table partitioning is "transparent", that means that in theory you don't need to change any code to work with partitioned tables.

We will talk about table partitioning theory in general and implementations in different database servers. Why and when we need to do table partitioning. What problems we can face and how we can solve them.

Django provides us with great database abstraction and ORM, but how can we use it with table partitioning ? We will talk about existing libraries for Django to work with table partitioning, their differences, which is the best (if any) and why.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2435/table-partitioning-with-django 
65. Die Dinge im Internet der Dinge mit Python verbinden...
Andreas Schreiber
tags: internet of things, quantified self, mqtt, temperaturmessung, raspberry pi
Das Internet der Dinge besteht aus kleinen, manchmal intelligenten, Geräten und Sensoren, die über das Internet verbunden sind. Typische Sensoren sind Wettermessgeräte oder medizinische Geräte. Das Internet der Dinge wird nun bald real da sein, was durch günstige kleine Einplatinencomputer wie Raspberry Pi oder Arduino mit beeinflusst wird. Allerdings haben diese Geräte nicht viel Rechenleistung. Außerdem sind sie in machen Umgebungen auch nur mit eingeschränkter Netzwerkbandbreite angebunden. Um nun (viele) solche Geräte zu verbinden und Daten austauschen zu lassen sind sehr leichtgewichtige Protokolle und Implementierungen notwendig.

Der Vortrag ist über das Protokoll [Message Queuing Telemetry Transport](http://mqtt.org/) (MQTT), ein sehr geeignetes Protokoll zum Verbinden kleiner Geräte und Sensoren. MQTT basiert auf einer Publish/Subscribe-Architektur. Es eignet sich gut zum Schicken von Daten von Sensoren zu anderen Geräten. Zum Beispiel lassen sich Temperaturmesswerte von einem Temperaturfühler ohne viel Overhead zu einem Server schicken oder zu einem Smartphone als Push-Nachricht übermitteln. Ein andere Anwendung von MQTT sind Chat-Systeme, z.B. ist das [Facebook-Messaging](https://www.facebook.com/messages/) auf Basis von MQTT implementiert.

In dem Vortrag geht es vor allem um Open-Source-Implementierungen von MQTT. Speziell wird der freie MQTT-Broker [Mosquitto](http://mosquitto.org/) und dessen Python-Client-Bibliothek vorgestellt. Mosquitto ist eine leichtgewichtige Implementierung die effizient auf günstigen Einplatinenrechnern oder Smartphones läuft. An ein paar Bespielen in Python wird im Vortrag verdeutlicht wie leicht sich Anwendungen auf Basis von MQTT realisieren lassen: Die Übertragung von Temperaturmesswerten per Raspberry Pi zu einem Server, das Senden von Push-Nachrichten zu Android-Smartphones und das Senden von Smartphones aus einer Kivy-App heraus.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2418/die-dinge-im-internet-der-dinge-mit-python-verbin 
66. MapReduce mit Disco
Dr. Jan Morlock
tags: big data, parallelisierung, mapreduce, disco
Mit dem MapReduce-Verfahren können massive Datenmengen auf einem Rechencluster verarbeitet werden. Namensgeber und wichtige Bestandteile sind eine Map- und eine Reduce-Phase. Diese werden jeweils parallelisiert ausgeführt und ermöglichen somit eine optimale Auslastung der vorhandenen Ressourcen. Im Vergleich zu einer entsprechenden sequentiellen Implementierung können dadurch große Zeiteinsparungen erreicht werden. 

Mit dem freien Disco-Framework können MapReduce-Aufgaben leicht in Python erstellt werden. Beim Zugriff auf die Eingabedaten werden verschiedene Protokolle unterstützt. Während der Ausführung kann der Zustand des Rechenclusters sowie der Fortschritt der einzelnen Aufgaben mit Hilfe einer Weboberfläche überwacht werden. Ein verteiltes Dateisystem, das Disco Distributed Filesystem (DDFS), wird zur Speicherung der Zwischen- und Endergebnisse verwendet.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2428/mapreduce-mit-disco 
67. Kivy und Arduino - Robotersteuerung mit dem Smartphone
Andreas Bresser
tags: smartphone, robot, arduino, kivy, mobile, bluetooth
In diesem Vortrag wird gezeigt, wie man ein Robotik-Board (Arduino) über Bluetooth durch ein Smartphone steuern kann. Hierbei kommt Kivy als Framework für die Grafische Oberfläche zum Einsatz.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2421/kivy-und-arduino-robotersteuerung-mit-dem-smart 
68. Lupa - LuaJIT in Python
Stefan Behnel
tags: lua, lupa, luajit
Der Python-Interpreter hat den Ruf, eine ausgereifte und grandios einfach zu verwendende dynamische Sprache und Laufzeitumgebung zu bieten, die für jede noch so [exotische Anforderung](https://xkcd.com/413/) eine Lösung bereit hält.

Ein oft genanntes Manko ist jedoch die begrenzte Performance des Interpreters für stark algorithmisch geprägte, kritische Teile von Anwendungen. Insbesondere hochdynamischer und generierter Code kommt hier schnell an seine Grenzen.

Auf der anderen Seite existiert mit LuaJIT2 eine sehr schnelle JIT-kompilierte Laufzeitumgebung der dynamischen Programmiersprache Lua, die bereits so manche Performance-Rekorde gebrochen hat und sich durch ihre geringe Größe leicht in andere Programme einbinden lässt. Das große Manko von Lua ist jedoch das Fehlen von Standard-Bibliotheken, die extrem begrenzten Sprach-Features und der daraus resultierende hohe Aufwand bei der Entwicklung größerer Anwendungen.

Mit [Lupa](https://github.com/scoder/lupa) steht eine Verbindung der beiden Programmiersprachen bereit, die es ermöglicht, aus Python heraus Lua-Code auszuführen und direkt mit diesem zu kommunizieren und Daten auszutauschen. So kann der größte Teil einer Anwendung in Python implementiert werden, und einzelne Aufgaben können von der schnellen LuaJIT-Umgebung übernommen werden.

Dieser Vortrag stellt das Projekt vor und gibt Einblicke in die Integration der beiden Programmiersprachen.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2433/lupa-luajit-in-python 
69. FritzConnection
Klaus Bremer
tags: fritzbox, python-api
Die AVM Fritzbox ist ein weit verbreiteter Router für den Internet-Zugang und bietet darüber hinaus auch Funktionen einer Telefonanlage.

FritzConnection ist eine Sammlung von Modulen, die eine Python-API zur FritzBox implementieren.

Der Vortrag gibt einen Überblick über das Funktionsprinzip, den Stand der Entwicklung sowie Beispiele für den Einsatz.

Der Sourcecode ist verfügbar auf Bitbucket:
https://bitbucket.org/kbr/fritzconnection
 recording release: yes license:   
 Video: http://pyvideo.org/video/2432/fritzconnection 
70. Gehirnwellen für Hacker
Andreas Klostermann
tags: raspberry pi, medicine, biology, brain computer interfaces, neurofeedback, eeg
Dieser Vortrag beschreibt das Neurosky Mindwave Headset, wie man es mit Python von einem Linuxsystem aus ansteuert.

Minimale biophysikalische Grundlagen zu Gehirnströmen werden erklärt um ein Gefühl für Fähigkeiten und Grenzen dieses Systems zu vermitteln.

Es werden Anwendungen im Neurofeedback vorgestellt, wie sie zum Beispiel gegen das Aufmerksamkeitsdefizit-/Hyperaktivitätsstörungssyndrom (ADHS)  als unterstützende Maßnahme eingesetzt werden könnten.

Zum Thema Brain Computer Interfaces stelle ich vor was mit diesem Headset funktioniert und was nicht.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2420/gehirnwellen-fur-hacker 
71. Handling Big Data with Python
Florian Wilhelm

The talk gives a small introduction of how Blue Yonder applies machine learning and Predictive Analytics in various fields as well as the challenges of Big Data. Using the example of Blue Yonder's machine learning software NeuroBayes, we show the made efforts and hit dead ends in order to provide a flexible and yet easy to use interface for NeuroBayes to Data Scientists. Since NeuroBayes is written in FORTRAN for performance reasons different interface approaches were tried which lead us eventually to a Python interface. In the talk we elaborate on the up- and downsides of the different approaches and the various reasons why Python won the race with an emphasize on the benefits of the Python ecosystem itself. 
Also, we discuss performance as well as scalability issues with Python and how we address them. In detail, we show the application of Cython to speed up calculations in the Python interface layer as well as distributed computing in a private cloud called Stratosphere. Scalability and efficiency is of utmost importance when data processing is time critical.  Our overall goal is to give the audience an overview how Python fits in the software ecosystem of a company handling Big Data.

 recording release: yes license:   
 Video: http://pyvideo.org/video/2430/handling-big-data-with-python 
72. Was Sie schon immer über „Visualisierung mit Python“ wissen wollten
Josef Heinen
tags: anaconda, opengl, python, numpy, visualisierung, numba, accelerate, pyqt
Schon lange hat sich Python in den Software-Entwicklungsabteilungen von Forschung und Industrie etabliert, nicht zuletzt wegen der Verbreitung von Bibliotheken wie SciPy oder Matplotlib. Bei der Verarbeitung großer Datenmengen oder im Zusammenspiel mit GUI-Toolkits stößt man aber leicht an die Grenzen der interpretativen Programmierung.

Der Vortrag zeigt auf, wie solche Anforderung auf der Basis des *GR Frameworks*, einer "Lightweight"-Alternative zu Matplotlib, umgesetzt werden können. Im Einzelnen wird beschrieben wie man mit aktuellen Software-Technologien Echtzeit-Anwendungen oder rechenintensive Simulationen in Python realisieren kann. So lässt sich zum Beispiel durch die Verwendung von Just-In-Time Kompilierung mit Numba(Pro) eine enorme Performance-Steigerung erzielen. An konkreten Beispielen werden die Vorzüge des *GR Frameworks* im Zusammenspiel mit JIT-Compilern, graphischen Benutzeroberflächen (GUIs) sowie OpenGL, aber auch vor dem Hintergrund einer stetig ansteigenden Paketflut beschrieben.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2426/was-sie-schon-immer-uber-visualisierung-mit-pyth 
73. batou - multi(component|host|environment|.*) deployment
Christian Theune
tags: deployment, konvergenz, administration
batou ist ein Werkzeug um das Deployment für server-basierte Anwendungen zu automatisieren.

Es basiert auf vielen Ideen von Puppet, Fabric und anderen Werkzeugen, bietet aber einen spezifische Modellierungsansatz, der das Konzept von "Konvergenz" einfach umsetzbar macht.

In dem Vortrag möchte ich erläutern warum Deployments zu automatisieren schwierig ist, was "Konvergenz" dazu beitragen kann um es einfach zu machen, und wie das in Batou ganz praktisch aussieht.
 recording release: yes license:   
 Video: http://pyvideo.org/video/2436/batou-multicomponenthostenvironment-depl 
74. GPG-Keysigning Party
Arnold Krille
tags: keysigning, web-of-trust, gpg, vertrauen
Keys bis Do, ca. 18:00 Uhr an keysigning2013@arnoldarts.de

Wenn Nerds zusammensitzen, Hex-Zahlen vor sich hin murmeln, peinliche Ausweisphotos vorzeigen und sich hinterher alle gegenseitig das Vertrauen aussprechen.
Es klingt als wäre die Piratenpartei in der Regierung angekommen, ist aber in Wirklichkeit „nur“ ein weiterer Schritt zum Schutz gegen NSA, BND und ähnliche Organisationen.

Wir wollen eine GPG-Keysigning-Party machen!
 recording release: yes license:   

75. ABGESAGT: Python in der Automobilentwicklung
Markus Bläser
tags: xml, scipy, numpy, maplotlib, matlab
**Achtung:** *Dieser Vortrag wurde abgesagt und fällt aus!*



Der Vortrag soll beispielhaft die Verwendung von Python in der Automobilentwicklung zeigen.

Im industriellen Umfeld nimmt der Effizienzdruck, auch in der Entwicklung, stark zu. Anstatt sich in  hochoptimierten Algorithmen und Datenstrukturen zu „Verkünsteln“, gilt es in dieser Anwendungs-Domäne schnelle, verlässliche Resultate mit vertretbarem Aufwand zu realisieren.

Die Programmiersprache Python hat sich aus verschiedenen Gründen in diesem Umfeld bewährt. Neben den sehr effizient nutzbaren Sprachelementen ist dies vor allem der großen Anzahl von Libs zu verdanken. So ist es möglich in kurzer Zeit mächtige, wartbare und verlässliche Anwendungen zu entwickeln.

Konkret wird eine Aufgabenstellung aus der Entwicklung von Klimasteuergeräten vorgestellt. Im Rahmen von Simulationsversuchen werden Daten im proprietären Matlab (*.mat) Format erzeugt. Diese umfangreichen Daten werden unter Verwendung von Python/NumPy/SciPy/Matplotlib aufbereitet und in mehrseitigen PDF-Reports aufgegeben.

Die einzelnen Seiten des PDFs Reports beinhalten u. A. Diagramme verschiedener Ausprägung. Die Diagramme werden gemäß hinterlegter XML-Konfig Dateien erzeugt. Weiterhin finden eine Filterung, Skalierung sowie weitere Datenaufbereitungen im kleineren Umfang statt.

 recording release: no  



Location
--------
Raum 3 (Haus 6)


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