#えむけーろぐ

間違った事を書いていたらやさしく教えてください

苫小牧高専ニュースBotをリニューアルして、メールでニュースを受け取ることなどができるようになりました。

はじめに

2年前の春休みに作った苫小牧高専News Botですが、設計見直しや言語変更など数回のリニューアルを経て、今度はメールでニュースを受け取ることができるようになりました。

メール登録/登録解除はコチラからどうぞ。

苫小牧高専News

 

技術的な話

苫小牧高専ニュース本体について

当初はPythonで書かれていて、Twitterでの通知のみ対応していた旧版 苫小牧高専News Botですが……。

その後インターンRubyを書くようになったのでRubyで作りなおしたり、Twitter以外の通知方法も追加できるように設計を見直したりなどした結果、新しいtmnct-newsとして生まれ変わりました。

github.com

メール配信にはSendGridを使っています。400通/日までは無料のライトプランを使えるので、ユーザ数が少ないうちはこれで良いかなと。増えてきた時の事はあとで考える。

sendgrid.kke.co.jp

tmnct-newsは現状、Twitterとメールでの通知のみ対応していますが、もし他の通知方法を追加したい時は lib/notifiers以下に hoge-notifier.rb というファイルを追加し、HogeNotifierクラスとそのコンストラクタ、そしてnotifyメソッドを用意し、config/config.ymlに各種APIキーやパスワードなどを書いてやればあとはいい感じに動くようになっていますのでプルリクエストをください。詳しくはREADMEを参照。このプラグインっぽい感じで通知方法を追加できるテクニックは、Railsから借りてきました。『Rubyによるデザインパターン』を読んだ時に得た知識ですね。

メール配信登録サイトについて

メール配信の登録は専用のサイトから行えるようになっています。これはSinatraで作ってHerokuにデプロイしました。1月のゲーム開発ハッカソンの時に作ったランキングサーバーとほぼ同じ構成です。

tmnct-newsに組み込んでも良かったんだけど、せっかくプラグインっぽい感じで通知方法を追加できるようにしたので、疎結合でいきましょうということで、tmnct-news-webという別のリポジトリで管理することにしました。

github.com

Webサイト上に直接ニュースを表示しても良かったけど、とりあえずはメールの登録のみ。苫小牧高専ニュース本体(tmnct-news)の設定ファイルでHerokuのDATABASE URLを設定してやって、ニュースを配信する際にはそこから宛先リストを読み込んでSendGrid側に渡しています。

プログラミングネタに困ったときは学校ネタで攻めると良いかも

プログラミング言語の使い方は覚えたんだけど、特に作りたいものが無いなあという学生は、学校ネタで攻めると良いかもしれない。

中学・高校はわからないけど、高専や大学ならWebサイトで学内のニュースを配信してたりするだろうから、それを拾ってツイートするBotでも作れば良いと思う。あとはちょっと難易度は上がりそうだけど、うちの学校だと授業変更情報がWebで公開されているから、授業変更情報通知Botなんかを作ってみてもおもしろいかもしれない。あとはどっかの大学の誰かが学食メニューBotとか作ってて面白かった記憶。うちの学食もメニュー公開してくれないかな。

学校ネタで攻めれば、作ったものはそこそこ役に立つはずだし、何よりも周りからのフィードバックが得やすくて良い。これは結構重要で、僕みたいな飽きっぽい人間はある程度の承認が無いとすぐ開発をやめてしまう。

技術的な意味でも、Twittterやfacebookなんかのみんなが使うサービスのAPIで遊ぶ良いきっかけになるし、場合によってはWebスクレイピングもできたりして、プログラミング言語の入門本レベルから背伸びして実践的なコードを書いてみるにはちょうど良いと思う。

おわりに

以上、苫小牧高専ニュースのリニューアルのお知らせと技術的な話、最後にちょっとしたポエムでした。

ところで、苫小牧高専ニュースBotを運用していると、学生の興味のあるニュースとそうでないニュースがはっきりわかっておもしろいです。単純にふぁぼ数やRT数だけを見て言っているので決めつけることはできないけど、やっぱりみんな部活ネタと身内ネタ、高専祭やオープンキャンパスなどの自分に関係あるネタにはよく反応しますね。部活ネタでは特に書道部とサイエンス部がアツい。その一方で、校長と知事が協定を結んだだとか、なんちゃら講演会を実施しただとかは、どうでもいいみたいですね。

tmnct-newsでは、こういったニュースのほか、奨学金の申請に関する情報なんかもたまに配信しているので、気になる人はぜひ@TmNCT_Newsをフォローしたり、下のリンクからメール配信の登録をしたりしてください。

苫小牧高専News