Posts Tagged ‘PHPMatsuri’

    はてなブックマーク - PHPmatsuriにいって来ました!(一人目?)
    このエントリーをはてなブックマークに追加

    多分久しぶりな登場の気がする萩原です。

    昨年に引き続きPHP Matsuriに参加させていただきました!
    (今回は福岡!)
    弊社からは何と8人も参加させて頂きました。
    全員LTで発表しましたので発表の最後の方にはまたFusicかとつぶやかれるくらいでした。

    一人目って書きましたが別に二人目とかタイトルが続くことは多分ないんじゃないかと思います。

    今回のPHP Matsuri

    今回は、本当にネタが思いつかずやることが決まったのは当日14時くらいでした。
    大して役に立たないものおもしろそうなものを作ろうということは何となく事前に決めていましたが。

    何とかネタは思いついたものの、時間内に出来るんだろうかとか思いながらバタバタ作っていたらなんだかんだで日付が変わったころには大体できてしまっていました。
    残り時間は書いたのもを見直したり、前でファミコンやってるのを眺めてたりホークスと横浜のトレードに衝撃を受けていたり(しかも今日公式に発表されたトレード、メンツが変わってたし)してました。

    今回やったこと

    今回はお絵かきのアプリを作りました。
    ただお絵かきするだけじゃつまらないので、
    お絵描きの履歴を取っておいて速度まで再現するものを
    CakePHPとJavasciptで作成しました。

    具体的に何をしたかというと
    ・canvasを利用して絵を描きつつ、mousemove中のマウスの座標や色、線の太さ、時刻を取得。
    ・絵を描き終わったタイミングでAjaxでデータを送信して保存。
    ・保存したデータを利用して、SetTimeoutを使ってcanvasで描写。

    なんてことをやってました。

    え?PHPがどこにあるのかって?
    saveとかfindとか使ったってば!
    PHPmatsuriの間一つもPHPに関してググらなかったけど!

    因みにmousemoveでとれる座標はすべて取得しているので1分くらい描き続けると保存のAjaxが30秒くらいかかります・・・。
    (まぁVM使って動かしてたんで実際にやればもっと速くなるとは思いますが・・・。)

    ちなみにちょっと公開する場所とかないのでお見せできないのが残念です。

    ついでに言うと発表はダダすべりしました・・・。

    感想

    ネタは2週間くらい前から考えてたんですが、思いついたのは当日。
    当日になって「エイヤ」でやっても意外となんとかなるものだなと思ってしまいました。

    発表は失敗しましたが(一説にはマイクが入ってなかったとかなんとか・・・)、
    作ったものを評価してくれたみたいで本とシャツをいただけました!
    ありがとうございます!

    前回は結構セッションをたくさん聞いたので、今回はコーディングをメインに参加しました。
    やっぱりあの雰囲気でコードを書くのはとても楽しかったです!

    何か次回は北海道とかいう宣言が何かなされていたので次回は北海道なのでしょう(笑)

    次回も楽しみにしておきます!
    後結局のところ私はFusicの変態枠なのでしょうか・・・

      はてなブックマーク - PHP Matsuri 2011に参加して得たこと(3/4)
      このエントリーをはてなブックマークに追加

      3区担当の杉本です。
      PHP Matsuri
      でのハッカソンは10/16に終わりましたが、弊社ではまだマラソンが続いています。

      「ブログを書くまでが”Matsuri”」

      ※リレーブログ形式になったのは初日の誰かさんのせいですね。

      PHP Matsuriについて

      今回、初めてPHP Matsuriに参加しました。また、ハッカソンというのも初めての経験でした。
      コアデベロッパーの方やお世話になっているライブラリの開発者の方にお会いできるのを楽しみにしていました。

      Matsuriでは過ごし方を手探りしながら、初日は講演とワークショップに参加して、日付が変わったところから開発を始めました。
      ただ、もう少しいろんな方とお話しすればよかったなと今は思っています。

      デモ大会での発表について

      ハッカソンでは「CakePHPのbakeで確認画面(添付画像付き)含めたソースを楽して一括生成する」というテーマで参加しました。

      弊社ではCMSや業務系システムなどの案件が多く、「確認画面(添付画像付き)」という要件も少なくありません。
      これが結構面倒な処理になるのですが、「TransitionComponent(hiromi2424さん)」と「FilebinderPlugin」を使うことでかなり簡単に実装ができるようになりました。ほんと感謝感謝ですm(_ _)m
      それぞれのライブラリの使い方については割愛させていただきますが、色々な方が詳しく解説されていますので是非調べてみてください。
      ※弊社ブログでも過去にTransitionComponentについての記事が書かれています。

      ただ、それでも案件毎に、モデル毎に同じ処理を書くのが面倒になってきました。

      「もっと楽に、簡単に、ミスがないように」

      実装するために、確認画面ありのCRUDをbakeを使ってソースを生成したいと思うようになりました。

      そこで、CakePHP1.3+から導入されたTemplatesを使って、コアのbakeをいじらず、実装することにしました。
      今回は即実践投入を考えて、まずはCakePHP1.3で開発。

      CakePHP Templatesについて

      Templatesはcakeディレクトリにあるtemplates/default一式をappにコピーして作っていきます。
      Controller/Modelについてはソースを見れば、修正は簡単でしたが、
      課題はCRUDの4ファイル以外のctpファイルをどう生成するか、でした。

      Matsuriに参加するまではコアのbake周りをいじらないといけないかと思っていましたが、cakephperさんに相談したところ、コアデベロッパーのグラハムさんに直接質問できる機会ができ、templatesを使って任意のctpファイルを生成するサンプルコードを教えてもらい、見事解決しました。

      ちょっと緊張しましたが、グラハムさんとお話ができたこの瞬間が一番楽しかったです。(でもやっぱり英語勉強しないといけませんね。。。)
      本当にMatsuriに参加してよかったです。

      CrudPlusPluginについて

      ブログを書きながら(思いつきで)名前を決めました。
      使い方はapp/pluginsディレクトリに置いてbakeするだけ。

      php cake/console/cake.php bake all

      該当するモデルを選ぶところはいつもと同じです。異なるのは最後にテンプレートを指定するところです。

      ---------------------------------------------------------------
      You have more than one set of templates installed.
      Please choose the template set you wish to use:
      ---------------------------------------------------------------
      1. confirm_with_file
      2. default
      Which bake theme would you like to use? (1/2)
      [1] > 1

      これでadd.ctp/edit.ctp/index.ctp/view.ctpに加えて、add_confirm.ctpも同時に生成されます。今回のハッカソンでは時間が足りず、edit_confirm.ctpまで作れませんでした。
      あと改善したいのはTransitionComponent/FilebinderPluginの存在チェックをして、なければ取得・設置できるような処理を入れたいと考えています。
      近いうちに仕上げて、GitHubで公開します。

      最後に

      今回、目標の一つにCakePHP2.0を学ぶというのを掲げていました。年内にはstableが出るだろうから年明けにはガンガン使い出すという雰囲気でしたので。
      ところが福岡に帰ってきてみると、いつの間にかリリースされているというお土産つき!
      CakePHPワークショップ中にバグを直すという(予期しない)”イベント”があったので、まるで自分が開発チームのような、一緒に2.0をリリースしたような気分に勝手になっていました。
      これはただの妄想ですが、いつも使っているフレームワークやライブラリを開発している方と直に話をすることで、さらにこのフレームワークやライブラリが好きになりました。
      これは今回得たものの中でも予想外のことでした。

      今回このような素晴らしい機会に恵まれたことに感謝しています。
      そして、PHP Matsuriのスタッフの方にはこの場を借りてお礼を言いたいと思います。本当にありがとうございました。

      さて明日は最終走者、弊社小山です。
      初日の安藤さんや吉岡さんのように、熱く”Matsuri”を語って、このリレーマラソンを締め括ってくれると思います。
      みなさん、期待しておいてください。

      それではまたどこかで。

        はてなブックマーク - PHPMatsuri参加レポート(2/4):CakePHP2.0でAndroidアプリ
        このエントリーをはてなブックマークに追加

        おひさしぶりです。
        今はWindowsPhoneがほしいFusic)櫻川です。

        さて、今回はPHP開発合宿イベントPHPMatsuriに参加してきました。

        まずはじめに

        他の方もブログに書かれていますがPHPMatsuriを表すなら
        ↓このかっこいい忍者と

        koyhogeさんの写真を使わせていただいてます。

        ↓この音楽です。
        Epic sax guy 10 hours
        忍者がバックミュージックとしてこの曲をかけ続ける中でみんな徹夜でコーディングをするカオスな空間でしたw

        ハッカソンの成果

        今回ハッカソンでやらせていただいたのは「CakePHP2.0Androidアプリ」という内容でやらせていただきました。

        CakePHP2.0bakeするとAndroidアプリ用のCRUDソースを出力する謎なPluginを作りましたw
        ※社内ではキモイといわれています。。。

        使い方

        1.どちらかでbakeをします。

        php cake.php Android.bake

        ↑実行することでネイティブなAndroid用のソース(Java)を出力します。

        php cake.php Titanium.bake

        ↑実行することでTitaniumのAndroid用ソース(Javascript)を出力します。

        2.ビルドします。

        Javaの場合はeclipseで、Titaniumの場合はTitanium Studioでビルドします。

        3.実行します。
        AndroidアプリのCRUD完成!

        結果

        結果「全ての作品の中で最も支持された作品を選出し表彰する。ハッカー賞(大賞)を頂きました!!!
        しかもiPad2まで頂いてしまいました!!!
        今自分は人生の中で一番輝いています。゚(゚≧□≦゚)゚。
        自分に投票して頂いた皆様本当にありがとうございます!!

        ソースコードなのですが現在リファクタリング中ですので完了次第githubで公開させていただきます。

        最後に

        このような楽しい祭りを開いて頂いた運営のみなさま本当にありがとうございました。
        そしてお疲れ様でした!

        来年も絶対参加します!

        それでは明日の3番手杉本にバトンタッチです。