土曜日は朝から「なんで土曜日に学校なんかいかなきゃいけないんだ。しかもあの糞学校に」と考え、日曜日は「あぁまた明日から糞学校か」と凹み、平日は淡々と脳みそがやせていく日々である。

  1. トップ
  2. life
  3. ひたすら面白くない日々と、ひたすら面白いことを考える日々

どこの大学に入ってもインチキ野郎が大量にいるんじゃないかと思うこの頃。周りに誰がいるかとかそういうのって全部運じゃないか……

じゃあどこにインチキ野郎がいないかって言ったら、いないとこなんてないんじゃないかと思うこの頃。どれぐらいいるんだろう。

関係ないけど、妙に気取ってる人が苦手だ。すごいくだらないんだけど、高校生なら「高校生らしく」するべきで、たかが粋がってるだけの高校生が「飲みいこうぜ、のみ」とか言ってるのはなんか胡散臭いって思うような。別に粋がってるやつだけじゃなくて、言葉(文字)遣いが気取ってたり、格がないのに一人称が「私」だったりするとなんかめげる。

人のこと言ってるんじゃねぇよ。 さて、自分で判断できないことはどうやって直せばいいだろう。

  1. トップ
  2. life
  3. ○×+運

domxml は PHP5 で使えなくて、DOMDocument とか XSL は 4 では使えないってか。ローカルで xslt_process のロードするときのパスがオカシイのでいちいち fopen する必要ありまくりですか。めんどくさい。

  1. トップ
  2. prog
  3. php ?

別ファイルに定義されたクラスを動的に読み直したいのだけど、どうやっていいやら。単に eval とかやると同じクラス名はもう使ってるぜ?って警告されるわけだし、Class::new do ... end は違うくさいし、remove_const はメソッド内から呼べないself.remove_const がないよって怒られるわけだから、他に方法があるのかもしれない? 定義したクラス名.class_eval("remove_const(:CONST)")ってやればいいらしい([ruby-list:38594] Re: cgi.rbのremove_const)。これで上手くいくかどうか実装してみよう。し。

プラグインみたいな。ずっと動きっぱなしのプログラムで、ある一部分だけソースからもう一度読み直してやりたい。

# ML の過去ログで面白いのハケン [ruby-list:27327] Haiku. こういうの好き

class PluginManager
def initialize
@plugins = {}
end
def class_name(filename)
File::basename(filename, ".rb").capitalize
end
def load(filename)
class_name = class_name(filename)
eval(open(filename) {|f| f.read }, binding)
# インスタンス作成して @plugin に突っ込む。
eval("@plugins[class_name] = #{class_name}::new")
end
def unload(filename)
class_name = class_name(filename)
PluginManager.class_eval("remove_const(:#{class_name})")
@plugins.delete(class_name)
end
def each
@plugins.each do |k,v|
yield k, v
end
end
end
pm = PluginManager::new
pm.load("foo.rb")
f = PluginManager::Foo::new
pm.unload("foo.rb")
f = PluginManager::Foo::new # => uninitialized constant PluginManager::Foo (NameError)
=begin
# foo.rb
class Foo
end
=end

みたいな感じかなぁ……もっとスマートにできるような気がする。しかもコレだと PluginManager の外からロードしたクラスにアクセスできる(丁度上の f のように )んだよね。もう一個 Plugin クラスとか作ってその中にロードしたクラスのインスタンス突っ込んでやろうか。

  1. トップ
  2. prog
  3. Ruby プラグインっぽいもん

外側からアクセスできるのはそんな大きな問題にはならないような気がするので、このまま実装してこう。まぁクラスオブジェクトを適当に突っ込んだらすぐに remove_const すればいいような気がしないでもない。この辺考えよう……

前回ロード時のファイル日時と比べて更新されてたらリロードするメソッドとかとか。

ちなみに結構命名規則がいいかげんな感じで統一してたりする。クラス名とかモジュール名は単語先頭を大文字にする(どっちにしろクラス名先頭は大文字だし)形で、メソッド名とか変数名はアンダースコアで単語つなぐ、ってのを基本として適当に単語作ったり略したり。

foo_bar
普通
FooBar
WinAPI とか、C とかっぽい気がする。読み難いし書きづらいし間違いやすい。
FOO_BAR
定数
fooBar
なんかダサい
Foo_Bar
Foo_bar
あんまり見かけない
激しくダサい

どうでもいい話だ。でも Ruby のメソッド名に大文字が混ざってると違和感! Javascript だといろいろ混ざったりとか……キタネ

ていうか、インスタンス作ったらすぐに remove_const やってもいいのかな。

  1. トップ
  2. prog
  3. Ruby PluginManager と命名規則

全くツイてない一日だった。何処がどうツイてないか書くとめげるので止める事にする。

その代わりちょっといいことを書く。入院して誰かの見舞いのために最寄の大学病院に行った。なんか高校生が病院内見学(?)みたいなのがやってて素敵女の子がいた。それだけ。

  1. トップ
  2. life
  3. ダメな一日

やっぱロードパスがおかしい。全然おかしい。dem_open_file("foo.xml") をやると cannot open file 'c:/program files/apache group/apache/foo.xml' が出る。どうやって直すか。ぐぐってもソレっぽいのが出てこない。お手上げ。

もしかして domxml って古いのか。XSLT とか XML を使うんだろうか……なんかよくわからないなぁ。

とりあえず php のバージョンをあげる。xrea と同じ (4.3.8) にしよう。インスコしたけど 4.3.8 にならない orz. 上書きしてるのになぁ……

php.exe は php -v でちゃんと 4.3.8 ってでる。(でも何故か cgi 版のほうは php_mcrypt が見つからないというエラーを出す。意味分からん。php.ini ではコメントアウトしてるんだけどなぁ)

  1. トップ
  2. prog
  3. Windows 版 Apache + Sablotron

誰が言ったんだろコレ。担任がオリンピックがどうたら言って、こんなことを言ってたわけだけど、柔道の井上康生とか努力してなかったって意味なんだろうか。まぁそれは五輪に興味が薄いからどうでもいいや。

「努力しろよ」とか、その意味にとれる「がんばれ」をいうやつはインチキ臭い。

  1. トップ
  2. life
  3. 努力は期待を裏切らない。

やはり AnHTTPD だと心もとないというか、PHP スクリプト実行してるといきなり落ちたりする。ってなわけで Win な Apache を入れようかと……でも面倒なのでやってないっつう。少し弄るだけなんだけども。

インスコしたけど 500 でちゃう orz. また今度にしよう

バーチャルホストの設定変えるとおかしいから、そこへんかと思ってたら違う罠。.htaccess で php_flag とか使ってるくせに mod_php 入れてないせいですた。アフォか俺は。

とりえあず……CGI の実行プログラムを拡張子によって強制できないかな…… cygwin 版は #! 読んでもらって構わないわけですが、win 版だと実行できないじゃんと。

Action ディレクティブ使うのかな。でも 500 出る。めんどくせー。ごく簡単なスクリプトだと動いてるから、どっかパス関連でダメなんだろうなぁ……そのまま動かないんじゃダメじゃん。

あと mod_php でバーチャルホストの DocumentRoot が上書きされてないような…… Sablotron が変なとこ読みにいってる。

つーか K2Editor を Ruby ファイル編集に使ってるんですが、一回バックにいったあとにマウスで移動できなくなる。UZEEEE

AddHandler cgi-script-rb .rbAction cgi-script-rb D:/usr/bin/ruby を加えてやってみたらとりあえず実行はできる。でも最初の行の #! も読んでるらしく、つけてると動作しない。無視するにはどうすればいいのか……これは間違い。たまたま動いてただけ。

Action ディレクティブは違う気がする。

ScriptInterpreterSource 以外それっぽいのがないからこれでやろう……関連付け変更するのは嫌だけれども。

とりあえず CGI はいいとして、domxml_open_file が動いてない。カレントディレクトリが PHP スクリプトの位置じゃない。なんでだ!

  1. トップ
  2. web
  3. Apache on win + Apache on cygwin

どれぐらいメモリ使ってるかなぁって見てみたら 14,732KB だってさ。随分学習したねぇ。マルチチャンネルに対応しないかなぁ。改造するとバージョンアップがめんどいよね。

  1. トップ
  2. net
  3. ロイディ
  1. トップ
  2. irc
  3. ロイディ

学校。もう少しで学校。行けばもれなくインチキクラスメイト共とイカサマ教師のハーモニーが味わえます^^ 楽しみすぎて吐き気でますね。いや、寝てないからかもしれないけど。だって寝たら学校が近くなるじゃん。

一年後ぐらいに、この心持がいい思い出になっていること切に願う。

  1. トップ
  2. self
  3. No Unco No Life

XSLT とかやると空要素は勝手に省略されるわけですが、一部要素で不具合があるわけです。具体的には textarea, script なんですけれども。これ内容に <xsl:value-of select="/.."/> とでも書いておけば省略されないことを発見。value-of 使えばいいらしい。sab なんとかでしかできないだろうけど。

  1. トップ
  2. web
  3. 閉じタグを省略すると上手くいかない要素
  1. トップ
  2. xslt
  3. 閉じタグを省略すると上手くいかない要素

元データを忠実にマークアップして保存しておけばいいだけだね。っていってもユーザ入力のデータで保存するのは改行ぐらいだろうから、l 要素に各行格納してつっこめばOKな気がする。必要なら文中の URI をマークしてもいいかもしれない。

  1. トップ
  2. web
  3. XML にユーザ入力のデータを保存
  1. トップ
  2. prog
  3. XML にユーザ入力のデータを保存

ユグドラシル買う気まんまんだったけれど、09-22 に Delayeded がでるので見送る。シロプ優先で……ツタヤで借りれそうだしねバソプ

  1. トップ
  2. music
  3. バソプ

Google が拾ってくれた @2004年8月の湾岸日記 から特に検索キー与えないでなんちゃらっつうのを見て、あーもしやとか。site:lowreal.net で検索してみると一応各ページがヒットする。でも中身拾ってもらってないみたいだ。むむむ。ググル弾きなんてしないけどなぁ。軽く無意味なコンネゴの弊害か何かかしら……

  1. トップ
  2. web
  3. Google のインデックス化について

社会に出てちゃんと働けるかが激しく不安だ。そういうところでは電車で異臭を放ってデカイ声で電話に話しかけているおっさんも尊敬できる……ふつーに凄いと思うよホントに。

つかどういう系になるんだろ……IT 系がギリギリぐらいかなぁとか思うのですが、何かムリくさ……。

願わくばカコイイウェブサイトを strict で構築したい。

  1. トップ
  2. self
  3. 職とか金儲けについて

掲示板のデータを XML にすることは意味あるだろうか……再利用性はあがるけれど、掲示板のデータを再利用することなんてあるのかとか。むしろいちいち DOM を使うことによって一部複雑になる気もする。無限スレッドみたいなのは得意だろうけど、ログが溜まってくると処理がもたつくし、過去ログを作るとしたらどうやって作るかとか。まぁ DOMXPath 使って古い数件を別ファイルにするような感じになるのかな。

とりあえずやってみれば問題点が出てきそう。

つまりやろうとしてるスクリプトが激しく面倒くさいので、PHP+DOM による書き込み編集をどうやって綺麗に実装しようか考えるのに掲示板というのはシンプルでいいんじゃん? 的な目論見があるのです。

メッセージ本文をそのまま保存したら直接 XSLT に放り込めないよなぁ。だからといって変換してからだと編集とかがやりにくそう。出力するときも DOM 使って読み出せばいいんだけどね……独自データ用にパーサーを用意しなくていいのはいいんだけどなぁ。

  1. トップ
  2. prog
  3. 掲示板システムを XML 化?

1.0 リリースあたりまで TBE の代わりに Single Window を試してみる。タブダブルクリックでリロードとか、ブックマークからは必ず新規タブとかがない (Single Window ってだけだしね) のでちょっと戸惑う。でもまぁちょっと軽くなった気がする。

Firefox 拡張で 2ch ブラウザがあればなぁ。サイドバーにスレ一覧がでるのよ。右クリックメニューから板選択とかできる。ブックマークしたアドレスが 2ch のスレだったら自動的に拡張経由で読むの。あー便利そうー。

  1. トップ
  2. soft
  3. Single Window

拡張ってどこにインスコされるようになったんだろ orz. 何か jar ファイルがあったような見当たらず。profile/extension/* にインスコされてるのは全部じゃないよなぁ。イマイチ XUL の開発方法がわからない。既にある拡張にちょっと手加えて使えたらいいのに。

orz. profile/extension/* にあるのが全部か……その下に jar ファイルがあるのねぃ。

  1. トップ
  2. soft
  3. XUL

すいません。激しく手紙の類が苦手なんです orz. 嫌いって意味の苦手じゃなくて不得意ってことなんででぃす。 手紙自体は好きです。大好きです。

  1. トップ
  2. self
  3. mail