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.)

Swift 3.1 weiterlesen

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.

Update: Linux on Windows (WSL) für Windows 1703 weiterlesen

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.

Raspberry Zero W mit einer Streichholzschachtel zum Größenvergleich

Raspberry Pi Zero W ausprobiert weiterlesen

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).

Java 9: Collections komfortabler initialisieren weiterlesen

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.

Ubuntu: Probleme mit vollen Boot-Partitionen weiterlesen

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.

Atom als Markdown/Pandoc-Editor weiterlesen

Geänderte SSH-Server-Konfiguration von Raspbian

Wenn Sie in der Vergangenheit Raspbian installierten, egal, ob mit NOOBS oder durch die direkte Übertragung des Raspbian-Images auf eine SD-Karte, war der SSH-Server standardmäßig aktiv. Jeder, der eine Netzwerkverbindung zum Raspberry Pi herstellen konnte, konnte sich als pi mit dem bekannten Passwort raspberry einloggen und hatte dann per sudo uneingeschränkte Rechte. Es wird natürlich überall empfohlen (auch in allen Auflagen unseres Raspberry-Pi-Buchs), das Default-Passwort von pi sofort zu ändern, aber wen kümmern schon solche Empfehlungen :-(

Immer mehr Pis sind so in Netzwerke integriert, dass sie auch aus dem Internet erreichbar sind. Unter dem Eindruck der Sicherheitskatastrophen der letzten Monate (z.B. Verwundbare Router oder Botnets aus gehackten Webcams) haben sich die Raspbian-Entwickler endlich zu ein klein wenig mehr Sicherheit per Default entschlossen: Bei aktuellen Raspbian-Images ist der SSH-Dienst zwar installiert, aber standardmäßig nicht aktiv. Wie Sie SSH weiterhin verwenden können, erklärt dieser Beitrag.

Geänderte SSH-Server-Konfiguration von Raspbian weiterlesen