Seit einem Monat gibt es den Raspberry Pi in einer Desktop-Ausführung. Das Gerät ist in eine Tastatur integriert, was Erinnerungen an die Home-Computer-Zeit wach werden lässt. Der Computer wird nicht zufällig mitten in der Corona-Epidemie ausgeliefert: Die Raspberry-Pi-Foundation hofft, dass das Gerät kostengünstig für das Home Schooling verwendet werden kann.
Linux-Kommandoreferenz in der 5. Auflage erschienen
Meine Linux-Kommandoreferenz ist soeben in der fünften Auflage erschienen:
544 Seiten, Hard-Cover
Preis: Euro 24,90 (in D inkl. MWSt.)
Dieses Buch enthält den Linux-Grundwortschatz für das Arbeiten im Terminal – über 500 Kommandos samt Optionen, Erläuterungen und Beispielen. Außerdem umfasst das Buch eine Referenz der wichtigsten Konfigurationsdateien sowie eine Zusammenstellung wichtiger Tastenkürzel.
In dieser Auflage habe ich wieder einige neue Kommandos aufgenommen: acme.sh, aws, boltctl, etherwake, fwupdmgr, gdebi, kbdrate, nft, rdfind, ubuntu-security-status, wakeonlan und wol. Außerdem habe ich die Beschreibung vieler Kommandos aktualisiert und mit zusätzlichen Beispielen versehen, unter anderem bei adduser, certbot, chcon, chsh, cryptsetup, diff, dmesg, dnf, du, find, firewallcmd, flatpak, git, grep, iptables, mysqldump, sudo, sysctl, wsl und zypper.
PS: Von allen meinen Büchern gibt es keines, das ich so oft selbst öffne (wenn auch in der Regel nur die PDF-Version auf meinem Computer). Trotz der Arbeit an fünf Auflagen und der regelmäßigen Anwendung vieler Kommandos scheitere ich daran, mir all die Kommando- und Optionsnamen dauerhaft auswendig zu merken. Sie sehen also: Dieses Buch habe ich nicht nur für Sie geschrieben, sondern auch für mich selbst :-)
Fedora 33
In Fedora 33 gibt es abseits der üblichen Versions-Updates drei vier grundlegende Neuerungen:
- Als minimaler Texteditor ist
nano
vorinstalliert, nichtvim
. Persönlich empfinde ich das als großen Fortschritt. Allevi
-Freunde müssen ebendnf install vim
ausführen (so wie ich nach jeder Linux-Installationdnf/apt install joe
ausführe, damit mir der Mini-Emacsjmacs
zur Verfügung steht). -
Das Defaultdateisystem für die Desktop-Version von Fedora lautet nun
btrfs
und nicht mehrext4
. (Details dazu folgen gleich.) -
Als lokaler DNS-Client kommt
systemd-resolved
zum Einsatz. -
Update 29.10.2020: Standardmäßig wird weder eine Swap-Datei noch eine Swap-Partition eingerichtet. Stattdessen werden bei Bedarf Datenblöcke komprimiert in ein ZRAM-Device ausgelagert.
Überraschenderweise wird Fedora in diesem Fall seiner Vorreiterrolle nur teilweise gerecht. (open)SUSE verwendet btrfs
schon seit Jahren standardmäßig. systemd-resolved
kommt wiederum in Ubuntu schon seit geraumer Zeit zum Einsatz (wenn ich mich recht erinnere, seit Version 18.04).
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:
Ubuntu 20.10
Das herausstechende Merkmal des neuesten Ubuntu-Releases 20.10 (»Groovy Gorilla«) ist das Hintergrundbild: cool, mutig und ein wenig gruselig. Persönlich wollte ich das nicht jeden Morgen sehen, bevor alle meine Fenster den Desktop zukleistern. Andere sind sicherlich begeistert …
Davon abgesehen gibt es natürlich auch ein paar technische Neuerungen:
KVM-Images platzsparend speichern und sichern
Mit dem Problem, Image-Dateien virtueller Maschinen platzsparend zu speichern, habe ich mich schon vor einigen Jahren in diesem Blog beschäftigt. Aber man lernt nie aus, weswegen ich Ihnen hier eine Variante der damals präsentierten Techniken sowie ein neues Verfahren vorstellen möchte :-)
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.
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.
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.)
Update Juni 2022: Das mit der Praxistauglichkeit ist so eine Sache. Viele SwiftUI-Entwickler sind vom Konzept begeistert, aber stoßen früher oder später auf schwer (oder gar nicht) überwindbare Hürden. Lesen Sie unbedingt https://mjtsai.com/blog/2022/05/24/swiftui-in-2022/, bevor Sie Ihr erstes SwiftUI-Projekt starten!
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.