人生投げてます?な日記 in June, 2004

さいととっぷへごー!

<< < 2004-06 > >>
Su Mo Tu We Th Fr Sa
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
TOPIC-LIST
30(Wednesday)
ハローワーク
SHUFFLE!
29(Tuesday)
昼〜夜〜
それは舞い散る桜のように
28(Monday)
お出かけ[Shopping]
REXML
27(Sunday)
nDiaryのトピック一覧をXMLで出力してみよう
お出かけ[Shopping]

Fate/stay night
26(Saturday)
xyzzyとUTF8と(read-char)
Fate/stay night
25(Friday)

こなたよりかなたまで
24(Thursday)
まじぷり
23(Wednesday)
まじぷり
SQLite
22(Tuesday)
まじぷり
21(Monday)
お出かけ
nDiaryのプラグインを自作してみよう
まじぷり
20(Sunday)
まじぷり
19(Saturday)
xyzzyとQDBM
モエカす
18(Friday)
お出かけ[Shopping]
ブックマークサイドバーの検索ボックスを非表示に
モエカす
17(Thursday)
面接
Fate/stay night
MozillaFirefox0.9
16(Wednesday)
ハローワーク
MozillaFirefox0.9
Fate/stay night
Generated by nDiary version 0.9.4

2004.06.16 (Wed)

1 おはようございます
7:00、起床。眠いー
外は晴れ模様。今日は昨日と変わって暑そう
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「で、今日はハローワークに行くです」
カレン「準備はできてる?」
LKPTeam「微妙に」
カレン「微妙に……なんなのよ?」
LKPTeam「んー、微妙にできてない風味?」
カレン「……ならさっさと支度しなさいよ」
LKPTeam「あぅ」
カレン「ほら急いだ急いだ」
LKPTeam「なんなんですかー」
カレン「手際よくしないとね」
LKPTeam「うぅ、先週はずっとだらだらしてたからですか、この仕打ちは」
カレン「んー、そういうわけじゃないけど」
カレン「でもほら、シャキッとしてた方がいいでしょ」
LKPTeam「それはカレンさんの意見であって」
カレン「何か言った?」
LKPTeam「……いえ、別に」
カレン「ならさっさと準備するの」
LKPTeam「あーい」
てきぱきと準備準備
2 ハローワーク...とか
んー、今日も混んでるなぁ。でもこの前よりは空いてるかな
次に面接を受ける会社に連絡を取ってもらう
LKPTeam「ハローワークって新しい名称にしてからずいぶん経つと思うんですけど」
LKPTeam「でも電話口だと相変わらず職業安定所なんですね」
カレン「ここだけじゃないの?」
LKPTeam「どうなんでしょう。ここ以外のハローワークで連絡してもらったことないですから分からないですね」
カレン「どうなんだろうねー」
謎。どうでもいいが(^^;
面接の方はどうやら担当者が不在の様子。今日の昼頃にでも連絡をくれる様子。そうと決まればさっさと家に帰ろう
……連絡来ねぇ(笑)。気付いたらもう夜だよ(笑)。……はぁ、しょうがない、明日の朝に連絡してみよう……こっちから連絡するのは苦手なんだけどなぁ(^^;
3 MozillaFirefox0.9...とか[PC]
出てたので入れてみた……んだけど、これは使えんな(^^;。テーマが好きくないとか、拡張機能がまだ対応しきれてないとか、そんな理由。もう少し様子見かなー、とか。使ってる拡張機能が全て0.9に対応してくれたら移行してもいいけど、まだそんな雰囲気じゃないだろうし、だったら使いやすい0.8の方がいいし
つーかK-Meleonの新しいバージョンはいつだよ……5月中に出るんじゃなかったのかよ(^^;
4 Fate/stay night...とか[GAME]
2周目も終盤。今日中には2周目も終わりそう。3周目は明日だな
$Date: 2004-06-17 01:18:54 +0900 (Thu, 17 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040616.diary $
ぺーじとっぷへごー

2004.06.17 (Thu)

1 おはようございます
7:00、起床。うー、眠いー
外は晴れ模様。風もないし、今日も暑くなりそう
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「昨日、面接の連絡が来なかったので、確認の電話をしてみようかと思います」
カレン「これから?」
LKPTeam「いや、9:00過ぎにでも」
LKPTeam「今すぐだとさすがに早いでしょうから」
カレン「9:00でも早いと思うけどね(^^;」
LKPTeam「むぅ」
カレン「でもいいんじゃない?」
カレン「あまり遅くに掛けてもしょうがないでしょうし」
LKPTeam「ですよね」
ということでさっそく連絡してみる。……ん、今日は担当者が居る模様。
LKPTeam「ということで、10:30に来いと言われましたよ」
カレン「これから?」
LKPTeam「ですね」
カレン「よかったじゃない」
LKPTeam「面接が早いと結果も早く分かりますしね」
カレン「そうそう」
カレン「で、また職探しなのよね(^^;」
LKPTeam「あぅ、まだ面接も受けてないのにー」
カレン「あはは、冗談よ(^^;」
が、がんばろう(^^;
2 面接...とか
受けてきたんだけど……また微妙だなぁ(^^;
3 Fate/stay night...とか[GAME]
3周目終了。残りのルートは攻略サイトを見ながら埋めて、フルコンプリート。うん、しばらく後を引きそう(^^;
4 MozillaFirefox0.9...とか[PC]
様子見といいつつ、懲りずにやってるわけですが(^^;
インストールした拡張機能
  • All-in-One Gesture 0.11.1
  • CuteMenus 0.3
  • RSS Reader 0.7
  • googlebar 0.9.0.16
  • Tabbrowser Extensions 1.10.2004061401
  • ChromeEdit 0.0.5.1.1
  • Text Link 1.0.2004041101
  • Sage 1.1
SageというのはRSSリーダーですね。RSS Readerもあるのに、とか(^^;。いやー、ホントはRSS Readerで十分だったんだけどねー
私の環境だけなのかどうか分からんけど、MozillaFirefox0.9になってからポップアップ表示が少しおかしくなってる気がして。RSS Readerのitem listの上にマウスカーソルを乗せると、itemのタイトルと一緒にその内容もツールチップのように表示されるのですが、以前はマウスカーソルのすぐ側に表示されてたような気がするけど、0.9になってからやたらと離れて表示されるようになってて
おまけに表示される内容が多い場合に、ツールチップがマウスカーソルに掛かってしまう時があって、そういう状況になった場合、ツールチップが一瞬で非表示になってしまう。説明が分かりづらいな(^^;
CASE:1
+---------+
| tooltip |
+---------+
 
       * <-マウスカーソル
 
CASE:2
+---------+
| tooltip |
+------*--+
       |
       +-マウスカーソル
こんな感じ?CASE:1の時は別に何ともないんだけど、CASE:2の時のように、ツールチップとマウスカーソルが重なり合うような場合は一瞬でツールチップが消えてしまう。おかげで内容が確認できない。……いや、別にここで内容を確認する必要はないんだけど(^^;
で、Sageの方はどうなんだ、といえば。まぁこっちも同じ問題があるんだけど(^^;。じゃあダメじゃん、とか思ってたんだけど、SageのオプションにあるFeed RenderingのRender feeds in contents areaって言う機能が意外に便利で、ツールチップで内容を確認できないならこれで内容を確認しよう、と思って入れてみた。RSS Readerもシンプルでいいけど、Sageのこのアイテムのレンダリング機能も便利で使いやすい
あーでも、結局RSS Readerに戻りそう。なぜなら私は常時ブックマークサイドバーを表示させてブラウズしているわけですが、Sageサイドバーを表示させるショートカットキーはALT + S。しかしブックマークサイドバーを表示させている状態でALT + Sを押してもブックマークサイドバーの検索ボックスにフォーカスが移るわけで、これじゃあダメじゃん、とか(笑)<というかそんな理由かよ(^^;
で、今さら知ったリンクのツールチップ表示。あれはAll-in-One Gestureがやってくれてたんだね……てっきりMozilla Firefoxの機能かと思ってた(笑)
LKPTeam「なんかおかしいと思ってたんですよね」
LKPTeam「0.9にしてからリンク文字列にマウスを当ててもツールチップが表示されなかったし」
カレン「拡張機能を入れる前だったからね」
それから、なんとなく前にDLしておいたMozilla1.8aをインストールして使ってみる。……うわ、なんか懐かしい(^^;。そしてなんか違和感が(^^;。やっぱりMozilla Firefoxが一番合ってるな(^^;
$Date: 2004-06-18 01:09:48 +0900 (Fri, 18 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040617.diary $
ぺーじとっぷへごー

2004.06.18 (Fri)

1 おはようございます
7:30、起床。んー、寝相が悪いせいか、首が痛い(^^;
外は曇り空。雨は降らないだろうけど、いまいちな天気。でも気温が低そうで過ごしやすそう
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「機能の面接の結果は、求人票を見ると10日後となってる模様です」
カレン「しばらく暇になるわね」
LKPTeam「ですね」
カレン「別の面接でも受ける?」
LKPTeam「んー、それでもいいんですけどね」
LKPTeam「その前に自分の用事を済ましてしまいたいです」
カレン「用事?なんかあった?」
LKPTeam「えーと、自動車の税金の支払いがまだです」
カレン「他には?」
LKPTeam「自動車の任意保険の支払いもまだです」
カレン「自動車関係ばかりね」
LKPTeam「ですね」
LKPTeam「毎年この時期はお金が一気に出ていくので困りますですよ」
カレン「この時期に車を買ったLKPTeamちゃんが悪い」
LKPTeam「うぅ……、分かってますよぅ」
カレン「でもそんな用事、1日あれば片づくじゃない」
LKPTeam「ですな」
LKPTeam「任意保険の方は車検証が来てからになりますけど」
カレン「あ、手元にないんだっけ?」
LKPTeam「今週か来週には連絡が来る予定です」
カレン「じゃあそのときに一緒に済ませればいいんじゃない?」
LKPTeam「んー、でも今できることなら先に済ませてしまいたいです」
LKPTeam「お金の問題はさくさくと片づけたいので」
カレン「ふーん」
カレン「ま、別にいいけど」
カレン「じゃあハローワークには行かないのね?」
LKPTeam「少なくとも今週は」
カレン「じゃあのんびりしなさいな」
LKPTeam「用事を済ませてからですね、のんびりするのは」
2 お出かけ...とか[Shopping]
さくさくっと銀行で税金の支払いを済ませる。ついでに少し寄り道して買い物とか
今日のお買い物は……
ケロQ / モエカす
Purple software / まじぷり
Newtype
……でしたっ
カレン「……また無駄遣いして」
LKPTeam「いやぁ、ついつい(^^;」
カレン「それ、謝ってるの?」
LKPTeam「一応、そのつもりですが?」
カレン「えーと、痛い目に遭いたいの?(^^;」
LKPTeam「違いますよぅ」
カレン「なんだ、違うの」
LKPTeam「ヒドい」
いやぁ、車検の金額が思ったより少なかったからつい、ね(^^;
3 ブックマークサイドバーの検索ボックスを非表示に...とか[PC]
いやもう、邪魔だから(^^;。userChrome.cssに以下を記述
#bookmarksPanel > hbox {
  display: none !important;
}
これで再起動して、ブックマークサイドバーを開いてみれば検索ボックスが非表示になってるはず。別の方法があるのかも知れないけど、これは簡単でいい(^^;。そもそも検索しないとならないほどたくさんブックマークがあるわけでもないし
4 モエカす...とか[GAME]
インストールはあっという間に。何も問題ない様子
とりあえずRoute of Kirisima。戦闘シーンが見物なんだろうけど、テンポがちょっと悪い気がする。これは最近Fate/stay nightやったからだな。Fate/stay nightをやってなければ文句はないんだろうけど。それでも十分面白い
真冬の水着。……いや、あの私は別にスク水フェチじゃないしな……
鈴希とかずさ。それは夢だ。話的にはいいんだろうけど、好きではないな
$Date: 2004-06-19 02:24:11 +0900 (Sat, 19 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040618.diary $
ぺーじとっぷへごー

2004.06.19 (Sat)

1 おはようございます
8:20、起床。うーん、全然寝足りないな
外は曇り空。天気が悪いなぁ……涼しいのはいいんだけど
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「今日も元気にAccess Viorationー♪」
カレン「なに、それ?」
LKPTeam「いや、挫折の連続って事です」
カレン「……なんだかよく分からないけど」
LKPTeam「いやねー、xyzzyからDLL関数を呼び出す時にですね」
LKPTeam「戻り値が文字列のポインタだった場合に、どうやったらその文字列の内容をxyzzyから受け取れるのか考えてたんですけど」
カレン「また役に立たないことを……(^^;」
LKPTeam「結局分からずじまいですよ」
カレン「ホント、どうでもいいことばっかり気にしてるわね」
LKPTeam「えっへん」
カレン「褒めてない」
LKPTeam「あぅ」
どこかにそういうことをまとめたページとかないかなぁ……
2 xyzzyとQDBM...とか[xyzzy]
暇つぶしに。いやどういう暇つぶしなのかよく分かりませんが(^^;
http://qdbm.sourceforge.net/ からwindows用のバイナリパッケージを持ってきて解凍、中にあるlibiconv-2.dll、mgwz.dll、qdbm.dllをxyzzy.exeと同じ場所に置いておきます
で、*scratch*バッファに以下を打ち込みながらeval-print-last-sexp
(c:define-c-struct DEPOT
  ((char *) name)
  (c:int wmode)
  (c:int inode)
  (c:int fd)
  (c:int fsiz)
  ((char *) map)
  (c:int msiz)
  ((c:int *) buckets)
  (c:int bnum)
  (c:int rnum)
  (c:int fatal)
  (c:int ioff)
  (c:int mroff)
  (c:int mrsiz)
  (c:int align))
 
(c:define DP_OREADER 1)
(c:define DP_OWRITER 2)
(c:define DP_OCREAT 4)
(c:define DP_OTRUNC 8)
(c:define DP_ONOLCK 16)
 
(c:define DP_DOVER 0)
(c:define DP_DKEEP 1)
(c:define DP_DCAT 2)
 
(let ((dll "qdbm.dll"))
  (c:define-dll-entry (DEPOT *) dpopen ((char *) c:int c:int) dll)
  (c:define-dll-entry c:int dpclose ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpput ((DEPOT *) (char *) c:int (char *) c:int c:int) dll)
  (c:define-dll-entry c:int dpout ((DEPOT *) (char *) c:int) dll)
  (c:define-dll-entry (char *) dpget ((DEPOT *) (char *) c:int c:int c:int (c:int *)) dll)
  (c:define-dll-entry c:int dpgetwb ((DEPOT *) (char *) c:int c:int c:int (char *)) dll)
  (c:define-dll-entry c:int dpvsiz ((DEPOT *) (char *) c:int) dll)
  (c:define-dll-entry c:int dpiterinit ((DEPOT *)) dll)
  (c:define-dll-entry (char *) dpiternext ((DEPOT *) (c:int *)) dll)
  (c:define-dll-entry c:int dpsetalign ((DEPOT *) c:int) dll)
  (c:define-dll-entry c:int dpsync ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpoptimize ((DEPOT *) c:int) dll)
  (c:define-dll-entry (char *) dpname ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpfsiz ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpbnum ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpbusenum ((DEPOT *)) dll)
  (c:define-dll-entry c:int dprnum ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpwritable ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpfatalerror ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpinode ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpfdesc ((DEPOT *)) dll)
  (c:define-dll-entry c:int dpremove ((char *)) dll)
  (c:define-dll-entry c:int dprepair ((char *)) dll)
  (c:define-dll-entry c:int dpinnerhash ((char *) c:int) dll)
  (c:define-dll-entry c:int dpouterhash ((char *) c:int) dll)
  (c:define-dll-entry c:int dpprimenum (c:int) dll)
  )
んで、おもむろに
(setq db (dpopen (si:make-string-chunk "test.qdbm")
                 (logior DP_OWRITER DP_OCREAT)
                 0))
3615104
 
(dpput db
       (si:make-string-chunk "foo") -1
       (si:make-string-chunk "bar") -1
       DP_DKEEP)
1
 
(setq vbuf (si:make-chunk nil 4096))
#<chunk 93786188>
 
(setq size (dpgetwb db
                    (si:make-string-chunk "foo") -1
                    0 (1- (si:chunk-size vbuf)) vbuf))
3
 
(si:unpack-string vbuf 0 size)
"bar"
 
(dpclose db)
1
とか。この辺までは普通に動いて、データベースにデータを入れられるし、データベースからデータを取り出せたりもする。でもイテレータが使えん(笑)(*1)(char *)な戻り値だとxyzzyからは無理なのかなぁ……教えてエロいえらい人!(*2)
使い道?考えてないよ(笑)<だって暇つぶしなんだもん(^^;
3 モエカす...とか[GAME]
昨日の続きから
隷-RAY0001-。んー、んぅ……んー?<よく分からん(笑)
小さな鈴希。んー、……?<以前の内容をすっかり忘れてる人(笑)
二五六三ノ空。これはコメント不可だな。だって終ノ空やってないし(^^;
追加シナリオはこれで終了かな。モエとらはインストールすらしてない(笑)
$Date: 2004-06-20 01:40:01 +0900 (Sun, 20 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040619.diary $

*1: これに気付いて残りのCURIAなんかを動かす気力が萎えた(笑)
*2: その後、CURIAもやってみたけど、一応こちらも動くことは動く。というかイテレータも付属してくるdpmgr.exeやcrmgr.exeコマンドを使えば動くんだろうけど……(^^;
ぺーじとっぷへごー

2004.06.20 (Sun)

1 おはようございます
8:40、起床。徐々に起床時間が遅くなってるな……夜更かししてるわけではないんだけど
外はあいにくの雨模様。台風が近づいてる所為かな
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「日曜日ー」
LKPTeam「日曜日ですよ」
カレン「言われなくても分かってるわよ」
LKPTeam「私は言われないと気付きませんが」
カレン「……それ、最悪」
LKPTeam「うわっ、容赦のない(^^;」
LKPTeam「あーでも、日曜日だからといって特にすることもないのです」
カレン「毎日が日曜日だからねー、今は(^^;」
LKPTeam「ぐさっ」
カレン「事実だから」
LKPTeam「ぐさぐさっ」
LKPTeam「……ってそこっ、追い打ちしない」
カレン「はいはい」
LKPTeam「うー」
カレン「で、今日『も』何もしないのね」
LKPTeam「というか、することないですし」
カレン「いやまぁ、それはそうなんでしょうけど」
カレン「ほら……何かすること見つけるとか」
LKPTeam「ん、面倒ですね」
カレン「……LKPTeamちゃん、そればっかりね」
LKPTeam「えっへん」
カレン「いや、褒めてないってば」
2 まじぷり...とか[GAME]
あー、なんだかやる気がないけど頑張るか(^^;<Fateがやりたいらしい
インストールは何も問題なし。ここで躓くゲームは減ってきたような。システムは普通?オートモードあり、バックログあり、バックログ中の音声の再生もできるし。あと非アクティブでも動作するのはナイスですな
そして、妹狙いだったはずなのにいつの間にかアルクルートになってるし(^^;
まぁ、いいんじゃない?というか、他のことやっててあまり印象に残ってない(笑)
続きは明日〜
$Date: 2004-06-21 01:49:40 +0900 (Mon, 21 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040620.diary $
ぺーじとっぷへごー

2004.06.21 (Mon)

1 おはようございます
7:30、起床。うーん、眠い
外は曇り空。台風が近づいてるからしょうがないか。それにしても湿度が高いな……
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「今日ものんびりー」
カレン「明日ものんびりー」
LKPTeam「明後日もー」
LKPTeam「……って、明後日もデスかっ」
カレン「自分で言っておいてそれはないんじゃない?(^^;」
LKPTeam「あぅ」
面接の結果待ちです……ひまー(^^;
2 お出かけ...とか
車検証が届いたよー、との連絡を受けたので。じゃあ車検証を取りに行きましょう、ということで。帰りに本屋さんにでも寄ろうと思ったんだけど、結局寄らずじまい。面倒だったから(^^;
ついでに車の任意保険も支払うことに。これで今月の支出関係は終了かな
LKPTeam「思ってたよりも支出が少なくてほっとしましたですよ」
カレン「……言っておくけど」
LKPTeam「はいはい、無駄遣いするな、ですよね」
カレン「LKPTeamちゃんの場合、そうやって言ってても分かってない場合が多いから」
LKPTeam「あ、あんまりです」
カレン「でもホントのことでしょ?」
LKPTeam「うぅ……」
3 nDiaryのプラグインを自作してみよう...とか[PC]
日記ファイルを少しいじってみる。トップページに置いていたスケジュールプラグインを外して代わりにプラグインを自作してみようかな、とか。schedule.rbに不満はないんだけど、scheduleに登録するような用事が今はないので(笑)
代わりに作るプラグインは、今の状態、つまり私はいまは面接の結果待ちなわけだけど、そういう状態を表示するようなプラグインにしてみる。表示させる文字列を別のファイルに持っておいて、それの内容をプラグインで日記ファイルに挿入するような感じで。この状態ファイルの一番最後の行にある文字列のみを出力するようにすれば、私は状態を次々と書き込んでいくだけで済むはず
ということで、こんな感じに
# -*- MODE: RUBY; Package: EDITOR; -*-
#
# $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040621.diary $
#
# $LastChangedDate: 2004-06-22 00:57:21 +0900 (Tue, 22 Jun 2004) $
#
# $LastChangedRevision: 150 $
#
# $LastChangedBy: lkpteam $
#
 
# sample
# <!--plug=status?sfile=e:/www/ndiary/log/status.txt?template=e:/www/ndiary/log/status.html-->
#
 
def plug(opt)
 
  status_file = opt['sfile'] if opt['sfile']
  template    = opt['template'] if opt['template']
 
  st = ''
 
  begin
    open(status_file, 'r'){ |file|
      st = file.read.split(/\n/).last
    }
  rescue Errno::ENOENT
    return '<!--plug-in error: status file not found-->'
  end
 
  str = ''
 
  if template then
    begin
      open(template, 'r'){ |file|
        str = eval(file.read)
      }
    rescue Errno::ENOENT
      return '<!--plug-in error: template file not found-->'
    end
  else
    str << <<END
<div class="status">
    STATUS:::#{st}
</div>
END
  end
 
  return str
end
すっごい適当ですが(笑)。でも動くからよし(^^;。で、デフォルトでtemplateがなくても状態文字列は表示できるけど、それじゃあつまらないし日記の元ファイルにごちゃごちゃ書くのはいろいろと面倒なのでtemplateを書いてみようと言うことで
"<div class=\"status\">
  <div class=\"kln\">カレン「ねぇ、どうなってるの?」</div>
  <div class=\"ponta\">ポン太さん「えーと、今は……#{st}になってるね」</div>
  <div class=\"ponta\">ポン太さん「ちなみにこの状態は#{File.mtime(status_file).strftime("%Y年%m月%d日%H時%M分")}に設定されたみたい」</div>
  <div class=\"kln\">カレン「ふーん……」</div>
  </div>"
templateはこんな感じで、status.txtは
面接結果待ち
こんな感じ。こんなevalの使い方でいいのかな、とか思うけど、動いてるからいいじゃん、とか(笑)。というかアレだ、こんなの別にプラグインにしなくてもいいじゃん、とか言うのはなしね(^^;
4 まじぷり...とか[GAME]
未亜、妹キャラですね。言動がどうもアレでソレだけど……まあいいか、さっさと攻略して次行こう。
うぅ……一人も攻略できずじまい。それもこれもみんなこのキャラが……って、八つ当たりはよくないな、うん。でも嫌いだっ(笑)
$Date: 2004-06-22 00:57:21 +0900 (Tue, 22 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040621.diary $
ぺーじとっぷへごー

2004.06.22 (Tue)

1 おはようございます
9:30、起床。おー、久しぶりに遅い起床だ(^^;
外は曇り空。風も強い。そして雨も降りそう
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「今日は何もしませんよ」
カレン「今日も、でしょ」
LKPTeam「……そうでした」
カレン「いいけどね、今さらだし」
LKPTeam「うぃ」
というわけで、今日『も』のんびりです……いいのか、いいのかこれでー(^^;
2 まじぷり...とか[GAME]
昨日の続きから。ようやく未亜エンド。やっぱりこのキャラは嫌いだ(^^;
有里ルート、途中まで進めてダウン。続きは明日だな
$Date: 2004-06-23 01:35:07 +0900 (Wed, 23 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040622.diary $
ぺーじとっぷへごー

2004.06.23 (Wed)

1 おはようございます
7:30、起床。うーん、また7時台かー
外は曇り空。どんよりしてますな。気温は低くていいんだけど、湿度が高いのは勘弁してください
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「今日も特にすることなんてないですね」
カレン「そうねー」
カレン「面接の結果待ちだねー」
LKPTeam「合否判定がすぐに分からないのは辛いですよ」
カレン「ま、企業側もいろいろ検討しなきゃならないからね」
カレン「それに文句を言える立場じゃないと思うし(^^;」
LKPTeam「むぅ」
LKPTeam「ま、ゆっくり待ちますかー」
カレン「気持ちは引き締めてた方がいいわね」
LKPTeam「うっ」
カレン「だらだら生活すると後が辛いわよ?」
LKPTeam「いやもう既に辛いと思うのですが」
カレン「それは……諦めなさい(^^;」
LKPTeam「あぅー」
今日ものんびりです
2 まじぷり...とか[GAME]
昨日の続きから。有里エンド。いいのではないかと。というか私、このテキストと相性が悪いのかな……(^^;
次。立石恵梨華。あー……略すのは止めよう(^^;
3 SQLite...とか[xyzzy]
この前QDBMで挫折したので、今度はこっちを試してみようということで。結果は……ダメだった(笑)
DLL関数を直接いじる方法はまだ試してないけど、 http://www.sqlite.org/download.html から落とせる、windows用のバイナリである、sqlite-3_0_1.zipに入ってるsqlite3.exeを使った限りでは無理だった。シェルモードのように、バッファにプロセスを結びつける方法を試したんだけど、コンソールから動かした場合に出力されるプロンプト文字列がバッファに出力されない……(^^;
うわ、なんか覚えのある症状だー、って、MySQLのクライアントであるmysql.exeを動かした時と一緒じゃん(笑)。確かあのときもプロンプト文字列が出力されなくて、どこかのサイトで検証してたのを見た覚えがある(^^;。多分プログラムは違うけど、躓いてるところは一緒じゃないかなぁ、とか。
で、試しにソースコードを落として見てみれば、shell.cにやっぱりMySQLで躓いてたisatty()が使われてて、あぁやっぱり(^^;。C言語は詳しくないのでいじるのはやめよう(^^;
DLL関数を直接いじるのは今度にしよう
$Date: 2004-06-24 01:10:40 +0900 (Thu, 24 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040623.diary $
ぺーじとっぷへごー

2004.06.24 (Thu)

1 おはようございます
8:00、起床。ま、こんなものか
外は今日も曇り空。涼しくていいね
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「昨日も連絡が来なかったー」
カレン「まだ10日経ってないからねー」
LKPTeam「ながいー」
LKPTeam「長いですよー」
カレン「確かに長いわね」
カレン「……だったらもう一つ別の面接でも受けてみたら?」
LKPTeam「あー、これからハローワークに行くですか?」
カレン「うん」
カレン「多分、今日は空いてるでしょうし」
LKPTeam「あー、今日は木曜ですか」
カレン「うん」
カレン「どう?」
LKPTeam「あー、うー、んー」
カレン「……はっきりしないわね(^^;」
LKPTeam「いや、求人情報なら別にハローワークに行かなくても見られますから」
カレン「あ、そっか」
カレン「ん、どう?新しい求人とかある?」
LKPTeam「あることにはありますが」
カレン「条件に合わない?」
LKPTeam「いや、合うのもいくつか」
カレン「なら」
LKPTeam「でもいま結果を待ってる会社の方が条件はいいですからね」
カレン「うーん」
カレン「まぁ、時間はたっぷりあるしねー」
カレン「その辺は強制はしないけど」
LKPTeam「うん、やっぱり今回は結果を待ちましょう」
カレン「はいはい」
ということで、結果が分かるまでこのままー、とか
カレン「ようするにもう少しのんびりしたいって事よね」
LKPTeam「そうそう……って、何言わせるですかー」
カレン「やっぱり(^^;」
LKPTeam「あぅー」
あぅー
2 まじぷり...とか[GAME]
最後は空っち。「まうー」も「わふぅ〜」もどっちもあり得ない口癖なんだけど、「まうー」はなぜか許せる今日この頃(笑)。というかやっぱりあのキャラが嫌いなんだな、私は(笑)
で、ようやくフルコンプ。空っちだけだな、まともにやったの(笑)
$Date: 2004-06-25 01:13:56 +0900 (Fri, 25 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040624.diary $
ぺーじとっぷへごー

2004.06.25 (Fri)

1 おはようございます
7:40、起床。んー、特に眠くもないし、かといって目覚めすっきりというわけでもない。……どんなだよ(^^;
外は今日も曇り空。涼しくていいね
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「今日も今日とてー」
カレン「はいはい、どうせ暇なんでしょ?」
LKPTeam「どうせ、とか言うのは如何なものか」
カレン「いやだって、ホントのことでしょ?」
LKPTeam「本当のことでも、言っちゃいけないこともあるでしょう?」
カレン「うん、そうね」
LKPTeam「なら」
カレン「でも別に今のは言っちゃいけない事じゃないでしょ?」
LKPTeam「……」
カレン「……」
LKPTeam「見解の相違ですね」
カレン「そんな難しい事言わなくてもいいんじゃない?(^^;」
カレン「ただ単にLKPTeamちゃんのわがままなんだから(^^;」
LKPTeam「あぅー」
2 昼...とか[PC]
<hoge>
    <hogehoge>
        &lt;foo&gt;
    </hogehoge>
</hoge>
のようなものがあったとして、I.Eだと、<xsl:value-of select="hoge/hogehoge" disable-output-escaping="yes">&gt;とか&lt;を、><に変換してくれるけど、Mozilla FirefoxとかK-Meleon、Mozilla系だと変換してくれない。……嫌がらせですか?<違う(^^;
しかしXMLとかXSLTとかその辺の技術も実際に動作を確かめながらだと意外なほどに楽しいな。……ちょっと勉強したくなってきた(^^;
3 こなたよりかなたまで...とか[GAME]
Fateやろうかなー、とか思ってたのですが、つい目に入ってしまったのでこちらをやろう、ということで(^^;
もちろん、クリスのルートを(笑)
$Date: 2004-06-26 01:18:03 +0900 (Sat, 26 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040625.diary $
ぺーじとっぷへごー

2004.06.26 (Sat)

1 おはようございます
7:20、起床。うー、眠い
外は今日も曇り空。曇りばっかり。晴れで暑いよりはいいけど
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「はぁ、今週は何もせずに終わってしまいましたね」
カレン「いつものことでしょ」
LKPTeam「うっ」
カレン「で、今日ものんびり?」
LKPTeam「ですねー」
LKPTeam「だらだらとしてます」
カレン「はいはい」
2 xyzzyとUTF8と(read-char)...とか[xyzzy]
例えば
(defun file-read (file)
  (interactive)
  (let ((buf (get-buffer-create "*result*"))
        line *default-fileio-encoding* *default-eol-code*)
    (set-buffer buf)
    (setq need-not-save t)
    (with-open-file (s file :encoding :text)
      (with-output-to-selected-buffer
        (while (setq line (read-char s nil))
          (princ line)
          )))))
こんな関数でShift_JISなファイルを1文字ずつ読み込んでも文字化けはしないんだけど、
(defun file-read-utf8 (file)
  (interactive)
  (let ((buf (get-buffer-create "*result*"))
        line *default-fileio-encoding* *default-eol-code*)
    (declare (special *default-fileio-encoding*))
    (declare (special *default-eol-code*))
    (setq *default-fileio-encoding* *encoding-utf8n*)
    (setq *default-eol-code* *eol-lf*)
    (set-buffer buf)
    (set-buffer-fileio-encoding *encoding-utf8n*)
    (set-buffer-eol-code *eol-lf*)
    (setq need-not-save t)
    (with-open-file (s file :encoding :raw)
      (with-output-to-selected-buffer
        (while (setq line (read-char s nil))
          (princ line)
          )))))
こんな関数でUTF-8なファイルを1文字ずつ読み込むと文字化けする。1文字ずつがダメなのかなー、とか思って(read-char s nil)(read-line s nil)に変えてみたけどやっぱりダメ
LKPTeam「read-charでUTF-8なファイルを1文字ずつ読もうとする方がおかしいんですかね……」
カレン「さぁ?」
カレン「でも普通はバッファに一度に読み込むと思うけど」
LKPTeam「ですよね」
LKPTeam「むぅ」
でもShift_JISだと読み込めて、UTF-8だと読み込めない、というのはちょっと気にくわないというか。あるいは私が知らないだけなのかな……
3 Fate/stay night...とか[GAME]
のらりくらりと
$Date: 2004-06-27 01:28:46 +0900 (Sun, 27 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040626.diary $
ぺーじとっぷへごー

2004.06.27 (Sun)

1 おはようございます
8:00、起床。可もなく不可もなく
外は曇り空。涼しいのはいいんだけど、湿度が高くなるのは勘弁して欲しい(^^;
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「日曜日ですー」
カレン「今のLKPTeamちゃんにとって、曜日なんてあまり関係ないわよねー」
LKPTeam「ぐさっ」
カレン「はいはい、ショックを受けるフリはいいから」
LKPTeam「うーわー、なんかあっさりスルーされましたよ?」
カレン「受けてないでしょ、ショック」
LKPTeam「む」
LKPTeam「そんな事言わないで下さいよぅ」
カレン「受けてるの?」
LKPTeam「多少は」
カレン「多少は、ねぇ」
カレン「あやしいわね」
LKPTeam「あぅ」
カレン「で、今日ものんびり?」
LKPTeam「ですね」
カレン「りょうかーい」
のんびりのんびり
2 nDiaryのトピック一覧をXMLで出力してみよう...とか[PC]
例によって暇なので(笑)
とりあえず、http://www.asahi-net.or.jp/~ps8a-okzk/xml/index.html なんかを見て、軽くXMLとかNamespaceとかXPath、XSLTあたりのお勉強。全部一度には覚えきれないので、軽く、あくまでも軽くね(^^;
で、お次はnDiaryのライブラリの改造。lib/topic.rbに手を入れます。手を入れるといっても既存のメソッドなんかをいじるのではなくて、新しくメソッドを追加するだけ
  def toxml(diaries, putmonth = true, year = '')
    body = ''
    @diaries = diaries
    topic = Marshal::load(filter_topics(diaries))
 
    pattern = Regexp::compile(@pattern)
 
    topic.keys.sort.reverse_each{ |month|
      next unless month[0..3].index(year)
      monthlink = []
      monthxml  = ''
 
      topic[month].keys.sort.each{ |date|
        d = Time::local(month[0..3], month[4..5], date)
        monthxml << %Q!\t\t\t<date value="#{d.strftime2(@topicDateFormat)}">\n!
        monthxml << topic[month][date].collect!{ |t|
          monthlink << %Q!\t\t\t<file>\n\t\t\t\t\t<number>#{@monthPartNames[date.to_i]}</number>\n\t\t\t\t\t<url>#{date2monthlyfilelink(month+date)}</url>\n\t\t\t\t</file>!
          begin
            category = []
            tmp = t[1].gsub(pattern,@replace)
            while /\[(\w+)\]/ =~ tmp
              category << $1
              tmp.sub!($1,'')
            end
            category.uniq!
          end
          %Q!\t\t\t\t<topic>\n\t\t\t\t\t#{category.size != 0 ? "<title category=\"" + category.join(' ') + "\">" : "<title>"}#{t[1].gsub(pattern, @replace)}</title>\n\t\t\t\t\t<link>#{date2monthlyfilelink(month+date, true)}#{t[0]}</link>\n\t\t\t\t</topic>!
        }.join("\n")
        monthxml << "\n\t\t\t</date>\n"
      }
 
      if putmonth then
 
        monthlink.uniq!
        body << %Q!\t\t<month value="#{month}">\n\t\t\t<part>\n\t!
        body << monthlink.join("\n\t")
        body << %Q!\n\t\t\t</part>\n!
        
      end
 
      body << monthxml
      body << "\t\t</month>\n"
      
    }
 
    if putmonth then
      return "\t<topics>\n" + body + "\t</topics>"
    else
      return "\t<topics>\n" + body + "\t</topics>"
    end
    
  end
 
  def writeXML(diaries, putmonth = true, year = nil)
    @outputKcode = 1 if (@outputKcode < 1 or @outputKcode > 4)
 
    if /\.xml?$/i !~ @filename then
      years = []
      if year.kind_of?(Array) then
        years = year
      elsif year.nil? then
        enumerate_years(diaries).each{ |y|
          years << y
        }
      else
        years = [year]
      end
      years.each{ |y|
        part_diaries = diaries.dup
        part_diaries.delete_if{ |date| date[0..3] != y }
        putxml(@outputDirectory + @filename + y + '.xml',
          @logDirectory + @filename + '.xml', part_diaries, putmonth, y)
      }
    else
      putxml(@outputDirectory + @filename, @logDirectory + @filename, diaries, putmonth)
    end
 
  end
 
  def putxml(filename, skelton, diaries, putmonth, year = '')
    out = open(filename, "w")
    begin
      infile = open(skelton)
      infile.each { |line|
        loadplugin(line)
        if line.gsub!(/<!--body-->/i, "") then
          out.print toxml(diaries, putmonth, year).kconv(@outputKcode)
        end
        out.print line.kconv(@outputKcode)
      }
      infile.close
 
      out.close
    rescue Errno::ENOENT
      $stderr.puts "\n** error: topics skelton file: '#{skelton}' not found.\n"
      return
    end
    print "make '#{filename}'\n"
  end
元からあるtohtml、writeHTML、puthtmlをほとんどコピペしただけなんだけど(^^;。特にwriteXML、putxmlなんかは調べてるファイルの拡張子と、中で出力のために呼び出してる関数が違うだけでやってることは一緒だし(笑)。オプションなんかは元からあるのを流用。
lib/topic.rbの次はndiary-lib.rb。まずはNDiaryクラスに以下を追加
  def maketopiclist_xml
    if !@config['TOPIC_XML'].nil? and @config['TOPIC_XML'].size > 0 then
      t = Topics::new
      t.topicDateFormat  = @config['TOPIC_XML_DATE_FORMAT']
      t.topicMonthFormat = @config['TOPIC_XML_MONTH_FORMAT']
      t.diary            = @pastdiary
      @config['TOPIC_XML'].each{ |topic|
        filename, regexp, pattern, replace = topic.split(/\t/)
        t.skelton = filename
        t.regexp  = regexp  ? regexp  : ''
        t.pattern = pattern ? pattern : ''
        t.replace = replace ? replace : ''
        t.writeXML(@pastdiary.allDiaries.keys, true, @years)
      }
    end
  end
maketopiclistとやってることは一緒ですね。
それからmain関数に以下を追加
    #make topic list ( xml )
    ndiary.maketopiclist_xml
ndiary.maketopiclistの下あたりにでも挿入しときます
それからndiary.confにXML出力用のオプションを追加
# ==== Topics ( XML ) ========
 
TOPIC_XML_MONTH_FORMAT = '%Y/%0m'
TOPIC_XML_DATE_FORMAT  = '%0d (%e)'
 
TOPIC_XML = topics/topicsxml    (\[PC\]|\[GAME\]|\[xyzzy\])$    [●◎□■◇◆△▲▽▼☆★]|\.\.\.とか *
 
#TOPIC_XML = topics/topicsxml       [●◎□■◇◆△▲▽▼☆★]|\.\.\.とか *
 
# ==== End Topics ( XML ) ====
これは特に説明はいらないでしょう。元からあるトピック用の設定をそのまま流用してるだけで、違うのは設定の名前くらいだから。
ndiary.confの設定が終わったら、TOPIC_XMLで指定したスケルトンファイルの作成に掛かります。これも特に説明はいらないと思うけど、拡張子はxmlを調べるようになってるので、そこだけ注意
私のスケルトンファイルの中身は
<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE ndiary SYSTEM "ndiary_custom.dtd">
<?xml-stylesheet href="default.xsl" type="text/xsl" media="screen" ?>
 
<ndiary>
  <header>
    <author>LKPTeam</author>
    <sitename>LKPTeamの人生投げてます?な日記</sitename>
    <site>http://www5d.biglobe.ne.jp/~lostland/ndiary/index.html</site>
    <description>トピック一覧とか、そんなの。ただしxyzzy、PC、GAMEカテゴリのトピックのみリストアップ</description>
  </header>
<!--body-->
</ndiary>
こんな感じ。DTDのndiary_custom.dtdの内容は、
<!ELEMENT ndiary (header,topics)>
 
<!ELEMENT header (author, sitename, site, description)>
    <!ELEMENT author (#PCDATA)>
    <!ELEMENT sitename (#PCDATA)>
    <!ELEMENT site (#PCDATA)>
    <!ELEMENT description (#PCDATA)>
 
<!ELEMENT topics (month+)>
    <!ELEMENT month (part?,date+)>
    <!ATTLIST month value CDATA #REQUIRED>
        <!ELEMENT part (file+)>
            <!ELEMENT file (number,url)>
                <!ELEMENT number (#PCDATA)>
                <!ELEMENT url (#PCDATA)>
        <!ELEMENT date (topic+)>
        <!ATTLIST date value CDATA #REQUIRED>
            <!ELEMENT topic (title,link)>
                <!ELEMENT title (#PCDATA)>
                <!ATTLIST title category CDATA "none">
                <!ELEMENT link (#PCDATA)>
こんな感じで、ndiary.confのTOPIC_XMLで設定したファイルが生成される場所に置いておきます。headerの内容がいまいち合ってないんじゃないか……とか、そういう細かいところはツッコミ禁止で(笑)。というかこの辺は私もよく分からないんだけど<なんせ一夜漬けだし(^^;
default.xslも同じ場所に。別の場所がいいなら、TOPIC_XMLで指定したスケルトンファイルにあるスタイルシートの設定を絶対パスにするなりしませう
ちなみに私のdefault.xslの中身は以下の通り
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
  <xsl:template match="/">
    <html xml:lang="ja" lang="ja">
      <head>
        <title>Topic List -- <xsl:value-of select="ndiary/header/sitename" /></title>
        <style type="text/css">
          body { background-color: #bcc5ca; }
          a:link    { text-decoration:none; color: #436976; }
          a:visited { text-decoration:none; color: #536976; }
          a:hover   { text-decoration:underline; }
          a:active  { text-decoration:none; }
          h1 { font-size:large; }
          h2 { font-size:medium; margin-left:30px; }
          li { font-size:x-small; }
          dl { background-color: #dee7ec; }
          dd { padding-left:0em; margin-left:0px; }
          .backlink { text-align:right; font-size:x-small; }
        </style>
      </head>
      
      <body>
        <h1><xsl:text>Topic List -- </xsl:text><xsl:value-of select="ndiary/header/sitename" /></h1>
        <h2><xsl:value-of select="ndiary/header/description" /></h2>
        <div class="backlink">
          <a>
            <xsl:attribute name="href">
              <xsl:value-of select="ndiary/header/site" />
            </xsl:attribute>
            <xsl:value-of select="ndiary/header/sitename" />
            <xsl:text>に戻る</xsl:text>
          </a>
        </div>
        <hr />
        <xsl:apply-templates select="ndiary/topics/month" />
        
      </body>
      
    </html>
  </xsl:template>
  
  <xsl:template match="ndiary/topics/month">
    <dl>
      <dt><xsl:value-of select="concat(substring(@value,1,4),'年',substring(@value,5,2),'月')" /><xsl:text> ( </xsl:text><xsl:apply-templates select="part/file" /><xsl:text> )</xsl:text></dt>
      <dd>
        <xsl:apply-templates select="date" />
      </dd>
    </dl>
  </xsl:template>
  
  <xsl:template match="part/file">
    <a>
      <xsl:attribute name="href">
        <xsl:value-of select="url" />
      </xsl:attribute>
      <xsl:attribute name="title">
        <xsl:value-of select="url" />
      </xsl:attribute>
      <xsl:value-of select="number" />
    </a>
    <xsl:choose>
      <xsl:when test="last() = position()">
        <xsl:text> </xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text> / </xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  
  <xsl:template match="date">
    <ul>
      <li><xsl:value-of select="@value" /><xsl:text> </xsl:text><xsl:apply-templates select="topic" /></li>
    </ul>
  </xsl:template>
   
  <xsl:template match="topic">
    <a>
      <xsl:attribute name="href">
        <xsl:value-of select="link" />
      </xsl:attribute>
      <xsl:attribute name="title">
        <xsl:text>Category:</xsl:text><xsl:value-of select="title/@category" />
      </xsl:attribute>
      <xsl:value-of select="title" />
    </a>
    <xsl:choose>
      <xsl:when test="last() = position()">
        <xsl:text> </xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text> / </xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>
今のところI.EとMozilla系でしか確認してないけど、一応エラーなんかは出てないっぽい(^^;。本当は出力をUTF-8にしたかったんだけど……まぁいいか(^^;
ちなみにこんな感じに(*1)
カレン「……これ、普通のトピック一覧と同じじゃないの?」
LKPTeam「いえーす」
カレン「……」
LKPTeam「その通りです!」
カレン「その通りですって……」
LKPTeam「しかもHTMLで作ったやつよりもファイルサイズが大きいというおまけ付き!」
カレン「うれしくないでしょ、それは!」
LKPTeam「あははー(^^;」
xslとかdtdとか他にも必要なファイルがあるから更に無駄に容量を食うんだけど<無駄、大好きだから(笑)
追記。なんかいろいろ間違ってたのを修正したつもり。表示に不都合はないけど、DTDとかxslファイルとかXML出力用のスケルトンファイルが間違ってた模様。にわか仕込みはいけませんな
3 お出かけ...とか[Shopping]
本を買いに。で、今日のお買い物は……
あずまんが大王 1-4巻 メディアワークス
……でしたっ
4 夜...とか[PC]
昼に作ったXMLなトピック一覧のxslファイルを少しいじる。といってもスタイルを変更しただけなんだけど
はじめはタイトル属性毎に色分けしよう、なんて方法を考えたんだけど、それだとI.Eで表示する時に分からないし、せっかくXSLTとかXPath使うんだから、なんとかI.E、Mozilla系どちらでも同じように表示させてみよう、と思って何とか頑張ってみる
……で、
カレン「……趣味、悪いわね」
LKPTeam「ぐさっ(^^;」
カレン「カテゴリー別に色分けしたの?」
LKPTeam「はい」
カレン「そういう趣味だったっけ?」
LKPTeam「いや、こういうのは苦手です」
LKPTeam「でもこれはどうせあまり使わないでしょう?」
カレン「そうね。今までのトピック一覧の方が使い勝手は良さそう」
LKPTeam「だから、どうせ使わないんだったら似合わないことでもしてみようかな、と」
カレン「……はいはい」
というわけで、あんな惨状に(笑)。ま、気にしない気にしない(^^;
気にしないついでにカテゴリを色分けしたからトピックの後ろに表示させていたカテゴリも消してみる。一応マウスオーバーでカテゴリが表示されるし、いいだろうということで
……しっかし、この色分けは……格好悪いな(笑)
5 Fate/stay night...とか[GAME]
昨日に引き続き。序盤のタイガーの暴れっぷりを堪能
$Date: 2004-06-28 00:46:44 +0900 (Mon, 28 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040627.diary $

*1: スタイルが表示されているxslファイルと違いますが、これはこの後にスタイルを変更したからです
ぺーじとっぷへごー

2004.06.28 (Mon)

1 おはようございます
8:30、起床。うーん、ゆっくり(^^;
外は曇り空。雨の降る気配はなさそうだけど、あまり涼しくないな
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「今日は月曜日ー」
カレン「そろそろ面接の結果が来る頃よね」
LKPTeam「あ、そうですね」
カレン「……忘れてた?」
LKPTeam「いやいや(^^;」
LKPTeam「ちゃんと覚えてますよ」
カレン「本当かどうかあやしいわね」
LKPTeam「信じて下さいよー」
カレン「で、今日はどうするの?」
LKPTeam「今日ものんびり」
カレン「……」
カレン「ま、いいけどね」
LKPTeam「じゃ、そういうことで」
のんびりのんびり
2 お出かけ...とか[Shopping]
昨日買い損ねた本を買うために本屋へ
LKPTeam「買い損ねたというか、ただ単に発売日を間違えてただけなんですが(^^;」
カレン「バカね」
LKPTeam「あぅー」
というわけで、今日のお買い物は……
機工魔術士 5巻 スクウェア・エニックス ISBN4-7575-1225-2
……でしたっ
3 REXML...とか[PC]
REXMLは便利で楽しい。昨日のトピック一覧のXMLをREXMLでHTMLに変換してみる
#!/usr/local/bin/ruby.exe -Ku
 
require 'uconv'
require "rexml/document"
 
file = Uconv.sjistou8(File.open("topicsxml2004.xml").read)
 
doc = REXML::Document.new file
 
body = ''
doc.elements.each("ndiary/topics/month"){ |el|
  mhtml = "<dl><dt>" + el.attributes['value'][0..3] + "年"
  mhtml << el.attributes['value'][4..5] + "月"
  begin
    month_part = []
    el.elements.each("part/file"){ |part|
      month_part << %Q!<a href="#{part.elements['url'].text}">#{part.elements['number'].text}</a>!
    }
    mhtml << " ( " + month_part.join(' / ') + " ) "
  end
  mhtml << "</dt>\n"
  mhtml << "<dd><ul>\n"
  el.elements.each("date"){ |d|
    mhtml << %Q!<li>#{d.attributes['value']} !
    li = []
    d.elements.each("topic"){ |topic|
      case topic.elements['title/@category'].to_s
      when 'PC'
        cl = 'pc'
      when 'GAME'
        cl = 'game'
      when 'xyzzy'
        cl = 'xyzzy'
      else
        cl = 'other'
      end
      li << %Q!<a href="#{topic.elements['link'].text}" class="#{cl}" title="#{topic.elements['title/@category']}">#{topic.elements['title'].text.gsub!(/(\[.+\])/,'')}</a>!
    }
    mhtml << li.join(' / ')
    mhtml << "</li>\n"
  }
  body << mhtml + "</ul></dd></dl>\n"
}
 
html = <<END
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Topic List -- #{doc.elements['ndiary/header/sitename'].text}</title>
    <style type="text/css">
        body { color: #d0d0d0; background-color: #0f0f0f; }
        a:link    { text-decoration:none; color: #a3c9d6; }
        a:visited { text-decoration:none; color: #638996; }
        a:hover   { text-decoration:underline; }
        a:active  { text-decoration:none; }
        a.pc            { text-decoration:none; color: #b0ffb0; }
        a.pc:visited    { text-decoration:none; color: #e0ffe0; }
        a.pc:hover      { text-decoration:underline; }
        a.game          { text-decoration:none; color: #b0b0ff; }
        a.game:visited  { text-decoration:none; color: #e0e0ff; }
        a.game:hover    { text-decoration:underline; }
        a.xyzzy         { text-decoration:none; color: #ffb0b0; }
        a.xyzzy:visited { text-decoration:none; color: #ffe0e0; }
        a.xyzzy:hover   { text-decoration:underline; }
        a.other         { text-decoration:none; color: #b0b0b0; }
        a.other:visited { text-decoration:none; color: #e0e0e0; }
        a.other:hover   { text-decoration:underline; }
        h1 { font-size:large; }
        h2 { font-size:medium; margin-left:30px; }
        li { font-family: Verdana, sans-serif; font-size:x-small; }
        dl { background-color: #2f2f2f; }
        dd { padding-left:0em; margin-left:0px; }
        .backlink { text-align:right; font-size:x-small; }
        #category-summary { font-family: Verdana, Arial, sans-serif; font-size:small; }
        #category-pc     { color: #b0ffb0; }
        #category-pc2    { color: #e0ffe0; }
        #category-game   { color: #b0b0ff; }
        #category-game2  { color: #e0e0ff; }
        #category-xyzzy  { color: #ffb0b0; }
        #category-xyzzy2 { color: #ffe0e0; }
        #category-other  { color: #b0b0b0; }
        #category-other2 { color: #e0e0e0; }
    </style>
</head>
<body>
<h1>Topic List -- #{doc.elements['ndiary/header/sitename'].text}</h1>
<h2>#{doc.elements['ndiary/header/description'].text}</h2>
<div class="backlink">
<a href="#{doc.elements['ndiary/header/site'].text}">#{doc.elements['ndiary/header/sitename'].text}に戻る</a>
</div>
<hr />
<div id="category-summary">
Category Color[Visited]:
<span id="category-pc">PC</span>[<span id="category-pc2">PC</span>] / 
<span id="category-game">GAME</span>[<span id="category-game2">GAME</span>] / 
<span id="category-xyzzy">xyzzy</span>[<span id="category-xyzzy2">xyzzy</span>] / 
<span id="category-other">other</span>[<span id="category-other2">other</span>]
</div>
<!--body-->
</body>
</html>
END
 
print html.sub(/<!--body-->/,body)
相変わらず適当ですが。REXMLを使うから、Shift_JISからUTF-8に変換しないとダメなんだけど(*1)、それ以外は何も問題ないな。コードの量はあまり変わらないけど、REXMLだと日記の生成からトピック一覧の生成まで全てをrubyで出来るから、REXMLを使った方がいいのかもしれない……けど、この辺は明らかに好みの問題だな(^^;
$Date: 2004-06-29 01:46:46 +0900 (Tue, 29 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040628.diary $

*1: あと、XMLファイルのencoding宣言もあらかじめutf-8にしておかないとREXMLがエラーを吐くっぽい。
ぺーじとっぷへごー

2004.06.29 (Tue)

1 おはようございます
8:00、起床。うん、普通普通
外は曇り空。曇りが続くなぁ
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「そろそろ職探しをすべきでしょうか?」
カレン「んー、連絡来ないしねぇ」
LKPTeam「ですよねー」
LKPTeam「もう、10日後といったらちゃんと10日後に連絡をしてもらわないと困るですよ」
カレン「まぁ、向こうの会社にも言い分はあるだろうけどね」
LKPTeam「いやしかしですよ」
LKPTeam「10日も待たせておいてそれはないでしょう?」
カレン「いや、だからそれなりの事情があるんじゃないの?」
LKPTeam「むぅ」
カレン「それよりもどうするの?」
カレン「すぐ職探しする?」
LKPTeam「あー、今日はもうやる気がないので、明日からまた探しますか」
カレン「ん、頑張ってね」
LKPTeam「うーい」
うー、こういうのって日が経つと面倒になるなぁ(^^;
2 昼〜夜〜...とか
だらだらと過ごす。やる気無いからな(^^;
3 それは舞い散る桜のように...とか[GAME]
あー、なんか急にやりたくなったから(^^;
$Date: 2004-06-30 01:32:42 +0900 (Wed, 30 Jun 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040629.diary $
ぺーじとっぷへごー

2004.06.30 (Wed)

1 おはようございます
7:30、起床。うー、眠い
外は曇り空。はっきりしない天気ですな
コーヒー飲んで、Web廻って、Mailcheck♪
LKPTeam「昨日の予定だと、今日はハローワークに行くはずだったのですが」
カレン「ですが?」
LKPTeam「予定を変更しようかと」
カレン「どうして?」
LKPTeam「えーと、なんとなく?」
カレン「そういう曖昧な理由で予定を変えるのはよくない」
LKPTeam「う……」
LKPTeam「確かに」
カレン「面接の結果がなかなか来なくて焦るのは分かるけど」
LKPTeam「あぅ、焦ってますか」
カレン「焦ってるわね(^^;」
LKPTeam「うー」
カレン「とりあえずもう1件面接受けたら?」
カレン「どうせ暇なんだし」
LKPTeam「んー、じゃあそうしますか」
カレン「どこを受けるのかは決めたの?」
LKPTeam「昨日求人情報を見てた時にめぼしいのをいくつか」
カレン「じゃああとはハローワークで詳しいところを確認してからね」
LKPTeam「ですね」
カレン「そうと決まったらほら、準備準備」
LKPTeam「あーい」
というわけで、準備してハローワークへ。……今日は行くのやめようと思ってたんだけどな(笑)
2 ハローワーク...とか
移動中に雨が降ってきたり。うー、いやだなぁ……。そして到着。今日は意外と空いてた模様。雨の所為か……
雨降ってるし、長居しても意味がないので、紹介状もらってさっさと帰宅……の前に、本屋に寄っていこう(^^;
今日のお買い物は……
ぽすたるWORK 角川書店 ISBN4-04-713646-8
……でしたっ
3 SHUFFLE!...とか[GAME]
ああほら、昨日はそれ散るだったから(^^;
$Date: 2004-07-01 01:08:02 +0900 (Thu, 01 Jul 2004) $ $HeadURL: file:///G:/repo/ndiary_log/2004/06/20040630.diary $
ぺーじとっぷへごー

つっこみ

LKPTeam / ykaltenative@mue.biglobe.ne.jp
さいととっぷへごー!