bookmark-manager
bookmark-manager copied to clipboard
Social Bookmarking dezentral machen
Und noch ein neues Issue. Ich möchte schon früh mit der Diskussion beginnen, wie man die Soziale Komponente in das Projekt reinbringt.
Bei Delicious, und bei anderen Dienst sicherlich auch, konnte man ja anderen Usern folgen und hatte dann schön einen Feed mit den Links der andere. So etwas wäre ja auch schön hier zu sehen.
Allerdings! Egal ob wir jetzt eine Plugin Lösung oder einen eigenen Blog verwenden, die Links liegen jetzt auf unterschiedlichen Servern und somit haben wir eine dezentrale Speicherung. Ich werde mich in den nächsten Tagen noch mal schlau machen, was die Wissenschaft zu diesen Problem sagt. Aber nur kurz zur Erklärung warum das ein Problem darstellt:
Wenn jeder seinen eigenen Social Bookmark Service mit WP aufsetzt und die Links speichert ist das alles kein Problem. Nun kommen aber dritte Nutzer und wollen diese Links in einer Sammelübersicht sehen. D.h. alle deine Follower holen sich die Daten von deinem Webserver und verarbeiten die in eine Liste.
WordPress selber hat ja RSS Feeds. Das würde auch damit klappen, solange man nur die Links der anderen sehen will. Möchte man nun aber noch Liken und sehen ob andere Nutzer diesen Link auch gespeichert haben müssen wir Daten über ein dezentrales Netz teilen, was gar nicht so easy ist.
REST-API, oAuth, über diese Wege würde ich das derzeit überlegen. Aber das ist ein interessanter Punkt, wie man das geschickt umsetzt.
Ja die REST API ist auf jeden Fall der Weg den wir gehen sollten (hätte ich auch gleich erwähnen können). Aber die Server Last und den Traffic müssen wir so gering halten wie möglich. Denn wenn einer 10.000 Follower hätte und auf einen Shared-Hoster läuft könnte das zu Problemen führen, wenn alle immer wieder und wieder API beanspruchen.
Stichwörter wären hier:
- Push-Pull Mechanismen
- QoS (Quality of Service)
- Superpeers
Aber die Server Last und den Traffic müssen wir so gering halten wie möglich
Ja, die Überlegung hatte ich auch gerade. Hmmm... was wäre mit folgendem: Im Plugin/Theme gibts ne Eingabe für Server-URLs. Außerdem noch ne Checkbox "Act as server".
Öffentliche Bookmarks werden auch an die hinterlegten Server geschickt via
POST http://server/wp-json/wp/v2/booksmarks/
Eine Suche in der Single-WP-Instanz würde auch die Server abfragen (könnte man optional machen via Checkbox "Durchsuche Netzwerk(e)"
GET http://server/wp-json/wp/v2/booksmarks/?s=stichwort
Act as server
Wenn das gecheckt ist, wird 1. das WP API plugin erwartet (solange eben nicht core) & 2. dann eben POST
und GET
requests entgegengenommen. Außerdem wird eben bei POST
ein entsprechender User angelegt mit Informationen zum Client, bzw. der Post entsprechend dem User zugeordnet.
Man könnte eine Standardliste von Servern als Empfehlung dem Plugin beigeben (würde die nicht vorinstallieren wollen) und auf der Projektseite ne Liste von Servern veröffentlichen, so dass man da ne Übersicht hat.
Problem mit mehreren Servern
Double Posts. Ich suche etwas und erhalte das gleiche Ergebnis von verschiedenen Servern. Vielleicht über einen md5 hash oder soetwas abgleichen, damit man identische Ergebnisse nicht 20x in die Ergebnisliste schickt.
Ohne jetzt wirklich die interne Arbeitsweise des Protokolls zu kennen: Kann man sich vielleicht etwas bei Bittorrent abgucken? Nur so ein Gedanke...
Irgendwie wärs ja schon cool. Kenn mich da aber nicht wirklich aus. Ein Blick sollten wir aber drauf werfen.
Ich denke, wenn man den Service mit WordPress umsetzen möchte, sind solche Protokolle erstmal überdimensioniert. Die REST-API scheint mir für den Anfang bei den Anforderungen ausreichend zu sein.
Wenn man 10.000 Follower auf einem Shared-Hoster hat, sollte man überlegen upzugraden, das ist auch bei normalen Webseiten so.
Um so länger ich darüber nachdenke desto eher sehe ich es wie @Soean. Sicherlich kann man den Datenaustausch optimieren und dezentrale Muster implementieren, aber ganz ehrlich. In absehbarer Zeit wird hier von uns keiner 10.000 Follower haben. Denn das heißt ja im Umkehrschluss: Es gibt 10.001 Leute die WP als Bookmark Service verwenden – Was schön wäre aber wohl noch etwas Zukunftsmusik ist.
Ich würde daher jetzt einfach Vorschlagen nach der alten Manier vorzugehen: Erst über Probleme nachdenken, wenn sie da sind ^^
Wir sollen eine Inkrementelle und modulare Version entwickeln. Ich fände es besser eine frühe Beta zu haben und in jeder Version dann die Features stetig zu verbessern und erweitern.
Aber zurück zu den sozialen Features:
- Benutzer abonnieren
- Bookmark liken
- Alle externen Bookmarks mit bestimmten Tag suchen
Sind Kommentare sinnvoll?
Wenn ich das richtig verstanden habe, dann könnte wahlweise jede Installation demnach auch als Server fungieren, korrekt?
Kommentare fände ich sinnvoll, aber nicht zwingend erforderlich.
Eine Verständnisfrage: Wird oder soll nicht jedes Lesezeichen in Form eines normalen Posts abgesetzt werden? Und wenn ja, ist dann die Kommentarfunktion durch Wordpress nicht schon selbst gegeben?