Slackに疲れた研究者のためのMatrix入門
Slackに疲れた研究者のためのMatrix入門
分散型チャットプロトコルがもたらす柔軟で持続可能な研究コミュニケーション
複数の国際共同研究や学際的なプロジェクトに関わっていると、Slackのワークスペースが次第に増え、管理が煩雑になります。
誰かにDMを送ろうとしても、まずどのワークスペースかを思い出す必要があり、通知も分断されがちです。
こうした問題に対して、私は最近 Matrix + Element に移行しました。分散型プロトコルであるMatrixは、研究者のコラボレーションに非常に相性が良いと感じています。本記事ではその特徴と活用方法を紹介します。
ただ、多言語環境でのメッセージ検索に問題があるので、英語環境でご使用ください (下のトラブルシューティングの参照)。
始めるには?
ダウンロードページからクライアントアプリをダウンロードして起動、matrix.org
にアカウントを作る。もしくは、ダウンロードページからElement web (Webクライアント)を起動して、アカウントを作成。登録時はWebアプリを使った方がトラブルが少ない。
Matrixとは?
Matrixは、分散型のオープンなチャットプロトコルです。ユーザーは「ホームサーバ(homeserver)」と呼ばれる任意のサーバにアカウントを作成します。
重要なのは、どのホームサーバに所属していても、他のサーバのユーザーと透過的に通信ができるという点です。
(研究者が使うには、matrix.org
の標準のホームサーバ (無料)でアカウントを作れば十分でしょう。)
たとえば、@alice:uni-wien.at
と @bob:myuniv.jp
のように異なる大学に所属していても、DMの送信も、同じルームへの参加も制限なく可能です。これは、Slackなどの「ワークスペースごとの分断」とは対照的です。
TU Wienでの導入事例
ウィーン工科大学(TU Wien)では、Matrixを公式チャット基盤(TUmatrix)として採用しています。
学内のIT部門がホームサーバを提供し、研究者は大学アカウントでそのまま利用できます。
Matrixはこのように、学術機関による公式導入にも耐えるインフラとなっています。
スペース機能によるルームの整理
Matrixには「スペース(Spaces)」という機能があり、Slackのワークスペースのようにルームを整理できます。
たとえば以下のような構成が可能です:
-
研究室スペース
- セミナー通知
- 論文読み会
- 雑談ルーム
-
国際共同研究スペース
- 理論班
- 実験班
- 全体会議
階層的に整理できるため、複数の研究プロジェクトを並行して進める際にも非常に見通しが良くなります。
クライアントの選択
公式クライアントとしては、以下の2つが推奨されます:
-
PC / Web: Element
→ 安定しており、すべての機能に対応。研究用に最適。 -
スマートフォン: Element X
→ 次世代クライアントとして設計されており、非常に高速かつ軽量。暗号化にも対応。ただし現時点ではスペース機能が完全対応しておらず、すべてのルームがフラットに表示される点は留意が必要です。
なお、旧版の「Element Messenger」は同期が遅いため、現在は非推奨です。
チャット履歴が削除されない
Matrixでは、チャット履歴は基本的に削除されません。自分がルームに残っている限り、過去のメッセージはすべて検索可能です。
これは、研究において以下の点で重要です:
- 長期的な議論の記録
- セミナーのログや議事録の蓄積
- 初期のアイデアやレビューコメントの保存
ファイル共有と保存先
アップロードされたファイルは、そのユーザーの所属するホームサーバに保存されます。
たとえば、@you:matrix.org
のユーザーがファイルを共有すると、それは matrix.org
上に保存されます。
matrix.org は無料で使える優れた公共サーバですが、大容量ファイルの長期保存はマナーとして避けた方がいいでしょう。Element One などの有料プランを使って、エコシステムに貢献するのもいいかもしれません。
自分のホームサーバを建てる/借りる
研究用途であれば、matrix.org をそのまま使うだけでも問題なく運用できます。
ただし、以下のようなニーズがある場合は、ホームサーバの構築や商用ホスティングも検討できます:
- プロジェクト単位の管理を行いたい
- 大容量のファイルを管理したい
- データ保持ポリシーに独自の要件がある場合
Synapse(Matrixの公式サーバ実装)を使えば自前の構築は比較的容易ですし、modular.im などのホスティングサービスを使えば簡単に利用を始められます。
なお、自分のホームサーバを使っていても、他のサーバのユーザーと何の違和感もなく通信できるのがMatrixの大きな利点です。
セキュリティ:E2EEに対応
Matrixは**エンドツーエンド暗号化(E2EE)**に対応しており、プライベートなルームではデフォルトで暗号化が有効になります。
メッセージや添付ファイルの内容はホームサーバを経由しても読み取れません。複雑な設定は不要で、Elementが自動的に暗号化を処理してくれます。
中国本土からの利用について
中国本土では、matrix.org
や vector.im
ドメインが一部制限されていることがあります。Elementの通信が不安定になる場合は、これらのドメインをVPN経由に設定することで回避できます。
Shadowsocks(gfwlist)を利用している場合
以下の行を gfwlist.js
に追加することで、必要な通信をVPNトンネルに通すことが可能です:
"||matrix.org",
"||vector.im",
トラブルシューティング
残念ながら、Elementクライアントアプリにはいくつか問題があります。
以下にまとめておきます。
新しいデバイスからログインしたとき、古いメッセージが読めない
新しいデバイスでログインしたとき、古いメッセージが復号化されないず、"Unable to decrypt message"というエラーが出る。理由不明だが、復号キーが同期されなかったとき起きるらしい。以下の手順で直ります。
- 別のデバイスの「設定」→「Encryption」→「Advanced/Export keys」から復号キーをファイルに書き出して、新しいデバイスへファイルを転送。
- 新しいデバイスの「設定」→「Encryption」→「Advanced/Import keys」から復号キーをファイルから読み込む。
Element Desktopでのメッセージ検索が多言語環境でうまく動作しない
なぜか表示されている単語を検索してもヒットしないことがあります。
原因は、
- Element Desktopのメッセージ検索用のインデックスが、Element Desktopの言語設定に使われている言語用に構築されること、
- 日本語や他のアジア系の言語がインデックス作成時に解析されないこと、
の複合です。
端的に言えば、現在日本語や韓国語などの検索をしても、存在する単語がヒットしないことが多いです。
対策として、
- Element Desktopを英語環境に設定し、メッセージ検索用のインデックスを再構成すること (Setting -> Security & Privacy -> Message search -> Manage -> Disable and enable)
をお勧めします。これで、英語メッセージ内の英単語の検索は動作します。
本格的な改善に向け、パッチを貢献すべく動き始めています。
Discussion