実家に帰るついでに、久々にHokkaido.pmへふらっと立ち寄ります。
マイクスタンドを借りたのでライブコーディングでも安心です。
cpanfile / @aloelight さん
- cpanファイルとは?
- Ruby Gemfileの移植
- 依存モジュールのバージョン
- cpanmとcartonで利用可能
- アプリ向け
- cpanfile以前は、Makefile.PLへ書いていた
- cpanm -L local --installdeps -n .
- -Mlib::core::only -Mlib=local/lib/perl5
- LWP6.02からLWP::protocol::https が分離されて使えなくなったりする(<= 指定ができない)
- cpanfile では requires で '== 6.00' みたいな指定ができる
- carton install、もしくは cpanm -L local --installdepth .
- carton exec
- cpanmコマンドはbackpanとかからもとってくれるから安心
- cpanfileの構文
- $FUNC $NAME, $VERSION;
- $FUNC
- $VERSION
- 0だと指定しない。 >= != == などなど
- カンマ区切りだとAND扱い
- 詳細は CPAN::Meta::Spec を参照
- $NAME
- ツール類
私は如何にして心配するのを止めて自分でコードを書くようになったか / @shinotra さん
- perlを使い始めて1年ほど。本業がプログラマではない
- Webアプリの紹介: 勉強会を探すため。名札を作る。
- エンジニアと向き合うためにまずは自分のスキルアップを
- 勉強会に色々出たい → ATND 地域検索
- 合コンとか地域が変だったり要らない結果が出てくる
- ゆーすけべーさんの本を読んで衝撃を受けた → 自作
- ツイッターのフレンドが参加する勉強会を出せばいいだろう
- ATND参加者のTwitter の名前や画像から全員分の名刺を自動生成
- 年賀状印刷業会で培った用紙の知識!!
- 苦労した点
- まとめ
- ソーシャルアプリにはヒントがいっぱい
- ぐだぐだ言ってないでコードを書けよ、ハゲ
- http://telegnosis.orz.hm/
- 「しゃべる冷蔵庫」もよろしく!
- 質疑応答
- Q. ハマった点は?
- A. 特にない。テストファーストもhokkaido.pm casualで教わったし
- Q. ツール便利だと思うけど実用的な環境にリプレース予定とかは?
- A. 検討中
Games::* – Perlで「ゲーム」しよう / @xtetsuji さん
- 顕在化するmod_perlリスクについては懇親会で
- ゲーム「する」
- play, make, solve, create
- Games::* 名前空間
- Play, Make, Solve がありそう
- CPANについて
- 「幼稚園児の砂場じゃねぇ!」・・・"誰が言い出したか"
- なんとかpanとかよくわからない
- ハードルが高くて貢献者が減るのは勿体ない
- Acmeモジュールは寛容「常夏のビーチ」
- Games:: も同じような場所になればなあ
- モジュール数は Games:: より Acme:: の方が圧倒的に多い
- Games:: でデビューするといいのでは
- 数独(ナンプレ)
- スリザーリンク
- 福引きサイトで福引きを引き続けて金儲け
- WWW::Mechanize + JS
- 我々にはプログラミングがゲーム
- ただし、節度を持って
- 最近はソーシャルゲームは楽しい → 色々なゲームしたい
- Games:: 名前空間に期待すること
- まとめ : Sudokuでcharsbarさんに続け!
最近使ってるモジュールの話 / @xaicron さん
- こんなとき何使う?って聞きまくって貰えればCPAN上のを見せるよ
- 2008年 CPANソムリエになる方法 / tokuhiromさん
- 更新日、テストの量、バグレポート
- プラス、xaicronさん基準
- Any::Moose は使わないこと
- Moo で
- Mouse を使うのであれば、単体で
- Mouseはsyntax suggerとして利用している
- 実行中にモジュールをuse
- Module::Load → v5.9.4 から core
- Class::Load → inner classをロードできるが、ごつい
- Plack::Until::load_class → webアプリならいいかなあ
- HTTPリクエスト投げたい
- Furlの最近追加された機能
- DB接続したい
- DBIx::Connector → コールバックでわかりやすい。コードが肥大化してる
- DBIx::Handler → DBIx::Connectorのライト版。DBIx::TransactionManagerを中で利用
- DBIx::Sunny → mysql使う時はこう使う、などのノウハウ
- テンプレートエンジン
- Template::Toolkit → 時代遅れ
- Text::Xslate → 速い。直せるのがgfxさんだけ
- Text::MicroTemplate → Pure Perlで割と速い。コードジェネレータにいいかも
- スクレイピング
- Web::Scraper → デファクト。miyagawaさん
- Web::Query → jQuery風。tokuhiromさん
- WWW::Mechanize → フォーム入力。Cookie
- Selenium::Rempte::Driver → PhantomJSと組み合わせたい
- シリアライズ
- モジュールのビルダ
- ExtUtils::MakeMaker → coreだけどめんどい、make必須
- Module::Install → DSL。travisCIと相性悪い。cpanfileと相性が悪い(configure_requiresに入れた方がよい)
- Module::Build → v5.9.4からcore。make要らない。
- ファイル操作
- File::Spec → OS差を吸収。デフォルト。ごつい
- Path::Class → オブジェクトでファイル操作
- Path::Tiny → ライトな感じで良さげ。slurpもある。iteraterはどうなの?
- ディレクトリに大量にファイルあるとまずいのでこういう実装 (by charsbarさん)
- callbackでもいいのでは?(by xaicronさん)
- 並列処理
- ithread → segv吐くためのモジュール(win以外で使うべきでない)
- Parallel::ForkManager → forkの最大数をキープしてくれる
- AnyEvent → イベントドリブン。逐次処理に弱い。学習コストは高い。
- Coro → AnyEventのシンタックスは覚えなくてよい
- まとめ
Lightning Talks
CurryとHokkaido.pm / @hiratara
カリー化の話をしました。
PureDataをPerlで鳴らしてみる/ @techno_neko さん
- オブジェクトをパッチで繋ぐと音が出る
- Net::OpenSoundControl
- PureDataは安定しないんで、プロセス殺すとよい
- Any::Eventでライブ
- Term::ReadKeyで楽器に
BigShip / @xaicronさん
- 北海道の人はビックシップと言う名前を聞いただけで爆笑する
- 今の名前はグルメシップ
- "ship"なのでデプロイツール
- Cinnamonクローン
- 並列でデプロイする
- 各サーバでの進捗を表示してくれる
- .bigshipディレクトリにログを残す
- たぶんCinnamonに統合されるので世に出ることはなさそう