Help us understand the problem. What is going on with this article?

Slackのチャンネル参加数変動を報告するボットとチャンネルランキング

More than 1 year has passed since last update.

この記事はN高等学校アドベントカレンダー2018の初日の記事です。

N高等学校の職員で、ドワンゴが運営するN予備校のプログラミング講師のsifueです。N高等学校のプログラミング教育の実務責任者をしています。

2018年のN高プログラミング教育について

N高等学校についてや、N高プログラミング教育に関しては、過去2年間の記事の

で説明してしまっているので、今回は簡単に最近の情報のアップデートだけ紹介します。

2016年から始まったN高等学校ですが、3年目となった現在では生徒数は7000名を超えました。現在も勢いはそのままに生徒数は増え続けています。またN予備校でプログラミングを学んでいる高校生は1800名を超え、現在は8キャンパスの通学拠点があり、800名近い生徒が通学して学んでいます。

通学拠点では週に2回のプログラミング学習時間があるほか、プログラミングだけを専念して学び、CoderDojoのようにコーチと一緒にプロジェクト学習的に作りたいものを作りながら学ぶプログラミングクラスというものも運営しています。

プログラミングクラスは1クラス定員30名なのですが、来年度は代々木2クラス、御茶ノ水、心斎橋、名古屋の5クラスに拡張予定で、各通学コースの各拠点では、現在は入学試験真っ最中です。

なお、より詳しいプログラミング教育の状況については最近「教育従事プログラマーというキャリアについて」というドワンゴの技術ブログに書かせてもらいましたのでそちらを参照ください。また生徒たちのポートフォリオやメディア露出などはこちらにもまとめてあります。

チャンネル参加人数変動を毎朝報告するボットについて

ここからが本編ですが、今回はN高Slack用に毎朝、各チャンネルの人数変動を報告するボットをHubotとJavaScriptで開発したのでその紹介です。

N高等学校では学内のコミュニケーションのためにSlackというチャットツールを使っています。また、そこで運用するチャットボットに関しては、N高等学校の生徒もN高 Slackボット申請より申請することが可能です。

スクリーンショット 2018-11-29 16.09.12.png
N高 Slack ボット可動申請のページ

ルールとして、学内の情報を外部サイトに保存しないことや公序良俗に反しないこと、他の生徒が不快に感じないなど様々なものがありますが、そのルールをパスしたものであればプログラミング講師陣のコードレビューを経たあと、生徒たちにボットのトークンが発行される仕組みとなっています。

Hubotアプリケーションでのトークンの払い出しは行われますが、実際にはそのボットトークンでどのようなプログラミング言語でも利用可能となっています(自作言語と機械語のみのものを除く)。

生徒が実際作っているボットとしては、Twitterと連携して相互に通知しあったり、ニュースを報告したり、災害情報を通知したりというものなどがあります。自分自身も学内の「いいね👍」のリアクションをカウントして褒めてくれるボットなどを運用していたりします。

今回作ったチャンネル参加数変動を報告するボット (チャンネルマップインフォ) もそのような取り組みの一環として作られたものです。

スクリーンショット 2018-11-29 16.39.25.png
チャンネルマップインフォの稼働の様子

このような動作をします。

なおこのボットが報告したパブリックチャンネルの参加者数変動情報を活用して、N高のSlackチャンネルマップという学内Webサイトの更新を、有志の生徒たちが手動で編集してくれています。

スクリーンショット 2018-11-29 16.29.20.png
N高Slackチャンネルマップのページ

こちらのN高Slackチャンネルマップは、N高等学校に参加した生徒が自分と趣味の合うひとなどをパブリックチャンネルの中から探すために利用されています。

そして今回のこのボットのコードはこちら

内容としては公式が出しているライブラリの

以上を普通に使っているボットとなります。

これらのライブラリが優秀すぎて、あとは、SlackのAPIドキュメント を見ながらできることを確認しながら実装していきました。やっていることは、

  1. 毎朝6時に起動
  2. チャンネルリストを取得
  3. ファイルに保存している前日のチャンネルリストとの差分を作成
  4. Slackの #チャンネルマップ に投稿

となっています。ボットスクリプトのコードも非常に短くて特に難しいことは何もしていません。

以上の流れを見てだいたいわかったかもしれませんが、実は副産物として毎日チャンネルの参加人数情報がファイルとして溜まっていきます。今回は年の瀬ということもあるので、それを利用してチャンネルの参加人数ランキングと増加数ランキングを作ってみました。(実は学内の人ならチャンネル一覧を参加者数でソートすると参加人数ランキングは見れますが)

なおランキング集計時のために利用したCSVへの出力スクリプトはこのようになっています。今回はあえてPromiseではなくasync/awaitで書いてみたりもしました。

では以下、N高Slackチャンネルランキングの紹介です。

チャンネル参加者数ランキング (18/11/27時点)

全体 TOP200

順位 チャンネル名 参加者数
1 学校からのお知らせ 7186
2 n_help 6764
3 workexp 6023
4 チャット練習用 6021
5 zatsudan 3949
6 部活同好会宣伝用チャンネル 3629
7 2018年度新入生 3208
8 2017年新入生 2142
9 n高文化祭2018 1876
10 通学_プロn質問回答用 342
11 club_art 200
12 kagai 198
13 programming 196
14 adobe-cc 159
15 club_jinrou 148
16 club_computer 145
17 1_お悩み相談室 144
18 splatoon 140
19 club_music 140
20 toho_daisuki 130
21 ドラゴンクエスト10 129
22 fgoスマホアプリ 129
23 wellness_info 122
24 club_esports 120
25 club_music_dtm 118
26 4gamer 107
27 music-game 101
28 2018ネット運動会 96
29 programming-beginner 95
30 fortnite 95
31 ncre_ekaki 93
32 文芸とライトノベル作家の会 93
33 1031-1032合同クラス 92
34 写真同好会 90
35 club_quiz 90
36 2017年度第5回大阪スクーリング特別活動 87
37 n_call 86
38 anime 85
39 trpg 84
40 lol 82
41 ポケモン同好会 79
42 2017年度第6回大阪スクーリング 77
43 pubg 75
44 cosplay 74
45 絵描きの卵 74
46 夜行性_fooooo 73
47 超会議2018 72
48 エンジニアアルバイト 72
49 バンドリ 71
50 n-movie_creator_映像同好会 70
51 2_お悩み相談室 66
52 モンスト 65
53 programming-intro 65
54 club_kakuge 64
55 kankore 64
56 自作er 63
57 regular_1 63
58 compass 61
59 第6回ネット遠足 61
60 パズドラ 59
61 minecraft_circle 58
62 minecraft 57
63 ディベート 57
64 club_shogi 55
65 rainbow_six_siege 55
66 pso2 54
67 overwatch 53
68 20171221仙台特別活動 53
69 2018年度多摩動物公園_校外学習 53
70 shadowverse 52
71 模型同好会 52
72 52
73 nature_and_animals 50
74 mhw 49
75 mahjong 47
76 pokemon 47
77 nコイン取引所 47
78 災害情報 47
79 schooling-in-okinawa 46
80 club_soccer 45
81 ハロウィンパーティhr 45
82 club_igo 43
83 _lovelive 43
84 カニチャンネル 43
85 大宮キャンパス 43
86 zatsudan-mattari 42
87 unity_gamedev 42
88 同好会一覧 42
89 toukenranbu 41
90 横浜キャンパス生徒雑談場所 41
91 art_mini 41
92 maker 40
93 アズールレーン 40
94 クラロワ 39
95 人民のための素晴らしき雑談チャンネル 39
96 fps_ 38
97 jinrou 38
98 ここにキマシタワーを建てよう 37
99 寿司教n高校支部 36
100 憩いの場-fika- 36
101 blender 36
102 nvcc 35
103 e-sports 34
104 baseball 34
105 thetudan 34
106 合同たこ焼き大会会場 34
107 _ncre_windmusic 33
108 handmade 33
109 バイク同好会 33
110 english_enjoy 33
111 アニメ同好会 33
112 slack_bot_develop 33
113 荒野行動 33
114 wot_wows 32
115 vocaloid 32
116 table_game 32
117 デレステミリシタ 32
118 music_chorus同好会 32
119 lovelive 31
120 猫好きch 31
121 ネットコースの民 31
122 girls_anime 31
123 お散歩ホームルームin日本橋 31
124 チャンネルマップ 31
125 music 30
126 bokaro 30
127 n1gp 30
128 pokemongo 30
129 ディベート_雑談 30
130 club_ncreative 29
131 utattemita 29
132 schooling-in-tokyo 29
133 読書会 29
134 myproject 29
135 typing 28
136 machikaigi2016 28
137 鉄道同好会 28
138 文芸とライトノベル雑談の会 28
139 military 28
140 スマブラ同好会 28
141 n-info-tech 28
142 演劇サークル 28
143 プロn_議論 28
144 16裏channel 27
145 unicorn 27
146 おしお 27
147 2018年加藤クラス雑談 27
148 waidan 27
149 28年度6組 26
150 大喜利ch 26
151 javascript 26
152 otona 25
153 dqx 25
154 project-imas 25
155 war-thunder 25
156 闘会議2019 25
157 nコインジャンケン会場 25
158 vtuber 25
159 永続17_32_saito 25
160 unity_game-making 25
161 美容研究会 25
162 ch宣伝用ch 25
163 n高意見交換 25
164 2018沖縄研修旅行雑談 25
165 n幼稚園 25
166 vantan 24
167 カービィ 24
168 game_dev 24
169 9月10日_中室さん授業 24
170 n_girl 23
171 tv_jikkyo 23
172 line 23
173 大学受験 23
174 生き物チャンネル 23
175 nvtc 23
176 nagashima_n_center 22
177 tokaigi2017 22
178 オカルト研究会 22
179 7月生_ohanashi 22
180 nコイン売買掲示板 22
181 御茶ノ水cp_既存生チャンネル 22
182 python 22
183 zatsudan通話民 22
184 consult 21
185 newcomer 21
186 channel_senden 21
187 moviecritics 21
188 kamen_rider 21
189 ようzyo大好きクラブ 21
190 vtuberになりたい貴方 21
191 戦略ゲームで遊ぶ会 21
192 github 20
193 chokaigi_project 20
194 mhxx 20
195 java 20
196 zisakugengo 20
197 部活同好会交流用チャンネル 20
198 短編掲載企画用チャンネル 20
199 ひよこを愛でる会 20
200 通学_麻雀 20

プログラミング・IT関連 TOP45

順位 チャンネル名 参加人数
1 programming 196
2 adobe-cc 159
3 club_computer 145
4 programming-beginner 95
5 エンジニアアルバイト 72
6 programming-intro 65
7 自作er 63
8 unity_gamedev 42
9 maker 40
10 blender 36
11 slack_bot_develop 33
12 typing 28
13 n-info-tech 28
14 javascript 26
15 vtuber 25
16 unity_game-making 25
17 game_dev 24
18 python 22
19 github 20
20 java 20
21 zisakugengo 20
22 機械学習 19
23 swift 18
24 scala 16
25 golang 16
26 computer_science 15
27 hololens_dev 15
28 mitou 14
29 vr 13
30 infra 13
31 css 13
32 designer 11
33 html 11
34 vantan_game 10
35 web_designer 10
36 ruby 10
37 zisakupc_and_gadget 9
38 spajam 9
39 cg 9
40 vrchat 8
41 情報処理技術者試験 7
42 vantan_game_tokyo 6
43 tinkercad 6
44 legacy_pc_maintainer 4
45 ue4_gamedev 4

参加者増加数ランキング (18/9/19-11/27間)

全体 TOP100

順位 チャンネル名 増加数
1 学校からのお知らせ 449
2 2018年度新入生 431
3 部活同好会宣伝用チャンネル 414
4 n_help 390
5 zatsudan 384
6 workexp 379
7 チャット練習用 330
8 club_esports 120
9 2018ネット運動会 45
10 ハロウィンパーティhr 45
11 合同たこ焼き大会会場 25
12 2018沖縄研修旅行雑談 25
13 n幼稚園 25
14 zatsudan通話民 22
15 21
16 fortnite 20
17 adobe-cc 20
18 こっぺぱんるーむ 19
19 機械学習 19
20 lol 18
21 クラロワ 17
22 キュバニア帝国領slack 17
23 カスタムキャスト 17
24 ゆゆうた 17
25 ようじょ教 17
26 n幼稚園保護者会 17
27 club_art 15
28 名古屋中国語文法 15
29 compass 14
30 芸術っていいよね 13
31 ほたるの食生活改善委員会 13
32 css 13
33 やきそばフランクフルト 13
34 キャンフェスたこ焼き 13
35 パズドラ 12
36 medicine 12
37 64bitを計算する会 12
38 キャンフェス名古屋歌って見た踊ってみた 12
39 キャンフェス名古屋けいおん 11
40 学ぶのが好きなひと 10
41 rocket_league 10
42 2018大阪町会議 10
43 通学_プロn質問回答用 10
44 キャンフェス名古屋ディベート 10
45 キャンフェス名古屋劇 10
46 maker 9
47 絵描きの卵 9
48 スマブラ同好会 9
49 レポート質問-職員室的な感じ 9
50 パソコンはお好きかい 9
51 cg 9
52 10月新入生歓迎会実行委員 9
53 通話チャンネル 9
54 夜の静かな小川 9
55 ニコニコ超会議2019 9
56 キャンフェス名古屋クイズ 9
57 splatoon 8
58 club_music 8
59 unity_gamedev 8
60 バンドリ 8
61 syamu学 8
62 は進学希望 8
63 超パーティー2018 8
64 編集部_沖縄組 8
65 アトチャン放題チャンネル_ミュート推奨 8
66 スーモ 8
67 キャンフェスタピオカジュース 8
68 processing 8
69 n幼稚園うさぎ組 8
70 n幼稚園職員室 8
71 モンスト 7
72 baseball 7
73 war-thunder 7
74 ディベート 7
75 エンジニアアルバイト 7
76 脱出名古屋3班 7
77 東京オリンピック2020ボランティア 7
78 茶葉連合軍 7
79 rktnテロ対策委員会 7
80 キャンフェス名古屋未成年の主張 7
81 n高校茨城 7
82 墓場 7
83 ドイツ帝国 7
84 mahjong 6
85 waidan 6
86 災害情報 6
87 zatudann2 6
88 ちくわ大明神 6
89 分限裁判所 6
90 プロn_代々木2 6
91 省庁ドラマ制作4班 6
92 立法裁判例研究会会議室 6
93 キャンフェスわたがし 6
94 n幼稚園ことり組 6
95 n幼稚園りす組 6
96 club_shogi 5
97 programming 5
98 自作er 5
99 toho_daisuki 5
100 club_jinrou 5

プログラミング・IT関連 TOP45

順位 チャンネル名 増加数
1 adobe-cc 20
2 機械学習 19
3 css 13
4 maker 9
5 cg 9
6 unity_gamedev 8
7 エンジニアアルバイト 7
8 programming 5
9 自作er 5
10 swift 5
11 club_computer 4
12 programming-beginner 4
13 blender 4
14 slack_bot_develop 4
15 vtuber 3
16 unity_game-making 3
17 python 3
18 javascript 2
19 game_dev 2
20 golang 2
21 typing 1
22 zisakugengo 1
23 mitou 1
24 vr 1
25 html 1
26 web_designer 1
27 vrchat 1
28 情報処理技術者試験 1
29 programming-intro 0
30 n-info-tech 0
31 scala 0
32 computer_science 0
33 infra 0
34 designer 0
35 vantan_game 0
36 spajam 0
37 vantan_game_tokyo 0
38 tinkercad 0
39 legacy_pc_maintainer 0
40 ue4_gamedev 0
41 github -1
42 java -1
43 hololens_dev -1
44 ruby -1
45 zisakupc_and_gadget -1

おわりに

ランキングどうだったでしょうか。全体のお知らせ的なものを除き、N高ではやはりゲームが人気コンテンツで、それに関わるチャンネルが多いことがわかります。

ゲームの中で非常に力強いのは

  • スプラトゥーン
  • ドラクエ10
  • FGO
  • フォートナイト
  • LoL
  • ポケモン
  • PUBG
  • バンドリ

このあたりです。ドラクエ10が多いのは、これで学内のネット遠足が企画されているというところが大きいと思います。

ゲーム以外で言うと雑談系や創作系趣味のチャンネルも人気だったりします。学校が公式につくっている部活系チャンネルはすべてclub_ではじまっており、それらもやはり人数が多いです。部以外にもたくさんの公認同好会や非公認同好会があります。

もちろんプログラミング・ITに関するチャンネルも人気があります。最近N高生が無料で使えるようになったAdobeCCチャンネルが一番大きいものの、競技プログラミングをする#club_computer、自作PCを作る#自作er、Unityゲーム開発をする#unity_gamedev、もの作りをする#makerや、Blenderを触る#blenderなどが人気です。最近だと機械学習チャンネルの参加者がガツンと増えました。

やはりN高のSlackの参加人数を見ると分かる通り7000人以上が参加するチャンネルもあり壮観です。なお各チャンネルの参加している人の傾向ですが、かなり、チャンネルごとに参加しているメンバーは異なります。流れる情報量も結構多いので、自分の趣味のものにしか入ってないという人は多いのではないかと思います。

このような全体のチャンネルの日々の変化をボットを使って報告させることで、Slackのチーム全体の動きを知ることができるので、このボットはN高Slackの活性化にそこそこ寄与できているのではないかなと思っています。

なお、このチャンネル参加数変動を報告するボットもCSVへの集計スクリプトも、ISC License にて公開しています。もし自分が参加するSlackチームでこういうのを出力したいという方は sifue/channelmapinfo を自由に改変して使っていただければと思います。

実は今回は、Twitterのアカウント名を入力するとそれがN高生なのか判定する機械学習モデルを作っていたのですが実装が間に合わず、ちょっと過去作ったものでお茶を濁す感じになりました。そっちの方は完成したらまたQiitaの記事を書こうかなと思います。

ここまで読んでいただきありがとうございました!では次のN高アドベントカレンダーを引き続き宜しくおねがいします!

その後の記事

sifue
N高等学校でプログラミングを教えているプログラマーで、学園のIT担当。「高校生からはじめる プログラミング」著者 ( https://www.amazon.co.jp/dp/4046019557/ ) 。 言語: Scala/JavaScript/Java ゲーム: LoL/フォトナ/クラロワ
https://www.soichiro.org/
dwango
Born in the net, Connected by the net.
https://dwango.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away