こもろぐ @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

広告:本ブログで紹介している書籍等商品の紹介でAmazonアソシエイトを利用していることがあります。

Mac で Hudson を動かす

cakephpアプリケーションで継続的インテグレーションしたい、という目的。
Hudsonはhudsonのサイトからダウンロードしたhudson.warをMacアプリケーション化した。

http://d.hatena.ne.jp/kaorun55/20100327/1269618599
http://blogs.sun.com/okazaki/entry/hudson%E3%82%92mac%E3%81%AE%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%81%AB

http://www.ryuzee.com/contents/blog/3473

ほとんどの設定はすんなり通ったが、phingの実行に失敗する。システム情報をチェックしてみると、/opt/local/bin にPATHが通ってないようだ。(Hudson, Java以外のツールphp, phing, phpunitMacPortsでインストールしている)

このPATHの設定にかなりハマった。たぶんMacアプリケーション化したのがいばらの道だったのだろう。Hudsonの設定の環境変数をためしたり、.profileを見直したが、なしのつぶて。最終的に /Application/Hudson.app/Contents/Info.plist に次の行を足すことでHudson実行時の環境変数を設定できました。

    <key>LSEnvironment</key>
    <dict>
        <key>PATH</key>
        <string>/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>

追加したあとは、キャッシュされた設定をクリアするために、Hudson.app を一度どこかに移動しよう。(参考: http://blogger.splhack.org/2007/03/os-x.html )

テストケースが1つもない状態だとテストは失敗になる。テストケースを書くとテスト実行数や成功数がHudsonから参照できるようになった。


まとめ

build.xml以外のほとんどの設定がブラウザでできるのはすごい楽ですね!

追記:NetBeansのHudsonサポート

NetBeans からジョブを実行できたり、失敗の通知を表示できたりする。

いいね

Re: CakePHPで複数語句のlike検索を行う « Php « Prog « Laddy in

一応検証してみたのでメモ
リンク先の記事の方法でうまくいく/うまくいかない理由がわからなかったので。

SQL データ構造+サンプルデータ

CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `body` text NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--
-- テーブルのデータをダンプしています `posts`
--

INSERT INTO `posts` (`id`, `body`, `created`, `modified`) VALUES
(1, 'ほげら\r\nぴよぴよ', '2010-11-18 01:50:37', '2010-11-18 01:50:40'),
(2, 'ほげほげ\r\nhoge\r\nfuga\r\npiyo', '2010-11-18 01:50:58', '2010-11-18 01:51:00');

うまくいく方法 id=2を取り出す (CakePHPで複数語句のlike検索を行う « Php « Prog « Laddy inの「できそうでできないその2」)

<?php
class HomeController extends AppController {
    var $uses = array(
        'Post',
    );

    function posts(){
        $keys[0] = array('body LIKE' => '%hoge%');
        $keys[1] = array('body LIKE' => '%ほげ%');

        $params = array(
            'conditions' => array(
                'and' => array(
                    $keys
                ),
            ),
        );
        $posts = $this->Post->find('all', $params);
        debug($posts);
    }
}

うまくいかない方法 (違う部分だけ抜粋) (CakePHPで複数語句のlike検索を行う « Php « Prog « Laddy in の「2010/11/22 追記」)

<?php
        $params = array(
            'conditions' => array(
                'and' => array(
                    "body like" => "%hoge%",
                    "body like" => "%ほげ%",
                ),
            ),
        );

「"body like" => "%hoge%",」が消えるので、id=1も取り出されてしまう

この結果が当然だと思っていますが…。

PHP Matsuriに参加しました & 成果物を公開!

去る10月2, 3日に晴海グランドホテルで開催された、泊まり込みのhackathonイベント・PHP Matsuri に参加しました。

こういった開発合宿系のイベントに参加するのは初めてだったので、行く前はドキドキでしたし、開発のネタを思いついたのも前日でした。

ハックスペースでずっと開発してもよし、ずっと講演を聞いていてもよし

イベント中は大きな一つの会議室のなかで、ハックスペース(テーブル+電源+無線LAN)をずっと使うことができました。講演スペースでは22時すぎまでずっと何かしらの講演がおこなわれており(タイムテーブル » PHP Matsuri)、海外からのゲストの話を聞くことも出来ました。講演の内容は大画面テレビを通じてハックスペースでも見ることができ、途中から見ることもできました。

この自由に参加できる感じがとてもよくて、あとまわりはみんなPHPユーザーで思う存分技術トークができる夢のような環境がそこにはありました。

僕もhackathonでテーマを決めて、デモ発表して、とても楽しい時間を過ごすことができました。来年開催されるなら絶対参加したいですね。

僕のhackathon・テーマ 「CakePHPデバッグレベルを簡単に切り替えたい!」

CakePHP では、開発時のデバッグを簡単にするためにデバッグレベルの設定ができます。通常core.phpで設定するようになっています。http://book.cakephp.org/ja/view/412/write

しかし、ソースコードの書き換えを伴うため、頻繁に切り替えたいときには不便です。そこでなんとかブラウザからこのデバッグレベルの切り替えができないか、と考えました。
Firefoxのステータスバーにボタンを付けて、クリックするだけでON/OFFが切り替えられると便利だよね、と思い、Firefox拡張機能を実装することにしました。


基本的な機能は3ヶ月くらい前につくっていて、デバッグレベルを0←→2 で切り替えることはできていました。当日は、右クリックからレベルを切り替えたり、タブ切り替え時の処理を追加するなどの部分を作り込みました。
あと、デバッグレベル0のときにアイコンがグレーになる部分を作ったりしていました(笑)なので、CakePHPのコードは実はコンポーネントだけだったりします。

なんとデモの発表で、CakePHP賞 大賞をいただきました!

デバッグレベルをFirefoxから切り替えられるだけの内容だったので、デモの時間もあまり使いませんでした。(2分くらい?)
デモ(の内容)がシンプルだったのがウケたのか、CakePHPを使ったハックの中でもっとも高評価だったものに送られるCakePHP賞 大賞をいただくことができました。

成果物のCakeDebugHelper を公開します

xpi形式にパッケージングすることがどうしてもできなかったので公開を控えていましたが、本日やっとできましたので、githubで公開します。

皆さん、使っていただいて、ご感想・ご意見などいただけるとうれしいです。

拡張機能を作るにあたって参考にした資料

ロジクール パフォーマンス マウス M950

LOGICOOL ワイヤレス レーザー式 10ボタン? M950

LOGICOOL ワイヤレス レーザー式 10ボタン? M950

買った。いままでVX Revolutionを2個持っていたのでLogicoolで3つめのマウスだ。
付属の電池がEneloopで、USBで充電可。
WindowsでもMacのExposeと同じようなことができるらしい。
表面のざらざら感もよい。
数日使ってよかったら超おすすめするかもしれません。

WEB+DB PRESS Vol.56

WEB+DB PRESS Vol.56

WEB+DB PRESS Vol.56