メイン | 2010年11 月 »

31 posts from 2010年10 月

2010/10/21

奥多摩BBQ

ちょっと安めに。。意外とうまかった。

中茶屋キャンプ場です。

フリスビーとかいろいろなくしたため捜索活動。

2010/10/19

KohanaのORMについて徒然

http://gist.github.com/632600

KohanaオリジナルのORMはとってもシンプル。
シンプルすぎてそのまま使うと危険なほど。


いくつか実運用時に気になった点を修正したORMを上げてみました。


1) Column list

テーブル定義を動的にとるのがデフォルトとされています。
これは、Cakeとかでもそうだしまぁ問題ないですね。
ただ、なぜかコレがキャッシュされません。

SQL異常に多いなーと思って中見たら、
毎回show columns クエリー飛ばしているじゃありませんか。
ということでファイルに1日キャッシュ。

alterしたりしたあとはcacheディレクトリ削除すればよし。

2)Has many

デフォルトは、
$user->child->find_all();
のようにもう一回クエリを飛ばしなさいよ!ってことらしい。

Joinして絞り込みたい時もあるでしょうが。使いようだと思います。

なのでwith()を拡張して$user->with('child')でLeft joinさせます。
あまり負荷を考えるとよろしい作法ではないですが、
使いどころ次第かと思います。

3) 透過キャッシュ

せっかくrowオブジェクトを持っているのだから
レコード更新時にキャッシュ更新したり、
参照時にキャッシュからとったりは透過的にできるでしょう。

findはPKで参照している時しか対応しづらかったのでそこまでですが、
アプリ作る際に意識していればこれであらかたキャッシュは回せるかと思います。

save_with_cacheでselectしなおしているのがちょっとダサいが、
たいていの更新はもとのrow objectがloadedなので問題ないはず。

2010/10/02

間違えたーーー!!

誤操作でブログ消してしまいました。。

 

ということで、Googleのキャッシュより復旧。

時系列ごちゃごちゃだけど、あらかた戻しました。

こわやこわや。

MacとFILCOとHome/Endキー

とうとうiMacにもFILCOつないでしまいました。

で、使おうとしたんだけど、
Windows用キーボードですからいくつか障害が。
  1. 英数/かな切り替えがめんどくさい
  2. Windowsキーがコマンドキーとか意味わかんない
  3. Volume変更出来ないの不便
  4. Homeキーおすと行頭じゃなくて文書の頭に飛ぶ
最後のはキーボードかんけいないけどね。
で、いくつかソフトかったりして解消
まず、1,2,3
Wink for osXというソフトを購入
これで一般的と個人的に思うキーバインディングになった。
無変換→英数
かたかな・ひらがな→かな
ということでMacキーボードっぽい位置に。
で、4
これが一番こまった。
コーディングのときよく使う癖があるので生産性にかかわる。
日本語打てなくてもコーディングは出来るから、
コッチのほうが仕事的には致命的。
DoubleCommandっていうソフト入れました。
これは無料
いろいろ設定できるんだけど、
Home/EndキーをWindowsと同じにという設定だけした。
だがしかし、
これだけではEclipseのバインディングは変わらなかった。
なんでかなーと思ったら、Eclipseのバインディング設定が別にあったのね。
ということでググったら説明しているページ発見
  1. open the eclipse preferences pane
  2. general->keys
  3. in the filter type line start and note that there will be existing bindings when editing text.
  4. select line start type home, and ensure that the "when" field stays with Editing Text
  5. apply
  6. follow this process for select line start, line end, and select line end.
とのことで。
これでガシガシ作れます。
キータイプうるさくなりました。
同居人ごめん。

 

CakePHPとCatalyst

日々日々、
なんらかのWeb Application Framework (WAF)つかっているわけですが、
なんとなくCakePHPかCatalyst使うことが一番多いので、
言語すら違うのに比較した所感を。

まず、それぞれの概要から。

■Catalyst  - Perl

PerlのWAF代表格ですね。

http://www.catalystframework.org/

非常に柔軟な特性を持ち、カスタマイズが簡単です。
その名の通り触媒なので、設定というか一緒に使うモジュールの組み合わせで、
ありがちな処理の殆どを吸収してくれます。
専用モジュールがCPANにガスガスあがっているのが素敵

■CakePHP  - PHP

PHP版Ruby on railsですね。

http://cakephp.org/

ActiveRecordパターンという縛りを設けることで、
コーディング量を極端にへらしてくれます。

ドキュメントの豊富さが際立っている気がしますね。

とにかく楽したいときに最高です。

 

で、それぞれ仕事・プライベートで使ってますが、
なんとなく、思うところがあったり。

どちらも似たようなWAFなんですが。

一番大きく違うのは、DB関連というかModelの解釈ですかね。

CatalystはModel用ORマッパーが交換可能です。
好きなORマッパーを当て込めます。
なおかつ、ModelクラスごとにORマッパー変えられたりもします。

これがあるから、アプリレベルでのDBシェーディングなんかも表層で気を使わないですむような実装が簡単にできたり。
コアモジュールをガシガシOverrideとかしないでいいです。

CakePHPはオリジナルのORマッパーしか使えません。
でも、そのかわりにそのORマッパーのルールに従う限りめちゃくちゃ簡単です。
コード量アホかってくらい短くすみます。
なおかつなかなか直感的に使えるAPIを持っているので、
個人的にはソース綺麗になるなーなんて思っています。

Catalyst使ってもごちゃごちゃするのは自分のウデのせいですけどね。

Scaffordとか綺麗だしCakeは手抜き大好きプログラマの味方です。
Catalystはなんでも使える魔法の触媒ですが、柔軟すぎてその分コードが少し増えます。

でもCPANにある無数のモジュールを使えるので、
将来的にめんどくさい(自分で実装したくない)処理が求められそうなときは、こっちがいいかなと思います。

あと、R&D的な何するのかよく分からない自分用アプリ書くときはこれ使ってます。

毎回、アプリ作るときにどのWAF使うか悩みます。
先に言語決めろよという気もしますが。

今更だけどRailsとかも一回ちゃんと使ってみたいですね。

最近はもっぱらKohanaなんですが、
CatalystやCakeなどの歴史あるフレームワークは機能いっぱいで便利ですね。

使いどころと使い方しだいということでしょうか。 

Twibbon的なものを試してハマる

Twibbon - http://twibbon.com/

のような、Twitterアイコンになんか載せるアプリを作ろうとしてハマった。


何にはまったかというと、

update_profile_image

というTwitterAPI様が全然画像を更新しれくれないのです。


数々の先人がPHPというかPEARモジュールでハマっているようで

http://d.hatena.ne.jp/Arko/20090508/1241790310

PEARモジュールで作り始めましたが、

Services_Twitter使っても
HTTP::Request使っても
HTTP::Request2使っても

うまくいかず。

引っかかってる箇所は同じだと思うんですが、
Content-Typeと指摘しているかたも多いのでそこら辺をいじってみたりもしつつ

http://d.hatena.ne.jp/abyssluke/20090615/1245062610
これみてやっぱCurlで素直にやろうと。

PHPリコンパイルですがこれしかないですか。

で、↑のCurlのサンプルにしたがって実装できましたとさ。

TwitterAPI側のバリデーションがなんだかなという感じですが、
とりあえず実装は可能なんですねと。

 

Perl使ってたらはまらかったんだと思います。
ただ、PHPという与件のもとでのフィージビリティー確認でした。

 

Yes we can.

 

Vimをちょっと使ってみました

Vimをちょっと使ってみました

普段はEclipseとKomodoを利用しているんですが、
Perlやっている人たちの集まりに行くとだいたい皆さんVim || Emacsですね。

みんなつかっているということは便利なツールなんだろう

ということでVimを試しました。
Emacsじゃない理由はキーバインディング覚えればお客のサーバーでも使えるから

まずはvimrcに何を書くかを調べてみまして、
とりあえず▽書いてみたらいい感じ。
set autoindent
set tabstop=4
set number
syntax on
set term=builtin_linux
set ttytype=builtin_linux
colorscheme darkblue
set enc=utf-8
set fenc=utf-8
set fencs=iso-2022-jp,euc-jp,cp932

でもってPerlを書いてみたのですが、
Vim7からはコード補完もやってくれるそうですね
便利そうなので入れてみました。
けっこう大変だったけど
http://mig-ration.blogspot.com/2007/05/mac-vim71.html

で試してみました。

 

 

 

胃が痛いのですが

どーにも飲みすぎているようで

胃がシクシクしていますね。
あー無情
うまいんだからしょうがない。
ストレートね

 

 

Helloween

高校のころコピーバンドやってまして、

▼の曲なんか弾いてたんですが
Helloween - Where The Rain Grows (1994)
まだバリバリ現役だったんですね。
キャッチーになっててびっくりしました。
髪型が変わってないところがすごいけど。
Helloween - As Long As I Fall (2007)
あーラブリー

 

デジタルガジェット達

ますます買い足されたスマートフォン達。
ついでにPSP Goも買ったのでディスプレイ上マージ。

Androidについて言えば、
・HT03A
・NexusOne
・HTC Desire
・Xperia

といろいろいじりましたが、個人的にはDesireが一番好きでしたね。
Xperiaも優秀なんですが、私の小さい手には余ります。

ということで、SIMフリーDesireを購入しました。
写真上段真中がHTC直販のDesireで上段左がSoftbankのDesire。
直販の方が箱がゴージャスだった。
Xperiaはなんでか箱がでかかったですね。
Docomoの端末はおしなべて箱がでかい印象あります。
HTC Magicの時も、GoogleDeveloper'sDayで配っていた箱からくらべてずいぶんでかくなっていましたね。


話は変わってPSP Go。
不人気不人気といわれるだけあって、中古が普通のPSPと変わらないくらいの値段まで下がってきていたので衝動買い。

とりあえずバイオハザードとFF7をアーカイブスで買って遊んでます。

PSPもDSも、カセット持ち歩いたりするのが嫌なんですよね。
なくなったりするし。
ということで、PSP Go。
ただ、電池のもちがいまいっちょ。
音楽とかもマージしようかと思ったんですけど、これはiPodのままですね。


DesireにしろPSP Goにしろ、
最近充電ゲーブルがUSBで提供されるの増えてきましたね。
個人的な思いなんですけど、
USBケーブルが短すぎる!!
のですよ。

とくにPSP Goなんてパソコンの前で使うもんじゃないじゃん。
ベッドの上とかでごろごろ使いたいのに、
充電ケーブルが1メートル程度ってそれはないですよ。
いや、もっと短いか。

300円くらい高くなってもいいから考慮してもらいたいものです。