名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。

2019年はコミュニティの1年でしたね(という雑な振り返りと作ったツールの紹介)

これはなに

サポーターズCoLab Advent Calendar 2019 - Adventar の21日目の記事です。プリッカソンの14日目はもうすぐ書き終わるので、しばしお待ちを。。。

ところで昨日はこれでした。

クリスマス・ハック・ミートアップ【サポーターズCoLab】 - サポーターズCoLab

(めでたく1000番目のURLなんですね、実際1000回やっているかはしりませんが)

せっかくなのでLTしてきました。

LTしたスライド

興味があれば。質問は随時ツイッターにでもください。

https://slideship.com/users/@yumechi/presentations/2019/12/Nnbk7enYRyCVJWsDMdsWb9/

所管

書こうと思ったことはLTで書いてしまったので、改めて簡単に書くと表題の通りいろいろなコミュニティに顔を出したりしてみて人と人とのつながりをデザインするとかシステマティックにイベントを運営していくことを学んだ1年でした。

カンファレンスのスタッフとしてももちろんですが、自分自身でも小さいコミュニティを1つ運営してみることによって、やれるイベントの規模や企画を実行するコストなどの意識が良くできた1年かと思います。

しかしTeckUpでイベントを運営してみて、コミュニティが楽に回すためのツールとかは不足しているような気がします。 自分でもこういうのがほしいなと思って1つ作った物があるので紹介します。(これはカンファレンス用ではなく、自分の所属するコミュニティのTeckUp用です)

イベント参加者を通知するSlackBot

あまりきれいな動きをしているbotではないのですが、これを作りました。

https://github.com/yumechi/connpass-notification-bot

こいつはこんな形で動いています。(記憶をもとに書いています、エラーハンドリングが甘くて結構バグってる)

f:id:MireiMixin:20191221213052p:plain

FireBaseに設定情報とかを聞きに行って、Connpassをスクレイピングして取得した情報を得て、昨日の参加者状態とぶつけて新規の参加者・キャンセル者を取得しています。常識の範囲内でアクセスするよう、1日に1回しかアクセスしません。(所詮Cronだし…)

結構作りとしては単純なのですが、データがないときのテストとかが甘いのでバグは多そうな感じです。誰かもっと良いものを作ってください。(僕はのんびりこれを作っている予定) あとドキュメント面もあれで、特定のコレクションを取りに行くようになっているのですが、特定のコレクション名をドキュメントに書いていない気もしてきました。なんか色々やることがありますね。。。

今は自分の家のラズパイ2Bくんがこれを頑張って実行してくれているので、そのうちガッツリリファクタリングしてAWSのlambdaなりサーバレスな世界に行きたいところ。ラズパイくんは… まあ湿度とか測って適当に自分しかいないSlackにPOSTしてくれればいいかな。

依存しているライブラリも微妙なところがあるやつがいるし、可能ならデータは使いまわして投稿先のサービスは抜き差し自由・・・みたいなものにもしていきたいのですが、現状はまだまだです。あとあんまりテストもかけてないし、これどうするんだろうね。

設定が手差しになっているのも改善したいけど、うーん…(token情報をローカルから投げないといけないので、少し隠蔽した状態で投げれるものみたいなのを作っておきたいが。。。)

効果

毎日Connpassを見に行くことがなくなったので、メンバーの数 x (Connpassを毎日チェックする + Connpassを意識する) 時間は削れたと思うので、効果覿面です。実際TeckUpメンバーからは参加者のトラックが非常に楽になって、割と良さそうな反応でした。

まとめ

自分が活動する中で必要と思えるものを自分で作れるのはとても良いので、もしエンジニアでコミュニティに所属していてコミュニティとしての課題があるのならそれを技術的に解決してみるのはいかがでしょうか。

AWSGCPといったクラウド環境を触るのも良いですが、そういうの知らないなーって人はRaspberry Piが1万円くらいで環境用意できるのでおすすめです。最新版Raspberry Pi4では4GBのメモリを有しているので雑なスクリプトを動かして途中で止まるとかそういうこともないと思うので使いやすいかと思います。(僕はセットアップしようと思って、今回はAnsibleでやろーと考えつつ下調べしたところまでで止まっています。。。)

コミュニティのためにもなるし自分の勉強にもなるので(僕は今回、初めてRaspberry Piのセットアップをしたし、FireBaseも使うのが初めてだった)、良いことが多いです。問題としては自分が永遠に保守させられる可能性もあることですが…(まあTeckUpは最後までコミットする気でいるのであんまり気にしてないけど)

あとイベント主催者が楽になるためのツールをもっと知りたいし、もっと共有されると嬉しいのかなぁとか思います。

こういうのあったらいいな楽になるな、っていうのを考えつつ、楽しみながら運営を続けていきましょう!