---
title: 2017年〜日本のマストドン
tags:  #janog #mastodon  
author: [Ken Sasaki](https://convert.docswell.com/user/sasakipochi)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/G7W31NLZ72.jpg?width=480
description: JANOG40での発表資料 janogdonを設定した際に感じたこと等を発表している
published: September 08, 23
canonical: https://convert.docswell.com/s/sasakipochi/ZP9REL-2023-09-08-232205
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/G7W31NLZ72.jpg)

2017年 日本のマストドン
2017/7/27 JANOG40 Meeting 発表資料
DMM.comラボ
佐々木 健


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4JZVP3ML73.jpg)



# Page. 3

![Page Image](https://bcdn.docswell.com/page/YE65MXNMJV.jpg)

インターネットの価値


# Page. 4

![Page Image](https://bcdn.docswell.com/page/GE5YZX5QE4.jpg)



# Page. 5

![Page Image](https://bcdn.docswell.com/page/972GRXNW7R.jpg)

JANOGの価値


# Page. 6

![Page Image](https://bcdn.docswell.com/page/DJYVD8P9JM.jpg)

今回も盛り上がっていきましょう
Twitterハッシュタグ
#janog


# Page. 7

![Page Image](https://bcdn.docswell.com/page/V7NM6Q5DE8.jpg)

Twitter？？？


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YJ9NLDY8J3.jpg)

Twitter？？？


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GJ8KX36ZED.jpg)

パンがないなら
ケーキを食べれば
良いじゃない


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LJLZ8V917R.jpg)



# Page. 11

![Page Image](https://bcdn.docswell.com/page/47MV6GZ57W.jpg)

JANOG40のテーマ
「今までを振り返る、これからを知る」


# Page. 12

![Page Image](https://bcdn.docswell.com/page/P7R2PZ6ZJ9.jpg)

本日の内容
●
枕
●
今までの分散SNSの振り返り
●
Mastodonの特徴
●
今後の展開予想
●
ディスカッション


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PJXD39M1EX.jpg)



# Page. 14

![Page Image](https://bcdn.docswell.com/page/3JKXYPGMED.jpg)

Mastodonブームに便乗
4/10〜
4/17
4/26
5/1
5/2
5/10
5/10
6/5
6/26
7/11
7/27
Mastodonがメディアに取り上げられ突然ブレイク
JANOG40プログラム募集締切日
エイヤでMastodonプログラム応募
プログラム選考会議
janogdon.net のインスタンス立ち上げ
内輪向けに細々とアナウンス
JANOGのメーリングリストでアナウンス
IPv6対応
バージョンアップ(1.3.2→1.4.1)
バージョンアップ(1.4.1→1.4.6)
バージョンアップ(1.4.6→1.4.7)
JANOG40ミーティング ← Now!!


# Page. 15

![Page Image](https://bcdn.docswell.com/page/LE359XN2J5.jpg)

janogdon.net とは
https://janogdon.net/about の内容↓
注意書き↓
とりあえず立ててみただけ。気まぐれで落とすかもしれない。
JANOGer っぽい人用？、と思ってるけど、JANOG運営委員とは連係してないよ。
janogdon ≠ JANOG だよ、と。
自由に遊んでくれてOK。
でも mastodon はアカウント削除機能が未実装なので覚悟してアカウント登録し
てね。(※バージョン1.4.2で実装されました)
裏側のこととかは、どこかのJANOGの発表で使わせてもらうかもしれない。
サーバはさくらのVPS、非力なスペックなので、あんまりいじめないでね。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/8EDDG2W6EG.jpg)

2017/7/24時点


# Page. 17

![Page Image](https://bcdn.docswell.com/page/V7PX31XZE8.jpg)

Mastodonの技術的概観


# Page. 18

![Page Image](https://bcdn.docswell.com/page/2JVL4YLM7Q.jpg)

多機能なMastodon
●
Twitterに似たモダンなウェブインターフェイス
●
Twitterに似たAPI
●
バックエンドにデータベースを持つ
●
インスタンス間通信の仕組み(OStatus)


# Page. 19

![Page Image](https://bcdn.docswell.com/page/5EGX19XXJL.jpg)

clocコマンド
●
cloc(Count Lines of Code)
–
https://github.com/AlDanial/cloc
ソースコード中の行数を数えるツール
有効な行のみをカウント
多数の言語に対応


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4JQ8DW857P.jpg)

clocコマンドでMastodonを調べる
% cloc mastodon-1.4.7.tar.gz
3275 text files.
3237 unique files.
1970 files ignored.
github.com/AlDanial/cloc v 1.70
T=9.37 s (139.9 files/s, 8238.7 lines/s)
------------------------------------------------------------------------------Language
files
blank
comment
code
------------------------------------------------------------------------------Ruby
651
6092
1410
22216
YAML
148
196
144
16284
JavaScript
212
2375
141
12167
JSON
36
0
0
6832
SASS
23
936
5
5154
Haml
88
300
22
1466
ERB
117
374
0
627
27
67
0
304
HTML
6
4
0
73
XML
2
0
0
11
Bourne Shell
1
4
3
7
Markdown
------------------------------------------------------------------------------SUM:
1311
10348
1725
65141
-------------------------------------------------------------------------------
65,141


# Page. 21

![Page Image](https://bcdn.docswell.com/page/K742ZK2VJ1.jpg)

Mastodonのコード
●
6万行程度のコンパクトなコード
●
Ruby on Rails というモダンなウェブフレームワークで書かれている
●
JavaScriptのコードも多い
●
モダンな拡張言語も活用
●
–
SASS:スタイルシート言語
–
Haml:HTMLテンプレート言語(Railsで良く使われる)
–
ERB:HTMLへのRubyスクリプト埋めこみ技術
教科書的な綺麗なコード


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LJ1MRXM4EG.jpg)

他のソフトウェアと比較
●
bind-9.11.0-P5
–
●
inn-2.6.1
–
●
みんな大好きDNS
だいぶ前にお世話になったNetNewsサーバ
IRCD-Hybrid
–
だいぶ前にお世話になったIRCサーバ


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GJW31N3ZJ2.jpg)

bind-9.11.0-P5
% cloc bind-9.11.0-P5
4722 text files.
4434 unique files.
2568 files ignored.
github.com/AlDanial/cloc v 1.70
T=8.49 s (255.2 files/s, 102860.2 lines/s)
--------------------------------------------------------------------------------------Language
files
blank
comment
code
--------------------------------------------------------------------------------------C
768
66345
56380
363251
Bourne Shell
444
19049
20143
133091
HTML
116
548
795
44516
C/C++ Header
609
10477
42156
31248
XML
13
1258
138
21412
m4
32
1989
818
17860
C++
74
3487
3129
17191
Perl
61
1571
1771
8472
XSLT
7
146
138
1588
Tcl/Tk
2
174
149
842
Windows Module Definition
9
20
52
513
Python
5
64
63
366
13
112
70
319
Windows Resource File
2
41
47
249
diff
1
31
74
240
awk
5
69
145
236
CSS
1
31
28
140
Markdown
1
22
0
64
Protocol Buffers
1
49
170
49
Windows Message File
1
8
1
29
DTD
1
8
33
20
TeX
1
3
6
8
make
--------------------------------------------------------------------------------------SUM:
2167
105502
126306
641704
---------------------------------------------------------------------------------------
641,704
Mastodonの
10倍


# Page. 24

![Page Image](https://bcdn.docswell.com/page/4EZVP3VLJ3.jpg)

inn-2.6.1
% cloc inn-2.6.1
894 text files.
885 unique files.
406 files ignored.
github.com/AlDanial/cloc v 1.70
T=1.55 s (314.1 files/s, 138891.9 lines/s)
------------------------------------------------------------------------------Language
files
blank
comment
code
------------------------------------------------------------------------------C
262
16751
20114
94598
Bourne Shell
28
6071
6476
35541
m4
37
1091
986
10219
C/C++ Header
94
1390
3311
4503
make
24
579
230
3556
Perl
22
343
1355
3107
Visual Basic
5
341
0
2588
yacc
1
212
19
842
10
137
445
343
lex
1
46
12
197
CSS
1
3
7
79
XSLT
1
8
42
78
Korn Shell
1
26
81
18
Oracle Forms
1
3
0
15
Python
155,684
------------------------------------------------------------------------------SUM:
488
27001
33078
155684
-------------------------------------------------------------------------------
Mastodonの
2.4倍


# Page. 25

![Page Image](https://bcdn.docswell.com/page/Y765MX5MEV.jpg)

IRCD-Hybrid
% cloc hopm-1.1.4
101 text files.
94 unique files.
14 files ignored.
github.com/AlDanial/cloc v 1.70
T=0.26 s (331.9 files/s, 230088.4 lines/s)
------------------------------------------------------------------------------Language
files
blank
comment
code
------------------------------------------------------------------------------Bourne Shell
10
4133
4547
24884
m4
16
1009
131
9678
C
23
1903
2632
8746
C/C++ Header
30
195
443
814
yacc
1
147
28
552
lex
1
60
26
285
make
5
6
0
70
YAML
1
5
1
19
------------------------------------------------------------------------------SUM:
87
7458
7808
45,048
45048
-------------------------------------------------------------------------------
Mastodonよりちょっと小さい


# Page. 26

![Page Image](https://bcdn.docswell.com/page/G75YZXYQ74.jpg)

比較結果
ソフトウェア
Mastodon
総コード数
主な言語
65,141
Ruby,JavaScript
bind
641,704
C
inn
155,684
C
45,048
Shell,C
IRCD-Hybrid
Mastodonは高機能なのにコンパクト
モダンな開発フレームワークの威力


# Page. 27

![Page Image](https://bcdn.docswell.com/page/9J2GRXGWJR.jpg)

Mastodonが利用するソフトウェア
●
Ruby on Rails →ウェブ開発フレームワーク
●
PostgreSQL
→RDBサーバ
●
Sidekiq
→非同期ジョブキューサーバ
●
Redis
→KVS
●
Node.js
→サーバサイドJavaScriptエンジン
●
Docker
→コンテナ管理フレームワーク


# Page. 28

![Page Image](https://bcdn.docswell.com/page/DEYVD8V9EM.jpg)

運用上必要になるソフトウェア
●
Linux OS基盤
●
リバースプロキシ(Nginx等)
●
メールサーバ(Postfix等)
●
監視ツール


# Page. 29

![Page Image](https://bcdn.docswell.com/page/VJNM6QMD78.jpg)

技術的概観まとめ
●
多機能を少ないコードで実現
●
新しめの技術を利用
●
複数の外部ソフトウェアを活用
●
コンテナ技術を活用したパッケージング


# Page. 30

![Page Image](https://bcdn.docswell.com/page/YE9NLDN8E3.jpg)

Mastodonの技術的課題


# Page. 31

![Page Image](https://bcdn.docswell.com/page/GE8KX3KZ7D.jpg)

運用が大変
●
インストールが簡単ではない
●
アップデートも簡単ではない
●
理解すべき技術要素が多い
●
トラブルシュートが難しい


# Page. 32

![Page Image](https://bcdn.docswell.com/page/LELZ8VZ1JR.jpg)

商用サービスとしては機能不足？
●
アカウント削除機能がない
(※バージョン1.4.2で実装された)
●
管理機能が弱い
(※バージョンアップの度に強化されている)
●
外部認証が実装されていない
(※開発者が実装予定と言っている)
●
高負荷時にボトルネックポイントがある
(※バージョンアップ時に改良されている)


# Page. 33

![Page Image](https://bcdn.docswell.com/page/4JMV6GV5JW.jpg)

プロトコル(OStatus)が発展途上
●
まとまった仕様書がない
●
インスタンスをまたいだメッセージ削除ができない
●
URIをキーに用いてしまっている
●
安全なインターネットを前提にしている


# Page. 34

![Page Image](https://bcdn.docswell.com/page/PJR2PZ2ZE9.jpg)

耳にしたことがあるクレーム
●
PosgreSQLじゃなくてMySQLを使って欲しい
●
React.jsを使ってるのはダサい
●
UIが絶望的に良くない
●
APIとUIは分離させるべき


# Page. 35

![Page Image](https://bcdn.docswell.com/page/PEXD39D17X.jpg)

Mastodonの今後の展望


# Page. 36

![Page Image](https://bcdn.docswell.com/page/3EKXYPXM7D.jpg)

継続的なソフトウェア開発
●
GitHub上で開発が続けられている
●
開発ペースは速い
●
開発者のモチベーションも高い
●
コントリビューションも多い
●
不足機能は継続的に追加されている


# Page. 37

![Page Image](https://bcdn.docswell.com/page/L7359X52E5.jpg)

プロトコルの進化
●
OStatus → ActivePub
●
Pubsubhubbub → WebSub
●
OpenID → WebFinger
●
Atom → Activity Streams


# Page. 38

![Page Image](https://bcdn.docswell.com/page/87DDG2D67G.jpg)

別実装の出現
●
●
Mastodonの拡張
–
Pawoo
–
friend.nico
OStatus通信可能な別実装
–
stat.ink


# Page. 39

![Page Image](https://bcdn.docswell.com/page/VJPX316Z78.jpg)

Mastodonをいじってみた感想


# Page. 40

![Page Image](https://bcdn.docswell.com/page/2EVL4Y3MJQ.jpg)

なつかしい気分になった
●
●
●
インスタンス間でメッセージをやりとりするのは
NetNewsやIRCを彷彿とさせる
昔のノウハウがそのまま生きる
–
ストレージを圧迫するのは画像
–
繋がる相手を選ぶことでストレージ圧迫を減らせる
小さいコミュニティの面白さ


# Page. 41

![Page Image](https://bcdn.docswell.com/page/57GX193XEL.jpg)

新しい技術は楽しい
●
少ないコード量で超高機能なサービスを実現
●
強力なモダンフレームワーク
●
複数のソフトウェアを統合的に管理できるDocker


# Page. 42

![Page Image](https://bcdn.docswell.com/page/4EQ8DW55JP.jpg)

こうなると嬉しい
●
簡単にインストール可能
–
apt install mastodon
–
kubectl run mastodon --option...
●
運用が楽な別実装の出現
●
既存のSNSのOStatus(ActivePub)サポート
–
●
mixiの復活、Twitterという巨大インスタンスの出現
クラウドサービスの出現(SaaS、BaaS)
–
一般人はサーバ管理はしたくない


# Page. 43

![Page Image](https://bcdn.docswell.com/page/KJ42ZK9VE1.jpg)

最後に言いたいこと
●
人と人とを繋ぐのはインターネットの大きな価値、
それを実現するツールはなくならない
●
新しいものは面白い
●
古い知識も意外と役に立つ
●
Mastodonがなくなっても知見は後で役に立つ
●
一緒にMastodonで遊びましょう


# Page. 44

![Page Image](https://bcdn.docswell.com/page/LE1MRXK47G.jpg)

インターネットの価値


# Page. 45

![Page Image](https://bcdn.docswell.com/page/GEW31NDZE2.jpg)

おしまい
Special thanks to いらすとや


# Page. 46

![Page Image](https://bcdn.docswell.com/page/47ZVP3GLE3.jpg)



