seeseekey.net - Invictus Deus Ex Machina

In einer Datenbanktabelle verfügt man im Normalfall über ein Feld, welches als Primärschlüssel fungiert. Dieses Feld ist dabei in den meisten Fällen als Integer mit einer Autoinkrement-Funktion ausgelegt. Unter Umständen kann es passieren, das man diese ID neu von 1 an vergeben möchten, also ein sogenanntes Renumbering durchführen möchte. Mittels SQL kann man das ganze dabei wie folgt erreichen:

SET @a = 0;
UPDATE tabellenName SET ID = (@a := @a +1);
ALTER TABLE tabellenName  AUTO_INCREMENT = 1;

Bei der Ausführung dieser Befehle wird das Feld ID ab 1 neu durchnummeriert und der Autoinkrement-Index auf den entsprechenden Wert gesetzt.

Kreativität treibt manchmal seltsamem Blüten — wie sonst würde man auf die Idee kommen ein Skript zu schreiben, welches Buildvorgänge nur dann erlaubt, wenn Planeten im Sonnensystem nicht in einer Reihe stehen.

INFO [dfe36319] Running /usr/bin/env python astro_build.py as lhartikk@188.166.5.240
DEBUG [dfe36319] Command: python astro_build.py
DEBUG [dfe36319]BUILD FAILED
DEBUG [dfe36319]PLANETS ALIGNED: ['Mercury', 'Jupiter']
DEBUG [dfe36319]ALIGNMENT: 149 degrees
(Backtrace restricted to imported tasks)
cap aborted!

Genau für diesen Zweck wurde das Python-Skript AstroBuild geschrieben, welches auf GitHub zu finden ist. Lizenziert ist es unter der Apache Lizenz und damit freie Software.

OpenStreetMap enthält eine Menge Daten, wie z.B. Informationen über Restaurants und Gaststätten. Mit Hilfe dieser Information ist es möglich sich eigene personalisierte OpenStreetMap-Karte zu rendern.

Die Veggiekarte

Ein schönes Beispiel, für eine solche personalisierte Karte ist die Veggiekarte welche unter veggiekarte.de zu finden ist. Auf der Karte sind vegetarische und vegane Restaurant hervorgehoben, so das man solche in seiner Umgebung schnell findet. Der Quelltext zur Erzeugung der Karte ist auf GitHub zu finden.

Wenn man im Firefox mehrere Tabs öffnet, kann es passieren das plötzlich ein Video oder andere Medien in einem der Tabs abgespielt werden. Je nach Anzahl der Tabs ist es dann relativ schwierig herauszufinden, welcher Tab den Ton abspielt.

Die entsprechende Einstellung

Zum Glück kann man das Verhalten, das Firefox automatisch Medien abspielt, einfach abstellen. Dazu muss in der Adressleiste about:config eingegeben werden und nach dem Schlüssel media.autoplay.enabled gesucht werden. Nachdem dieser auf false gesetzt wurde, gehört das nervige Standardverhalten der Vergangenheit an.

Beim Upload einer Datei in einer MediaWiki-Installation ist es möglich eine Lizenz anzugeben. Standardmäßig ist in der Liste der Lizenzen allerdings kein Eintrag zu finden.

Die Upload-Seite einer MediaWiki-Installation

Damit sich das ändert muss die Seite MediaWiki:Licenses (z.B. http://wiki.example.com/MediaWiki:Licenses) geändert werden. Die Definition sieht dabei wie folgt aus:

* Unfree licenses:
** IC|Image citation
* Free licenses:
** PD|PD: public domain
** CC-BY-SA|Creative Commons Attribution ShareAlike
** GFDL|GFDL: GNU Free Documentation License
** GPL|GPL: GNU General Public License
** LGPL|LGPL: GNU Lesser General Public License

In der Definition wird eine hierachische Struktur abgebildet. So handelt es sich bei Free licenses um die Kategorie zu welcher die folgenden Lizenzen gehören. Anschließend wird die Seite zur Lizenz und die Beschreibung der Lizenz getrennt durch eine Pipe definiert.

Mit Shairport ist es möglich einen Airplay Server aufzusetzen. Allerdings wird das Projekt seit einiger Zeit nicht mehr aktiv betreut:

As I no longer use Shairport myself, I am no longer maintaining or supporting Shairport. Thanks to everyone who has contributed over the years; it's been a great experience. For the ongoing user, there are a great many forks and ports to choose from now, many of which are of a very high quality and well maintained.

— James

Allerdings gibt es mit Shairport Sync einen Nachfolger von Shairport. Im Gegensatz zum Original verfügt Shairport Sync über die Möglichkeit mehrere Räume bespielen zu können. Bezogen werden kann das ganze über die Projektseite auf GitHub.

Möchte man eine SD-Karte unter Windows bespielen, um diese in einem Rasperry Pi zu nutzen, so benötigt man die Software Win32 Disk Imager welche auf SourceForge bezogen werden kann.

Win32 Disk Imager beim Schreiben eines Images

Dort wählt man anschließend das Image seiner Wahl und startet den Schreibvorgang mit dem Button Write. Dabei sollte man darauf achten das richtige Laufwerk zu beschreiben, da auch externe Festplatten in der Geräteauswahl auftauchen. Je nach Größe des Images und der maximalen Schreibgeschwindigkeit, kann der Vorgang einige Zeit in Anspruch nehmen.

Mit der Erweiterung Piwik Integration gibt es eine aktiv entwickelte Möglichkeit Piwik in MediaWiki-Seiten zu integrieren. Um die Erweiterung in Betrieb zu nehmen muss der Quelltext auf GitHub bezogen werden. In der MediaWiki-Installation wird der Quelltext in den Ordner extenstions/Piwik/ kopiert. Anschließend muss die LocalSettings.php bearbeitet werden. Dort werden folgende Zeilen hinzugefügt:

#Piwik
require_once "$IP/extensions/Piwik/Piwik.php";
$wgPiwikURL = "piwik.example.com";
$wgPiwikIDSite = "3";

Die Werte $wgPiwikURL und $wgPiwikIDSite müssen dabei natürlich durch die korrekten Werte ausgetauscht werden. Bei der $wgPiwikURL muss darauf geachtet werden das kein Protokoll (HTTP/HTTPS) mit angegeben wird, da die Integration sonst fehlschlägt.

Bei Linutop handelt es sich um eine Reihe von Kleinstrechnern. Der Linutop 2 ist dabei Baujahr 2008, besitzt einen AMD Geode LX800, welcher mit 800 Mhz getaktet ist. Daneben befindet sich in dem Gerät 512 MiB Arbeitsspeicher. Auf einem solchen Gerät wollte ich nun Ubuntu in der Servervariante installieren. Als Version kommt dabei nur die 12.04 LTS, welche bis April 2017 unterstützt wird, in Frage.

Der Grund hierfür ist das der AMD Geode LX800 kein PAE unterstützt, neue Ubuntu-Versionen dieses aber zwingend voraussetzen. Im ersten Schritt muss die Netboot-Variante (non-pae) heruntergeladen werden. Die mini.iso kann dann mit Tools wie UNetbootin auf einem USB Stick gespielt werden.

Ein Linutop 2

In diesem Fall wird das System von und auf diesem USB-Stick installiert. Der Grund dafür ist der 1 Gigabyte große Flashspeicher welcher nicht ausreicht um das System zu installieren. In der Standardkonfiguration weist Ubuntu der Systempartionen 512 MB und der Swap-Partion ebenfalls 512 MB zu. Wenn man der Systempartion die gesamten 1000 Megabyte zuweist, sollte sich der Ubuntu Server auch auf dem internen Flashspeicher installieren lassen, allerdings verfügt man dann nur noch über knapp 100 Megabyte freien Speicher.

Wenn man bei der Installation stattdessen das ganze auf einem angeschlossenen USB Stick installiert, sollte auch genug Platz für andere Aufgaben da sein. Die 1 Gigabyte große Flashdisk, kann dabei als Swapspeicher genutzt werden. Für die Installation muss der Linotop ans Netz angeschlossen sein. Nachdem man die grundlegenden Einstellungen vorgenommen hat, dauert die Installation zirka 60 bis 90 Minuten. Anschließend kann das System genutzt werden.

Unter Umständen kann es vorkommen, das die MediaWiki Software im Betrieb eine Ausnahme (Exception) wirft. Dann bekommt man eine Meldung nach dem Schema:

[6030c238] 2015-02-16 8:48:30: Fatal exception of type MWException

Diese Aussage ist natürlich zur Fehlerfindung nicht sehr aussagekräftig. Damit man eine ausführliche Ausgabe zur Exception bekommt, muss in der LocalSettings.php Datei folgende Option hinzugefügt werden:

$wgShowExceptionDetails=true;

Anschließend erhält man im Falle eine Exception einen sauberen Callstack, mit welchen man sich auf Fehlersuche begeben kann.