Wie alt siehst du aus?

Microsoft benötigte eine Demo für eine Keynote auf der Build2015-Konferenz. Herausgekommen ist die Webseite How Old Do I Look? welche einige Azure Services und APIs nutzt. Diese Webapplikation ermittelt aus einem Bild das Geschlecht und das Alter der dargestellten Personen. Die Erkennung des Alters ist dabei allerdings meist mit kleineren Fehlern behaftet.

Die Demo-Applikation anhand eines Beispiels

Die Demo-Applikation anhand eines Beispiels

Bei Microsoft hoffte man auf ein paar hundert Benutzer um die Echtzeit-Statistik zu testen. Im Endeffekt hat man sich um einige Größenordnungen verschätzt. Bereitgestellt hat Microsoft die Demo-Applikation unter how-old.net – dazu passend gibt es noch einen Blog mit Hintergründen.

Feed Cache unter WordPress löschen bzw. beschränken

Vor ein paar Tagen schrieb ich eine iCal-Erweiterung für bestehendes WordPress-Plugin, welches unter anderem die Feed-API von WordPress nutzte. Bei der Entwicklung stellte sich allerdings heraus, das eine Änderung im Code, nicht gleich eine Änderung in den entsprechenden Feeds nach sich zog. Ursache für dieses Problem war der eingebaute Feed-Cache von WordPress. Mit einem kleinen Funktion im Plugin, konnte dieser allerdings für Debug-Zwecke abgeschaltet werden:

function getFeedCacheTime($seconds) 
{
    return 1;
}

add_filter('wp_feed_cache_transient_lifetime', 'getFeedCacheTime');

Die Funktion getFeedCacheTime gibt dabei die maximale Cache-Zeit an – in diesem Fall eine Sekunde, so das der Cache faktisch deaktiviert ist und die Entwicklung ohne störende Wartezeiten weiter betrieben werden konnte.

NSSpeechSynthesizer und NSSpeechRecognizer unter Mono nutzen

Unter Mac OS X gibt es in der API die Klassen NSSpeechSynthesizer und NSSpeechRecognizer. Während die eine Klasse dazu dient Text auszugeben, kann die andere Klasse dazu genutzt werden Sprache zu erkennen. Der NSSpeechSynthesizer kann unter Mono einfach genutzt werden:

var synthesizer=new NSSpeechSynthesizer();
synthesizer.StartSpeakingString("Hallo Welt.");

Schwieriger wird das ganze bei der Klasse NSSpeechRecognizer. Mit Hilfe dieser Klasse ist es möglich auf bestimmte Kommandos zu reagieren. Im ersten Moment muss die Klasse angelegt werden und einige Optionen gesetzt werden:

var recognizer=new NSSpeechRecognizer();

string[] cmds=new string[] {"Computer"};

recognizer.Commands=cmds;
recognizer.BlocksOtherRecognizers=false;
recognizer.DisplayedCommandsTitle="RecognizerTest";
recognizer.Delegate=new RecognizerDelegate();

recognizer.ListensInForegroundOnly=false;
recognizer.StartListening();

Wenn nun das Kommando Computer erkannt wird, wird die Instanz vom RecognizerDelegate angerufen. Das Delegate sieht dabei wie folgt aus:

public class RecognizerDelegate : NSSpeechRecognizerDelegate
{
    public override void DidRecognizeCommand(NSSpeechRecognizer sender, string command)
    {
        //Do something
    }
}

Im Delegate selbst gibt es die Methode DidRecognizeCommand welche als Parameter das erkannte Kommando enthält.

Leichtgewichtige Twitter-API-Bibliothek für C#

Die meisten Bibliotheken welche Zugang zur Twitter-API in C# (.NET/Mono) bereitstellen haben ein Problem. Sie sind schlicht zu groß. Meist bestehen sie aus einem dutzend Bibliotheken und werden mit der Zeit immer unhandlicher. So war auf der Suche nach einer leichtgewichtigen Bibliothek für den Zugriff auf das Twitter-API. Fündig wurde ich mit TinyTwitter.

TinyTwitter auf GitHub

TinyTwitter auf GitHub

Diese Bibliothek besteht im Kern aus einer Datei und lässt sich einfach verwenden. Um einen Tweet zu senden, recht folgender Code:

var oauth = new OAuthInfo
{
    AccessToken = "YOUR ACCESS TOKEN",
    AccessSecret = "YOUR ACCES SECRET",
    ConsumerKey = "YOUR CONSUMER KEY",
    ConsumerSecret = "YOUR CONSUMER SECRET"
};

var twitter = new TinyTwitter(oauth);

twitter.UpdateStatus("I'm tweeting.");

Zu finden ist die Bibliothek auf GitHub. Lizenziert ist TinyTwitter unter der Apache Lizenz und damit freie Software.

API für Hackerspaces

In den letzten Jahren hat die Anzahl der Hackerspaces beträchtlich zugenommen. Mit der SpaceAPI versucht man Informationen über diese Hackerspaces zu sammeln, so das man sie über eine API abrufen kann. Mittlerweile sind einige Apps entstanden, welche diese API nutzen.

spaceapi.net

spaceapi.net

Der Quelltext für die SpaceAPI-Projekte ist auf GitHub zu finden, allerdings sind nur wenige bzw. keine Informationen über die Lizenzen zu finden, so das nicht ganz klar ist, ob es sich bei den Projekten um freie Software handelt. Zu finden ist die Seite SpaceAPI-Projektes unter spaceapi.net.