CandyCaneの発表で感じた発信と恩返しの大切さ
9月 6, 2011 by yandod · 3 Comments
前回のポストで書いたようにイギリスのマンチェスターで開催されたCakePHPの公式イベント、CakeFestに参加してきました。今回はスピーカーとしてこれまで開発を続けて来たCakePHP版Redmine、CandyCaneについての発表を行い感じた事をまとめます。
発表までの経緯と内容
CandyCaneはRedmineをCakePHPに移植すればもっと使いやすい課題管理システムになるのではというアイデアからスタートしたオープンソースプロジェクトです。2009年の4月に行った開発合宿での成果を元に地道に開発を続け、現在は140ほどのページが動作しバグの管理ができる状態になっています。日本のCakePHPでは少しは知られているソフトウェアですが、日本のCakePHP以外のコミュニティや海外のコミュニティではあまり知られていない状態でした。
昨年のCakeFestにも応募したのですが、再挑戦した今年に公式カンファレンスでの機会を得る事ができました。
今回の発表では特に日本で人気が高いと思われるRedmineの紹介とCandyCaneの開発の経緯と実際にインストールして使用するデモという構成でした。
自分の考えを発信する事の大切さ

(会場内のバーでの交流の様子)
拙い英語による発表でしたが、発表後にはさまざまな反応を会場にいた人やオンラインで見ていた人達から貰う事ができました。またRedmineを実際に使っている人が参加者の3割くらいに達していたことも驚きでした。(すでにTracからは離れた人が予想よりも多かった)実際にもらった反応は下記のような感じです。
来場者のイングランドのWill Wilsonさん
「Redmineからの移行はどうすればいいのか?」という質問を貰い、その後レストランで話した所「Redmineいいなと思ったけれど、PHPで運用したい」というまさにCandyCaneを開発する前に僕が思った事と同じ反応。またプロジェクト作成からメンバーの追加などのステップが分かりにくい点を改善したい等、発表で重視して説明した内容について熱く語ってくれました。
CakePHPのコア開発者の1人でもあるGraham Weldonさん
「今後の開発予定は?」という質問と10月に大阪で行われるハッカソンでは「CandyCaneのCake2移行をやるよ」「CakeDCの内部で使っているRedmineをCandyCaneに変えたい」というこれもまた熱い反応を貰いました。
オンラインで発表を見ていたマレーシアの@sumarudiさん
最初は来場者の誰かなのかと思っていましたが、オンラインで見ていたという事でした。是非使ってみたいという反応を貰いました。
貰った反応はどれも自分がこれまでに感じた内容そのものだったり、「使ってみたい」という前向きな反応で本当に嬉しく感じました。日々の生活の中で感じた事や自分の為に手を動かした内容を発表したからこそこういった反応を得る事が出来たのだと思います。また特に反応をしなかった人からも「CandyCaneをやっている日本のyando」というキャラ認識を受け、コミュニケーションがしやすくなりました。ブログだったりプレゼンテーションだったり、プログラムだったり文章だったりと手段はさまざまですが自分自身が何かを発信したからこそこういった貴重な体験をする事が出来たのだと思います。日々の生活の中で継続的にアウトプットを行う事は簡単ではないですが、自分がどんな人間なのか、どんな事を考えているのかを発信する事の大切さをあらためて実感しました。
またインターネットというツールを使う事でプログラムそのものや英語のコンテンツは世界中に伝わります。今回もマレーシアやイングランドの人から反応が貰えるとは全く予想していませんでしたし、バングラディシュのFahadさんと2年越しくらいで初対面をした際にも「初めて会ったのに、そんな気がしない」なんて話していました。インターネットはやはりすごい。
恩返しの大切さ
(CakeFestのパーティの様子)
読み手やオープンソースの利用者として見た場合、自分が見たものや使ったものへ反響を返すという事も大きな意味があると思います。facebookが広まった事でついつい「イイネ」をクリックしたりリツイートする事で賛同の意思を伝える事が増えてきました。たしかにそういった反響もうれしいですが、それ以上に文章や直接の言葉で貰う反応はうれしいものです。そういった反響をくれた人の事は強く記憶に残りますし、がんばってアウトプットを続けようという大きなモチベーションになります。またオープンソースソフトウェアであれば実際にバグを修正したり、ドキュメントや記事を書くなどの方法もあります。
CakePHPも海兵隊から除隊された後にOSCommerceのカスタマイズなどをしていたphpnutがポーランド人のマイケルの作った”Cake”に対してすごくいいねと反応を返し、面倒なプロジェクト運営やサーバー管理は全部、俺がやるから一緒にやろうと誘ったのがきっかけだったそうです。自分が良いなと思ったものに対してポジティブなフィードバックをしたり、ちょっとした協力をする事で何か大きな事が生まれていくと思うと、そういった日々の恩返しも大切だと感じました。
自分自身から発信する事の大切さ、恩返しの大切さはオープンソースを知っている者としてはけして目新しい事ではなく、元々分かっていた事でした。不思議ですがその知っていた事をとても新鮮かつ染み入るように実感する事が出来ました。今後も開発をがんばろうというやる気が湧きましたし、日頃目にしているサービスや記事、ソフトウェアに対してきちんと恩返しをしていこうと思います。
長文になりましたが、読んで頂いてありがとうございました。
WordCamp San Francisco 2011に参加しました
このブログでも使っているブログエンジン、WordPressのサンフランシスコで開催されたカンファレンス、WordCamp San Francisco 2011に参加してきました。参加チケットは1000人分以上を完売した盛り上がったイベントでしたが、ウェブメディアの力を感じました。あまりたくさんのセッションを見ていないのですが、印象に残ったキーワードと全体の印象を紹介します。
全体の雰囲気
会場はミッションベイのカンファレンスセンターで2トラックのセッションと海沿いのピア38にあるAutomatticラウンジでの初心者向けワークショップという構成でした。どの会場も座席を探すのが難しいほどの来場者でまた参加者も老若男女幅広いのがプログラミング言語系のカンファレンスとは大きく違います。子供どころか孫も居そうな人が本当に珍しくなく、WordPressでブログを作るという行為がそこまで浸透している事を実感できます。また爽やかなイケメンの印象だったファウンダーのMattが漂流者のようなワイルドなスタイルに変貌している事に個人的に衝撃を受けました。
セッション
セッションは大きく分けてデベロッパー向けのセッションとユーザー向けのセッションに別れていました。デベロッパー向けのセッションではコードの断片やさまざまなソフトウェアを活用したスケールアウトの手法などが多く、ユーザー向けのセッションではさまざまな事例やメディア論のような利用者を啓蒙する内容、ハウツーのような形です。
下記は参加してセッションで気になった事のメモ。
- Coding, Scaling, and Deploys… Oh My! by Mark Jaquith
デプロイの方法についてのセッション。本番機上でコーディングする「カウボーイコーディング」と呼び脱却する為にCapistranoを使う方法を紹介していました。またローカルの設定ファイルを分離して開発用の設定を本番に持ち越さない工夫などを紹介していました。 - Ask Barry (About Scaling, Servers, or WordPress.com Infrastructure) by Barry Abrahamson
WordPress.comのインフラ面を担当しているBarry氏によるセッション。2億8千万の登録ユーザー、250億PV/月をWordPressでホストしているインフラに対して、さまざまな質問が寄せられました。300台ほどの各種サーバーでこれだけのパフォーマンスを出す事が出来るというのはかなり心強いですね。秒感数万クエリーのデータアクセスを数百台のMySQLデータベースのレプリケーションなどの対応をHyperDBというプラグインで行っている事や、キャッシュの活用など基本的な技術をうまく活用している点などが興味深かったです。wordpress.comにはTechCrunchやCNN、NewYorkTimesなどがホスティングされており、強力なインフラである割に日本での利用が進んでいない点はとても不思議です。各種インフラ面の為にカスタマイズしたソフトウェアも公開されています。 - Building Custom CMS applications on WordPress by Michael “Mitcho” 芳貴 Erlewine
CMSとしても広く使われているWordPressですが、CMSとしてカスタマイズして作り混む前に考えるべき点などについてわかりやすく解説したセッションでした。コンテンツがどのようなワークフローでマネジメントされていくかという点と、サイトのコンテンツがなんで有るかという部分をしっかりと分析してからアプローチする事の重要性を訴える内容は面白かったです。WordPressの場合は特にサイトのメインのコンテンツに併せてカスタムフィールドやメディアの種類のカスタマイズを行う事の重要性を動画などの管理をWordPressで行った事例を元に説明したあたりが目から鱗です。またWordPressのコンテンツをファイルシステムとしてマウントするpressfsという変態チックなプラグインの存在も驚きでした。
WordPressのプラットフォーム性
WordPressが膨大な数のプラグインとカスタマイズ性でブログに留まらないプラットフォームになっているという技術的な特徴はよく知られています。ですが今回それ以上に印象的だったのがカンファレンスを運営するAutomatticのメンバーの層の厚さです。企業がオープンソースソフトウェアを開発している例は多く有りますが、WordPressの場合はデベロッパ向けの活動や、エンドユーザー向けの活動、コミュニティやイベントの運営といったそれぞれの分野に専念できるほどの人数のスタッフが居るようでした。3つのトラックを平行で運営するだけでも相当な苦労だと思いますが、その中で翌日のセッションのリハーサルに別のスタッフがアドバイスをしたりするような光景はとても安定した未来を予想させます。
技術的な実装といてWordPressと同等のエンジンを開発する事がもし出来たとしても、そこにこれだけの豊富なコミュニティとサポートを構築する事は困難でしょうし、それだけの有機的な基盤こそがWordPressをプラットフォームにしている要因なのではと思います。
というか、大抵のオープンソースプロジェクトはなんとか開発を継続するだけのデベロッパ集団を維持するのが精一杯なのが殆どだと思う中で、これは本当にすごいです。
その他にも今後の開発の方向性や実績を振り返るマットのセッションはまるでアップルの基調講演のような感じで楽しかったです。動画での視聴もできるようになるはずなので、興味が有る方はご覧になってみてください。
最初の一歩を踏み出しませんか?
6月 14, 2011 by yandod · Leave a Comment
CakePHPのイベントが2つ開催されますね。

まず1つは再来週に東京で開催されるCakePHP2.0 勉強会@Tokyo。こちらはCakePHP2のネタを中心に昼から夕方までということでがっつりと情報収集ができそうです。また懇親会は会場でそのままということで知り合い作りにもいい機会になるのではないでしょうか。東京のCakePHP勉強会は年に数回なので、今年もう一度開催されるかは微妙なところです。座席の空きがあるうちに予定をつけて参加申し込みをするといいと思います。
なお初めて参加する方はツイッターなどで気になっている人に先に連絡をとってみてとりあえずその人と話しにいくとか考えると気楽になりますよ。あとはLTに参加するのもいいと思います。

もう1つはCakePHPの公式カンファレンス、CakeFestです。僕も今年参加できれば3年連続の参加になりますがとてもアットホームな雰囲気で参加しやすいカンファレンスです。とくにCakeは英語ネイティブじゃない人の参加がけっこう多い印象もあり、英語が苦手でも気楽です。去年は市川さんが発表者として参加していましたね。
「海外のカンファレンスに参加するなんて、自分には無理だ」と思う人はぜひ市川さんのこの投稿を読んでみてください。
ただ、世界の壁は高いと思ってたけど、そんなに英語での発表は敷居が高くない。
発表するものがあるなら、それが旬のうちに発表したほうが良いです。チャンスはすぐに逃げていきます。発表者登録のサブミットボタンを押すのを躊躇することもありますが、最後は何も考えずに細かいことはいいんだよと思って、とりあえず押してみると世界が変わるかもしれません。その前に、この記事を読むことをオススメします。僕はこの記事に勇気付けられました。
市川さんの文章は海外のカンファレンスで発表するという事について書いていますが、参加するだけでも同じ事ですね。
「勉強会に初めて参加する」「初めて発表をしてみる」「初めて海外のカンファレンスに参加してみる」どれもやってみる前はとても重たく感じますが、実際やってみるとそんなに大変でもなく、それ以上の収穫が自分に残ります。そして市川さんも言っているとおりそれに挑戦できる瞬間というのは決して多くはありません。人それぞれ違うステップを目の前にしていると思いますが、ぜひ最初の一歩を踏み出してみましょう。不安があればツイッターなどで助けを求めればきっと助けてもらえるはずです。
追記:
自分でやるイベントを忘れていました。10月に大阪でPHPMatsuriというハッカソンをやります。ハッカソンというのは泊まり込みで開発した内容を翌日にLTのような形式で発表するというものです。こちらはまた改めて紹介します。
CSSやJSファイルの配信を最適化するAsseticが便利そう
3月 2, 2011 by yandod · Leave a Comment
ニューヨークのPHPコミュニティ、NYPHPに参加してきました。今回はSymfony Liveでも行われたAsseticのセッションに興味があったので参加してきました。(前回はカンファレンス2日目の最終セッションだったので疲れてあまり内容が頭に入らなかったので)今回は内容もすっきり理解できたのでセッションの内容を簡単にまとめて紹介します。
複数のCSSやJavaScriptを連結して1つにするAssetic
サイトの構造が複雑化するとさまざまなJSファイル(JQuery本体やプラグイン、独自のコード、アクセス解析用コードetc)やCSSファイルを外部ファイルとしてロードするようになります。そうする事によって簡単にリッチな機能を実現できる反面、ページを表示する際に複数のファイルを呼び出すリクエストが発生する為にページの読み込みは遅くなります。特に同一ドメインのファイルを複数読み込む場合や外部ドメインから読み込む場合に顕著です。このような問題をファイルを連結する事で解決するPythonのライブラリwebassetにインスパイアされて作られたのがPHP5.3用(Symfony2用ではない事に注意)のライブラリ、asseticです。
基本的な使い方
asseticはSymfonyのコアチームの一員であるKrisさんが開発していますが、あくまでスタンドアロンなライブラリです。Asseticのクラス群がロードできる用になっていれば、単純なスクリプトの中からも呼び出す事が出来ます。
$js = new AssetCollection(array( new GlobAsset('/path/to/js/*'), new FileAsset('/path/to/another.js'), )); // the code is merged when the asset is dumped echo $js->dump();
この例では特定のパス以下にあるJSファイルと、指定したJSファイルをdumpする事で連結して出力します。JSが必要な各ページからは個別のJSを読み込むのではなく、このスクリプトをlinkタグなどで読み込めば単一のリクエストで複数のファイルをロードする事ができます。これによりレンダリング速度の向上やSEOの改善が期待できます。
ファイルの圧縮などを行うFilter
単純にファイルを連結するだけでもリクエスト数の削減は可能ですが、さらにファイルの余分な内容をはぶくといった操作を行う事でデータの量を小さくする事ができます。asseticではこのような処理をFilterを利用して適用できます。実際の圧縮に使うAPIはさまざまな物が利用可能です。
$css = new AssetCollection(array( new FileAsset('/path/to/src/styles.less', array(new LessFilter())), new GlobAsset('/path/to/css/*'), ), array( new Yui\CssCompressorFilter('/path/to/yuicompressor.jar'), )); // this will echo CSS compiled by LESS and compressed by YUI echo $css->dump();
この例ではファイルをYUIの処理を使って圧縮しています。既に実装されているFilterは下記の通りとのことです。またJSファイルの圧縮はデバッグなどの妨げになるので開発時はオフになるようにオプションを指定するのが望ましいです。(スライドの63ページ目に例があります)
CoffeeScriptFilter: compiles CoffeeScript into Javascript CssRewriteFilter: fixes relative URLs in CSS assets when moving to a new URL GoogleClosure\CompilerApiFilter: compiles Javascript using the Google Closure Compiler API GoogleClosure\CompilerJarFilter: compiles Javascript using the Google Closure Compiler JAR LessFilter: parses LESS into CSS StylusFilter: parses STYL into CSS Sass\SassFilter: parses SASS into CSS Sass\ScssFilter: parses SCSS into CSS SprocketsFilter: Sprockets Javascript dependency management Yui\CssCompressorFilter: compresses CSS using the YUI compressor Yui\JsCompressorFilter: compresses Javascript using the YUI compressor
キャッシュ、CDNの利用
ファイルの連結をリクエスト毎に行うのは非効率なのではと思った方もいるでしょう。実際に会場でもある女性がその質問をしていました。asseticにはキャッシュの仕組みも用意されています。下記は連結したファイルを特定のパスにキャッシュする実装の例です。
$yui = new Yui\JsCompressorFilter('/path/to/yuicompressor.jar'); $js = new AssetCache( new FileAsset('/path/to/some.js', array($yui)), new FilesystemCache('/path/to/cache') ); // the YUI compressor will only run on the first call $js->dump(); $js->dump(); $js->dump();
さらに連結したファイルをローカルファイルではなくAmazonS3のようなサービスに書き出す事も出来ます。
$am = new AssetManager(); $am->set('foo', $foo); $writer = new AssetWriter('s3://mybucket'); $writer->writeManagerAssets($am);
このような書き出し処理はコマンドラインスクリプトなどから叩く形でデプロイの手順に盛り込むのが良いでしょうね。
Symfony2との統合
最後にこれらの機能を簡単にSymfony2から呼び出せるように作られたのがAsseticBundleです。asseticそのものはファイルを置くパスや初期化の方法などはオープンですが、これをSymfony2の構造に併せて制御できるようにするのがBundleの役目ですね。PHP5.3であればasseticは動作するので他のフレームワーク用のプラグインなども誰かが作るかもしれません。
Symfony2から利用する場合、ひとまずは特定のパス以下のファイルを全て連結するように動作するようです。つまりファイルをweb配下に置けば全てが連結されてビューから読み込まれるという事ですね。
設定
assetic:
debug: %kernel.debug%
use_controller: %kernel.debug%
read_from: %kernel.root_dir%../web
write_to: s3://mybucketページからの読み込み
<link href="{{ asset_url }} rel="stylesheet">デフォルトのレイアウトに上記の記述があれば常に全てのCSSが連結されて読み込まれますね。そして設定さえすればファイルがS3から参照できたりもするという。
まとめ
問答無用でこの状態から開発が始まると戸惑うかもしれませんが、ページのレスポンスを向上させる仕組みをCDNまで考慮して実装してくれるというのは素晴らしい機能ですね。また質疑応答では画像ファイルをエンコードしてCSS内に埋め込む、スプライティングを行うと言った処理も組み込む予定があると言っていました。Symofony2的にはWEB以下の静的ファイルが全て連結されるようなイメージになる事になりますね。ということで効果的にアクセスを捌く必要がある場合にはasseticの利用を検討してみると良いのではないでしょうか。
セッションの動画もありました
Symfony Live 2011 San Francisco動画レポート
2月 21, 2011 by yandod · Leave a Comment
2011年2月5日から2月9日までの期間でSymfony Live 2011がサンフランシスコで開催されました。延べ300人以上の参加者が世界中から集まりSymfony2を利用した事がある人が9割近いなどトレンドを感じさせるイベントになりました。会期中に撮影した動画とSymfonyのエバンジェリストとして知られる元YahooのDustin Whittleさんのインタビューの動画を作成したのでご覧ください。
イベントハイライト動画(日本語字幕)
この動画ではDustinのインタビューのハイライトを中心にイベントの様子を点描しています。会話中でも触れられていますが、マイクロソフトで行われたカンファレンスには1日150人の来場があり非常に盛況です。またSymfony2を使ってみた人が9割以上でSymfony2を使った事がないならSymfonyユーザー失格と言っても過言ではない状況でした。ちなみに本番環境でSymfony2を利用している人も10名ちょっと居ました。またSymfony2では開発をgithub中心のスタイルに変更し、ZendFrameworkのロガーを標準のロガーとして採用するなど全てを自前で実装していたSymfony1とは大きな方向性の転換があります。開発が進んでいる為、ドキュメントとの差分も発生していますがやはりサンドボックスを動かして実際に触れてみるのが王道といってよいでしょう。
なおDustinのインタビューのフルバージョンはこちらです。(字幕なし)
セッション
セッションのスライドを全て埋め込むとページが重くなるので、タイトルをスライドにリンクしています。
The path to Symfony in the USA – Dustin Whittle
インタビューとほぼ同様の内容でSymfonyの発展の歴史をDustinの視点から紹介する内容。ted.comがSymfonyで出来ているとは知りませんでした!!
Unit-testing a guide to writing clean, testable code that will be easy to maintain and extend – Bulat Shakirzyanov
実はこの方、以前のニューヨークでのmeetupでお会いしたことがあります。ザッカーバーグばりにオフィス内ではサンダルでSymfonyはSymfony2しから知らないというかなりのニューウェイブぶり。内容はユニットテストの意義や手法などについての内容で最近のカンファレンスでは必ず一コマある内容ですね。
Apostrophe: a Symfony-powered CMS your clients will love – Tom Boutell
Symfonyで構築したCMSについての発表。
Contributing with Git : Reducing the frictions of Open Source collaboration with the Git VCS – Scott Chacon
Githubの中の人によるGitの使い方と理論についてのセッション。従来型のSCMのブランチの扱いの違いやデータ管理の手法といった内容を紹介していました。githubの利用はオープンソースにとって非常に重要になってきており、こちらも基礎知識としてのセッションでした。
Nice performance using Sf2 cache wrapping Sf1 application. – Emmanuel Cohen , Marc Weistroff
Sensioから来た二人による事例の紹介。ここでいうキャッシュはmemcacheのような物ではなくEdge Side Inculdeを使ってCDNやプロキシ上にコンテンツをキャッシュさせる事を制御する手法である点に注意してください。こんなん相当なアクセスが無いと使わないと思いますけど。。。
phpBB4: Building end-user applications with Symfony2 – Nils Adermann
PHPBBをバージョンアップしていく際にSymfonyへ移行するに至った経緯の解説。Symfony2のフットプリントの小ささを利用してJoomlaの内部でPHPBBを動作させる等の実例が紹介されていました。
Migrating relational data to the cloud and consuming it from PHP – Bruno Terkaly
事情によりセッションが中止されました
Symfony2 – from the trenches – Lukas Kahwe Smith, Jonathan Wage
PHP MatsuriでおなじみのKris WallsmithさんとDoctrineの作者、Jonathan Wageさんが在籍している事で知られるOpenSkyの事例の紹介。ECサイトにSymfony2を投入するというものすごいアーリーアダプタな事例で培ったTIPSを3人のトークで紹介していました。
Being dangerous with Twig – Ryan Weaver
テンプレートエンジン、Twigの利用方法を丁寧に解説したセッション。簡単に触っただけだったんですが、利点などをわかりやすく整理する事が出来て非常に有益なセッションでした。もはやSmartyを使う理由は技術的には無くなったように思いますね。
HTTP Cache – Fabien Potencier
FabienによるHTTPの解説から始まりESIまでの解説セッション。HTTPの仕様を読んだ事が無い参加者はもれなくFabienにおしかりを受けました。
Don’t use a screw when you need a nail – Stefan Koopmanschap
PHP以外に目を向けてみましょうという内容のセッション。Stefanさんはオランダで行われているDutch PHP Conferenceの中心メンバーで幅広いネットワークをお持ちのようでした。オランダなら英語が通じるので出来れば言ってみたいなと思っています。セッション内ではJenkinsことHudsonやRedmineといったPHP以外の言語で実装されているツールなどの紹介をたくさんしていました。(海外でRedmineの話を聞いたのはこれが初めてです)
Doctrine in the Real World – Jonathan Wage
作者本人によるDoctrineを活用する方法についてのセッション。SoftDeleteの利点を話す際にはFlickrで発生したデータの削除事件を例にとっていました。あまり会場の反応は良くなかったのであのニュースは割と日本での方がインパクトがあったんですかねぇ。
Behavior Driven Development for Symfony2 – Konstantin Kudryashov
講演者がアメリカに入国するビザが取得できずキャンセル
Doctrator, behaviors in Doctrine2 – Pablo Díez
DoctrineをActiveRecord的に利用するというハックの例の紹介。コードの記述を減らすための実践なのですがちょっとスペイン語訛りがきつくてよくわかりませんでした。。。
Introducing Assetic: Asset Management for PHP 5.3 – Kris Wallsmith
PHP MatsuriシャツをまとったKrisによるAsseticの紹介。Pythonインスパイアな静的コンテンツを統合するコンポーネントの紹介。こちらは間もなくコアに取込まれるのではと思われます。
まとめ
セッションの内容はオーソドックスな内容が多くLT等もありませんでしたが、Symfonyのコミュニティが全力でSymfony2に向かっている事がよく確認できたイベントでした。また参加者のSymfonyの活用方法は似たりよったりといった感じで割とまじめそうな参加者の人が多かった気がします。特にコミュニティの運営方法が変わり、拡張機能の開発などで開発に参加する機会も多くなりそうなSymfony2をぜひとも試してみてください。
Symfony Liveカンファレンスに参加中(ハックデイ)
2月 7, 2011 by yandod · Leave a Comment
PHPフレームワークSymfonyの公式イベント、Symfony Liveに参加する為にサンフランシスコに来ています。カンファレンスのセッションは明後日の火曜日からですが、昨日今日と開催されたハックデイにも延べ50人近いユーザーが集まり活発に交流していました。
参加者層
ハックデイには両日ともに20名ほどの参加者が参加し、僕が見聞きした範囲では参加者はアメリカ、カナダ、オーストラリア、コロンビア、ドイツ、ベルギー、オランダ、フランスとかなり多彩です。見た目だけではどこから来たのかの判別は出来ないので「Where do you come from?」から始まって名前を聞き、TwitterやFacebookのアカウントを聞くという会話を何度もしました。なんとなくの感想ですが、欧米のユーザーに比べると日本人はツイートが多すぎるような気がします。日本では起きたとか病院に行ったとかをいちいちツイートする人がけっこう居るという話をしたらわりとウケました。またファビアンとはフランス語で会話している人も多かったですね。ちなみに彼の会社は求人中だそうです。外国人でも構わないそうですが、フランス語が必須との事。
参加者の話題はSymfony2

作業時間はほとんどのユーザーがSymfony2のsandboxを使って何かを開発していました。今回のハックデイには残念ながら発表タイムなどは無かったのですが、Formが動かないとかBundleが動かないとかあれやこれやと話し合いながら各自が作業をしていました。ファビアンはマージリクエストが無いといって悠々自適。ダスティンはハッカソンのオーガナイズで忙しい様子でした。
Symfony2に触れるにはSandboxとBundle
-300x111.png)
僕自身もOAuth認証のBundleを使ったアプリをチュートリアルを見ながら作っていましたが、Bundleの導入の為にコードの変更と設定ファイルの変更が必要になり期待した所までは到達しませんでした。(定義しなければいけないメソッドの追加、禁止された設定ファイルの項目などの影響)
全世界のユーザーの注目を集めていると思われるSymfony2ですが、現状は大きな変更が行われる事も多くすでに公開されているバンドル(プラグインに変わるコードの共有方法)が導入しても動かないという事が頻繁に発生します。ドキュメントも用意されていますが、実装との差分が出ている部分もあるので今の時点で覚えたノウハウは間もなく消え去ってしまう可能性も高そうです。なおSymfony1ユーザー向けの紹介としてはこのページに情報がまとまっているのでなんとなく見ておきたい場合はここを見ると良いでしょう。いずれにせよ3月に予定されているアルファ版以降、段階的に安定性とドキュメントが充実しそうです。
カンファレンス開始後に今回のカンファレンスのオープニングスピーカーを務めるダスティンのインタビューを撮影する予定です。無事に撮影が出来ればなるべく早くに公開しようと思います。
日本から弾丸スケジュールで来た@cocoitibanさんもブログを更新していました。
symfony live 一日目
CakePHP新春勉強会を開催しました&俳句コンテスト
1月 25, 2011 by yandod · Leave a Comment

去る2011年1月17日、渋谷のジンガジャパンさんのオフィスにてCakePHP新春勉強会を開催しました。告知から開催まで一週間弱というスケジュールでしたが50人以上の参加登録があり盛況のうちイベントを終える事が出来ました。会場を提供して頂いたジンガジャパン様に感謝したいと思います。また参加した方はご存知かと思いますが、CakePHPの勉強会は「黙ってイスに座っているだけなんてもったいない」という方針の元、会の途中から軽食+ビールが入ってグダグダになってからが本番です。
すこし映像を撮ったのですが、みなさんパーティからとてもにぎやかです。発表者、参加者の皆さんお疲れさまでした。
動画
発表
オープニング
CakePHP 2.0
Livlis
From 福岡
LT
参加者の方のレポート等
裏方をやっていると実は勉強会の内容が全然頭に入らないのですが、参加者の皆さんのブログなどでかなりフォローされていますね。
Knockin’on TechLog » Blog Archive » 「CakePHP新春勉強会 東京」参加ログ
【CakePHP】「CakePHP新春勉強会」に行ってきました | ECWorks Blog
CakePHP新春勉強会に参加した #cakephpstudy – 130単位
CakePHP新春勉強会東京でLivlisの事例をプレゼンしました …
[勉強会]CakePHP新春勉強会に参加してきました
CakePHP 新春勉強会 東京 に参加した #cakephpstudy
CakePHP新春勉強会で発表してきました – 24時間CakePHP
一日一歩 : CakePHP新春勉強会 東京に参加してきたよ!
CakePHP新春勉強会に参加してきた « hideichi.com
俳句コンテスト結果
また今回はジンガジャパンさんで開催ということでCityVilleでも使えるジンガゲームカードが当たる俳句コンテストも突発的に開催していました。俳句コンテストは以前、NYで開催されたBoxeeのイベントでやっていたのを見てパクって見ましたが、動画で見ている人も参加できてまたやってみたい企画ですね。
いくつか話題になっていた作品を紹介します。まずは@mon_satさんの作品。
もうプレゼンとかいいからビールを飲むのがメインの#cake_beerのハッシュタグが付いています。きっと近々開催されそうですね。次はビールを飲むのをがんばって我慢していた@ken_b4uさんの作品。
LTの発表も行った@ecworks_masapさんは若干やんちゃなネタ。
しかしながら圧倒的な支持を得たのはハイペースでネタを投下し続けたジェダイアイコンでおなじみの@slywalkerさんです。
公式RT、非公式RTを多数獲得していた@slywalkerさんにはジンガのゲームカード20ドル分を進呈します。おめでとうございます!
このエントリ内でのツイートの引用はTwitter Blackbird Pie WordPress Pluginを使ってみました。凄く便利なのでツイートを引用するブログを書く時にはおすすめです!
2010年を振り返る
12月 30, 2010 by yandod · Leave a Comment
早いもので2010年も終りますね。
来年も実りある一年にできるように今年の活動を振り返ってみたいと思います。
まとめというのは書き手の個人的な総括なのですが、この機会にご覧になっていない動画や記事があれば見て頂けるととても嬉しいなーなんて期待もちょっと持っています。
ニューヨークへの引っ越し
年明けからニューヨークに引っ越しをし、生活環境が激変しました。それまでは出張という形で米Linkshareでのプロジェクトに参加していましたが、現在は出向の形で勤務しています。Linkshareは元々アメリカの会社が楽天に買収された会社で、会社の風土はかなりの部分アメリカ的です。現在の同僚はロシア、インド、フランスなど色々なバックボーンを持った人が多く面白い環境です。
またこちらにいると技術系のmeetupやカンファレンスに参加しやすいのもいいですね。今年はiPadの発売に行列したり、その日にNate AbeleさんやJoel Perrasさんとお茶したりとギーク的に満喫していました。
楽天テクノロジーカンファレンスで「リア充になりたい」といううっかり発言をしてしまいましたが、アメリカで見るエンジニアの人は生活も仕事もすごく楽しんでいるように見えます。環境の差や人間の差色々とあると思いますが、人が生き生きとしているこの感じは日本にもあればいいのになと思っています。
海外での勤務ついては@ITのブログでも書かせてもらいました。
世界を目指せばエンジニアはもっとハッピーになる
楽天テクノロジーカンファレンスではパネラーとして登壇して海外でのエンジニア経験について話しました。
ITエンジニアのから騒ぎ ~グローバルエンジニアへの道~
テキスト版
iPad発売の時の行列(41秒目あたり)
APのニュース映像
TechCrunch Disrupt(38秒目)
Inside Disrupt Hackathon [Video]
発表
今年はPHP勉強会の開催にあまりタイミングが合わず、発表は少なめです。CakeFestではLTを用意したのですが、飛行機の時間に間に合わず発表には至りませんでした。PHPMatsuriでは主催に専念したのでやはり担当セッションはありませんでした。Skypeでの発表には慣れては来ましたが、テンポが合わせづらいのが難点ですね。またビジネスブレイクスルー大学でITサービス基礎という科目の講師を務める事になり全15回の講義をビデオで撮影しました。
Lithium ラボ #1 2010/1
PHP Matsuriの告知 2010/5
Lithium ラボ #2 2010/7
This is our Cake 2010/9 (実際の発表はcakephperさんが代打)
経営の話だけじゃない――ビジネス・ブレークスルー大学でITエンジニアは何を学ぶ
イベント
大きなイベントはシカゴで開催されたTek X(てっくてん)とCakeFestへの参加、また主催したPHPMatsuriの参加といった所です。スケジュールの都合でPHPカンファレンスには初めて参加できませんでした。そのためCakePHPとLithiumの枠にはインタビュー映像を作成して送るという形を取りました。どちらのイベントでも日本へゲストとして来てもらう為の折衝をかなり時間を割いてしていました。よく顔を出しているのでフレームワーク系の人には大分顔を覚えてもらえたのが良かったです。
ブログ記事
Lithiumのリリースノートの翻訳を中心に合計で16本のエントリを公開しました。下半期はイベントの準備やBBT大学での講義に時間を割かれてあまりアウトプットが出ていませんね。本当はもっと書きたいなと思っています。HipHopの記事についてはこのブログに移ってきて初めてホッテントリ入りしたという事で翻訳が大変でしたが嬉しかった記事でもあります。
新年早々、Lithium0.4がリリースされました!(和訳)
イテレーション・フライデーのススメ(和訳)
NYPHPでNate Abeleの「On the origin of Lithium」を聞いてきた
第49回PHP勉強会で「Lithiumラボ #1」を発表した
Lithium0.5がリリースされました!(和訳)
PHPをC++に変換して高速化する「HipHop for PHP」をFacebookが公開
Lithium0.6リリースノート 和訳
HipHopのビルドとインストール方法(和訳)
HipHopを実行するには(和訳)
Lithium0.7がリリースされました(和訳)
安定版まであと2つ Lithium0.8リリース(和訳)
会場はバス。アイルランドのWEBカンファレンス「Funconf」
iPadの縦画面でネット閲覧が超快適
Lithium0.9リリースノート(和訳)
Lithium0.9.5リリースノート(和訳)
楽しくなりたいPHPerさん、PHPMatsuriへどうぞ!
PHPMatsuriの動画まとめ
[和訳]Lithium0.9.9リリースノート
公式イベント、Symfony Liveのチケットを抽選で2名にプレゼントします
動画
参加したイベントの様子やギーク達の魅力的な人柄を伝える為にビデオを撮影して公開するという事を始めました。9月にマックユーザーになったというのも大きい要因ですが、これがけっこう楽しくて気に入っています。Youtubeで合計10本の動画を公開しました。インタビュー動画はインタビュアーである自分の英語力がまだ足りないのですが、熱心に喋ってもらえたのでとても面白い内容になったなと思っています。
CakeFestでのcakephperさんの発表のレポート
CakePHPコアチームインタビュー(12分、字幕無し)
CakePHPコアチームインタビュー(5分、日本語字幕)
Lithiumインタビュー(5分、日本語字幕)
Lithiumメッセージ
Symfony Kris Wallsmith インタビュー(5分、日本語字幕)
PHP Matsuriレポート(セッション、ハッカソン、デモ、JIREI NIGHT)
来年に向けて
まだアウトプットが足りないというか、色々触れた面白かったものを表現するというのが出来ていないかなと感じました。とはいえNate Abeleのちょっとシニカルな感じやJoel Perrasのイケメンっぷり、Kris Wallsmithの熱心さなどなどPHP Matsuriなどを通して知った人も多かったと思うのでその点はすごく良かったです。来年もWYSWIG(What You See Is What You Give)な精神で面白い事をいろいろと多くの人に伝えていきたいなと思っています。
長いエントリになりましたが、みなさん良いお年を。
公式イベント、Symfony Liveのチケットを抽選で2名にプレゼントします
12月 15, 2010 by yandod · Leave a Comment
ファビアン・プトンシェからの
メッセージをお読みください
この記事はSymfonyアドベントカレンダー2010に参加しています。
Symfonyアドベントカレンダー 2010 | 日本Symfonyユーザー会
前の記事:Symfonyでクリスマスまでに彼女を作る方法(1.4対応)
Symfonyコミュニティの公式イベントであるSymfony Liveが来年2011年にフランス・パリとアメリカ・サンフランシスコで開催されます。今回はSymfonyプロジェクトの創設者であるファビアン・プトンシェさんからのメッセージを頂いたのでご紹介します。またイベントチケットのプレゼントもあります!応募方法は記事の最後にあります。
ファビアンからのメッセージ
Symfony LiveカンファレンスはおそらくSymfonyコミュニティに参加する最良の方法です。パリでは400人、サンフランシスコでは150人の参加者を見込んでいます。
公式なカンファレンス以外にも色々な見所があります。全て無料のハッキングデイや夜のイベントです。昨年はgithubをスポンサーに迎えたmeetupが大変な成功を収めました。
もちろんsymfonyやSymfony2について多くの事を学んだり、新機能の使い方や優れた事例の情報共有もたくさん目にすることができるでしょう。
読者のみなさんにいくらか無料のチケットをご用意しましたので、ぜひSymfonyLiveカンファレンスにお越し下さい。
イベントの概要
Symfony Live 2011 サンフランシスコ
会場
マイクロソフト
参加費用
299ドル
日程
2/5(土) ハッキングデイ
2/6(日) ハッキングデイ
2/8(火) カンファレンスデイ
2/9(水) カンファレンスデイ
セッション
1トラック、12セッション
Symfony Live 2011 パリ
会場
国際大学都市
参加費用
カンファレンス 299ユーロ
トレーニング 350ユーロ
日程
3/2(水)トレーニングデイ
3/3(木)カンファレンスデイ
3/4(金)カンファレンスデイ
3/5(土)ハッキングデイ
セッション
2トラック、24セッション
無料チケットへの応募

画像:パリ会場 Symfony城 Cité Universitaire Internationale
パリとサンフランシスコのそれぞれに1名分のチケットを提供してもらいました。
無料チケットの抽選に応募したい方ははてなブックマークのコメントに「パリに行き隊」「サンフランシスコに行き隊」のどちらかか両方を記入してください。
抽選後にこちらからどうにか連絡します。応募の締切は日本時間 12月25日の正午までとします。また僕もサンフランシスコの方には参加しますので、当選の有無に関わらず同行者をこちらで募集中です。
PHPMatsuriの動画まとめ
10月 16, 2010 by yandod · Leave a Comment
慌ただしく、日本とアメリカを行き来したりしていてすっかり投稿が遅くなりました。
すでに多くの方がブログのエントリなどを書いていますが、PHPMatsuriはスタッフの僕らが想像していた以上の成功を収める事ができました。
今回は事前の告知でビデオの収録と編集を活用していました。
本エントリでもイベントの雰囲気を少しでも味わって頂けるように可能な範囲で録画した映像とともにイベントを振り返りたいと思います。
(動画は全部で3本あります)
準備期間
今回のイベントは昨年のCakeMatsuriのスタッフを中心にTwitter上や勉強会などでお手伝いの表明を頂いた方々10名ほどのスタッフで準備を行いました。春先から会場の当たりを付け始め、今回の会場になった晴海グランドホテル宛に見積もりを依頼したのが5月の事です。
特に今回は宿泊形式、24時間での開催ということで会場がかなり限られました。ネット上ではまだ参加費用が高いという声も頂きましたが、これ以上費用を下げるには24時間利用可能で、ネット環境が完備されていて、100人以上が入れるオフィスを貸してくれるというような会社が現れない限りは難しいです。今回はスポンサーについても昨年の倍以上獲得していますが、それでも全体の費用の半分程度しか賄えていません。
またゲストの方にはまだ一部自己負担での参加をお願いしている状況です。(それでも講演を引き受けてくれるゲストの方々は本当にすごいです!)
金銭面でのプランニングはこれまでの実績に基づいて立てているとは、運営上の非常に大きなストレスでした。
海外のカンファレンスと同様の価格帯でチケットを販売できればこの問題は解消するのですが、まだ無理なのかなと思っています。
また運営に当たってはなるべく新規開発などはしないでいいように予算やスケジュールの状況をGoogle Docs, ゲストの来日日程のとりまとめのGoogle Calenderやコンテンツ管理とチケット販売にCroogoといった既存のソフトウェアやサービスを活用する方向で進めました。
実際、これらの既存の資産の活用はイベント運営の効率化に大きく貢献していたと思います。
セッション
セッションはブログなどを流し読みすればわかるような機能の羅列などではなく、各フレームワークやその開発者の思想に触れる機会を作る事に焦点を合わせて準備しました。要望があったZend Frameworkのセッションなどは残念ながら調整がまとまりませんでしたが、CakePHP,Lithium,Symfonyの開発者が集結するという希有な機会を作る事ができました。
また各スポンサーからの提供セッションも多くの参加者を得る事ができました。個人的には自分自身が参加する事に熱中してしまい、ユニットホスティングのセッションの動画が無い事を大変申し訳なく思っています。
実際に質疑応答をしながら書いたPHP5.3とMongoDBをセットアップするスクリプトも無事に動作しているようで安心しています。
またslywakerさんの大変身を見る事ができたJIREI NIGHTも投票の裏方を行っていたので動画がありません。
ハッカソン
開発スペースを併設してのハッカソンも大盛況でした。実際に朝までコードを書きつつ普段接点の無い人と交流したりこの機会にプログラムを組んだりととても有意義な時間になったようです。またレッドブルガールが来た時のみなさんの素晴らしい笑顔を忘れることができませんね!
デモ大会
デモ発表は33人ものエントリーがあり、これだけでもひとつのイベントになるようなエキサイティングな内容でした。徹夜によって時間の感覚が破壊されているからこそですが、LTを3時間連続で聞くというのはなかなか無い経験です。最初は切り替えなどでトラブルもありましたが、最終的にはスムーズに発表が行えるようになっていました。
ドラ娘を引き受けてくださったSioさんの叩きっぷりもよかったですね!
終わってみての感想
終わってみると一泊二日という大変なイベントにも関わらずスムーズに運営する事ができたのはスタッフのみんなのがんばりのおかげだと思います。イベントの規模が拡大し、ゲストが増える中で僕の役割は大まかな方針決めと金銭面の管理、ゲストとの交渉をこなすくらいで精一杯になっています。
また金銭面ではまだまだ苦しい状況の為、この点を改善したいと思っています。
また参加者の方の感想を見ているとハッカソンがどういうイベントなのかを事前に正しく伝えられなかったのかなという所もあります。今回の成功を通じてハッカソンがより身近なものになり、その価値を理解してもられば良いなと思います。
参加者の皆様、スポンサー企業の皆様、自費での負担もある中で来日してくれたゲストの皆様本当にありがとうございました。










