Programmierblog von Johannes Dienst

Apache Spark 2.2.0: CSV-Dateien einlesen, bereinigen und erste Analysen durchführen

Posted by in Allgemein

Nachdem ich in meinem letzten Blog die Installation von Apache 2.2.0 unter Linux erklärt habe, will ich heute ein kleines Anwendungsbeispiel besprechen. Der Datensatz den ich verwende, enthält die Ergebnisse des Stackoverflow Developer Surveys 2017 im CSV-Format. Die Spark-Shell Verwendet man die Spark-Shell, dann brauchen die SparkSession und der SparkContext nicht initialisiert werden. Erstere wird in diesem Blog verwendet, um die Daten einzulesen, zu bereinigen und schließlich eine erste einfache Analyse durchzuführen. Die Frage, die ich mir gestellt habe, war: Was motiviert eigentlich Entwickler? Dazu habe ich den Fragenkatalog durchforstet…read more

0

Installation Apache Spark 2.2.0 (Linux)

Posted by in Allgemein, Grundlagen

Seit knapp einem Jahr will ich mit Apache Spark herumspielen. Bloß die richtige Spielwiese hat mir bisher gefehlt 😉 . Inzwischen habe ich sie gefunden, da ich für einen Blogpost die Ergebnisse des Stack Overflow Developer Survey 2017 analysieren wollte. In den nächsten Abschnitten beschreibe ich die Installation der im Moment aktuellsten Version 2.2.0 auf Linux. Sollte jemand unbedingt eine Anleitung für Windows benötigen, dann schreibt es in die Kommentare. Ich liefere sie gerne nach. JDK 8 installieren Zuerst gilt es, das Java 8 JDK zu installieren. Das bekommt man…read more

1

Vorbereitung eines Talks: Aufwendig!

Posted by in Allgemein, Konferenz, Vortrag

Auf Konferenzen sieht man Sprecher, die halten Ihren Talk mit einer Leichtigkeit und Selbstverständlichkeit, dass man neidisch werden kann. Seitdem ich selbst als Sprecher unterwegs bin, ist meine Bewunderung nur noch gestiegen. Das Lampenfieber packt mich auch nach zwei Jahren und unzähligen Vorträgen immer noch. Der Umgang damit wird aber leichter. Wer noch nie auf einer Konferenz gesprochen hat, erwartet als Teilnehmer sehr viel von den Sprechern. Und das zurecht, es wurde normalerweise viel Geld investiert, um Wissen vermittelt zu bekommen! In diesem Blogpost will ich kurz aufschlüsseln, wie lange…read more

0

Softwareentwicklung ist ein Kampf

Posted by in Allgemein, Rant, Softwarequalität

Hinweis: Dieser Post ist aus Frust entstanden und spiegelt meine subjektive Meinung wieder! Es gibt Tage und es gibt diese Tage. Und dann gibt es solche Tage wie heute. Eigentlich wollte ich etwas über eine weiteres kontrollflussorientiertes Testverfahren schreiben, aber wie eigentlich immer funktionierte die Installation eines Tools nicht! Das Entwicklerdilemma In den letzten Jahren saß ich wöchentlich mindestens 40 Stunden vor dem Rechner und sollte Arbeiten, Business value schaffen, wie man so schön sagt. Ich weiß nicht wie viele Stunden ich das tatsächlich getan habe. Ganz subjektiv war es…read more

0

Herbstcampus 2017: Erfahrungsbericht Tag 2

Posted by in Allgemein, Konferenz, Softwarequalität

Der Herbstcampus 2017 in Nürnberg ist für mich als gebürtigen Mittelfranken fast ein Heimspiel. Die Location ist bahnhofsnah und sehr einfach zu finden. Das Motto der Konferenz Wissenstransfer par excellence wurde tatsächlich gelebt und spiegelt sich vor allem in der Vortragslänge wieder. Ganze 70 Minuten hatte man als Vortragender Zeit sein Thema vorzustellen. Leider habe ich persönlich nur 60 Minuten geschafft. Ich hoffe aber, die vielen Fragen zufriedenstellend beantwortet zu haben. Auffallend war auch die Bandbreite an Themen, die im Angebot waren. Von reinen Entwicklerthemen wie dem Modulsystem von Java…read more

0

Präsentationen: Best Practices

Posted by in Konferenz, Vortrag

Manchen Sprechern hört man einfach gerne zu und bei anderen möchte man trotz eines interessanten Themas einfach nur den Raum verlassen. Viele Dinge beim Vortragen kommen mit der Zeit. Darunter fällt für mich die nötige Gelassenheit, eine klarere Ausdrucksweise und ein gewisser Witz. Diese Dinge können aus meiner Erfahrung die wenigstens Sprecher, die noch nicht lange vor Publikum sprechen. Das sieht man eher bei erfahrenen Sprechern mit mehreren Jahren Erfahrung. In den letzten beiden Jahren war ich auf vielen Konferenzen und habe sehr viele gute Vorträge angehört. Mit der Zeit…read more

0

Code Coverage am Beispiel: Pfadüberdeckung (Path Coverage)

Posted by in Grundlagen, Java, Softwarequalität, Testverfahren

In den letzten beiden Blogposts ging es um die Überdeckungsmaße Zweigüberdeckung und Zeilenüberdeckung. Die Zweigüberdeckung ist ein stärkeres Maß für die Qualität der Abdeckung, da sie die Zeilenüberdeckung enthält. Sie ist also eine echte Obermenge. Die Pfadüberdeckung ist wiederum eine echte Obermenge der Zweigüberdeckung und ist damit als das härteste Maß der Überdeckungsmessung zu betrachten. In diesem Post wird zuerst wieder an einem Beispiel die Pfadüberdeckung vorgestellt. Ziel ist es, eine vollständige Pfadüberdeckung durch die vorhandene Testsuite zu erreichen. Auf los geht’s los 🙂 Pfadüberdeckung die Theorie: Vollständig Die Pfadüberdeckung…read more

0

Code Coverage am Beispiel: Zweigüberdeckungs (Branch Coverage)

Posted by in Grundlagen, Java, Softwarequalität, Testverfahren

Im letzten Blog ging es um Zeilenüberdeckung. Ich habe gezeigt, wie man sie am Beispiel des Game of Life von Conway einsetzt, um bessere Tests zu schreiben, die jede Anweisung mindestens einmal ausführen. In diesem Teil möchte ich zuerst zeigen, warum die Zeilenüberdeckung zwar eine sinnvolle Metrik ist, aber doch nicht ausreicht, um die Qualität der Testsuite abzusichern. Das lässt sich sehr leicht an einem Fehler zeigen, den die bisherigen Tests nicht gefunden haben. Als Zweites möchte ich auf die Zweigüberdeckung eingehen. Diese ist eine echte Obermenge der Zeilenüberdeckung und…read more

0

Code Coverage am Beispiel: Zeilenüberdeckung (Line Coverage)

Posted by in Grundlagen, Softwarequalität, Testverfahren

Wie letzte Woche angekündigt, werde ich diese Woche beginnen, die verschiedenen Überdeckungsmaße für Code vorzustellen. Als Beispielprojekt habe ich mir das Game of Life von Conway ausgesucht, was als interessante Übungsaufgabe Einiges an Logik hergibt. Eine einfache Zelle Die Regeln für Conways Game of Life sind sehr einfach: Eine tote Zelle wird in der nächsten Generation belebt, wenn sie genau drei lebende Nachbarzellen hat Eine lebende Zelle lebt in der nächsten Generation weiter, wenn sie genau drei oder weniger als drei lebende Nachbarzellen besitzt Eine lebende Zelle stirbt in der…read more

0

Das Ziel von Mutationstesten

Posted by in Softwarequalität, Testverfahren

Mit das Interessanteste an einem Vortrag sind die anschließenden Fragen. Beim letzten Mal hatte ich das Gefühl die Fragen zum Mutationstesten nicht zufriedenstellend beantwortet zu haben. Deswegen versuche ich das, in den nächsten Blogs nachzuholen. Die ersten beiden Fragen waren: Kann durch eine Mutation nicht etwas Gutes entstehen? Was passiert, wenn sich zwei Mutationen gegenseitig ausschalten? Gutes durch Mutationen? Mutationstesten führt Änderungen in den Sourcecode ein, die syntaktisch korrekt sind. Diese Änderungen verändern jedoch die Semantik der Codebasis auf jeweils kleine Weise. Danach wird für jede einzelne Mutante überprüft, ob…read more

0