10月15,16日の2日間にわたり、
セッション・
そもそもハッカソンとは?
PHP Matsuriのメインイベントであるハッカソンとは、
ハッカソンの様子
PHP Matsuriでは、
今回はセッション・
そしてPHP Matsuriの一番の醍醐味と言えば、
参加者の中でもハッカソンイベントに慣れている方は、
もちろん、
Titanium Mobileの増井さんは参加者と交流しつつ、
41名参加の大LT(ライトニングトーク)大会
2日目のメインイベントは、
今年は昨年を上回る41名が参加し、
その他に、
また、
残念ながら今回は表彰されなかったみなさんの発表も素晴らしいものでしたので、
- @nojimageさん
「CakePHP Pluginを2. 0対応しました」 自作のCakePHPプラグインをCakePHP2.
0に対応させたそうです。また、 その代表作として、 簡単なコマンドでCakePHPのプロジェクトを生成することができるKickstartというプラグインを紹介していました。 - @s_
hagiwara さん「Csv-Combine-Plugin」 CakePHP1.
3と2. 0に対応した、 CSVを簡単に扱うことができるプラグインを作成したそうです。野球ファンということで、 野球に関するデータを使ってデモをされていたのが印象的でした。 - @k1LoWさん
「Calendar Plugin」 iCalendarの規格であるRFC2445に対応したCalendarを表示、
操作できるプラグインを作成したそうです。なんと1日で240ものテストケースを実装し、 すべてパスできたとのことで大変驚きました。 - @NEKOGETさん
「自分用まとめサイトを作ってみた」 動画アップロード職人をしているが、
いろいろな動画サイトにアップした動画を管理するのが面倒なので動画まとめサイトに挑戦したそうです。完成には至らなかったそうですが、 今後も開発を続けていくとのことでした。ご本人はなんと、 Macbook Pro 15インチとiPadとペンタブレット (!) という重装備で参加されており会場を驚かせていました。 - @brtriverさん
「Customize the route compiler for Silex」 Symfony2のComponentを使用しているマイクロフレームワークであるSilexをカスタマイズされたそうです。SilexのRouterに新機能を実装したそうで、
Silex作者であるFabienさんにアドバイスをもらうなどの貴重な経験ができたそうです。 - @yohxxさん
「TIと忍者と私」 Titanium Mobileを使いバスケットボールのスコアをつけるアプリを作成したそうです。一通りの動作を実装したようですが、
デモに失敗してしまいながらも参加者の笑いを誘っていました。 - @withelmoさん
「CakePHP Bake Templatesで楽する」 CakePHPの自動生成用テンプレートをカスタマイズし、
画像アップロード可能な確認画面付きの登録画面を自動生成するデモを行いました。開発プロジェクトなどでありがちな機能を簡単なコマンドで生成できるという実用的なハックでした。 - @kazuhiro_
kondo さん「ピュアを目指して頑張ってみた」 CakePHPやSymfonyなどのフレームワークを使った発表が多い中、
フレームワークに頼らずにアクセス解析ツールを作成したそうです。 「PHPを愛しているんだ!」 という台詞が印象的でした。 - @hyoshiokさん
「Titanium SDKをUbuntuにインストールした」 ゲストであるよしおかさんは、
Titanium SDKをご自身のUbuntu Linuxにインストールするまでの紹介を行いました。画面がプロジェクターに表示できないトラブルに見舞われながらも、 最後はマイク片手にトークのみで会場を沸かせていました。 - @mon_
sat さん「MontBlancSucks」 ご自身が中心となり活動しているモンブランサックスというチームと、
そこで運営しているtipshare. infoというサービスの紹介を行いました。曰く、 "モンブラン"とはCakePHPで書かれたスパゲッティなコードを指すそうです。 - @u_
matumoto さん「PHPで人工無能を作る」 Mecabによる形態素解析とマルコフ連鎖アルゴリズムを用いて人工無能を作成されたそうです。言葉に意味を持たせる機能は実装していないそうですが、
この人工無能がクスリと笑えるフレーズを生成していたのが印象的でした。 - @tumfさん
「PHP Matsuri 2011 demo?」 ご自身が運営されているPHPer.
jpというPaaSサービスのログビューアを実装し、 余った時間でCakePHP2. 0とOpenPNE3. 6の動作確認をしたそうです。インフラ運営者ならではの視点でCakePHPやSymfonyの設計について考察されていたのが印象的でした。 - @s_
kozo さん「CakePHP2. 0でAndroidアプリ」 CakePHP2.
0の自動生成機能を拡張し、 Androidアプリ用のJavaソースコードを自動生成する機能を実装したそうです。また、 Titanium Mobile用のJavascriptソースコードを自動生成する機能も同時に実装したそうです。その斜め上を行く発想で、 会場を大いに沸かせていました。 - @kiyotuneさん
「Titanium Mobileを使った写真共有アプリ」 Titanium Mobileを使い、
撮った写真をWEBにアップロードするアプリに挑戦したそうです。完成には至りませんでたが、 Twitter連携のためのXAuth認証に成功するところまでをデモしていました。 - @hiromi2424さん
「CakeWebSocket」 node.
jsやSocket. ioの流行などにより話題になっているwebsocketの技術をPHPで使うためのハックをしたそうです。PHP WebSocketというライブラリをCakePHPに組み込み、 CakePHPによる通常のWEB開発と同様のコードでWebSocketを使用できるようになったとこのことでした。時計を気にして息を切らしながら早口でプレゼンする姿に、 会場は笑いに包まれました。 - @harisenbon79さん
「ABTestシンプルプラグイン」 ABテスト
(スプリットテスト) をシンプルに実行できるCakePHPプラグインを作成したそうです。 「シンプルとは単純という意味ではなく、 素早く導入することができるという意味です」 という言葉が表すように、 充分な機能を素早く使えるプラグインに仕上がっていたように思います。
- @yandoさん
「NyanCat for Candycane」 ruby on rails製のプロジェクト管理システムであるRedmineのCakePHP製クローンであるCandycaneのプラグイン管理システムを作成されたそうです。ディレクトリにアップロードするだけでプラグインを読み込む仕組みが一通り動作するようになったので、
今後も改善を進めていくとこのことでした。 - @atakigさん
「Excel脱出計画」 Excelで管理されているレガシーな開発において、
Excelから脱出するための議事録当番表システムに挑戦されたようです。Lithiumに挑戦したとのことですが、 rubyの開発環境が競合してしまうといったトラブルに見舞われ完成には至らなかったそうですが、 Lithiumが気に入ったので今後も使ってみたいとこのことでした。 - @hidenorigotoさん
「BEHAT TEST RUNNER ON STAGEHAND_ TESTRUNNER」 STAGEHAND_
TESTRUNNERというテスト支援ツールを拡張し、 Behatというテストフレームワークを自動実行することに挑戦したそうです。まだ作成途中なので動作が不安定だということですが、 ファイルを保存すると自動でテストが実行される様子をデモしていました。 - @msuzuuukiさん
「IT勉強会カレンダーをPHPを使って整形」 IT勉強会カレンダーがgoogleカレンダーそのままだと見づらいので、
PHPを使ってhtml出力して整形表示してみたそうです。一般的なPHPのWEBアプリとはひと味違い、 googleカレンダーからデータを取り込み静的なhtmlファイルを出力するPHPプログラムでした。 - @jiskanuloさん
「symfony1. 4で使う国土地理協会の住所データを読み込むプラグインを作ってました」 仕事が終わらず会場で仕事をしていたという@jiskanuloさんは、
国土地理協会の住所データを読み込むプラグインを作ったそうです。ソースコードも公開するとのことでしたが、 実はこのデータは有料だったというオチで会場を沸かせていました。 - @kunitさん
「Cakeを試食する」 Facebook社が公開しているPHPのインタラクティブシェルであるphpshを使い、
CakePHPの各機能をインタラクティブに使用するためのプラグインを作成したそうです。phpsh上でCakePHPのクラスをロードするなど実用的なデモが印象的でした。 - @tejimaさん
「いろいろ通知サービス」 OpenPNEから、
Twitter,Facebookや携帯電話などいろいろなものに通知するサービスを作成されたそうです。WEB APIからSMSを送信するサービスや、 電話を呼び出すことができるサービスなどいろいろなことに挑戦されたそうで、 実際のデモではiPhoneが繰り返し鳴り続けました。 - @ooharabucyouさん
「Sismoをいじくる」 sensio labsが公開しているCIサーバーであるSismoに、
メール通知機能とTwitter通知機能を追加されたそうです。発表の時点ですでにGithubに公開してあり、 誰でも使うことができるようになっているとのことでした。 - @tenkomaさん
「深夜のPHP Golf Matsuri」 プログラミングの練習問題などで有名なFizzBuzz問題が少し変化した、
FibBuzzという問題でCode Golfに挑戦したそうです。ファイル末尾の改行コードを削るなどの工夫で、 結果的に92バイトまで削ることができたそうです。 - @remoreさん
「Ajaxを使った庶民的で実験的なスライドショーのデモ ※WebSocket不使用」 Ajaxを使い、
複数端末間で同期を取りながら動作するスライドショーを実装されたそうで、 複数のノートPCやiPhoneのブラウザなどで同期して同じ写真を再生するスライドショーのデモを行いました。徹夜で開発した感想も発表しており、 深夜の会場の様子を紹介し会場を沸かせていました。 - @saito_
jp さん「rebuild style_ of_ me」 WEB開発の初心者であるという@saito_
jpさんは、 PHP Matsuriの感想を発表されていました。今自分が置かれている開発環境の危うさを改善するためにPHP Matsuriに参加されたそうで、 テスト駆動開発やバージョン管理システムなどたくさんのことを学ぶことができたそうです。 - @kaz_
29 さん「ExtJS Plugin for CakePHP2. 0」 ExtJSというリッチなUIを提供するJavascirptライブラリを組み込んだ画面をCakePHPで自動生成するプラグインを作成されたそうです。生成された画面はAjaxを使ったリッチなUIとなっており、
ぜひとも使ってみたいと思わせる発表であったように思います。 - @j_
nakada さん「PHP拡張モジュール使ってみた」 C言語で書くPHPの拡張モジュールに挑戦し、
円周率を計算する拡張モジュールを作成したそうです。実際に作ったモジュールで円周率を計算したところ、 PHPでは42秒だったのに対し拡張モジュールでは1. 8秒で終わるなど20倍程度高速化したとのことでした。また、 さらに調べるうちにPHPの標準関数であるsubstr関数の高速化にも成功したそうです。 - @mugesoさん
「HadooPHPをクラウドで動かす」 会場のネットワーク環境に悩まされながらも、
HadoopをPHPから使うためのHadooPHPをさくらのクラウドで動かすことに挑戦したそうです。クラウドによる分散処理には失敗したものの、 1台のサーバーで動作させることには成功したとのことでした。 - @sizuhikoさん
「Cakeときゅうりの美味しい関係」 PHPのBDDフレームワークであるBehatをCakePHPに組み込むプラグインであるCakeBehatをCakePHP2.
0に対応させたそうです。Ruby on RailsのCucumberのように、 CakePHPの振る舞いテストを自然言語に近い形で記述できるCakeBehatは非常に実用的かつ必要とされているものだと思いました。 - @macstarさん
「li3_ wordpress」 Wordpressやjoomla、
drupalなどのユーザーベースCMSに悩まされていたという@macstarさんは、 LithiumにWordpressを組み込むli3_ wordpressというプラグインを開発したそうです。まだ未完成ながらも、 WordpressとLithiumの画面が上手く統合されたデモを行いました。これが完成すればCMSのカスタマイズが必要な箇所だけLithiumで実装することができるようになるそうで、 その思いに会場中が共感していたように思いました。 - @JP_
tomo さん「li3_ docsを使ってみた。」 Lithiumのドキュメントを生成するライブラリであるli3_
docsでCakePHP2. 0のドキュメントを使ってみたそうです。LithiumにライブラリとしてCakePHP2. 0を組み込むことで、 不完全ながらもCakePHP2. 0のドキュメントを表示することができたとのことです。 - @papettoTVさん
「webと、 こたつ」 CakePHP2.
0に挑戦したが上手く動作しなかったそうで、 急遽自宅のこたつの電源の話をしていました。こたつの電源スイッチに 「入」 と表示されている時に、 それが状態と動作のどちらを表しているのかわからないという興味深い問題提起でしたが、 結論にたどり着く前に時間切れになってしまいました。 - @binbin4649さん
「ゴトウキンセン?」 Twitterをもっとシンプルにしたい!
という考えのもと、 Titanium MobileでTwitterをさらにシンプルにするアプリを作成したそうです。画面には喜怒哀楽の4つのボタンが用意されており、 それぞれのボタンを押すとその感情と現在位置がTwitterに投稿されるという非常にシンプルなアプリで会場を沸かせていました。 - @suzukiさん
「CakeEmail Hack」 CakePHP2.
0で追加されたCakeEmailというクラスをハックしたそうです。このクラスに以前からあったバグを修正したことと、 マルチバイト対応に関してゲストのgrahamさんと相談して仕様の変更を許可してもらったことが今回の成果とのことでした。日本語に関する問題についてコアデベロッパーと直接議論できるというPHP Matsuriならではの成果だったと思いました。 - @hamacoさん
「Cake2. vim?」 Cake2.
vimというvimプラグインを作るつもりでしたが間に合わず、 急遽Titanium Mobileで@mon_ satさんが運営するtipshare. infoのビューアーアプリを作成されたそうです。Titanium Mobileワークショップで作られたコードを少し変えただけですぐにできたそうで、 Titanium Mobileの開発効率の良さを感じ取れる発表でした。 - @mogyaさん
「電源検索Lite」 モバイラーズオアシスというサイトを運営しており、
また電源検索という有料iPhoneアプリも公開されているそうで、 今回はTitanium Mobileを使い無料版の電源検索Liteというアプリを作成したそうです。電源の使えるカフェなどを地図上で検索できるという実用的なアプリでした。また、 今回のようなデモに役立つAndroid Screen MonitorというAndroidの実機の画面をPCに表示できるアプリケーションがオススメとのことでした。 - @gwooさん
「ORCHESTRA DEMO」 ゲストであるGarrettさんは、
ご自身が勤めるORCHESTRAというPaaSサービスのデモを行いました。3分という僅かな持ち時間の中で、 2分半ほどでインスタンスを立ち上げてデモアプリを立ち上げ、 残りの時間はノリの良い音楽で会場を沸かせていました。 - @sanojimaru
(筆者) 「わったい菜とはなんだったのか」 私は、
自分が所属する 「わったい菜」 という協賛企業の紹介を簡単に行ったのち、 Ruby on Rails向けのpjax_ railsという簡単なプラグインをCakePHPに移植したという発表を行いました。3分という短い時間で発表することの難しさを体験できました。 - @bash0C7さん
「事業変革のためのコード定義と処理系開発」 人の心を動かすためのコードとして、
プレゼンテーション用スライドを生成するためのRuby DSLを実装されたそうです。プログラマにとって、 Rubyのコードでスライドを作成できるというのは実用的なツールになるのでは無いかと思いました。
闇PHP Matsuri
1日目の夜に、
"闇"というタイトルが示すように、
ライトニングトークの制限時間である5分を経過するとともに、
スイーツ&ビール
1日目の午後には、
また、
まとめ
この2日間は多くのイベントがありましたが、
参加者の半数近い41名が次々と自分の成果を発表していくことで、
今年は2回目の開催ということもあり、
また、
多くの人や企業の協力により、
公式サイトにも感想ブログや写真などがまとめてあります。また、