Gestern hat Mark Shuttleworth angekündigt: Ubuntu 18.04 wird ohne Unity und mit Gnome als Basis erscheinen. Das Ubuntu Phone und das Convergence-Modell ist tot, die Zukunft für Ubuntu befindet sich auf dem Server, in der Cloud und in Cloud-Services. Dieser Paukenschlag kam überraschend, und er lässt viele Fragen offen.
Bildschirmschoner des Raspberry Pi richtig konfigurieren
Nach zehn Minuten ohne Tastatur- und Mausaktivität aktiviert sich unter Raspbian der Bildschirmschoner. Damit wird der Bildschirminhalt zwar schwarz, der Monitor läuft aber weiter. So macht der Bildschirmschoner aber wenig Sinn und führt im Gegenteil dazu, dass ein Monitor, der ein schwarzes Bild zeigt, unbeabsichtigt länger läuft als notwendig.
In der Vergangenheit lag das daran, dass Raspbian wegen eines fehlenden Treibers nicht in der Lage war, das HDMI-Signal richtig abzuschalten. Kaum bekannt ist, dass dieses Problem seit Herbst 2016 gelöst ist:
https://github.com/raspberrypi/linux/issues/487
Aufgrund von Kompatibilitätsbedenken mit einigen Programmen (z.B. omxplayer
) ist das HDMI-Blanking aber weiterhin standardmäßig nicht aktiv. Und so verschwenden bis heute unzählige Monitore, die an den Raspberry Pi angeschlossen sind, oft unnötig Strom.
Dabei lässt sich das Problem in einer Minute lösen: Starten Sie mit root-Rechten einen Editor zur Bearbeitung der Datei /boot/config.txt
(z.B. mit sudo leadpad /boot/config.txt
) und fügen Sie am Ende der Datei eine Zeile hinzu:
# am Ende von /boot/config.txt
...
hdmi_blanking=1
Ein Neustart und nach 10 Minuten ohne Aktivität wird der Monitor wirklich abgeschaltet!
Swift 3.1
Mit Xcode 8.3/Swift 3.1 hat Apple ein Mini-Release herausgebracht. Swift 3.1 ist zu 99,99% kompatibel zu Swift 3.0, hat aber ein paar kleine neue Features dazubekommen. Richtig Bewegung in die Swift-Entwicklung wird erst im Herbst kommen, wenn Swift 4.0 fertig wird. (Daran wird hinter den Kulissen schon eifrig gearbeitet, aber in Swift 3.1 ist das noch nicht zu sehen.)
Update: Linux on Windows (WSL) für Windows 1703
Zweimal habe ich mir das Windows Subsystem for Linux (WSL), umgangssprachlich Linux on Windows schon angesehen: Das erste Mal vor knapp einem Jahr hier im Blog, ein zweites Mal im Herbst 2016 für derstandard.at. Insofern beschränke ich mich hier auf eine Zusammenfassung der Features, die sich seither geändert haben.
Swift und Kitura mit Docker ausprobieren
Vor ca. einem halben Jahr habe ich hier darüber lamentiert, dass es noch immer keine ordentlichen Paket-Repos für die Linux-Variante von Swift gibt. Daran hat sich bis heute nichts geändert. Deswegen möchte ich hier auf einen anderen Weg hinweisen, wie Sie Swift unter Linux unkompliziert zum Laufen bringen können: Docker.
Raspberry Pi Zero W ausprobiert
Der Raspberry Pi Zero W ergänzt die Raspberry-Pi-Familie um ein weiteres Modell: Klein, stromsparend, billig und jetzt mit WLAN und Bluetooth. Im Vergleich zum bisherigen Zero-Modell hat das Modell W WLAN und Bluetooth dazu gewonnen. Im Vergleich zum aktuellen Standardmodell (Raspberry Pi 3, Modell B) hat der Zero allerdings eine langsamere Single-Core-CPU, nur 512 MByte RAM und nur einen Micro-USB-Anschluss.
Java 9: Collections komfortabler initialisieren
Viele Programmiersprachen kennen bequeme Kurzschreibweisen zur Initialisierung von Maps, Sets etc. In Java gibt’s das leider nur für Arrays (also int [] x = {1, 2, 3}
). Daran wird auch Java 9 nichts ändern, JEP186 wurde vorerst verworfen. Aber immerhin wurde stattdessen JEP269 implementiert. Dieser Erweiterungsvorschlag sieht die neue Methoden List.of
, Set.of
und Map.of
vor, mit denen sich Collections recht komfortabel initialisieren lassen. (JEP = JDK Enhancement Proposals).
Die Java-Shell (JShell)
Die für Einsteiger vermutlich nützlichste Neuerung in Java 9 besteht darin, dass es nun einen Kommandointerpreter gibt, die Java-Shell (JShell). In der Fachsprache heißt dieses Feature auch Read-Eval-Print-Loop (REPL). In anderen Sprachen wie Python oder Swift ist ein derartiger Kommandointerpreter ja schon seit jeher eine Selbstverständlichkeit.
Ubuntu: Probleme mit vollen Boot-Partitionen
Auf immer mehr meiner Ubuntu-Server-Installationen mit automatischen täglichen Updates bin ich in letzter Zeit auf das Problem voller Boot-Partitionen gestoßen. Aus historischen Gründen richtet der Ubuntu-Installer standardmäßig eine eigene Boot-Partition für die Kernel-Dateien ein, obwohl dies in den meisten Fällen vollkommen überflüssig ist. Im Boot-Verzeichnis landet bei jedem Kernel-Update die gerade neueste Kernel-Version samt diverser Zusatzdateien.
Pro Kernel-Version beträgt der Platzbedarf unter Ubuntu 16.04 ca. 50 MByte, wobei die Initrd-Datei mit ca. 36 MByte der bei weitem wichtigste Faktor ist. Ubuntu 14.04 war hier noch sparsamer, dort fand man mit ca. 25 MByte pro Kernel das Auslangen (Initrd-Datei mit 20 MByte).
Ganz egal, wie groß die Boot-Partition ist: ohne Aufräumarbeiten läuft sie früher oder später voll. Das führt dazu, dass Kernel-Updates nicht mehr (richtig) installiert werden können. Mit etwas Pech hängt Ubuntu beim nächsten Reboot. Bei einer lokalen Maschine kann man dann im Grub-Menü einen älteren Kernel auswählen, damit booten und Aufräumarbeiten durchführen. Bei einem Server ist das aber viel schwieriger.
Update 23.1.2017 15:10: Bessere Lösung mit Unattended-Upgrade::Remove-Unused-Dependencies "true"
dokumentiert.
Atom als Markdown/Pandoc-Editor
Seit mehr als 20 Jahren verfasse ich nahezu alle meine Texte, Hunderte von Seiten jedes Jahr, mit dem Editor Emacs. Selten hat mich seither ein anderer Editor in Versuchung gebracht, zu wechseln. Zu den wenigen Ausnahmen zählt Atom. Der Editor ist schnell zu erlernen, hat eine moderne Oberfläche, läuft unter Linux/Windows/macOS. Außerdem ist es sehr weitreichend konfigurierbar, und das ganz ohne Emacs-Gruft und Elisp-Horror.
Dieser Beitrag stellt Atom kurz vor und zeigt seinen Einsatz als Editor für Markdown-Dokumente in der Pandoc-Variante.