BlogGalleryAbout meContact

Fukuoka Perl Workshop #15 行ってきた話

※17.03.2010 k1LoWのエントリへのリンク追加

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で、遠隔で話をしていただくってのはとても面白かったですね。
便利なツールを組み合わせてここまでできるってのは、いい時代です。

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

というわけでお疲れ様でした。ぺこり。
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さん本当におつかれさまでした&本当にありがとうございました。
Comments (0)  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分)のと右側下側が写ってなかったので大惨敗でした。
画面端が切れてしまうと、見切れスキー派には辛いです。
でも懇親会で「あーバスケの人!」とか言われたので、それはそれで狙い通り。

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

えーと、来年はちゃんとオープンソースの話をします。
Comments (0)  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の人の行動力には感心しきりです。
夏以降にやたら体動かすようになったのはこの人のおかげですね。
体が凝り固まると頭も凝り固まりがちなので、非常に助かっております。

取り急ぎ来週も練習あるので、興味ある人もあんましない人もぜひご参加ください。
Comments (0)  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さん、発表者のお二人、そして牧さんありがとうございましたー。
そんなこんなで皆様おつかれさまでした。
Comments (0)  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は後ほど。
Comments (0)  Permalink

bitshifters

=弊社バスケ部。
てことでやってきました→肺が全く持ちませんでした。
bitshfters

とにかく肺ですよ。肺。
酸素が全く足りなくなる点をどうにかすればもうちょっとましなんです。多分。
運動神経云々の前に基礎体力です。ええ、ええ。
Comments (1)  Permalink

RBCで喋ったEucalyptus+RightScaleの話とか

立て込みまくりでエントリ書くのが遅れましたが。
先日のフクオカRuby DaysでEucalyptus+RihtScaleについてだらだら喋ってきました。
スライドはこちら。
http://www.slideshare.net/debility/ss-1762091
当初80人と聞いてて、行ってみたら余裕で100人超えてて鼻毛が伸びきりそうでした。

一応普通に立てて動くところまで。
key使って外部からログインするところまで見せたかったんですが、ちょっとトラブルがあったのと時間的な都合でカット。
内部からログインするのを見せるところまでに留めました。

いちお1.6のリリースを待って再度検証に動くつもりです。
基本的なところは終わったので、次は複数クラスタと最近出たeuca**なコマンド周りとJavaVM周りの検証とWakame試してみるところですかね。
この辺の情報をうまく落としていきたいなーといった所存であります。

WakameにしろScalrにしろ今回取り上げたRightScaleにしろ、共通しているのはオレオレクラウドに対するアプローチはこれからなんですよね。
というわけでうまーく絡めたら楽しそうだなーと。

で、スライドに載ってる祭りのリンクも。
http://pudding.jp/
福岡のノリの良さが伝染して協賛まで取れたのは凄いお話。
周りの皆さんが機敏すぎてありがたいやら恐ろしいやらです。ガクブル。
Comments (0)  Permalink

Ubuntu 9.04でIPv6を無効化

したかったんですが。

これまでの/etc/modprobe.d/aliasesでどーたらではなく、/etc/sysctl.confに
net.ipv6.conf.all.disable_ipv6 = 1
と書くらしい。
# 検索して見つかる「net.ipv6.all.disable_ipv6 = 1」の記述は多分間違い(conf.が抜けてる)。だよね?

で、「らしい」となってる理由。
これ書いてもipv6が死んだ様子が見られない。
/proc/sys/net/ipv6/conf/all/disable_ipv6
はちゃんと1になってるんだけどなー。
というわけでざっくり調べてみると
http://ohioloco.ubuntuforums.org/showthread.php?t=1140536
とあって、どうにもkernelのバグでちゃんと死んでくれないらしい。
betaのほうでこれ試してうまくいかなかったんだけど、リリース版ならうまくいくんだろーか。
というのは多分明日くらいに試します。

うまくいかない理由の切り分けのために、一応IPv6切ってみっかーくらいで調べた結果。
なのでリンク先で挙がっているパッチの適用まではやんないかもしんないですしやるかもしんないです。

[以下5/27追記]
リリース版でもだめでしたっと。
launchpadのリンクも一応貼っておこう。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/351656
調べてた分の原因はCPUの問題だと分かったので、またなんか困ったら検証するかもですが期待はしないでください。
Comments (1)  Permalink

Symfony+PostgreSQLで、ORM側でcascade deleteしたい

そもそもPostgreSQLなら、ORMでやらんでもいい話なんですが。
かつSymfonyのソース見ると「遅いからORMにcascadeさせんじゃねー」って書いてはいるものの。
いかんせんそういう場面ってあるじゃないですか。

schema.ymlに
onDelete: cascade
なんて書けばさっくりうまくいくかと思いきや全然うまくいかない。
隣を見る気配もない。
あれれーと思って調べてみたら、「MySQLのMyISAMとかSQLiteなら動くよ」って書いてある。
逆にDBでCASCADE持ってるんならそっちでやれと。

でもSQL流すの嫌だなーORM頑張れよーとか思って探したら、propel.iniに
propel.emulateForeignKeyConstraints = true
と書けばちゃんとdoOnDeleteCascade()が生成されてた。よしよし。

が、結局動かず。
なんでだろーなんでだろーとdebug吐いたらそもそもdoDeleteを通ってない。
あれれーと思ってsfPropelParanoidBehaviorPluginを挟んでいることに気づく。
要は論理削除が全部doUpdateで動いているので、そもそもかみ合わないと言う。orz

結論:Doctrine使おう。
Comments (0)  Permalink
Next1-10/224