Archive

Bisherige Präsentationen und Themen.

9. August 2022

Digitale Probanden-Einwilligung mit Django

Gefan Qian

Der Vortrag hat den aktuellen Stand einer Django-Anwendung vorgestellt, die Daten von Probanden verarbeitet. Im ersten Schritt müssen die Probanden der Verarbeitung ihrer Daten einwilligen. Die Texte der Probanden-Einwilligung stellt die Anwendung dynamisch aus individualisierten Textbausteinen zusammen. Der Proband kann dieser Einwilligung in Form einer Unterschrift per Maus zustimmen. Danach erzeugt die Anwendung die unterschriebene Aufklärung im PDF-Format und zeigt diese im Bowser an.

Wir haben gemeinsam am Code gearbeitet. Dabei konnten wir einen URL-Endpunkt entfernen und die Funktionalität durch einen existierenden Template-Filter ersetzen. Damit hat sich Anzahl der Code-Zeilen beträchtlich reduziert und die Anwendung ist einfacher geworden.

12. Juli 2022

Diskussionsrunde

Wir haben uns über aktuelle Python-Themen ausgetauscht.

14. Juni 2022

Python im Browser

PyScript & Co. - Python im Browser

Eine Keynote der PyCon US hat PyScript vorgestellt. PyScript läuft im Browser und kann Javascript vollständig ersetzen. Es basiert auf Pyodide, das CPython auf WebAssembly/Emscripten laufen lässt. Auf der PyScript Seite gibt es es gibt ein paar schöne Beispiele. Wir haben uns diese näher ansehen.

10. Mai 2022

Pandas-Alternativen

Ein Erfahrungsaustausch

Die Bibliothek pandas ist in der Datenanalyse weit verbreitet. Es gibt eine Reihe von Bibliotheken, die sich an die Funktionsweise, also die API von pandas anlehnen und eine Alternative darstellen können. Weiterhin gibt es Systeme mit pandas-artiger Schnittstelle, die damit im Idealfall den Einarbeitungsaufwand auf Null minimieren. Wir haben uns einige dieser Systeme wie:

kurz angesehen und uns über unsere Erfahrungen zu Vor- und Nachteile dieser Systeme ausgetauscht.

12. April 2022

Offene Diskussionsrunde

8. März 2022

Metadaten-GUI - Teil 2

Gefan Qian

In unserem Treffen im Januar hatte Gefan sein Projekt über eine dynamisch erzeugte Nutzeroberfläche für Konfigurationsdaten vorgestellt. Es gab Einiges an Feedback mit Änderungsvorschlägen. Das sind die wichtigsten Änderungen in der neuen Version:

Es gab noch diese offenen Punkte:

8. Februar 2022,

Auswertung PyCamp

Unser PyCamp Ende Januar ist gelaufen. Wir haben kurz ausgewertet welche Themen wir dort diskutiert hatten. Einige das Konzept eines BarCamps noch nicht und konnten mehr darüber lernen warum es viele Teilnehmer als sehr produktives Format empfinden.

11. Januar 2022

Metadaten-GUI - Eine dynamisch erzeugte Nutzeroberfläche für Konfigurationsdaten

Gefan Qian

Der Vortrag stellte ein Programm vor, das anhand einer JSON-Datei eine GUI mit den jeweiligen Elementen generiert. Diese JSON-Datei ist eine manuell geschriebene Konfigurationsdatei. Die TKinter-GUI erzeugt anhand der Konfigurationsdaten dynamisch Elemente wie Checkbox, Dropdown-Menü, Selectbox oder Kalender. Dabei bestimmen die Konfigurationsdaten die Anzahl und Reihenfolge dieser GUI-Elemente.

In Zukunft soll ein weiteres Werkzeug Konfigurationsdateien über ein GUI erzeugen können. Wir wollen diskutieren wie sich das grundsätzlich umsetzen lässt.

14. Dezember 2021

Django-Admin - Ein mächtiges Werkzeug für Django-Apps und andere Anwendungen

Andreas Bamberger

Der Django-Admin ist ein grafisches User-Interface für Django-Models. Er lässt sich vielseitig anwenden. Typische Anwendungen sind zum Beispiel:

Der Vortrag hat den Django-Admin und dessen Nutzung vorgestellt.

Alle Beispiele liegen im Repo zum Vortrag: https://gitlab.com/a_ba/lpug-django-xmas-admin

9. November 2021

Vereinsverwaltung mit Django

Stephan Dick-Rustmeier

Der Vortrag hat den aktuellen Stand der Arbeiten an einer Software für die bessere, digitale Verwaltung eines Modellflug-Vereins vorgestellt. Ziel ist es, dass die Django-basierte Web-Anwendung mit allen modernen Webrowsern auf allen gängigen Betriebssystemen funktioniert.

Ein wichtiger Bestandteil des Vortrages war die Datenmodellierung, also wie die Anwendung Daten in Datenbank-Modellen abbildet. Der Vortrag zeigte den derzeitigen Ansatz.

Wie immer war dies kein klassischer Vortrag mit ein paar Fragen am Ende. Vielmehr war es eine Vorstellung eines laufenden Projektes mit Quelltexten und Demonstrationen. Fragen und Anmerkungen der Teilnehmer waren ein wichtiger Bestandteil. Es gab eine lebendige Diskussion aus der die Teilnehmer etwas Neues lernen konnten. Der er Vortragende hat wertvolle Anregungen für seine weitere Arbeit an dem Projekt erhalten.

12. Oktober 2021

Neue Features in Python 3.10

Python 3.10 ist da. Seit Anfang Oktober ist die neue Version offiziell raus. Wir haben uns angeschaut was diese Version bringt. Neben dem "Mega-Feature" Structural Pattern Matching gibt es noch einige interessante Neuerungen wie verbesserte Fehlermeldungen, mehrere Kontext-Manager in Klammern oder zip, das optional nur gleichlange Sequenzen verarbeitet.

Wir sind durch die neun Features What’s New In Python 3.10 gegangen. Einige davon haben wir gemeinsam ausprobiert.

10. August 2021

Diskussionsrunde

Wir haben über verschiedene Themen diskutiert.

13. Juli 2021, 19:00 Uhr

Aufgaben abarbeiten lassen

Dienste, Busse, Warteschlangen und andere Helfer

Unser Anwendungsfall:

Messdaten kommen kontinuierlich von einem Messgerät. Diese soll ein Dienst verarbeiten und das Ergebnis an den nächsten Dienst weitergeben, der wiederum mit den Daten arbeitet und das Ergebnis entsprechend weiterreicht. Im letzten Schritt zeigt ein Dienst das Ergebnis grafisch an. Die Dienste können lokal oder im Netz laufen.

Wir wollen diskutieren welche Möglichkeit der Umsetzung es in Python gibt. Was sind die Vor- und Nachteile diese für verschiedene Aufgaben-Größen? Wie komplex sind diese Lösungen?

Bibliothek, die hier helfen könnten wären zum Beispiel python-task-queue oder Azure Service Bus-Warteschlangen.

8. Juni 2021

Freie Diskussionsrunde

Wir uns über die letzten Entwicklungen im Python-Ökosystem ausgetauscht. Es gab eine lebhafte Diskussion.

11. Mai 2021

Python-Pakete installieren

Eine Diskussionsrunde

Es gibt viele sehr nützliche Bibliotheken für Python. Man muss diese aber auch installieren können. Oft geht das problemlos mit pip. Manchmal gibt es aber Probleme. Wir wollen uns austauschen wie man solche Probleme möglichst vermeiden oder verhindern kann. Welche Techniken, Bibliotheken und Vorgehensweisen gibt es dafür? Was nutzt ihr? Welche Erfahrungen habt ihr mit verschiedenen Methoden gemacht?

13. April 2021

Meet Mob - Erste Erfahrungen mit dem Programmieren in der Gruppe

Oliver Bestwalter

Seit Anfang des Jahres nehme ich in einer Gruppe Teil, die sich einmal in der Woche remote trifft, um gemeinsam ein OSS Projekt zu pflegen. Die Technik nennt sich "remote mob programming" oder "remote ensemble programming". Ich möchte ein wenig von der Methode und meinen Erfahrungen erzählen.

9. März 2021

Structural Pattern Matching in Python

Eine Diskussionsrunde

Python bekommt "Structural Pattern Matching". Dies ist eine relativ große Neuerung. Es gibt teilweise hitzige Diskussionen darüber ob dies eine tolle Erweiterung der Sprache ist oder ob damit die Sprache zu komplex wird und sich zu sehr an die "C++-Philosophie" je mehr Features, desto besser annähert.

Es gibt drei PEPs zu diesem Thema:

Wir haben uns die wichtigsten Elemente davon ansehen und dazu diskutiert. Dabei versuchten wir Antworten auf Fragen wie diesen zu finden:

9. Februar 2021

pip, conda, mamba - Python-Pakete installieren und virtuelle Umgebungen anlegen

Eine Diskussionsrunde

12. Januar 2021

Große Datenmengen in Videos animieren mit "bewegung"

Sebastian M. Ernst

bewegung is a versatile video renderer, primarily targeting scientific visualizations of large quantities of data. Its core concepts are sequences and layers. Sequences describe a certain time span within a video and can overlap. Each sequence can hold multiple layers. Layers can be generated with cairo, Pillow, datashader, matplotlib and bewegung's internal drawing system DrawingBoard. Final compositing of every video frame and video effects are implemented via Pillow. Video encoding is handled by ffmpeg. bewegung also includes a simple vector algebra system and a "camera" for 3D to 2D projections. bewegung is developed with ease of use, compute time and memory efficiency in mind.

8. Dezember 2020

Web APIs mit Django und GraphQL

Andreas Bamberger

Vortragsinhalt:

Präsentation und Code: https://gitlab.com/a_ba/lpug-django-graphene

10.11.2020

Diskussionsrunde - "Was mich an besonders Python stört, was mir an Python besonders gefällt."

Wir haben uns online getroffen und intensiv diskutiert. Dabei kamen Merkmale von Python, die wir besonders mögen oder die uns besonders stören zur Sprache. Es gab verschiedene Meinungen zu ein paar Themen, so dass man viel lernen konnte.

13.10.2020

Einfache Web-Anwendungen mit Flask

Lukas Werner

Die kleine Einführung in das Web Framework Flask ging auf folgende Punkte ein:

Da jeder der Punkte eine eigene Vorstellung ausfüllen könnte, hat der Vortrag die meisten Punkte nur kurz umrissen. Einen großen Teil der Vortragszeit hat die Diskussion zum Thema eingenommen.

08.09.2020

Was ist neu in Python 3.9

Die neue Python-Version wird bald verfügbar sein. Deshalb haben wir uns angesehen was Python 3.9 an neuen Merkmalen bietet.

Es gab wieder viele interessante Diskussionen zu verschiedensten Themen um Python und Softwareentwicklung. Wir hatten viele Erst-Teilnehmer, die sich rege an der Diskussion beteiligten.

11.08.2020

Die Programmiersprache Nim aus Python-Sicht - Ein Erfahrungsbericht

Stefan Schwarzer

Als langjähriger Python-Entwickler bin ich auf der Suche nach einer flexiblen statisch typisierten Programmiersprache vor einem Jahr auf Nim ( https://nim-lang.org ) gekommen.

Ich möchte euch etwas über die Sprache erzählen, unter anderem über besondere Unterschiede zu Python und wie man beide Sprachen kombinieren kann. Ich habe darüber hinaus einiges an Material, aber wir müssen nicht alles strikt durchgehen, denn ein User-Group-Treffen lebt ja auch von der Diskussion. :-)

14.07.2020

Hardware mit Python ansteuern

Andre Bunk

Andre stellte sein Projekt vor. Das sind die wichtigsten Punkte:

  1. Pumpensteuerung für den Garten
  2. Temperaturmessung mit TC74
  3. Speichern dieser Messdaten mit SQLite
  4. Auswertung von Textdateien des Mediathekview mit Python
  5. Auswertung der gemessenen Temperaturwerte
  6. Benutzung-Schnittstelle mit tkinter geplant

Die Quelltexte stehen zur Verfügung:

FTP: odroid.home-webserver.de
Nutzer: gast
Passwort: gastgast1

12.05.2020

Online-Treffen

Programming Guidelines

Thomas Güttler

Mit 13 Jahren habe ich das Programmieren angefangen und bin nun 43.

Seit dem habe ich sehr viele Fehler gemacht und habe daraus mehr oder weniger viel gelernt.

Seit einer Weile schreibe ich meine persönlichen Programming Guidelines auf. Zum einen um mehr Klarheit über mein eigenes Handeln zu finden. Zum anderen , um dem einen oder anderen Neueinsteiger ein paar Irrwege zu ersparen.

Der Text ist auf englisch und hier zu finden:

https://github.com/guettli/programming-guidelines

14.01.2020

Python-Konferenzen 2020

Mittlerweile gibt es im Prinzip jede Woche ein oder mehrere Python-Konferenzen irgendwo auf der Welt. Welche Python-Konferenzen sind besonders interessant? Wie läuft eine solche Konferenz ab? Lohnt es sich teilzunehmen? Wenn, ja warum? Mike Müller gab persönliche Eindrücke von ein paar Python-Konferenzen der letzten Jahre und versuchte damit diese Fragen zu beantworten. Das ist natürlich subjektiv und auf wenige Konferenz beschränkt. Trotzdem könnte es bei der Entscheidung helfen eine Python-Konferenzen zu besuchen und dann die richtige auszusuchen.

13.08.2019

Fortran-Bibliotheken in Python nutzen

Mike Müller

Viele wissenschaftliche Anwendungen sind in Fortran implementiert. Es ist wahrscheinlich die älteste Hochsprache, die noch relativ weit verbreitet ist. Für numerische Anwendungen kann Fortran-Code durchaus beträchtlich schnellere Programme ergeben als Code in C oder ähnlichen Sprachen. Für andere Programmieraufgaben als numerische Algorithmen ist Fortran allerdings nicht so gut geeignet. Hier kommen die Fähigkeiten von Python ins Spiel Quelltext anderer Programmiersprachen relativ einfach als sogenannten Erweiterungen in Python integrieren zu können.

Dieser Vortrag stellt das Werkzeug f2py vor. Damit lassen sich Fortran-Quelltext elegant in Python-Erweiterungen einbauen. Der Zugriff auf Fortran-Arrays, die in Fortran-Modulen liegen ist mit NumPy-Arrays von Python aus nahtlos möglich. Oft sind Fortran-Quelltexte sehr monolithisch mit einer großen Schleifen für Simulations-Zeitschritte aufgebaut. Der Vortrag zeigt wie sich mit Hilfe von Callbacks und Threads Erweiterungen bauen lassen, die die Eingriffe in diese monolithische Struktur auf ein Minimum beschränken. Eine Demo zeigt wie sich in einem Jupyter-Notebook Fortran-Variablen live von Python aus anzeigen und verändern lassen.

Keine Angst: Fortran-Wissen ist nicht nötig, um dem Vortrag folgen zu können. Solide Python-Kenntnisse sind ausreichend. Sogar ohne Python-Wissen sollten die Grundprinzipien zu verstehen sein.


10.09.2019

Programming Guidelines

Thomas Güttler

Mit 13 Jahren habe ich das Programmieren angefangen und bin nun 43.

Seit dem habe ich sehr viele Fehler gemacht und habe daraus mehr oder weniger viel gelernt.

Seit einer Weile schreibe ich meine persönlichen Programming Guidelines auf. Zum einen um mehr Klarheit über mein eigenes Handeln zu finden. Zum anderen , um dem einen oder anderen Neueinsteiger ein paar Irrwege zu ersparen.

Der Text ist auf englisch und hier zu finden:

https://github.com/guettli/programming-guidelines


Treffen am 11. Oktober 2018 19:00 Uhr

Robert Lieback sprach über "Desktop-Anwendungen mit PyQt5 und PyInstaller"

Best-Practices für die Desktopentwicklung: Vom Qt-Designer, über das Event-Management, zur Distribution mit PyInstaller.


Treffen am 08. Mai 2018 19:00 Uhr

Sebastian Ernst über das Thema Zahlen stapeln mit HDF5 (h5py), Bcolz & Zarr gesprochen.


Treffen am 08. Mai 2018 19:00 Uhr

Markus Zapke-Gründemann sprach über "Can packaging improve Django deployments?"

How can packaging Django projects make deployments easier, faster and more reliable?

This is a preview of Markus' talk at DjangoCon Europe 2018 in Heidelberg. The talk will be held in English.

Es waren 13 Personen anwesend. Nach dem Vortrag gab es eine lebhafte Diskussion zum Thema Deployment von Django Projekten. Außerdem wurde das Thema Packaging weiter vertieft.


Treffen am 10. April 2018 19:00 Uhr

Andreas Linz sprach über "Think DSP - Digital Signal Processing in Python".

Der Vortrag war eine Zusammenfassung des Open-Source Buches ThinkDSP von Allen Downey und gleichzeitig eine Einführung in die Grundlagen der (Audio-)Signalverarbeitung.

Zu dem Buch gibt es eine Reihe von Jupyter Notebooks, die die vorgestellten Konzepte veranschaulichen.

Mit 17 Anwesenden war der Vortrag sehr gut besucht.


Treffen am 13. Februar 2018 19:00 Uhr

Unser Vortrag war diesmal:

Martin Czygan

Deep Learning with PyTorch

PyTorch is a machine learning framework, with focus on deep neural nets. PyTorch is sometimes regarded as the most pythonic among the current generation of such tools.

We briefly introduce the problems deep learning tries to solve; then we take a look at PyTorch and it's pythonic approach.

Repository with slides and notebooks:


Gemütliches Weihnachtstreffen am 12.12.2017 19:00 Uhr

Das letzte LPUG-Treffen im Jahr 2017 haben wir im Rahmen der Weihnachtszeit in gemütlicher Runde zum freien Plausch genutzt. Weiterhin haben über mögliche Inhalte im nächsten Jahr und die zukünftige Gestaltung der LPUG gesprochen.

Struktur der LPUG in 2018

grobe Jahresplanung

Unser Ziel ist es, zwei symmetrische Halbjahre aufzubauen. Über das Jahr verteilt könnten dann u.a. folgende Themenblöcke als Inhalt fungieren:

Planungsstufen

Um die Mitarbeit zu motivieren und besser planbar zu gestalten, haben wir verschiedene Planungsstufen.

1. konkret (Thema, Person, Datum)

2. in Planung (Thema, Person)

3. interessant (Thema)

Treffen am 12. September 2017 19:00 Uhr

How to Create a Python Package and Write Reusable Code

Philipp Hanemann

Python wird von vielen Nutzern wertgeschätzt, weil sie mit dieser Programmiersprache sehr produktiv sind. Von der Idee bis zur Umsetzung sind oftmals nur wenige, aber dennoch gut lesbare Zeilen Code notwendig. Dies ist vor allem in der Reichhaltigkeit der vorhandenen Bibliotheken begründet. Diese bündeln in der Regel Funktionen und Klassen mit einem bestimmten thematischen Fokus und stellen damit wiederverwertbaren Code dar. Einmal installiert, kann der Nutzer auf die Werkzeuge der Bibliothek bequem zugreifen.

Glücklicherweise ist der Aufwand eine eigene Bibliothek zu bauen unwesentlich höher als einfache Skripte zu schreiben. Nichtsdestotrotz gibt es für ein strukturelles einiges zu beachten.

Der Vortrag zeigt wie robuster und wiederverwertbarer Code entsteht. Die Präsentation stellt ein paar Konzepte vor und bereitet den danach folgenden interaktiven Erfahrungsaustausch vor.

Treffen am 8. August 2017 19:00 Uhr

Wir haben unser erstes Coding Dojo durchgeführt. Ein Dojo besteht aus Programmierübungen, sogenannte Katas, für kleine, in sich abgeschlossene Probleme. Dazu haben wir Paare gebildet. Ein Ziel der Übungen war es Test-Driven-Development (TDD) zu trainieren, also die Tests vor der Implementierung zu schreiben. Ähnlich wie bei Katas im Kampfsport geht es primär darum grundsätzliche Fähigkeiten zu internalisieren.

Unsere Kata

Problem

Wir haben uns die Russische Bauernmultiplikation heraus gesucht:

Schreibe eine Funktion, die zwei ganze Zahlen mit dem Algorithmus „russische Bauernmultiplikation“ multipliziert.

Die Signatur der Methode sieht wie folgt aus:

mul(int: x, int: y) --> int:
    # your code here

Der Algorithmus der sogenannten Russischen Bauernmultiplikation verläuft wie folgt: man halbiert die linke der beiden Zahlen so lange, bis die 1 erreicht ist. Nachkommastellen werden abgerundet. Die rechte Zahl wird jeweils daneben geschrieben und verdoppelt. Von den rechten Zahlen werden alle gestrichen, neben denen links eine gerade Zahl steht. Die verbleibenden nicht gestrichenen Zahlen der rechten Seite werden dann addiert und bilden das Ergebnis der Multiplikation.

Beispiel:

47 *  42
--------
47    42
23    84
11   168
 5   336
 2  (672)  # deleted because 2 ist even)
 1  1344
========
    1974

Das geht natürlich auch einfacher:

>>> 47 *  42
1974

Lösungen

Iterative Lösung

Die Summe ist zu Beginn Null sum_ = 0. Wenn der erste Wert negativ ist, kehren wir einfach die Vorzeichen der beiden Zahlen um. Damit decken wir auch negative Zahlen ab. Solange der erste Wert größer Null ist (while x > 0:), summieren wir auf. Aber nur wenn der erste Wert gerade ist: if x % 2:. Der erste Wert wird mit Integer-Divison halbiert x = x // 2 und der zweite verdoppelt y = y * 2.

def mul(x, y):
    sum_ = 0
    if x < 0:
        x, y = -x,  -y
    while x > 0:
        if x % 2:
            sum_ += y
        x, y = x // 2, y * 2
    return sum_

Lösung mit Generator

Das ist eine Variation der obigen iterativen Lösung. Anstatt der Summierung geht zu addierende Wert mit yield bei jedem Iterationsschritt raus. Das finale sum() konsumiert den Generator, den die Generatorfunktion get() zurück gibt.

def get(x, y):
    if x < 0:
        x, y = -x,  -y
    while x > 0:
        if x % 2:
            yield y
        x, y = x // 2, y * 2

def mul2(x, y):
    return sum(v for v in get(x, y))

Einfache Rekursive Lösung

Rekursiver Ansatz: Das Problem wird beschrieben als eine Kaskade von Referenzen auf "kleinere" Instanzen des selben Problems. Die Kaskade mündet in einen trivialen Sonderfall, für den eine direkte Lösung angegeben wird. Bei rekursiven Lösungen muss darauf geachtet werden, dass die Abfolge von Referenzen stets gegen den trivialen Sonderfall konvergiert.

Die erste Zeile im Rumpf fängt hier den Sonderfall x == 0 ab. Das ist allgemeiner als gefordert. Strikt nach Aufgabenstellung würde schon der Sonderfall x == 1 genügen; dann würden wir y statt 0 zurückgeben. Das würde i.A. genau so gut funktionieren, aber das Programm würde dann bei der Multiplikation mit einer linksseiten 0 nicht terminieren.

Die zweite Zeile im Rumpf übersetzt Aufrufe mit einem negativen Argument für x in arithmetisch gleichwertige Aufrufe mit positivem x (siehe dritte Zeile). Auch das ist allgemeiner als gefordert. Ohne diese Zeile terminiert das Programm nur für nicht-negative x.

Die dritte Zeile im Rumpf realisiert die eigentlichen Zwischenschritte der Bauernmultiplikation. Der rekursive Aufruf entspricht dabei dem Aufaddieren der darüberliegenden Summanden in der Tabelle. Der aktuelle Summand bleibt unberücksichtigt wenn x gerade ist (x % 2 == 0).

Konvergenz ist dadurch garantiert, dass die dritte Zeile im Rumpf mul stets mit einem betraglich kleineren x aufruft, so dass der Sonderfall x == 0 früher oder später erreicht wird.

def mul(x, y):
    if x == 0:
        return 0
    if x < 0:
        return mul(-x, -y)
    return (0 if x % 2 == 0 else y) + mul( x//2, y*2 )

13. Juni 2017 um 19:00 Uhr

Wir hatten einen interessanten Vortrag:

Cython

Stefan Behnel

Cython ist ein optimierender statischer Complier für Python, der das Erstellen von C-Erweiterungen für Python erleichtert. Als Quelle kann (1) reines Python, (2) Python mit Typ-Deklarationen (Cython-spezifisch) oder (3) C-Quelltext dienen.

Der Cython-Kern-Entwickler Stefan Behnel stellte Cython vor. Er zeigte an praktischen Beispielen wie leicht es ist mit Cython zu arbeiten. Er beantwortete tiefgehende Fragen zu Anwendung und Funktionsweise von Cython.

11. April 2017 um 19:00 Uhr

Diesmal hatten wir wieder eine freie Diskussion zu Pythonthemen.

14. März 2017 um 19:00 Uhr

Wir hatten einen Vortrag:

Mike Müller

Statische Typisierung für Python

Python ist eine dynamisch getypte Sprache. Das wird auch in Zukunft so bleiben. Mit mypy und dem Modul typing der Standardbibliothek ist es aber auch möglich statische Typen als Hinweise hinzuzufügen.

Diese statischen Typen wertet Python zur Laufzeit nicht aus. mypy arbeitet als Werkzeug mit dem Quelltext und überprüft die Richtigkeit der Typen ähnlich wie ein Compiler bei statisch getypten Sprachen. Der Vortrag stellte das generelle Vorgehen für die Nutzung der optionalen statischen Typisierung mit mypy und die Neuerungen, die Python 3.6 hier mitbringt vor.

14. Februar 2017 um 19:00 Uhr

Diesmal hatten wir eine freie Diskussion zu Pythonthemen. Wir haben uns geschaut welche neuen Bibliotheken in der letzten Zeit erschien sind.

10. Januar 2017 um 19:00 Uhr

Unser Thema war diesmal die nebenläufige und parallele Programmierung. Dabei haben wir uns vor allem mit den Unterschieden in den Anwendungsfällen und der Programmierung mit multiprocessing und asyncio beschäftigt.

Dazu haben wir mit Code-Beispielen gearbeitet, die zeigen, wie sich mit diesen Methoden Rechenzeit einsparen lassen kann oder eben nicht.

13. Dezember 2016 um 19:00 Uhr

Diesmal hatten ein vorweihnachtliches Treffen mit offenem Thema. Wir diskutierten über die letzten Entwicklungen bei Python. Dabei gab es immer neue Python-Bibliotheken zu entdecken.

8. November 2016 um 19:00 Uhr

Zum Treffen gab es einen Einführungsvortrag zu neuronalen Netzen. Theoretische Hintergründe wurde skiziert und eine Reihe von Implementierungen in Python vorgestellt: Basierend auf numpy, scikit-learn, tensorflow und keras. Die Folien und Code sind in diesem Repo zu finden. Die Präsentation mündete in eine Diskussion zu intelligenten Algorithmen im Allgemeinen und auch ihre gesellschaftlichen Auswirkungen.

09. August 2016

Rust for Pythonistas

The slides are available at github and slideshare.