Journal

Archiv für die Kategorie „IT“

Navit: eine freie Navigationslösung für den Palm Pre und WebOS

Mittlerweile ist die freie Navigationssoftware Navit via Preware für WebOS verfügbar. Zuvor war die Anwendung einige Wochen nur über den separaten Testing-Feed erreichbar. Navit ist für verschiedene Plattformen verfügbar und wurde nun auch auf WebOS portiert. Die Software kann Kartenmaterial von OpenStreetMap sowie spezielle proprietäre Kartendaten verarbeiten.

Da es bisher – jedenfalls für europäische WebOS-Nutzer – keine Navigationslösung gibt, ist Navit besonders interessant. Ich muss allerdings gleich vorab warnen: Navit funktioniert zwar mittlerweile, ist jedoch – abhängig von den geladenen Kartendaten – recht langsam und noch nicht wirklich benutzerfreundlich.

Die Installation ist recht einfach – jedoch ist zwingend WebOS 1.4.5 erforderlich! Ist diese Voraussetzung erfüllt, einfach folgende Schritte ausführen:

  1. Falls noch nicht geschehen, muss Preware installiert werden.
  2. In Preware unter “Komplette Liste” bzw. “Verfügbare Pakete” nach “Navit” suchen und die Anwendung installieren. Für die Anwendung müssen zwei Abhängigkeiten mit installiert werden: “speechd”, eine Sprachsynthese-Bibliothek, sowie “locale” für die Internationalisierung.
  3. Nun muss Navit gestartet werden. Startet die Anwendung nicht, auch nicht nach einem Geräteneustart, liegt das recht wahrscheinlich an einem Fehler von Palm im WebOS-Update auf 1.4.5 (hier näher beschrieben). Die einfachste Lösung des Problems: es muss der “Emergency Fstab Fixer” via Preware installiert werden. Nach der Installation muss der Neustart des Telefons bestätigt werden – danach sollte Navit zumindest starten.
  4. Nach dem Start von Navit sind noch keine Kartendaten vorhanden, da diese nicht mitgeliefert werden. Am Einfachsten installiert man sich das freie Kartenmaterial von OpenStreetMap. Diese können mit verschiedenen Tools detailliert für bestimmte Areale heruntergeladen werden – für viele Länder gibt es vorgefertigte Links beim Navit-Projekt. Die Karten für Deutschland werden mit ~490MiB angegeben – bei mir waren es im Endeffekt rund 670MB, die man im Pre erst einmal freischaufeln muss. Zum Download erhält man eine *.bin-Datei, die Navit lesen kann. Nach dem Klick auf den Link kann es einen Moment dauern, bis der Download startet. Recht einfach ist jedoch auch der Download eines bestimmten Areals über den Planet Extractor, durch die Auswahl eines kleineren Bereichs kann man Platz auf dem Gerät sparen.
  5. Nun muss der Pre per USB-Modus an den PC angeschlossen werden. Die heruntergeladene *.bin-Datei muss nun in den Ordner appdata/org.webosinternals.navit/maps kopiert werden, der beim ersten Start von Navit erzeugt wurde (und leer sein müsste).
  6. Nach dem Entfernen des Pre vom PC kann Navit gestartet werden und sollte die Karten anzeigen. Die Performance könnte – wie bereits erwähnt – besser sein, jedoch wird berichtet, dass bei kleineren Kartenausschnitten und/oder weniger enthaltenen POIs im Kartenmaterial die Performance deutlich steigt. Hier kann man sicherlich noch etwas Performance einsparen.

Eine englische Installationsanleitung sowie ein paar kurze Bedienungshinweise gibt es bei webos-internals.org, die auch die Anwendung auf WebOS portiert haben sowie für die Entwicklung von Preware verantwortlich sind.

Location-based services

Location-based services (LBS) sind (derzeit meist mobile) Dienste, die den Standort des Users verwenden und Informationen mit diesen Standort-Informationen anreichern bzw. Informationen über und um diesen Standort anzeigen. Dies soll ein kleiner, unvollständiger Überblick sein.

Diese Anwendungen sind an sich nichts neues, dank geeigneteren und benutzerfreundlicheren Ortungs-Methoden erfahren sie aber erst in den letzten Monaten einen starken Zuwachs. Moderne Smartphones haben mittlerweile Techniken an Bord, um innerhalb weniger Sekunden die Position des Gerätes ziemlich genau zu bestimmen (GPS, A-GPS, GSM- und WLAN-Ortung).
Auch in Web-Browsern hält das Thema langsam Einzug – Firefox ab Version 3.5, Chrome ab Version 5, Opera ab Version 10.6 sowie der iPhone-Safari-Browser unterstützen die Lokalisierung. Dafür zuständig ist eine vom W3C herausgegebene Spezifikation – die Browser-Ortung ist allerdings meist noch recht ungenau, da der Benutzer via WLAN-Accesspoints in der Umgebung und Geo-IP geortet wird.

Mittlerweile wächst der Markt an Geo-sensitiven Anwendungen stark – und ihm wird in naher Zukunft ein weiterhin starkes Wachstum zugesagt. Ortsbezogene Social Networks wie Gowalla, Foursquare und Brightkite ermöglichen es, an Orten “einzuchecken” und zu erfahren, wo sich Freunde gerade aufhalten – und verbinden dies teils mit einem spielerischen Effekt. Auch die anderen Dienste im Social web ziehen nach – Microblogging-Dienste wie identi.ca und Twitter speichern auf Wunsch den aktuellen Ort zusammen mit “Tweets”. Facebook startete gerade vor zwei Tagen seinen neuen Dienst “Places”, bei dem bereits die Dienste Foursquare, Gowalla, Yelp und MyTown mehr oder weniger eng mit eingebunden sind. Wikipedia-Artikel beinhalten bereits seit einiger Zeit Koordinaten von Orten, mit Positionsdaten angereicherte Fotos erlauben zusätzliche Funktionen bei Foto-Communities wie Flickr und Picasa.
Um Positionsdaten zu visualisieren, sind Dienste wie OpenStreetMap und Google Maps nützlich – sie bieten eine mehr- oder weniger vollständige Karte der Erde und erlauben beispielsweise über APIs, die Kartenansichten mit weiteren Informationen angereichert darzustellen – Marker, Fotos auf einer Landkarte und vieles mehr.

Was macht diesen Markt so interessant? Zum einen sind natürlich interessante Anwendungen möglich – mit einer entsprechenden Anwendung kann man sich den nächsten Geldautomaten, das nächste Café oder eine gute Bar um die Ecke anzeigen. Man kann sehen, an welchen Orten sich Freunde kürzlich aufgehalten haben oder selbst interessante Orte “markieren”, um sie später wiederzufinden.
Aber auch für Marketing-Zwecke eignen sich ortsbezogene Dienste. Sie werden außerdem für kleinere, lokale Betriebe interessant. Werbung auf Online-Plattformen kann gezielt Nutzer in der Nähe ansprechen. Ein Café kann an alle User eines LBS im näheren Umkreis Informationen über eine Rabatt-Aktion verteilen, um Gäste anzulocken. Events können Menschen in der Nähe einfach bekannt gemacht werden. Interessante Marketing-Aktionen, wie sie beispielsweise Opel durchgeführt hat, werden möglich. Bars in den USA versprechen Foursquare-Usern, die in einem Monat am Häufigsten “eingecheckt” haben, Freibier. Gap gibt Kunden für Check-ins 25% Rabatt.

Bei all diesen Diensten, die es bereits gibt und in Zukunft immer häufiger geben wird, sollte man nie vergessen: die eigene Position ist eine sensible Information – die man nur mit Bedacht verwenden sollte. Vor allem dann, wenn sie für jedermann sichtbar im Netz zu finden ist und auf geschlossenen Plattformen wie Facebook auf ewig gespeichert sein wird.

Zu empfehlen sind noch drei Podcasts von Vorträgen auf der SXSW 2010:

Freie Lizenzen, freie Inhalte und freie Software

Besonders in der IT-Branche wird häufig von “Open Source” gesprochen. Aber geht es wirklich nur um offen gelegten Quelltext oder darum, dass freie Software kostenlos ist? Gibt es etwas Vergleichbares auch für beliebige andere Inhalte? Dies soll ein kurzer Überblick über dieses Thema sein.

Es geht in diesem Zusammenhang vor allem um freie Lizenzen – Lizenzen, mit denen der Urheber jedem freistellt, die Inhalte zu jedem beliebigen Zweck zu nutzen, Kopien davon weiterzugeben (also zu teilen) und die Inhalte beliebig zu verändern. Es geht also insbesondere um die Freiheit der Nutzer sowie gegen die Einschränkung dieser Freiheit, beispielsweise durch Digitales Rechtemanagement (DRM), das dem Benutzer die Kontrolle über Daten und Software auf seinem eigenen Computer nimmt. Endbenutzer-Lizenzverträge – wie beispielsweise die von Microsoft Windows oder Apple MacOS – sind meist darauf ausgelegt, dem Nutzer die Freiheiten zu entziehen.

Der Ursprung liegt in der Freien Software – eine Bewegung, die sich für quelloffene Software unter freien Lizenzen einsetzt. In diesem Zusammenhang ist vor allem die Free Software Foundation zu nennen, die freie Software fördert und für die Einhaltung freier Lizenzen streitet. Eine der bekanntesten Lizenzen für freie Software ist die GPL. Sie gewährt den Benutzern die genannten Freiheiten und beinhaltet darüber hinaus das Copyleft – das sicherstellt, dass Software unter dieser Lizenz weitergegeben sowie Veränderungen an der Software unter derselben Lizenz veröffentlicht werden müssen, die Software also frei bleibt. Eine Weiterentwicklung der GPL, die AGPL, dehnt die Wirkung der GPL auch auf Netzwerkdienste aus, die von der GPL nicht erfasst werden. Nutzern eines Content-Management-Systems, das unter der AGPL steht, muss also beispielsweise der (ggf. veränderte) Quellcode der Anwendung zur Verfügung gestellt werden.

Aber freie Lizenzen gibt es nicht nur für Software. 2001 entwickelte Lawrence LessigCreative Commons” – ein Lizenzmodell, das sich vom klassischen Urheberrecht abgrenzt und auf Offenheit setzt. Jeder kann diese Lizenzen frei für seine Werke nutzen – und zwar für alle Werke, die durch das Urheberrecht geschützt sind, also unter anderem Musik, Texte, Fotos und Forschungsergebnisse. Creative Commons besteht aus vier Bausteinen, die in verschiedenen Formen miteinander kombiniert werden können:

  • BY – Namensnennung des Autors erforderlich
  • NC – nicht-kommerzielle Nutzung
  • ND – keine Änderungen erlaubt
  • SA – Weitergabe nach Veränderung nur mit gleicher Lizenz (Copyleft)

Die Lizenz CC-BY-SA, unter der auch die Inhalte dieses Blogs stehen, erlaubt es beispielsweise jedem, die Inhalte frei zu nutzen – mit der Bedingung der Namensnennung (z.B. Verlinkung zurück auf diesen Beitrag) sowie der Verpflichtung, die davon abgeleiteten Werke auch unter eine CC-BY-SA-Lizenz zu stellen.

Weiterhin gibt es einige Abwandlungen wie Sampling-Lizenzen. Eine weitere Form – wenn auch u.a. in Deutschland rechtlich nicht möglich – ist Public Domain, ein Totalverzicht auf alle Rechte am eigenen Werk.

CC-Lizenzen sind mittlerweile an vielen Stellen – besonders im Netz – zu finden. Jamendo vertreibt CC-Musik, Flickr unterstützt die Verwendung von CC-Lizenzen für Bilder und seit 2009 stehen alle Inhalte der Wikipedia sowie sämtlicher Wikimedia-Inhalte unter der CC-BY-SA-Lizenz.

Ein bekannter Aktivist, der sich für eine Liberalisierung des Urheberrechts einsetzt, ist der Science-Fiction-Author und Blogger Cory Doctorow, bekannt unter anderem als Autor bei Boing Boing. Er stellt alle seine Bücher und Werke unter einer Creative Commons-Lizenz ins Netz – was ihm sogar deutlich höhere Verkaufszahlen seiner gedruckten Bücher beschert haben soll.

Server Name Indication (SNI) mit Ubuntu 10.04 (“Lucid Lynx”)

Bei “Name-based virtual hosts” in Verbindung mit SSL gibt es ein Problem: “by design” war es nicht möglich, mehrere virtuelle SSL-Hosts mit unterschiedlichen Domains und Zertifikaten parallel auf einer IP-Adresse und demselben Port zu betreiben. Problem ist, dass zuerst zwischen Client und Server die verschlüsselte Verbindung aufgebaut wird (bei der das Zertifikat bereits benötigt wird). Erst anschließend werden die HTTP-Header über die verschlüsselte Verbindung gesendet, in denen dann auch der Hostname steht, der jetzt möglicherweise aber gar nicht mehr zum Zertifikat passt. Einzige Lösung war bisher, pro SSL-IP eine eigene IP-Adresse (bzw. notfalls einen anderen Port) zu verwenden.

Abhilfe gibt es theoretisch bereits seit mehreren Jahren: Server Name Indication (SNI) ist eine Erweiterung des SSL-Protokolls, bei der einfach bereits beim Verbindungsaufbau vor dem SSL-Handshake der gewünschte Hostname mitgesendet wird.

Serverseitig benötigt diese Erweiterung insbesondere OpenSSL ab Version 0.9.8f sowie Apache ab 2.2.12 – außerdem müssen beim Kompilieren diverse Flags gesetzt sein. Seit Ubuntu 9.10 “Karmic Koala” sind sämtliche Voraussetzungen erfüllt, ich habe SNI nun erstmalig problemlos mit 10.04 “Lucid Lynx” im Einsatz. SNI funktioniert mit Apache und OpenSSL nun ohne Neu-Kompilieren “out of the box”.

Die Vorgehensweise ist im Prinzip ganz einfach: nach einem

NameVirtualHost *:443

können in den Apache-Konfigurationsdateien mehrere virtuelle SSL-Hosts definiert werden, die jeweils eigene SSL-Zertifikate besitzen. Weitere Infos sind im Apache-Wiki sowie hier zu finden.

Eine weitere Option erlaubt das Erzwingen von SNI: übermittelt ein Client nicht die SNI-Header, kann er den jeweiligen virtuellen SSL-Host nicht erreichen. Diese Option ist standardmäßig auf “off”.

SSLStrictSNIVHostCheck on

Der Haken: neben dem Server muss natürlich auch der Client SNI unterstützen. Internet Explorer unter Windows XP unterstützen SNI generell nicht (wobei es Berichte gibt, dass mit XP SP3 die Unterstützung vorhanden ist), Konqueror beherrscht SNI ebenfalls nicht. Ein Überblick über die Browser-Unterstützung findet sich hier. Ob ein Browser SNI unterstützt, kann man bei sni.velox.ch testen.

Zumindest in einigen Bereichen kann man SNI trotz der teilweise fehlenden Client-Kompatibilität bereits einsetzen – die client-seitige Unterstützung wird sich in Zukunft weiterhin verbessern.

Ein Artikel zum Thema ist in der c’t 23/09 erschienen und ebenfalls bei sni.velox.ch zu finden.

FOSDEM 2010 schedule application for WebOS

If you’re going to this years’ FOSDEM (Free and Open source Software Developers’ European Meeting) in Brussels, and own a Palm Pre or Palm Pixi, this application may help you keeping track of the schedule. It downloads the schedule from FOSDEM server, saves it to your device and shows a list of events. So you can use the schedule offline – this might save you data roaming fees.

This is my first WebOS application and it was created in very short time, anyhow I hope it’s a little bit useful.

A small feature list:

  • Stores schedule. Use the “Refresh”-button in the left corner to download the latest schedule and automatically save it for offline use. This also happens if you hit “Yes” after first launch.
  • Event details. Tap on an event to view detailed information.
  • Quick search. Simply start typing to search in all titles, locations and attendees.
  • Hide expired events. Tap on the right button to hide all events which are already expired.
  • Campus map. Use the campus map for orientation. You can find it in the application menu in the schedule scene. It’s the one I found on the FOSDEM website.
  • Supports every orientation. Turn the device as you like to.

This application is free software and licensed under the GPL v3.

Download: You can download this application via Palm web distribution. Simply tap the link from your WebOS phone, you can easily install the application on your device. You can also download it to your desktop pc as .ipk package file and install it via WebOS Quick Install. I also provide a .zip file which includes the source code and a few resources, so you can play around with the source code (although you also could unzip the .ipk file).

UPDATE: You can find the source code and other versions of the application here.

If you find bugs or need support, please write a comment (preferred) or an E-Mail, I’ll respond as soon as possible.