Kotlin-Buch erschienen

Mit der neuen Programmiersprache Kotlin ist der Firma JetBrains ein Geniestreich gelungen: Die Sprache vereint eine moderne Syntax mit JVM-Kompatibilität. Kotlin-Code kann deswegen überall dort ausgeführt werden, wo die Java Virtual Machine zur Verfügung steht. (JVM 8 ist vollkommen ausreichend!) Kotlin-Programme können sämtliche Java-Bibliotheken verwenden, wenn es nicht schon neue, für Kotlin optimierte Frameworks gibt.

Kurzum: Ohne die Kompatibilität zum Java-Universum zu verlieren, können Sie eine Programmiersprache nutzen, die keine Wünsche offen lässt:

  • Elegante Bearbeitung von Aufzählungen mit Lambda-Ausdrücken
  • Datenklassen, Computed Properties, Property Delegation
  • Nachträgliche Erweiterung von Klassen durch Extensions
  • Design eigener Type-safe Builder mit Receiver-Funktionen
  • Operator Overloading
  • Effiziente asynchrone Programmierung mit Koroutinen

Google hat deswegen für die App-Programmierung das Motto Kotlin first ausgerufen. Aber auch im Backend gewinnt Kotlin an Bedeutung, weil die Sprache eine schrittweise Modernisierung von über viele Jahre gewachsenem Code erlaubt.

In meinem neuen Buch »Kotlin. Das umfassende Handbuch« bringe ich meine Begeisterung für Kotlin zum Ausdruck. Ich erläutere Ihnen die Syntax (die in vielen Details überraschend anders ist als in Java), zeige Ihnen elementare Programmiertechniken (Koroutinen, I/O, Datenbankzugriff) und gehe auf zwei Kernanwendungsbereiche ein: auf die App-Entwicklung inklusive Jetpack Compose und auf die Backend-Programmierung mit Ktor und Exposed. Das alles wird durch viele Beispiele aufgelockert.

Mit Kotlin macht Programmieren wieder Spaß — sogar dann, wenn Sie im Java-Universum gefangen sind ;-)

Mehr Details zum Buch samt einer PDF mit Vorwort und Inhaltsverzeichnis finden Sie hier:

kofler.info/buecher/kotlin

KVM-Host mit Ubuntu einrichten

Ca. alle vier Jahre wiederholt sich das gleiche Spiel: Ich bestelle einen neuen Root-Server, installiere dort die aktuelle Version von Ubuntu Server LTS und richte das Virtualisierungssystem KVM ein. Sobald dieses läuft, migriere ich meine virtuellen Maschinen, zu denen unter anderem der Server für kofler.info zählt, auf den neuen Host. Die Down-Time beträgt in der Regel weniger als eine Stunde und ergibt sich durch den Zeitraum für die Aktualisierung der DNS-Einträge.

Mit dem Betrieb eines eigenen Virtualisierungssystem entspreche ich nicht ganz dem Cloud-Zeitgeist. Natürlich gibt es unzählige Hoster (an erster Stelle natürlich Amazon), die mir virtuelle Maschinen für den Betrieb von Linux-Installationen anbieten. Die Verwendung eines »echten« (sprich: altmodischen) Root-Servers kann allerdings eine Menge Geld sparen, bringt mehr Flexibilität mit sich und hält mein KVM-Know-how einigermaßen aktuell :-)

Dieser Artikel fasst die wichtigsten Details zur Konfiguration des KVM-Hosts (Ubuntu) sowie von virtuellen Maschinen (Ubuntu sowie RHEL/CentOS/Oracle) zusammen. Beachten Sie, dass einige Details der Netzwerkkonfiguration providerspezifisch sind und für Hetzner gelten.

KVM-Host mit Ubuntu einrichten weiterlesen

VSCode und SSH

Wenn Sie einmal an die Vorzüge von VSCode zu schätzen gelernt haben, möchten Sie diese auch dann nutzen, wenn Sie remote via SSH einen Server administrieren oder Code verfassen. VSCode läuft aber nur im Grafikmodus und kann daher nicht direkt in typischen Server-Installationen ausgeführt werden. Hier schlägt die Stunde von Editoren, die wie Vi oder Emacs im Textmodus laufen und daher auch in einer SSH-Session funktionieren …

Ich will Sie hier aber nicht von den Vorteilen alter Text-Modus-Editoren überzeugen, sondern Ihnen stattdessen die ausgesprochen praktische VSCode-Erweiterung Remote SSH vorstellen: Damit läuft VSCode weiterhin auf Ihrem lokalen Rechner. Via SSH können Sie nun die Dateien eines Remote-Verzeichnisses auflisten, bearbeiten, verändern und speichern — ganz so, als würden Sie lokale Dateien bearbeiten.

VSCode und SSH weiterlesen

SwiftUI

Im Frühjahr 2019 stellte Apple SwiftUI vor. Das ist eine neue Bibliothek, um grafische Benutzeroberflächen durch Swift-Code zusammenzusetzen. SwiftUI spart Millionen Maus- oder Trackpad-Bewegungen, die beim bisherigen Verfahren auf der Basis von UIKit erforderlich waren.

Mittlerweile ist SwiftUI einigermaßen praxistauglich. Zeit also, einen Blick auf neue Denkweisen und Paradigmen zu werfen! (Der präsentierte Code und die Screenshots beziehen sich auf Xcode 12 mit Swift 5.3.)

SwiftUI weiterlesen

Swift 5.3

Zusammen mit Xcode 12 hat Apple im September 2020 auch Swift 5.3 freigegeben. Die neueste Swift-Version zeichnet sich durch viele Verbesserungen »unter der Haube« aus (höhere Kompiliergeschwindigkeit, klarere Fehlermeldungen, bessere Einrückungen im Editor); neue Sprach-Features sind dagegen kaum zu finden. Dafür gibt es aber interessante Neuerungen im Swift-Umfeld, beispielsweise:

  • eine Windows-Version (die ich nicht getestet habe)
  • die neue Standardbibliothek »Swift System«, die vor allem für Linux-Entwickler interessant ist
  • die neue Bibliothek »Swift Atomics« für atomare Operationen in asynchronem Code
  • Verbesserungen beim Paketmanager

Ich beschränke mich im Folgenden auf die interessantesten neuen Features, die für die alltägliche Programmierung relevant sind.

Swift 5.3 weiterlesen

Kali Linux unter Windows (WSL2) im Grafikmodus

Kali Linux kann schon seit geraumer Zeit mittels WSL unter Windows ausgeführt werden. Ganz neu ist die Möglichkeit, Kali Linux in Kombination mit WSL2 auch im Grafikmodus zu nutzen. Das dazu erforderliche Paket kali-win-kex (Kex steht für Kali Desktop Experience) setzt dabei auf das bewährte Protokoll VNC.

Kali Linux unter Windows (WSL2) im Grafikmodus weiterlesen

USB-Boot für den Raspberry Pi 4

Seit Anfang September 2020 gibt es ein EEPROM-Update für den Raspberry Pi 4, das eine von älteren Modellen bekannte Funktion endlich auf für die Version 4 implementiert: Das Booten von externen USB-Datenträgern. Damit können Sie Ihren Raspberry Pi 4 ohne die auf Dauer oft unzuverlässige SD-Karte betreiben.

Testaufbau: Raspberry Pi 4B mit einer älteren SATA-SSD, die über ein USB-Kabel angeschlossen ist

USB-Boot für den Raspberry Pi 4 weiterlesen

Git-Buch erschienen

Als in den 1990er-Jahren Linux populär wurde, zählte ich zu den ersten deutschsprachigen Autoren, die dazu ein Buch verfassten. Insofern ist es ein wenig verwunderlich, dass ich mir mit einem Buch zu Linus Torvalds zweitem Meisterstück, der Versionsverwaltungs-Software Git, fast 15 Jahre Zeit ließ.

Dass das Git-Buch nun doch endlich zustande kam, ist vor allem der Hartnäckigkeit meines Lektors Christoph Meister zu verdanken. Schon vor mehr als einem Jahr setzten Bernd Öggl (mit dem ich zuletzt das Docker-Buch verfasst habe) und ich die Unterschrift auf den Vertrag. Verschiedene andere Projekte hielten das Buch mehrfach auf, aber jetzt ist es erschienen.

Bernd und ich haben das Gefühl, dass uns ein wirklich schönes Buch gelungen ist: Es beschreibt Git in seiner ganzen Breite, vom Einstieg in der Konsole oder mit Visual Studio Code bis hin zu fortgeschrittenen Themen wie Rebasing, CI-Pipelines oder LFS. Inhaltlich bleiben wir nicht bei der Git-Anwendung auf der Kommandoebene stehen, sondern gehen auch auf allgemeine Arbeitstechniken ein (z.B. Workflows) und zeigen, welche neuen Möglichkeiten sich im Zusammenspiel mit den großen Git-Plattformen ergeben (also GitHub, GitLab & Co.). Werfen Sie einen Blick in Vorwort und Inhaltsverzeichnis (PDF)!

Das Buch hat 416 Seiten und ist ab sofort beim Rheinwerk Verlag sowie in allen Buchhandlungen lieferbar.

Hier finden Sie weitere Informationen samt einer längeren Inhaltsbeschreibung, Errata, Beispieldateien etc.