BlogGalleryAbout meContact

移転しますよ

はてブ、もといはてなブログに。
http://debility.hateblo.jp/

ネタまとめて会社のblogに書こう、てな方針を取っていたんですが、小ネタをちょこちょこ出す場所が正直あんましないなーと。
なもんで「小ネタをこっちでちまちま書いて、まとめたら他にのっける」に変えてみます。
 Permalink

YAPC::Asiaで喋ってきたりしました Day1

ごりっと書いたのに消えたのじゃよ。。。orz
てことで書き直し初日。
もう一人の社員と分担して聞いてきました。

That Goes Without Saying (or Does It?)
Larryは日本語交えつつ、楽しくPerlの話。
Mathmaticaはチートです。

CloudForecastの紹介 [エントリ]
信頼と実績のkazeburoさんのセッション。
CloudForecastはリソースモニタリングのツール。
自分とこでやってる監視(datahotel patrol+muninとか)の事をつらつら思い出しつつ拝聴。
リソース監視の方は視認性と監視対象追加が重要(特に視認性は他の人の説明にも使える)なので、そこらへんきっちり押さえているのはすごく好印象。
早速どっかに入れて遊んでみようかと。

リクルートのPlack採用事例と、VMによるチーム開発環境構築 [エントリ]
と思いきやPlackの話はほとんどなし。残念。
VMWareとSVN使って、開発環境を統一するところをかなり厳密にやっているようで。
開発チームをシームレスに移動できるようにこうしました、とのこと。
スライドの終わりくらいにBacklogが載ってたので質問したら、BacklogCacooをすごくプッシュしてました。
結構使ってて役に立つよ!とのこと。
後半はMA6の話。
注目APIの最初がLLEvalで、たまたま目の前に座ってたdankogaiが体揺らして爆笑してました。

このへんで呼ばれたのでいったん飯に。

Qudo-2010 [スライド]
去年nekokakさんが話してたQudoの話。
去年と比べると実績が増えてたり、去年質問で出たpriorityの概念が組み込まれてたり。
きっちりかっちりパワーアップしていてすばらしいです。
typoもしないですし。:-)

テンプレートエンジンの移行 [エントリ]
comewalkさんの話は毎度毎度すごく聞きやすいです。
今回はHTML::TemplateからTemplate-Toolkitへ移行した話。
タグ変換のスクリプト書いてごりっと書き換えて、あと不足分は手動で書き換え。
気になるところは他の人が質問してくれて、
経営者の意見は?→あまり聞かないことにした
検証大変じゃない?→QAチームが頑張ってくれた
てな感じでした。

Good Parser in Perl
Perlでテキストのパース処理の話。
Parserは速度が重要、ってことでXS化がきっちりなされている、と。
んで自前で書くよりは既存を使った方が賢いですよねー的な話。
あと自作ならParser::Generatorとか。
Ragel+XSはすごく使えそうです。

mixiチェックインの裏側
で使っているgeohashの話。geohashの仕組みとか。
資料がすごく分かりやすかったです。あとgeohash考えた人は頭いい。
前方一致で範囲を広げて、それだけだと賢くないので周辺のみに絞り込み。
Geo::Hash::XSが非常に便利だよ、と。
あと関東関西のスポット情報はmemcachedでキャッシュして負荷低減。
とかく大規模だとコスト削減策を積み上げるのが大変だろーなあと。

AnyEventとEC2を使ったクローリングツールのご紹介
自社開発クローラのHoneybeeに関する説明。
Honeybee::Hiveがマネージャ、ぶんぶん飛び回ってクロールするのがHoneybee::Bee。
Beeのほうは極力シンプルにしてEC2とかで数をもりもり増やす思想。
Hiveのほうは正しい処理順で順次遂行していく思想。
変に複雑にしないよう腐心してるな、って印象を受けました。
あとこのtweetに全面同意です。

Writing Prefork Workers / Servers [スライド]
kazuhoさんのセッション。
preforkとevent drivenの得意なところ苦手なところの話。
んでParallel::Prefork、および前段でParallel::ForkManagerの話。
P::ForkManagerだとシャットダウンがきれいにできないので、その解としてParallel::Prefork。
Server::Starterは去年のLTで話してたやつで、その中身の話。
Palallel::Scoreboardはプロセス群のモニタリングをするための枠組み。
それをWebで見れるP::S::PSGI::AppとかJSONを吐くP::S::P::A::JSONとか。
てんこ盛りでおなかいっぱいでした。ので要復習と実践。

LTは相変わらずハイレベル。
minemazさんのCOBOL話とtakesakoさんの顔文字プログラミング話は「なにそれこわい」レベルで非常に面白かったです。
あと「Vicious runninng on Phack」は名言すぎます。

んで懇親会。
有名どころが率先してフライング乾杯して、kazuhoさんが道連れを増やすべく超笑顔でビールをすすめまくってました。
地方PM枠のミーティングは懇親会会場でやる予定だったんですが、モデレータ不在で中止。
ってのもなんだかなあだったので、マイク借りて呼びかけて無事顔合わせできましたいきなり呼んでごめんなさいごめんなさい><
これのおかげで翌日すごく喋りやすかったですありがとうございますありがとうございます。
yusukebeさんとは喫煙所でお会いして挨拶。覚えててくれて嬉しかったです。
あとtakesakoさんがいたので捕まえて質問。
Q: 去年と同じ質問なんですが、何がtakesakoさんをそこまでさせるんですか?
A: 日々の勉強の一環です。
カコイイ。

のち二次会@いろはに混じる。
仕事で関係ある会社の方と名刺交換したり。
hibomaさんにお久しぶりですーところで去年の写真がタイの涅槃像にすごく雰囲気そっくりでしたよーとお伝えしたり。
tokuhiromさんに「地方からもっとがんがん絡んでほしいんだよねー」ってなノリで楽しい話をたっぷり聞かせてもらったり。
「みや〜ん(miyagawaさん)は全然怖くないって〜」からみや〜んと連呼しつつPSGI/Plackの時の経緯とか。
あと翌日のLTで話してた「もっと速いHTTPクライアント作るよ!」な話などなど。
# そういやどこにもリンク出てないけど多分これ(p5-Furl)

といった感じで非常に楽しんで、ほろ酔いでホテル帰還。
翌日のスライド作ってざっくりざっくりリハってZENPREでの動作具合を確認してばたんきゅー。

書き直しで泣きそうなくらい疲れたので、Day2は次のエントリで。
# とか言って去年書いてない気がする。。。すみませんすみませんすみません今年はきっちりかっちり書きます。
Related Entries:
YAPC::Asia 2010で喋ってきます
 Permalink

YAPC::Asia 2010で喋ってきます

というわけで、取り急ぎのご報告になりますが。

http://yapcasia.org/2010/timetable.html
10/16(土) 14:20~のPMグループディスカッションで喋る側で参加させてもらうことになりまして。
今日の夜から東京入り中です。

もともと聞く側で参加予定だったんですが、機会をいただいたのでおっかなびっくり手を挙げて今に至ります。
一人でずっと喋るわけではないのでだいぶ気が楽ですが、よくよく考えたら東京で喋るの初めてですね。

というわけで、報告やら聞いてきたメモやらは別エントリでまとめるようにします。
Related Entries:
YAPC::Asiaで喋ってきたりしました Day1
 Permalink

Fukuoka Perl Workshop #16 喋ってきた話 + お悔やみ

※30.07.2010 Beccoameエントリへのリンク追加
というわけで、資料作って喋ってきたりしました。
議事録投下。
慌ててUst準備したもんで、録画忘れました。。。orz

[VimでPerl開発] by sugmak

NeoComplCache
-> 何から何までご丁寧に自動補完
 -> 言語を問わず補完対象に含めるのが可能
-> code snippet
 -> 複数言語でも使える
 -> 言語ごとにカスタマイズできる, 簡単
   -> ベンリ!
-> 以前は遅かったけど最近は速い

FuzzyFinder
-> バッファ開くときは :b -> [TAB]とかやってた
 -> ゆるっとバッファ検索してくれたり
 -> 過去に開いたファイルのヒストリで操作できたり
 -> Ctagsも使えるよ

Command-T
-> MacのTextMateで、command+Tが便利
 -> カレントディレクトリ以下のファイル一覧を開いてくれる
  -> な機能+インクリメンタルで検索できる
 -> インストールがちょいめんどいけど、速いし便利

The NERD Commenter
-> 複数行コメント一気につけたりはずしたり
-> 言語によってその言語に合わせたコメントつけてくれる

Ctags
-> Moduleのソースに一気に飛べる
-> PerlDoc表示も一発

以下質疑などなど。

・7.2からperlで拡張書けるようになった
・NeoComplCacheもそうだけど、最近pluginがずんどこgithubに移行している
pathogen
 -> ‾/.vimbundle/配下にpluginごとにまとめる形で動かせる
tpope
-> 最近いろいろplugin作ってる人
 -> sugmak: 「またtpopeか!」ってなるそうです

[Bekkoame Ver0.1] by debility [資料]

Tatsumaki + Sys::VirtでEC2互換っぽいのを作ってみた話。
これについては別途エントリをまとめ中です。-> まとめました
弊社プレゼンアプリ使ってプレゼンした結果、そっちに大体話題を持っていかれました。ちくしょう。
プレゼンアプリについてはおいおいご報告します。

以下続きでperlbrewの話とか by sugmak。

perlbrew
-> 複数バージョンのperlをインストールできる
 -> switchで切り替えられる
-> rubyだとrvm
-> あわせて読みたい: モダンなPerlの開発環境の構築方法
-> cpanminusとかlocal::libとか
 -> レンタルサーバとかでも環境作れるので非常によろしい

・cpan-outdated|cpanm
 -> 古いモジュールを最新にできる

あとは懇親会の話とか、牧さん来る前にもっかいやりたいねーとか。
そんな話をしつつ終了いたしました。
> 18:22 [sugmak] 牧さんは11月に来福予定。
> 18:23 [sugmak] Fukuoka.pmは次回は9月にやりたい。
とのことで。

懇親会は中華屋でまったりと。
・餃子+ビールが最強すぎるとか
・テスト駆動開発における理想と現実とか
・田舎でPerlで盛り上がろう!とか
・Acme::まいん(まさかの全角モジュール名)を作ろう作ろうとか
・やっぱり出てくるインフラ話サーバ話とか
・YAPC::Asia今年行くかなーどうしようー話とか
いつも通りの楽しい懇親会でございました。

今回も本当に楽しかったです。
ありがとうございましたまたよろしくお願いします。ぺこりぺこり。

----------

てのが土曜(7/24)のお話。

日曜(7/25)の夜に、sugmakさんこと杉山誠さんの訃報が届きました。
↑の通り、前日に楽しくお話させていただいた直後だったもんで。
何を言ってるんだ、というのが正直な感想でした。
今日(7/26)になって、色々と続報や葬儀の日程などなどいただき。
それでもまだ実感が沸かないのが、今の正直な気持ちです。

僕は杉山さんにお会いして、やっと2年を過ぎたくらいです。
Fukuoka.pmに初めて参加したのが一昨年の5月で。
ずっとFukuoka.pmの代表として、ほとんどを主催していただいて。
今の今まで、本当にたくさんお世話になりっぱなしでした。

福岡のPerlにおける顔的な存在で、東京他の方々との連絡役も担っていただいてました。
Shibuya.pmのサテライトとか牧さんご来福とか。
昨年のYAPC::Asiaではイベント・レポーターとしてばたばた走り回ってて。

Perlに限らず、福岡のWeb業界で本当に精力的に活動されていました。
僕がお会いするずっと前から、いろんなところでいろんな形でされていて。
講師などもされていて、デザイン関係者とも繋がりが深く。
本当に多くの人が驚いて悲しんでいるのを見て、改めてすごい存在だったんだなーと感じます。

土曜にお会いした杉山さんは、いつもの杉山さんでした。
「次は9月くらいに、牧さん来る前に一度開きたいねー」とか。
「紹興酒飲みたい人」→全員挙手→「じゃあボトル入れましょう 安いし」とか。
連絡いただいてからいくら思い出しても、普段通りすぎて何も違和感がなく。
頭で理解しつつもピンとこない状態です。

本当に、本当にありがとうございました。
謹んでご冥福をお祈りいたします。
Related Entries:
Fukuoka Perl Workshop #15 行ってきた話
 Permalink

Fukuoka Perl Workshop #15 行ってきた話

※17.03.2010 k1LoWのエントリへのリンク追加
※19.04.2010 dragon3さんのスライドへのリンク追加
Webカメラ片手に行ってきました。
http://fukuoka.pm.org/2010/02/fukuoka-perl-workshop-15.html
IRCに流してた議事録からざっくりと書き起こし。
牧さんがust経由で色々突っ込んでくれましたので、語録とかも一緒に。

[HTML::FormFuとMojoMojoの話] by dai106o [動画]
HTML::FormFu -> フォームの作成ができるモジュール
- 入力値の受付
- 入力キーの定義参照
 - YAMLで定義することも可能
 - 定義しているkeyのみしか受け付けない、とかも可能
- 標準化(trimとか)
- 検証(requireとか)
- 入力値の収納
Catalystで使う場合: use base 'Catalyst::Controller::HTML::FormFu';
http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormFu.pod
実際: Catalyst + HTML::FormFu + FillInForm + Template-ToolKit + DBIx::Class
MojoMojo
- Catalyst実装のwiki
- 学習効果は高い
- Catalyst実例としては新しい
- JPAのwikiもこれ
デモ
- 「Larry Wallと俺」が言いたかっただけちゃうんか疑惑勃発

あとは質疑でFormValidator::Simpleの話なんかも。
牧さん語録
14:57 [lestrrat] MojoMojoはおもしろいけど、正直理想的な実装ではないと思うな。

14:57 [lestrrat] Wikiとしては別におもしろくないな。
14:58 [lestrrat] 強いて言えば中身のカスタマイズが(やろうと思えば)色々できるところか。

15:09 [lestrrat] フォームの生成は動的変更があると後でちょっと面倒になるんだよね>FormFu
15:09 [lestrrat] そういうときは ->elements とかで一気に流し込むんだけど
15:09 [lestrrat] そうすると作成コストが結構高い。
15:09 [lestrrat] あんまり言い答えがでなかったので
15:10 [lestrrat] できるだけできあがったフォームをキャッシュするようにしてる

15:11 [lestrrat] CatalystでFormFu使うと一番むかつくのは
15:11 [lestrrat] オブジェクト定義ユーティリティが
15:11 [lestrrat] Mooseと丸かぶりな部分があって
15:12 [lestrrat] リソースがもったいない。
15:12 [lestrrat] そういう理由で最近ちょっとHTML::FormHandler 見てる。

[Catalystアプリのセキュリティ対策に駆り出された話] by su_aska [動画]
Catalystのバージョンが相当古い
- XSS
- CSRF
- Session fixation
 - ログイン成功時にchange_session_id使おう
  - Catalystのバージョン古すぎて、change_session_idがいない
   - updateかける -> 100個くらいupdateかかる -> もろもろ動かない
   - 必要な分だけコピーしてきて解決
- Cookie Secure flag
- Cookie HttpOnly flag
- GETメソッド局所化 -> 必要以上にGETを有効にしない
- TRACEメソッド無効化(Apache)
 - このへん参考
IPAのセキュリティ周りの資料を見よう
・以下宣伝
ブックマ!: http://www.bookma.org/
 - 人力フィルタリングが非常にstrictなので、質が高い
ごぶさったー: http://gobusatter.nurumayu.com/
 - シャワーを浴びに行ったまま170日反応がないとかがわかるサービス
 - Net::Twitter::Lite
  - Liteじゃないほうは依存のモジュールが多い
  - ロリポとかだとLite系のは助かる
でかんじ: http://dekanji.nurumayu.com/
 - 形態素解析はYahooのAPI
 - 漢字のレベルもYahooのAPI
 - 調べた漢字はhttp://twitter.com/dekanjiに晒される
  - 15:39 [lestrrat] 人の名前の漢字とか見たい時についったーにばらされるの困るなw
- http://www.nurumayu.com/

[Plack/PSGI ですばやく実装&デプロイなお話] by dragon3 [動画] [スライド]
Starman -> 名前かっこいい
今日の目標
-> みんながplackupしたくなる
 -> 特にk1LoWがplackupしたくなる
・PSGI
- WEB+DB Press Vol.55読もう
- フレームワークとWebサーバをつなぐインターフェース仕様
 - WSGI, Rack, Servletみたいな
- PSGI前: Webサーバが変わる場合、フレームワーク側で差異を吸収
- PSGI後: やりとりをPSGIに則った形で共通化
 - ステータスコード, ヘッダのhash, body を配列で返す関数リファレンス
- http://search.cpan.org/~miyagawa/PSGI-1.03/PSGI.pod
・Plack
- PSGIサーバ - PSGIリファレンス実装
 - plackup(Plack::Runner)
- 他のPSGIサーバへのアダプタ
 - Apache2とか、他もいっぱい
 - 同じアプリでサーバは切り替えられる
 - Starman
  - プロダクション環境に最適化されたPSGI対応Webサーバ
  - Star na Otoko(yes, Unicorn!)
 - CGIとかFCGIとか
・ミドルウェア
 - Plack::Middleware
  - Apacheモジュール的な位置付け
  - ::AccessLog
  - ::Auth::Basic
  - ::Session
・PSGIフレームワーク
 - Tatsumaki
 - Noi
 - 既存のフレームワークもどんどん対応している
  - Catalystは? -> あるよ by lestrrat
 - 16:11 [k1LoW] もうPSGI対応っていうのはもう標準みたいなもんなんですかね
  - 16:12 [lestrrat] そう思っていいと思いますね。逆にしてないのがあったら「まだしてないの?PSGI非対応が許されるのは小学生までよね」って言っていいと思う
・おすすめデプロイ
- daemontools
 - 環境変数ファイルでパラメータ指定できる -> 便利
 - Plackをdaemontoolsで動かしたい
  - runスクリプトかくのめんどい
   - もうあった
- Module::Install::Bundle::LocalLib
 - local::Lib -> オレオレCPAN環境
  - perl -Mlocal::lib=extlib
  - extlibをcpanインストール領域にできる
   - アプリごとのモジュールライブラリを構築できる
 - Module::Install::Bundle::LocalLib
  - アプリ独自のモジュールディレクトリを構築できる
  - 解凍してmakeしてリンク貼って終わり -> 楽
  - backlogスターのつぶやきまスター機能はStarmanで動いてる -> スターだけに
 - cpanminus
  - http://cpanmin.us/ っていうURLでもOK by lestrrat

あと質疑で
- Hudson
- Plack::Builder

ここで急遽牧さんが「俺も喋る!でも声出せない!」ということで。
Partty!.orgとIRCを駆使しでプレゼン開始。

[daemontoolsの補足とplackup便利機能] by lestrrat
# 動画取れてなかった。。。すみません
基本はParttyでライブコーディング+IRCで解説(k1LoWが音読)。
ターミナル上で喋る場面もあり。
・daemontoolsの補足とか
- CATALYST_HOME, CATALYST_LIB, USE_PROXY
 - この辺が設定されてないとCatalystがPSGIで動かないよって話
- Starmanのデフォルト値
 - --max-request=1000 --workers=10
  - お遊びアプリには多すぎる値なので減らしてます
   - EXTRA_ARGSで設定
- daemontools配下にするためのシンボリックリンク
 - ディレクトリごとではなく、runとapp.psgiのみリンク
  - 設定ファイルとかをrepoに入れたくない
・plack便利機能
- ライブコーディングでCGIファイル作ってplackでさくっと動かす
 - Shotgunだとリクエスト毎に読みこむのでCGIっぽく動く
- ポート指定でXML吐き出したいとかも楽にできる
 - local::libがsudoで動かないのでgrrrrr
 - 設定しときゃちゃんと動きます
- -eでさっくり動かしてみるのも便利便利
・他
- HTTP::Engineとの棲み分け
 - 今使ってる人はそのまま使い続けるもよし
 - これからーな人はPlackだけにしとけば覚えること少ないよ!
- Twiggyとか
 - めんどくさいからまた今度
- Plackで書いた非同期サーバとかもあるよ
 - リアルタイムゲーム用

[anything-php-funcref-in-perl.el] by k1LoW [動画] [スライド込みエントリ]
- Fusicの人、Emacsの人、PHPの人
 - Perl書けませんが興味あります
- php-funcref-in-perl project
 - PHP関数をPerlでどう書くプロジェクト
  - なにそれ嬉しい(はぁと
 - Yappoさんとかyusukebeさんとかコミッタの皆さんとかありがとう!
- PHPerがPHPを書くのはエディタEmacsの上
 - 快適にphp-funcref-in-perlを利用出来るように
  - anything拡張書いてみた
   - git cloneしたものをEmacs上から参照できる
   - まだ書かれていないリファレンスを書ける(実装中)
   - チラ見もできる(anythingなので

Emacs使いがどんだけいるかについてツッコまれまくってたのは様式美。

あとは僕が次回予告でEucalyptus操作系の何か作るって話をちらりと。
次回までになんか書きます。

以降ヌーラボさんの事務所で懇親会。
外で2次会3次会。
懇親会まではust流してました。
キワい話もだらだら流してましたが、見てる人はすごく少なかったようなので多分大丈夫でしょう。

今回開催を引っ張ってくれたdai106oさん、ありがとうございました。
スピーカーの皆様ありがとうございました。
遠隔で参加しまくってスピーカーまで勤めてくれた牧さんありがとうございました。
# &次回お待ちしております。ふふふのふ。

Partty+IRC+ustで、遠隔で話をしていただくってのはとても面白かったですね。
便利なツールを組み合わせてここまでできるってのは、いい時代です。

カメラとか音声とか、もうちょいうまいこと調整したかったなーと。
その辺は次回への個人的課題にしときます。

というわけでお疲れ様でした。ぺこり。
Related Entries:
Fukuoka Perl Workshop #16 喋ってきた話 + お悔やみ
Comments (3)  Permalink

WordCamp Fukuoka 2010で喋ってきた

懇親会でも喋ったので、計3回。

WordCamp Fukuoka 2010 公式サイト
当日のまとめは技評さんの最速レポートがいい感じです。

・13:00くらいから
bitshfters徹底攻略 at 多目的ホール1 [資料]
事前に嫌な予感はしてたのですが、メインホールがマクラケン直子だったこともあり人がまったく来ない。
のを聞きつけた@hsmtさん他ヌーラボの方々が爆笑しながら来たので、スタッフ側の方々を巻き込んで強引に開始。
最終的にはほぼスタッフばかり10人くらいが入れ替わり立ち替わり入ってました。なぜ皆椅子に座らない。
場末のオヤジよろしくマイペースで喋って、多目的ホールで一番笑いを取った(俺調べ)ので満足です。満足はしてない。
@hsmtさんと@nishiakiさんがしきりに「いやーbitshifters欠かせないわー」と言ってました。にやにやしながら。

・多分18:25くらい(LT)
More Japanize WordPres at メインホール [資料]
資料は全部英語ですが、喋りは全部日本語です。
ところでライブコーディングでplugin作ってきました。
コード自体はcsv読み込んで置換するだけの超簡単なやつなので割愛。
コーディング中にマイクを持ってくれた@hsmtさん本当にありがとうございました。頬にマイクを押しつけられて10秒くらいはロスしたと思います。
ライブコーディングとか無茶やったもんでどうなるかと本人が一番ひやひやしましたが、無事時間内に収まってちゃんと動いてほっとしました。
時間に余裕あったら変換後の文章をsoftalkに読ませようと思ってたんですが、時間ぎりぎりだったので自分で読みました。

・おそらく20:45らへん
bitshfters徹底攻略(再) at 懇親会会場 [資料]
現地で手直しして超スピードで喋ってきました。
今度は人がいっぱいいたのでよかったです。

雑感的なところ。
福岡で200人規模のイベントってそうそうないので、喋る側で参加できたことに大変感謝しております。
会場内のいろんなところをふらふらしてたんですが、参加者の楽しいオーラが出まくってたのが印象的でした。
WordPress元気だ!ってのが満載で非常に楽しかったです。

あと今回は喋る側ってことで、スタッフ側の動きをずっと見させていただいてすごく勉強になりました。
Backlogで大量のタスクを管理してがんがん消化して、都度のやり取りはSkypeでがんがん喋ってどんどん決めていって、のスタイル。
プリン祭りの時にもこのスタイルで進んだのですが、話を進めやすいのと動きが目に見えて分かるのは非常にステキですね。
やること大量にある中でちゃきちゃきとタスクを消化していくスタッフの皆様には頭が上がりません。

最後に、@takayukisterさん本当におつかれさまでした&本当にありがとうございました。
 Permalink

LTで100枚超えのスライドを喋るための役に立たないライフハック

というわけで、OSCで何故かバスケの話をすることになったので枚数勝負に持ち込みました。
資料はこちら。

http://www.slideshare.net/debility/bitshifters

見てもらえばわかるんですが、100枚と言っても100枚分の中身はなかったりします。
箇条書き部分とか、アニメーションを頑張れば1枚で収まりますし。

この方式の利点いくつか。

・文字の多いスライドを分けることで、見る側に与える圧力を減らす
文字いっぱいのスライドは、一気に出してしまうとちょっと疲れてしまうのです(個人的に)。
1行ずつなら比較的流れを追いやすくなります。多分。
今回は既出部分の文字色をグレーにして、より分かりやすくしたつもり。
・なにげに作るのは楽
箇条書きスライドを一枚作って、あとは削ったり色変えたりして量産。
・時間調整がやりやすい
すっとばしてもいいかな、ってところはクリック連打で流したりしてます。
例えば自己紹介の「○○で一度喋りました」なんかはまとめて「いろいろ喋ったよ」とか言いつつどんどん流してます。
・「LTで100枚超えた」とか言うと、皆なんとなくびびる
「何考えてんだこのアホウは。でも気になるからちょっと覗いてやるか。」とか効果があったかどうかは知りません。

これを持ってOSC Fukuoka 2009の勉強会勉強会セッションで喋ってきました。
LTは初めてだったんですが、4分20秒くらいと公言して4分25秒で終わったのでおおよそ狙い通り。
「慣れてるんですねー」とかちらほら言われたのがちょっと面白かったです。
その後大LTのほうにも飛び込みで突撃したのですが、こっちは時間をさらに削った(3分)のと右側下側が写ってなかったので大惨敗でした。
画面端が切れてしまうと、見切れスキー派には辛いです。
でも懇親会で「あーバスケの人!」とか言われたので、それはそれで狙い通り。

ビジネスの場で使う説明資料なんかはいろんな本が出ているのでそっちを参考にしてください。
表とかグラフとかを効果的に使うのがいいらしいです。うわーざっくりすぎる。

えーと、来年はちゃんとオープンソースの話をします。
 Permalink

bitshiftersの会合に行ってきたとかそういう話

要は飲んできたよーって話。
Q. bitshiftersって何? A. 右のバナーをぽちっとな。
Q. 会合って何? A. http://atnd.org/events/1996

会自体のまとめは他の人におまかせる形で。
- soraなりの日々
http://sora2hs.blog70.fc2.com/blog-entry-493.html
- clipdesign
http://blog.clipdesign.jp/2009/11/22/bitshifters/
- 我流天性 – がらくた屋
http://blog.cgfm.jp/garyu/archives/1526

soraの人の行動力には感心しきりです。
夏以降にやたら体動かすようになったのはこの人のおかげですね。
体が凝り固まると頭も凝り固まりがちなので、非常に助かっております。

取り急ぎ来週も練習あるので、興味ある人もあんましない人もぜひご参加ください。
 Permalink

Fukuoka Perl Workshop #14に行ってきた

牧さん(id:lestrrat)ご来福の巻。
http://fukuoka.pm.org/2009/10/fukuoak-perl-workshop-14.html
fukuoka.pmのIRCに垂れ流したやつを取り急ぎ貼っておきますね。

・dragon3: Cacoo-Deployerの話
Cacoo紹介 -> http://cacoo.com/
buildは一発でできるので、複数台サーバへのdeploy作業をツールで -> 自作
要求 -> 1つのサーバにファイル置いたら他のサーバに勝手に展開してサーバ再起動やら何やらやってくれる
ディレクトリ監視 -> Linux::Inotify2 -> inotifyのperlインタフェース
サーバ(Tomcat)操作 -> コマンド投げる
他 -> Moose使ってる
MooseX::ConfigFromfileもいいよ -> 最近SimpleFileばっか使ってる(牧さん)
Cacooもうちょっと: Wordpressのplugin作ってるよ

・s-aska: 使いやすいWebMail
windowsアプリっぽいWebMailほしい -> クロスブラウザ対応死ねる -> ExtJSみつけた
サーバから受け取るデータ -> JS側でJSONなりXMLなりで処理する
ExtJSいいよーいいよー
ExtJSのライセンスってどうなの -> デュアルライセンス -> http://extjs.co.jp/products/license.php


・lestrrat: Fukuoka.pm #14
Moose, Catalyst, DBIx::Classでどうテスト開発してんの的質問が事前にあった
-> ビジネスな話やろう -> endeworksな話するよ
今: 100% Perl案件 (8割は僕ですとの弁)
2008年: Perlコード5万行. Moose, Catalyst, DBIC -> 初めてプロジェクトにMoose採用
EBP2009 -> endeworks best practice 2009
Moose -> 全面的に採用 -> OOPやる以上は使う
使う使わないはほとんど宗教戦争の域 -> pjに合ったツールを使うべき
「最適化は後で」YMMV
Moose本体については長いので次の機会に
[Mooseお作法]
- lazy_build シンプルな値の時以外はdefaultのattribute使わない -> 継承とかするときに困る
 has foo => ( lazy_build => 1, );
- BUILDARGS: around modifyを使う -> 親クラスのBUILDARGSを使ってくれる -> 親クラスのほうが実装がきれい
 BUILDARGSで変なエラー出すと後でわかりにくい
- namespace::clean -> 推奨モジュール
 DSLは「ゴミ」を残す -> use Mooseした時点でhasが使えるようになる -> ちゃんと処理しなきゃ
 -> namespace::clean使うとscope内に閉じてくれる
 -> 裏で関数の出所を調べてくれる
[DBIx::Class]
DBIより重いとか勉強コストかかるとか -> 覚えてしまえば全てオブジェクトで扱えるので便利
-> 特にDBICには拘っていない -> 開発者に対する信頼で使っている -> 今日(11/14)新バージョンでたよ!
注意点: Catalyst等からは直接使わないようにしている -> 「便利なハッシュ」状態 -> 基本的には主キーだけで操作
[Catalyst, API]
APIレベルでの抽象化を守ってる(後述)
-> コメントしっかり書いてから壊してもいいルールですよ
スピード: DBICを使い続けながら一部で高速化したい場合 -> HashRefInflactor
API: Web等、環境から切り離したアプリケーションロジックとして作成する
APIを独立させる -> Modelに対してAPIコールを要求 -> とか
なので: Catalyst::Modelほとんど使ってない -> アクセサとして使ってる
APIの理由 -> あるアクションにはDB挿入以外の操作があるかも(キャッシュを追加削除するかも、とか)
問題点: API単体で動かしたいのに他のリソースへの依存関係があったりするので設定が面倒
[DI]
DI -> 依存関係を外出し
Bread::Boardを使いたかった -> パッチ適用してくれない -> 自分で作った -> Orochi
普通に書くとめんどくさい -> MooseX::Orochi書いた -> http://search.cpan.org/~dmaki/Orochi-0.00005/lib/MooseX/Orochi.pm
Orochi用途: API部分のbootstrap
Catalystとは別のレイヤでオブジェクト生成
# 参考 http://blog.eorzea.asia/2009/10/post_74.html
注意点: 循環依存の解決は実装できない
Constructorの代わりにSetterを使う
[テストの話]
「やっぱ嫌いですね」
自動セットアップ: テストで一番面倒なとこ -> がんばると後が楽 -> Fixtures, Text::mysqld
CPAN形式 -> Makefile.PL書いておけばmake test
MyApp::Text -> 環境の設定とかテスト中によく使うidiomをモジュールにまとめる
Test:: mysqld -> mysqldを起動してくれる -> 普通に使うと.tファイルごとにmysqldが起動してしまう
-> 1回だけ起動するようにした -> 多分後でモジュール化するよ -> Makefile書き変えてる
基本的にAPIをテスト: APIとCatalystを切り離した状態でテスト -> ブラウザを介する必要がなく、機能に集中してテストできる
統合テスト: まだ手作業 -> テンプレート変更とアプリ開発が同時だと難しい -> JSTAPd(JSをPerlからTestする by Yappo)とか使ってみたい
「使えるなら使いたいけどYappoさんだしなー」 -> Yappo: 「ひどいひどい」「すっげーちゃんと仕事で使ってるというのに!」
[git]
git使ってます
svn: 完全に捨てました -> pj大きくなるとレイアウトがひどくなる -> branch管理/mergeが面倒
「10コミットくらいあるとmergeしたくなくなる」
git: branch/mergeがすばらしい -> セットアップ簡単/小さいpjでもOK -> pjが大きいほどgit++
質問:「速いの?」->「すごく速いよ!」
Deplloy: サーバの数が多い -> rpmなど / 少数 -> git cloneが簡単
デプロイ後 -> ついやっちゃうproduction側でのちょっとした変更 -> 開発ブランチと別ブランチを切っておく
-> 万が一pushしてしまわないように
git pull --rebase -> pullと変更がステキにバッティングしない(conflictしない前提なら)
git stash -> 一旦pullしてあとでstash apply -> 他の人のbug fixとかと仲良くできる
git++ -> commitにしろpullにしろコピーしたクローンから簡単に試せる
[ドキュメント]
一番最後にやってます。。。 -> マネジャー向けのドキュメントのほうを優先しちゃいます。。。
コードのドキュメント -> POD -> 納品用にはPod::XhtmlでHTMLに変換したものを出力
[Pixisの話]
「no コピペ主義」
あれもこれも継承 -> i18nもデフォルト装備。継承
ベースアプリ -> git submoduleでアプリのリポジトリ内にlocal clone作成 -> baseの変更に惑わされずにカスタマイズ可能
-> 「このcloneだけの変更」
オレオレware -> CatalystX::AppBuilder, CatalystX::VirtualComponents, Data::Localize, Orochi, ...
Pixisデモ
- rootディレクトリがない
- テンプレも継承
- Catalystのpluginとかあらかじめ入れてる
- カスタマイズするならControllerのSubClass作る
現在 -> endeworks以外のユーザがいないので汎用ではないと思う -> documentがない -> endeworksではこれ使って開発効率が大幅にup
[おまけ]
スライドのコード部分 -> github(gist)++
本当はAnyEvent+Mooseなプロダクトが今のHot topic
次回は 8時間
[質問]
Q.最適なチーム編成像は? A.5人くらいかなー
Q.開発環境 A.うちはvimしか使わない
今のところvimとemacsだけでなんとかなってる
- .vimrcが意外とシンプルだった
perl -Ilocal::lib でpjに含めたperlを使う -> バージョン違いな問題を回避できる
OS -> CentOS最近使ってる -> コード書くときはmac
Orochi -> 裏方で勝手にobjectを作ってくれるkey-value storeな風味

てな感じで懇親会へGO。2次会まで全員参加のステキな参加率。
Perl界隈の人はサーバとかも普通に触りまくってる人が多いので、非常に喋りやすいです。
あと経験値の高い人が多いので、歴史をひもとくような話を聞けて大変貴重。
僕は僕で昔の先輩様とかと大量再会したりして恐縮でございました。
とりあえず、誤解してもらえるような福岡懇親会風景を貼って締めときます。

fukuoka-pm-with-beer

Fukuoka.pmまとめのsugmakさん、懇親会他まとめていただいたZAIONさん、発表者のお二人、そして牧さんありがとうございましたー。
そんなこんなで皆様おつかれさまでした。
 Permalink

YAPC::Asia 2009に行ってきた個人的まとめ(Day 1)

というわけで書くのが遅れましたが、行ってきたのですよ。
わーっと書きなぐったノートをめくりつつ個人的まとめ。

PSGI - Perl Server Gateway Interface
[スライド]
id:tokuhirom + id:miyagawaでごりごりしゃべりまくってました。
「PSGIは仕様、Plackは実装」
WebサーバとWAFの間を取り持つ「仕様」がPSGIでその実装が「Plack」。Rubyで言うところのRack。
Rack超便利、とはよく聞くのでPSGI/Plackもほどなくして浸透するのかなと。
他のスピーカーさんもぎんぎんに意識してる印象を受けました。

シックス・アパート・フレームワーク
[スライド]
Sixapartのプロダクトの変遷と、それに伴って変わっていく社内フレームワークの話。
自社開発フレームワークから徐々にCPANモジュールに寄せていく感じ。
最近のはCatalystがしっかり組み込まれている、と。
あと周辺環境としてドキュメントなりバージョン管理なりバグトラックなりで何使ってるー的な話。
Review Board は良さげなので社内導入を斡旋してみます。
Q「英語話せないとSixapart入れないのん?」→A「んなーこたない」

・ランチ
配ってるサンドイッチうまー。お茶うまー(有料)。
よく名前を聞く人たちがそこらでサンドイッチほうばりながらだらだらしてたりしゃべり倒してたり。
一方で野外でもノートPCがそこかしこで開いてたり。
のんびりなのかしゃかりきなのかよくわからん感じがステキでした。

Perlハッカーのための遊べるPostgreSQL
dankogaiが来て一番前の一番いい席にどっかり座ってました。
PostgreSQL8.4の話と、PL/Perlな話。
PostgreSQL8.4については何回か他所のPostgreSQL勉強会で聞いた話。
PL/Perlについては自分がFukuoka.pmで話した内容 とあんま変わりはなかったです。

prettyfs 分散ファイルストレージ
[スライド]
MogileFSについての話から、「MogileFSの不満点がある」→「じゃあ作っちゃおう」でprettyFSな話。
MogileFSで問題になるところを改善して、よりシンプルに使える形になっているーと。
別セッションでペパボの人がちらちと触れてました。<prettyFSも検討しよっかな的な話
公開されたらMogileFSと比較しつつ触ってみます。

Event programming fun with AnyEvent
id:miyagawa曰く、「POEとか書くな、AnyEvent書け」ってことでAnyEvent紹介とかデモとか。
既存のEvent loopに対して追加ができるってのは非常に魅力的だよなーと。
あとは使う上でのTipsとして、condvarとかwatcherのスコープとかの話。
そういや誰かが「今回のYAPC::AsiaはAnyEventとCoroが代表格」的な話をちらっとしてました。確か。

Perl で圧縮
[スライド込みエントリ]
圧縮技術に関する話と、CPANの圧縮モジュールリストアップ。
テキストならZlibかLZMAあたり。
整数の単調増加数列なら差分取ってpack('w*', @values) でおk。

Booking.com and Perl [スライド]
http://www.booking.com/ の中身の話と会社紹介。
珍しく非Catalyst。Class::DBIにHTML::MasonにHTML::Template。
memcachedとかgitとか使ってるのをみると、便利なもんはさっさと使っちゃう感じなんですかね。
ちなみにスライドのP9は「日本初めて来た。人大杉。」って写真です。

ペパボでの Perl のつかいかた
id:mizzy + id:hiboma。ドクペの人と弟の人。
id:mizzyは発表途中でドクペの差し入れを受けてました。
- 採用面接で合い言葉を言うといいとおもうよ。
- MogileFS、ストレージAPIはPerl+Catalyst。
- Gearman, TheSchwartzで後ろでごりごり。処理追いつかなくなったら横にサーバ増やす感じ。
- 画像処理はImage::Imlib2が速い。
- デプロイ→Archer
- 「Web開発者にサーバ都合を意識させたくない(ユーザ情報の位置についても同様)」
- qpsmtpdがいじりやすい。プラグインとかフック機構とか。→ドキュメント少ない→ソース読め
- 開発者募集
コーポレートトラックの割にはやたら濃くて楽しかったです。
qpsmtpdあたりは直近で使うネタがありそう。

『Ficia』インフラとPerlにまつわるエトセトラ
[スライド込みエントリ]
mod_perl2のTipsあれこれと構成・運用支援ツールな話。
先forkで領域確保とかよく思いつくなーと。
「1ミリでもswap食ったらメール飛ばすようにしている」で全員爆笑。鬼ですか。
ArchtypとComplex、それをハンドリングするMATRIXの話。
MATRIXは以前DSASの話あたりで出てきたので、すんなり聞けた。

How Danga::Socket handles asynchronous processing and how to write asynchronous Perlbal plugins
[スライド]
発表前にまたドクペもらってた。
日本Perl会の子だくさん。4人目おめでとうございます。
Danga::SocketとPerlbal話。
特にPerlbalのところが動きを丁寧に図示してもらったのでわかりやすかったです。

・LT
Server::Startermiyagawanize が強烈すぎた。特に後者。なにそれずるい。

・懇親会および飲み会
- zaionさんは気がついたらAcme大全を買っていたらしい。
- c9sの人にエディタ何使ってるか聞かれてvimって答えたら満面の笑みで握手された。
- id:hirataraの名字がひらたではないと知った。衝撃。
- id:hibomaと「どうも弟です」「いやいやどうも弟です」名刺交換をした。
- id:hirose31に「この後は朝までコース」と聞かされて帰ろうと思ってid:yusukebeに聞いたら「自己責任で」と言われたのでのみかいに行った。
- id:yusukebeとpen2netの方といろいろ話した。感謝。
- みんなペンギン好き。みんなペンギン蘊蓄はいっぱいしゃべれる。らしい。
- のみかいで正面に座った人がたまたまid:acotieの人だった。
- id:nipotanのdankogaiものまねがうますぎる。あれは無形文化財に指定していいと思います。
- id:nipotan「nipotanさんって呼ばないと本当は失礼なんだけどどうせみんなにぽたんって呼ぶんだよね」。

てな感じでざざざっくりと書いて疲れたのでDay 2は後ほど。
 Permalink
Next1-10/228