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.

NodeBox – Datenvisualisierungsbaukasten

Seien wir ehrlich, im Hausgebrauch gibt es meist nur einen Weg, Daten grafisch darzustellen. Das Ding nennt sich Excel-Diagramm und sieht in der Regel nach gar nichts aus. Außerdem ist die Darstellung von Daten mit Excel handwerklich immer noch ein Plage, das Ergebnis immer dürftig. Nur weil wir uns daran gewöhnt haben, sollten wir es nicht schönreden. Die Tools, die das Office-Paket von Microsoft mitbringt, zwingen auch noch feste Formen auf. Die Gedanken sind frei, wie wir sie darstellen aber nicht – wenn es nach Redmond geht.

Ich zumindest bin mit den bunten Klecksen, die da in jeder PowerPoint-Präsentation hausen, mittlerweile auf Kriegsfuß. Noch komme ich ohne sie nicht aus, der Tag aber wird kommen, an dem ich sie völlig hinter mir lassen kann. Mit NodeBox bin ich da schon einen Schritt weiter.

Noch hatte ich nicht viel Zeit damit, es reicht aber für einen ersten Ausblick. NodeBox verspricht wirklich einiges. Zuallererst die erwünschte Freiheit, auch wenn sie mit den Kosten verbunden ist, anfangs ein wenig mehr Aufwand betreiben zu müssen, um sich daran zu gewöhnen. Doch das Baukastenprinzip, mit dem die Daten und die Aufbereitung dieser Daten in Knoten organisiert ist, ist zugänglich genug.

Schon das erste Tutorial macht klar, hier behalten Anwenderinnen und Anwender die volle Kontrolle über die Daten. Die Schranken zur guten Visualisierung bestehen nur noch in den eigenen Fertigkeiten. Nichts ist mehr mit dem seltsamen faulen Zauber, der in Excel im Hintergrund waltet. Vorgeblich soll es einem in Excel ja leicht gemacht werden, doch sobald man auch nur komplexere Zusammenhänge darstellen will, stellt sich heraus, Excel nimmt einem nicht nur das Denken ab, es führt eine Lobotomie aus.

NodeBox verlangt etwas mehr Eigenleistung, das ist der Preis, der sich aber, so mein Eindruck nach wenigen Probesitzungen, langfristig bezahlt macht.

Was macht Python während der Ausführung?

Online Python Tutor

Gerade arbeite ich mich in die Grundlagen von Python. Die Sprache wird ihrem Ruf absolut gerecht, ich komme mit ihr wesentlich schneller voran, als bei vielen anderen vergleichbaren Sprachen. Einige Konzepte werden zwar noch dauern, bis sie sich bei mir festgesetzt haben, aber das war zu erwarten. Nur ein großes Umdenken bereitete mir bisher Probleme. In Python funktionieren die Variablenzuweisungen etwas anders, als von mir gewohnt und erwartet. Schon einige Daten habe ich mir unbewusst ruiniert, da Python bei Zuweisungen nicht explizit Daten kopiert, sondern bei Bezügen, in unterschiedlichen Variablen auch nur einen Link auf ein und dieselben Daten im Speicher setzt. Diese Zuweisung musste ich erst mal in den Kopf kriegen. Dabei hat mit der Online Python Tutor geholfen.

Dieser visualisiert jeden einzelnen Schritt der Codeausführung. Mein Denkfehler fiel schnell auf, als ich sah, wie sich Schritt um Schritt die Bezüge zwischen Variablen änderten. Dabei ist es für Anfänger von Vorteil, dass der Online Python Tutor sich damit als rudimentärer Debugger darstellt, aber nicht mit unendlichen Optionen überwältigt. Ganz nebenbei fällt damit auch ein brauchbarer webbasierter Python-Editor heraus, mit dem in Windeseile einige Zeilen Code geschrieben und ausgeführt werden können.

[via]

Bundesgit

Schöner kleiner Ansatz, Open Data voranzutreiben. Im Bundesgit finden sich aktuelle Fassungen von Gesetzen. Da alles auf der Versionsverwaltung Git aufsetzt, wird daraus implizit eine Forderung nach transparenter Gesetzgebung. Potenziell, abhängig von der Genauigkeit der Abbildung der Gesetze im Repositorium, ließen sich aber die Änderungen über die Zeit verfolgen. In Gänze kann ich dies nicht abschätzen, setzt das Projekt doch bei einigen blinden Flecken in meiner Bildung an. Namentlich sind dies Git selbst und Python.

Mit den in Python geschriebenen ScraperTools, die Initiator Stefan Wehrmeyer in einem weiteren Repositorium hinterlegt hat, lässt sich aber bestimmt schon etwas anfangen. Die Tools grasen etwa im XML-Format die Gesetzestexte bei Gesetze im Internet ab. Aus dem XML kann dann das im Bundesgit verwendete Markdown gemacht werden. Auch schön, dass dort schon Tools liegen, um Inhaltsverzeichnisse des Bundesanzeigers und Bundesgesetzblattes auszulesen. Bei Null muss also niemand anfangen.

Gerade auch die Idee der Versionskontrolle und des dann anschließenden Bugtrackings in deutschen Gesetzen ist allzu verlockend. Letztlich baut eine ganze junge Partei auch darauf auf. Das Bundesgit zeigt, wie wenig Aufwand nötig ist, um den Anfang mit bestehenden Gesetzen und Softwarelösungen zu machen. Für mich ist es ein willkommener Anlass, mich endlich mal mit Git und mehr mit Python zu beschäftigen.

[via]

Blockly

Noch eine kleine visuelle Spielerei zum einfachen Erstellen von Code. Mit Blockly (via) liegt der Entwurf für einen graphischen Editor vor, in dem nach dem Baukastenprinzip Code zusammengesteckt wird. Einzelne Kontrollelemente werden wie Puzzlestücke aneinandergereiht.

Noch ist es nur ein Konzept, mit den derzeit in der Code-Demo vorhandenen Funktionen ist aber schon einiges möglich. Grundlegende mathematische und logische Operationen bearbeiten die Variablen, die in einfache Schleifen und If-Abfragen geleitet werden können. Das noch mehr geht, deuten die Listen-Elemente und Prozeduren-Elemente an. Es spricht nichts gegen komplexeren Code, der im Editor schlicht Stück für Stück entsteht. Weiterlesen