剣岳点の記

新潟IBMユーザ研究会、新春例会にて、「剣岳点の記」の木村監督の講演がありました。
矍鑠たる方で、講演会、その後の懇親会でも、マイクなしで端まで声のを響かせていました。
また、ずばずば物事を言う方で、気持ちが良かったです。

m20100204

新潟は、この日から大雪で、まさに木村監督を歓迎するかのようです。

その後、DVDを購入し、気軽にサインして頂きました。ありがとうございます。
翌日、映画を観ました。派手さはないですが、変な意味ではなく、奥底にズンと重石ができたような感じです。きっと、私の記憶に残る映画となるのでしょう。

さくらサーバー PHPアップロードのファイルサイズを増やす

さくらサーバーにて、PHPからファイルアップロードするとデフォルトの設定が8M程度なので、大きなファイルはアップロードできません。

php.iniを編集すると、大きなファイルもアップロードできます。

①さくらコントロールパネルから、PHPの編集をします。
m20091217-m1
・ルートに、php.iniが作成されます。

memory_limit = 32M
post_max_size = 32M
upload_max_filesize = 32M

②phpinfo() で確認すると、アップロードサイズが増えています。
m20091217-m2

以上です。

CakePHP ページャ pagenate

CakePHPねたです。

——————————————————————————————————————–
CakePHPのページング機能は、1.2から標準で入っているようで、特にコンポーネントを取り込む必要はないようです。これで、通常コントローラで使う分には問題ないです。

//基本的なページングの条件
$this->paginate = array(
		'limit' => 25,
        	'order' => array('User.created' => 'desc'),
		'recursive' => 1,
  		);

// Userモデルの検索条件を設定する。$hogeは、事前に何か設定されていると仮定する。
$conditions = "User.name LIKE '%{$hoge}%'";

// $this->pageneteで、find検索とほぼ同じ。(ただし、設定された整列、条件で検索)
$this->data = $this->paginate('User', $conditions);

で、ビューに下記のコードを書くと・・。

<?php echo $paginator->prev('« Previous ', null, null, array('class' => 'disabled')); ?>
<?php echo $paginator->numbers(); ?>
<?php echo $paginator->next(' Next »', null, null, array('class' => 'disabled')); ?>

こんな感じで表示されます。(それぞれ、リンクが張られます。)

« Previous
1 | 2 | 3
Next »

で、2ページ目をクリックしたとき、URLは、こんな感じで飛んでいきます。
http://~~~.~~~~~.jp/users/view/page:2

——————————————————————————————————————–

しかし、絞込み条件を、Viewから得て$hogeに設定している場合は、問題が出てきます。

こんなふうに、条件をビューから得ると、2ページ目は絞込みがされないで、全件表示されます。prevも、nextも同じ症状となります。

$hoge = $this->data['search'];

何故かというと、ページャの【1 | 2 | 3】や【prev】、【next】は、単なるリンク(a href)でしかないからです。おそらくビューでは、$this->data[‘search’];をするために、form->createして、inputでコントローラに持ってきてますよね。そんで、送信とかボタン押すでしょ。

ページャで自動的に作られる【1 | 2 | 3】や【prev】、【next】は、単なるリンクなので、これをクリックしても、コントローラーでは、$this->dataは空です。(が~ん)

リンクにこんな感じで、’users/view/’. $condition 引数を設定しようとしても、ページャが自動的にリンク作るので、そんなことは、出来ません。(が~ん、が~ん)。
——————————————————————————————————————–
多分、ページャは、絞込み条件で与えられた件数を検索し、limitで割って計算して、page:2とかでその部分を持ってきているだけです。

|------------------------|------------------------|------------------------|
|         1ページ目      |       2ページ目        |       3ページ目        |
|------------------------|------------------------|------------------------|

ですので、ページングするたびに、同じ絞込み条件を与えないと、見た目、変なページングになってしまします。
——————————————————————————————————————–
解決策は、条件をどこに保存しておくか?です。
◆解決案1: データベースに保存しておく。

でも、複数の人が同時にブラウザ操作してたら・・・、工夫が必要ですよね。

◆解決案2: セッションに保存しておく。

これが、一番、現実的な解決方法だと思われます。

下記の2つをうまく組み合わせて、絞込み条件を保存し、ページングするたびに読み出せば、うまくいくはずです。

//セッションデータを読み出す。
if ($this->Session->check('pagecond')) {
    $this->data = $this->Session->read('pagecond');
}
//セッションデータを書き出す。
$this->Session->write('pagecond', $this->data);

以上です。

Asus A8S-X へたる

4年ほど前から使っている自作PC。マザーボードは、あの暴れ馬「A8S-X」。
数ヶ月前から起動時にハードディスク見失う病が発生してましたが、なんとか騙し騙し使ってました。

しかし数日前、ついにブートせず。何度かトライして、奇跡的に起動したときに、Windowsのイベントビューアで確認したところ、disk errorの嵐・・・。

500GBを購入して、そこにOSを入れ、前のハードディスクから重要データを取り出しました。
重要データといっても、最近はレンタルサーバーにデータ保存しているので、ローカルPCではメールデータですが。

しか~し、順調に動いていたのも2日程度。また同じ症状となり、ブートせず。このマザボ、サウスブリッジが異常に熱くなるんですよね。触ると、絶対焼けどします。

サウスブリッジがディスクコントロールしてると思うので、こいつか~??へたってる?

Socket939マザーをヤフオクで探したり、今年なんとASRockから超ニッチ狙いの939マザーが出たとか・・・。でも、素直にマザー・CPU・メモリ、新しくします・・・。AMD系なら、何とか15,000円以内で何とかなるでしょう、多分。

そういえば、つい最近払った駐禁も同じ15,000円だったな~。
また、悔しさがこみ上げてきた・・・。