第32回PHP勉強会で話します

第32回PHP勉強会で話す立候補しました。
第32回PHP勉強会 - events.php.gr.jp


せっかくEthnaの回なので、なにか話せればと思って。

Ethnaを使用してモバイルサイト開発について話します。

  • 前半は、モバイルに限らずEthnaで開発する場合に工夫している点
    • Ethnaを選んだ理由
    • Ethnaで開発する場合に工夫していること
  • 後半は、Ethnaに限らずモバイルサイトの開発で工夫している点
    • モバイルサイト開発で注意する点
    • Ethnaでモバイルサイトを開発する場合に工夫していること

という感じで話せればと思います。

細かい内容はこれから詰めます。

symfony勉強会に参加してきました

土曜日に行われたsymfony勉強会に参加してきました。
第一回symfony勉強会 - events.php.gr.jp


場所は、最近面白いことをしている株式会社ディノ
今回もあっという間に応募枠が埋まり、最近のphp勉強会の埋まり具合はすごいです。
参加できなかった人にも見てもらえればと思い、会社でWebカメラを借りてUstしてみることにしました。
当日1時間前に、カメラを借りて、ドライバとかインストールしながらディノまで移動しました。
勝手とはいえ月宮さんに一応確認して許可をもらったので、一番前の席に陣取って配信しました。


実は、開始直前まで配信が出来ず、あれこれ試行錯誤したのだが無理で、あきらめていたところでした。
最後にダメ元で再起動したら、Ustの配信Flashとカメラが接続してくれました。


勉強会に参加したときは、エントリ用のメモをその場で書くのですが、今回は、ノートPCの画面にカメラを乗せていたので、キーを打つのが邪魔かと思い、メモをとっていなかったので、ざっくりとした感想のみです。
ディノさんの方で録画していたのを公開されるかもしれないし、それぞれの発表資料も公開されるかと思いますので、そちらを見てみてください。


始めに、月宮さんから諸注意とか説明があってから、申し込み順に自己紹介。

symfonyの基本を理解する

brtriverさん
symfonyの基本的な構造や使い方など。
多機能で規模も大きいので、一度に説明するのは無理。だけど、ドキュメントがすごいしっかりしているし、チュートリアルもある。
しかも、日本語への翻訳も進んでいる。
今日、ドキュメントの探し方とかを覚えて帰ればOKという感じ。

事例編

ゆどうふさん
すいませんustで緊張させてしまいました。

みんなで作る鉄道模型のコミュニティサイト『トレイン・トレイン』」でsymfony
使用しているので、それの事例紹介。
Doctrineというのを使用しているとのことでした。
でも、私はProperlもDoctrineも知らなかったので、これを機会に使ってみたいと思います。


質疑応答で、どちらがいいのかという質問や、どちらが早いのかというのが出ましたが、どちらも、それに合わせた使い方をすればそれほど差は無いだろうとのことでした。
月宮さんからの回答で、まったく同じクエリを投げたとして、Doctrineの方が微妙に早いとのことでした。
Properlは件数が多いと、その件数分のオブジェクトを生成するので、そこのオーバーヘッドは結構あるとのことでした。
Doctrineは余計なことをいろいろして、より読めないSQLを吐くのはDoctrineだそうです。
追うのが大変なので、情報がな無い状態で使うのは躊躇してしまうとのことでした。

将来編

月宮紀柳さん
symfonyの次期メジャーバージョンのversion1.1についてのお話。
大きくスクラッチで書き直されている部分があり、そのあたりは期待。
・コマンドラインユーティリティ
・フォームサブフレームワーク
・プラグインマネージャ

その中で、フォームフレームワークについては、「(自称)もっとも美しいフォームフレームワーク」とのことで、そこだけ切り出すことも出来るらしいので、見てみたいと思った。


symfony1.1が出たとしても、symfony1.0もメンテは続けられるので、運用案件は1.0のままで、新規案件は1.1でという感じがいいとのこと。


symfony1.1のバグ出し協力に触ってみましょう。

LT1

id:yandodさん
キャッシュについて
config_bootstrap_conlipe.yaml.cacheの話

LT2

id:tumfさん
symfony.el

emacs使い向けのsymfony-modeの話

LT3

秋元さん
捨てッター国際化で参考にしたsymfoniansについてのお話

懇親会

ディノの会議室でそのまま、ピザをとって懇親会。
id:sotarokさんと初めて会いました。
いちいさんともいろいろ話せた。
やっぱり懇親会は楽しい。

さいごに

symfony自体は、最近、ちょっと触り始めた程度で、まだまだな状態なので、これから触っていきたいと思います。


他の参加者さんの記事も参考にしてみてください。
id:sotarokさんの記事がよくまとまってる。
第1回symfony勉強会レポート - 肉とご飯と甘いもの @ sotarok
第1回symfony勉強会 - モノノフ日記
第一回symfony勉強会 - events.php.gr.jp #Trackback

php拡張勉強会に参加してみた感想です

3/23に行われた第2回拡張勉強会に参加してきました。
第2回拡張勉強会 - events.php.gr.jp


朝の8時ぐらいまで、サイボウズラボにいて、そのまま行くのはつらいので、家に帰って仮眠してから会場のGREEへ。
起きられた自分と、場所を提供してくださったGREEに感謝。


結構早く着いてしまったので、イスを並べたりとかをちょっとお手伝い。


まずは、自己紹介を順番に。
参加申し込み順なので、私から。
拡張とか作ったこととか作る予定もありません。。。
これから何かしたいです。

phpマニュアルの読み方

m-takagiさん
phpマニュアルの翻訳の神様とは知らなかったです。
いつもお世話になっています。


で、phpの拡張に関する情報源について。
php5徹底攻略エキスパート編
saraさんの資料(英語)とか。

http://docs.php.net/manual/ja/book.internals2.php


いつもhttp://jp.php.net/を見ているのですが、http://docs.php.net/の方が最新とのことです。
wwwとかは去年の11月に更新したままとのこと。
拡張系の情報は今執筆中なので今後に期待とのことです。


おまけ
Google ブック検索で、タダで本が読める
「プログラミングphp」で検索する



質疑応答で、
phpマニュアルは高木さんが翻訳している!もっと評価されるべき」と<すいません知りませんでした。
でも、そういうのは苦手という謙虚なかんじでした。


訳すときに コメントとかに遊んでいるものがあると。
あと、長く続けるコツは、という質問に無理しないこと、と。
こっそりコツコツ続けるのがこつだそうです。

rskyさんのお話

1000人スピーカでもお会いしたid:rskyさん
TAKESAKOにはなれないw とのことで、プレゼンが未完成でした。
TAKESAKOメソッドは無理でしたwww
でもでも、内容はすごいので、内容がすごいと伝える手段どうこうじゃないなぁと思いました。


全部は理解しきれなかったけど、phpエクステンションと、ZENDエクステンションの話。
コールバック関数を登録してという感じ
コールバック関数がどのような処理をするか

PHP_MINIT_FUNCTION
登録
PHP_MSHUTDOWN_FUNCTIN
デストラクタ
php.iniエントリを削除
5.2以前ではグローバル変数の破棄をしていた
マルチスレッドでなければいちいち解放しなくてもおk
PHP_RINIT_FUNCTION
スクリプト実行前に
ここでグローバル変数初期化
PHP_RSHUTDOWN_FUNCTION
pemalloc zend_hash_init persistentフラグ1とか

PHP_GSHUTDOWN_FUNCTION
PHP_MINFO_FUNCTION
モジュールの情報を表示する関数

ZENDモジュールエントリーの方は
 コールバック関数を登録するところ
ZENDエクステンションエントリーは
 情報を書くところ?
このあたりまで、がんばって書き取っていたが、限界だし、そもそも書き取り間違えているかもしれません。


質疑応答で、どう違うのか?という質問に
phpエクステンションは機能拡張
zendエクステンションはデバッグなどで使われている
とのことでした。

TCC Extension について

hamanoさん
Tsukasa Hamano
KLab, Inc.の方
DSAS Blogの人です!すごいです。いつも見てすごいと思っているBlogの中の人をみるとすごいとしか言いようがありません。


TCC Tiny C Compiler
小さいCコンパイラ
コンパイルの早いコンパイラで、それをライブラリ化したものです。
0.9.23が最新 もうすぐ次がでる?


PHP Extensionを作らずに清む
codepad.orgみたいなものが作れる


http://search.span.org/~hamano


php内にCのソースがかけるというもの。
確かにすごいです。すごすぎてよくわかりません。
エラーが起きた時にexitしてしまう。
スピード的にはどうなんだろう?

PHP拡張のつくりかた(2)

id:iogiさん
前回のを予習してきたのでその続き。


細かいのはiogiさんがあげてくれるであろう説明を見てもらうとして、気になったところ。
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &a) == FAILURE) {
a/ の/は強制的にコピーのマーク


後半は、以下のpdfを使って変数の内部処理の話。
http://hades.phparch.com/files/tek07/sara_golemon-tutorial_extension_writing.pdf
知らないことばかりでした。

moriyoshiさんのお話

phpのこみったー!だそうです


ぶーすとというライブラリについて
ぶーすとぱいそん
C++を使ってpythonのモジュールを楽に書くというもの
それのphp
CとかC++がわかるとすごさがわかるのでしょうけど、見ていてすごそうというのだけしかわかりませんでした。

懇親会

なんかいろいろしゃべりまくった覚えがあります。
特に就職がどうとか、仕事がどうとか。

二次会

引き続き飲みながらいろいろお話。
とりとめもない話でしたが楽しかったです。

1000人スピーカの聞いた側としての感想

遅くなってしまいましたが、1000人スピーカカンファレンスの聞いた側の感想です。
ニコニコ動画にあがっていますので、そちらも見てみてください。
1000speakers:3 (2008-03-22) ‐ ニコニコ動画:GINZA


次回は、4/26にサイボウズラボであります。
どう書く?org
ぜひ参加を!




以下は、聞きながらメモったものです。

高校生3人組

lonlon2007さん
ねみんぐ!
というサービスを作った
後で質疑応答で明かされた真実に、言葉はランダムで、金額はファイルサイズだと。

技術の大会がいくつもあるので、何をやりたいのかわからない人はそれを目指すのもひとつ。
1000人スピーカ#2で基調講演をされた吉岡さんが、U20プログラミングコンテストの審査員だそうです。


まとめは、彼女募集中!w


英語の勉強のために英語版Vistaいれてるらしい


アセンブラでプログラミング入力したよね
tnzkさん
会場の人に高専卒のアンケートを取って多かったのにびっくりしてた
高校にゲーム作成の部活をいっぱい作りたい野望がある


Lillyさん
話がうまい
ひっとあんどえらー

その子のペースで教える
相手の覚えるペースに教えるペースを合わせる<これは重要だと思った

早く覚えないとよりもしっかり覚えよう
新人教育をやってほしい


物覚えやコツをつかみやすい人は、どんどん覚えていけるけど、そうでない人の方が多くて、そういう人に新しいことを詰め込みすぎると、表層のみを記憶した形になってしまう。
これはもったいなくて、早く覚えるよりも、しっかり理解することが大事というのを教えていかなければならないと思いました。
会社での教育でも生かしていきたい。

寄生型TwitterクライアントTwittelien

monjudoh

jQueryajaxTwitterのブラウザ上で動くスクリプト
やっぱり動くものを作っているのはすごいなぁ
実際に動かしてどんどん追加されていくのはいい感じでした。

どこでもゆびピアノ++

mootoh
もーとおさん
フログラマ
QSTwitter

Cell
QSTwitter

どこでも指ピアノ++
MIDIピアノの音源につなぐというもの。

本来4つしかないので、それを加速度センサーで音階増やすという拡張を。
実際の演奏がしっかりできていて面白かった。


フィジカルプログラミングが楽しい
普通のプログラミングで、フラグがひとつ立ったとしてもそれほどの感動はないけれど、フィジカルプログラミングでは、LEDがひとつ光っただけで、感動がある。

ポエム共有ソフトを作ろう〜P2Pアプリケーションの基礎と実装〜

yuyarinさん

P2Pについての構造について。
P2Pってあんまりいいイメージが無いのと、実際の細かい仕組みまでは意識したことがなかったので、おもしろかったです。

優位なピアがメタデータを多く管理する
基本的な個別の挙動はC/Sと同じとか


JAVAP2Pネットワークを実際に作ってみる
デモも動きが視覚的にわかりやすかった。


説明に慣れているなーと感じました。
プレゼンうまいです。


Ragel State Machine Compiler

Psychsさん
LimeChatLingrの中ひとでした。
いつもお世話になっています!


正直ちょっと内容まではついて行けませんでした。s
コンパイラの話で、理論上最少の形というのが印象に残った。
ニコニコ動画のを見返してみます。

Partty!.orgでペアプログラミング

frsyukiさん

CUIでの入力をサーバに送り、いろいろな環境から同時に見れるというもの。
あとから再生で見れるのはいいです。
やっぱり、コーディングがすごい人のはなかなか見る機会がないので、ライブコーディングみたいに共有できると刺激になっていいかもです。


で、実際の入出力の方法については、proc/24254/fdというので入出力を捕まえられる。
ドキュメントは、openpty(3) read(2) write(2)あたりかな。
こんな感じにつかまえられるとは思いませんでした。


あとは、Flashなどでコンソールを実装しているのがすごいです。
制御コードを少し調べていたところなので、それのすごさがよくわかる。

PHPからQIQへ」PHPで無名関数とかクロージャとか。

rskさん(id:rsky)
gihyoで連載中
実例で学ぶPHP拡張モジュールの作り方:連載|gihyo.jp … 技術評論社


無名関数とかクロージャとかのお話。
おもしろかったのは、それをphpMLの開発コミュニティとのやり取りのお話。
ほかの件もからんでphpMLが炎上とか。


phpはぐだぐだになりやすい
PHPにはPythonみたいに意思決定のプロセスが確立されていないし、Rubyのように決定権を握っている人もいない
これは、実際にそこまでかかわった人でないと言えない言葉だと思いました。


日本語phpなんてものまで作ってました。
これはネタだろうけど面白いw

最強かもしれないテンプレート言語『XSLT』で XML を再発見しよう

orzcccさん
XSLT XMLのお話。
XMLは実際に使う場面は多いのですが、XSLTは以前自分で調べたけど、使う場面がなかったので、使いどころがわからないというのが、ほかに聞いていた人やUstのIRCで出ていた質問でした。
その質問に対して回答もしっかりされていましたが、自分の中で解釈しきれませんでした。。。

もう一度動画見てみます。

phpLexで字句解析に挑戦

私です。
別のエントリに話してみた感想を書いてみました。
1000人スピーカカンファレンスで話してきました! - maru.cc@はてな
1000人スピーカの自分の発言時のIRCログに返答してみる - maru.cc@はてな

みんなを繋ぐ開発・実行プラットフォーム

Bash0C7さん
ExcelやVBAのお話
ちょっと個人的には懐かしい感じでした。
VBAも言語としてはしっかりしているし、実際にXLをいろいろ操作できるので、うまく使えば開発補助には強力なツールになると思います。


プレゼンもXL製でしたw

VimperatorによるFirefox拡張

Trapezoidさん
vim大好きで、Firefoxの拡張のVimperatorをさらに進歩させたという話かな。
私は、vimよりもEmacsなので(最近は)、そこまでの「おぉ」という感じではなかったのですが、Firefoxの拡張などは興味深かったです。

方向性の分析などしてみました

nemoさん
Amazonやニコニコ動画のキーワードやタグを分析するというお話。


実際に分析した結果をだされていましたが、分析方法などの計算がいまいちよく理解していないので、そこがわからないと「へ〜」で終わってしまいそうです。。。


ニコニコの動画(キーワード?)を5000件取得とかで、cojiさんが反省部屋行きだなとか言っていたw
ドワンゴで話すのにこのネタを持ってきたのはすごいかも。私にはできない。

IT屋よりもスイーツ(笑)のほうがすごい件

tokorotenさん

機能はwhat
ライフスタイルはhow


スイーツのキャッチフレーズを聞いただけで、ライフスタイルのイメージが湧くのは確かにと思った。
mixiなどの説明はそこまでのイメージは無い。
例に出てきた「モノより思い出」のすごさは別のところでも聞いたことがありました。


実際にそれでどうしていけばいいのか?という質問では、そこはコピーライターの仕事だからとのことでした。
いいサービスを作っても、それが新ければ新しいほど、それをライフスタイルとしてイメージを伝えるための広告なりキャッチフレーズが大事だなと思いました。

まとめ

今回、1000人スピーカのエントリ多すぎですが、それだけ自分の中で大きな収穫と刺激を受けました。
話し方とか、内容以外の部分に気が行ったのも、前回とは違う立場だったからでしょうか。

1000人スピーカの自分の発言時のIRCログに返答してみる

1000人スピーカカンファレンスで話してきました! - maru.cc@はてな」の関連


1000人スピーカプロジェクトのUstream.tvのIRCログが公開されました。
どう書く?org

16:36:31〜16:53:49ぐらいまでが自分の発表時のログです。
見返してみて、いくつか思ったこともあるので、返答という形でまとめてみました。

16:36:55 <hayamiz> 構文解析器には字句解析フェイズが必要、そう考えていた時期が、俺にもありました。

16:37:37 <hogelog> フェイズに分けんでもいけるよね

16:37:50 <hayamiz> むしろ、字句解析すると
16:38:03 <hayamiz> "hoge#{1+2}fuga"みたいなのが扱いにくいのよね。
16:38:17 <hayamiz> 字句解析は文脈みれないから。

字句解析と構文解析で出来る範囲とかまだわからないので、勉強してみます。

16:39:52 <mootoh> 字がでかくてすてき

16:39:59 <iogi> 読みやすいー

ありがとうございます〜
気を使っていたので、そういってもらえるとうれしい。

16:40:47 <rsky> そこでPHPTALですよ
16:40:53 <cactusman> そこでWicket

PHPTALは名前を聞いたことがあるぐらいでした。
調べてみたら結構よさそう。中見てみます。

Wicketは知らなかったので、ぐぐってみたのですが、JAVAフレームワークなのかな?
ちょっとJAVAは手を出していないので、試せないです。。。

16:41:02 <suztomo> そこでPHPはテンプレートエンジンですよ。

16:41:22 <hayamiz> テンプレートエンジン上でテンプレートエンジン

テンプレートエンジン上でテンプレートエンジン。
ちょっと面白いかも。

16:43:41 <hayamiz> でも、これだけHTMLに解けこむと逆にデザイナは混乱するような、、、

たしかに。
逆にルールがわかりずらくなるのかなぁとは思うのですが、そのルール適用がデザイナー側になるのかなーとか思ったり。
実際にどうなるかは、やってみないとちょっとわからないですね。

16:46:08 <nyaxt> VSのExpress Editionは?

16:46:26 <hayamiz> Expressでいいよね。

確かに、Express Editionでいけるかもです。
試したことが無いので、スライド作るときに発想として出てこなかったです。

16:46:47 <hogelog> Gen_broken.csてなんだ。罠ファイルか

Gen.cs というファイルがあって、それの改変途中のゴミが一緒にコミットされちゃってるみたいです。
なので、Gen.csとGen_broken.csでクラス名がかぶってえらってました。

16:47:49 <bto> UNIXネイティブで動いて欲しいよね

たしかに〜
でも移植するほどCは書けない。。。

16:48:11 <mootoh> Ragel/PHPかけばいいんじゃね

Ragel? ちょっと知らなかったのでぐぐってみます。

16:49:16 <bto> kmyacc 移植したのに ToT

1000スピーカ終わって、サイボウズラボに行ってからさっそく触ってみました。
とりあえず、サンプルのcalcでもやってみます。

16:52:17 <mootoh> あ、Cygwinじゃなかったんだ

Cygwinは入れたけど、プロンプトベースの動きが使いにくいので、VMwareCentOS入れてPuttyでつないで使ってます。


というわけで、Ustream.tv経由で見て、突っ込みしてくれたみなさま ありがとうございました。

1000人スピーカカンファレンスで話に出てくるURL

これから1000人スピーカカンファレンスに行ってきます。
私の話の中で出てくるURLが、スライド中では小さくなってしまっているので、列挙しておきます。

1000人スピーカカンファレンスで話してきました!

1000人スピーカプロジェクト聞いてきました - maru.cc@はてな

次回は、聞く側ではなくて、話す側で参加したいです。

1000人スピーカプロジェクト 第3回に応募しました - maru.cc@はてな

本来、こういうところで話すのって、伝えたいこと話したいことありきだと思うのですが、今回は、参加することに意味があると思うので、参加申し込みだけ先にしました。

話す内容はこれから考えます。

なんとなく、こんなことを話せたらいいなと思っていることはあるので、もう少し練ってみよう。


これの本番がついにきました。
3/8の時に考えていたのは、仕事関係の携帯のことでも話そうかなぁとか思っていたのですが、直前にphpLexというのを知って、やっと動かせそうになったので、それについて話してみようと思いました。


木曜日に駅伝の大会から帰ってきてから、スライドを作り始めて、金曜日は結局ほとんどすすまず。
土曜日の本番に朝7時に起きて、それからスライドの半分以上を作成しました。
実は、デモで動かした、本当に初歩の初歩の字句解析も、最低限の文字で動く状態にすることができず、発表でデモできるものが動いたのは、当日の10:30でした(家を出る1時間前)


資料は、Ustやニコニコ動画で見た時に文字がつぶれないようにということだけを考えて、ひたすら文字をでかく作成しました。
あと、下の左右どちらかにスピーカの映像が出るので、そこにかぶらないように、右下にスペースを空けることも注意しました(右下にしたのは特に意味はなし)
実際に自分がほかの人をの動画を見るときに、スライドの文字がつぶれてしまうと、何をやっているのかわからないというのは、見ていて面白くないですしね。
デモのputtyもフォントサイズと、青・赤の色を変更して見えやすいようにしたつもりです。


話す前は結構緊張したのですが、話し出したら特に意識せずに普通に話せました。逆に、観客を見ずにずらずらと話しただけなので、聞く側がどうだったのかがすごい気になります。。。


プレゼン資料準備中です。

追記

プレゼン資料アップしました。
http://maru.cc/slide_archives

追記(2008-03-24)

ニコニコ動画に動画があがっていました。



撮影してくださったcojiさんありがとうございます!