EuroPython 2014 - Tag 5

Heute ist der letzte Tag der diesjährigen EuroPython.

Gestartet bin ich mit dem Vortrag Everything You Always Wanted to Know About Memory in Python But Were Afraid to Ask von Piotr Przymus . Er beschreibt, dass sich vermutlich jeder, der c/c++ lernen musste, mit den Größen der verschiedenen Datentypen beschäftigt hat. In Python ist dies nicht der Fall. Auch ich habe mir bisher keine großen Gedanken darüber gemacht. Piotr zeigte die Größen von ein paar built-in Datentypen. Wegen des Overheads für den Garbage Collector fallen diese immer etwas opulenter aus als in c. Pjotr ist darauf eingegangen wie Python versucht die selben Werte für unterschiedliche Variablen nur einmal zu benuzten. Z.B. a=0, b=0, a is b ==> True. Wie das für Strings forciert werden kann, wie Listen und Dictionaries in Punkto preallocation arbeiten usw.

Der Talk Advanced Database Programming with Python von Marc-Andre Lemburg hat mein Vorurteil bestätigt, dass Entwickler und Datenbanken nicht so besonders gut zusammen passen. Es war zwar nicht alles Blödsinn, doch hat man einfach die Entwicklersicht auf die Dinge gemerkt. Die Krönung war Schlicht die Empfehlung zu random-IDs, statt auto_increment zu verwenden. Meine Gedanken dazu warum das für gewöhnlich eine schlechte Idee ist.

Schlomo Schapiro hat einen weiteren Talk aus dem ImmobilienScout24 Umfld und seiner persönlichen Erfahrung gemacht. Er beschrieb welche Möglichkeiten es für Unternehmen gibt mit open source software zu arbeiten und vor allem dazu beizutragen. ImmobilienScout24 hat schon häufig die Entwickler eines Projektes für Support bezahlt. Magischer Weise ist bei diesem Support auch ein Feature hinten raus gefallen. Wichtig ist Code erweiterbar zu gestalten, so dass es möglich ist auch Features aufzunehmen, die vielleicht nur einen extremen Spezialfall abdecken, dafür aber niemand anderes stören. Als Beispiele nannte Schlomo subversion und icinga.

Im Nachmittagprogramm habe ich mich mit ein paar Leuten zusammen gesetzt und wir haben einen Blick auf den Nix package manager geworfen. Dabei habe ich ein docker image mit Nix auf Basis des busybox-Images erstellt. Darauf aufbauend könnte jeder von Nix verteilte Service installiert und ausgeliefert werden. Vielleicht wäre das eine einfache Möglichkeit eine Applikation inklusiver aller Abhängigkeiten zu verteilen, bei der vor allem auch neuere Software als z.B. in den Ubuntu Cloud Images benutzt/benötigt wird.