seeseekey.net - Invictus Deus Ex Machina

Wenn man Spiele für den Browser mittels Javascript entwickelt, so kann es je nach Spiel passieren, das man Funktionen für das sogenannte Path Finding benötigt. Gemeint sind dabei Algorithmen welche einen Weg von A nach B auf einem Spielfeld finden. Mittels der PathFinding.js Bibliothek, kann man solche Funktionalität einfach in seinen Projekten nutzen.

Die Testapplikation für PathFinding.js

Lizenziert ist PathFinding.js unter der MIT-Lizenz und damit freie Software. Der Quelltext ist auf GitHub zu finden. Eine Demo um die Bibliothek mittels eines grafischen Frontends zu testen, gibt es auf den Seiten des Autors.

Normalerweise sind Favicons statische Gebilde. Allerdings wurde schon Tetris für das Favicon umgesetzt. Wer also etwas Bewegung in sein Favicon bringen möchte, sollte sich die Javascript Bibliothek favico.js anschauen. Mit der Bibliothek ist es möglich sein Favicon zu animieren oder gleich komplette Videos in diesem abzuspielen. Auch der Zugriff auf die Webcam und die anschließende Darstellung im Favicon sind möglich.

lab.ejci.net/favico.js/

Der Quelltext der Bibliothek ist auf GitHub zu finden. Lizenziert ist das ganze unter der MIT-Lizenz und der GPL und damit freie Software.

Sogenannte Ribbons hatte Microsoft durch seine neueren Office-Versionen bekannt gemacht. Für WPF gibt es Ribbon-Unterstützung in Form des Namespaces System.Windows.Controls.Ribbon. Möchte man Ribbons allerdings in Windows Forms einsetzten, muss man Fremdkomponenten nutzen. Office Ribbon ist dabei eine solche Komponente.

Eines der Beispiel-Formulare der Bibliothek

Die Bibliothek Office Ribbon stellt Ribbon für Windows Forms zur Verfügung. Die Ribbon lassen sich im Aussehen anpassen, zur Zeit gibt es Themes welche das Aussehen von Office 2007 bis 2013 nachahmen. Lizenziert ist die Bibliothek unter der Microsoft Public License und damit freie Software. Das Projekt wird auf CodePlex gehostet und aktiv entwickelt.

Wenn man eine AVI Datei unter C# schreiben möchte, wird man feststellen das es zwar viele Wege gibt, aber keiner dieser Wege führt nach Rom. Jede vorgeschlagende Variante hat meist Abhängigkeiten, welche man nicht haben möchte. So wird bei vielen Varianten FFMPEG als DLL genutzt, bei anderen werden Windows DLLs genutzt, was dazu führt das der Quellcode nicht unabhängig von der Plattform ist. Abhilfe schafft hier die freie unter der MIT-Lizenz lizenzierte Bibliothek SharpAvi. Um eine AVI-Datei zu schreiben sind mit Hilfe der Bibliothek nur einige Zeilen Quelltext nötig:

//AviWriter anlegen
AviWriter writer=new AviWriter("test.avi");
writer.FramesPerSecond=25;

//Videostream anlegen
IAviVideoStream stream=writer.AddVideoStream();
stream.Width=1920;
stream.Height=1080;
stream.Codec=KnownFourCCs.Codecs.Uncompressed;
stream.BitsPerPixel=BitsPerPixel.Bpp24;

//Encode für Kompression anlegen
//Ohne Encoder wird die Datei unkomprimiert gepsiechert (stream.WriteFrame)
var encoder=new MotionJpegVideoEncoderWpf(stream.Width, stream.Height, 100);
var encodingStream=new EncodingVideoStreamWrapper(stream, encoder);

//Schwarzen Frame anlegen
byte[] frameData=new byte[stream.Width*stream.Height*3];

//Frames schreiben
for(int i=0;i<25; i++)
{
    encodingStream.WriteFrame(frameData, 0);
}

//Writer schließen
writer.Close();

In diesem Beispiel wird eine AVI Datei mit 25 schwarzen Frames erzeugt, was bei der angegebenen Framerate exakt einer Sekunde entspricht. Zu finden ist SharpAvi auf der offiziellen Webseite. Alternativ kann der Spiegel auf GitHub genutzt werden.

Bei Tweepy handelt es sich um eine freie unter der MIT-Lizenz lizenzierte Twitterbibliothek für Python, deren offizielle Webseite unter tweepy.org zu finden ist. Unter anderem wird diese Bibliothek für den Twitter Radiergummi genutzt. Im Gegensatz zu früher hat sich die Installation der Bibliothek etwas verändert. Hierfür sollte man jetzt pip nutzen. Dabei handelt es sich um ein Tool zur Paketverwaltung unter Python. Zur Installation gibt man im Terminal folgendes ein:

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Damit ist pip installiert und kann genutzt werden:

sudo pip install tweepy

Pip installiert hiermit die Bibliothek Tweety und löst alle Abhängigkeiten auf, so das diese anschließend systemweit genutzt werden kann.

Wenn man eine PHP-Applikation schreibt, welche in irgendeiner Form mit Daten hantiert, so fehlen einem bei der Entwicklung meist plausible Testdaten. An dieser Stelle springt die Bibliothek Faker ein. Mit dieser Bibliothek ist es möglich die unterschiedlichsten Daten zu erzeugen. Ein Minimalbeispiel würde dabei so aussehen:

require_once '/path/to/Faker/src/autoload.php';
$faker = Faker\Factory::create();
echo $faker->name; //Erzeugt einen Namen

Möglich wird dies durch die unterschiedlichsten Provider welche angefangen bei Lorem Ipsum über Mailadressen bis Datumsangaben und Hashes alles liefern was das Herz begehrt. Die Bibliothek selbst steht unter der MIT-Lizenz und ist somit freie Software. Zu finden ist Faker in einem GitHub Repository.

Möchte man in einer .NET respektive Monosprache einen Anwendung schreiben welche mit der Twitter API interagiert, so sollte man hierfür eine Bibliothek nutzen um den Aufwand in Grenzen zu halten.

tweetinvi.codeplex.com

Eine empfehlenswerte Biblitothek in diesem Bereich ist dabei Tweetinvi welche auf CodePlex zu finden ist. Tweetinvi ist dabei unter der Microsoft Public License lizensiert und somit freie Software. Die Bibliothek ist dabei problemlos in der Lage mehrere Millionen Tweets zu verarbeiten und befindet sich in aktiver Entwicklung. Ein einfaches Beispiel um einen Tweet abzusetzen könnte dabei so aussehen:

IToken token=new Token(twitterAccessToken, twitterAccessTokenSecret, twitterConsumerKey, twitterConsumerSecret);
ITweet tweet=new Tweet(tweetText, token);
bool success=tweet.Publish();

Damit hätte man den ersten Tweet mit dieser Bibliothek abgesendet.

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

Es gibt Dinge welche man immer wieder gebrauchen kann. In diese fallen unter anderem Matheparser. Einer dieser Parser ist der Yet Another Math Parser kurz YAMP. Dabei handelt es sich um einen von Florian Rappl in C# geschriebenen Parser. Der Parser beherscht dabei die Grundrechenarten, sowie trigometrische Funktionen (Sinus, Cosinus et cetera) und einige andere Dinge. Die Bibliothek steht dabei unter der BSD Lizenz, nachdem sie vorher nur unter der CPOL Lizenz verfügbar war. Bezogen werden kann sie unter https://github.com/FlorianRappl/YAMP.

Weitere Informationen gibt es unter:
http://www.florian-rappl.de/Articles/Page/143/YAMP