abstractなstaticメソッドを書く事に意味はあるのか

phpでクラスライブラリを書いていてふと思った。

DBのテーブルに紐付いたクラスというものを書いていて、それらは共通の基底クラスを持っている。基底クラスはコンストラクタでabstractなメソッドをコールする部分があり、それによって派生クラスで定義されたDBのテーブル定義を取得している。基底クラスは当然abstractだ。

外部からテーブルの定義だけ取得したいなと思ったときにいちいち派生クラスのインスタンスを生成するのは面倒だと思って、abstractなテーブル定義メソッドをstatic宣言してみたが、そうすると基底クラスのコンストラクタがこけてしまった。

Fatal error: Cannot call abstract method kscObjectList::getTableDef() in /home/…../ksc_……class.php on line 50

基底クラスのコンストラクタは、定義された派生クラス側のメソッドをコールしようとせずにabstractなままの基底クラス側のメソッドをコールしようとしてこけている。それにロード時に文法エラーでこけてるのではなく、インスタンスの生成時に実行時エラーでこけている。

ちょっと待てよ?abstractメソッドは派生クラスで定義する事を義務付けるために存在するはずだ。定義しないとどうなる?インスタンスを生成できなくなる。インスタンスを生成できなくする事によって、定義を強制しているというのが自分のもっている感覚だ。

ではstaticなabstractメソッドが基底クラスにあったとする。派生クラス側で定義しないと、派生クラスのインスタンス生成時にエラーになり、派生クラス側で定義すると、インスタンスが生成できるとする。でもstaticなメソッドから、生成されたインスタンスは(パラメータとして外部から渡されたりしない限り)見えないから、staticメソッドの定義強制をインスタンスの生成許可/禁止によって制御するのはよく考えれば非常におかしな話だ。

でも、ここのページにあるように、Factoryメソッドの定義を派生クラスに強制させるために、定義しないとエラーになるstaticメソッドを基底クラスで宣言するというのは意味があるだろう。

そもそもabstractというキーワードは(私が思うに)インスタンス生成時に実行時エラーになるというニュアンスで通っている気がするので、コンパイル時(phpではロード時?)にエラーになるstaticな抽象メソッドのキーワードがあればいいのになあ、と思った。実際には、現時点ではabstractなstaticメソッドは書けません。5.3.0以降に搭載されるLate Static Bindingにしても、基底クラスから派生クラスのstaticメソッドを呼べるけど基底クラス側を抽象化する機能はないらしい。

Atahualpa Themeでコメント投稿欄の「Leave a Reply」を日本語にする

Atahualpa Themeでコメント投稿欄の文言「Leave a Reply」が英語のままなので、日本語にしてみた。

結論から言うと、Atahualpa Themeの日本語化問題はこれで全て解決したっぽい。

/wp-content/themes/atahualpa/ja_JP.mo

ファイルをコピーして、

/wp-content/themes/atahualpa/ja.mo

を作成する。

これで、「Leave a Reply」は日本語化する。

after

以前はこんな感じ。

before2

Atahualpa Themeの他の日本語化関連問題は、これで全て直っている模様。こんな事で悩んでいたのは私だけかも。恥ずかしい...

Atahualpa Themeで日付を日本語形式にする

WordPressのAtahualpa Themeはデフォルトでは日付が「3月23rd, 2009」のようになってしまうのが気になったので、修正してみた。

管理画面の「外観」-「Atahualpa Theme Options」で、「Post/Page Info Items」を選択する。

post-page-info-items1

」「」「」を以下のように書き換える。

%date(‘Y年n月j日’)% | %tags-linked(‘Tags: ‘, ‘, ‘, ‘ | ‘)% カテゴリー: %categories-linked(‘, ‘)% |
%comments(‘コメントを書く’, ‘1件のコメント’, ‘%件のコメント’, ‘コメントはできません’)%

footer-homepage1

ちなみにdateはPHPの関数です。
PHP: date

これで直った。

after1

変更前はこんな感じ。

before1

結構これで悩んでる人は多いような気がするのだが、どうだろうか。

「intro」セッション(高田馬場)

今年最初のセッションに「intro」に行く。

夜8時頃にイントロに着く。電車で都心に出てくるのも久しぶりだ。地下への階段をおりて狭い店内に入ると大音量で演奏をしている。今日のハウスベーシストはちょんさんだ。ベースは他に村山さんと私より若い人がいる。ギターは3人、ボーカルは3人、フロントはブレッカーのような演奏をするテナーとイントロの井上さん(as)だけでドラムはたくさんいる。毎週必ず(と言っていいほど)来ているピアノの宮部さんやみきさんが今日は来ていない。店内の1/3は見るだけの客のようだ。

今日は4曲に参加した。曲名は、”Autumn Leaves”, “Fly Me to the Moon”, “Just Friends”, それと知らない曲だが”Out of Nowhere”とほぼ同じコード進行の曲だった。

帰りに新宿の「知音」に寄って大快腐乳を買って帰る。知音の閉店時間の12時を少し過ぎていたが、親切な店員さんがレジの電源を入れて売ってくれた。ありがとう。

追悼

石田晴久氏がお亡くなりになった。

サイバー大学IT総合学部長,東大名誉教授の石田晴久氏が逝去:ITPro

石田晴久氏は村井純氏とともに日本のインターネットの基礎を築いた日本のIT界の最重要人物であると同時に、テレビ番組「コンピュートないと」(1983年)の司会を務めるなど啓蒙活動にも熱心だった。またプログラマのバイブルと言われた「プログラミング言語C」(通称K&R)等の翻訳、執筆で広い影響を日本のIT界に与えた。私が中学生の修学旅行の時に札幌の紀伊國屋書店の2階専門書売り場で買った「パソコン言語学」(アスキー出版局)も氏の監修によるものだった。ご冥福をお祈りします。

サッカー

今日は息子のサッカーの試合があった。

町田の小学2年生が8チーム集まる試合だった。息子が属するチームは、残念ながらあまり強いチームではなく、試合に出てもほとんど勝ったことがないチームだ。まだ勝ち負けにこだわる段階ではないとはいうものの、少々かわいそうな気がしていた。

息子がサッカークラブに入ったのはちょうど1年前の今頃、1年生の終わりごろだった。町田にはだいたい各小学校にサッカークラブがあり、息子の小学校にもある。前々からサッカーやりたいと言われてたものの、親のサポートが結構たいへんだという噂を耳にして尻込みしていたのだった。そうとう悪かった私自身の調子もだいぶん安定し、体験入部してみてよさそうだったので去年の今頃入部したのだった。

今日の最初の試合の前半に、息子はシュートを決めて点を入れることができた。入部して1年、公式試合で初めての得点だった。これに気をよくしたのか、いつもはへたって歩きがちな後半はいつも以上に夢中になって走ってボールを追いかけていた。今日は4試合あって結局全部負けてしまったが、息子だけでなく皆試合にとても夢中になっているような気がした。私を含めた親たちも大きな声をあげて応援した。

何だかサッカーの試合を見るのがおもしろくなってきた。

花粉症

今年も花粉症の季節がやってきた。

花粉症になったのは27歳頃だったと思う。ある日突然鼻水が止まらなくなり、それが花粉症だと知ったのはしばらくたってからだった。大学卒業までずっと北海道に住んでいたので、それまで花粉症とは縁のない生活だったのだ。花粉症のつらさはなった人でないとなかなか理解できない。目やにが多くなり、いつも目がかゆい。透明な鼻水が大量に出る。いつも鼻がむずむずしてくしゃみが止まらない。寝る時でさえ鼻が詰まって口でしか息ができない。どうでもいい事のように思われるかもしれないが、毎年この季節は極めて不快なのだ。

テレビの「あるある」でヨーグルトが花粉症にいいというのをやっていて、一年間ヨーグルトを食べていた事があった。結果は「全く効果なし」だった。結局テレビに騙されて一年間ヨーグルトを買わされたのだった。その後、「あるある」は内容の不正が見つかって番組自体がなくなってしまった。

今も鼻水が止まらない。

ブログの引っ越し

Niftyのココログからブログの引っ越しをしてみました。

仕事で借りているサーバー上にMysqlのDBを作成し、WordPressの最新版をダウンロードしてきて解凍→サーバーにアップロード→インストールして動作確認した。デフォルトのテーマではあんまりだと思ったのでAtahualpaというテーマをダウンロードして適用してみた。
TypePad(MovableType)からWordPressへのエクスポートインポートは思った以上に簡単だった。

娘は絵を描くのが好きだ。夕方保育園に迎えに行くとたいていお絵かきしている最中だし、家にいる時もよく裏紙にボールペンやマジックで絵を描いて私に見せてくれる。

けっこううまく描けてると思う私はやっぱり親バカなんだろうな。

明日は娘の劇発表だ。

photophoto_3

確定申告

今年も確定申告の季節がやってきた。今日確定申告を済ませてきた。

毎年この季節になると、町田の中心街にある「ぽっぽ町田」に町田税務署が申告会場を開く。町田税務署だって特別へんぴな所にあるわけではないが、ぽっぽ町田で申告できるのはやはり便利だ。今年も年明けに商工会議所で会計ソフトの帳簿をチェックしてもらったので、決算書の作成は楽だった。もちろん青色で申告した。

今年で今の商売になって3回目の申告だが、独身の頃3年ほどフリーランスのPGとして働いていた事があって、その時も毎年申告していた。その時はエクセルで帳簿をつけていて、マクロで決算書を作成していた。私の妻もフリーランスだった事があって、その時は私が会社員だった。今は逆である。

今年もe-taxは見送った。ほとんどメリットが感じられなかったからだ。