Entwicklung

async und await in .NET 4.5

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Da ich erst jetzt dazu kam das neue Visual Studio Express 2012 for Desktop zu installieren, nun eine kurze Erklärung der Schlüsselwörter async und await, wie sie im .NET-Framework 4.5 vorkommen.

Bis jetzt musste immer eine Callback-Funktion verwendet werden, wenn man beispielsweise Netzwerkanfragen senden will, um die Benutzeroberfläche nicht einfrieren zu lassen. Mit den beiden Schlüsselwörtern ist es nun endlich möglich auf die Antwort der Anfrage zu warten.

Beispielsweise funktioniert es mit dem folgenden Code einen String asynchron herunterzuladen:

private async String getData(){
	WebClient client = new WebClient();
	return await client.DownloadStringAsync("http://example.org");
}

Mit dem Schlüsselwort async deklariert man die Funktion als asynchron und stellt das Wort await vor die Aktion, auf die gewartet werden soll.

Eigenes Projekt

EAN13-Plugin für jQuery

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Vor ein paar Tagen habe ich eine von mir programmierte Bibliothek für jQuery zur Erstellung von EAN13 Barcodes auf Github veröffentlicht. Mit jQuery.EAN13 ist es möglich aus einer Nummer einen Barcode als HTML5-Canvas zu erstellen.

Barcode

[Demo](http://demo.johannes-mittendorfer.com/jquery-ean13)

Einbindung des Plugin

Zur Einbindung in eine HTML-Seite fügt man folgendes dem head-Bereich nach der Einbindung von jQuery ein:

<script type="text/javascript" src="js/jQuery.EAN13.min.js"></script>

Verwendung

Im body-Bereich muss an der gewünschten Stelle ein Canvas-Element mit der passenden Größe eingefügt werden:

<canvas id="ean" width="200" height="100">
Your browser does not support canvas-elements.
</canvas>

Nun kann man im JavaScript am Ende des body-Bereiches folgendes eintragen, um den Barcode anzuzeigen:

$("#ean").EAN13("9002236311036");

Weitere funktionen sind im Readme auf der Github-Seite des Projektes zu finden.

Security

Wie funktionieren die iOS 6 Maps?

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Mit iOS 6 wurde eine neue Kartenapp eingeführt. Diese kommt erstmals ganz ohne Google aus und verwendet jetzt Vektorkarten, die Apple eingekauft hat. Auch diese Daten werden jedoch aus dem Internet nachgeladen.

Screenshots

Eine Anfrage nach einer Kartenkachel sieht zum Beispiel so aus: (Ich habe die IDs gekürzt.)

http://gspa23.ls.apple.com/tile?style=13&size=2&scale=0&v=46&z=14&x=8820&y=5700&lang=de&sid=1628527042778230930310178...&tk=fb6f3cfbfcf47c40b20a44aacb...&mapkey=1348503588_3e8f1cd028503e1be44950cf0...

Ich habe versucht die Parameter richtig einzuordnen:

Parameter Bedeutung
style Art der Karte. Hier ist es “13”. Vergleichbar zu iPhoto-Karten mit dem Style “slideshow”
size Größe der Kachel?
scale Skalierung
v ?
z Zoom
x X-Koordinate. (Große Zahl ?)
y Y-Koordinate
lang Sprache
sid ? (ändert sich nicht)
tk ? (ändert sich)
mapkey Womöglich Hash der Anfrage (Teil nach Unterstrich ändert sich)

Auf solche Anfragen antwortet der Apple-Server mit den Kartendaten mit dem Mimetype x-protobuf. Es handelt sich dabei um das Protocol-Buffers-Format, das von Google entwickelt wurde.

Daten

Bis jetzt noch nicht gelungen diese Daten lesabar zu machen, da es sich um ein binäres Format mit benutzerdefiniertem Aufbau handelt.

Security

Was sonst noch war: GMX und die Hacker

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Vor langer Zeit habe ich mir eine Konto bei GMX angelegt, jedoch benutze ich dieses Konto schon seit Jahren nicht mehr. Ich lasse mir aber Email von dort noch weiterleiten, um nicht doch etwas zu verpassen.

Heute habe ich eine Email von GMX erhalten, die augenscheinlich an alle Benutzer des Dienstes ging:

GMX Hilfe

Darin wird erwähnt, dass sich Hacker Zugang zu den Benutzerkonten verschaffen konnten und man darum besser das Passswort ändern sollte. Was man daraus schließen kann: Auch GMX hielt es wohl bisher nicht für nötig Passwörter so zu verschlüsseln, dass es für Hacker unmöglich ist diese zu benutzen. Womöglich wurden die Passwörter sogar in Klartext in einer Datenbank abgelegt.

Gerade im Angesicht immer neuer Hackerangriffe ist es verantwortungslos Passwörter so zu speichern, dass sie Hackern wie auf einem Silbertablett präsentiert werden. Ich habe jedenfalls eine Konsequenz aus der Sache gezogen und nicht mein Passwort geändert, sondern gleich meinen Account dort gelöscht.

Dazu wieder einmal: Unbequem aber sicher: Das seitenspezifische Passwort