In Folge 15 sind Jochen und Dominik vom Python Podcast zu Gast um uns dem maschinellen Lernen zu widmen. Gemeinsam besprechen wir ganz konkret die notwendigen Schritte, um Nachrichtentexte automatisch Tags zuzuordnen. Einerseits diskutieren wir über das richtige Tooling im Python-Umfeld, etwa Jupyter Notebooks, PyData Tools wie numpy und pandas sowie unsere bevorzugten Plotting Bibliotheken. Nach einer ersten Datenanalyse besprechen wir den Umgang mit Null-Werten und wie man mit TF-IDF oder Word-Embeddings den Text vektorisiert. Wir diskutieren verschiedene Algorithmen aus der Scikit-Learn Bibliothek und erklären Pipelines und Hyper-Parameter Tuning. Abschließend überprüfen wir die Güte unserer Modelle anhand eines Klassifikations-Reports und streifen Themen Skalierung, Deep Learning und vieles mehr.
Links
In Folge 14 geht es das erste Mal primär um Linux. Stefan Lengfeld erklärt die unterschiedlichen Bestandteile eines Linux Systems, vom Kernel bis zum Paketmanager. Wir klären etwa, welche Distribution sich für welches System eignet, welche Paket-Manager dazu gehören und warum es unterschiedliche Desktops gibt (KDE, GNOME). Im Detail besprechen wir den Boot Vorgang, etwa wo das BIOS endet, was der Kernel als erstes macht und worum sich der Streit zwischen den verschiedenen Init Systemen (initD, systemD, upstart) dreht. Wie in jeder Folge gehen wir aber auch auf praktische Entdeckungsreise, etwa durchsuchen wir mit htop die laufenden System Prozesse, erklären das Speichermanagement und diskutieren die Linux Dateistruktur.
Links:
In Folge 13 dreht sich alles um große Datenmengen und ihre Verarbeitung. Dominik Benz erklärt wie Data Engineers Datenstrecken entwickeln und welchen Einfluss aktuelle Entwicklungen wie das Bestreben nach Echtzeitdaten, die DSGVO und Big Data haben. Wir erklären fachliche Grundlagen, wie den Unterschied zwischen System- und Processing Time sowie die Problematik und den Umgang mit den daraus resultierenden “Late Arrivals”. Außerdem widmen wir uns natürlich den wichtigsten Technologien des Big Data Kosmos wie etwa Apache Hadoop, ETL Tools wie Spark- und Nifi sowie dem Message Broker Apache Kafka.
Links: Roaring Elephants Podcast
Die erste Folge zum Themenkomplex Security fokussiert sich das Web: Clemens Hübner berichtet aus seinem Alltag als Security Engineer und gemeinsam besprechen wir die OWASP Top 10. Diese Bestenliste wird vom Open Web Application Security Projekt erstellt und bewertet Angriffsvektoren auf Web-Applikationen nach ihrer Gefahr: Von Injections über falsche Konfigurationen bis zu nicht ausreichenden Logging und Monitoring. Wir gehen auf alle Punkte ein, diskutieren in welchem Kontext sie auftreten und wie man sich am besten dagegen schützen kann.
Folge 11 dreht sich um QBits, Quantencomputer und den aktuellen Stand der Forschung. Michael Marthaler ist Mitgründer des Quentencomputer Startups HQS und hat im Bereich Supraleitender Quantencomputer promoviert. Er beschreibt wie man sich physikalische QBits vorstellen kann, warum diese Fehleranfällig sind und wieso logische QBits hier helfen könnten. Es werden die Unterschiedlichen Bauformen (Supraleitung, Ionenfalle, Adiabatische Quantencomputer) vergleichen und verschiedene Anwendungsfälle aufgezeigt. Natürlich besprechen wir auch, wie man ganz praktisch zu Hause Quantencomputer ansprechen kann und welche Frameworks und Programmiersprachen dafür genutzt werden. Natürlich darf bei einem solch Zukunftsträchtigen Thema auf die kommenden Jahre nicht fehlen.
Links:
HQS Twitter-Account
IBM Quantencomputer
Basta Vortrag von Michael
Scott Aaronson’s Blog
Cirq Framework
ProjectQ Framework
In Folge 10 erklärt mir Matthias Endler nicht nur die Vorzüge der Programmiersprache Rust sondern jede Menge weitere Elementarkonzepte von Programmiersprachen im Allgemeinen. Nachdem wir Sprachen wie Basic, C und Python gestreift und für uns geklärt haben, was eine elegante Programmiersprache ausmacht steigen wir in die Besonderheiten der Sprache Rust ein. Sie legt ihren Fokus auf Sicherheit und Ausführungsgeschwindigkeit und führt neuartige, spannende Konzepte ein. Zwecks Speichermanagement und Parallelität der Ausführung wird etwa „Ownership“ und „Borrowing“ eingeführt. Wir gehen auf die Vorzüge von explizitem Error-Handling ein und wie der Compiler fast allwissend Entwickler immer wieder auf den besten Weg führt. Der Postcast fokussiert sich entsprechend weniger auf die Syntax sondern auf die Konzepte dahinter, dennoch kommen wichtige Faktoren wie Tooling, Community und Zukunftsaussichten ausführlich zur Sprache.
Links
Folge 9 behandelt die Container Management Plattform Kubernetes aus Sicht eines Applikations-Entwicklers. Jacob vertritt in der Folge die Entwickler Sicht und erzählt von seinen ersten Erfahrungen mit Kubernetes, Christoph erklärt weitere in Kubernetes umgesetzte Konzepte aus der Perspektive eines Linux bzw. Cloud System Engineers. Vorwissen zu Docker (Folge 1) ist hilfreich, aber ein allgemeines Verständnis von Containern ist ausreichend. Alle wesentliche Grundbegriffe von Kubernetes wie etwa Pods, Deployments, Services oder Configmaps werden erklärt. Dazu werden elementare Konzepte zum Netzwerk und Speicher-Management diskutiert und praktische Tipps gegeben, wie etwa mit Logging umgegangen werden sollte und was Immutable Deployments sind. In einer zukünftigen Folge wird das Thema Kubernetes noch weiter vertieft werden um die zugrundeliegende Funktionsweisen zu verstehen, die für den Einsteiger noch nicht von Bedeutung sind.
In Folge 8 sind Jan Steemann und Jan Stücke von ArangoDB zu Gast um über unterschiedliche Typen von Datenbanken zu diskutieren. Nach einer kurzen Zusammenfassung der Historie die vor allem von relationalen Datenbanken geprägt war geht es insbesondere um NoSQL Datenbanken. Wir besprechen wie diese mit ACID Anforderungen umgehen, was das CAP Theorem ist und wie NewSQL Datenbanken dennoch horizontale Skalierbarkeit erreichen. Natürlich geht es aber entsprechend dem Episoden-Titel auch um Multi-Model-Databases wie etwa ArangoDB. Solche Datenbanken vereinen unterschiedliche Arten von Speicherformaten um eine einheitliche Abfrage-Möglichkeit zu schaffen und dennoch die Vorteile unterschiedlicher Arten von Datenspeicherung zu nutzen. Letztlich diskutieren wir die Implikation dieses Ansatzes das auf verteilte Systeme, Schema-Design und die Abfragesprache.
Links:
Infrastructure as Code (IaC) ist ein modernes Paradigma, welches Hardware Ressourcen in Quellcode abbildet. Auf diese Weise wird die Infrastruktur einfach reproduzierbar, versionierbar und ist sogar automatisch dokumentiert. Arnold Bechthold erklärt mir, woher diese Entwicklung kommt und wie sie sich von klassischem Konfigurationsmanagement unterscheidet. Terraform ist eine sehr verbreitete und vor allem Cloud agnostische Open-Source Software zur Realisierung des IaC-Paradigmas und unsere Beispiel-Implementierung. Wir beschreiben was notwendig ist, um einen hochverfügbaren Webshop bei AWS zu betreiben und wie ein entsprechendes Abbild in Terraform aussieht. Auch gehen wir auf Themen wie Statemanagement, Provisionierung und den Unterschied zwischen deklarativer und imperativer Software ein. Letztlich diskutieren wir die Zusammenhänge zwischen der DevOps Bewegung und IaC sowie das sich wandelnde Berufsbild vom klassischen Administrator hin zum Systems Engineer.
Links:
Folge 6 behandelt das Thema Machine Vision, also wie man Computer vergleichbar zur menschlichen Wahrnehmung das Sehen beibringen kann. Stanislav Frolov erklärt, warum diese Aufgabe so schwierig ist und für welche Anwendungsgebiete neben dem autonomen Fahren diese Verfahren noch benötigt werden. Es werden sowohl Grundbegriffe wie Klassifizierung, Lokalisierung und Deduktion erklärt und was in den letzten 60 Jahren Forschung erreicht wurde. Natürlich geht es auch um Neuronale Netzwerke bzw. CNNs, welche im Detail erklärt werden. Nach einer grundlegenden Einführung werden auch einige populäre Netzwerkarchitekturen wie GoogleNet, YOLO angerissen.