PHP in Fukuoka 第13回勉強会

を開催します。

日時

2009/02/27 (金) 19:00
場所

AIP Cafe (地図)
内容

題名
スイーツ(笑)がハモってみた
スピーカー
@debility
内容
cakePHP使いが突如symfonyの世界に放り込まれたお話です。両フレームワークの比較がメインになる(予定)。脱線するかもしないかも。

題名
ZF on CI
スピーカー
@ecogrammer
内容
題名のとおりやっぱzend frameworkはライブラry)なので、codeigniter上でZFを使った何かになる予定。

http://php.fww.cc/archives/22

年明けから停滞してますが、フレームワークを作成中なのでこういったお話はすごく聞きたかった。楽しみ!
もちろん、懇親会もやります。あと、開催場所であるAIP Cafeは15名くらいで一杯になると思うので参加希望の方はお早めにお願いします。
GoogleGroupで参加を受け付けています。

CakePHP勉強会@福岡

PostgreSQL勉強会@九州と合同開催となっているようです。PHP Framework の中では一番利用者が多いと思われる Cake PHP の勉強会です。
id:yandodさんが来福されるので、bakerの方は必見だと思います。LTのスピーカーを募集中との事ですので「我こそは!」という方は応募されてはいかがでしょうか?

大分は今どうなっているのか?

今月、来月と大分でこんな感じのIT系イベントが開催されます。

すごく素朴な疑問なんですが…。
「なんで大分なん?」
OSCは福岡でも開催されましたが、セキュリティ&プログラミングキャンプ・キャラバンは九州のなかでは唯一大分で開催されます。もしかしたら大分で今面白いことが起きてるのかなぁ。そうだとしたら大分出身の僕は嬉しいぞ、という感じです。
確か2〜3年くらい前でしょうか、当時転職活動中だった僕はここ福岡、そして大分で自分に合った会社を探していました。僕は生まれ育った大分が好きだし長男ということもあって、このタイミングで大分に帰ることも視野に入れていました。しかし、大分で同じ業界で活躍している友人から、あまり明るい話は聞けず、また求人募集している会社が福岡に比べ極端に少なかったため大分での転職を諦め、紆余曲折を経て今はフリーランスプログラマとしてなんとかご飯を食べています。
まぁ、僕の暗い話はおいといて今大分はどうなっているんでしょう? 面白いことが起きてるのかな? お詳しい方はコメント欄やメールとかで教えて下さると嬉しいです。
今大分はどうなってるのか? それは僕が見て聞いて触れてこないとわからないように思えるので2日目だけですが、OSC2009 Oitaに遊びに行きます。
参加される方が僕のブログを呼んでいることは考え辛いのですが、もしいらっしゃいましたら、よろしくお願いします。

2月の勉強会

codecheck.in発。趣旨はそのまんまテキストエディタの勉強会です。僕は使っていないのですがVim,Emacsは結構すごいらしいので楽しみです。IDE大好きっこの僕はNetBeansでのPHP開発についてLTします。エディタ単体としてみてもNetBeansはそれほど悪くないよ、と。IDEとしてみるともっとすごいよとお話をするつもり。
2/21開始時間は未定(2/4現在)。定員は20名でまだ余裕があるそうです。これ参加したい人はどうすればいいんだろ。
(追記)
参加受付はcodecheck.inのGoogleGroup上で受け付けているようです。
Google グループ

2/20 は東京でもオープンソースカンファレンス2009 Tokyo/Spring - イベント案内 | 2009-02-20 (金): エディタ/開発環境大集合が開催されるようですね。

  • PHP in Fukuoka Vol.13

2/27 19:00 AIP Cafe で行う予定です。だいたい21:00くらいまで。まだ詳しいことは決まっていませんがZendFrameworkとsymfonyのお話になりそうです。内容が確定したらちゃんとアナウンスします。
今月も楽しくなりそうです。

Webデベロッパの祭典+ちょっと新年会気分で。@福岡に行ってきました

に行ってきました。ブログを書くまでがイベントなので、つらつらと感想などを。
他の方のレポートはWebデベロッパの祭典+ちょっと新年会気分で。@福岡レポートまとめ - ナカオ日記−フリーランスの轍にまとまっています。こういったまとめがあると助かりますね。
では僕が参加したセッションの雑感です。

日ごろからアンテナは高くしておくのと、これからプログラマとして生き残っていくためにプログラミング能力以外のレイヤを押さえておくことの重要性を感じました。僕はこれからUIを含むデザインの分野を学びたいな、と思っています。
イベントが終わった後、このセッションの講師である藤井さんとラーメンをご一緒させていただきました(奢ってもらった!)。で、その席でジョン前田さんの書籍をお薦めされてました。これかな?

シンプリシティの法則
ジョン マエダ
東洋経済新報社
売り上げランキング: 17687
おすすめ度の平均: 4.5
4 伝えたいことをシンプルに伝える大切さ
5 複雑の中にあるシンプルの重要さ
4 引き算して高まる精度
5 読むのは簡単だが、まとめるのは相当の苦労
面白そうなので買ってみよう。

paperboy&co.の開発現場の実際。奇をてらった手法ではないけども徹底されていることが成功している秘訣なのかなぁと思いました。僕自身今まで経験したプロジェクトでwiki等を導入して情報共有しようぜ!みたいなことをやったことがありますが、まるっきり成功しなかったので。wikiなのに書いてるの僕だけ、みたいな。
後半はpaperboy&co.で採用している ZendFrameworkの入門的な内容。もうちょっと内容を深くしてPHP in Fukuokaで喋っていただけませんでしょうか!

技術的なお話を期待していたのですが、そうではなかったので若干しょんぼりしました。楽天でのキャリアパス、福岡テックセンターの紹介等。エンジニアを大事にしてると同時にエンジニアに誠実さを求める会社。スキルがあってもわがままな人はいらないという趣旨の発言をされてました。
最後に薬事法改正のお話があってちょっと笑ってしまいました。でもマジメな話、個人的には今回の改正は一消費者として困るので署名しました。

パネルディスカッション。今回一番楽しみしてしていました。
これは面白かった。藤井さんと万野さんが笑いをとってたなぁ。印象的だったのが福岡はコミュニティ活動が全国的にみても盛んだということ。札幌は2つしかない、という話を聞いてなんでだろ?と思ったり。
あと、きしださんの発言で「福岡の勉強会の内容は東京に比べて遅れている」というのは僕も自覚はしていて、どうにかしなきゃいかんなぁと思う反面、来てくれる人がそういうものを求めているのかどうか、ということも考えたりとかして「うーん」ってなったりします。
最近色々考えて体が動かなくなってて「勉強会やるやる」言っててやれてないので、とりあえず動いてみようと。うまく行かなかったらまた考えることにします。
(追記)
2/27(金) 19:00 AIP Cafe で勉強会をやろうと思います。
(さらに追記)
↑はPHP勉強会です。

PHPで同じようなのを作ってみた

前のエントリPHP 版を作ってみようと思ったら出来なかった。
ReflectionProperty#setAccessibleは5.3.0以降なのね。MoteGramのActionクラスのフィールドはpublicフィールド推奨だなぁ。
private/protected なプロパティに対して行うとReflectionExceptionをthrowするので握り潰してます。例外処理のポリシーも考えておかないとなぁ。

<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ReflectionUtil
 *
 * @author devworks
 */
class ReflectionUtil {
    public static function getClass($obj) {
        $name = get_class($obj);
        return new ReflectionClass($name);
    }

    public static function getProperty($obj, $name) {
        $clazz = self::getClass($obj);
        return $clazz -> getProperty($name);
    }
}
?>
<?php
require_once 'ReflectionUtil.php';
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of FeildUtil
 *
 * @author devworks
 */
class PropertyUtil {
    public static function get($obj, $name) {
        if ($obj === null || ($name === null || strlen($name) === 0) ) {
            return null;
        }
        $property = ReflectionUtil::getProperty($obj, $name);
        try {
            return $property -> getValue($obj);
        } catch (ReflectionException $e) {
            return null;
        }

    }

    public static function set($obj, $name, $value) {
        if ($obj === null || ($name === null || strlen($name) === 0) ) {
            return;
        }
        $property = ReflectionUtil::getProperty($obj, $name);
        try {
            $property -> setValue($obj, $value);
        } catch (ReflectionException $e) {
            return;
        }
    }
}
?>