見出し画像

Discordを駆使してリモートワークでもやる気を出す

いっけなーい😵研究研究💦私、牛乳!どこにでもいる至って普通の大学院生😘💓だけどコ○ナのせいで自宅で研究しないといけなくなっちゃった😅今まで研究どころか家で勉強できたことすらないし、私、これからどうなっちゃうの〜😭😭!?

こんにちは、牛乳です。普段は大学の研究室でゴロゴロしている大学院生ですが、現在○ロナの影響で自宅研究を余儀なくされています。筆者に限らずとも、多くの大学の授業がオンライン化したり、リモートで仕事する人が増えたりして、自宅で集中して作業する必要性はかなり高まっていると言えます。

しかしながら、自宅では数多の誘惑物が我々を蝕んできます。YouTubeとニコ動といった無限時間溶かし動画サービスをはじめ、温かい布団、漫画やラノベ、更にはどうぶつの森といった名作ゲームの数々が私たちを「やるべきこと」から遠ざけ、「やりたいこと」へと誘ってきます。このままではあつまれ能無しの森になってしまいます (最近では○ロナのアトリエをプレーしたい欲と格闘しています)。

とはいえ、危機意識を持って色々自宅の作業環境を工夫することで集中を試みるも、中々効果がないのが世の常です。今日までに筆者が試したアイデアとして

- 部屋を整理整頓する
- ホワイトボードを導入する
- 作業時は部屋のレイアウトを変える

などがありますが、結局自分に対して甘えが出てしまい、どれも上手くいきませんでした。やはり自分のようなWill Power激弱マンにはリモートワークなんて無理だったんです……(それはそうとペルソナシリーズの曲ってめっちゃ良いですよね)

ひとりでダメなら周りを巻き込んで自分に(適度な)プレッシャーをかけてみよう。そう思い立った本稿では、ボイスチャットツールとして名高いDiscordと、友情パワー (と若干のプログラミング)を駆使してオンライン自習室環境を整えつつ、自習室の利用記録を管理してくれるbotを作ることで、モチベupに繋げることを試みます。特に今回はbotの作成報告がメインになります。

これまでの取り組み〜オンライン自習室〜

実はDiscord上でのオンライン自習室は数年前に自分が作っていました。

スクリーンショット 2020-04-01 16.39.54

オンライン自習室ってなんやねん!と思われるかもしれませんが、仕組みは単純「各々が通話に繋いで無言で作業することで相手に見られている緊張感を出し、集中して取り組む」というものです。Discordではグループチャットのような「部屋を立てて集まりたい人が自由に参加する」という行為が通話でも可能なため、自習したい人が自習室のボイスチャンネルに接続することで擬似的に自習室感覚を出しています。知り合い限定で参加者を募り現在40人くらいメンバーがいますが、最近では閑古鳥が鳴いている状況でした。

このようにリモートワークに集中するための下地こそある程度出来上がっていものの、多くの人に利用してもらってはじめて自習室の緊張感が生まれるため、継続的に多くの人に自習室を利用してもらう必要があります。そこで「botに自習室利用日数を管理してもらって、参加日数に応じて称号がもらえるようにしたら面白いんじゃね?」ということをふと思いつき (昨日)、勢いでbotを作ることにしたのです。

bot「mochacha_manager」の開発

もちゃちゃというのは自転車です。可愛い名前ですね。マネージャーと冠していることもあって、「牧之原翔子さんみたいな可愛いマネージャーさんがいたらモチベ5億倍だろうなあ」と考え、shoko_managerと命名してアイコンも翔子さんにすることを一瞬 (約3分) 考えましたが、諸般の事情で断念しました。

画像5

筆者はPython (と若干のシェルスクリプト) しか書けないため、以下の機能をPythonのみで実装することにしました。

- botにリプライを飛ばすと、ユーザidと紐付ける形で自習室ログイン日時を保存する
- その際、総ログイン日数と連続ログイン日数を返信してくれるようにする
- ログイン日数が一定を超えると、称号としてDiscord上のロールを自動付与する
- 総ログイン数とは別に、朝活(5:00~9:00にログイン)できた日数も計算できるようにする

ちなみにbotを常駐させるためにheroku上で動かしています。開発にあたって、こちらのサイト公式ドキュメントを参考にしながら作業を進めました。朝に作業を始めて昼過ぎくらいには正式稼働させられるものが完成しました。

ちなみに称号の付与についてはこんなイメージです。Discordはロールに応じて名前の色を変えられるのが嬉しいですね。音ゲーマー的には虹色のネームが実装されてほしい気持ちもありますが……

スクリーンショット 2020-04-01 17.03.06

スクリーンショット 2020-04-01 17.13.39

称号のネーミングはさておき、実際に稼働しているシーンはこんな感じです。

スクリーンショット 2020-04-01 17.03.21

ざっくりとした実装の話ですが、今回は「ユーザid・ユーザ名・過去のログイン日時リスト」からなるUserクラスを作成して、それらを辞書で保持するようなデータ構造にしました。朝活・夜活の回数はいちいちログイン日時リストを走査しています(1日1ログインしかできないように設計したこともあり、配列の長さが極端に大きくなることはないと判断したため)。

本当はQiitaやGitHub上にソースコードを公開すれば良いのでしょうが、他の人が使うことを想定していないためチャンネルidなどを一部ハードコーディングしてしまっているのと、SQLが書けないのでデータをpickleで定期的に書き出す処理をしている(え?)辺りをどうにかする必要があり、公開は一旦保留にしています。

おわりに

なにはともあれ、これでひとまずオンライン自習室環境が整いました。この開発に時間を取られすぎてやるべき事の時間がなくなったらどうしよう……と悩んでいましたが、なんとか半日で完成して良かったです。

現状知り合いの方限定ではありますが、自宅学習に困っている人がいれば是非チャリンコ自習室を使ってあげてください。ご連絡いただければ招待リンクをお送りします。また、これを機に「自分も自習室作ってみよう」と興味を持つ方が増えれば幸いです。botの実装等で興味がございましたら、お気軽に連絡(Twitter:@takumiwish)してください。

ちなみにチャリンコ自習室では、自習室と別に平日22時から1時間程度の読書会を行っています。各々が45分好きなものを勉強して、残りの15分で報告するというだけの会ですが、現状参加者が僕含めて2名しかいないため、参加者絶賛募集中です (宣伝)。

それではリモートワークがんばります。

この記事が気に入ったらサポートをしてみませんか?