ACME-Client in Shell Script

Das Protokoll, welches Let’s Encrypt zur Anforderung und Übertragung der Zertifikate nutzt, hört auf den Namen ACME. Das Kürzel steht für Automatic Certificate Management Environment. Neben dem offiziellen Client Certbot existieren viele weitere Clients. Einer der Clients, welcher hervorsticht, ist acme.sh. Dieser Client wurde komplett in Shell Script für die Bash geschrieben.

Auf letsencrypt.org ist eine Liste der Clients zu finden

Neben dem ursprünglichen ACME v1-Protokoll unterstützt der Client ebenfalls ACME v2 und kann somit für den produktiven Einsatz genutzt werden. Der Client kann über GitHub bezogen werden. Lizenziert ist er unter der GPL in Version 3 und damit freie Software.

Quellcode des Apollo 11 Guidance Computer

Die Mondlandung ist nun fünfzig Jahre her und sie gelang unter anderem dank des Apollo 11 Guidance Computer. Genutzt wurde der Computer für die Navigation. Neben der Hardware bestand der Computer auch aus Software. Die Software des Apollo 11 Guidance Computer kann mittlerweile über GitHub bezogen werden.

Ein Teil des Apollo Guidance Computer

Ziel des Projektes ist es den als Papierausdruck vorliegenden Quellcode eins zu eins übertragen. Bei der initialen Übertragung haben sich einige Fehler eingeschlichen die Stück für Stück von Freiwilligen korrigiert werden. Der Quelltext ist gemeinfrei; so das ihn jeder nach Belieben nutzen kann; allerdings dürfte die entsprechende Hardware schwer zu beschaffen sein.

MQTT Explorer

Für die unterschiedlichsten Betriebssysteme existieren eine Reihe von Clients für MQTT. MQTT Explorer ist einer dieser Clients, welcher plattformübergreifend (Linux, macOS, Windows) verfügbar ist. Der MQTT Exporer ist auf Performanz optimiert und kommt mühelos mit mehreren tausend Nachrichten pro Minute zurecht. Damit eignet er sich unter anderem für das Debugging größerer Installationen, in welchen unterschiedlichste Topics definiert sind.

Der MQTT Explorer unter macOS

Bezogen werden kann der Client über die Projektseite unter mqtt-explorer.com. Der Quellcode dies Clients kann über GitHub bezogen werden. Lizenziert ist der Quellcode unter der Creative Commons-Lizenz CC-BY-ND und damit keine freie Software.

Swift im Browser ausprobieren

Swift ist der freie Nachfolger der Sprache Objective-C und wird unter anderem für die App-Entwicklung unter macOS und iOS genutzt. Daneben kann Swift auch unter anderen Systemen wie Linux genutzt werden. Wer Swift im Browser testen möchte, kann dies mit dem Online Swift Playground tun.

swiftplayground.run

Mit der Nutzung der lokalen Versionen können auch eigene Packages eingebunden werden. Zu finden ist der Online Swift Playground unter online.swiftplayground.run. Der Quelltext ist auf GitHub zu finden, allerdings ist dieser unter der Creative Commons CC-BY-NC lizenziert und damit keine freie Software.

Mapcrafter unter Ubuntu aufsetzen

Eine Welt in Minecraft hat die Angewohnheit, mit der Zeit immer größer zu werden. In einem solchen Fall ist eine Karte natürlich sehr praktisch. Mithilfe des Tools Mapcrafter kann eine solche Karte erstellt werden. Der Mapcrafter erzeugt neben den Kartenkacheln auch eine JavaScript-Anwendung, mit der diese betrachtet werden können.

Eine Mapcrafter-Karte

Im ers­ten Schritt muss das Mapcrafter-Repository mittels:

git clone https://github.com/mapcrafter/mapcrafter.git

auf den Ser­ver geholt werden. Mit dem Befehl wird das Git-Repository, in welchem sich der Quelltext befindet, auf den Server geklont. Im Git-Kontext bedeutet dies, dass das gesamte Repository heruntergeladen wird. Falls Git nicht installiert ist, muss das entsprechende Paket mittels:

apt install git

installiert werden. Die aktuelle Entwicklung findet im Branch world113 statt, so das in diesen gewechselt werden muss:

cd mapcrafter
git checkout world113

Bevor die Software kompiliert werden kann, müssen einige Abhängigkeiten installiert werden:

apt install build-essential cmake libboost-all-dev libjpeg-dev libpng-dev

Anschließen kann die Software kompiliert und installiert werden:

cmake .
make 
make install
ldconfig

Nach der Installation könnte Mapcrafter über den Befehl:

/usr/local/bin/mapcrafter -c example.conf -b -j 4

ausgeführt werden. Allerdings muss vor dem ersten Start noch eine Konfigurationsdatei erstellt werden. In dieser Konfigurationsdatei ist definiert, wie die Karte gerendert werden soll. Die Datei und die Skripte zur Aktualisierung werden im Kontext des Nutzers minecraft angelegt:

su minecraft
cd
mkdir map
nano example.conf

Exemplarisch könnte die Konfigurationsdatei wie folgt aussehen:

output_dir = /home minecraft/map
background_color = #000000

[marker:teleporter]
name = Teleporter
prefix = Hauptteleporter
icon = beacon.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[marker:signs]
name = Signs
icon = sign.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[world:world]
input_dir = world
world_name = Example

[global:map]
image_format = png
png_indexed = true
rotations = top-left
texture_size = 16

[map:day_isometric]
name = Day (isometric)
render_view = isometric
render_mode = daylight
world = world

Nachdem die Konfigurationsdatei angelegt wurde, kann die Karte testweise mittels des Befehls:

/usr/local/bin/mapcrafter -c example.conf -b -j 4

erzeugt werden. Damit die Aktualisierung später automatisch geschieht, werden die Befehle zur Aktualisierung der Skripte in eine Skript-Datei geschrieben:

nano updateMap.sh

Diese Datei wird mit folgendem Inhalt befüllt:

#!/bin/bash
/usr/local/bin/mapcrafter -c example.conf -b -j 4
/usr/local/bin/mapcrafter_markers -v -c example.conf

Anschließend soll ein Cronjob eingerichtet werden. Dazu wird der Crontab-Editor geöffnet:

crontab -e

In der sich öffnende Datei muss nun folgende Zeile hinzugefügt werden:

0    1    * * *   (. ~/.profile; /usr/bin/screen -dmS mapcrafter /home/minecraft/updateMap.sh)

Danach kann die Datei geschlossen werden. Der Cronjob startet nun um 1 Uhr die tägliche Aktualisierung der Karte.