bookmark-manager icon indicating copy to clipboard operation
bookmark-manager copied to clipboard

Social Bookmarking dezentral machen

Open obstschale opened this issue 8 years ago • 10 comments

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.

obstschale avatar Apr 26 '16 07:04 obstschale

REST-API, oAuth, über diese Wege würde ich das derzeit überlegen. Aber das ist ein interessanter Punkt, wie man das geschickt umsetzt.

websupporter avatar Apr 26 '16 07:04 websupporter

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

obstschale avatar Apr 26 '16 07:04 obstschale

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.

websupporter avatar Apr 26 '16 08:04 websupporter

Ohne jetzt wirklich die interne Arbeitsweise des Protokolls zu kennen: Kann man sich vielleicht etwas bei Bittorrent abgucken? Nur so ein Gedanke...

Latz avatar Apr 26 '16 14:04 Latz

Irgendwie wärs ja schon cool. Kenn mich da aber nicht wirklich aus. Ein Blick sollten wir aber drauf werfen.

websupporter avatar Apr 26 '16 14:04 websupporter

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.

Soean avatar Apr 26 '16 15:04 Soean

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 ^^

obstschale avatar Apr 26 '16 15:04 obstschale

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?

Soean avatar Apr 27 '16 09:04 Soean

Wenn ich das richtig verstanden habe, dann könnte wahlweise jede Installation demnach auch als Server fungieren, korrekt?

WebworkrNet avatar Sep 24 '18 22:09 WebworkrNet

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?

WebworkrNet avatar Oct 13 '18 19:10 WebworkrNet