From: Boris Kraut Date: Thu, 19 Sep 2013 17:45:32 +0200 Category: Message-ID: <20130919174532.payyfz@trauerweide> Organization: Keywords: Comments: To: undisclosed-recipients: ; Subject: [.plan] Warum sind CLIs sich der Umwelt ihrer Nutzer nicht bewusst? Reply-To: Boris Kraut 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/