ネタバレや腐臭発言が混じるらくがきメモ

2008年11月26日(水) ドラクエ3

グプタニア

グプタとタニア。ゲームスタート時の2年くらい前。グプタ19歳、タニア16歳。
グプタは黒胡椒屋の従業員。子供の頃からあの店で働いていて、成長するに従ってその有能ぶりを発揮。店主のおじいちゃんからすれば「わしが育てた」みたいな自慢の店員なんだけど、有能なだけに他店から好条件での引き抜き話がたくさんあることを知ってしまって不安になった。グプタのことは気に入ってるし、もともとグプタとタニアは仲いいし、結婚てどう? 問題ないだろう、推奨します、という感じで押してくる。この後2人は婚約した。「タニアさん」から「さん」が取れるのに1年くらいかかった。

「わしは ふたりを けっこんさせようと おもったのに…」
前にちょっと書きましたが、グプタとタニアは「おじいちゃんが結婚させようとしている」というのが萌えポイントだと思うんです。店主の孫娘と(多分)店員。で店主がお気に入りの店員に孫娘をめあわせた。婚約はしてるけどタニアとしては「グプタは本当に私のことが好きなのかな…」みたいなね。でもタニアがカンダタにさらわれたと聞いたらグプタは危険を顧みず飛び出してっちゃう。何だものすごい愛し合ってたんじゃないの!というこの美しい流れですよ。
ここのカンダタはタニアをさらわないです。タニアは昔孤児院にいたことがあって()その時世話になったりした関係で自分からカンダタのとこに行ってしまうんですが、グプタが心配して駆けつけるのは同じ。勇者とカンダタとの第二戦は町の人々が見る中での八百長試合、というのを以前()書きましたが、ここの芝居にタニアとグプタも参加する。
「かえったら けっこんしよう!」「あなた!」
このセリフは勇者が頼んだわけではなくて自分たちで入れた。結婚イベントを入れることで事件が丸く収まった感が増すという寸法

2008年11月25日(火) nicky改造日記。個別記事リンク編

日付頭の■をクリックするとその記事に飛びますが、その時に該当記事しか表示しないようにしました。過去の日記によくリンク張るのでそのたびに他の記事が見えるのが、なんかこう、なんか…
でも元のやつみたいにアンカーで指定するのも好きなのでこれはとても迷いどころです。■でリンクしなくなっただけで使おうと思えば使えるからいいかなー

またnicky.cgiに直接書きこんじゃった…。これはすぐできた。多分できた。長いけど他のとこの記述をつぎはぎしただけ。日記内検索を経験した私に死角はなかった。こんな感じ
変な挙動を起こしたりしないといいなー

5/23追記。前へと次への間には、「初期設定」の「過去ログNewとOldの間の表示」で設定されてるものが入るようになってます。初期設定でチェックが入ってなくても使われる有様
6/6。最新記事に載ってる記事だったら個別表示+「過去ログにコメントフォームを表示しない」設定でもコメントフォームが出るように変更

2008年11月25日(火) 日記内検索日記 解決編?

あらすじ。日記内検索をカテゴリ代わりに使いたいと思ってCGIに色々書き加えてみたら、変な機能は色々ついたが重くなってしまった。PHPはPERLのCGIより軽いと聞いたので、試しにPHPで同じ動きをするものを作ってみようとしたのだが…?

右も左もわからないPHP、設定ファイルの読み込みとかもよく分からないのでそういうのは全部ファイルに直接書き込んで、とりあえず似たような動作をするものを途中までなんとか作ってアップしてみて、さて重さは? とアクセスしてみたら……あまり変わりませんでした。残念。
しかしまあ重いのは当然といえば当然の話で、まず全ファイルを開いて検索して、ヒットした記事の数を数えて検索結果○件というのを表示して、ヒットしたファイルをもう一度開き直して内容を表示……つまりファイルを2回ずつ開いているんです。最初に開いた時に表示もしてしまえば軽くなるかもしれないけど、そうすると「検索結果○件」というのが記事の下に表示されることになってしま……CSSで上に表示すればいいんじゃないの? やってみた。できました。もう馬鹿。馬鹿。こういうことやってると自分の頭がどんどん心配になる。大原部長にバカにターボがかかってきたって言われるレベル
というわけで軽くなった気がします。これでカテゴリ代わりに使える。かな

PHP版。表示のレイアウトが2種類しかなかったりハイライト機能が使えなかったりする。途中で↑に気づいて最後までがんばる気力を失った。こっちもファイル開くの1回にしてみたけど、やっぱりそんなに重さは変わらないと思う。PERLのCGIより軽いというのはきっとこういう時の話ではないんだろうな
それにしてもPHPはほぼ未体験ゾーンでまだ全然馴染んでませんが、便利関数が山ほどあるのにびっくりした。「strip_tags」と書くだけでタグが全部消えるとかにはまだ「ふーん」くらいでしたが、「urlencode」だけでエンコードできたり「mb_convert_kana」だけで半角全角変換とかを知るにつけ「おいおい」と思うようになり、一番びっくりしたのが「getimagesize(画像)」てやったら$○○[3]が「width="△△" height="××"」になるやつ。何このいたれりつくせり。高級ホテル? 人間がだめになるとか余計な心配してしまう。でも面白そうなのでいつかまた何かやりたい

2008年11月24日(月) 日記消した日記

今年の日記を間違えて全部消してしまった。でも最近毎日のようにローカルでテストしてて、その際にファイルとかもいちいちダウンロードしてたおかげで大丈夫でした。おかげでというかそのせいでうっかり消したんだけど。

ただ問題はローカルのファイルをそのままアップしたこと。タイトル「テスト」本文「うんこうんこうんこうんこうんこ」みたいなのが過去の日記に相当数まぎれこんでしまった。多分全部消せたと思うけど、もし見かけても気にしないでください。ただのうんこですから

2008年11月23日(日) マザー2

snormal1124012839.png 250×250 2K [再]

携帯ゲーム機で最後に買ったのはゲームボーイアドバンスSPで、据え置きだとスーファミ。ドラクエロトシリーズとの因果関係は特にない…と思う
マザー3、前に買ったような気がするんだけど、見あたらないところを見ると気のせいかなあ。いつでもやれると思ってずいぶん時が経ち、ポーキーのネタバレを読んでしまってからもずいぶん時が経ち、いざやろうと思ったらない。それが今です。店で見かけて買ったような気になってただけかなあ。さすがに買ってたらやってるか。

ところでマザー2です。あのゲームは本当に面白いし大好きだと何にでも誓って言えるんですが、ラスボス戦のあの演出だけは困ったことに苦手でした。あれは…あれだけは…どこかで回避フラグがあってくれてもと思ってしまう…。むしろ何らかのポイントをコンプリートしないとああならないくらいの隠し演出であってほしいと思ってしまう。あれ見て「まさにそうだ!」と拳を握る人より「…うわあ…」「やりやがった」「実はこういうことをやりかねない雰囲気を薄々感じていたので用心して別人の」みたいな人の方が多いんじゃないのか…。小説でも漫画でもゲームでもすぐ号泣の私ですら後者です。
後者は子供の心を失った哀れな大人、と見ることもできるかもしれないけど、本当の子供の場合は家族や友人が横で見てる環境でプレイしてることも多く、その際に「え?」「おお?」って言われてなんか顔が真っ赤になってくるという悲しい例を想像していたたまれない思いです(勝手に)。あんなに大好きなのに続編の3に飛びつけなかったのはそのせいもあるのかも。3ではああいうのがなければいいなあ。

2008年11月22日(土) nicky改造日記。日記内検索編

目標達成おめでとう〜
ボタンをリンクにできました。やったー
「nicky.cgi?SerchWord=○○」の後に「page=○○」みたいにして表示させるやり方が分からずしょんぼりしてたんですが、きみはじつにばかだな!分からないなら検索ワードの中に入れてしまえばいいじゃない!こんなにむやみにコマンド作りながらそれに気づかないなんて…
あと検索結果をカテゴリ的に使用するという目的の一環として、検索ワードと一緒に「d」と入れると「『○○』を含む記事何件…」というのが表示されない、というコマンド追加。検索結果っぽくない画面になるのでカテゴリ表示に使えるかなと。まあ使わないと思うんですが、やろうと思えばできるってだけでちょっと心が豊かになる気がするじゃないですか。へへへ…これで追加機能は11個だ…(そんなことしてなんになる!?)

結局sub NickySerchあたりはこんなことになりましたよ→
長すぎわらた。いつのまにこんなことになってしまったんだ…。もうほんとやめようこういうことは

5/23 tコマンドの検索が変だったのを直したのとiMode版についての追記とか。
ご指摘ありがとうございました!

2008年11月21日(金) 日記内検索日記

こんなの毎日書くなら休止してた方がいいような気がする日記。

検索です検索。マルチバイト文字の2バイト目と次の字の1バイト目が組み合わさって誤検出みたいになるあれ。「せ」(\xA4\xBB)で検索すると「気持ち」(\xB5\xA4\xBB\xFD\xA4\xC1)がひっかかってしまう問題。
あれってなんか本文も検索ワードも1文字(2バイト)ずつ区切った上で検索し、しかるのち元に戻す…みたいなことをしなればならないらしいですね。びっくりした。すごいなー! つまり検索エンジンとかはそういうことをしてると…! あの膨大なページの内容を1文字1文字区切ってると! うわー。それともそれはEUCだけなのかしら。でもはてなダイアリーとかEUCですよね。つまりはてな検索はきっと全ダイアリーを区切っている…一文字ずつ! すごいなー!

けどここの日記内検索でそれ実際やってみたら重くなったのでやめた。まあ1文字で検索しなければほぼないことだし、使うの自分だからいいよ(それ言ったら終わる)
でもハイライトをつけた時に文字化けするのはあれなので、ハイライトonの時だけそれにした。にしてもハイライトって面倒なものだったんだなあ。文字化けもそうだけど、全角アルファベットの大文字小文字が検索ワードと違う時にどうやってハイライトのタグを付けるのかという心からどうでもいいけど片づかないと気になってしまう問題に悩んだ今日でした。
結局本文の英数字を半角に変換して、変換する時にマークをつけておいて、検索してハイライトのタグをつけ、そしてマークのとこだけ全角に戻す、てやったけどこれ絶対間違ってるよね。こんな無駄なことをみんながしているわけがないもの。日記内検索のハイライトを担当する部分だけで、こんな長さに
sub NickySerchLight{
my($zha,$zhb,$zhc,$zhd,$hi);
($SWord[$_],$cword) = @_ ;

$zha = qr{(?<!\x8F)};
$zhb = qr{(?=(?:[\xA1-\xFE][\xA1-\xFE])*(?:[\x00-\x7F\x8E\x8F]|\z))}x;
$zhc ="<<z_h>>";
$zhd ="<<\/z_h>>";
$Message =~ s/$zha\xA3([\xB0-\xB9\xC1-\xDA\xE1-\xFA])$zhb/$zhc.pack("C", ord($1) - 0x80).$zhd/oeg;
$Message =~ s/$zhd$zhc//g;
$Title =~ s/$zha\xA3([\xB0-\xB9\xC1-\xDA\xE1-\xFA])$zhb/$zhc.pack("C", ord($1) - 0x80).$zhd/oeg;
$Title =~ s/$zhd$zhc//g;
$Title =~ s/([\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE][\xA1-\xFE])/$1\n/g;
$Message =~ s/([\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE][\xA1-\xFE])/$1\n/g;

for($hi = 0; $hi<$cword; $hi++){
$SWord[$hi] =~ s/([\x8E\xA1-\xFE][\xA1-\xFE])/$1\n/g;
$Message =~ s/($SWord[$hi])/<span class=\"hili\">$1<\/span>/ig;
$Title =~ s/($SWord[$hi])/<span class=\"hili\">$1<\/span>/ig;
1 while $Title =~ s/(<[^>]*)(<span class=\"hili\">)([^<]*)(<\/span>)/$1$3/ig;
1 while $Message =~ s/(<[^>]*)(<span class=\"hili\">)([^<]*)(<\/span>)/$1$3/ig;
$SWord[$hi] =~ s/\n//g;
}
$Message =~ s/$zhc<span class=\"hili\">/<span class=\"hili\">$zhc/g;
$Message =~ s/<\/span>$zhd/$zhd<\/span>/g;
1 while $Message =~ s/($zhc[0-9A-Za-z])([^$zhd])/$1$zhd$zhc$2/g;
$Message =~ s/$zhc([0-9A-Za-z])$zhd/pack("C*", 0xA3, ord($1) + 0x80)/eg;
$Title =~ s/$zhc<span class=\"hili\">/<span class=\"hili\">$zhc/g;
$Title =~ s/<\/span>$zhd/$zhd<\/span>/g;
1 while $Title =~ s/($zhc[0-9A-Za-z])([^$zhd])/$1$zhd$zhc$2/g;
$Title =~ s/$zhc([0-9A-Za-z])$zhd/pack("C*", 0xA3, ord($1) + 0x80)/eg;
$Title =~ s/\n//g;
$Message =~ s/\n//g;
}

ありえないよ。無知は悲劇、みたいなのを地でいくようなことをしてるんでしょうね

2008年11月20日(木) ドラクエ1(借財)

ロトの借財。6章更新。
やっと半分。短いくせに遅すぎる。1が終わったら2も書きたくなるのは目に見えてるだけにいろんな意味で先行き不安です

ガライの墓といえば。
魔物を呼ぶアイテムを墓の中に取りに行く、というのはピラミッドの黄金の爪と同じなんですよね。これもまた色々と捏造の余地の多そうなところではありませんか。

2008年11月19日(水) 日記内検索まだ続いた

画像ありの日記だけ探すとかそういうコマンドみたいなのって普通、アルファベット1文字とかじゃないの? と今さら気づいたので変えた。

o : 古いのが上になる
h : ハイライトをつける
i : 画像ありの日記だけ出る
ii : 画像だけ並べる
t : タイトルリストみたいな画面になる

これを検索ワードと一緒に入れるとそんなふうになる
前のコマンドが変に長かったのは「その言葉を検索に使いたくなったらいけないから検索しそうもない言葉がいいよね」とか思ったからなんだけど、アルファベット1文字で検索することってあまりないと我に返った。一応「'」を前か後ろにつければ検索にも使えるようにした

以前、ハイライトをつけるって簡単だろうと思ってて気軽につけちゃったんですが、変なところがどんどん出てきて(私にとっては)難しいです。あれ実はすごいんだな!
ワードの前後に<span></span>つけりゃいいんだろ? 簡単ー。と思ったら、タグの中にまで<span>が入り込んでたりして「あ、そうかしまった!」ってなる。タグの中に入れないようにするには…とか、ない頭をひねって考えて、これか!とあやしげな結論を出してなんとかなったかと思ったら、今度はマルチバイト文字がなんとか、みたいなので文字化けしてまた「あ、そうかしまった!」ってなる。たとえば「。開」はエンコードすると「%a1%a3%b3%ab」で「3」は「%a3%b3」だから、「3」にハイライトかけようとするとこういうのの途中に引っかかって化けちゃう、みたいなやつです。一文字で検索してハイライトつけたらあちこち文字化けワラタ(直ってない)これどうすればいいんだろ。ここんとここんなのばかりで、めっきりパズルサイト行かなくなったけど楽しいな

2008年11月18日(火) 日記内検索。全然最終回じゃなかった

気分転換とかいってまた新しい機能をつけたくなるんです。そして簡単だろうと思っていたそれが想像よりずっと難しかったりして気分転換どころじゃなくなるんです。

nickyにはTitleListというのがもともとあるんですが、そういう表示を検索画面でもできるようにしたくなったので、検索ワードと一緒に「タイトルモード」と入れるとそうなるようにしました。Titlelistと同じ表示にしようとしたけど難しくてだめだったので画像有マークを後ろにつけてごまかした。
タイトルに「ドラクエ3」としか入れてないとかしょっちゅうだし、オンマウスで本文の冒頭だけ出るようにしてみようよとか、せっかく期間指定検索できるようにしたんだし、年や月のリンクはそれに飛ぶようにしない?とか脳内が盛り上がってしまうせいでサブルーチンがどんどん長くなっていく。

あとページタイトルに検索ワードが入るようにしたのと、英数字の半角全角の違いを認識しないようにした。わーい
半角全角は通常jcodeで変換するらしいんですが、試しにjcode.plでやってみた時に重くなってしまって…。ローカルでもボタン押してから表示するまでに1秒強かかったりしたんです。変換はされてたけど、何かやり方間違えてたのかなあ。
でも、こちらの「正規表現で半角全角変換」というのをやってみたら重くならなかったー。わーい

あとは次へのボタンをリンクにするだけだ

追記。「タイトルモード」→「t」に変更
月別ログ
日記内検索機能

RSS

PaintBBS / spainter Shi-dow
Diary CGI  Nicky! + rssnicky