Codecademy Hour of Code: Minute des Grauens

Hinter der Idee, das Programmieren möglichst einer breiten Masse zu erklären und damit auch noch möglichst früh anzufangen, stehe ich uneingeschränkt. So war ich von Codecademy, wie von vielen webbasierten Lernplattformen, sehr angetan. Gerade niedrigschwellige Kurse zu Grundlagen bekannter Programmiersprachen sind in vielen Fällen heute recht gut umsetzbar und können Hemmschwellen überwinden helfen. Wenn sie wie Codecademy zudem kostenlos sind, reißen sie einige Hürden sogar regelrecht ein.

Aber gerade bei Codecademy fehlt mir nach langer Zeit dort eine stringente didaktische Linie. Ihre Kurse sind meist fahrige Unterrichtseinheiten, die keiner erkennbaren Qualitätskontrolle unterliegen. Dabei kommt dann gerade der erwünschte Lerneffekt zu kurz, wenn Aufgaben irreführend oder nicht lösbar sind. Das Team hinter Codecademy wirbt, ganz von der eigenen Stärke überzeugt, in den höchsten Tönen vom eigenen Angebot, wirklich nachvollziehen kann ich das aber nicht. Zu oft bin ich auf Codecademy mittlerweile in schlecht geschriebene Kurse und andere Sackgassen gerannt, nur um dann zu erfahren, dass diese von ihren Entwicklerinnen und Entwicklern aus der Community verlassen wurden. Codecademy selbst hält sich dann meist zurück. Das können sie gerne machen, es ist ihr Dienst, ihr kostenloses Angebot, doch sehr im Einklang mit dem eigenen Anspruch erscheint es nicht.

Mein Eindruck ist also der einer gewissen Fahrigkeit, vielleicht sogar auch Gleichgültigkeit seitens des Dienstes. Neuestes Indiz ist die kürzlich im App Store aufgeschlagene Anwendung *Codecademy: Hour of Code". Hier kulminiert das Auseinanderklaffen von eigenem Anspruch und tatsächlicher Leistung in einer winzigen App, deren didaktischer Wert sich mir nicht erschließt.

Codecademy schließt sich dem Projekt der Hour of Code an, das sich an absolute Anfängerinnen und Anfänger richtet. Das ist allemal ein ehrenwertes Ziel, da kann ich verschmerzen, dass die App eigentlich nur ein aufgehübschter Multiple-Choice-Test in fingierter Editorumgebung ist. Ein wenig statische Eingabe kann vielleicht die Furcht nehmen, ohne dann mit absoluter Freiheit zu verwirren. Was aber nicht geht, sind die vielen Ungereimtheiten und Achtlosigkeiten, die Codecademy in der App an den Tag legt. Da soll ich dann mein Alter eingeben, kann aber genauso auch beliebige Strings eingeben. Die App feiert mein Alter von "jj" Jahren trotzdem als bahnbrechenden Erfolg in meinem kometenhaften Aufstieg als Programmierer.

Diese Unachtsamkeit häufen sich in dem Kurs voll simpler Aufgaben, die wenig einsteigerfreundlich vor die Füße geworfen werden. Wirkliche Erklärungen, was dort mit meinem Dummy-Code passiert, erhalte ich nicht. Aber das wäre anscheinend auch zuviel verlangt, denn Codecademy will mich anscheinend nicht einmal damit verwirren, mir mitzuteilen, welche Sprache sie mir hier beibringen. Es passt für mich ins Bild, wenn hinter dieser App mehr der Wunsch nach Wahrnehmung der eigenen Marke als das tatsächliche Interesse an durchdachten Lernkonzepten steckt. Für mich ist das enttäuschend, denn es droht doch, dass damit dann doch manche Leute eher abgeschreckt werden. Denn sie können nicht wissen, wie wenig ihnen die App tatsächlich erklärt, so könnten sie doch die eigene Verwirrung über die App so auslegen, als wäre das alles einfach eben doch nichts für sie.

Castro: Alter Spalter

Diese App muss ja spalten. Als Podcatcher setzt Castro klar auf ein stromlinienförmiges Design mit spartanischer Funktionalität.

Bis jetzt gibt es keinen Podcatcher, der sich so nahtlos in iOS7 einfügt. Castro ist eine Augenweide. In der Podcastübersicht dominiert noch das schlichte Weiß, in das sich viele Apps tauchen. Doch darauf explodiert jede Seite zu den Podcast in den jeweiligen Farben der Logos, doch ohne dass Castro an Struktur verliert. im Zweifel gebe ich nicht viel auf Design, wenn es aber so schlüssig ist wie hier, bin auch ich einfach nur beeindruckt.

Aber nicht nur optisch überzeugt mich Castro, auch die komplett gestenbasierte Oberfläche könnte kaum komfortabler dein. Zumal konkurrierende Podcatcher gerne mal größere Klickstrecken sind, als die Webpräsenz einer beliebigen deutschen Lokalzeitung. Alles ist nah beieinander in Castro, denn es gibt auch gar nicht so viel, wohin man sich verirren könnte. Die Übersicht abonnierter Podcasts ist eine Liste, der Strom aktueller Episoden ist eine andere. Von dort folgen nur noch einzelne Seiten zu den Podcasts, deren Einstellungen, und den Episodenbeschreibungen. Schon der Player selbst ist in die Episodenansicht integriert und befindet sich sonst in der Fußzeile der App.

Aber es gibt ein Aber. Die gewollte Simplizität kommt auf Kosten vieler Funktionen, die zumindest die deutsche Podcasthörerschaft schmerzlich vermissen wird. Es fehlen Features über Features, die manche als essentiell betrachten werden. Es fängt schon damit an, dass die Podcastsuche wie angepriesen sehr schnell ist und sogar erlaubt Episoden zu laden, ohne den Podcast abonnieren zu müssen, aber Podcasts manuell über ihren Feed hinzuzufügen war mir bislang nicht möglich. Es fehlt auch ein Sleep-Timer, das können die meisten wohl verschmerzen. Ich für meinen Teil komme gut ohne Kapitelmarken und Social-Media-Optionen aus, das werden wiederum manche überhaupt nicht leiden können. Problematisch ist aber schon eher, dass es derzeit keinen OPML-Import und -Export gibt, was für mich schon eher ein Tabu ist.

Die Menschen sind verschieden, warum sollten Podcatcher das also nicht abbilden? Castro ist noch nicht fertig, so fühlt es sich zumindest an. Einige Features werden wie die OPML-Unterstützung mit Sicherheit noch folgen, andere werden nie folgen. Castro ist anzumerken, dass e keine Allzweckwaffe sein soll, sondern ein schlichter, reduzierter Player. Ich finde es gut, wenn eine solch minimalistische App für Podcasts sich von unten an eine gesunde Zahl von Features herantastet, um nicht überfrachtet zu werden.

Castro liefert mir Podcasts, ohne dass ich noch viel dafür tun muss. Aber noch stimmt nicht alles. So deutlich Usability und Design für mich als Nutzer da sind, so deutlich fallen die Kanten auf, die Castro noch immer hat. So begeht die App einen der Fehler, bei denen ich mir immer denke, ob wir uns alle nicht darauf einigen können, dass wir nicht mehr App-Einstellungen außerhalb der App vornehmen müssen. Es kann einfach nicht in meinem Sinne sein, in die Systemeigenschaften wechseln zu müssen, nur um einstellen zu können, wie viel Speicherplatz die Episoden etwa einnehmen dürfen. Und damit bin ich an dem Punkt, der mir noch nicht klar ist, weil Castro vielleicht sogar etwas über das Ziel hinausschießt: Castro wird mit einem intelligenten Downloadmanagement beworben, das im Hintergrund alte Episoden entfernt. Allerdings kommuniziert die App nicht, wie genau sie vorhat, das zu tun. Ich muss also darauf vertrauen, dass gehörte Episoden irgendwann gelöscht werden. Es gibt aber keine Downloadübersicht, also sehe ich nicht in einer Liste, welche Episode. noch tatsächlich auf meinem Gerät sind oder welche Downloads noch laufen oder sogar gescheitert sind. Ich habe ja überhaupt nichts gegen ein wenig Magie, aber so komplett machtlos auf sie vertrauen zu müssen, bereitet mir doch Bauchschmerzen. So ist das auch bei den Einstellungen selbst, wenn ich derzeit noch für jedes Abonnement manuell einstellen muss, dass ich nicht jede aktuelle Folge herunterladen möchte.

Ich finde es auf jeden Fall erfrischend, dass Castro sich traut, aus dem Einerlei der Podcatcher auszubrechen. Noch geht die Rechnung nicht ganz aus, verspricht aber enorm viel Gutes.

Drafts-Rezepte XI: Sprachausgabe

Endlich wurde das Update von Pythonista durch Apples Schleusen gespült. Und wie gewohnt, kommt mit einem Update noch einmal eine Menge Qualität zu Pythonista hinzu. Unter den vielen Änderungen sind wieder so viele dabei, ich will das mal am Beispiel eines der neuen Module feiern. Die Version 1.4 von Pythonista bringt das speech-Modul, mit dem eine einfache Text-to-speech-Ausgabe unter iOS genutzt wird. Viel ist da gar nicht zu machen.

import speech
import sys

speech.say(sys.argv[1])

Die Action für Drafts ist auch nicht viel länger.

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

Import-Link

Dieses kleine Skript macht natürlich nicht mehr als die Sprachausgabe – und das auch nur in der Systemsprache. Ich war zu faul, auf die Schnelle noch eine Option für die Sprache zu basteln. Ich muss ja auch noch den Rest des Updates kennenlernen.

Aviate Launcher: Abheben

Noch ist es lange nicht so weit, dass ich mich wirklich mit Aviate vertraut machen konnte. Die ersten Stunden mit diesem alternativen Launcher für Android sind richtig gut gewesen.

Das Video versucht ein Gefühl zu verkaufen, damit komme ich ja selten mit klar. Hier ist es auch noch überflüssiger, denn Aviate hat tatsächlich was auf dem Kasten. Es ist hübsch, allem Anschein nach nützlich und erstaunlich zugänglich. Bevor ich mir ein abschließendes Urteil erlaube, wird wohl noch etwas Zeit vergehen müssen, für den Anfang hat mich Aviate aber wieder enger an Android gebunden, als es in den letzten Wochen der Fall war. Übrigens, wer es testen will, aber an der Beta-Invite-Schranke hängt, kann mir gerne über die Kommentare ein paar Zeilen schicken. Ein paar Invites habe ich noch.

Nice Weather: Der Name sagt alles

Schon länger nichts mehr zu Android-Apps geschrieben. Das wird sich mit Nice Weather auch nicht wirklich ändern. Einfach weil die App macht, was ihr Name verspricht: Sie zeigt das Wetter für beliebige Orte an. Fertig.

Gut, ein paar Worte mehr kann ich noch verlieren. Da wäre, dass die App im minimalistischen Design eher nach iOS7 aussieht, was für manche ja nicht unbedingt ein Gütesiegel ist. Aber rufen wir uns in Erinnerung, wie hässlich Android sein kann, ist das ein großes Lob. Mir gefällt auch hier das versteckte Feature, auf dem Zeitstrahl für den angezeigten Tag hin und her zu fahren, um die Wetteränderungen verfolgen zu können. Aber wirklich, minimalistischer und effizienter geht eine Wetter-App nicht, als es Nice Weather hier vormacht. Einfach anschauen, kostet nichts. Zumindest ein Standort nicht, wer mehr braucht, zahlt 1.50€ im Jahr.

Bild: Google Play Store

Linkgebliebenes 21

Solche Projekte beschämen mich, vor lauter Scham sollte ich dann solche Projekte nicht.

Ein weiteres Update zu der zweifelhaften Professionalisierung von Crowdfunding. Erst wenn es Crowdinvestments gibt, dürfte es gerechter zugehen.

Braucht es eine Entwicklung von der klassischen Open-Source-Lizenz zur No-License-License, also endgültiger Freiheit? Gute Gründe, aber Jurist werden dies schon zu verhindern wissen.

Sollte ich das auch hier auf kultprok einführen, Filme nach der Anzahl der von mir gewünschten Wiederholungen zu bewerten? Eine kindliche Idee, und deshalb gar nicht mal so schlecht. Ist streng subjektiv, also zugänglicher.

Wochenlang lief ich auch mit Ideen dazu im Kopf rum, hatte aber noch keinen pietätvollen Zugang gefunden. Das kann ich mir jetzt sparen, denn das Outsourcing der Überwachung an Netzgemeinschaften könnte ich nicht kürzer und treffender zusammenfassen.

Als wäre es nicht schon lange klar, dass jede Erziehung die Eltern vor den Kindern glorifiziert, kommen solch krankhafte Egoisten und Egoistinnen hervor. Den Schaden, den diese elitären Despoten ihrer Familien hinterlassen, räumen die aber nicht mehr auf.

Als wäre der Serienpilot auch nur ansatzweise gut genug gewesen.

Wissenschaft ist von Menschen gemacht, sie ist damit auch nicht vor sozialer Selektion gefeit und schon gar nicht frei von ethischer oder politischer Verantwortung. Gleichwohl der Artikel etwas reißerisch aufmacht, ist im Kern Obrigkeitshörigkeit auch in der Wissenschaft und Forschung fehl am Platze.

Selbst wenn an den Vorwürfen der Unterschlagung und Täuschung etwas dran wäre. Wie selbstverliebt Spielekritiker Bullying betreiben, erzeugt einen enormen Brechreiz. Folgende Links führen zu einer selten brutalen Verunglimpfung, Verfolgung, Transphobie und Selbstherrlichkeit. Destructoid ist für mich erst einmal gestorben, wenn ihr

Ja, die Topographie des Hasses. Und eine Ergänzung.

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.

Käuferrechte: Nur weil mir der Datenträger gehört, gehört mir nicht der Inhalt.

Die Endbenutzerlizenzen, Nutzungsverträge, Digitalknebel, all diese rechtlichen Bestimmungen und Kontrakte, klicke ich – wie vermutlich die meisten anderen Nutzerinnen und Nutzer digitaler Güter – weg. Es ist eine erlernte Reaktion auf einen rechtlich wie menschlich für juristische Laien nicht zu bewältigenden Akt der Abstraktion. Es ist Teil meiner medialien Sozialisation, diesen Bestimmungen weder Glauben noch Gehör zu schenken. In Zeiten der Downloads noch weniger. Auf spiel-gekauft.de werden wichtige Informationen zur Rechtslage gesammelt. Denn schon die Laienannahme, der Kauf eines Datenträgers entspreche dem Kauf der Software, wird von Produzenten und Verkäufern der Software in den untergeschobenen, unübersichtlichen Bestimmungen bestritten.

Die positive Seite des Digitalen schlägt dabei oft ins Gegenteil um, wenn Anwenderinnen und Anwender in wesentlichen Bereichen im Umgang mit ihrer Erwerbung beschnitten werden. Datenschutz, Sicherungskopien und der Weiterverkauf sind für die Softwarehersteller oftmals ein von geringer Priorität oder ihnen sogar ein Dorn im Auge. Durch die rechtliche Verklausulierung werden diese aus der analogen Welt selbstverständlich erscheinenden Nutzerrechte – bewusst oder nicht – beschnitten und bestritten. Selten werden diese Beschneidungen aber eingepreist.

Daher halte ich es für wichtig, sich der rechtlichen Grundlagen und ihrer Folgen bewusst zu sein, um mündige Kaufentscheidungen zu treffen.

iKeePass

Es ist kein Geheimnis, ich nutze KeePass, wo es nur geht. Auch unterwegs ergeben sich Situationen, in denen ich auf meine Datenbanken zugreifen muss, weil ich nicht alle Passwörter mit einem nachvollziehbaren System erstellen kann. Hierzu gibt es auf iOS einige Apps, die Zugriff auf KeePass-Datenbanken ermöglichen. Der einfachste Weg ist, die Datenbank in einer Dropbox vorzuhalten, mit der die App dann synchronisiert. iKeePass* ist eine dieser Apps.

Bedauerlicherweise habe ich mit iKeePass mehrere Probleme. Eigentlich hat die App alles, was ich mir für einen reibungslosen Einsatz vorstelle: Dropbox-Synchronisierung, Unterstützung der Datenbankformate von KeePass 1.x und 2.x, einen Passwortgenerator und viele Funktionen mehr.

Die Probleme fangen aber schon beim UI-Design der App an. Wäge ich Zweckdienlichkeit und Optik gegeneinander ab, gewinnt im Zweifel Ersteres. Daher kann ich die angestaubte Optik, die steinzeitliche Elemente der iOS-UI nutzt, verschmerzen. Dass aber auf dem iPhone ein wesentlicher Teil des Bildschirms an eine Seitenleiste verloren wird, ist für mich auf Anhieb unangenehm. Die Usability wird dadurch eingeengt. Generell steuert sich die App durch unzählige Menüs und Untermenüs, wird je nach Aufgabe, die ich erledige, zur Klickorgie. Dabei entstehen gelegentlich störende Glitches in der Suche nach Einträgen.

Wesentlich für meine Enttäuschung ist aber die in meiner Version unzuverlässige Dropbox-Synchronisierung. Mehrere Male war die Integrität der in der Dropbox liegenden Datenbank gestört. Die Datenbank war in dieser Form unbrauchbar geworden. Damit geht mein Vertrauen in diese App völlig verloren. Auch die Hilfe gibt da wenig Anlass, das Vertrauen wiederherzustellen:

You can access and restore previous version of your database using your dropbox web interface. See dropbox faq here: https://www.dropbox.com/help/11/en

Die Sicherung der Daten soll also von einem externen Dienst gewährleistet werden. Das ist mir zu wenig. Denn im Falle der Wiederherstellung alter Backups in der Dropbox verliere ich im Zweifel auch einige Einträge. Doch die Datenbank habe ich ja gerade, um mir deren Inhalte nicht mehr merken zu müssen. Das Zutrauen zu iKeePass‘ ordentlichem Umgang mit meinen Datenbanken ist damit grundlegend gestört.

*Die von mir benutzte Version ist 2.5.3. Das Video ist für eine Testversion von 2.4. Optisch sind beide aber noch vergleichbar.

Jsfiddle und sqlfiddle

Wenn ich mal mit SQL oder JavaScript rumspiele, wird es meist eine umständliche Bastelei, weil ich meine Editoren nicht wirklich darauf ausgerichtet habe. Hätte ich früher mal daran gedacht, nach Umgebungen im Netz zu suchen, in denen ich mich ausprobieren kann. Mir wäre einiger Frust entgangen.

Für JavaScript gibt es jsfiddle. Und mit JS rumspielen kann man dort sehr gut. JS, CSS und HTML können parallel im Editor eingetragen werden. Im vierten Fenster tauchen dann Ergebnisse auf. Da es nicht so ganz mein Metier ist, weiß ich nicht, ob die angebotenen Frameworks repräsentativ sind. Mir reicht es auf jeden Fall.

Ähnlich aufgebaut ist sqlfiddle. Von SQL habe ich noch weniger Ahnung, werde dem Thema Datenbanken aber nicht mehr lange aus dem Weg gehen können. Da kommt eine solche Umgebung, in der ich mich gefahrlos einarbeiten kann, sehr gelegen.