Entwicklern und Nerds spannende und innovativen Technologien näher bringen - das ist das Ziel von Techtiefen. In jeder Folge wird ein Thema in einem intensiven Gespräche mit wechselnden Experten und Expertinnen ausführlich erklärt. Dabei haben wir den Anspruch Neugierigen die jeweilige Technologie und ihren Nutzen näher zu bringen und anschließend tiefe Einblicke und handfeste Tipps zu bieten.
42 AI Chatbots & Open-Assistant
In der 42. Folge dieses Podcasts geht es um die Technologie, die derzeit als die Antwort auf alles und nichts gesehen wird. Andreas Köpf von Open Assistant wird interviewt und es wird diskutiert, wie ChatGPT die Technologie-Revolution angestoßen hat und welche Auswirkungen sie auf die Zukunft hat. Es werden die Grundlagen von ChatGPT wiederholt und ein ausführlicher Blick auf das Refinforcement Learning from Human Feedback (RLHF) geworfen, das den Large Language Models hilft, den Absichten der Nutzer zu folgen. Open-Assistant wird als eine Open-Source-Alternative zu ChatGPT vorgestellt, die von einer engagierten Community aufgebaut wurde und deren Datensatz veröffentlicht wurde. Es wird auch diskutiert, welche Hardware und Modelle für das Training verwendet wurden. Ethik ist ein wichtiges Thema, da bei der Erstellung der Trainingsdaten darauf geachtet werden muss, welche Antworten auf potenziell gefährliche Fragen die richtigen sind. Schließlich wird ein Blick auf die gesellschaftliche Dimension geworfen und über die bevorstehenden Transformationen und nächsten Entwicklungsschritte diskutiert.
4/26/2023 • 2 hours, 32 minutes, 7 seconds
#41 WebAssembly
Webassembly ermöglicht es, viele verschiedene Programmiersprachen im Browser auszuführen und kann dabei sogar deutlich schneller sein als JavaScript. Mein Gast Golo Roden hat nicht nur jahrelange Erfahrung im Bereich der Web-Entwicklung und Software-Architektur, sondern hat sich auch länger mit WebAssembly auseinander gesetzt und darüber ein ausführliches YouTube Tutorial produziert.
Mit ihm spreche ich über das Ziel von WebAssembly, den Browser mit Hilfe einer Intermediate Language (ähnlich wie Java bytecode oder CIL) für mehr Entwickler zugänglich zu machen. Und seit der Einführung 2015 haben sich inzwischen zahlreiche Projekte gefunden, die es ermöglichen etwa C, Rust, Go, Java, C#, .NET oder neuerdings Python mittels Pyodide in WebAssembler zu kompilieren. Golo erklärt, warum WebAssembler weder eine Konkurrenz zu JavaScript noch zu Docker darstellt, wie das WebAssembler System Interface (WASI) funktioniert und wann WebAssembler schneller ist als JavaScript. Schließlich sprechen wir noch etwas über das ganze Ökosystem rund um WebAssembly, die ByteCodeAlliance und wo uns WebAssembler heute im Netz so begegnet.
Links
Golos Youtube Channel “the native web”
Ältere, aber schöne Einführung von Lin Clark: Cartoon introduction to WebAssembly
State of WebAssembly 2022
2/6/2023 • 1 hour, 8 minutes, 42 seconds
#40 Semantic Search
Informationen sind vielfältig, sie existieren nicht nur in geschriebenen Text, sondern auch in Bilder, Töne, Videos und vielem mehr. Wähend klassischer a.k.a. lexikalischer Suche diese Informationen nur mit viel Aufwand über Umwege zugänglich gemacht werden können, so bietet semantische Suche den direkten Zugriff auf Informationen nicht nur jeder Sprache, sondern auch jeder Modalität wie etwa Bildern und Videos.
In Folge 40 habe ich Joschka Braun von Jina.AI zu Gast. Jina ist ein Startup aus Berlin, welches Entwickler bei der Erstellung multi-modaler ML Anwendungen hilft. Gemeinsam erkären wir zunächst, wieso multi-modalität, also dem Zusammenwirken von unterschiedlichen Medientypen wie etwa Text, Bild, Ton etc. die Zukunft gehört. Wir gehen auf Clip- und Dall-E als erste populäre Vertreter multimodaler Machine Learning Modelle ein und erklären wie sie Dokumenten-Vektoren generieren. Anschließend sprechen wir über geeignete Verfahren zur performanten Durchsuchung der generierten Vektoren mittels Approximate Nearest Neighbor (ANN) Search. Diese können entweder direkt mittels Bibliotheken wie etwa HNSWLib, Annoy oder Faiss genutzt werden, oder als Retrieval-Verfahren innerhalb einer Vektordatenbank. Diese verbinden die Transaktions- und Skalierungsqualtiäten von Datenbanken mit der effizienten Vektorabfrage. Hier reden wir insbesondere über die Vorzüge und Nachteile der dedizierten Vektordatenbanken wie Weaviate, Milvus und Qdrant sowie den klassischen Datenbanken mit Vektorsuche wie beispielsweise ElasticSearch.
Zum Abschluss sprechen wir noch einmal über JinaAI, DocArray, ihren neuen Dienst JinaNow und NLP-Modell-Finetuning.
Links:
ANN BenchmarkBuch zu Neural SearchJinaAI Bootcamp
12/11/2022 • 1 hour, 2 minutes, 58 seconds
#39 Suchmaschinen-Optimierung (SEO)
In Folge 39 berichtet SEO-Experte Niklas Büllesbach von seinen Erfahrungen im Suchmaschinen-Umfeld. Natürlich gibt Niklas einige Tipps zur Optimierung der eigenen Seite, darüber hinaus werfen wir aber auch einen Blick auf die Funktionsweise von Suchmaschinen. Dabei starten wir bei AltaVista, besprechen die ersten On-Page (TF/IDF) und Off-Page (PageRank) Optimierungen und schließen bei aktuellen Entwicklungen sie Semantischer Suche, hochdimensionale A/B-Tests, Tools wie Google-Search-Console (ehemals WebMaster-Tools) und den Core Web-Vitals sowie Best Practices für sensible Bereiche: Expertise, Authority, Trust.
Darüber hinaus skizzieren wir die typsichen Verarbeitungsschritte einer Suchmaschine:
Crawling: Der GoogleBot besucht eine Homepage und hangelt sich von hier in die verschiedenen Bereiche der Website. Bei großen Online-Portalen wie etwa Nachrichtenseiten kann das managen des sogenannten Crawl-Budgets eine Herausforderung darstellen.Rendering: Google Caffeein rendert die gecrawlte Websitenstruktur, um anschließend revelante Inhalte zu extrahieren. Bei nicht serverseitige gerenderten Websiten wie etwa Single-Page Applikations kann dies insbesondere auf Grund des zeitlichen Versatzes eine komplizierte Angelegenheit darstellen.Indexing: Die gespeicherten Inhalte werden in Shards unterteilt und auf verschiedene Daten-Center verteilt, die nach URL-Keywords (Reverse-Index) strukturiert werden.Ranking: Die Reihenfolge der zurückgelieferten Suche wird gerade in den letzten Jahren immer mehr durch semantische Suche bestimmt und mittels Neuronaler Netze und dem Google Knowledge Graph bestimmt.
6/27/2022 • 1 hour, 30 minutes, 51 seconds
#38 Aufbau eines Tech-Startups
In Folge 38 ist Janosch Sadowski zu Gast und erzählt von seiner sehr erfolgreichen Gründung des Spiele-Startups Kolibri Games und dem vier jährigen steilen Wachstumskurs von der Uni-WG hin zu einem der heißesten Berliner Startups mit vielen Millionen Spielern.
Gemeinsam mit vier Kommilitonen vom Karlsruher Institut für Technologie (KIT) hat Janosch 2016 das Spiele-Startup Fluffy Flairy Games (später in Kolibri Games umbenannt) gegründet. Nach einem ersten misslungen Spiele-Konzept entdeckten die Studenten das “Idle-Games” Genre und prägten es mit dem Erfolgstitel Idle Miner Tycoon, dessen erste Version sie nach nur vier Wochen veröffentlichten. Mit viel Mut und dem Engagement das Spiel jede Woche etwas besser zu machen konnte das Startup bald erste Mitarbeiter einstellen und zog dann mit über 20 Personen zum Jahresbeginn 2018 geschlossen nach Berlin, um dort einfacher talentierte Mitarbeiter gewinnen zu können. Dort nahm das Wachstum dann noch weiter zu und das Führungsteam musste diverse Probleme lösen, von komplexer werdenden Kommunikationswegen bis hin zu kurzfristig Hardware Shopping Touren im Media-Markt nach einem bzw. zwei nächtlichen Einbrüchen.
Jannosch erzählt jedoch nicht nur die spannende Entwicklungsgeschichte des Startups, sondern teilt auch seine Einschätzung dazu, was eine gute Firmenkultur ausmacht und erzählt, worauf er bei Vorstellungsgesprächen besonders achtet.
Die Folge 38 hat leider aufgrund von kurzfristig notwenidger Ersatzhardware eine schlechtere Audio-Qualität als gewohnt, dafür bitte ich euch um Entschuldigung - das wird nächstes mal wieder besser!
Einige weitere Artikel rund um Kolibri-Games:
Umzug nach Berlin (2019)Kolibri Exit (2021)Ausstieg der Gründer (2021)
5/13/2022 • 1 hour, 43 minutes, 44 seconds
#37 Datenvisualisierung
Episode behandelt mit Datenjournalist Patrick Stotz (Spiegel) die Visualisierung komplexer Sachverhalte. Zunächst tauschen wir uns über unser Verständnis einer guten Datenvisualisierung aus und nutzen hierfür Alberto Cairos’ fünf Eigenschaften-Modell: Truthful, Functional, Beautiful, Insightful und Enlightment. Anschließend geht es um Best Practices auf Grundlage langjähriger Forschung (siehe Graphical Perception von 1984), wie Informationen durch Positionen, Längen, Winkel, Flächen und Farben enkodiert werden sollten.
In der Folge werden sowohl klassische Darstellungsformen wie Balken, Torten, Linien und Streudiagramme mit Vor- und Nachteilen besprochen, wie auch eher unbekannte aber sehr mächtige Darstellungen durch Tree Maps, Violin- und Beeswarm-Plots, Sankey Diagramme, Heatmaps und Small Multiples.
Weitere Themen sind der Umgang und die geeignete Darstellung von Unsicherheiten, unterschiedliche Karten-Projektionen sowie geeignete Tools und Bibliotheken um Karten zu visualisieren.
Weitere Links:
ARD Morgenmagazine BalkendarstellungDataVizCatalogue - Überblick über konventionelle Typen:https://www.xeno.graphics/ - Überblick über ungewöhnliche Formen:Financial Times Visual Vocabulary - Entscheidungshilfe / welche Visualisierungsform passt?Hans Rosling’s Vortrag
Tools:
DataWrapperQGISAdobe IllustratorRAWGraphsAI2HTML (NewYork Times)Altair - Python Plotting Bibliothek
4/6/2022 • 2 hours, 17 minutes, 9 seconds
#36 NLP Update: Attention & Big Science
Natürliche Sprachverarbeitung (NLP) war bereits vor 2 Jahren das Thema einer Techtiefen Podcast-Triologie. Seit dem hat sich aber sehr viel getan, insbesondere Transfer-Learning und die Transformer Technologie haben mächtige Modelle wie Bert oder GPT ermöglicht, es wird also höchste Zeit für ein Update. Wer zuerst noch einmal die Grundlagen auffrischen möchte, dem sei [Techtiefen [NLP] Moderne Sprachverarbeitung](https://techtiefen.de/nlp-moderne-sprachverarbeitung/) empfohlen.
Experte dieser Folge ist Nils Reimers, NLP Forscher bei Huggingface und Autor der [Sentence-Transformers Library](https://github.com/UKPLab/sentence-transformers/). Er erklärt zunächst die wichtigen Neuheiten der vergangen Jahre wie etwa Transfer Learning, Attention, Transfomer und Neuheiten bei Tokenization Strategien. Anschließend sprechen wir darüber, wie man am besten aus einem Text variabler Länge Vektoren mit fixer Dimensionalität bestimmt. Diese so bestimmten Vektoren sind dann Grundlage für anspruchsvolle Aufgaben wie Text-Clustering, Semantische Suche oder Question-Answering Aufgaben. Auch besprechen wir, wie man einsprachige Modelle mit Hilfe eines Teacher-Student Verfahrens in fremde Sprachen übertragen kann.
Abschließend berichtet Nils vom [Big Science Projekt](https://bigscience.huggingface.co/en/#!index.md), einem einjährigen Workshop bei dem 500 Personen aus über 50 Ländern mitarbeiten um gemeinsam auf einem französischen Supercomputer das größte bisher berechnete Sprachmodell zu berechnen. Anders als bei GPT wird sowohl das Modell, wie auch der Prozess dieses zu erstellen offen und transparent. Besonders ist dabei auch der Ansatz, spannende Forschungsfragen bereits vor dem Modelltraining zu formulieren.
Links:
- Paper von Nils über die wir gesprochen haben:
- [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](https://arxiv.org/pdf/1908.10084.pdf)
- [Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation](https://arxiv.org/pdf/2004.09813.pdf)
- [BigScience Projekt](https://bigscience.huggingface.co/en/#!index.md)
- [Sentence-Transformers Library](https://github.com/UKPLab/sentence-transformers/)
- [Huggingface](https://huggingface.co/course/chapter1) Online-Kurs
7/21/2021 • 1 hour, 34 minutes, 45 seconds
#35 Entwicklertools erstellen
Techtiefen 35 wird etwas Meta und behandelt keine Technologie direkt, sondern thematisiert mit Florian Wetschoreck was es bedeutet ein Arbeitstool für andere Entwickler zu entwickeln. Florian ist Mitgründer von 8080Labs, die nicht nur an der Pandas-GUI bamboolib arbeiten, sondern auch Pakete wie pyforest und den ppscore veröffentlicht haben.\n\nFlorian erzählt zu Beginn, wie es zur Idee kam, eine einfachere, interaktive Bedienoberfläche für das Daten-Transformationstool Pandas zu entwicklen und wie er seine Masterarbeit nutzte, um die Idee zu verwirklichen. Dabei setzte er stark auf die Contextual Inquiry, eine Methodik bei der er den Nutzer zunächst über einen längeren Zeitraum passiv bei seiner Arbeit beobachtet und ihn erst im Anschluss dazu befragt, warum er Aktionen wie durchgeführt hat. Bei diesen Beobachtungen entstand auch die einfache Erkenntnis, dass fehlende import Statements immer wieder ein Grund für einfache Fehler sind, welche zwar schnell gelöst werden können aber den Workflow unterbrechen. So kam es etwa zu pyforest, einer kleinen Bibliothek das fehlende Tools unter den gängigen Namenskonventionen import, sollten sie genutzt aber nicht importiert worden sein.\n\nNeben Fragen zur Produktentwicklung geht es auch um Themen wie Monetarisierung und die Erkentniss, dass in der Regel nicht Entwickler selbst sondern ihre Unternehmen für ihre Tools zahlen, was dazu führt, das Bambolib 1.0 in der Basisversion frei verfügbar ist und nur für spezielle Features wie etwas Plugins die typischerweise im Unternehmen eingesetzt werden eine Lizenz notwndig ist. \n\nAuch wenn der Podcast ein grobes Verständnis für datenzentrierte Arbeiten und Jupyter Notebooks voraussetzt (hört in Folge 34 rein, wenn euch das noch nichts sagt), ist er vermutlich etwas weniger technisch und einfacher zu konsumieren als andere Folgen. Ansonsten sei euch noch Florians Artikel "RIP correlation. Introducing the Predictive Power Score" empfohlen, viel Spaß beim hören, lesen und ausprobieren.\n
4/19/2021 • 1 hour, 15 minutes, 47 seconds
#34 Jupyter Notebooks
Notebooks sind im Data Science Umfeld allgegenwärtig, in anderen Bereichen der Informatik aber vielleicht noch weitgehend unbekannt. Deshalb erklärt Nico mit seinen Gästen Hans Fangohr und Harald Schilly sowohl was Notebooks überhaupt sind und wie sich das Arbeiten damit anfühlt, geben aber auch zahlreiche Tipps und Empfehlungen für erfahrene Nutzer.
Notebooks können in vielen Szenarien eingesetzt werden. Durch die Kombination von Dokumentation und ausführbarem Code eignen sie sich natürlich hervorragend für Schulungen, aber auch für die Dokumentation von Projekten und explorative und forschungslastigen Arbeiten. Zwar existieren zahlreiche Implementierungen von Notebooks (etwa Googles Colab oder Apache Zeppelin), das Jupyter-Ökosystem bestehend aus den klassischen Notebooks, dem Lab sowie dem Hub. Sie eint die gemeinsame Entstehungsgeschichte basierend auf der IPython-Konsole sowie das gemeinsame, JSON-basierte Dateiformat iypnb
Dieses Dateiformat ermöglicht einen flüssigen Übergang zwischen verschiedenen Notebook-Implementierungen, die Ausführlichkeit sowie die Klammer-Struktur erschwert aber Versionskontrolle und macht Merge-Requests unübersichtlich. Wir unterhalten uns ausführlich über verschiedene Ansätze, etwa zu alternativen Formaten wie RMarkdown und dem percent-format und deren Synchroni JupyText.
3/5/2021 • 1 hour, 38 minutes, 13 seconds
#33 Postgres als DWH
PostgreSQL (Postgres) gilt als die fortschrittlichste und mächtigste Open Source Datenbank. Dank breiter Unterstützung des SQL-Standards, langjähriger Stabilität und einer großen Community ist sie heute häufig die erste Wahl zur Speicherung tabellarischer Daten.
Hans-Jürgen Schönig arbeitet seit über 20 Jahren als Postgres Consultant und beschreibt im Podcast, wo die Stärken der relationalen Datenbank liegen und wie Transaktionssicherheit für DDLs das Handling großer Systeme erleichtert. Zudem erklärt er, wieso man Performance-Bottlenecks nicht in Load-Graphen sondern in den Abfragen selbst suchen soll und gibt Tipps um die Ausführungszeiten jener zu reduzieren.
Anders als analytische Datenbanken oder etwa Apache Parquet (Folge 31) ist Postgres zeilenorientiert. Dank der Erweiterung Postgres in vielerlei Hinsicht zu erweitern, bietet sich dennoch die Möglichkeit Postgres auch für analytische Workloads wie etwa im DWH-Umfeld einzusetzen. Thomas Richter hat hierfür (Swarm64) gegründet, ein Startup das Postgres um einen Columnstore Index erweitert und mit zusätzlichen Statistiken und Operatoren die Planung und Ausführungszeit von Abfragen reduziert. Thomas gibt im Podcast hierfür Einblicke wie Postgres Abfragen parallel ausführt ohne Konsistenz-Garantien zu verletzen.
Abschließend vergleichen wir gemeinsam die Performance von Postgres mit kommerziellen Konkurrenzprodukten und open source Alternativen wie Greenplum.
1/13/2021 • 1 hour, 25 minutes, 15 seconds
#32 AutoML
Marius Lindauer ist Professor an der Universität Hannover und einer der Köpfe hinter AutoML.org, einer der renommiertesten Forschungsgruppen auf dem Gebiet, die unter anderem Auto-sklearn, Auto-PyTorch und SMAC entwickelt hat. Er erläutert uns, wie AutoML unterfahrenen Nutzern das Training von state-of-the-art Machine Learning Modellen ermöglicht und Data Scientist als mächtiges Werkzeug dienen kann.
Zunächst besprechen wir am Beispiel des Hyperparameter Tunings welche Verfahren existieren, um automatisch die richtigen Modellkonfiguration aus dem hochdimensionalen Parameterraum auszuwählen. Die statischen Grid- und Random Search Verfahren sind zwar gut parallelisierbar, jedoch sind evolutionäre und bayesian Verfahren durch die Nutzung eines intelligenten Meta-Learners wesentlich effizienter.
AutoML bedeutet jedoch nicht nur die Optimierung von Hyperparametern, sondern die integrierte Optimierung der gesamten Machine-Learning Pipeline, vom Feature-Preprocessing, über das Modelltraining bis hin zum effizienten Tuning und Stacking. Wir besprechen, wie AutoML von den ersten Ansätzen im Bereich Neuroevolution sich weiterentwickelt hat und mit Google AutoML seinen "ImageNet Moment" erlebt hat. Wir besprechen zudem die aktuell gängigsten Frameworks: Auto-sklearn, Auto-PyTorch, AutoKeras, AutoGluon, TeaPot und AutoWeka.
Links:
AutoML Buch von AutoML.orgAutoML in der Cloud Blog Artikel von NicoAutoML BenchmarkKI-Campus Online-Kurs zu AutoML
12/16/2020 • 1 hour, 54 minutes, 13 seconds
#31 Effiziente Datenverarbeitung
Uwe Korn ist Data Engineer und engagiert sich seit mehreren Jahren in verschiedenen Open Source Projekten, insbesondere Apache Parquet und Apache Arrow.
Apache Parquet ist ein spaltenorientiertes Speicherformat für tabellarische Daten, mit einer guten Schreib- und Leseperformance für Batch-Prozesse. Parquet erfasst dazu beim Schreiben die Datentypen und zahlreiche Metriken, um mit eingebauter Komprimierung die Dateigröße deutlich zu komprimieren. Dazu reden wir auch über andere Datenformate wie Avro, CSV, ORC, Hdf5 und Feather.
Apache Arrow ist ein In-Memory Speicherformat für Daten, welches die Brücke zwischen zahlreichen den Programmiersprachen schlägt. Dadurch wird es möglich, in C-Code, Java, Rust oder einer der anderen implementierten Sprachen auf die gleichen Daten zuzugreifen. Uwe erklärt uns, wie diese Sprach-Brücke funktioniert und wie Arrow zukünftig nicht nur zur Haltung sondern auch zur Verarbeitung von Daten eingesetzt werden kann.
Zum Abschluss befrage ich Uwe zu seinem Engagement im Open Source Umfeld. Wie hat er den Einstieg gefunden? Wie lässt sich Open Source mit Beruf und Privatleben vereinbaren? Und worauf sollte man achten, wenn man selbst ein Open Source Projekt unterstützen möchte?
Weiter Links:
ChanZuckerberg-Stiftung unterstützen Arrow
11/30/2020 • 1 hour, 18 minutes, 18 seconds
#30 Fuzzing
Fuzzing ist neben statischer und dynamischer Code-Analyse eine Methodik, um qualitativ hochwertigen und fehlerfreien Softwarecode zu erzeugen. Anders als bei Unit-Tests werden beim Fuzzy Testing Testfälle nicht manuell definiert, sondern anhand von statistischen Funktionen zufällig erzeugt. Durch eine hohe Anzahl der so generierten Tests wird das Programm auch auf außergewöhnliche Eingabeparameter getestet, welche häufig Sicherheitsschwachstellen darstellen und daher Angreifern genutzt werden.
Mit Sergej Dechand rede ich über fehlerfreien und somit sicheren Softwarecode und welche Arten von Code-Analyse dazu wie beitragen können. Er erzhält von der Entwicklung des Fuzzy Testing, welche bereits bei zufälllig gewählten Lochkarten ihren Ursprung hat, zwischenzeitig an Bedeutung verlor, derzeit aber große Erfolge vorweisen kann. Dies liegt zum einen an technischen Weiterentwicklungen hin zu intelligenterem Fuzzing wie etwa AFL, welches brute-force Fuzzing mit genetische Algorithmen zur Auswahl vielversprechender Parameter kombiniert. Desweiteren sorgen Fuzzing-Initiativen der großen Tech-Player wie etwa OSS-Fuzz für aufsehen, da sie immense Mengen bisher unerkannter Sicherheitslücken in open-source Software aufdeckt. Sergej erklärt darüber hinaus auch, wie Fuzzing am besten instrumentiert wird, wohin die aktuelle Forschung zielt und wo derzeit die größten Probleme in der Umsetzung liegen.
Sergej ist Mitgründer von Code-Intelligence, einem Startup welches Firmen bei der Umsetzung von Fuzzy Testing in der Praxis unterstützt.
9/4/2020 • 1 hour, 28 minutes, 8 seconds
#29 Recommender Systems
Recommendations, also Empfehlungen, sind mindestens so alt wie das Orakel von Delphi und der Hauptbestand zahlreicher Dienstleistungsberufe. Recomendation Systems hingegen sind ein spezieller Bereich des Information Retrieval und erst durch Amazon, Netflix und Spotify wirklich populär geworden. In dieser ausführlichen Techtiefenfolge erklärt Marcel Kurovski mit zahlreichen Beispielen das wesentliche Vorgehen dieser “Informationsaggregationsmaschinen”, welche von Collaborative Filtering über Matrixfaktorisierung bis zu Deep Learning reichen. Wir sprechen über die unterschiedlichen Stufen von Personalisierung und worin der Unterschied zur Suche besteht. Die Vor- und Nachteile von Relevanz als wichtigste Metrik für Recommender Systems kommen zur Sprache, genauso wie alternative Metriken wie Diversität, Novelty oder Robustheit, welche gerade zuletzt größeres Interesse erfahren. Marcel erzählt zudem einige Anekdoten aus der Geschichte der Recommender Systems und gibt einen Ausblick auf aktuelle Forschung und zukünftige Entwicklungen.
7/13/2020 • 2 hours, 9 minutes, 11 seconds
[Dev-Basics] CI / CD
Continous Integration (CI) und Continous Deployment (CD) sind die Verbindung der unterschiedlichen Schritte im Entwicklungsprozess. Mit entsprechenden CI/CD Pipelines lässt sich Quellcode schnell und automatisiert testen, bewerten, bauen und veröffentlichen. Mit Sebastian Messingfeld spreche ich darüber, wieso entsprechende Pipelines nicht nur ein Zeit- sondern auch ein Qualitäts- und Zufriedenheitsgewinn sind. Wir gehen gemeinsam durch die unterschiedlichen Schritte einer solchen Pipeline, von einfachem Quellcode Liniting bis hin zum Release im App Store. Dabei gehen wir auf die Besonderheiten unterschiedlicher Plattformen (iOS, Windows, Embedded...) ein und geben einige unserer persönlichen Erfahrungen Preis, um den Workflow individuell auf die persönlichen Anforderungen zuzuschneiden. Außerdem sprechen wir über die zahlreichen unterschiedlichen technischen Lösungsoptionen, von integrierter CI im Versionskontrollsystem über klassische CI Server wie Jenkins bis hin zu gehosteten Angeboten wie etwa Bitrise, CircleCI oder Azure DevOps.
**Links:**
* [Sebastians Vortrag](https://speakerdeck.com/messeb/cd-for-ios-projects)
* [Project Phoenix](https://www.oreilly.de/buecher/12508/9783958751750-projekt-phoenix.html)
* [GitLab CI (Nicos Favorit)](https://docs.gitlab.com/ee/ci/)
* [Sebastians CI-Empfehlungen](https://www.bitrise.io/)
5/14/2020 • 1 hour, 4 minutes, 3 seconds
[Dev-Basics] Testing
Tests gehören inzwischen zur modernen Software Entwicklung genauso wie sauberer Quellcode und Versionskontrolle. Rene Lengwinat erklärt in Folge 27 von Techtiefen warum Tests Quellcode nicht nur fehlerfreier und wartbarer machen, sondern auch zu einem besseren Design führen. Gemeinsam gehen wir durch die Test-Pyramide und besprechen die Vorteile von Unit-, Integrations- und End2End Tests sowie ihren favorisierten Einsatzzweck. Rene erklärt mir außerdem, wann testgetriebene Entwicklung wirklich praktikabel ist und was es mit Fuzzy Testing auf Sicht hat. Darüber hinaus wirft er einen Blick auf aktuelle Entwicklungen im Bereich Softwaretests, die Bedeutung von gutem Monitoring und Chaos Engineering.
Tests gehören inzwischen zur modernen Software Entwicklung genauso wie sauberer Quellcode und Versionskontrolle. Rene Lengwinat erklärt in Folge 27 von Techtiefen warum Tests Quellcode nicht nur fehlerfreier und wartbarer machen, sondern auch zu einem besseren Design führen. Gemeinsam gehen wir durch die Test-Pyramide und besprechen die Vorteile von Unit-, Integrations- und End2End Tests sowie ihren favorisierten Einsatzzweck. Rene erklärt mir außerdem, wann testgetriebene Entwicklung wirklich praktikabel ist und was es mit Fuzzy Testing auf Sicht hat. Darüber hinaus wirft er einen Blick auf aktuelle Entwicklungen im Bereich Softwaretests, die Bedeutung von gutem Monitoring und Chaos Engineering.
3/22/2020 • 1 hour, 5 minutes, 26 seconds
[Dev-Basics] Git
Der Umgang mit git oder einem anderen Versionskontrollsystem gehört zum Alltag von so ziemlich jedem Entwickler. git hat als dezentrales System gegenüber SVN oder Subversion zahlreiche Vorteile, ist jedoch auch sehr umfangreich und bietet auch erfahrenen Nutzern nach Jahren der Übung immer wieder neue Tricks, um sich noch effizienter in den persönlichen oder den Workflow des Teams einzufügen.
Mit Stefan Lengfeld spreche ich über das beliebte Versionskontrollsystem, seinen Ursprung und seinen generellen Aufbau, um einmal wirklich zu verstehen, was bei Befehlen wie `git checkout` unter der Shell passiert. Anschließend gehen wir auf die Kollaboration im Team ein, welche verschiedene Branching-Strategien notwendig macht. Stefan und ich berichten außerdem aus unserem Projektalltag und gehen dabei etwa auf das Develope-Master-Pattern ein und wie wir mit Hot-Fixes und Releases umgehen. Und zum Abschluss verraten wir euch dann noch unsere liebsten git Befehle, die unseren Alltag vereinfachen.
Links
Git Flow
Git Workflows podcast von Coding Blocks
3/8/2020 • 1 hour, 30 minutes, 25 seconds
[Dev-Basics] Clean Code
Clean Code bezeichnet Quellcode, der intuitiv verständlich ist und so zu stabileren und besser wartbaren Systemen führt. Der Begriff entstammt dem gleichnamigen Buch von Robert Cecil Martin (alias Uncle Bob), welches auch eine Vielzahl an Tipps und Praktiken bietet, welche ich mit Torsten Flatter gemeinsam Bespreche. Zunächst geht es um das bekanntlich schwierige Thema von guten Namen für Variablen und Funktionen und Lesbarkeit im Generellen. Anschließend sprechen wir darüber, was neben der Länge eine gute Funktion ausmacht und warum man nicht zu viel kommentieren sollte. Wir sprechen außerdem über Struktur von Software Code, wie vertikale Sortierung und maximale Zeilenbreite, und widmen uns diversen Prinzipien wie das KISS- und das SOLID-Prinzip.
2/23/2020 • 1 hour, 8 minutes, 47 seconds
[cloud] Private Cloud mit OpenStack
Die abschließende Folge des Reihe rund um Software Deployment und Cloud geht architektonisch in die Tiefe. Nils Domrose berichtet davon, wie er mit seinem Team ein eigenes Cloud-Angebot aufgebaut hat und betreibt. Zunächst besprechen wir die Anforderungen, die es bei der Auswahl eines geeigneten Rechenzentrums zu berücksichtigen gilt. Neben Basisanforderungen wie Strom und Netzwerk besprechen wir auch, wie man an ausreichend IP-Adressen kommt und mit Fehlersituationen man kalkulieren muss. Anschließend geht es um die Planung von Hard- und Software. Hierbei gehen wir insbesondere auf OpenStack ein, ein open-source Projekt zum Betrieb einer Cloud-Infrastruktur. Nils erklärt dabei nicht nur die Grundlagen, sondern berichtet auch von den Abwägungen die sie zu ihrer Lösung gebracht haben und erzählt von Stolpersteinen und Herausforderungen auf diesem Weg.
11/11/2019 • 2 hours, 2 minutes, 40 seconds
[cloud] K8s, Serverless, Service Mesh
Die zweite Folge der Serie rund um Cloud und modernes Software Deployment widmet sich unterschiedlichen, derzeit sehr beliebten Strategien um Software bereitzustellen: Container / Kubernetes, Serverless Computing und innerhalb eines Service Meshes. Bevor wir in die Details gehen diskutieren wir zunächst darüber, was überhaupt gutes Software Deployment ist und worin die Unterschiede zwischen imperativen und deklarativen Vorgehensweisen liegen. Dann gibt es einige News aus der Kubernetes Welt, etwa zum Operator-Pattern und K Native. Danach besprechen wir, wo Serverless Computing anfängt und aufhört und erklären, welche Vorteile und Komplexitäten ein Service Mesh mit sich bringt.
10/28/2019 • 0
[cloud] Public Cloud
In der ersten Folge der neuen Serie rund um Cloud und modernes Software Deployment erklärt Alexander Thiel die wesentlichen Grundlagen von öffentlichen Cloud-Angeboten. Wir führen in grundlegende Konzepte wie Regions und Availability Zones ein und besprechen Basis-Terminologie wie SaaS, PaaS und IaaS. Alex und Nico berichten von den eigenen ersten Erfahrungen mit der Cloud und berichten von Migrations-Projekten. Anschließend gehen wir durch die wichtigsten Unterschiede zwischen einer Software Architektur auf eigener Hardware und in der Cloud und bewerten Vor- und Nachteile hinsichtlich Skalierbarkeit, Verfügbarkeit, Sicherheit, Ease-of-use und Kosten.
10/14/2019 • 1 hour, 19 minutes, 19 seconds
[NLP] Rasa
Die dritte Folge zu NLP wird noch angewandter: Zu Gast ist Tobias Wochinger von Rasa, mit dem wir gemeinsam einen Chat-Bot entwickeln möchten. Moderne Chat-Bots finden bereits vielfältig Verwendung, sowohl für die Beantwortung von Support Anfragen oder auch für das Buchen von Reisen müssen Sie aber den Kontext der Unterhaltung verstehen und Querverbindungen zwischen Informationen ziehen. Ein Chat-Bot vereinigt so zahlreiche NLP Herausforderungen wie Named-Entity-Recognition, Dependency Parsing und Intent Classification. Ganz praktisch erklärt mir Tobias, wie ich mit Rasa Stories und Actions anlege, um einen Techtiefen Chatbot zu bauen, der etwa Folgen zu einem Thema heraussuchen und abspielen kann. Ansonsten vermittelt die Folge einiges an generellem Wissen zu Chat-Bots und dem Design natürlicher Konversationen.
8/23/2019 • 1 hour, 6 minutes, 41 seconds
[NLP] SpaCy
In der zweiten Podcastfolge der Reihe zu natürlicher Sprachverarbeitung ist Ines Montani zu Gast, Entwicklerin von SpaCy und Mitgründerin von Prodigy. Zunächst sprechen wir generell über den Umgang mit Sprache, warum dieser so komplex ist und wie die open source Bibliothek spaCy hier hilft. Dabei geht es um typische Aufgaben wie Part of Speach Tagging, Lemmatization und Named Entity Recognition genauso wie um geeignete Einsatz-Szenarien in der Industrie. Des Weiteren gibt Ines Einblicke in ihre tägliche Arbeit am open source Tool und erklärt, warum NLP Modelle auch ohne GPU trainierbar sein müssen und Prodigy kein Interesse an den Daten seiner Kunden hat. Letztlich geben wir einen Überblick über das wachsende spaCy Ökosystem, einen Rückblick auf die spaCy in Real Life Konferenz und Ines gewährt einen Ausblick in zukünftige Entwicklungen bei spaCy und Prodigy.
SpaCy Online Kurs: https://course.spacy.io/
SpaCy IRL Videos: https://www.youtube.com/playlist?list=PLBmcuObd5An4UC6jvK_-eSl6jCvP1gwXc
Coreference Resolution: https://github.com/huggingface/neuralcoref
Sci-SpaCy: https://github.com/allenai/scispacy
8/8/2019 • 1 hour, 24 minutes, 57 seconds
[NLP] Moderne Sprachverarbeitung
Malte Pietsch und Timo Möller sind zwei der drei Gründer des NLP Startups DeepSet. In Folge 19 besprechen wir gemeinsam die wesentlichen Grundlagen moderner Sprachverarbeitung. Bevor wir aber auf tiefe Neuronale Netzwerke und Bert eingehen, diskutieren wir einige der typischen Aufgaben wie Named-Entity-Recognition oder Text-Classification. Wir besprechen die Entwicklungen der letzten Jahre, die etwa Word-Embeddings, Attention basierte Algorithmen und Transformer hervorgebracht haben. Die beiden Gründer berichten aber auch von den Herausforderungen die sie bewältigt haben, als sie eine deutsche Variante des derzeit beliebten Bert-Netzwerks trainiert haben.
Eine Übersicht über Entwicklungen im NLP Bereich: http://ruder.io/a-review-of-the-recent-history-of-nlp/
Grafische Erklärung von Transformern: http://jalammar.github.io/illustrated-transformer/
Das deutsche Bert Modell: https://deepset.ai/german-bert
7/25/2019 • 1 hour, 32 minutes, 55 seconds
#18 Fernerkundung mit multispektralen Satellitenbildern
Jens Leitloff und Felix Riese berichten in Folge 18 von ihrer Forschung am “Institut für Photogrammetrie und Fernerkundung” des Karlsruher Instituts für Technologie. Mit der Bestrebung Nachhaltigkeit zu stärken erforschen die beiden etwa Verfahren, um Wasserqualität anhand von Satellitenaufnahmen zu bewerten oder die Nutzung landwirtschaftlicher Flächen zu kartografieren. Hierfür kommen unterschiedlichste Verfahren zum Einsatz wie Radaraufnahmen oder multispektrale Bilderdaten, die mehr als die drei von Menschen wahrnehmbaren Farbkanäle erfassen. Außerdem geht es um Drohnen, Satelliten und zahlreiche ML-Verfahren wie Transfer- und Aktive Learning. Persönliche Erfahrungen von Jens und Felix im Umgang mit unterschiedlichen Datenmengen runden eine thematisch Breite und anschauliche Folge ab.
7/10/2019 • 1 hour, 17 minutes, 37 seconds
#17 Distributed Tracing
In Folge 17 erklärt Christian Rohmann, warum distributed tracing das Debugging von komplexen Anwendungen vereinfacht. Erst entwickeln wir ein Verständnis für Spans und Traces, um dann am Beispiel einer Web-Applikation ins Detail von distributed Tracing zu gehen. Außerdem werfen wir einen Blick auf Bekannte Implementierungen wie Zipkin und Jaeger, sowie auf die beiden Standardisierungsinitiativen OpenTracing und OpenCensus.
6/19/2019 • 1 hour, 24 minutes, 19 seconds
#16 Kotlin
Folge 16 behandelt mit Kotlin mal wieder eine Programmiersprache. Daniel Bälz erklärt die Vorzüge der JVM-Sprache die mit Java kombiniert werden kann und first-class citizen für Android ist. Wir besprechen spannende Neuerungen wie Null-Safety und wie mit Kotlin nativer Betriebssystem-Code geschrieben werden kann. Außerdem erklären zahlreiche Sprach-Features die weit verbreitet sind, aber in Java bislang noch fehlten und jetzt mit Kotlin ermöglicht werden, etwa Default- und Named Arguments und Top-Level Functions.
5/26/2019 • 1 hour, 39 minutes, 20 seconds
#15 Praktisches Machine Learning mit Python
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.
[Reuters Dataset](https://martin-thoma.com/nlp-reuters/)
[Pandas Profiling](https://github.com/pandas-profiling/pandas-profiling)
[Pathlib](https://docs.python.org/3/library/pathlib.html)
[Modin](https://github.com/modin-project/modin)
[Pandarallel](https://github.com/nalepae/pandarallel)
[Dask](https://dask.org/)
[Sklearn Pipelines](https://www.kaggle.com/baghern/a-deep-dive-into-sklearn-pipelines)
[Management von Machine Learning Modellen](https://www.inovex.de/blog/machine-learning-model-management/)
[kaggle](https://www.kaggle.com/)
4/29/2019 • 1 hour, 54 minutes, 57 seconds
#14 Linux
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 stets gehen wir aber auch auf praktische Entdeckungsreise, etwa durchsuchen wir mit htop die laufenden Systeme, erklären das Speichermanagement und diskutieren die Linux Dateistruktur.
Links
https://ubuntuusers.de/
http://www.linuxfromscratch.org/
https://idea.popcount.org/2012-12-11-linux-process-states/
Buch "Just for Fun" by Linux Torvalds and David Diamond
https://kernelnewbies.org/
3/22/2019 • 1 hour, 43 minutes, 15 seconds
#13 Data Engineering für Echtzeitdaten
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.
2/27/2019 • 1 hour, 27 minutes, 41 seconds
#12 Security für Web Applikationen
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.
1/31/2019 • 1 hour, 4 minutes, 31 seconds
#11 Quantencomputer
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: https://twitter.com/HeiQuSim
IBM Quantencomputer: https://www.research.ibm.com/ibm-q/
Basta Vortrag von Michael: https://www.youtube.com/watch?v=FLltg_fRWus
Scott Aaronson’s Blog: https://www.scottaaronson.com/blog/
Cirq Framework: https://github.com/quantumlib/Cirq
ProjectQ Framework: https://projectq.ch/
12/22/2018 • 1 hour, 21 minutes, 17 seconds
#10 Rust
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.
10/8/2018 • 1 hour, 39 minutes, 49 seconds
#9 Kubernetes für Entwickler
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.
8/30/2018 • 1 hour, 26 minutes, 38 seconds
#8 Multi-Model Databases
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.
7/20/2018 • 1 hour, 13 minutes, 46 seconds
#7 Infrastructure as Code
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.
6/29/2018 • 1 hour, 26 minutes, 56 seconds
#6 Computer Vision
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
6/8/2018 • 1 hour, 10 minutes, 55 seconds
#5 Geschichte der Webentwicklung
Folge 5 versucht den großen Bogen von den Anfängen des Internets bis hin zu moderner Webentwicklung zu spannen. Dabei geht es nach kurzem Rückblick auf das Internet der 90er um statische Webseiten mit HTML und CSS. Der Unterschied zwischen Serverseitiger Webentwicklung via PHP wird genauso erklärt wie Javascript als Programmiersprache im Webbrowser. Wir berichten von unseren ersten Erfahrungen mit Content Management Systemen und JS-Bibliotheken wie jQuery. Dann geht es in Richtung moderner Webentwicklung mit Frameworks wie Angular, Single Page Applikationen und dem Mobile First Ansatz. Danach diskutieren wir über die Build-Pipeline welche etwa NPM, Gulp und Typescript-Transpiler einschließt, bevor wir noch einen Blick in die Zukunft wagen, insbesondere am Beispiel von WebComponents.
5/5/2018 • 1 hour, 55 minutes, 33 seconds
#4 Python für Data Science
In Folge 4 stellen Marcel und Alexandra ihre Arbeit als Data Scientist mit Python vor. Wir reden über die verschiedenen Frameworks wie Numpy, SciPy, scikit-learn u.v.m. Dazu erklären wir Grundlagen des Maschinellen Lernens, unterschiedliche Problemstellungen, Lernalgorithmen und Metriken. Auch Deep-Learning, die explorative Analyse mit Notebooks und die Python Distribution Conda kommen zur Sprache.
3/29/2018 • 0
#3 Elasticsearch
In dieser Folge erklärt Wolfang, warum sich Elasticsearch als Mischung aus Datenbank und Suchmaschine perfekt für die Arbeit mit großen Textmengen eignet. Basierend auf der Java Textsuch-Bibliothek Apache Lucene bietet Elasticsearch alles was es zum performanten Verarbeiten von Softwarelogs, Chatprotokollen oder einer privaten Gedichtsammlung bedarf: Eine skalierenden Server-Infrastruktur, performanter Indizierung und Textverarbeitungsfunktionalitäten wie Stemming und Lemmatization. Der Zugriff erfolgt über eine REST-Schnittstelle oder geeignete Tools aus dem Elastic-Universum, das auch weitere Komponenten zur Datenaggregation und Visualisierung bietet. Kurz wird entsprechend auch auf Beats, LogStash und Kibana eingegangen.
3/13/2018 • 1 hour, 33 minutes, 17 seconds
#2 Go
Igor Lankin führt in dieser Folge in die Programmiersprache Go ein, die 2009 von Google vorgestellt wurde und verglichen mit C ähnliche Geschwindigkeiten bei niedriger Komplexität ermöglichen soll. Nach einer Einführung in die wesentlichen Elemente wie Slices und Structs geht es um Exception Handling und Dependency Management. Igor erklärt zudem, warum Go insbesondere für Multi-Core Programmierung geeignet ist und wo aus seiner Sicht Go (noch) Probleme hat.
3/1/2018 • 1 hour, 20 minutes, 6 seconds
#1 Docker
Mit Benjamin Stein geht es um die Container-Technologie Docker, die seit 2013 vieles in der IT-Landschaft maßgeblich verändert hat. Ein Docker Container ist leichtgewichtiger als eine virtuelle Maschine und bietet dennoch eine vollständige Systemumgebungen für die Applikation. Auf diese Weise kann sichergestellt werden, dass sich die Applikation lokal bei der Entwicklung genauso verhält wie im produktiven Einsatz auf einem Server. Auch bringt diese Technologie Entwicklung und Betrieb im DevOps Sinn weiter zusammen.
Hier die Inhalte des Gesprächs (Kapitelmarken gibt es ab der nächsten Folge):
5:39 Docker vs. Virtuelle Maschinen
11:07 Walk-Through
26:57 Mehrere Container
30:56 Docker-Compose
32:59 Networking
37:17 Storage
48:12 Allgemein Vorteile
53:28 Skalierung
56:13 Kubernetes