... | ... | @@ -27,62 +27,17 @@ Laßt uns einfach mal die beteiligten Parteien und ihre Interessen sortieren: |
|
|
|
|
|
* Ganz allgemein wird es sinnvoll sein, daß die Informationen gefiltert und aufbereitet werden. Ich will nicht unbedingt alle Infos zu Konzerten in meiner Stadt haben. Lieber lasse ich Menschen wie den Flaneur für mich vorfiltern und konsumiere nur das, was sie für gut befinden.
|
|
|
|
|
|
* Die Konsumenten können mit Rohdaten in einer Datenbank wenig anfangen. Sie wollen ein einfaches Userinterface, das ihre Anforderungen erfüllt: Welches Restaurant im Umkreis von 500m hat gerade auf? Welche Konzerte gibt es im Umkreis von XYZ am Wochenende? Gibt es einen guten Italiener hier in der Nähe? Wie sieht die perfekte Anwendung aus? Keine Ahnung! Die Daten sind da. Laß uns experimentieren und schauen, was funktioniert.
|
|
|
* Die Konsumenten können mit Rohdaten in einer Datenbank wenig anfangen. Sie wollen ein einfaches Userinterface, das ihre Anforderungen erfüllt: Welches Restaurant im Umkreis von 500m hat gerade auf? Welche Konzerte gibt es im Umkreis von XYZ am Wochenende? Gibt es einen guten Italiener hier in der Nähe? Wie sieht die perfekte Anwendung aus? Keine Ahnung! Die Daten sind da. Laßt uns experimentieren und schauen, auf welche neuen Ideen Menschen kommen, wenn man sie läßt.
|
|
|
|
|
|
|
|
|
|
|
|
Die Idee
|
|
|
Der Plan
|
|
|
========
|
|
|
|
|
|
Ideen haben selten einen exakten Ursprung, aber in diesem Fall gibt es zumindest einen deutlichen roten Faden: Den Versuch, https://www.facebook.com/FlaneurSaarbruecken/ von Facebook zu befreien. Es wurden große Pläne geschmiedet, Konzepte auf dem SaarCamp vorgestellt, Software anprogrammiert und wieder auf Eis gelegt. Inspiriert durch https://www.what-the-hack.saarland/ und motiviert durch eine furchtlose Gruppe von Pythonanfänger*innen, würde ich gerne versuchen, einen - wenn auch kleinen - Schlag gegen Facebook zu führen! ;-)
|
|
|
|
|
|
Worum geht es also genau?
|
|
|
-------------------------
|
|
|
Facebook macht es dem Flaneur sehr leicht, 2-3 mal pro Woche Artikel mit Links auf alle möglichen Events in Saarbrücken zu posten. Den gleichen Service außerhalb von Facebook zu bieten, wäre im Moment mit erheblichem Mehraufwand verbunden. Dies gilt es zu ändern. Ziel ist es, eine Infrastruktur zu schaffen, die (für diesen Anwendungsfall) Facebook mindestens ebenbürtig ist. Natürlich bin ich davon überzeugt, daß sie besser wird! Ein explizites Ziel ist es, die Datenhaltung zu dezentralisieren und Monopolstellungen zu verhindern. Für viele der Teilprobleme existieren schon Lösungen, die aber "nutzbar" gemacht und in Produkt verpackt werden müssen, das von Endusern benutzt werden kann. Eine Open Source Lizenz wird es jedem erlauben, die Software zu nutzen. Auf das jede Stadt ihren Flaneur bekommt, der Kultur abseits des Mainstreams einem größeren Publikum zugänglich macht.
|
|
|
|
|
|
Die Umsetzung
|
|
|
=============
|
|
|
|
|
|
Schritt 1: Rohdaten
|
|
|
-------------------
|
|
|
|
|
|
* Dezentrale Datenhaltung bedeutet, daß "Anbieter" oder "Besitzer" von Daten diese auf ihrer Seite zur Verfügung stellen und so die Kontrolle darüber behalten. Ein Club würde seine Adresse, Geolocation, Öffnungszeiten also auf seiner eigenen Seite veröffentlichen. Allerdings in einer standadisierten maschinenlesbaren Form. So behält jeder die Kontrolle über seine aktuellen Daten.
|
|
|
|
|
|
* Kodiert werden die Informationen via schema.org. Schema.org ist sehr mächtig und relativ unüberschaubar. Wir werden uns auf ein Subset einigen müssen, dessen Unterstützung Sinn ergibt: Orte, Events, ...
|
|
|
|
|
|
* Da Betreiber von Webseiten initial wenig Grund haben werden, die Daten in ihrer Seite korrekt zur Verfügung zu stellen, müssen wir den Aufwand für sie minimieren. Dazu werden entsprechende Tools entwickelt: Formular, die Codeschnippsel erzeugen oder ein Wordpress-Plugin, das die Daten automatisch in die Seite einfügt.
|
|
|
|
|
|
* Um das Projekt zu "bootstrappen" werden wir ein paar Beispielseiten mit Daten brauchen. Entweder wir überzeugen ein paar Freunde und Bekannte, oder müssen ein paar Seiten faken.
|
|
|
|
|
|
Schritt 2: Datenbank
|
|
|
--------------------
|
|
|
|
|
|
* Ein Crawler wird saarbrücker Webseiten abklappern, die zur Verfügung gestellten Daten sammeln und in einer Datenbank zusammen führen.
|
|
|
|
|
|
* Initial wird eine Liste mit entsprechenden Seiten gebraucht. Bei entsprechender Verlinkung der Seiten untereinander sollte die Liste immer irrelevanter werden. Ähnlich wie bei Google, nur in klein. ;-)
|
|
|
|
|
|
* Der Crawler selbst wird natürlich Open Source sein und die Liste der Seiten öffentlich. Ergo kann jeder seine eigene Datenbank aufbauen und es gibt keine zentrale Kontrolle über die Daten.
|
|
|
|
|
|
Schritt 3: Spielwiese
|
|
|
---------------------
|
|
|
|
|
|
* Mit den Daten läßt sich jetzt diverses lustiges Zeugs anstellen. Es ist Teil des Konzepts, daß die konkreten Anwendungsmöglichkeiten nicht überschaubar sind. Ziel ist es, Experimente mit den Daten möglichst einfach zu machen, so daß im Idealfall eine Vielfalt von nützlichen spezialisierten Tools entstehen können.
|
|
|
|
|
|
* Mögliche Szenarien sind:
|
|
|
|
|
|
* Es sind Karten mit allen Locations in Saarbrücken denkbar. Oder Karten, die nur Clubs und Restaurants zeigen.
|
|
|
Oder Locations, in denen an diesem Abend ein Jazz-Konzert stattfindet. Das Interesse wird entscheiden. Die
|
|
|
Optionen sind unbegrenzt.
|
|
|
Das Projekt hört sich viel zu groß für dich an? Du fragst dich, warum es noch niemand gemacht hat, wenn alles so offensichtlich ist? Sicher ist das Vorhaben ambitioniert, aber hey, alles andere wäre langweilig. Oder? Überraschend viele Bausteine sind schon da und haben in den letzen Jahre große Fortschritte gemacht. Schema.org definiert alle Datenmodelle, die man so braucht. Verteilte Entwicklung ist in der Open Source Welt ganz normal. Cloud Provider machen Deployment und Skalierung viel einfacher, als es noch vor wenigen Jahren war.
|
|
|
|
|
|
* Daten können von Menschen kuratiert werden. Das kann in Form von spezialisierten (gefilterten oder
|
|
|
angereicherten Datenbanken passieren. Oder in Form von Artikeln, wie sie der Flaneur schreibt. Mit
|
|
|
https://quilljs.com/ läßt sich ein Interface entwickeln, das Facebook weit übertreffen wird.
|
|
|
Woran hängt es also? An den Menschen! ITler, Anbieter und Anwender müssen miteinander reden. Ein funktionierendes System läßt sich nur gemeinsam erschaffen. Niemand kann alleine alle Blickwinkel unter einen Hut bringen. Der Widerstand braucht dich! ;-)
|
|
|
|
|
|
* Das verlinken der Rohdaten über schema.org bietet Optionen, die hier den Rahmen sprengen würden. Um nur
|
|
|
eine Richtung zu nennen: Kommentar- und Bewertungsseiten können unabhängig der bewerteten Seiten laufen.
|
|
|
Verschiedene Communities können so nach eigenen Spielregeln bewerten und kommentieren. Natürlich sind
|
|
|
diese Daten wieder frei verfügbar, lassen sich crawlen, zusammenführen, aggregieren, durchsuchen, ...
|
|
|
PS: Die Technik
|
|
|
===============
|
|
|
|
|
|
Anhang: Technik
|
|
|
---------------
|
|
|
Wir werden 100% virtuell arbeiten, ohne lokale Infrastruktur zu nutzen. Sprich der Code wird via Gitlab verwaltet und die Software wird bei einem Cloudanbieter (Tendenz: DigitalOcean) als Container auf Kubernetes laufen. Bevorzugte Entwicklungsprache wird - wenig überraschend - Python sein. Von den Buzzwords sollte sich niemand - insbesondere keine "meiner" Anfänger abschrecken lassen. Das Projekt bedarf einer ordentlichen Portion konzeptioneller Arbeit, für die keine langjährige Programmiererfahrung nötig ist. |
|
|
\ No newline at end of file |
|
|
Fragen zur geplanten Technik beantworte ich gerne privat, denke aber, daß Details hier eher langweilen würden. Um trotzdem mal ein paar Buzzwords in den Raum zu werden: Python, Schema.org, Kubernetes, DigitalOcean, Gitlab, OpenStreetMap, ... |