seeseekey.net - Invictus Deus Ex Machina

Das Shellskript ist fertig und wartet auf seinen Einsatz. Wer das eigene Skript vor dem Einsatz überprüfen möchte, sollte ShellCheck ausprobieren. Bei ShellCheck handelt es sich um ein Tool zur statischen Code-Analyse von Shell-Skripten. Neben allgemeinen Skriptfehlern, weißt ShellCheck dabei auch auf andere Probleme hin und schlägt Verbesserungen vor.

ShellCheck in Aktion

ShellCheck in Aktion

Neben der Webseite, welcher unter shellcheck.net zu finden ist, kann ShellCheck auch auf der Konsole ausprobiert werden. Das Tool ist unter der GPLv3 lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden.

Möchte man ein Betriebssystem auf einem USB-Stick aufspielen, so kann man dies je nach Betriebssystem mit unterschiedlichen Mitteln wie z.B. “dd” bewerkstelligen. Mit UNetbootin gibt es ein Werkzeug für Linux, Mac OS X und Windows, mit welchem sich dies über eine grafische Oberfläche erledigen lässt.

Das Dialogfenster von UNetbootin

Das Dialogfenster von UNetbootin

Neben der Möglichkeit eine ISO-Datei auf einen USB-Stick zu spielen, ist es auch möglich aus einer Liste von Systemen zu wählen. Das gewählte System wird heruntergeladen und anschließend auf dem USB-Stick installiert. Bei UNetbootin handelt es sich um freie Software welche unter GPL in der Version 2 und höher lizenziert ist. Es kann auf der offiziellen Seite heruntergeladen werden.

Wer schon immer das tiefe und unerklärliche Bedürfnis hatte, Windows in der ersten Version auszuprobieren, der kann dies nun tun. Möglich wird dies mit der Webseite jsmachines.net. Das ganze basiert dabei auf dem unter GPL stehenden PCjs. Dabei handelt es sich um einen IBM PC Emulator, welcher in Javascript geschrieben ist. Der Quelltext soll später auf GitHub zur Verfügung stehen.

Der Windows 1 Emulator in Aktion

Der Windows 1 Emulator in Aktion

Die Windows-Emulation ist neben einigen anderen Emulationen (unter anderem Zork I und DONKEY.BAS) auf der Webseite zu finden.

Wer die digitale Währung Bitcoins minen möchte, sollte sich bewusst sein, das dies meist ein Minusgeschäft ist. Durch die gestiegene Komplexität verbraucht das Erzeugen von Bitcoins mehr Strom als es im Endeffekt liefert. Wer hier mit CPU, GPU oder FPGA minert, hat eigentlich schon verloren. Einigermaßen erträglich wird das Mining wenn man mit sogenannten ASICs arbeitet. ASIC steht dabei für “Application Specific Integrated Circuit”. Gemeint ist damit das die Chips nur für das Mining konzipiert sind und somit natürlich sehr effizient arbeiten.

Ein ASIC basierter Miner in Form eines USB-Sticks

Ein ASIC basierter Miner in Form eines USB-Sticks

Ein Miner welcher sich anbietet ist CGMiner welcher im Quelltext auf GitHub zu finden ist. Neben der Mac OS X und der Windows-Version ist er auch in einer Linux-Version verfügbar. CGMiner selbst steht dabei unter einer freien Lizenz (GPLv3). Um den Miner unter Linux in Betrieb zu nehmen müssen einige Abhängigkeiten installiert werden:

apt-get install autoconf make libcurl4-openssl-dev libtool pkg-config libudev-dev

Danach kann sich der Quelltext beschafft werden und das Kompilat erzeugt werden:

git clone https://github.com/ckolivas/cgminer.git
cd cgminer
./autogen.sh
./configure --enable-icarus
make

In diesem Fall wurde die Unterstützung für ASICs welche mit dem Icarusprotokol arbeiten aktiviert. Mittels:

./cgminer -o http://pool:port -u username -p password

kann das Mining anschließend gestartet werden. Beim Start werden entsprechende Geräte wie angeschlossene ASICs erkannt und automatisch mit eingebunden.

“Off-the-Record Mes­sa­ging” ist eine schöne Sache, allerdings nutzen die wenigsten Menschen ihre Chatprogramme nur am Desktop. Auch die Mobilgeräte wollen bedient werden. Hier bietet sich für Android die App Xabber an. Dabei handelt es sich um einen freien XMPP Client welcher unter der GPLv3 lizenziert ist.

Der Quelltext von Xabber kann dabei auf Github bezogen werden. Neben den Standardfeatures bietet Xabber auch OTR-Integration. Nachdem man Xabber installiert und einen Account eingerichtet hat, muss nur noch OTR aktiviert werden. Dazu öffnet man die Einstellungen und wählt dort den Punkt Sicherheit aus.

Die Sicherheitseinstellungen von Xabber

Die Sicherheitseinstellungen von Xabber

Dort kann dann der OTR-Modus festgelegt werden. Zur Auswahl stehen dabei “deaktiviert”, “manuell”, “automatisch” und “erforderlich”. Wenn der passende Modus ausgewählt wurde, kann die Kommunikation mittels OTR beginnen (außer man stellt den Modus auf “deaktiviert”). Im manuellen Modus kann OTR Kommunikation dabei über die Menütaste im Chat aktiviert (Mehr -> OTR Verschlüsselung) werden.

Der Kindle als eBook Reader macht vieles richtig. Nur beim Übertragen von eigenen Dokumenten wird es schwierig. Es gibt zwar die Möglichkeit Dokumente per Mail oder USB auf den Kindle zu bringen, allerdings wird das in manchen Fällen etwas umständlich.

Der Kindle Paperwhite im ausgeschalteten Zustand

Der Kindle Paperwhite im ausgeschalteten Zustand

So bietet Amazon eine Konvertierung von PDFs in ein auf dem Kindle lesbares Format an. Um das ganze zu vereinfachen, habe ich eine kleine Anwendung namens “Kindle Uploader” geschrieben. Nach der Konfiguration kann man ganze Ordner oder auch einzelne Dateien an seinen Kindle senden. Mit Hilfe der Option “-convert” ist es möglich die Konvertierung in das AZW Format (für bessere Lesbarkeit) anzustoßen:

kindleuploader.exe -convert test.pdf folder test.txt

Die Anwendung ist dabei freie Software unter der GPLv3 und kann auf GitHub “besichtigt” werden. Alternativ kann das ganze als ausführbare Datei heruntergeladen werden.

Ein Programm welches in C# geschrieben wird, wird beim kompilieren in ein Intermediate-Assembly umgewandelt. Das bedeutet das der Code in einer Zwischensprache darauf wartet auf seinem Zielsystem in nativen Code umgewandelt zu werden. Der Vor- und auch Nachteil dieser Vorgehensweise ist, das sich der Quellcode sehr einfach aus dem IL-Code zurückwandeln lässt. Im Idealfall verliert man bloß einige Variablennamen.

Um das zu verhindern gibt es sogenannte Obfuscatoren, welche versuchen den entsprechenden Quelltext zu verschleiern, so das er nicht mehr einfach zurückgewandelt werden kann. Aber wie so oft im Leben gibt es auch hier einen Wettlauf mit der Zeit. So gibt es einige Tools welche den obfuskierten Quelltext wieder deobfuskieren. Eines dieser Projekte ist “de4dot” welches unter https://bitbucket.org/0xd4d/de4dot/ zu finden ist. Das unter der GPL stehende Projekte, erkennt dabei den verwendeten Obfuscator und versucht seine Änderungen soweit wie möglich rückgängig zu machen. Dabei werden eine stattliche Anzahl von Obfuscatoren, wie der Dotfuscator, Goliath.NET und Skater.NET unterstützt.

Mittlerweile gibt es schon einige Drohnen für den privaten “Bedarf”. Leider ist die Steuerungssoftware dieser Drohnen meist unfreie Software. Für diesen Zweck wurde “OpenPilot” geschaffen. Dabei handelt es sich um eine freie Software zur Steuerung von unbemannten Luftfahrzeugen.

Die Software ist dabei flexibel und kann sowohl mit Hubschraubern, normalen Flugzeugen, Quadcoptern und anderen Geräten mit mehreren Rotoren benutzt werden. OpenPilot fungiert dabei als Autopilot für die Drohne. Der Quellcode von “OpenPilot” steht dabei unter der GPLv3 und kann mittels:

git clone ssh://gitolite@git.openpilot.org/OpenPilot.git

bezogen werden. Die offizielle Seite des Projektes ist unter http://www.openpilot.org/ zu finden.

Über das Wochenende hatte ich einige GPS getagte Bilder geschossen und wollte diese auf einer Karte darstellen. Eine kurze Suche im Netz ergab, das so etwas in dieser Form nicht existierte (wobei hier natürlich ein Irrtum vorliegen kann). Also wurde das ganze auf Basis von Leaflet implementiert.

Die Webapplikation in Aktion

Die Webapplikation in Aktion

Leaflet ist ein Framework mit welchem man schnell Kartenapplikationen im Web realisieren kann. Um den “Gps Tagged Image Viewer” zu benutzen, müssen die Dateien auf einem Webserver kopiert werden. Die Bilder werden dabei in den Ordner “images” kopiert. Anschließend wird das PHP Skript “parseimages.php” aus dem “utils” Ordner ausgeführt. Dieses ließt die EXIF Daten aus den Bildern aus und erzeugt die entsprechenden Marker in einer Javascript Datei. Danach kann das ganze genutzt werden.

Die Karte ist dabei mit drei Kartenebenen versehen, einmal Bing Luftbilder (für welche ein API-Key registriert werden muss), sowie OpenStreetMap in zwei unterschiedlichen Renderings. Der Quelltext ist unter GPLv3 verfügbar und kann auf GitHub bezogen werden.

Programmiersprachen gibt es wie Sand am Meer. Allerdings würde man bei dem Namen Haxe im ersten Moment höchstwahrscheinlich etwas anderes verstehen. Bei “Haxe” handelt es sich um eine aus dem Precompiler “ActionScriptMetaLanguage” hervorgegangene Programmiersprache welche von Motion Twin entwickelt wird.

Eine Besonderheit von Haxe ist die Möglichkeit aus dem geschriebenden Quelltext unter anderem JavaScript, PHP und auch C++ zu erzeugen. Dadurch bedingt wird Haxe bei der Entwicklung von Webanwendungen bevorzugt eingesetzt. Ein Hello World würde in Haxe so aussehen:

class Test {
    static function main() {
        trace("Hello World !");
    }
}

Bei Haxe selbst handelt es sich um freie Software, so steht der Compiler unter der GPLv2, die Bibliotheken selbst unter der BSD Lizenz. Die offizielle Seite ist unter http://haxe.org zu finden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Haxe_(Programmiersprache)