Subject: [.plan] Warum sind CLIs sich der Umwelt ihrer Nutzer nicht bewusst?
From: Boris Kraut <[email-masked]>
To: undisclosed-recipients: ;
Date: Thu, 19 Sep 2013 17:45:32 +0200

Insbesondere moderne Software wird von mir haeufig als "kaputte
Technologie" bezeichnet, was haeufig verstoerte Blicke ausloest:
weltfremder IT-Idiot. Menschen scheinen es nicht zu moegen, wenn
man ihnen ihr neustes Spielzeug "weg nimmt" oder schlecht redet.
Was andere in der Situation meist nicht verstehen ist, dass ich
durchaus sehe, dass diese "kaputte" Technik ein Problem loest
oder ein besonders wichtiges Feature bietet. Meine Kritik greift
meist nur die konkrete Implementation an -- oder das Unverstaendis
der eigenen Beduerfnisse.

Schon lange muss ich mich darueber aergern, dass viele grafische
Anwendungen mit verkrueppelter UI daherkommen, dass technische
Voraussetzungen ohne Not gesetzt werden, dass eine saubere Trennung
von Funkltionalitaet und UI bzw. Darstellung nicht erfolgt. Wie
lange musste ich (und muss ich noch) z.B. darauf warten, dass
Audiokommunikation keine Abhaengigkeiten auf Grafik hat? Ein Trend,
der leider mit Tablets und browserzentrierten Arbeitsumgebungen
immer weiter fortschreitet: Webcam, Mikrofon, Geodaten, uvm. Das
alles steht der rein nutzenden Allgemeinheit schon lange zur Ver-
fuegung -- und zum Glueck immer haeufiger auch in einer freien,
standardisierten, weniger kaputten Form -- und darauf aufbauend
entwickelten sich ganz neue Moeglichkeiten und Beduerfnisse. Auf
einer Kommandozeile weiterhin haeufig undenkbar, was ich nach dem
Ende meine Android-Versuche schmerzhaft lernte und vermisse.

Praktisches Beispiel "Geodaten": Wenn ich einen Dienst wirklich
auf meinem Smartphone genutzt habe, dann war es neben Kommunikation
vorallem Navigation. Als erster Schritt dazu muss man natuerlich
seinen eigenen Standort kennen. Wieso habe ich ein `date` Befehl,
aber kein `position`? Bei mir gibt es den jetzt, er liefert eine
Geo-URI des aktuellen Standorts zurueck. Momentan nutze ich dazu
FreeGeoIp.net [0], aber in Zukunft werde ich Maxmind's GeoLite(2)-
Datenbank [1][2] direkt und lokal nutzen -- ein ganz wichtiger
Punkt: Wenig Abhaengigkeiten von externen Diensten. Da ich auch
haeufig remote arbeite und dann nicht die Geoposition meines
Servers wissen will, sondern die des Clients, wird vorher die
Umgebungsvariable SSH_CLIENT ausgelesen und ggf. die dortige IP
verwendet. Spaeter will ich auch WLAN-Daten zur Bestimmung nutzen,
auch da gibt es einige offen zugaengliche Datenbanken, z.B. Open-
WLAN-Map [4] und OpenBMap [3]. Letztere hat auch Handyzellen er-
fasst. Als letzte Quelle waere da noch ein eigener GPS-Empfaenger,
den man ueber den `gpsd` ansprechen kann. Zukunftsmusik.

Ich bin uebrigens nichts der einzige (oder gar erste), der sich mit
dem Thema beschaeftigt. Eigentlich ist das 'Problem' schon in etwas
groesser geloest bzw. zumindest angegangen. Beispielsweise gibt es
GeoClue [5] von FreeDesktop, das momentan auch nur GeoIP-Aufloesung
macht, aber alle genannten Quell-Arten auch unterstuetzen will. Was
die nutzen, um ihre Datenbank zu speisen (oder ob die da gar auch nur
externe Services pollen -- Firefox nutzt imho z.B. standardmaessig
Google's GeoAPI), weiss ich nicht. Muss ich mir mal anschauen. Um
ehrlich zu sein: Das habe ich das erst gefunden, nachdem ich mich
furchtbar ueber das Fehlen einer solchen Funktion aufgeregt, mein
`position` Skript zusammengehackt und die ersten Paragraphen dieses
Textes geschrieben habe :).

Nun, was kann ich jetzt aber mit der GeoURI meiner aktuellen Position
tolles anfangen? Neben den o.g. GeoProvidern braucht es natuerlich
auch noch GeoHandler, also Programme, die diese Information nutzen
koennen. Z.B. kann man Firefox so einstellen, dass er die Koordinate
in OpenStreetMap [6] oeffnet -- oder in einem lokalen Programm, das
diese exzellenten Kartendaten nutzt :). Auf der Shell ist das dann
eher problematisch. Aber man kann zumindest mal die URI in eine all-
tagstaugliche Bezeichung, wie bspw. Stadtname, umwandeln lassen. OSM
hat dazu ein schoenes Interface und GeoClue soll das auch koennen.

Auch der umgekehrte Weg, von einem Name oder einer (strukturierten)
Adressangabe zu einer GeoURI ist eine Wuenschenswerte Option. Damit
koennte man dann schnell eine Liste von GeoURIs erstellen, die den
Startpunkt, Zwischenhalte und Endpunkt fuer eine Navigation ergeben.
Leider gibt es auch hier nichts, was rein per CLI funktioniert.. und
selbst die grafischen Alternativen haben noch Nachholbedarf: Auto-
und Rad/Fussgaenger-Navigation funktioniert schon ganz prima, aber
noch besser waere natuerlich auch den OEPNV einzubinden.. aber dazu
muessen einige Verkehrsverbuende erstmal ihre Fahrplandaten in frei
und nicht kaputt (tm) veroeffentlichen und mich nicht immer nur mit
Webinterfaces abspeisen...

Eine weiter Nutzungsmoeglichkeit: Wetterdaten. Ich habe schonmal ge-
schrieben, wie schwer es ist gute und freie Wetterdaten zu bekommen;
daran hat sich leider wenig geaendert. Die vom Deutschen Wetterdienst
erstellten GAFOR-Wetterdaten sind zwar inzwischen offen im Internet
[7] einsehbar, aber da eine (dokumentierte) API fehlt, kann sich das
Format oder die URL jederzeit aendern. Ausserdem ist GAFOR nur fuer
Deutschland gueltig.

Daneben gibt es die METAR-Daten (Wetter am jeweiligen Flugplatz), TAF
(Vorhersagen) und SIGMET (Warnungen). Die sind zwar prinzipiell frei
verfuegbar, aber woher man sie bekommt ist immer so eine Sache. Am Ende
landet man meist auf der Seite der amerikanischen NOAA -- [8] bzw. [9].

Bei Wetterdaten muss man sich wohl prinzipbedingt damit abfinden, dass
man sie nur schlecht "lokal" bereithalten kann, aber problematisch bei
METAR ist, dass sie erstmal nur fuer Flugplaetze gelten. Gerade weil in
Zukunft, Wetterphaenomene eher lokal statt regional sein werden, reicht
das nicht aus. Wir brauchen also mehr oeffentlich zugaengliche Wetter-
stationen. Zum Glueck haben sich auch hier schon einige Seiten heraus-
gebildet, die versuchen diese ganzen Informationen zusammenzufassen. So
gibt es u.a. die OpenWeatherMap [10] und den WeatherUnderground [11].
Das Problem: Zumindest bei letzterem wird einem beim Durchlesen der
AGB schnell schlecht...

Es gibt viel zu tun.

[0] http://freegeoip.net/
[1] http://dev.maxmind.com/geoip/legacy/geolite/
[2] http://dev.maxmind.com/geoip/geoip2/geolite2/
[3] http://openbmap.org/
[4] http://www.openwlanmap.org/
[5] http://www.freedesktop.org/wiki/Software/GeoClue/
[6] http://openstreetmap.org/
[7] http://www.dwd.de/lfberichte
[8] http://weather.noaa.gov/pub/data/observations/metar/stations/
[9] http://weather.noaa.gov/pub/data/observations/metar/decoded/
[10] http://openweathermap.org/
[11] http://www.wunderground.com/