seeseekey.net - Invictus Deus Ex Machina

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.

Bei vielen Webapplikationen ist die Internationalisierung, also die Anpassung an unterschiedliche Sprachen, ein wichtiges Kriterium. Damit man bei diesem Thema nicht alleine gelassen wird, informiert die Webseite FormatJS darüber und zeigt Wege die eigene Webapplikation internationalisieren.

formatjs.io

formatjs.io

Die dabei verwendeten Bibliotheken sind unter freien Lizenzen wie der BSD- und MIT Lizenz lizenziert und auf GitHub zu finden.

Twister klingt nicht nur wie Twitter, sondern sieht so aus. Bei Twister handelt es sich um eine dezentrale Plattform für Microblogging, ähnlich Twitter. Das ganze basiert dabei unter anderem auf dem Bitcoin-Protokoll und Distributed Hash Tables. Ziel ist es dabei eine Plattform aufzubauen, welche dezentral arbeitet und damit keine Abhängigkeiten zu einen einzelnen Anbieter hat.

Das Webinterface von Twister

Das Webinterface von Twister

Bei dem Protokoll und der Referenzimplementierung handelt es sich um freie Software, welche unter der BSD- und der MIT-Lizenz lizensiert ist. Die offizielle Seite ist auf twister.net.co zu finden. Der Quelltext der unterschiedlichen Implementationen befindet sich auf GitHub.

Vor einiger Zeit spielte ich mit dem Gedanken einen Disassembler für Mac OS X zu programmieren. Allerdings wollte ich nicht alles neu erfinden und schaute mich deshalb nach einem passenden Framework um. Gefunden habe ich dabei Capstone.

capstone-engine.org

capstone-engine.org

Dabei handelt es sich um ein freies, unter einer BSD-Lizenz lizenziertes, Framework zur Disassemblierung. Über verschiedene Bindings kann das Framework aus den unterschiedlichsten Programmiersprachen angesprochen werden. So gibt es unter anderem Bindings für C#, Java, Ruby und Python. Das Framework selbst ist dabei in C geschrieben. Capstone unterstützt dabei eine Reihe von Prozessorarchitekturen wie X86, Sparc, MIPS und ARM. Bezogen werden kann Capstone unter capstone-engine.org.

Wer Entity-Relationship-Modelle bzw. die entsprechenden Diagramme (ERD) erstellen möchte, der kann hierfür Software wie die freie MySQLWorkbench nutzen. Für das plattformübergreifende Erzeugen solcher Diagramme kann man allerdings auch die freie Webapplikation wwwsqldesigner nutzen.

Der ERD-Designer in Aktion

Der ERD-Designer in Aktion

Auf der Webseite des Autors gibt es eine Demo zum Ausprobieren. Die in PHP und Javascript geschriebene Software steht dabei unter einer BSD-Lizenz und ist somit freie Software. Bei der Installation muss das entsprechende Archiv nur auf dem Webserver entpackt werden und kann sofort genutzt werden. Nur wer die Möglichkeiten der serverseitigen Speicherung nutzen möchte, muss einige Parameter konfigurieren.

Wer sich bei der Synchronisierung seiner Passwörter über den Firefox nicht auf die Mozilla eigenen Server verlassen möchte, der kann es mit “weave-minimal” probieren, welches auf GitHub zu finden ist.

Ein Sync wird eingerichtet

Ein Sync wird eingerichtet

Dabei handelt es sich um eine minimale standardkonforme Implementation eines Sync Servers für Firefox Sync. Geschreiben ist “weave-minimal” dabei in Python und läuft sowohl unter der 2er als auch unter der 3er Version des Interpreters. Lizenztechnisch steht das ganze dabei unter einer 2-Klausel BSD-Lizenz und ist somit freie Software. Die Installation und Konfiguration wird dabei ausführlich in der entsprechenden README-Datei beschrieben.

Bei der Software hat es die Open Source Bewegung schon weit gebracht, für so ziemlich jeden Anwendungsfall gibt es auch eine freie Applikation. Anders sieht das bei der Hardware aus. Hier ist vieles noch proprietär. Damit das nicht auf ewig so bleibt gibt es Projekte wie OpenCores welches unter http://opencores.org/ zu finden ist.

Die Projektübersicht von OpenCores

Die Projektübersicht von OpenCores

Gegründet im Oktober 1999 von Damjan Lampret, gibt es auf den Webseiten des Projektes eine Reihe von offenen Rechenwerken bis hin zu ganzen Prozessoren. Geschrieben ist das ganze meist in einer Hardwarebeschreibungssprache wie VHDL, Verilog oder SystemVerilog. Die Lizenzen variieren je nach Projekt meist zwischen der LGPL oder einer BSD Lizenz.

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)

Bei OpenLayers handelt es sich um eine JavaScript-Biliothek zur Darstellung von Karten, im speziellen zur Darstellung von Geodaten. Die Bibliothek steht dabei unter der BSD-Lizenz (2er Klausel Version). So fußt z.B. das Frontend von OpenStreetMap.org auf dieser Bibliothek. Mit Hilfe der Bibliothek ist es ein leichtes Webanwendungen zu schreiben welche Web Feature Services oder Web Map Services nutzen. Auch das Einbinden von OpenStreetMap oder den Google Karten ist kein Problem. Wer vor hat in nächster Zeit so eine Anwendung zu schreiben, der sollte sich OpenLayer anschauen. Die offizielle Seite ist dabei unter http://openlayers.org/ zu finden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/BSD-Lizenz
http://de.wikipedia.org/wiki/OpenLayers

Bei XMPP welches auch unter den Namen Jabber bekannt ist, handelt es sich um freies und standardisiertes Protokoll für Instant Messaging. Auf der Suche nach einer entsprechenden Bibliothek für XMPP welche unter iOS und Mac OS X läuft bin ich auf das “XMPPFramework” gestoßen. Die Selbstbeschreibung des Autors sieht dabei vielversprechend aus:

XMPPFramework provides a core implementation of RFC-3920 (the xmpp standard), along with the tools needed to read & write XML. It comes with multiple popular extensions (XEP’s), all built atop a modular architecture, allowing you to plug-in any code needed for the job. Additionally the framework is massively parallel and thread-safe. Structured using GCD, this framework performs well regardless of whether it’s being run on an old iPhone, or on a 12-core Mac Pro. (And it won’t block the main thread… at all)

Das Framework ist dabei unter https://github.com/robbiehanson/XMPPFramework zu finden und wird unter einer BSD Lizenz zur Verfügung gestellt. Neben der Dokumentation im Wiki gibt es auch eine Google Group welche unter https://groups.google.com/forum/?fromgroups#!forum/xmppframework zu finden ist.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Xmpp