Skip to content

Petition für Netzneutralität

Logo der Initiative Pro NetzneutralitätDie Petition der Initiative Pro Netzneutralität setzt für eine Gleichbehandlung aller Daten ein. Denn diese ist eine Grundvoraussetzung für freie Meinungsäußerung und den uneingeschränkten Zugang zu Informationen. In den USA haben sich jüngst Google und Verizon über das Thema unterhalten und damit für viel Unsicherheite gesorgt. Jetzt regt sich auch hierzulande Widerstand gegen die Pläne der Großkonzerne. Von den Initiatoren der Petition wird Netzneutralität wie folgt definiert:

Netzneutralität ist die Grundlage für ein Internet, wie wir es kennen. Wir sind gewohnt, dass Daten ohne Ansicht von Inhalt und Größe – abgesehen von technischen Restriktionen – diskriminierungsfrei transportiert werden. Netzneutralität besagt, dass alle Daten, seien es Emails, Websites oder Musikdateien, gleich zu behandeln sind. Dadurch wird kein Dienst bevorzugt oder benachteiligt. Netzneutralität ist die Voraussetzung für die Gleichberechtigung aller Datenpakete.

Hier kann man es Kristian Köhntopp und vielen anderen gleichtun und die Petition unterzeichnen.

API-Schlüssel in YQL Storage sicher speichern

YQL LogoVorhin habe ich etwas mit YQL herumgespielt und versuchsweise das API von last.fm angezapft. Der Aufruf der einzelnen Methoden setzt einen API-Schlüssel ("API Key") voraus, den man problemlos bei last.fm beantragen kann. Ich habe mich lange gefragt, wie ich diese Methoden mit reinem Javascript auf einer öffentlich zugänglichen Webseite aufrufen kann, ohne meinen API Key ebenfalls öffentlich zu machen. Denn beim Testen innerhalb der YQL Console ist er Teil des SELECT-Statements, auf meiner Seite darf er das nicht mehr sein. Im folgenden zeige ich, aufbauend auf einem Artikel von Nagesh Susarla, was zu tun ist, damit man den geheimen API-Schlüssel geheim halten und dennoch für seine YQL-Abfragen nutzen kann.

Damit kann ich beispielsweise meine wöchentlichen Top-Künstler von last.fm abrufen kann, reichen mir ein paar Zeilen Javascript-Code, einen eigenen Webserver benötige ich dafür gar nicht. Als Grundlage dient mir das offizielle YQL-Tutorial First YQL Application, das ihr euch vielleicht ansehen solltet, falls ihr noch nie mit YQL zu tun hattet. Die Daten, sprich meine Top-Künstler, beziehe ich aus der Community Table lastfm.user.getweeklyartistchart (dort auf Test klicken).

Um nun an meine Liste heranzukommen, schicke ich folgende Abfrage ab:

select '*' from lastfm.user.getweeklyartistchart where user = 'numblog' and api_key = 'API_KEY'

In der YQL Console ausführen (ihr benötigt einen gültigen API Key) - Hinweis: Die Hochkommata um das Sternchen bitte weglassen; die stehen da nur, weil sonst das Syntax-Highlighting kaputt geht.

Wollte ich diese Abfrage in meine Webseite einbinden, wäre der API Key für alle lesbar:

Ich will natürlich vermeiden, dass Dritte mit meinem API Key auf last.fm zugreifen. Hier kommt Yahoo! Sherpa ins Spiel, ein Key-Value-Store in der Cloud. Dieser kann ebenfalls via YQL angesprochen werden und bietet die üblichen Vorteile (und Nachteile) einer Cloud-Lösung. Zwei Open Data Tables werden angeboten, yql.storage und yql.storage.admin, wobei yql.storage.admin die Tabelle unserer Wahl ist, weil sie nur nach erfolgter OAuth-Anmeldung oder über die YQL Console befüllbar ist. Mehr Info dazu bietet die Dokumentation.

Aber gehen wir noch einmal einen Schritt zurück. Anstatt den API Key in der WHERE-Bedingung zu übergeben, könnten wir auch folgendermaßen vorgehen und die Variable schon vor unserer Abfrage setzen:

use 'http://www.datatables.org/lastfm/lastfm.user.getweeklyartistchart.xml' as lastfm.user.getweeklyartistchart;
set api_key='API_KEY' on lastfm.user.getweeklyartistchart;
select "*" from lastfm.user.getweeklyartistchart where user = 'numblog';

Wenn wir dies nun mit der Tabelle yql.storage.admin verbinden und in der YQL Console (in eingeloggtem Zustand, ihr benötigt also auch einen Yahoo!-Account) die Daten mit dem entsprechenden Statement in die Cloud schreiben:

insert into yql.storage.admin (value) values ("use 'http://www.datatables.org/lastfm/lastfm.user.getweeklyartistchart.xml' as lastfm.user.getweeklyartistchart;
set api_key='API_KEY' on lastfm.user.getweeklyartistchart;")

dann erhalten wir dem folgenden ähnliches XML zurück:

    
        store://I2KUjXfoobarAzIw0v3vfv
        store://p6QZPnGmgyoafoobarNimz
        store://jTfoobarMLleWbJoMY8phd
    

Dieses Ergebnis solltet ihr euch gleich mal in einen Editor kopieren, denn das benötigen wir gleich wieder zur Abfrage auf unserer Webseite. Kurz erklärt:

  • Der execute-Schlüssel kann nur zur Ausführung von Abfragen verwendet werden. Die hinterlegten Daten werden nicht ausgegeben.
  • Der select-Schlüssel sollte geheim bleiben, denn damit lassen sich die Einträge aus yql.storage auslesen.
  • Der update-Schlüssel erlaubt das Verändern dieser Einträge; somit sollte auch er geheim bleiben.
Mithilfe des execute-Schlüssels, den wir als Umgebungsvariable übergeben, lässt sich unsere Abfrage nun ohne Angabe des API Key ausführen:

Ihr könnt in der YQL Console auch gern die Sicherheit des execute-Schlüssels testen und werdet einen Permission-Error zurückbekommen:

select * from yql.storage where name='store://I2KUjXfoobarAzIw0v3vfv'

In der YQL Console ausführen.

Somit steht dem clientseitigen Anzapfen diverser APIs nichts mehr im Wege, auch wenn ein API Key verlangt wird. Momentan gibt es bereits weit über 800 Open Data Tables, über die Daten von den verschiedensten Diensten abgerufen werden. Viele davon sind frei zugänglich, andere benötigen einen API Key. Fragt ihr diese vom Server aus ab, stellt das kein Problem dar. Eine rein clientseitige Lösung im Browser hat aber auch ihren Charme. Es wird kein Server benötigt und daher auch nicht belastet, Yahoo! übernimmt im Hintergrund viel Arbeit (Caching, Fehlerbehandlung, ...) für euch, und möglicherweise ist alles viel schneller. Und jetzt auch sicher.

Hier die simple Ausgabeliste meines einfachen Beispiels:

<div id="yql_lastfm_results" style="margin-left:1em;"></div>
<script src="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20lastfm.user.getweeklyartistchart%20where%20user%20%3D%20'numblog'&format=json&diagnostics=true&env=store%3A%2F%2FI2KUjXc5O0hZAzIw0v3vfv&callback=top_stories"></script>

Waldhof Mannheim vor der Oberliga-Saison 2010/11

Am morgigen Donnerstag, dem 22. Juli, steht das erste Saisonspiel für den traditionsreichen SV Waldhof Mannheim 07 an. In der ersten Runde des BFV-Pokals tritt die Mannschaft um 19 Uhr beim SV Rohrbach an. Nach den lange andauernden Querelen, nach dem Lizenzentzug für die Regionalliga, nach Trainerentlassung und Neubesetzung des Postens, nach Abwendung der Insolvenz und nach dem Aufbau eines fast komplett neuen Kaders ist dies ein erster Schritt in Richtung Normalität.

Seit den glanzvollen Bundesliga-Jahren sieht "Normalität" in meinem Verein allerdings durchaus anders aus als anderswo; nennen wir es also "relative Normalität". Wie so häufig in den vergangenen Jahren müssen sich die Fans an viele neue Spieler gewöhnen. Mit Fazlija und Waldecker in der Defensive und Myftari im Mittelfeld sind immerhin einige bekannte Gesichter an den Alsenweg zurückgekehrt. Auch aus der zweiten Mannschaft und der sehr erfolgreichen U19 wurden junge Talente in die Mannschaft geholt. Trainer in der aktuellen Saison ist mit Reiner Hollich ein echtes Waldhof-Urgestein.

Die überfällige Neuausrichtung des Vereins wird auch in anderen Bereichen deutlich. Die Webseite wurde vorsichtig überarbeitet. Und die immer noch zahlreichen und engagierten Fans bringen sich konstruktiv in die Vereinsarbeit ein, allen voran der Fan-Dachverband ProWaldhof. Das verdeutlichen Aktionen wie der Flashmob am Wasserturm oder die überall in der Stadt aufgehängten Transparente.

Bei einem Besuch im Rathaus und beim Stammtisch-Gespräch mit dem Mannheimer OB Kurz wurde gestern konstruktiv über die Zukunft des SVW diskutiert. Von Seiten der Stadt wurde Unterstützung bezüglich der Sponsorensuche und der Fanproblematik signalisiert. SVW-Geschäftsführer Laib kam der Forderung nach mehr Transparenz nach und legte einige Zahlen offen, die bedingt optimistisch stimmen. In Kürze soll sogar ein Trikotsponsor für die neue Saison vorgestellt werden. In der vergangenen Rückrunde musste die Brust der Spieler leer bleiben. Allerdings fehlen immer noch 200.000 Euro zur Deckung des Oberliga-Etats.

Nach wie vor steht also die Finanzierung des Vereins auf tönernen Füßen. Wenn alles gut läuft, ist die Mannschaft sportlich erfolgreich, und der Etat kann gestemmt werden. An den umgekehrten Fall möchte ich lieber gar nicht denken ;-) Vielmehr freue ich mich, dass es nun, gerade mal elf Tage nach dem WM-Endspiel, wieder losgeht. Und wie zu Beginn einer jeden Saison bin ich guter Dinge, dass diesmal alles besser wird. Ich hoffe bloß, dass ich zur Winterpause nicht wieder grandios enttäuscht werde. Waldhof-Fans haben Geduld, sehr viel Geduld. Aber unendlich ist auch diese nicht ...

Nativer Spotify-Client für Linux

Screenshot des Spotify-Clients (skaliert)

Spotify, mein bevorzugter Musik-Streamingdienst, hat auf die Forderungen nicht gerade weniger User reagiert und vorgestern eine erste Vorschau-Version von Spotify für Linux veröffentlicht.

Das berichtet u.a. das Ubuntu-Blog OMG! Ubuntu, wo sich insbesondere nützliche Hinweise zur Installation finden. Auch bei Spotify sind die einzelnen Installationsschritte für Ubuntu 10.04 bzw. Debian Squeeze aufgeführt. Das neue Programm, das sich allerdings nicht ganz nahtlos in den GNOME-Desktop einfügt, ist momentan nur für Premium-Kunden nutzbar. Die werbefinanzierte Variante scheitert noch an der problemlosen Integration der Werbeanzeigen.

Das Programm läuft bei mir gut und stabil, lediglich der Lautstärkeregler funktioniert nicht. Das kann aber daran liegen, dass ich spotify-client-gnome-support wegen einer falschen gconf2-Version nicht installieren konnte. Alle anderen Features wie Facebook- und last.fm-Anbindung scheinen aber schon zu laufen.

Nach einer gelungenen Android-App gibt es Spotify nun also auch für Linux, allerdings immer noch mit einem Problem: In Deutschland kann Spotify leider bis auf wenige Ausnahmen nicht oder nur über (semi-legale?) Umwege genutzt werden, da sich Spotify und die GEMA bisher nicht über Finanzierung und Abgaben einigen konnten.

Ich blogge hier trotzdem auf deutsch darüber, weil ich weiß, dass das Interesse hierzulande groß ist. Die Positionen beider Seiten, also sowohl von Spotify als auch von der GEMA sind nachvollziehbar, selbst wenn man dem Verhalten der GEMA kritisch gegenübersteht. Ich hoffe, dass hier bald wieder Bewegung in die Sache kommt. International positionieren sich mittlerweile diverse Angebote, die gegen Spotify mit teilweise ähnlichen, aber auch mit grundsätzlich anderen Finanzierungsmodellen antreten wollen. Je mehr Anbieter erfolgreich sind, umso stärker wird auch der Druck, in Deutschland eine Lösung zu finden.

Update: Das Problem mit der gconf2 ist mittlerweile ganz offensichtlich gefixt. Allerdings funktioniert der Lautstärkeregler bei mir immer noch nicht.

Control Your Android Device From The Desktop

Alexandre Thiel hat ein kleines Java-Tool geschrieben, das eine Fernsteuerung eures Android-Geräts vom Desktop aus ermöglicht. Maus- und Tastatur-Eingaben auf dem Handy funktionieren offenbar nur auf gerooteten Phones, aber auch auf einem ungerooteten Phone könnt ihr zumindest eure Aktionen sehen und sogar recorden. Ein paar Voraussetzung müssen erfüllt sein, aber wenn ihr an Android-Entwicklung interessiert seid, sollten sie kein allzu großes Hindernis darstellen. Ihr benötigt das Android SDK und Java - die meisten von euch werden das sowieso schon installiert haben.

Stellt nun erstmal, wie Christoph ausführt, euer Android-Handy passend ein, öffnet "Einstellungen -> Anwendungen -> Entwicklung" und aktiviert "USB-Debugging", danach deaktiviert die Option "Verwendung nur als Massenspeicher" unter "Einstellungen -> Telefoninfo -> Weitere Einstellungen", oder wählt die Verbindung entsprechend beim Einstecken des USB-Kabels aus.

Geht nun auf die androidscreencast Projektseite und überfliegt noch einmal die Installationsanweisungen: Schritt 4 beinhaltet den Link zum JNLP File, welches zum Projektstart benötigt wird. Das speichert ihr auf eurem Rechner. Bevor ihr das Java-Tool ausführt, solltet ihr zunächst checken, ob die Android Debug Bridge euer Device erkennt:

$ cd android-sdk/tools
$ sudo ./adb start-server
\* daemon not running. starting it now \*
\* daemon started successfully \*
$ ./adb devices
List of devices attached
HT042PL05916    device

Wenn das funktioniert hat, euer Gerät also in der device list angezeigt wird (wie mein Desire), dann kann es losgehen:

$ PATH=$PATH:/your/path/to/android-sdk/tools/
$ javaws androidscreencast.jnlp

Die zwei Java-Sicherheitsdialoge müsst ihr schon entsprechend bestätigen, sonst geht nichts. Im Anschluss öffnet sich dann aber endlich das Viewer-Fenster:

Screenshot meines HTC Desire
Screenshot meines HTC Desire

Ich finde das Tool extrem praktisch, weil ich ansonsten auf einem nicht-gerooteten Phone keine Screenshots von Apps machen kann - oder geht das irgendwie? Die Darstellung (Auflösung, Refresh-Geschwindigkeit) ist sicher noch nicht optimal, aber ich kann zunächst mal gut damit leben. Auch die wirkliche Fernsteuerung des Geräts vom Desktop aus vermisse ich noch nicht wirklich. Wenn die Entwicklung des Tools schnell vorankommt, wird es sicher auch dafür Lösungen geben. Danke an dieser Stelle noch einmal an Christoph von linuxundich.de fürs Posten. Und hier ist zu guter Letzt noch ein Video, das androidscreencast in Aktion zeigt: