2012年3月2日金曜日

それはあなたのSELTはキラー逃げるん

本を読む 200807

 2008年7月21日にPHPプログラマーのイベント「PHPカンファレンス」が開催されました。けっこうゴージャスな事例やスピーカー陣が並んでいたし、無料だしで、これは参加するしかないでしょう。実際、来場者がかなり集まったようで、恒例の「全員で会場の片付け」も短時間で済んだみたい。

 以下、話を聞きながらとったメモを整理たものです。間違いなどありましたらご指摘ください。

基調講演(廣川氏)

 PHPの最近の状況を、秋ごろにリリースされるといわれているPHP 5.3を中心に紹介。

 全体的なところでは、PHPはあいかわらず利用数が多いという話や、フレームワークの整備や普及が進んでいるという話がとりあげられた。で、PHP 4が8/8にEOLになることが課題。現在でもPHP4が61%も使われていて、5への移行が進んでいないため、移行支援のためのGo PHP5というプロジェクトもある。

 次のバージョンはPHP 6なのだけど、まだ出なさそうなのでPHP 5.3が出る。5.3の次に6.0の予定なのだけど、伸びるようなら5.4が出る可能性もある。6で予定されていた新機能がかなり5.3で取り入れられ、残るはUnicodeベースの国際化ぐらい(これが遅れている)、これも相当するエクステンションが用意される。以下、箇条書き。

  • Pharアーカイブ対応
    • jarのPHP版
    • いままで拡張だったけど標準で
    • 一部動作が不安定(マルチバイト処理と干渉?)
  • スキャナ(字句解析器)高速化
    • flexからre2cへ
    • マルチバイト未対応
  • PHP5は5.0が遅かったがそれ以降高速化してきた
    • 5.2移行はメモリ管理の効率化も
    • 5.3ではGCで循環参照を検出する機構も追加
      • メモリ効率が大幅に改善。1/2〜1/22に
      • デフォルトでオン(php.ini)
  • MySQL ND
    • DBのIFをネイティブ実装
    • PHPライセンス
    • メモリ管理、キャッシュ等をPHPから管理可能
    • 使用メモリ40%低減、高速化
  • Namespace
    • 5.3でもサポート
    • namespaceを定義するファイルを用意し、includeしてuse
    • namespaceとclassを定義→同名のクラスを使い分け
  • ラムダ関数(無名関数)やクロージャが追加された
  • extintl:unicodeにもとづく国際化処理
    • 5.3でPHP6と互換性を持つように
    • PECL
    • できること
      • grapheme cluster単位の処理
      • locale、比較、正規化
      • フォーマット(通貨など)
    • IBMの作ったICUライブラリをもとにしている
  • Late Static Binding
    • コンパイル時ではなく実行時にスタティックイベントを処理
    • 継承クラスのFoo::find()でそのクラスが返る
      • 従来は親クラス
    • ActiveRecordなどで有用
    • 下位互換性なし
  • ? 演算子
    • 3項演算子の拡張形
    • A ? : B
  • NOWDOC
    • HEREDOCの変数展開しない版
    • <<<
  • gotoの採用

 ほか、PHPのコード品質改善の取り組みを紹介。コードカバレッジを指標とするテストが求められている。現在は5.2で50%台なので改善したい。コミュニティ参加によるテストツールを用意し、簡単な形式のテストケースでバグ報告ができるようにする。

 PEARは、1.3がサポート終了で現在1.7。PEAR 2が開発中で、PHP5専用に。

 PHPアプリのテスト環境として、PHP_CodeSnifferやPHPUnit、SimpleText、Testing_Seleniumが紹介された。

 PHP6については、進捗があまりなく、予定されていた機能が5.3でだいぶ取り入れられた。Unicodeベースの処理をオフにする機能は廃止。日本語処理についてはいろいろ問題があり、Shift_JIが未対応とか、外字対応をどうするとか、文字コード検出はどうなるとかいった課題が示された。

 最後はコミュニティ面として、これからも若い人に参加してもらう工夫が必要という言葉で締めた。

  • Q: 4から6にいきなり移行しようという人への助言は?
    • A: 4から5は上位互換、6は非互換
    • ここ1〜2年で使うコードを書くなら5。6はいつ出るか不明

PHPでつくるぐるなび(佐藤史彦氏)

 注目事例その1。

 ぐるなびのシステムは主に、加盟店やスタッフが使う限定公開Web、ユーザーが使う一般公開Web、検索システムの3つからなる。すべてのシステムにPHPを使用している。

 第1世代(〜2002)では、店舗データをExcelで管理し、表示は静的HTML(手作り)。店舗検索はdbf+Delphy。とても手作り感あふれる(笑)システムだった。

 もちろんそれではすまないので第2世代(〜2004)からPHPを採用。店舗データはPostgreSQLに格納。表示は静的HTMLだけどCMSで生成。店舗検索には検索用PostgreSQL(店舗データとは別)+PHPを採用した。

 次の第3世代(〜2007)では、店舗検索を全文検索エンジン+MySQLに変更した。

 現在の第4世代はさらに強化。第3世代のときにDBが飛ぶという事件があり、DBや関連コードを作り直して店舗DBをOracleにしてXMLでデータを交換、全文検索は内部的にREST APIで引けるようにした。

 PHPを導入したのは、フロントエンドをさっくり開発するのに楽な動的スクリプト言語として。導入コストも低い。日本語もmbstringで扱えるようになっていた。ただし、セキュリティに問題のあるコードも書けてしまうので、コードのチェックは必要。

 内部の文字コードはUTF-8。PEARとSmartyのライブラリは、ラッパークラスを介して使い、さほど特別なものは使用していない。

 公開コンテンツや非公開ディレクトリ(ライブラリなど)はすべてNFSで共有してROマウント。キャッシュやログなどは、ローカル(一部NFSでRWマウント)に置いている。

 LinuxまたはFreeBSDの上でApacheを稼働。静的コンテンツとPHPとでApacheを分ける、というのはあまりやっていない。PHPのパフォーマンスはApacheのスケールアウトに任せる程度で、むしろ検索エンジンやデータベースまわりのパフォーマンスアップに注力している。

 いまPHP5はおよそ1割。これをPHP5に移行するにあたり、サービスごとに縦割り開発されて重複している部分を共通化して整理する計画。基本機能のクラスや、共通するビジネスロジック(認証など)の部分をUIから切り離したい。

 3年前から上海に子会社を作って、ぐるなび上海と北京の飲食店情報を日本語と中国語で提供している。当初は、中国ではPHP技術者が少ないことからJavaで開発していたが、日本語版を開発するようになってPHPを採用するようになった。いまはPHPへ標準化する作業をしている。


日焼け止めローションを買って最も自然な店は何ですか?
  • Q: Oracle移行の苦労は
    • A: アクセス部分もいろいろ変更があった
    • XML対応など、いちから作り直した
  • Q: PHPオプティマイザーは
    • A: 使っていない
  • Q: バックアップは
    • A: アプリはNASにあるのでスナップショット
    • DBは定期的にダンプしてNASに
  • Q: 全サーバーがNASを見ている?
    • A: NASは分野ごとに分けている
  • Q: デプロイは?
    • A: NASにデプロイするだけでよい
  • Q: NASアクセスのボトルネックは?
    • A: XMLや静的ファイルのアクセスで問題になることも。分散構成で対策

楽天×PHP 楽天におけるPHPの過去・現在・未来(安藤祐介氏)

 注目事例その2。大規模なインフラの中でのPHPの利用例を、CakePHPの執筆活動などで知られる安藤氏が解説した。

 環境全体としては、OSSと商用ソフトウェアの混在するハイブリッドな環境。必要に応じてコストの低いOSSを組み合わせる。利用している主なOSSは、PHP、Tomcat、Ruby、MySQL、Senna、Apache、Linuxなど。Javaアプリケーションサーバーでも、Tomcatと商用Javaアプリケーションサーバーを使い分けたりしている。OSSについては、十分な検証のもとで導入して、セキュリティ面は継続監視、必要ならパッチもあてる。

 ということで、PHPな現場で、150以上のアプリケーション、800台以上のサーバー、約5,000万PV/日、最大1000人以上のエンジニアが動いている。これまでの歴史は、スピードやコスト、増大するサーバー負荷との戦いだった。

 もともと2000年ごろにPHP3を導入。手軽に利用できて、Webに向いた言語として、現場から使われるようになった。PHP4への移行のころには、作りまくる(大量生産)の状態。PVが増えるにしたがい、SmartyやPEARの利用、I/O処理の見直し、スレーブDBの利用などの進化があった。

 ぐるなびと同様、当初はNASにスクリプトからセッション情報まで置いて管理していたが、高負荷状態になって困った。そこで、スクリプトなどはNASからローカルにrcyncでコピーし、ローカルを参照するようにした。セッション情報はローカルに移すのは難しいので、できるところだけ。

 やがて独自フレームワーク期が訪れた(2003年ごろ)。アプリごとに構造がばらばらで、社内で、社内での車輪の再開発が続いていた。これは開発工数の問題だけではなく、cookieなど仕様が変わったときにすべて変更する必要があるという運用コストの問題が大きくなっていた。

 そこで、標準化推進を開始した。標準の監視ツールやフレームワークを開発。フレームワークはMojaviに似たもの(時期も同じころ)。このころに作ったサービスに、ゴルフ場予約サイトの「楽天GORA」があり、現在でも有数の規模を誇っている。

 このころ、各部署ごとに、違ったノリのフレームワークがそれぞれ使われていた。Mojaviっぽいの、Ethnaっぽいの、のちのZend Frameworkっぽいのなど。2005年ごろには、Mojaviを導入して統一した。Mojaviに加えて、スケルトンを生成するコードジェネレーターも開発し、重いといわれていたので性能検証などもやった。このころにPHP4でのスタイルを確立し、新卒エンジニアなどもPHP開発に参加するようになった。ただし、MojaviはDBまわりやロジックは面倒みてくれないという弱点はあった。

 時代は進んでPHP5の時代に。5.0が出たときから少しだけ使ってみた。最初は独自フレームワークを作ったり、Mojaviを5対応に改造したりしたが、ここでSymfonyが登場。のちの社内標準である。

 SymfonyはMojaviに構造が近い(元はMojavi)のでMojaviを使っていた人にはなじみやすく、スケルトン生成機能がある。ただし、高機能なぶん、はじめての人には学習コストがある。symfonyコマンドやYAMLなど。あと、Propel(O/Rマッパー)についても様子見、プラグインなどには各所で対応。あと、小さいサービスには大げさという感もある。Symfonyで開発したサービスに「infoseekメール」がある。

 Symfonyの弱点の部分に対して、CakePHPをいくつかのサービスで試験的に採用している。学習コストが少なく、比較的軽量。支援者のサポートもある(安藤さんのこと)。CakePHPで開発したサービスに「お気に入りブックマーク(モバイル)」があり、PC版も近日登場。

 CakePHPの課題としては、大規模な開発への適正はどうか、ライブラリの整備(symfonyならMojaviに持ってこれた)、Railsに似ているのでそれとの微妙な位置関係(ただしRailsのエンジニアを助っ人にできる利点も)、という点が挙げられた。

 まとめとしては、スピードとコストの両立、共通ライブラリの整備により運用性を向上(運用コストを下げる)、オープンソース活用の風土がPHPで作られた(Rubyにもつながった)。課題としては、ナレッジの共有と社内教育、過去の資産のメンテナンス、コミュニティへの還元など。今後は、PHP5への完全移行や、単体テストやIDEなどの採用が語られた。

  • Q: デザイナーとの協業はどうやっているか
    • A: デザイナーが作ったHTMLをSmartyテンプレートにすることが多い
    • たまにデザイナーが直接Smartyを書くことも
  • Q: Javaに対するPHPの割合は
    • A: 半々よりは少ないぐらい
  • Q: Rubyは
    • A: 既存のサービスや既存の部隊はPHPで

大規模向けパッケージソフトウエアと PHP(米川 健一氏)

 注目事例その3。私も勤務先で使っているWebグループウェアのサイボーズガルーンについて、そのPHPっぷりを解説した。

 フレームワークCyDE 2の上にベースシステムが載り、その上で各アプリケーションがそれぞれ独立して実装されている。画面数およそ1200、Smarty 2500ファイル。PHPスクリプト約4500ファイル。現行バージョンで、日本10人、ベトナム4〜5人で開発した。

 パッケージソフトの難しさとしては、お客のサーバー構成を決められないこと(推奨するだけ)。そのため、スケーラビリティが難しい。そこで、サーバー構成を選ぶ機能(サーバーを分けるか、DBを分けるか、など)だけ用意している。

 パッケージソフトなので、「簡単インストール」にこだわっていて、httpd.confを開かせたら負けだと思っている。そこで、Webサーバーの自動検出とデプロイ標準化を実装。たとえば、CGIとしてPHPインタプリタを起動し、PATH_INFOから実行スクリプトの相対パスを取得するような工夫をしている。こうして、Webサーバーの設定が不要で、Webサーバーを選ばないようになっている。


そう、すべての大型飛行証明ダブルライフルケース

 パフォーマンスが要求される部分は、C(C++)でPHP拡張を書いている。たとえば、日付・時刻処理は、BoostのDateTimeを利用したラッパーになっている。ほか、AES暗号や、XMLパーサー、CSVパーサー、ライセンス処理などがC(C++)で書かれている。

 また、UNIX系でいうcronに相当するスケジューリングサービスを自前で実装している。Windowsでも使えることや、PHPでさっくりジョブを流せるのが特徴。

 セキュリティについては、ホワイトリスト方式のXSS対策や、CSRFの可能性があるアクションはリストアップしておきチケットが必要なように実装している。

 現在、国際化版を開発中。タイムゾーン情報をDBに持たせ、日付・時刻をローカルタイムゾーンに変換するように実装している。PHP5だと類似の機構を持っているが、自前でタイムゾーン情報を持っていれば後から変更できるメリットがある。また、メッセージ切り替えも、ユーザーのロケール設定をDBに保存して実装している。ベーステンプレートから言語リソースの埋め込まれたテンプレートをビルド時に生成するテンプレートジェネレーターも開発。ほか、リソース管理ツールを使うと、画面中のメッセージに定義箇所を表示する機能や、メッセージを定義されているテンプレートで色分けする機能、その場編集(ただし見せるだけ)などを用意している。

  • Q: PHP4のEOLの後の対応は?
    • A: PHP5の検討はしている
    • 慎重に対応
    • 独自パッチも検討?
  • Q: Webメールの負荷について
    • A: メールアプリとDBを分ける
    • メールアプリのDBを、人単位で分ける
    • メールパースはCで書いた(既存の拡張の独自カスタマイズ)
  • Q: リソース管理ツールでどこまでできるか
    • A: リソースファイルを見たりいじったりはできる。
    • が、リソースファイルへの反映はしていない

ユーザ会活動報告(halt氏)

 ここで、軽めのノリ(でも濃い内容)で、haltさんがPHPユーザ会の活動を紹介。

 まず、PHPに関する勉強会の開催案内サービスevents.php.gr.jpを紹介。今年開催されたイベントは、計16回だとか。

 続いて、国内有名ぺちぱーのブログを集約したplanet.php.gr.jpを紹介。「あのクロージャーの実装はありえねー」というように、最新の話題を知ったかぶるのに最適(笑)。近日リニューアル予定。

 で、そもそもPHPユーザ会は、自然発生的に集まったゆるやかなグループで、会長も会員名簿も会費も予算もないという話。「自分が一員と思うだけでPHPユーザ会の一員」というメッセージになった。

 ただし、それだと担当の人がいなくなるだけですべての作業が止まったりする危険性がある。そこでcoderepos。eventsやplanetのソースもcodereposで公開している。

 おもしろい例として挙げられていたのが第33回PHP勉強会。このときは、登録システムにバグが発覚、しかしhaltさんはミーティング中で気づいていない! そこで参加者の人が「修正しておきました」ということで一件落着、という話だった。

PHPネタの集め方(下岡氏)

 これも軽めのノリ(でも濃い内容)で、下岡さんが「Do You PHP?」の情報収集を紹介。アシアルの人から「なんでうちより早く出せるんですか」とツッコまれたんだとか。

 まず、基本はRSS経由。FirefoxのアドオンのinfoRSSを使って、新着の通知を受けている。ただ、大量の情報が上がってくるので、忙しい日にはオフにしたり。

 RSSを配信していないところは、WWWCとかのチェックツールを使用。なかでも、リリースマスターのダウンロードディレクトリをチェックしてたり、Apacheのダウンロードディレクトリをチェックしてたりというのが面白かった。

 あとは、なにより得た情報から自分で試すのがネタになるという話。うまくいかなければネタになるし、うまくいっても別の角度から試せばネタになる。このように、「結果」よりそこにたどりつく「過程」のほうが貴重な情報になるという話で締めた。

激論!PHPの次に学ぶ言語はこれだ

  • パネラー
    • サイボウズ・ラボ株式会社 竹迫良範
    • 株式会社ツインスパーク/日本Rubyの会 高橋征義
    • 日本Pythonユーザ会 柴田 淳
    • Seasarプロジェクト ひがやすを
    • id:amachang
  • モデレータ
    • 日本PHPユーザ会 個々一番

 それぞれピンで会場を満員にできる実力の方々がパネルディスカッション。すげー。

 言語よりなにより、5人のキャラが分かれているのがゴレンジャー的で(古いけど)、とても面白かった。

 終わった直後に知人と話していて、Q&Aで「いちばんモテる言語は?」と質問すればよかった! と後悔した。いや、どうでもいいんですが。


車を破壊するためにガソリンタンクに何置くか?
  • いきなり機材セットアップでトラブル
    • すかさず高橋さんが助け船
      • 「PHPユーザーはPHPしか知らないというけど、PHPしか知らない人」
      • ほとんどいない
      • パネラーそれぞれの持ち言語について、知っているか:かなり高い割合で手が上がる
  • 経緯説明(cocoitiさん)
    • Matz日記での「Webをなめるな」ねた
    • 「PHPプログラマーは、ほかの言語を知っている?」という問いかけがあった
    • 実際、そういうPHPプログラマーも多いと思う
  • 自己紹介
    • 竹迫さん
      • スクリーンでプロフィールを見せている間壇上から写真とるメソッド(さっそくRuby会議ねた?)
      • はじめてのパソコン:FM-TOWNS。ゲームばっかり作ってました
      • Cでポータブルなコードを書くのは大変
      • 新世紀ジャヴァンゲリオン
      • JavaかPerlか→Perlを選んで現在に至る
    • 高橋さん
      • 実はふだんの仕事ではPHPメインです
      • PHP Tシャツを見せる(拍手喝采)
    • 柴田さん
      • ZopeからPythonに入って7年ぐらい
      • ほぼPythonだけでごはんを食べている
      • 日本Pythonユーザー会も代表がいない組織。目立っているので呼ばれたようです
    • ひがさん
      • 10年ぶりに髪を黒にしました
      • 体をはってます
      • ふだんはブログを書くのが仕事です(笑)
    • amachangさん
      • Shibuya.
        jsで活動してます
        • 仕事でもサイボウズラボでJavaScriptを書いてます
      • 元は組み込み系の会社でCやJavaをやってました
      • 退職をきっかけにJavaScriptをやりはじめました
      • 「JavaScript深層」というサイトで言語の裏側を知って、深い話に興味を持った
      • JavaScript最高!
  • あなたから見たphp(cocoitiさん)
    • 竹迫さん
      • レンタルサーバーでどこでも動く
        • Apacheのモジュールで組み込まれている
      • キラーアプリが多い
        • XOOPS、OpenPNE
      • 標準関数が強力
        • それゆえに、その先(PHP5のOOPなど)に進むモチベーションが課題
    • 高橋さん
      • 実ユーザー視点での注文
      • 命名規則が一定しない
      • 新しい要素を追加するときに、ほかの言語からそのままもってきている感じ
      • ほかの言語もPHPのまねをしようとしている
        • 例:mod_rails
    • 柴田さん
      • Pythonと対照的な言語という評はうまいと思う
      • PHPは非プログラマー(デザイナーさん)も含めて使う
      • WordPressはなんでも関数でやってしまってひどいと言われる
        • が、OOPだと敷居が上がってしまうのでわざとやっているという話で、なるほど
      • Pythonはしくみ的に危険なことができないようにしている
    • ひがさん
      • Flashが好き
      • Flashとつなげる最初のサーバーサイド実装はPHPだった(element PHP?)
      • そこからFlashとつなげる実装が広まった
        • seesarに搭載した
      • 「FlashとPHPは親和性の高い言語」という印象
    • amachangさん
      • PHPの人たちはみんなさわやか。モテ言語
      • JavaScriptはモテ言語になりそこねたかも(笑)
      • PHPで2つ好きじゃないこと
        • lambdaやクロージャがない
        • 式と変数が微妙に扱いが違う
  • ずばりPHPの次に学ぶ言語は?(cocoiti)
    • amachangさん
      • 「JavaScript!」
      • ブラウザで動く言語としてオンリーワン
      • やらざるをえない
      • その結果、いろいろなバックグラウンドの人が使っているので、さまざまなやりかたが乱立
        • 関数型、手続き型、OOP、プロトタイプ、class
      • いろいろな言語のやりかたをJSで学べる
      • いろいろな言語のハブになっている
    • ひがさん
      • 「ActionScript」
      • 仕事に結びつく
      • ASならFlashというRIAに結びついていて、役に立つ
      • 言語仕様的にも面白い
        • AS3のエンジンTamalin
        • Webのデファクトになれる
    • 柴田さん
      • 「Python」
      • 固い、難しい、とっつきにくいというイメージがある
      • でも実は学びやすい
      • 予約語がもっとも少ない(30ぐらい)、記号をあまり使わない
      • オブジェクトの作りが単純
      • 名前空間が明確
      • Web以外を頭に置いたときに、Pythonならさまざまな分野で使える
    • 高橋さん
      • 「何でもいい」
      • Webは10年後もあると思うけど、違うものにはなっている
      • プログラムは作業を自動化することができる
      • PHPでMakeやRakeのような自動化ツールを書くのは得意じゃない
      • コマンドラインで自動化できるツールを書ける言語を覚えると、PHPにも役立つ
    • 竹迫さん
      • 言語は文化の一部
      • CPAN
        • (morning musumeでCPANを検索してみせる)
        • こういうのはPEARにはないのではないか
      • なんでもあり、平等がCPAN文化
      • CなどからLLVMでtamarinのバイトコードにコンパイルするソフトが登場して、ブラウザ上でほかの言語も動くようになるかもしれない
      • 言語の動くしくみを学ぶのも面白い
  • PEARとCPANの違いは?(ひがさん)
    • cocoitiさん
      • CPANは登録すれば誰でも登録できる
      • PEARは申請、登録、投票、などのプロセスがある
    • だからモームスがないんですね(笑)(ひがさん)
    • PHPユーザー会でも、CPANみたいなのができるといいねという話をしている(cocoitiさん)
  • PHPとバッティングしない言語から見て
    • PHP、JS、ASなどの存在理由(柴田さん)
      • 誰でもすぐ使える
      • インストールしなくていい(たいてい)
  • バッティングする言語から見て
    • Railsでしょうか(高橋さん)
      • PHPにはPHPの文化があるのでは
      • RailsでうまくいってるやりかたをPHPへ、PHPでうまくいってるやりかたをRailsへ、というのは無理がある
  • Railって線路ですか?(竹迫さん)
    • Railsは線路=一本線のイメージ
    • でも私は路線図を連想します(と都内の路線図を出す)(笑)
    • いろいろあっていいんじゃないでしょうか。場合によっては自転車とか
    • 素のPHPは自転車かも(笑)(cocoitiさん)
  • 同じレイヤーだとぶつかる(ひがさん)
    • その言語の特徴は、必要だからある
    • 混ぜていくと焦点がボケていく
  • RailsやDjangoを試してみたら、PHPとは違う世界観が見えた(cocoitiさん)
  • Perlをやっていて思うのは、自由であること(amachangさん)
    • クラスを覗いたりいじったりできる
    • JavaScriptはみんなで開発するためにフレームワークやクラスを設計したりするというのは多くない
  • フレームワークが必要な分野は、元の機能が貧弱な場合(ひがさん)
    • PHPはもとの機能が強力
    • Flexもそう
  • 新しいフレームワークを使うには時間がかかる(竹迫さん)
    • 副都心線は混乱
    • みんながよく使っている路線(フレームワーク)は安定して使える
    • みんながあまり行かないところに行くには、自分の足で
    • お金のある人はタクシー(委託)で
  • 私はPHPではあまりフレームワークを使っていない(高橋さん)
    • ほかの言語にひっぱられてはいないか
    • ジェネレーターは作って使っている
      • Webから実行
      • テーブル定義からモデルを作る

 あと、会場とのQ&A。


  • Q: 言語自体の魅力と、仕事の効率と、それぞれあると思うが
    • 効率ならC言語(竹迫さん)
      • 多くのLL言語はC(これからはC++?)で書かれている
    • 私もCを(高橋さん)
      • PHPをデバッグするときにCがわかると損はない
      • セッションが保存されるタイミングはどこか、とか
      • 英語はわからなくてもCはわかる
    • Pythonは後方互換性がある(柴田さん)
      • 仕事となると何年もメンテナンスしなくてはならない
    • SQL(ひがさん)
      • へたするとホスト言語より重要
      • 詰まっていた部分が解決する
    • JavaScriptができると何ができるようになるか(amachangさん)
      • GUIとの親和性
        • XMLとGUI、XMLとJS
        • DOMとの親和性
        • コールバックが使いやすい
      • 独自性、おもしろみ
        • プロトタイプ
        • クラスがない、すべてオブジェックト

LT:デザイナとの協業を本気で考える(桑田誠)

 ここからライトニングトーク。

 従来の従来のテンプレートシステムの問題点として、デザインが崩れるとか、デザイナーがロジックを変更できるとかいう問題がある。そもそもテンプレート中にロジックを埋め込んでいるのが問題。

 というわけで、CSSのような方法でプレゼンテーションロジックを分離できる「Kwartz」の紹介。HTML要素にidをつけて、ロジックではセレクターに対してロジックを割り当てる。これをコンパイルしてPHPを生成する。ロジックを変更してもテンプレートを変更する必要がない。

 締めは、「デザイナーさんも大切にしてあげてください」と。

LT:PHP meets Ext JS(MA4で受賞するための5つの法則)(直鳥裕樹)

 Mashup Award 3で大賞をとったONGMAP.COMの人が、Mashup Award 4を紹介。で、受賞するための法則として、見た目重要、だからJavaScriptライブラリのEXT.JSを使ってね、と、EXTの日本法人設立を紹介した。ちなみに、司会さんが「エクスト」「イーエクスティー」など、どの読みが正しいかと尋ねたら、「イーエクスティー」が正しいとのことだった。

LT:Flash 書き換え PHP extension(よや)

 SWFファイルの一部を書き換えるPHP拡張SWF Editor(略称swfed)を作った話。

 SWFファイルの中は、ブロックとそのリンクで構成されている。そこで、そこを書き換えれば、画像を入れ替えたり文字列を入れ替えたりできる、という話。好きなキャラクタを埋め込んで遊ぶゲームを作ったり、SWFの逆アセンブル機能を開発したり、と。

LT:前日Hackathonでなにがおきたか?(高橋邦彦)

 イベント前日にHackathonをやった話。ものすごい軽い気持ちでやると言ったら27人集まったとか。しかもそのうちMacBook Air 7台。みんな早く寝ると思ったら4:00で20名起きていた。

 やったことは、晩飯、F1中継、某RPG。ほか、某フレームワークをどうするかの熱い議論とか、マニュアルの翻訳の話とか、cocoitiさんのセッションをどうするかとか、RESTとか。

 で、味をしめたのでまたやりたい。伊豆の温泉とかでもやりたい。Googleグループも作った、と。

LT:家族連れIT系技術者の交流会in東京・リベンジ これまでとこれから(kano-e)

 お母さん兼プログラマー。家族がいると休日や平日夜のイベントは参加が難しい。ので、子供を連れていけるイベントがほしいと思っていた。

 ふと、関西で交流会をやっているのを見た。で、東京でもあるといいなと言ったら、やることになっていた(汗)。最初は雨で中止になったけど、リベンジ成功!

 次は子連れ勉強会をやりたい。子供も大人も楽しめる勉強会。会場とかの問題とかあるけど、wikiとか作って情報共有するといいよ、とアドバイスもらった。情報共有大事、一人で悩んでいても伝わらない、声を出して人を巻き込むのが大事、と。イイハナシダナー。

 最後に案内状のイラストを紹介。キャラの目線を隠してたけど…(笑)

LT:いよいよPHPの人達にrhacoを紹介しちゃいますよ。(rhaco-ja 露木誠)

 変態的と言われるPHPライブラリ体系rhacoの紹介。「りゃこ」と思ってたけど「らこ」と読むらしい。ただし、「rhaco-ja」は「らこじゃ」とか。

 PHP 4.3以上6未満に対応し、PHPのコンパイルオプションも気にしない。オブジェクト操作系、ネットワーク操作系、テンプレート操作系、データベース操作系など、いろいろ機能がある。ブラウザで実行、セットアップ、テストなど、フルスタックをサポート。さらにrhaco用の外部ライブラリ「arbo」や、rhacoアプリケーションのリポジトリ「jaja」まである。

 で、空気を読んでといいつつDjango本の宣伝で締めていた(笑)

LT:PHPで作る携帯の新しい未来(memokami 荒木 稔)

 「携帯はPCをミニマイズしたもの? いや、携帯を魔法の杖みたいにしたい!」という話で、Realtime visioning System(RVS)を紹介。

 携帯でPCのゲーム(○リオ…)を操作したり、PC(大画面)のゲームを携帯に移動したり、そこでキャラを成長させてPCに移動したりというのを実演していた。けっこう面白い。

 近い将来、渋谷ビジョンジャックを狙っているとか、携帯で育てたキャラを店でビジョンに表示とか。あと、書籍「PHPによる携帯サイト開発」9月発売予定(笑)。

LT:PHPプログラマ・エンジニア育成のポイント(リナックスアカデミー 秦 崇)

 IT業界に転職する未経験者へのスクールは、いままでJavaが多かったけど、最近PHPの市場もできあがりつつあるという話。で、経験者は「わからない人」の視点を持ちにくいけど、我々はその教育ノウハウがある、という話だった。

修正2008-7-24:ご本人からのコメント(ありがとうございます)により、rhacoの対応バージョンの記述を修正。「PHP 4.3〜6」→「PHP 4.3以上6未満」。



These are our most popular posts:

網日淡の採り方魚キラー

2007年1月11日 ... ライトで照らすと、寄ってくる系、逃げる系、ぼんやり明るいところが好き系、無関心系 などがいる。 寄ってくる系はオイカワとかツチフキとかな。逃げる系は普段から岩の隙間 に隠れている奴。カマツカ ..... それはそうと、キラー系が全滅だったんでハゼっぽい魚を 網で掬ってき ... あなたのセルビンです。 っていうか ...... [sage]:2008/09/06(土) 00:01: 35 ID:votDfJ9x: : self-shop.com/4000yen over 8274.html ... read more

デクスター/Dexter :: 2-03 :: An Inconvenient Lie :: ネタバレ

2007年10月27日 ... わたしはただただペインキラーがないといられなくなっちゃったんです」というオバサンの 話を聞きながら「ぼくがほしいのはガムテと丈夫なゴミ袋と ... このまえナイフ ... 昨夜は 黄色信号でうまいこと逃げたな」とこわい顔でいうので「あ、昨夜も尾けてたの?」とトボ けたら「 .... And you belong to it, to this... shadow self. To this. ... それはしょっちゅう 大波のようにあなたの胸に満ちてきて「エサをくれ」と渇望を訴える。それは ... read more

Mosquito Agony 歌詞 - Velorium: SongColeta

私はあなたを参照することはできませんが、私はあなたを聞くことができます - あなたは まだ存在しているのですか? 私はあなたを感じることが ... 蚊キラーの古くからの作成 人生のジュースから離して駆動(ui.) 我々は蚊が逃げてしまいますので、あまり文句を 言う彼らは逃げる ... それは私の人生を苦しめるだしかし、私は、最終的にあなたを殺す ことは夢を見続ける自分の手で私は、あなたが悲惨な死を持っているよ希望. Tears of an ... theyre able to travel where the fedor goes, in dearch of self alimentation help me ... read more

スコトーマ・エフィカシー・ドリームキラー:ゆめの家 - 沖縄のスピリチュアル ...

2010年3月11日 ... あなたの願いは何ですか。 その願いを共に叶えて ... それは即ちタイガー・ウッズの エフィカシー(自己イメージのレベル)が高いということ。 ... 無意識に快適な場所に逃げ 込もうとするように働く。 その快適 ... テーマ Self-Monitoring(セルフ モニタリング) 自己 受容を深める 自分を客観的にみることで感情と思考をすみわけてみます。 read more

Related Posts



0 コメント:

コメントを投稿