くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

CakePHPでファイルをEUCで

2008-06-17 22:24:54 | SEまわり
 CakePHPの各種ファイルをEUCで編集したくて、そのようにすると、ブラウザで文字化けする。

 勝手にcharset=utf-8ってmetaタグに書かれているため。


 ビューにて、

 
$html->charset('EUC-JP');


って書いてあげると、charset=EUC-JPが出力されるんだけど、最初にcharset=utf-8って書かれているため、ブラウザではそっちが優先されるのか、文字化けしたまま。

 こんなHTMLソースになってる。

 
<html>
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
  <body>
   <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
  </body>
 </html>



ブラウザのエンコーディング設定をEUCに変えると、ちゃんと表示される。



 リファレンスには、cake/libs配下のファイルは原則としていじらないように。って書かれているけど、cake/libs/view/helpers/html.php のcharsetメソッドをいじる。

 
function charset($charset = null, $return = false) {
  if (is_null($charset)) {
    //$charset = 'utf-8';
    $charset = 'EUC-JP';
  }
  return $this->output(sprintf($this->tags['charset'], $charset), $return);
 }



 これでちゃんとEUCで表示されるようになった(HTML上のheadタグ内のcharset定義がEUC-JPに変わった)。 ビューで$html->charset()をコールするのを消してすっきり。

CakePHPとmod_rewriteの関係

2008-06-16 22:35:02 | SEまわり
CakePHPでも、やっぱりmod_rewrite関係でハマる…。


DocumentRoot直下にCakePHP一式を配置する場合は良いが、/sample/配下のように、サブディレクトリを掘って、その下にCakePHPとスクリプト群を配置する場合は、注意が必要。

CakePHPのチュートリアルで気をつけたいこと にある通り、ApacheのRewriteルールの関係で、404エラー(File Not Found)が出て作業がちっとも進まなくなってしまう。

Apacheのhttpd.confのRewriteモジュールの設定は次のようにしている。これは、Zend Frameworkを使うためにしている設定。

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php


これだけだと、CakePHPのチュートリアルをサブディレクトリに配置したケースでは動いてくれない。

httpd.confで、.htaccessをOverrideできるように設定しておく。オプションはちゃんと理解してから書くこと。 適当にやると、適当にやられます。

AllowOverride AuthConfig FileInfo Indexes Limit


んで、各CakePHPディレクトリの.htaccessを次のように定義。

【/sample/.htaccess】
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /sample/
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>


【/sample/app/.htaccess】
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /sample/app/
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>


【/sample/app/webroot/.htaccess】
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /sample/app/webroot/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>



これで、動くようになるです。

次はCakePHP

2008-06-16 20:22:00 | SEまわり
CakePHP使ってみてる…


どうして、いろんなフレームワークは、DocumentRoot直下で動かすのを前提で作られてるんだろう… rewriteで余計な苦労をさせられる…


 CakePHP自体は、フレームワークなりのクセはあるけど、軽量でよさそうな感じ。
 少なくとも、理解するのにZend FrameworkSymphonyよりは時間が短いみたい。



 なんか、いろいろ見てると、小規模開発にはMVCモデルのフレームワークを使うよりも、スクラッチからちょこちょこ書いて、サニタイジングやバリデーションの部分だけPEARからクラスライブラリ持ってきて使う方が効率が良さそうな気がしてきた。

大分の鶏料理

2008-06-16 13:15:12 | 雑記
小ネタ。

スーパーの総菜コーナーを見ると、

 ・とり天
 ・唐揚げ
 ・チキン南蛮



鶏の揚げ物だけで3種類もある


珍しいんじゃないかと思った。



ところで、とり善おいしかったので、また行きましょう>Sさん

山で地震

2008-06-16 10:41:42 | 山と旅
●震源近くの山間部、住民・登山者の孤立相次ぐ
http://www.asahi.com/national/update/0615/TKY200806140338.html


 たとえハイキングコースであっても、こんなケースがあり得るんだから、最低限の装備はしてないといけないですね。

 経験的に、

  ・ヘッドランプ
  ・巻紙(トイレットペーパー)
  ・非常食1日分
  ・ナイフ
  ・ライター

だけは、山と名の付くいかなるルートであっても持って行くようにしている。
 他にもいくつか小物があるが、100円ショップで買ったタッパーに全部つめてるので、タッパーとランプと巻紙だけ持ってれば事足りる。



 しかし、冬山で斜面トラバースなんかやってるときに地震があったりって考えると、恐ろしい。

ソースコード管理

2008-06-15 22:17:08 | SEまわり
 ソース管理にはCVSを使っている。
 その前はRCSだった。

 emacsから操作できるのも気に入ってたし、Windows上のeclipseからも使えるのも便利だった。 さらに、viewcvsなんてのもあるから、何かと管理に使ってた。


 ただ、「ファイル名を変更すると履歴を追えなくなる/追うのが大変」とか「バイナリファイルの管理がちょっと…」「空ディレクトリを持ってくれない」「ディレクトリのリネームをすると…」などの扱いにくさもあって、気をつけて使っていた


 そこで、ここらへんの不満を解決してくれそうなSubversionに手を出してみることにした。
 分散型のSCM(Source Code Management)ツールもあって、Software Design 2008/4月号に紹介されてたGitなんか興味はあったけど、使う規模を考えると、自分ちにしかリポジトリおかないんだから、集中型で十分と判断。



 Subversionの使い方はCVSに比べて、特に難しい点はないと思った。

 たしかにリネームしても追いかけてくれるし、ディレクトリもちゃんと扱ってくれるようだ。 便利。

 eclipseからも使えるので、CVSから移行を進めてみようかと思う。





 SCMで気になったところがひとつ。

 ディレクトリをまたいだ管理が出来るツールはないものだろうか

 PHPでのツール作成は通常スクラッチから書いてて、それでたいていの用は足りてしまうのだが、たまにZend Frameworkなどのフレームワークを使うことがある。
 コレ使うと設計時の資料が分かりやすくなると言う副作用があって、あとで見たときにすぐ理解できるというメリットがあるんだけど、ディレクトリ構造が問題。

 --+--/htdocs
  |
  +--/webapps --+-- /Controllers
                +-- /Models
                +-- /Views


 なんて構造をしてる時に、/htdocsの下にはhogesample.htmlとかアイコン/イメージ類を格納して、プログラムコードはすべてwebappsの下に格納する。

 これをCVSで管理しようとすると、2つに分けて管理するか、/htdocsの親からまとめて1個で管理するしかない。
 /htdocsの下には写真もたくさんあるから、ただでさえバイナリの苦手なCVSでそんなものを管理させたくない。 だから、2つに分けて管理となる。
 これは不便。


 こういう構造での開発にSCMを使ってる人は、どうやって運用してるのかなあ。

2GB microSDが799円…

2008-06-14 23:20:43 | モノ
【メモリー価格速報】2GBのmicroSDが700円台に! サンディスクのExtreme IVも大特価 - 日経トレンディネット
 特に今週目を引いたのが、あきばお~零で見つけた2GB版のmicroSDカードのセール品。ノーブランド扱いのバルク品だが、799円という価格が魅力。



 ここまで下がると、なぜか勘弁してくれ、もう下がらなくていいよと言う気持ちになるのはなぜだろう…

 安ければいいってものじゃないのかなあ。不思議。


 799円だったら、送料と同じくらいだすな。

 SDカードなデジカメの予備メディアとして買っておくとイイかもしれない。 アダプタは付いてないみたいだから、別途調達が必要。

大山北壁周辺の名称変更

2008-06-14 23:13:22 | 山と旅
大山:北壁の紛らわしい登山道や尾根、3カ所の名称変更 /鳥取 - 毎日jp(毎日新聞)
   夏山シーズンを迎えた国立公園・大山(1729メートル)の北壁には、紛らわしい名称の登山道や名前のない沢がある。県山岳協会と県勤労者山岳連盟、大山遭難防止協会は「遭難者の救出活動に支障が出かねない」として、3カ所の名称を変更し、3カ所の沢に名前を付けた。



そういえば、大山は冬しか行ったことがない。

冬ばっかり5回くらい行ってる。

たまには夏に行ってみようかな… うずうず…