ETロボコン関西連合BOTを作った話
これは、ETロボコン Advent Calendar 2014 - Adventarの 16日目のエントリーです。
昨日はAtsushi (@Atsushi4) | Twitterさんによるインターフェースクラスと抽象クラスのお話でした。いつもありがとうございます。
本日書く記事は実装の話でもモデルの話でもありません。今年Twitter上を大いに(?)賑わせた、 ETロボコン関西連合BOT (@ETroboKnsRBot) | Twitterを作った話です。
BOTを誰が作ったのかはあえて伏せますが、作者の話を半インタビュー形式でまとめます。
なぜ、BOTを作ろうと思ったのか?
ETロボコンに何かしらの形で関わりたいと思ったためです。2014年は参加者でも実行委員でもない、「ニート」のような立場の人間であったため、「BOTを作ってETロボコン史に名前を残したい」という邪な気持ちがありました(笑)
ETロボコンは参加地区内ではそこそこ交流がありますが、他地区の参加者と交流することがなかなかできないので、BOTを通じてBOTのフォロワー同士が繋がるきっかけになればいいんじゃないかなぁと思ってます。
作者は関西連合の運営も手伝う立場であったため、「連合の名前を借りて連合の宣伝もしよう」ということでこのような名前のBOTが完成しました。
BOTの機能はどんなものがあるのか?
BOTにはいくつか機能を持たせています。
カウントダウン機能
「ETロボコン関西地区大会まであとXX日!」と毎日決まった時間につぶやいて、参加者を鼓舞する機能です。個人的にはBOTのメイン機能の位置付けです。
つぶやく時間、大会の日時は設定ファイルで変更できるようにしています。
カウントダウンは毎日朝と晩につぶやくようにしていたことから、地区大会当日の夜8時に「本日は関西地区大会です!」とつぶやいてしまうことが懸念されていました。
が、作者がBOTを起動させているマシンのリセットをかけたことで地区大会当日を含む数日間、BOTがだんまりを決め込むという事態となってしまいました。懸念されていた事象は結果的に発生しませんでしたが、BOTの信頼性は大幅ダウンでしたね...
[カウントダウン]ETロボコン2014関西地区大会まであと2日! #etroboKnsR
— ETロボコン関西連合BOT (@ETroboKnsRBot) September 11, 2014
これが大会前最後のつぶやきとなりました。
リマインダ機能
カウントダウン機能と同様、登録したイベントまでのカウントダウンをしてくれる機能です。
[リマインダ]ETロボコン2014 関西連合 合同練習会 その3(http://t.co/p75v86VP6P)(@神戸電子専門学校)まであと1日。いよいよ前日です!((o(´∀`)o))ワクワク) #etroboKnsR
— ETロボコン関西連合BOT (@ETroboKnsRBot) September 5, 2014
関西地区の独自勉強会や、関西連合のイベントを告知するのに重宝しました。
イベントとつぶやく時間は、やはり設定ファイルで変更できるようにしています。
メッセージ機能
指定した日数毎に指定した時刻で指定したメッセージをつぶやく機能です。自由にメッセージを設定できるのですが、本年度は「ETでロボコンあるある」のためだけに使われました。
[あるある]モデルを書いている時に1pxのズレが気になる。 #etroboKnsR
— ETロボコン関西連合BOT (@ETroboKnsRBot) November 16, 2014
当初は、「先人たちの失敗や知見を初参加者にも伝えたい」というコンセプトで始めた企画だったのですが、途中から「あるある度合い」を重視しすぎてあまり有益でない情報もあったかと思います。(ごめんなさい)
また、毎日6ネタくらいつぶやいていたため
という弊害も招いてしまいました(重ね重ねごめんなさい)
自動リプライ機能(ボツになりました)
BOTに対して何かリプライすると、BOTが自動的にリプライしてくれる機能です。が、明確なユースケースが浮かばなかったためボツとしました。
自動リプライは確かに面白いのですが、自動リプライBOT同士が会話を始めたりするとエンドレスにリプライし続ける可能性があり、危険です。そのようなリスクも考慮して実装しませんでした。
尚、本年度は「作者が某地区のBOTにリプライしたところ、強面な自動リプライが返ってきてびっくりした」というエピソードがありました。
BOTを作ってどうだったか?
フォロワーはそこそこ
当初は「フォロワー100人」を目標としていましたが、本日時点で38人です。目標には遠いですが、フォロワー0も危惧していたので、個人的には安心しました。
関西連合の知名度UPに貢献
関西連合の名前とロゴを借りたので、連合の知名度はそこそこ上がったんじゃないかなと自己満足しています。
モデリングの練習にもなるのでは?
BOTはRubyで実装しています。オブジェクト指向が扱える言語なので、モデルを書いてからコード化することが容易です。
作者もBOTを作成するにあたり、ユースケース図でユースケースを洗い出して、構造・振る舞いモデルに落としこみを行いました。ETロボコンで学んだモデリングのよい実践例となりました。
まとめ
BOTに限らず、何かを作ってみてそれを世の中に公開するのは面白いです。
みなさんもぜひ、作ったものを広めてください。
あと、本記事を読んで興味を持った人はETロボコン関西連合BOT (@ETroboKnsRBot) | Twitterをフォローしてみてください。