curl zur Abfrage von REST-APIs benutzen

Die Aufgabe des freien Kommandozeilentools curl ist einfach beschrieben: Datentransfer. So unterstützt curl unterschiedlichste Protokolle wie FTP, HTTP, HTTPS, IMAP, SCP, SMB und viele mehr. Ein einfacher Download einer Datei über HTTP bzw. HTTPS würde mit curl wie folgt aussehen:

curl -O https://example.com/file.zip

Auch ein Transfer z.B. per FTP ist kein Problem:

ftp://example.com/file.zip

Allerdings beherrscht curl wesentlich mehr Operationen als nur das Herunterladen von Dateien. So kann curl genutzt werden, um REST-APIs zu benutzen. Diese APIs arbeiten nicht nur mit dem HTTP-Verb GET, sondern auch mit anderen Verben wie POST und PUT. Ein einfacher GET-Request wurde mittels curl wie folgt aussehen:

curl -X GET https://example.com/

Ein POST-Request wird auf die gleiche Art durchgeführt:

curl -X POST https://example.com/

Sollen zusätzlich Daten übertragen werden, so geschieht dies mit dem Parameter -d:

curl -X POST https://example.com/  -d '{
	field: "data",
	field2: "data",
	field3: "data"
}'

Damit werden die Daten im Body des Requests mitgesendet. Auch die Übergabe von Headern ist mittels curl möglich:

curl -X POST https://example.com/ 
 -H 'HeaderField: headerValue'
 -d '{
	field: "data",
	field2: "data",
	field3: "data"
}'

Manche APIs und andere Services blockieren Abrufe über curl manchmal. Dabei wird der Useragent von curl ausgesperrt. Allerdings kann dieser einfach geändert werden:

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0" -X GET https://example.com/

Damit können solche fragwürdigen Maßnahmen, welche zum Ausschluss von curl führen, umgangen werden. Daneben verfügt curl über viele weitere Operationen bzw. Optionen. So kann z.B. mittels des Parameters -I nur der Header des Response bezogen werden:

curl -I -X GET https://example.com

Somit bietet curl die entsprechende Funktionalität um REST-APIs für Tests und ähnliches flexibel abzufragen.

Tomb Raider in Open Source

Das 1996 erschienene Tomb Raider, mit Lara Croft in der Rolle der taffen Archäologin, galt und gilt als Meilenstein des Action-Aventure. Seitdem sind etliche weitere Teile entstanden. Auch die alten Teile sind bei vielen Fans immer noch sehr beliebt.

Die Projektseite von Open Tomb

So existieren einige Open Source-Projekte rund um Tomb Raider. Eines dieser Projekte ist Open Tomb, welches unter opentomb.github.io zu finden ist. Das Ziel des Projektes ist eine Reimplementation der Engine welche für Tomb Raider 1 – 5 genutzt wurde. Lizenziert ist das Projekt unter der LGPL3 und damit freie Software.  

Neben dem OpenTomb-Projekt existieren weitere Projekte, wie das OpenLara-Projekt, welches die Engine im Browser nachbaut. Eine spielbare Demo existiert auf der Projektseite; der Quelltext ist auf GitHub zu finden. Lizenziert ist OpenLara unter der BSD-Lizenz, in der Zwei-Klausel-Version.

Öffentliche Bücherschränke finden

Bücherschränke sind mittlerweile in der breiten Fläche angekommen. Bei einem solchen Bücherschrank handelt es sich um eine Örtlichkeit, in welcher kostenlos Bücher abgegeben bzw. getauscht werden können. Manchmal bezieht sich das nicht nur auf Bücher, sondern auch auf andere Medien. Damit dieser Dienst genutzt werden kann, muss dem Nutzer bekannt sein, wo sich ein solcher Bücherschrank befindet. Bei der Lösung dieses Problems hilft die Webseite openbookcase.org.

Die Standorte der Bücherschränke werden auf einer Karte visualisiert

Mithilfe der Karte können die Standorte entsprechender Bücherschränke gefunden werden. Für jeden Standort finden sich dort Informationen über die Position, eventuelle Öffnungszeiten und viele weitere. Neben der Karte können die Daten auch in Listenform angezeigt werden. Interessant ist, das dieses Projekt nicht das einzige seiner Art ist. So bietet auch die Webseite lesestunden.de einen Buchschrankfinder an.

Mapcrafter für Minecraft 1.14 nutzbar

Minecraft 1.14 ist bereits seit einigen Tagen veröffentlicht und nun wurde die freie Software Mapcrafter soweit nachgezogen, das sie mit der Minecraft-Version 1.14 genutzt werden kann. Mapcrafter dient der Erzeugung einer interaktiven Karte einer Minecraft-Welt. Unter Ubuntu kann das Projekt aus dem Repository geklont werden und anschließend kompiliert und installiert werden:

git clone https://github.com/mapcrafter/mapcrafter.git
cd mapcrafter
git checkout world113
cmake .
make 
make install

Anschließend kann Mapcrafter ausgeführt werden:

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

Die Konfiguration (in diesem Fall: akaria.conf) legt fest, welche Ebenen und Dimensionen wie gerendert werden sollen. Beispielhaft könnte die Konfiguration wie folgt aussehen:

output_dir = /var/www/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:akaria]
input_dir = akaria
world_name = Akaria

[world:akaria_without_liquid]
input_dir = akaria
block_mask = !8 !9 !10 !11
world_name = Akaria

[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 = akaria

[map:day_withoutliquid_isometric]
name = Day (without liquid, isometric)
render_view = isometric
render_mode = daylight
world = akaria_without_liquid

[map:day_spawn_isometric]
name = Day (spawn, isometric)
render_view = isometric
render_mode = daylight
overlay = spawnday
world = akaria

...

Im Zuge der Umstellung von Mapcrafter auf Minecraft 1.13 und jetzt 1.14, kam es bei Mapcrafter zu größeren Umbauten, welche leider noch nicht abgeschlossen sind. So fehlt im Moment noch die Möglichkeit der Blockfilter und auch beim Rendering von Schildern scheint es Probleme zu geben. Es bleibt zu hoffen, dass das Release in nächster Zeit fertiggestellt wird. Der aktuelle Status kann in dem entsprechenden Pull-Request eingesehen werden.

Blöcke welche mit 1.14 eingeführt wurden, werden nun ebenfalls gerendert

Die offizielle Seite des Projektes ist unter mapcrafter.org zu finden. Der Quelltext kann über GitHub bezogen werden. Lizenziert ist das Projekt unter der GPL3-Lizenz und damit freie Software. Wer eine Mapcrafter-Karte in Aktion sehen möchte, kann dies unter map.akaria.q1z.net tun.

Minecraft Classic im Browser

Morgen wird Minecraft sein zehnjähriges Jubiläum feiern. Anlässlich dieses Jubiläum kann nun die frühe Version 0.0.23a_01 (alias Minecraft Classic) im Browser gespielt werden. Die Version verfügt, wie damals, nur über den Kreativmodus. Mit insgesamt 32 Blöcken kann die Welt gestaltet werden. Auch die alten Bugs wurde unverändert übernommen. Das Spiel kann mit bis zu zehn Spielern gespielt werden.

Das ursprüngliche Minecraft im Browser

Allerdings sollte die Version als Demo, denn als vollständiges Spiel betrachtet werden. Es dient eher zur Auffrischung der Nostalgie und zur Feier von zehn Jahren Minecraft. Zu finden ist die Browser-Version unter classic.minecraft.net.