自己顕示欲の開放治療所

erg, programming and something.

別名:Laughing and Grief 雑記

Latin and Greekは習ったこともない

真面目な記事の他、特定の方には不快と思われる事柄に関して言及を行うことがあります。ちょっと頑張りますが、Blog内で解決できなかった場合要望があれば別ページに技術記事は書き直します

分散SNSポエム

この記事は WORDIAN Advent Calendar 2017 - Adventar の20日目の記事になります。 今日もポエムです。この書き方だといつもはポエムじゃないみたいだ。

前書き

Twitterの自動凍結やUserStreams廃止などでまた揺れてますね。絵師のMastodon(Powoo)移行なんかもよく聞く話になってきました。僕も息子の要請によりPowoo垢を作ってみたりしました。そのコミュニティの感覚がまだ上手く掴めていないのでメイン所在地の移動というのはまだ無さそうですが。

所属している研究室では「分散SNS」の研究もあります。もっと早くこっちに変えておけばと思わなくもないです。

中央サーバ型のSNSの利点は運用ポリシーの管理が比較的容易であることが挙げられるかと思います。アカウントのBANとか。

連邦型のSNSインスタンス毎にポリシー、追加機能が分かれているので合うものを自分で選べる、気に入らなければ自分で立てられるといった感じでふわっと理解しています。

この何れもが、弱点として「ユーザーが増えると運営が大変」というのを持っています。あと、連邦型では分散されているとはいえ、「運営がいなくなる」可能性もありますね。「運営が信用できない」なども中にはありますが。

分散SNSは主にPeer-to-Peerネットワークを利用したSNSのことです。後でもまた書きますが、これに関して一番難しいのは「P2P」に関する偏見かなとは思います。WebRTCだと皆飛びつくのにな。

今回はTwitter-Alternativeのこととか。各技術についてふわっとしてしか理解していない*1ので、ツッコミ待ちなところはあります。

既存プロジェクトなど

github.com

BitTorrentのイメージってファイル共有(特に、文脈が違法ファイル共有)で認識している人が多くて、 Bleepとかはそこで損している部分もありそうですよね。

プラットフォーム系は巨大すぎて全く把握できていない......。

Tomo’s HotLine: P2P

結構以前からP2PによるSNSについて書かれています。

ランデブーポイント

ほとんどのプロトコルやプロジェクトで、「最初に繋がるための情報を得る特定の場所」というものが存在しています。DHT(分散ハッシュテーブル)とかを使っていても最初にアクセスする場所は決まっていたりして、種別は違えども似たようなものが必要であったりします。

Gossip-Protocol

nullkal君に「Scuttlebutt」を教えてもらいました。

staltz.com

現状のSNSについての欠点などの紹介から、開発したアプリケーションの紹介まで↑のリンクで載っています。

限界脳状態だったのでプロトコルなどはちゃんと読めていないのですが、ランデブーポイントの問題も解決できているはず?

ぼくのかんがえたさいきょうの

まあ、子供の考える最強の設定ってオリジナリティに溢れていることって実は少ないですよね。

要求機能

Twitterがチャットシステムでは無く、マイクロブログであることが大切だと僕は思っていて、望む情報は手に入る必要があるが、望まない情報が絶対に目に入らないというのは閉塞感に繋がって良くないんじゃないかな、と。 勿論ゾーニングの必要性はありますが、完全にドメイン特化した情報しか手に入らないならクローズドなチャットシステムであってマイクロブログでは無い気がする。

アカウント

公開状態と鍵垢状態は必要そうだなと。 アイコン(プロフィール画像)は要りそうだけれど、背景画像まで用意すると割とコストになりそう。 プロフィール文章は必要として、所属組織とかのフィールドを設けると硬くなってしまうのではという不安があります。

本文投稿

まあ基本機能ですよね。字数制限はシステムの軽量さのためにもある程度必要な気がします。長文投稿用には自レスで運用する今のTwitteシステムで皆馴染んでいそうですし。あまり長い文はやはりパッと読むには向かないというのもあります。

返信

マイクロブログとしてはむしろ「コメント」と定義するべき部分かもしれませんが。

リブログ(RT)、引用(QT)

連投や流れを無視した「切り取り」に思うところが無い訳ではありませんが、機能としては必要、といったところ。

公開でない投稿を引っぱる際の仕組みには気をつけないといけないかも。

DM

直接応答。Slackみたいに複数人対象をサポートしてもいいのかも。

削除

設計からすると難しい気がしますが、「消した」という意思表明ができればいいかなという感じ。

タグ(ハッシュタグ

或いは「カテゴリー」。 本文フィールドとは別にくっつけた方が処理としては楽そうだなと思うんですけど。 ゾーニングの手段として、例えば「R-18」タグを予約語として用意して、見るには鍵が(アカウントとは別に)要るようにすれば良いんじゃないかと考えたり。他に予約語の候補としては「spoiler(ネタバレ)」を「Anime」タグと組み合わせたときに許可しないと見られなくするとかがあります。

フォロー、ブロック

あんまりアイデアが無いです。

リスト

フォロワーリスト、ユーザ作成リストなど。

URL

短縮URLも実装して、本文領域で済ますのも良いけれど、フィールドを分けたい気持ちもある。 移動先のサムネイルがあると嬉しいけれど、オプショナルな話になりそうです。

メディア

URLと埋め込みの2つの手段があるけれど、どっちもよしなにしたいですね。中央のサーバで捌かない以上、P2Pネットワークに載せたメディアというのは扱いが難しいところです。

Reaction

Twitterでは「ふぁぼ」もとい「いいね」一択ですが、SlackみたいにEmojiリアクションぐらいのバリエーションがあると嬉しいですね。「Unlike」が付く可能性も勿論ありますが。 LINEのように「スタンプ」までいくと難しそうです。

検索

タグ検索、ユーザー検索、本文検索などをね。

アーカイブ取得

分散システムだからこそ必要な機能だと考えています。

後書き

ポエムでした。 特に書くことは無いです。

*1:つまり、理解していない。