seeseekey.net - Invictus Deus Ex Machina

Der ESP8266 ist ein Mikrocontroller welcher vor allem aufgrund seines Preises und seiner Fähigkeiten sehr beliebt in der Bastlerszene ist. Während er ursprünglich als WLAN-Shield für den Arduino und Konsorten gedacht war, wird er immer öfter direkt genutzt. Das sollte auch nicht verwundern, schließlich sind viele Leistungswerte des ESP8266 einem gewöhnlichen Arduino überlegen. Mittlerweile gibt es vom ESP8266 14 Varianten die von ESP-1 bis ESP-14 durchnummeriert sind.

Das NodeMCU-Board

Der einfache Einstieg gelingt mit gelingt am besten mit einem ESP8266-Entwicklerboard. Diese verfügen meist über NodeMCU. Das NodeMCU-Modul basiert dabei auf einem ESP-12. Da der ESP8266 3,3 Volt benötigt, USB allerdings 5 Volt liefert, löst das Entwicklerboard viele Probleme, da es bereits einen Spannungsteiler an Bord hat. Für die Anbindung per seriellem Interface wird unter macOS ein Treiber benötigt. Dieser kann unter anderem auf GitHub gefunden werden. Nach der Installation des Treibers muss der Entwicklungsrechner neu gestartet werden.

Nach der Treiberinstallation kann die Schnittstelle angesprochen werden

Nach dem Neustart kann die Arduino IDE geöffnet werden. Da das Board nicht von Haus aus unterstützt wird, muss eine weitere Konfiguration für den Board Manager hinzugefügt werden. Dazu öffnet man die Einstellungen der Arduino IDE und wählt dort den Punkt Zusätzliche Boardverwalter-URLs aus. Dort fügt man nun die URL:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

hinzu. Anschließend können die Einstellungen geschlossen werden und der Board Manager geöffnet werden. Im Board Manager wird nun nach ESP8266 gesucht und die entsprechende Unterstützung installiert.

Die Unterstützung für die ESP8266-Boards wird installiert

Nachdem die Unterstützung für das Board installiert wurde, muss das ganze noch korrekt konfiguriert werden. In diesem Beispiel wurden folgende Einstellungen genutzt:

Board: "NodeMCU 1.0 (ESP-12E Module)"
CPU Frequency: "80 MHz"
Flash Size: "4M (3M SPIFFS)"
Upload Speed: "9600"
Port: "/dev/cu.wchusbserial1410"

Als Beispiel-Programm bietet sich das Webserver-Beispiel an. Nachdem das Beispielprogramm in der Arduino IDE gelandet ist, kompiliert und hochgeladen wurde kann der erste Test des ESP8266 durchgeführt werden. Dazu muss im Browser die IP-Adresse des Gerätes oder alternativ die URL: http://esp8266.local aufgerufen werden.

Beim Update einer MediaWiki-Installation auf die Version 1.28.1 über das update.php-Skript erhielt ich folgende Fehlermeldung:

Error: your composer.lock file is not up to date. Run "composer update" to install newer dependencies

Hintergrund sind unerfüllte Abhängigkeiten, welche wohl nur für die Entwicklung benötigt werden. Um das Update trotzdem durchzuführen sollte folgendes Kommando im Terminal genutzt werden:

php ./update.php --skip-external-dependencies

Damit wird die Prüfung der externen Abhängigkeiten deaktiviert und die Aktualisierung kann erfolgreich durchgeführt werden.

Für ein kleines Projekt an dem ich zur Zeit arbeite war ich mal wieder auf der Suche nach einer sprintf Implementation für JavaScript. Und wieder wurde ich bei der gleichen Implementation – wenn auch erheblich weiterentwickelt – fündig. Seit 2007 arbeitet Alexandru Marasteanu an seiner Implementation der sprintf Funktion für JavaScript. Mit der Hilfe dieses Funktion wird so sprintf-like aus einem:

sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants")

ein:

Polly wants a cracker

Der Quelltext ist auf GitHub zu finden. Die Implementation ist freie Software und unter der 3-Klausel-BSD-Lizenz lizenziert.

Browsergames gibt es viele. Ab und an sticht ein Browsergame aus der Masse hervor. Eines dieser Spiele ist Candy Box 2. Am Anfang geht es nur um die Frage ob man Süßigkeiten ißt oder auf den Boden wirft. Was am Anfang noch trivial wirkt, endet zum Ende hin in einem minimalistischen ASCII-RPG.

Die Karte von Candy Box 2

Zu finden ist das Spiel unter candybox2.net. Das Spiel ist freie Software – der Quelltext ist unter der GPL3, die ASCII Grafiken unter der Creative Commons Lizenz CC-BY-SA lizenziert. Wer im Spiel nicht mehr weiterkommt, kann die Candy Box Wiki zur Hilfe nehmen.

Wenn man Java-Keystore-Dateien bearbeiten möchte, so kann man dies natürlich mit dem im Java SDK mitgelieferten Kommandozeilentool keytool tun. Einfacher ist es mit der grafischen Anwendung KeyStore Explorer zu arbeiten.

KeyStore Explorer

Mit dem KeyStore Explorer können unter anderem Keystore-Dateien bearbeitet, Zertifikate unterschiedlicher Formate geöffnet und analysiert werden. Zu finden ist das Tool unter keystore-explorer.org. Der KeyStore Explorer ist freie Software und unter der GPL in Version 3 lizenziert. Der Quelltext kann über GitHub bezogen werden.

Vor einigen Tagen stand ich vor dem Problem dass ich von knapp vierhundert Mails die Anhänge extrahieren wollte. Unter Nutzung der Standardmittel ist dies unter Thunderbird ein langwieriges Unterfangen. Mit Hilfe des Add-Ons AttachmentExtractor kann diese Funktionalität nachgerüstet werden.

AttachmentExtractor
Preis: Kostenlos

Das Add-On bietet nach der Installation im Kontextmenü einige zusätzliche Einträge an, über welche die Anhänge von den Mails abgetrennt werden können. Diese werden dann in den gewünschten Ordner exportiert. Damit wird die zeitraubende Arbeit, jeden Anhang separat zu speichern, auf wenige Minuten reduziert.

Der ownCloud-Fork Nextcloud verfügt ebenfalls über eine Kalender-App. Wollte man unter ownCloud ein ICS-Datei in den Kalender importieren, so musste man diese hochladen und die Datei über die Dateiansicht von ownCloud importieren. Versucht man dies unter Nextcloud, wird man feststellen, das statt eines Importes der Texteditor geöffnet wird.

Die Einstellungen der Kalender-App

Der Grund dafür ist, das der Import von ICS-Dateien unter Nextcloud mittlerweile anders gelöst ist. Der Umweg über den Upload entfällt; stattdessen kann die ICS-Datei direkt über die Einstellungen der Kalender-App importiert werden.

Neben der Dateisynchronisationfunktionalität, stellt die freie Cloudlösung Nextcloud eine Reihe von weiteren Features bereit. Eine dieser Funktionalitäten ist der Kalender. Wenn man den Kalender im Webinterface aufruft, kann es unter Umständen passieren, das man dort ein Ausrufezeichen neben dem Kalender zu sehen bekommt.

Das Ausrufezeichen informiert den Nutzer über fehlerhafte Einträge im Kalender

Das Ausrufezeichen informiert den Nutzer über fehlerhafte Einträge im Kalender

Lässt man die Maus einige Momente über dem Ausrufezeichen ruhen, wird die zusätzliche Meldung:

Einige Einträge in diesem Kalender sind fehlerhaft. Bitte überprüfen Sie die Javascript-Konsole für weitere Informationen

angezeigt. Die fehlerhaften Einträge zu entfernen, ist mit den Boardmittel relativ einfach möglich. Dazu muss der betroffene Kalender im ersten Schritt heruntergeladen werden. Dabei erhält man eine iCalender-Datei. Der exportierte Kalender wird anschließend gelöscht und neu angelegt. In den neu angelegten Kalender wird nun die iCalender-Datei wieder importiert (über die Kalender-Einstellungen). Nach dem Import sind die fehlerhaften Einträge verschwunden.

Möchte man eine Dateien in der freien Dateisynchronisationslösung Nextcloud löschen so ist dies einfach über den Dateimanager möglich. Anschließend werden die Änderungen mit dem Nextcloud-Server synchronisiert. Etwas komplizierter wird das ganze wenn man die Dateien direkt auf dem Server im data-Verzeichnis löschen möchte. Wurden hier Dateien gelöscht, müssen auf der Kommandozeile anschließend folgende Befehle innerhalb der Nextcloud-Installation ausgeführt werden:

occ files:cleanup
occ files:scan --all

Damit wird der Dateicache gelöscht und anschließend ein neuer Scan durchgeführt. Dieser sorgt dafür das die veränderte Situation bezüglich der Dateien erkannt wird.

Möchte man unter Linux auf dem Terminal einen Ordner mittels tar und gzip komprimieren, so ist dies mit zwei Befehlen erledigt:

tar cvwf data.tar data

Damit wird der Ordner data in eine Tar-Datei archiviert. Bei den Buchstaben nach dem Befehl handelt es sich um die gewünschten Optionen (create, verbose, interactive, file). Eine Tar-Datei ist nicht komprimiert, da das Tar-Format die Daten der Dateien einfach hintereinander in der Tar-Datei anordnet. Zur Kompression der Tar-Datei wird gzip genutzt:

gzip -9 data.tar

Damit wird die Datei mittels gzip gepackt und trägt anschließend den Namen data.tar.gz. Das -9 teilt gzip mit, das die höchste Kompressionsstufe genutzt werden soll.