في دعم ActivityPub: المرحلة الأولى RFC، قمتُ بتوضيح تمرين توليد أفكار لتقييم الحالة التجارية لدعم ActivityPub في Discourse، والتفكير بما يتجاوز الحد الأدنى للمنتج القابل للتطبيق (MVP) كما لو أن Discourse قد بُني من الصفر مع وضع الفيدرالية في الحسبان:
لذا، سأبدأ هنا بتوليد الأفكار مع بعض العصف الذهني، دون أخذ الاعتبارات التقنية العملية في الحسبان بالنظر إلى قاعدة الكود الحالية. أدرك أن هناك العديد من التفاصيل الدقيقة والحالات الحدية في كل هذا. هذه رؤية لما قد يبدو عليه دعم الفيدرالية الأصلي. هيا بنا..
المجتمع بلا حدود
(الصورة من Pixabay عبر Pexels)
نحن جميعًا نشارك كوكبًا واحدًا
مختلطين في هياكل اجتماعية معقدة. لماذا يُقتصر مجتمع Discourse على منتدى واحد فقط؟
أنا مدير مجتمع التكنولوجيا الإنسانية (HTC)، ونغطي مجموعة واسعة من الموضوعات المتعلقة بالتكنولوجيا، حيث لدينا فئات فرعية مثل «الحرية > الخصوصية»، و«التوافق > الأخلاقيات»، و«التوافق > المعايير». ربما تكون واسعة جدًا، وتوجد العديد من منتديات Discourse الأخرى المتخصصة في هذه الفئات، وتقوم بعمل أفضل منا في هذا المجال. ولكن بالنسبة للأشخاص المهتمين بالحصول على نظرة عامة عن المجال بأكمله للتكنولوجيا الإنسانية، فإن التموضع الواسع منطقي.
فيدرالية الفئات
ماذا لو أمكنني ربط فئتنا الفرعية «الخصوصية» بفئة فرعية مثل «منشورات المدونة» في منتدى PrivacyTools؟ ربما لمزامنة المواضيع في اتجاه واحد فقط - حيث أن فئة الخصوصية في HTC أوسع نطاقًا - بحيث تظهر المواضيع المنشورة في PrivacyTools على منتدى HTC، ويمكن لأعضائنا التفاعل معها. ثم تُنقل منشورات المواضيع في منتدى HTC مرة أخرى إلى الموضوع في PrivacyTools والعكس صحيح. يتم الحفاظ على تزامن المواضيع في كلا المنتدىين. ربما أرغب حتى في مزامنة فئات فرعية متعددة من PrivacyTools مع «الخصوصية» في HTC في اتجاه واحد. ولماذا لا نزامن مع مجتمعات أخرى تتعلق بالخصوصية بطريقة مماثلة؟
مثال آخر. يشارك كل من Feneas و SocialHub فئة عليا باسم «ActivityPub». هناك تداخل في هذه الفئات، وتكرار، وأعضاء من مجتمع واحد غير مدركين لما يحدث في المجتمع الآخر. هذه فرصة حيث تكون «ActivityPub» مرشحًا للمزامنة ثنائية الاتجاه، بحيث يحتوي كل منتدى على نفس قوائم المواضيع.
فيدرالية الوسوم والمواضيع الفردية
ينطبق الشيء نفسه على الوسوم، حيث يتم تكوين وسم معين ليتم فيدرالته. قد يكون هذا الإعداد مثلاً بحيث يتم فيدرالة أي موضوع يحمل وسم #specification في SocialHub إلى الفئة الفرعية «التوافق > المعايير» في HTC.
قد يتم فيدرالة المواضيع أيضًا على أساس كل حالة على حدة، بناءً على أمر من شريط الأدوات، حيث تحدد المنتدى المستهدف للفيدرالية، وربما تختار أيضًا الفئة البعيدة التي يجب أن يظهر فيها الموضوع (أي أن قائمة فئات المنتدى يتم فيدرالتها أيضًا للتصفح البعيد).
إشارات الأعضاء وعروض الملفات الشخصية
عند فيدرالة موضوع إلى منتدى آخر، يجب تكييف أي إشارات داخله لتعكس مكان وجود العضو. قد يظهر اسم المستخدم @aschrijver الخاص بي في HTC كـ @aschrijver@humanetech في منتدى SocialHub بعد المزامنة.
بما أنني أيضًا مستخدم في SocialHub، فقد أقوم بربط الحسابات في إعدادات ملفي الشخصي، وبعد التحقق، يعني ذلك أنه في المواضيع المزامنة يمكن عرض اسم المستخدم المحلي للحساب الخاص بي.
عند النقر على مقبض بعيد أو صورة رمزية لعضو بعيد، يتم عرض بطاقة الملف الشخصي للمنتدى البعيد. وعند النقر مرة أخرى لرؤية ملخص الملف الشخصي، قد يعرض فقط مقاييس النشاط في المنتدى المحلي الناتجة عن تفاعل المواضيع المزامنة. أو، وبشكل أكثر إثارة للاهتمام، قد يعرض ملخصات من جميع المنتديات المعروفة التي هي جزء من تكوين الفيدرالية. على سبيل المثال، سأكون قادرًا حينها على معرفة أن الرد جاء من عضو نشط جدًا وخبير في المنتدى الآخر.
الرسائل المباشرة والإشعارات
ستكون الرسائل المباشرة (DMs) ممكنة عبر جميع المنتديات المدمجة، وليس فقط محليًا، عن طريق وسم/إشارة العضو البعيد في الرسالة المباشرة. بخلاف ذلك، لن يكون هناك فرق في طريقة حدوث تواصل الرسائل المباشرة. تعمل بنفس طريقة الرسائل المباشرة المحلية الحالية.
من كل ما ورد أعلاه حول الفيدرالية، تنشأ الحاجة إلى فيدرالة الإشعارات أيضًا. إذا قمت بالرد على منشور لعضو بعيد، أو أعجبت بمنشوره، أو أشير إليه في خيط موضوع مزامنة، فقد يظهر إشعار واجهة مستخدم في المنتدى البعيد لإخطار العضو. يتم التعامل مع إشعارات البريد الإلكتروني بواسطة المنتدى البعيد أيضًا. ومع ذلك، إذا كان العضو قد ربط حساباته في كلا المنتدىين، فقد تأتي الإشعارات من المنتدى المحلي حيث حدث التفاعل لأول مرة.
تسجيل الدخول الموحد
لاحظ أنه في جميع الوظائف الموصوفة حتى الآن، لا توجد حاجة لتسجيل الدخول الموحد (SSO). لا يتمتع العضو البعيد تلقائيًا بحقوق وصول مميزة إلى منتدى آخر مدمج. فماذا لو تم الإشارة إليه في خيط موضوع مزامن في اتجاه واحد؟ في هذه الحالة، سيستقبل إشعار واجهة مستخدم ورسالة بريد إلكتروني قادمة من مثيل المنتدى الخاص به، وعند النقر عليها سيتم توجيهه إلى المنتدى الآخر (ربما في علامة تبويب جديدة في المتصفح) حيث يمكنه مجرد عرض الموضوع. إذا أراد الرد، فعليه أولاً التسجيل وربط الحسابات ليكون قادرًا على الرد.
لاحظ أن SSO أمر معقد في Fediverse، ولا توجد له حتى الآن حل جيد. ولكن بالنسبة لفيدرالية Discourse إلى Discourse، قد يكون إجراء SSO أسهل بكثير في التنفيذ. إذا كان هناك تكامل SSO، فإن النقر على الإشعار قد يفتح الموضوع في السياق داخل المنتدى الحالي (كـ «عرض عن بعد») ويسمح للعضو بالتفاعل معه بسلاسة.
إدارة الفيدرالية والتعقيد
يتم وصف حالة الاستخدام هذه كما لو أن Discourse قد بُني من الصفر مع دعم الفيدرالية المدمج. إذا تم تنفيذ كل هذا، فإنه يمس تقريبًا جميع ميزات المنتج. على عكس حالة الاستخدام التي بدأت هذا الموضوع - لتغذيات مخصصة مثل فيسبوك - فإن الفيدرالية هنا تُدار بعناية من قبل موظفي المنتدى، وليس على هوا الأفراد.
كثير من تكوين الفيدرالية هو أمر خاص بالمسؤولين فقط. يجب القيام به بشكل استراتيجي ومع خطة جيدة، للحفاظ على تنظيم المجتمع والمحتوى بديهياً ومنطقياً. يتم بناء إعداد الفيدرالية تدريجيًا بمرور الوقت كجزء من سير عمل بناء المجتمع، وليس شيئًا يُضاف بعفوية.
التوافقية
بالطبع، لا يجب أن يقتصر هذا الرؤية لدعم ActivityPub على Discourse. أي مشروع برمجي متوافق يمكن أن يصبح جزءًا من نسيج المجتمع الموزع. على سبيل المثال، برمجيات بناء المجتمع مفتوحة المصدر forem ومنصة اتخاذ القرار التعاوني loomio، وكليهما أشرتُ للتو في اتجاه هذا المنشور. لكن Discourse لديه الفرصة لقيادة كل هذا.
تكامل Fediverse
كان كل دعم الفيدرالية حتى الآن محدودًا بنطاق أعمال المنتدى/المجتمع، ولكن مع تكامل ActivityPub يمكن للتوافقية الآن التوسع لتشمل Fediverse الأوسع، مما يتيح العديد من حالات الاستخدام التجارية المثيرة. فقط لأذكر بعضًا منها التي تخطر ببالي عشوائيًا الآن:
- الإعلان عن منشورات المنتدى على نطاق Fediverse عبر تغريدات (toots) على منصات التدوين المصغر Mastodon / Pleroma.
- يتم تحميل الصور المضمنة تلقائيًا إلى PixelFed وتقديمها من هناك (مفيد مثلاً لمجتمعات Blender).
- يسمح شريط الأدوات التاريخ/الوقت بإعداد حدث كامل Mobilizon موجه لـ Fediverse، مع ميزات RSVP الكاملة.
- التكامل ثنائي الاتجاه، حيث تكون مناقشات Mobilizon في الحدث هي في الواقع مواضيع Discourse.
- إنشاء مواضيع PeerTube بميزات فيديو خاصة، حيث تكون المنشورات هي خيط التعليقات في PeerTube.
- يصبح موضوعك المنشور تلقائيًا منشور مدونة Writefreely بالإضافة إلى خيط تعليقات.
- تضمين أجزاء من المنتدى الخاص بك في Nextcloud كتطبيق عبر دعم ActivityPub الخاص به.
- دمج ميزات البودكاست عبر Funkwhale (انظر الفيديو الأخير حول دعم البودكاست).
- الحصول على معلومات الملف الشخصي من Flockingbird، شبكة اجتماعية احترافية قيد التطوير (دليل مشابه لـ LinkedIn).
ونظروا إلى العدد المتزايد باستمرار من التطبيقات في قائمة مراقبة ActivityPub ودع خيالك يقودك ![]()
العواقب
انسَ للحظة جميع العقبات التقنية والعقبات، وفكر في ما يعني ذلك لـ Discourse كمنتج. أو بالأحرى كـ Discourse لم يعد مجرد «منتج»: أصبح Discourse نسيج مجتمع موزع.
لم يعد موظفو المنتدى مجرد موظفين. سيتبنون منظورًا أوسع بكثير لبناء المجتمع. كل من المجتمع ومحتوى المجتمع موجودان في جميع أنحاء نسيج Discourse. سيبحث الموظفون بنشاط في مثيلات Discourse الأخرى، ويتواصلون مع موظفيها لإقامة شراكات وخلق تصاميم فيدرالية مثيرة لقص ولحس تنظيم المجتمع والمحتوى ليكون الأكثر إثارة للاهتمام لقاعدة أعضاء المجتمع.
يتم خدمة أعضاء المجتمع أنفسهم بشكل أفضل أيضًا. سيتدفق محتوى أكثر إثارة للاهتمام إلى «بوابة» المنتدى الخاص بهم، وسيكون المنتدى أكثر نشاطًا مما لو كان مجرد شيء محلي. سيكون أعضاء المجتمع قادرين على اكتشاف والتفاعل مع أعضاء مثيلات منتديات أخرى في جميع أنحاء النسيج. في الواقع، تم إزالة حدود المجتمع: المجتمع بلا حدود.

