仕事

とりあえず

とりあえず全部。とりあえず全部やる。

ひたすらプログラム書いて疲れた…。

単語

distributer → distributor

不等号

SQLで不等号は「<>」
ついつい「!=」などと書いてしまうのは、経験か。
そういえばBASICは「<>」が不等号だったな。「/=」ってのがあったが、なんだったっけ?と思い出せばVHDLだった。*1

*1:あんまり使わない気もするが

eAccelerator 0.9.5 その後

eAcceleratorを導入したもパフォーマンスが全く上がらず謎だったのだが、今朝謎が判明。
php.iniの記述のパラメータが足りないという初歩的なミスでした。

eaccelerator.keys = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content = "shm_and_disk"

上の3行が抜けていた。何故、抜かして記述してしまったかそちらの方が謎。
キャッシュする際のキーやセッション、中身をどの様に保管するかを記述していないのだからパフォーマンスが上がるはずがない。
上記の記述の場合、共有メモリとディスクに夫々がキャッシュされる。
記述後、Apacheを再起動して設定を有効にする。
閲覧してみるとパフォーマンスが向上していることをささやかに実感。

あと、eAcceleratorに付属しているcontorol.phpで実際にキャッシュが効いているPHPのスクリプトの一覧や統計情報が見れるが、これもphp.iniのeAcceleratorの設定に、

eaccelerator.allowed_admin_path = "(control.phpが置いてあるURL)"

としないとスクリプトの一覧が表示されないので注意。

それっぽく

画面遷移を生じない処理をさせるwebアプリで以下の様なことをやってみた。

  1. ファイルのダウンロードの様な画面遷移の無い処理をするボタンをクリック
  2. その処理が実行か可能かをAjaxで問い合わせ、JSONで応答
  3. 上で得られた応答をJavaScriptでevalで評価、値を判定して処理を実行してよい場合はJavaScriptでフォワード。問題があれば、ダイアログ表示。

それっぽく書いてみたら、それっぽく出来た。*1
ただ、それっぽくのままではいけないのだが、正攻法なやり方はどうなのだろうか?

*1:JavaScriptで文字連結を '.' でしようとしていたり、PHPで文字連結を '+' でしようとしていたのは内緒だ

JavaScript

失敗。
何をしてるんだか。やっぱり休みぼけ。下の様な感じで書いていた。
下の様に書いてfooを for...in したら意図しないものまでトレースされてしまいます...。

var foo;
function foo(key, value)
{
foo[key] = value
}
function trace()
{
for(var hoge in foo){
alert(foo[hoge]);
}
}

早く気づけず。愚かであった。

正月ぼけ

かなり重傷。また週末連休で解消しそうにないなぁ。

  • formにname属性しか書いていないのに prototype.js の $('foo') で値を取りにいこうとしていた。
    • ちなみにformのname属性はXHTML1.0では非推奨、XHTML1.1では廃止だそうだ。
  • コーヒーの分量を間違えた