演劇部の話をすると言ったな。あれは嘘だ。

※この記事は苫小牧高専アドベントカレンダー2017 5日目の記事です。

 

記事の内容は「多分演劇です」とは言ったものの、去年あれだけ内情暴露記事書いたからあれを越えられる記事を書ける気がしないので内容を変更してお送りします。

 

とりあえず手を動かしてみようぜという話

近頃、TwitterのTLで「何か開発的なのしてみたいけどそんなことできる技術もないし勉強するにしても何したらいいかわからない」的なことを言っている人を何人か見かけました。

正直僕も最近までそう思っていましたし、もしかしたらTwitterでも言っていたかもしれません。

ですが最近考えが変わって、自分が考えていたような規模の開発(アプリ開発とか)ではなかったちょっとしたスクリプトbotを作る経験が意外と勉強になっているなと考えるようになりました。

ここからは考えが変わった大きなきっかけを書いていきます。

 

ブログ記事やTwitterとか見てると皆いとも簡単にスクリプト組んだりbot作ったりサーバー立てたりしてるように見えますが、それはその人の今までの開発経験によってほとんど躓かずにできているからです。そうでない場合でも初歩的なミスはいちいち書いてると面倒だから書いていないだけで初心者がやると躓いてしまう部分の補足は書いていないことが多いです。

なので言語の文法は理解してるつもりだけどその言語での開発経験が全くない初心者はブログ記事だけ見ても使う関数やメソッドの仕様をよく理解していなかったりして完成まで行くのが意外と難しかったりします(僕はそうでした)。

 

実際にそういう経験をしたのは、昨日まで作っていたSlackにある地域(僕が作ったプログラムでは札幌)の今日の天気と最高気温と最低気温を通知するプログラムを作成した時です。

なぜ天気通知プログラムを作成するに至ったかというと、元々LINE天気を使って朝の9時に天気予報の通知が来るようにしていたのですが、平日はもっと早い時間に通知が来てほしかったけど平日だけ時間をずらす、みたいな設定はできず、かといって一日に何回も通知が来るようにも設定できなさそうだったのでそれならSlackに通知を送るbotがあると便利だなと思ったからです。言語はライブドアの天気予報で提供してくれるJSONを処理できればなんでもよかったのですが、使ったことのないHerokuを使ういい機会だなと思ってHerokuを使うことを決め、Herokuでよく使われているからと開発で使ったことないRubyを使うことにしました。

僕はRubyを触ったのはpaizaのプログラミング学習が全部無料でRubyの動画教材を見ることができたときに触ったくらいで、スクリプトbotを作るのに使った経験すらありませんでした。

そういうわけで、ほとんど使ったことのないRuby、Herokuのへの字も知らないHeroku、何も起きないはずがなく…いろいろな壁にぶち当たりました。

プログラム部分を完成させたのが昨日で、そしてHerokuのスケジューラはクレジットカード登録しないと使えないことをすっかり忘れていたのでまだbotとしては完成していません。なのでこれはまた別記事として天気通知botについては記事を書きたいと思います。

↑現状のプログラム動作時に送られてくるメッセージ。表記がメッセージ毎に違うのは微妙に手直しを加えているから

 

このbotの作成を機に、ちょっとしたbotスクリプトの作成でも、今まで知らなかったことをいろいろ知ることができるから、とにかく手を動かすことは大事だという思いが強くなりました。

 

僕はこういうbot欲しいなあと思って作り始めることができましたが、ちょっとしたものでもいいから作ってみようとしてもすぐに思い浮かぶ人ばかりではないと思います(開発経験がない人は特に)。そこでおすすめなのが去年僕が作ったgmailのメール削除自動化スクリプトです。

msz3nhen.hateblo.jp

これはJavaScriptベースのGoogleの機能を活用できる独自言語Google Apps Scriptを使って書いたものなので、これを機にGmail関連のスクリプトを書いてもよし、カレンダーに独自機能追加してもよし、ここからJavaScriptの勉強、その他Webアプリの勉強につなげるのもよしと何も開発経験がない人が踏み台にしていくには最適なスクリプトだと思います。メール勝手に削除してくれるのは普通に便利なので、とりあえずサクッと作ってみるといいですよ。

 

ここまで内容はやっていきのある人には関係ないものでしたが、今まで一歩を踏み出せなかった人がこれを見て一歩を踏み出してくれると嬉しいです。

 

 

今後の僕のやっていき予定(?)

僕もまだちょっとしたスクリプトbotくらいしか作ったことないので、今後雑なものでいいからアプリ開発をやってみたいです。

あと、友達とのマインクラフトのマルチプレイ用にvps使って鯖立てようという話が出ているので、もしかしたらマイクラ用のサーバー構築とかもやるかもしれません。

 

factorioのすすめ

唐突ですが最後におすすめのゲームを紹介させて下さい。

このゲームは一言で表すと「作業を自動化する工場ゲーム」です。

語りたいことはいっぱいありますが、公式の動画を見るほうがこのゲームの魅力がすぐに伝わると思うので貼っておきます。俺この動画今まで何回貼っただろうか…

https://youtu.be/DR01YdFtWFI

https://youtu.be/KVvXv1Z6EY8

あとITproでこんな記事が書かれていました。

http://itpro.nikkeibp.co.jp/atcl/column/17/080200325/080700002/?rt=nocnt

 

ノートPCでできるし価格も2300円でセールはしばらく(アーリーアクセスの間?)は来ないので欲しいと思ったら買ってみてください。とりあえずお試しでやりたい人はDemo版もあります。

steamのリンク貼っときますね

http://store.steampowered.com/app/427520/Factorio/

 

実生活だけでなく、ゲームの中でもよい自動化ライフを!

 

明日(6日目の)の担当は@akiba_konさんです。よろしくお願いします!!