久々のJava

久しぶりに土日が休みなので、gitの本でも読もうかと思いつつ、MacOSのアプリにDashという各種リファレンスをローカルで簡単に検索できるアプリがwindowsにも欲しいなあとか考えながら探していましたが、ありませんでした。(たぶん)
私が見るのはPHPマニュアルか、CakePHPマニュアルか、Codeigniterマニュアル、たまにjQuery、CSSくらいなものなので、google先生に聞いた方が早いと言えばそうなんですが、PHP.netは遅かったりブラジル語で表示されたりで、なんとかならんかなーと。
マニュアル自体はWindowsヘルプファイル方式と、HTMLとで落とせるんですが、検索がね。。しかもCSSが取れて素っ気ない表示。

ちょうど時間もあったので、昔JavaのSWTでwindopwsアプリを作った事があったけど、今はどうなんだろうと調べて見ると、Window Builderという更に便利な機能が追加されて、GUIでGUIがサクサク作れます。
あとはコレにSQLite使って、各種マニュアルをDBに入れて、パッと表示できるようにすれば行けるのかといじってます。

あと最近きにいってるログビューワー。
LogExpert

要はtail -fなんですが、特定の文字列に引っ掛けて色を変えたり、そこで止めたり、色々できます。

Redmine2.03へアップデート

別にアップデートする必要は全くなかったのですが、gitlabを使ってみたくて、インストールしたらruby1.9.2からだって言うので。。

今回はOSにRuby1.8.7がいるので、rbenvをbrewで入れてRuby1.9.2をインストール。
#rbenvはrubyの利用バージョンを簡単に変えたり管理できたりする便利コマンドです。

案の定、passenger-install-nginx-moduleが駄々をこねやがるので、passengerはそのままでconfでpassenger_rubyだけ1.9系に指定を変えたらアッサリ動きました。

後はredmine2をgitからcloneして、bundle installコマンド叩いて、DBとかFileをコピーして各種アップグレードコマンドを叩いて終了。
なんか途中でアップグレードコマンドの名前が変わった、くらいの話しか出ませんでした。

恐る恐る起動してみると、スンナリ動いてます。奇跡です!いやあ楽になってきたなあ。

ガントチャートは移植してないのですが、一応曜日だけは標準でも表示されるようになったみたいです。だしてよ日付。

Codeigniterはじめました

Diablo3で地獄の門が開いたと思ったら、仕事でも地獄の門が開きそうな今日この頃です。
まあ数百人月の案件なので私一人が頑張った程度でどうにかなるレベルではないのですが、気合を入れるために新型のMacbookAirを注文しました。
ただ欲しかっただけという気もしないでもないですが、OSの根っ子がUnixベースなのでWEB系の開発者にはWindows機よりMacOS Xのがサーバ環境と合わせやすいので開発がし易いのです。
#bootcampでwindowsとデュアルブートという選択肢もありますし
後は単純に軽くて性能が良くて、バッテリーがそこそこ持つというノートPCの基本ですね。

そんなこんなですが最近はCakePHPからは離れてCodeigniterで仕事をしています。
なんと言いますか、Codeigniterは骨組みは用意するから後は自分で好きにしてね、な感じです。
CakePHPは建売一戸建て的な、もう大概そろってますというイメージでしょうか。

シンプルで構造の理解は早く済みましたが、ヘルパーやライブラリ周りが弱く、CakePHPなら一瞬で出来るのに自分で作るハメになるパターンが多くて苦労しましたが、他のフレームワークを使うと両方の長所、短所が分かって非常に勉強になりました。
CakePHPに比べて縛りが少ないので、未だに自作フレームワーク以外は使わないという頑固なオッサン、もとい、生粋のプログラマーの方にもオススメできます。

ただCodeigniterは次バージョンからライセンス形態が代わり、商用利用が出来なくなりそうと年末から本家で揉めている最中です。
既に最新のリリースから9ヶ月以上バージョンも上がってないので、もう終息させて違う形に持っていくのか、内部で揉めているのか勝手な妄想がよぎります。

どちらにせよライセンス形態が不明瞭な状態で使い続ける訳にもいかず、既に製品から外している会社も出ているそうです。
2系を使い続けるにしてもPHP自体のバージョンが上がり、古いバージョンがサポートから外れ、保守限界が来た時にどうすんだという心配もでますね。
#丸ごと作り直すしかありませんが

今回はサイトの規模が大きく、アクセスの捌き方がシビアだったのでベンチで高速なCodeigniterが採用された経緯があります。
私が普段やっているような案件だと、どっちでも変わらないレベルの規模だったり、Memcacheなどのキャッシュ機構を使えば、同じじゃね?的な気もしているのですが、どうなんでしょうか。