Archive for the ‘php’ Category

    はてなブックマーク - Fusic Advent Calendar 2010開始します
    このエントリーをはてなブックマークに追加

    今日はお湯割りを呑もうかなと思っている小山です。

    今年も技術系Advent Calendarの季節がやってきましたね。
    「技術系Advent Calendarって何?」という方はこちらをどうぞ。

    PerlRuby、そしてEmacsなどいろいろあります。
    (CakePHPも行うそうです)

    どこの会社でも同じでしょうが、弊社Fusicでもご多分にもれず「師走」なわけですが(想像にお任せいたします)、「なぜか」FusicでもAdvent Calendarをやってみようということになりました。こういうアグレッシブにつっこんでいくのはほんとFusicらしいです。

    参加者

    参加者の呼びかけの時点は任意だったのですが、話の流れというか勢いでなんと社長、副社長を含む技術チーム全員が参加することに。
    「勢い」って怖いです。
    普段Blogに出てこないメンバーも参加するなかなか面白い25日になりそうです。

    ルール

    技術チーム全員が同じ確率で、当日朝にルーレットスクリプトを実行して、その日の担当者を決定するというかなり怖いルールになりました。

    1回当たった人は確率が1/2になりますが、確率が0になることはありません。
    連続して当たった人の顔が目に浮かびます。

    社長、副社長はレアということで確率を下げています。(が、まあ、25日付近まで当たっていなかったら「アタックチャンス」とでも称して確率を10倍にでもします)

    というわけで

    明日12月1日から毎日更新されるブログになると思いますので、お楽しみに!

      はてなブックマーク - PHPMatsuri参加レポート(3/3) Manual Plugin
      このエントリーをはてなブックマークに追加

      いまさらながらPHP Matsuriの最終レポートです。
      自分のMatsuriはまだ終わっていません。小山です。

      ハッカソンターゲット

      さて、JIREI NIGHTも終わって自分が開発しようと思ったのが、「セルフドキュメントプラグイン」でした。

      今までCakePHPプロジェクト自身の「DBスキーマを図で表すプラグイン」や「Gitコミットログを参照するプラグイン」を作ってきたのですが
      (最近は「自身のViewファイルを表示するプラグイン」なども作りました)、どうやら「セルフ何とか」が好きみたいです。
      基本は開発のサポートですね。

      で、今回のターゲットですが、最近は案件で「マニュアルはHTMLでもいい。むしろHTMLのほうが使いやすい」と思うこともあって、「セルフマニュアル」になりました。

      マニュアルといえば「説明文章」と「スナップショット」→説明文章なんてただのテキストだから面白くない→じゃあスナップショット→「システムでシステム自身のスナップショットを撮る」

      というのが今回の実装ターゲットになりました。後のWiki機能なんてのは飾りです。

      実装

      「システムでシステムのスナップショットなんて撮れるのか」ということですが、サーバもPCです(自分のメイン開発機はUbuntuサーバです)。当然ブラウザだって動きます。「サーバ内でブラウザ動かせばなんとかなるでしょ」ということで、「CakePHPプラグイン内でブラウザを叩く」という方向性に決まりました。

      ところがいろいろ調査をしているうちに面白い試みをしているプロジェクトをみつけたので、途中から「CakePHPプラグイン内にブラウザを内蔵する」に若干暴挙にみえる方向に転換をしました。(でも上のプロジェクトを見たらそうしたくなりますよね?ね?)

      結果として、見事に「システムからシステムのスナップショットを撮る」ということに成功
      PHP Matsuriの動画にたまたま自分の開発時点のデモが写っていました(PHPMatsuriの動画まとめの2つ目の3:10頃)。

      ユニットホスティング

      さらにここからユニットホスティングにデモ環境を構築しました。
      もともとは特徴的な利用の仕方はできないと思っていたので、ユニットホスティングを使う予定はなかったのですが、VMで作っていたものをデモとして見せにくいことに途中から気づいて、急遽構築を開始しました。
      そんな「急遽」だったのですが、これがまた使いやすかったです。
      サーバ環境構築まで本当にわずかな時間しか必要なく、さらにグローバルIPが付与することも可能。管理インタフェースも非常に使いやすい。

      使ってみて、業務用途で即浮かんだのが「クライアントへのデモ」の際の一時的サーバでした。
      そういう形で社内に浸透させて、将来的には一時的なサーバ追加などにの「クラウドらしい用途」など、夢が広がります。

      そんなこんなでデモ環境ができたところで、だいたい寝たのが深夜5時過ぎでした。

      結果とまとめ

      LTのときの発表資料は以下です。

      (※現在このManual Pluginはスナップショット機能だけを切り出してSnapshot Pluginとして機能を整備中ですが、近いうちにリリースできればなと思っています(誰得な機能ですがww))

      結果、ユニットホスティング賞をいただきました!
      投票してくださった皆さんありがとうございました!

      PHPMatsuriで「開発者で集まって集中しての開発」というのは本当にいい経験でした。
      確実に濃い時間が流れて、「精神と時の部屋」のような成長感がありました。
      このMatsuriのアイデアを実現に導いたスタッフの方々には本当に脱帽です(自分は途中からの手伝い程度でした)。

      また是非こんなイベントが開催されることを願っています。
      本当にどうもありがとうございました!

        はてなブックマーク - PHPMatsuri参加レポート(2/3)
        このエントリーをはてなブックマークに追加

        はじめまして、Fusicエンジニア)櫻川です。
        今回がブログ初投稿になります。よろしくお願いします。

        時間がたつのは速く、PHPMatsuriから1か月が経過しようとしています。
        「いい加減早くPHPMatsuriのブログを書け」と弊社の小山が怒り始めましたので、
        今回は遅くなりましたが、10/2、10/3に参加したPHPMatsuriの参加レポートを書かせていただきます。

        Lithium ワークショップ

        今回自分のハックはLithiumを使って何かを作ろうと決めていたので、
        一番の目的がこれでした。

        Lithium ワークショップ!!

        CakePHP使いの自分としてはLithiumは非常に気になります。
        ここでLithiumを覚えてその後ハック開始!
        予定はばっちりです。

        Lithium ワークショップが開始され流れにそって「li3コマンド」を実行。
        ※li3コマンドは、CakePHPのbakeコマンドのようなものです。

        li3 create Photos 実行
        PHP Fatal error: Class name must be a valid object or a string

        エラーです。
        LithiumコアデベロッパーのJoëlに助けを求めたのですが、
        15分程度Lithiumのデバッグをした後に
        Joëlに流調な日本語で「ごめんなさい。」と謝られました。
        バグ修正できませんでした。。。

        Lithiumワークショプ失敗です。
        予定は予定通りに行かないものです。

        ちなみにJoëlは右から2番目です。

        あきらめずにLithiumでハック

        僕は負けません!
        li3コマンドが実行できないなら0からソースを書けばいい。
        わからないなら、Lithiumのソースを読めばいい。
        ソース読めの精神でハック開始です。

        今回、自分のハックは
        「PHPMatsuriのサイトにある参加者全員のTwitter一覧をScrapingでTwitter IDを取得して一気にフォローする」
        というものにしました。

        CakePHPと比較して、Lithiumを触った感じはnamespace等PHP5.3の新機能がたくさん使われてはいるが、
        $this->redirect(”);$this->render();
        いったCakePHPお馴染みのメソッド等もたくさんあるので、ストレスなくLithiumに入っていけるのではと感じました。

        成果物発表

        成果物デモ発表中に会場にいる全員をフォローしようと考えていたので発表方法は決まっていたのですが、問題が自分のハックはスクレイピングしてフォローするという仕様上、1回しか実行できないということです。
        ※全員フォローして、ごめんなさい言いながら全員アンフォローを繰り返せばテスト可能ですが。。。

        というわけでテストなしのぶっつけ本番デモで発表しました。
        ※さすがに単体テストはクリア済みです。

        結果、デモは何の問題もなく全員をフォローすることが出来たのですが、
        デモを実行して最初に「フォローされてる」という声を聞くまでは非常にドキドキでした。

        結果発表

        自分の発表が
        Lithium賞 次点
        という評価を受けました!!
        自分に投票してくれたみなさんありがとうございます!
        運営のみなさんありがとうございます!
        心から感謝です!!

        ニフティクラウド無料利用券 + iTunes Music Gift Cardを頂きました。

        PHPMatsuri参加レポート 第3回へ続きます。