index

2007年 8月
      1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
  20 21 22 23 24 25 26
27 28 29 30 31    
2007年 9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
2007年 10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
  29 30 31        

アレ

Calendar_Date_Select   ▽20070909b #プログラミング #JavaScript

calendar_date_select とゆー Google 傘下のプロジェクトによるライブラリがありまして.

詳しくは Demo を見ると一目瞭然なのだけど, 要はフォームの日付入力にポップアップカレンダによる選択を可能とするブツだ.

ちょっとしたカスタマイズでけっこう便利に使えるのだけど, これいじってたら何か「today_cell has no property」とかエラー出た.

エラー箇所を探っていたら……


    if (this.today_cell) this.today_cell.removeClassName("today");
    
    if ( $R(0,42).include(days_until = this.beginning_date.daysDistance(today)) ) {
      this.today_cell = this.calendar_day_grid[days_until];
      this.today_cell.addClassName("today");
    }

という箇所を発見. 7曜日 * 6週間 = 42日の表の中に「今日」が含まれていたら専用マーキングを付ける, という処理なんだけど…… $R(0,42) だと,0~42 つまり 43個の範囲を示してしまうわけで, 42日の表には 0~41 つまり 42個のセルしか存在しないわけで, 番号 42 のセルを触りに行ったらエラーになっちゃうよなぁ.

これを一般語で言い換えると,ある月の1日を含む週から日曜オリジンで数えて 7週間目の日曜日に「ある月」のカレンダを表示させるとエラーになる. 今年の 8月でいうと,7月 29日からの週が 1週間目,8月 26日の週が 5週間目,9月 2日の週が 6週間目で 9月 9日つまり今日が「7週間目の日曜日」. 来月でいうと 10月 7日にエラーが出るはず.

とりあえず 41 にしたらエラーは出なくなった.いいのかこれで? 原作者に伝えたいが,どっかルートあるかな…… 英語苦手なんでもーちっと時間できたら作者にメールでも送るかな. 今日エラーが出るんだから誰かが気づきそうなもんだけどw

symfony が apache 巻き込んで死亡する件   ▽20070909a #プログラミング #PHP

symfony を SF_DEBUG = false にしてプロダクションモードで起動すると apache を巻き込んで死亡する事件.

同じ環境で dev 環境だと普通に動く.なんでやねーん.つうか apache どころか PHP どころかアプリケーションレベルのデバッグモードの有無でなんで動作違うんだよう……

仕方なくほんと1行ずつ入念に落ちる箇所を特定していったら……プロダクションモードではパフォーマンス改善のために設定ファイルをコンパイルしてキャッシュするのだけど,その処理の中で PHP の tokenizer エクステンションの有無を確認している箇所があって,tokenizer が無い時の処理で何か秘孔を突いちゃってるみたいで,PHP 自体が apache 巻き込んで落ちるようだ.

つうか tokenizer って入れてなかったっけ,と思ったら,入れてなかった.アハハハー.入れたら動いた.アハハハー.6時間かえsー

index