Drafts-Rezepte II: Kurzlinks mit is.gd

Es ist ja durchaus sinnvoll, Links ab und an mal zu verkürzen, jedoch dafür extra eine App zu installieren erscheint mir etwas übertrieben. Das lässt sich zwar auch im Browser erledigen, artet aber in eine Klickorgie aus, auf die ich auch keine Lust habe. Mit Pythonista und Drafts ist das im Handumdrehen erledigt.

Dieses kleine Script habe ich als isgd.py im Dokumentenverzeichnis von Pythonista angelegt:

import clipboard
from console import alert
from sys import argv, exit
from urllib import urlopen
import webbrowser

def error_dialog(title, message):
	'''A diaolog box for error messages.'''
	try:
		alert(title, message)
	except KeyboardInterrupt:
		pass
	webbrowser.open('drafts://')
	exit(message)

def shorten_with_isgd(long_url):
	'''basic link-shortening via is.gd.'''
	api_url_base = 'http://is.gd/create.php?format=simple&url='
	try:
		response = urlopen(api_url_base + long_url)
	except IOError:
		error_dialog('Connection Error', 'Unable to perform request.')
	if response.getcode() == 200:
		short_link = response.read()
		clipboard.set(short_link)
	else:
		error_dialog('Error', 'Status code: {0} - Message: {1}'.format(response.getcode(), response.read()))
	webbrowser.open('drafts://')

if __name__ == '__main__':
	shorten_with_isgd(argv[1])

Gist

Es ist alles recht simpel gehalten, die Fehler werden nur rudimentär behandelt, aber es sollte ganz gut aufgehen. is.gd habe ich für den Anfang als Dienst gewählt, weil dort nicht großartig Registrierungen notwendig sind, um mit der API Links zu kürzen.

In Drafts muss dann nur die folgende Action angelegt werden, um das Script auszuführen.

pythonista://isgd?action=run&argv=[[draft]]

Import

Die Handhabung ist nun denkbar einfach: In Drafts in einer neuen Notiz die lange URL eingeben, danach die Action auslösen. Es wird sich Pythonista öffnen. Sofern keine Fehlermeldung aufpoppt, ist der Kurzlink in die Zwischenablage kopiert worden. Auf jeden Fall wird aber wieder Drafts geöffnet.

Noch ein bißchen mehr Freiheit, ADN, dann passt’s

Die Loblieder auf app.net (ADN) spare ich mir an dieser Stelle mal größtenteils, es ist ein Dienst, der mehr ist als alpha, seine offenkundigste Anwendung. ADN ist nicht allein ein Twitter-Klon gegen Bezahlung. Es gibt auch erste Ansätze einer Chat-Umgebung mit Patter und auch eine rudimentäre Dateiverwaltung des Onlinespeichers, den ADN bereitstellt. ADN ist derzeit vor allem ein Experiment, eine sozialen Plattform im Web zu etablieren, die tatsächlich mal überein vergleichsweise transparentes Geschäftsmodell verfügt. Ich mag ADN, andere Menschen müssen meine Ansicht nicht teilen. Es hängt zu sehr von der eigenen Vorstellungskraft ab, was davon zu halten ist. Ich kann mir viele Dinge vorstellen, die mit ADN realisiert werden könnten.

Auch der Kritik an ADN will ich mich grundsätzlich nicht verschließen, wobei der derzeit wichtigste für mich kaum eine Rolle spielt. Es droht auch hier eine Zentralisierung meines Onlinelebens, also das Hängen am Tropf eines einzigen Anbieters. Diese Bedenken sind berechtigt, wegen der Größe von ADN noch nicht drängend. Und: Der Anbieter macht sich auch abgängig von mir, von meinem Geld, das ich nur zu zahlen bereit bin, solange ich mich nicht hintergangen fühle. Denn auch wenn es nur ein schwache Sicherheit ist, ist zahle Geld für einen Service, den mir ADN in einer bestimmten Form zusichert. Das ist allemal besser als vom guten Willen eine Facebook, Google oder Tumblr leben zu müssen.

Weit stärker stört mich allerdings, wie wenig frei ich tatsächlich mit meinen Daten umgehen kann. Denn ich habe einen reinen Premium-User-Account, aber keine Developer-Privilegien, für die ich doch noch etwas mehr zahlen müsste. Das ist für meine Begriffe eine ordentliche Delle im Konzept von ADN, denn sie bestehen darauf, dass meine Daten immer mir gehören. Derzeit bin ich aber überwiegend auf Drittanbieter angewiesen. Dev Lite könnte in meinem Fall Abhilfe schaffen, denn damit erhalte ich immerhin ein persönliches Access-Token für die API, um mir selbst aushelfen zu können, ohne grundlegende Programmierkenntnisse geht da aber auch nichts.

ADN täte gut daran, die Selbstbestimmung über die eigenen Daten zu erhöhen, gerade wenn eine weitere Öffnung des Dienstes über technikaffine Kreise hinaus erlangt werden soll. Denn genau für die Freiheit zahle ich. Es wird jetzt Zeit, dass es noch leichter wird, mir die Freiheit zu nehmen.

ZEIT ONLINE: Im Prinzip eine feine Sache die API, aber…

Sehe ich das richtig, die Im November letzten Jahres gestartete API von ZEIT ONLINE bietet alles bis auf eine Volltextsuche? Da kann ich mir lange die Augen reiben, die Lizenz klingt so:

Die Speicherung und Ausgabe des Volltexts von Artikeln ist zum derzeitigen Stand nicht möglich. Bitte beachten Sie, dass die Beiträge unserer Autoren dem Schutz des Urheberrechts unterliegen. Falls Sie ein Projekt auf Grundlage von Volltextübernahmen planen, möchten wir Sie bitten, mit uns Kontakt aufzunehmen. Es gelten die Allgemeinen Nutzungsbedingungen von ZEIT ONLINE. Für Rückfragen stehen wir gern zur Verfügung.

Ich will ja nur suchen, nicht wiedergeben oder speichern. Dann schaue ich mir mal die Endpoints an. Da ich Volltexte durchsuchen will, klingt Content doch genau richtig. Doch die Inhalte werden nicht durchsucht, wenn ich es richtig sehe, allenfalls eine Zusammenfassung kommt dabei rum. Bei den Keywords ist mein Vertrauen auch nicht so groß, dass mehr als nur die relevantesten Begriffe ausgewertet werden können. Im wahrsten Sinne des Wortes ist es nicht, was ich suche.

Auf Anforderung gibt es da Möglichkeiten? Nicht meine Sache. So schön eine API für eine der renommiertesten Wochenzeitungen Deutschlands ist, mit der Beschneidung des reizvollsten Datenbestandes, alleine schon nur zur Auswertung, bleibt die API zwischen Datenfreizügigkeit und Urheberrechtsschranken gefangen. Und ehrlich, der trockene Hinweis auf die Urheberschaft der Autorinnen und Autoren lässt Schlimmes erahnen, sollte das Leistungsschutzrecht, wovon auszugehen ist, kommen. Ich benutze keine API, die mir jeder Zeit juristisch eins um die Ohren hauen kann.

So viel dazu, bevor ich einen API-Key hole, wenn ich einen hole sollte.

StumbleUpon: Y U No API?

Bin nur ich, es kann nicht nur ich sein? Oder ist StumbleUpon mittlerweile so irrelevant, dass unsereiner sich darum nicht kümmert? Wenn es hiernach geht, dann kann es auch tatsächlich damit zusammenhängen, dass die digitale Karawane weitergezogen ist. Aber auch in diesem Fall bleibt es eine Schande: Es gibt keine API, um meine Daten, als die ich sie empfinde, exportieren zu können.

Es gibt eine klitzekleine API zum hauseigenen Link-Shortener su.pr. Das ist nicht spektakulär, wir leben im Jahr 2013, da werden Links an jeder Ecke gekürzt. Und die Badges können eingebunden werden. Das ist allerhöchstens Web 2.0, also auch so etwas wie ein digitaler Staubfänger. Und vor allem ist es nicht, was ich meine und suche. Denn einige Pfade führen zu StumbleUpon, sie sind nicht mal mehr die bequemsten, aber unsereins kann noch damit leben. Oder wäre der Konjunktiv an dieser Stelle besser.

Ja, ist er. Denn es führt kein Weg von StumbleUpon zurück in die bunte Welt, da braucht es mehr als das. Womöglich zeigt StumbleUpon sogar einen anderen Weg des Locked-In, der weit weniger Heilsversprechen ist, als es manche sich einreden wollen. Ich mache keinen Hehl daraus, dass im Locked-In die Zukunft liegt, ich schreibe das hier auf einem iPhone, vom Kunstrasen hinter den frisch gestrichenen Betonwänden Apples. Aber das Locked-In ist auch ein wagemutiges Spiel, es braucht anscheinend ein kritische Masse. Aber was hat das mit StumbleUpon und der fehlenden API zu tun?

Gehen wir von meinen Daten aus, sie sind heute beweglicher denn je, sie fliegen durch Wolken von Google, Apple, Dropbox oder Twitter. Warum sie das können? Weil die Daten sich mit mir bewegen, wohin ich auch gehe. Und damit ist nicht nur eine App auf dem Smartphone gemeint, ich meine, jede meiner Bewegungen im Netz zieht einen luftigen Schweif hinter mir her. Die Bequemlichkeit fordert es, oAuth macht es möglich: Viele Dienste sind miteinander verwoben, sie korrespondieren miteinander. Mit mir, wegen mir und in gruseligen Momenten über mich. Dennoch ist meine Wahrnehmung gespalten, ich kenne die Risiken, erfahre aber auch die Qualitäten der Freizügigkeit.

Jetzt habe ich mich wunderbar in eine logische Falle geschraubt, meine Datenschutzbedenken auf der einen Seite, mein Wunsch nach Datenfreizügigkeit auf der anderen. Das Dilemma habe ich selbst für mich noch nicht gelöst. Um wenigstens halbwegs wieder auf meinen eigentlichen Punkt kommen zu können, blende ich das Thema Datenschutz an dieser Stelle wieder aus.

Hier der Punkt: Besteht die Möglichkeit, nur eine entfernte, dass sich der ehemalige Koloss StumbleUpon damit verspekuliert hat, die eigenen Nutzerinnen und Nutzer einschließen zu wollen, sich aber selbst effektiv schleichend vom Netz ausgesperrt hat? StumbleUpon war nie eine kommunikative Gemeinschaft, mit der de facto Ausgrenzung der deutlich anziehungsstärkeren Netzwerke Twitter oder Facebook haben sie sich womöglich selbst das Wasser abgegraben.

Jetzt noch mit einer API zu rechnen ist eigentlich naiv, wäre aber schön, um mit meinen Daten durchs Netz wandern zu können. Es ist lächerlich, das ein Internetunternehmen über Jahre den eigenen Nutzerinnen und Nutzern zumutete, die eigenen Lesezeichen nur bewerkstelligen zu können, indem ein Browser-Toolbar von StumbleUpon installiert wird, mit dem dann die Daten als XML gezogen werden können. Je länger ich darüber nachdenke: Schön war’s mit dir StumbleUpon, aber besser für mich, dass es aus ist.

Codecademy hat Web-API-Kurse

Mir ist jetzt erst aufgefallen, dass Codecademy nicht CodeAcademy heißt. Ist eigentlich auch egal, dort gibt es gute Grundlagenkurse in gängigen Skript-/Programmiersprachen und Webtechniken. Seit Neuestem werden dort auch kostenlose Kurse zu APIs angeboten. Das trifft sich hervorragend, denn bei meinen bislang kurzen Auseinandersetzungen, habe ich noch nicht wirklich Grundsätzliches gelernt.

Die Übungen sprechen diverse APIs an, auch wenn derzeit nicht die geläufigsten Namen der Social-Media-Welt dabei sind. Das macht nicht wirklich etwas, da die Grundprinzipien bei den gängigen RESTful-APIs vergleichbar sind.

Im Moment sind Kurse für drei Sprachen vorhanden. Für JavaScript, Ruby oder Python gibt es jeweils einen kurzen Grundkurs zu den Basics von APIs, also wozu diese Schnittstellen dienen oder wie das mit den HTTP-Request ist. Darauf folgen die eigentlichen inhaltlichen Online-Kurse, in denen ein geführter Gang durch Code in der jeweiligen Sprache beginnt.

Da ich mich derzeit auf Python eingeschossen habe, habe ich dort angefangen. Der simpelste Kurs ist mit Sicherheit der, in dem nur ein wenig Katzencontent als Platzhalter geladen wird. Da ist noch recht wenig Arbeit zu leisten. Etwas umfassender wird es bei der API von bitly, doch der für mich schwerste Brocken waren die Kurse zu den APIs von NPR.

Hierzulande wird dieses spendenfinanzierte, öffentliche Radio der USA weniger bekannt sein. Die Unterschiede sind gewaltig, doch hat der Sender selbst einen Bildungsanspruch, der mit denen der öffentlich-rechtlichen in Deutschland vergleichbar ist. Daher bietet NPR auch viele verschiedene Formate, Texte, Radiosendungen, Mitschriften und Videos frei zugänglich an.

Dementsprechend ist die Story-API enorm groß. NPR wirft mit riesigen Datenobjekten um sich. Glücklicherweise sind die Übungen in Python gut strukturiert, sodass es leicht fällt, recht zügig die erste Basis-URL mit Query-Elementen versehen zu haben, die mit JSON-, XML- oder andern Objekten gewürdigt werden. Danach geht es darum, aus diesen Objekten die relevanten Informationen auszulesen.

Diese Kurse zu NPR-APIs haben den Vorteil, dass sie auf zusätzliche Bibliotheken verzichten. Zwar ist es dadurch weniger komfortabel, doch der Lerneffekt ist größer, solange die Querys und Objekte „von Hand“ erstellt werden. Bibliotheken, die Requests vereinfachen oder beim Parsen der Datenobjekte Zeit sparen, nehmen am Anfang zu viel Last ab und würden den Blick auf die Konzepte verstellen.

So sind die Kurse zu den APIs gute, praxisbezogene Lerneinheiten für alle Einsteigerinnen und Einsteiger, die ihre Kenntnisse in den jeweiligen Sprachen auf die Probe stellen wollen. Gerade das anfangs überwältigende der NPR-Objekte macht dabei klar, wie wichtig gute Kenntnisse sind, wie diese Daten am besten zu verarbeiten sind.