Rührstäbchen zuhauf

Seit August 2015 hat die Squeng AG ein eigenes Büro. In den knapp 15 Monaten haben ich und meine sporadischen Gäste eine Hunderterpackung Rührstäbchen (für ☕) verbraucht. Und schon vor Monaten habe ich mit dem Kauf einer Zweitausenderschachtel Rührstäbchen also einen Vorrat angelegt, der bis zu meiner Pensionierung reichen dürfte …

Datenbankverwaltungssysteme

Mein bevorzugtes Datenbankverwaltungssystem (database management system, DBMS) ist nun schon seit über fünf Jahren MongoDB. Es läuft (nebst S3 ninja) zu Entwicklungszwecken lokal auf meinem Computer. Im Produktivbetrieb kann ich MongoDB as a Service von MongoDB, Inc. selbst, von mLab, von Compose, von meinem JVM as a Service-Anbieter, von Swisscom u.v.a.m. beziehen – für den Testbetrieb (oder zumindest für eine Evaluation) nicht selten kostenlos. Ausserdem gibt es sehr gute deutschsprachige und englischsprachige Fachliteratur zu MongoDB.

Doch auch MongoDB ist nicht für jede Anwendung das geeignetste DBMS. Deshalb setzte ich mich mal wieder mit anderen DBMS-Ansätzen auseinander und zwar sowohl mit dem klassischen als auch mit modernen. Das mache ich durch das Studium von “Relationale Datenbanken” bzw. “Next Generation Databases”, die ich beide empfehlen kann.

DevOps

Jährlich gibt der State of DevOps Report wertvolle Denkanstösse zur Software-Entwicklung (Dev) und zum Software-Betrieb (Ops). Und der diesjährige ist keine Ausnahme.

Obwohl ich kein Freund von in Unterhaltungslektüre verpackten Sachbüchern bin, soll The Phoenix Project nicht unerwähnt bleiben, falls jemand einen sanften Einstieg ins Thema DevOps in Form von Bettlektüre sucht. Wer es lieber konkreter mag, ist mit Sachbüchern zu Continuous Integration, Continuous Delivery und Continuous Deployment besser bedient.

Und auch Firmen aus einer streng regulierten Branche wie dem Finanzwesen müssen nicht aussen vor bleiben. DevOps ist durchaus vereinbar mit ihrer Welt.

Bitcoin, Blockchain und Bücher

Die Themen Blockchain im Allgemeinen und Bitcoin im Speziellen habe ich lange vor mich hergeschoben. Sporadisch habe ich zwar Vorträge besucht (vor gut zwei Jahren die Vorträge von Luzius Meisser und Thorsten Hens an einer New Media Session bei Tamedia und vor gut zwei Monaten den Vortrag von Andreas Antonopoulos am START Summit) und Artikel gelesen (wie The Blockchain Application Stack meistens via Fred Wilson), aber mir nie eine eigene Meinung gebildet. Das wollte ich diesen Frühling ändern.

Im April habe ich deshalb The Age of Cryptocurrency gelesen und im Mai Blockchain Revolution. Ersteres kann ich auch einer nicht-technischen Leserschaft wärmstens empfehlen. Letzteres habe ich nur bis zur Hälfte gelesen und den Kauf und vor allem die investierte Zeit bereut: zigmal wird nämlich -überspitzt zusammengefasst- behauptet, dass Blockchain + Magic Dust = Silver Bullet, ohne dass die Blockchain erklärt oder der Magic Dust plausibilisiert wird. Es ist fast schon erstaunlich, dass die Autoren trotz des Hypes um das Buch und in dem Buch nicht auch noch behauptet haben, dass Blockchain-Technologie sämtliche Krankheiten ohne Nebeneffekte heilen wird …

Im Sommer werde ich nochmals einen neuen Anlauf nehmen müssen, diesmal aber auf der Basis einer technischen Quelle. Nichtsdestotrotz wage ich auf wackeliger Grundlage eine erste Einschätzung:

  • Pessimistisch:
    • Bitcoin ist bereits die Killer-App der Blockchain, es wird nicht viele weitere geben. (Ob sich Bitcoin deshalb zu einem guten Geld- oder Gold-Ersatz mausern wird, weiss ich leider nicht.)
    • Die Blockchain leidet wie sämtliche schlüssel-basierten kryptographischen Systeme unter dem Problem der Schlüssel-Verwaltung, was ihren theoretischen Eigenschaften praktische Grenzen setzt. (An dieser Stelle sei mal wieder verwiesen auf Cryptography Engineering.) Denn auch wenn ein Public Key direkt als Pseudonym fungiert, kann der zugehörige Private Key verloren gehen oder missbraucht werden. Oder wer hat noch nie weder ein Passwort vergessen noch einen physischen Schlüssel verloren?
      Und ich hege den Verdacht, dass viele Nicht-Informatiker sich dieses Aspekts noch gar nicht bewusst sind, was in zu optimistischen Artikeln und Vorträgen (ab Minute 69) resultiert. (Blossstellen möchte ich mit den beiden Beispielen niemanden; es handelt sich schlicht & einfach um den letzten Artikel resp. Vortrag, an den ich mich gerade erinnern kann.)
    • VC-Fonds, die sich auf Bitcoin/Blockchain beschränken, sind ähnlich kurzsichtig wie Investoren, die seinerzeit nur noch auf Ruby-on-Rails-Projekte setzen wollten, obwohl es sich dabei schon damals um ein austauschbares Implementations-Detail gehandelt hatte.
  • Optimistisch:
    • Die Blockchain bietet eine lehrreiche Fallstudie für den Entwurf kryptographischer Protokolle und ihrer konkreten Umsetzung in Form von Software.
    • Die Blockchain wird weiterhin die Phantasie beflügeln und zu Ansätzen anregen, die bis vor kurzem wohl im Keim erstickt worden wären (z.B. über Organisationen verteilte Datenbanken mit hoher Transparenz für Bürger, Kunden usw. – unabhängig davon, ob man sie dann mit kryptographischen Bausteinen aus der Blockchain umsetzt oder anders).
    • Nicht selten liege ich falsch mit meinen Einschätzungen. 🙂

 

 

Scala, Java und C#

Vor knapp einem Jahr habe ich beschrieben, wie ich Scala lerne. In der Zwischenzeit würde ich für den Einstieg Pragmatic Scala empfehlen, nach wie vor gefolgt von Functional Programming in Scala. Programming Scala ist zwar nicht schlecht, aber nicht so gut wie erwartet und deshalb keine Pflichtlektüre mehr. Dafür freue ich mich schon auf die Nachfolger von Introduction to the Art of Programming Using Scala:

Vor einem Jahr hatte ich noch die Absicht, Java (als Programmiersprache) aufzugeben. Nicht zuletzt wegen eines Web-Engineering-Kundenprojekts mit Java, Play und MongoDB habe ich jedoch auch wieder Freude an Java (8!), so dass ich die Sprache nicht nur weiterpflegen, sondern aus reiner Neugierde auch Think Java lesen werde.

Und die diesjährige Build hat einmal mehr Lust auf C# und ASP.NET MVC (dessen Razor immerhin Vorbild für Plays Twirl ist) gemacht …

Apsi

Im Herbstsemester 2015 habe ich an der Hochschule für Technik der Fachhochschule Nordwestschweiz Software-Sicherheit unterrichtet.

Begonnen hatten wir mit Secure Coding. Danach folgte das Thema Web-Sicherheit. Und zum Schluss schnitten wir noch das Thema Privatheit an. Drei Höhepunkte waren die Gastvorträge von Dr. Patrick Schaller, Dr. Diana von Bidder und Dr. Roman Schlegel.

Wer sich auch für die Themen interessiert, der/dem empfehle ich die folgenden drei Bücher:

 

JavaScript et al.

Für ein Kundenprojekt musste ich diesen Monat meine JavaScript-Kenntnisse auffrischen. Das habe ich mit zwei Büchern gemacht:

  1. JavaScript für Java-Entwickler von Oliver Zeigermann
  2. A Software Engineer learns HTML5, JavaScript & jQuery von Dane Cameron (d.h. mit dem aktuelleren E-Book)

JavaScript für Java-Entwickler

JavaScript für Java-Entwickler ist ein kleines, dünnes Büchlein, dem es nicht nur gut gelingt, JavaScript kurz & bündig abzuhandeln (und zwar bis und mit ECMAScript 2015), sondern darüber hinaus auch noch in TypeScript einzuführen. Es ist vorbehaltlos allen des Deutschen mächtigen Java-Entwicklern zu empfehlen, die JavaScript lernen oder repetieren möchten. (Vom gleichen Autor gibt es auch JavaScript und TypeScript für C#-Entwickler.)

A Software Engineer learns HTML5, JavaScript & jQuery

A Software Engineer learns HTML5, JavaScript & jQuery ist auch zu empfehlen. Das JavaScript-Kapitel bietet zwar nicht die gleich gute Einführung wie JavaScript für Java-Entwickler. Dafür bietet das Buch u.a. noch eine Einführung in jQuery: In JavaScript zu programmieren empfinde ich nach wie vor als Qual (wie erwähnt ist mir starke, statische Typisierung wichtig), mit Browser-Unterschieden umzugehen erst recht; deshalb hatte ich schon vor Jahren bei Doodle jQuery eingeführt.