#perlcasual で再びライブコーディングさせていただいた

PerlCasual #05 : ATNDにて、@さんに声をかけていただき、再びライブコーディングをさせていただいた。
前回やらせていただいたのは2年半以上前なのか…
第6回 yokohama.pm & Perl Casual でライブコーディングに挑戦してみた - すぎゃーんメモ


前回はちょっとしたスクリプト的なものだったけど、今回はWebアプリっぽいのはどうか、ということでAmon2を使ってWebアプリを作成する、というお題にしてみた。

  • まっさらな状態から始めて
  • OAuth2ログインを使って
  • 掲示板的なアプリを
  • Herokuにデプロイして動くものをリリースする

という目標でやってみた。


掲示板的なのは実はAmon2のtutorialにあるやつですね。
Tutorial - Create BBS site — Amon2 documentation


結局できたのは http://sleepy-tor-6236.herokuapp.com/ というところに。書いたコードは https://github.com/sugyan/perl-casual-2013-03 にそのままpushしておきました。



まぁテンパったり余計なところで時間つかってしまったりで「とりあえず掲示板っぽいものが動いた」くらいのところで30分すぎてしまいましたね。いちおう構想としては

  • 投稿時間もちゃんと保存して表示
  • sqlite使っていたところをheroku postgres使ってちゃんと永続化できるように
  • ただ投稿されるだけじゃなくて形態素解析して全裸に

とか考えてはいたのだけど、予想通り自分の能力では30分でそこまでは出来なかった。

カンペは用意してあったけど結局使わなかった。
カンペ.md · GitHub

準備とかの話

herokuは個人でちょっとしたアプリを公開するのによく使っていたけど、いつもRubyでやっていて、Perlで作ったことはなかった。昨日くらいにようやくperl buildpackを試してみて、miyagawaさんのオリジナルではうまく動かないっぽいことに気付いた(要・再検証)。

最初のcarton installに時間かかるなー、というのはすぐに感じて、でもまぁherokuのセットアップも同じように時間かかるし並行して作業すれば良いかな、と。ただネットワークの不安はあったのでcarton bundlecarton install --cachedを使ったインストールを試してみたところbundleが上手く動かないことに今日になって気付いて、tokuhiromさんに相談したところすぐに直していただいたのでなんとかなった。

OAuthログインも最初は違うモジュールとか使って愚直にやろうとしていたけど事前にtokuhiromさんに相談していたらAmon2::Auth::Site::Githubの存在を教えていただいたので(使ったことあったはずなのにすっかり忘れてた)、それを使うことに。pluginでそういうのも簡単にできるアピールをしたかったけど、伝わったかしら…

あとはもう、ちょっといじってすぐに30分経ってしまいそうで そんな凝ったものは作れなそうだと感じて。Twitter Bootstrapでのフォームの書き方とかdbhの使い方とか少し復習して、ターミナル文字サイズを大きめの環境でひとりで何度か練習。
いちおうアレでも何度か練習したんですよ、、、

Emacsはもうちょっとモダンな設定とか整えてやりたかったけど、そこまで余裕なかったなぁ…

ありがとうございました

他の発表者の方々のお話もとても面白かったです。特に@さんの話!
元タワレコ店員×Perl×Webサービス (PerlCasual #05)


久しぶりに勉強会的なものへの参加&発表側でだいぶドキドキでしたが、とても楽しかったです。
声かけてくださったyusukebeさん、運営に関わってくださった方々、懇親会でお話してくださった方々、ありがとうございました!