日記

9月 2日 (火)

1. Patra

1.1. headline sensor

ちょっと改造。ヘッドラインセンサを強化してみました。かなり変わった文法になってしまいました。改悪ですな。仕様を書いておかないと、自分でもわからなくなりそうです。

%site {
  name スラッシュドット ジャパン
  url http://slashdot.jp/
  banner http://slashdot.jp/images/banner/slashdot-sberrym2.png
  desc アレゲな人のためのアレゲなニュース。
  rss http://slashdot.jp/slashdot.rdf

  # ヘッドラインセンサ
  headline-sense rss
  hl1 item[1], title[1].<, dc:date[1].<$": "~s/T.*//  &1,0
  hl2 item[2], title[1].<, dc:date[1].<$": "~s/T.*//  &1,0
  hl3 item[3], title[1].<, dc:date[1].<$": "~s/T.*//  &1,0
}

…何じゃコリャ、て感じ。サイトの登録には最低限、nameurl さえあればよいのですが、ヘッドラインを取得するとなると、どうしても複雑になってしまいます。

1.2. 実装について

Patraのヘッドラインセンサは、タグとか特定の文字列を目印に、突き進んでいくだけです。文法解析など一切やっていません。やるだけ無駄です。HTMLの文法なんて、まじめに解析する気にはなれません…というより、そもそも「正しい」HTML/XMLを取得できるなど、ハナから期待していません。Web上で取得できるリソースの多くは「不思議マークアップ」なHTML/XMLです。だから解析する必要はないのです。いや、きちんと解析してはいけないのです。悲しいけど、これが現実。

9月 3日 (水)

1. Patra

1.1. 分割

登録サイトの数、数えてみたら300近くありました。さすがにアレなので、いくつかに分割しました。

2. ランジェリー戦士パピヨンローゼ

げげ。ネタじゃなかったのか…

3. へぇ〜

近所の料理屋で、初めて「トリビアの泉」を見ました。

ほんと、くだらない番組ですね。掛け算の答えを見ただけで、「へぇ〜」。「数学って、美しいですね。」ってそりゃおめぇ、小学校の算数だよ。

9月 4日 (木)

1. Patra 動作確認

mozilla.org
HEAD, OPTIONS メソッドを受け付けません(500)。なぜに?
クリエイティブのホームページ
telnet から繋ぐとエラー(404)。ヘッダを見てるんでしょうか? User-Agent か、Accept-XXX か…
東武グループ
HEADを受け付けません(403)。405で返して欲しいなぁ。
Amazon.co.jp
302で飛ばされた先はHEADを受け付けません(405)。
オンライン書店 bk1
HEADを受け付けません(500)。
NetSecurity
302でhttps://www.netsecurity.ne.jp/に飛ばされます。HTTPSは勘弁して…

2. enqueue

  • キメラ(5)
  • エルフェンリート(4)

エルフェンリート(5)が見当たりませんでした。発売されてるはずなんですが。

9月 5日 (金)

1. Patra

設定ファイルを分割し、cronで仕掛けておきました。初めのうちは少々トラブるかもしれませんが、ご愛嬌ということで(ォ

9月 7日 (日)

1. ノーショット

サターン版シルミラ、ショットを撃たずにクリアできるか考えてみました。攻撃手段は伏せダッシュとリフレクトのみです。攻略本のマップを見ながらイメージ。

まず、クロッドを倒せないので、メギドコース確定。次、セーフル・ハ・ゾーハルもセーラも倒すのは無理っぽいので、クリア不能。

…終わっちゃいました。あかん。

一応、デバッグモード&VERY EASYでセーフル・ハ・ゾーハルとセーラに挑むも、まったく歯が立たず… 双方とも地上に降りてこないので、打つ手なしかと。

9月 8日 (月)

1. 空前の食玩ブーム

コンビニへ行くと、必ずおいてある食玩。お菓子のおまけと言うよりは、おもちゃのおまけにお菓子が付属している感じで、完全に主従逆転。法律上の問題でこういう売り方をしているらしい、と聞いたことがありますが、何だか違和感がありますね。

9月 9日 (火)

1. TDS

フォーム系コマンド追加。

# FORM  <method>  <action>  <ext_attrs>
type = block
template = <!-- begin form -->\n<form method="%1" action="%2" %ext_attrs>\n
end_template = </form>\n<!-- end form -->\n
num_attr = 2
allow_child = %Flow
# FIELDSET  <ext_attrs>
type = block
template = <fieldset %ext_attrs>\n
end_template = </fieldset>\n
allow_child = %Flow
# LEGEND  <legend>
type = inline
template = <legend>
end_template = </legend>\n
omittable_end = 1
# INPUT  <type>  <id>  <name>  <ext_attrs>
type = inline
template = <input type="%1" id="%2" name="%3" %ext_attrs />\n
num_attr = 3
omittable_end = 1
has_arg_content = 0
# TEXTAREA  <id>  <name>  <cols>  <rows>  <ext_attrs>
type = inline
template = <textarea id="%1" name="%2" cols="%3" rows="%4" %ext_attrs>
end_template = </textarea>
num_attr = 4
has_arg_content = 0
is_oneline = 0
no_parse = 1
# SELECT  <id>  <name>  <ext_attrs>
type = inline
template = <select id="%1" name="%2" %ext_attrs>\n
end_template = </select>\n
num_attr = 2
allow_child = %Inline
omittable_end = 0
has_arg_content = 0
is_oneline = 0
# OPTION  <ext_attrs>
type = inline
template = <option %ext_attrs>
end_template = </option>\n
omittable_end = 0
is_oneline = 0
has_arg_content = 0
# LABEL  <for>
type = inline
template = <label for="%1">
end_template = </label>\n
num_attr = 1
omittable_end = 1

1.1. test

1.2. fieldset

FIELDSETとLEGENDはまとめてもいいかも。

# FIELDSETL  <ext_attrs>
type = block
template = <fieldset><legend>%ext_attrs</legend>\n
end_template = </fieldset>\n
allow_child = %Flow

9月 11日 (木)

1. 通信用語の…検索サービス

ようやく辞書更新(遅すぎ)。

よくよく見ると、ひどいHTMLが出力されてるので、ちょっと修正しました。多少はマシになったかな…

全然マシじゃないのがPHPとPerlのソースで、見ると目が腐りそうになります。XML化のついでに直しましょうかねぇ。

9月 12日 (金)

1. TDS for LaTeX

LaTeX出力用のスケルトンとテンプレートを作ってみました。標準のアーカイブに入っているものを改造。そのままだとまともに動作しませんので…

…改造しても動かない罠。

罠は見出し(HD)と脚注(FN)にありました。いずれもテンプレートでAsHTMLメソッドを再定義しているのですが、Document.pmとClasses.pmによって上書きされてしまいます。AsHTMLメソッドを書き換えない限り、LaTeXには対応できませんが、LaTeX対応にすると標準の機能が殺されてしまうので、標準のHDとFNコマンドは使用できないということになります。

LaTeX用のコマンドを作れば解決しますが、「スタイル変えるだけで、HTMLでもLaTeXでも!」な環境にはならず、メリット激減。ふむー、悩みどころ。

2. シスプリガントレット

体験版をやってみました。経験値と得点はトレードオフの関係、かな?

今のところ、自己ベストは639万。1000万オーバーなんて、どうやったらできるんでしょう。

9月 13日 (土)

1. TDS

UNIX系OS + Apacheでの話。

TDSをStand-Aloneでインストールすると、web_diary_dirにプログラムソース一式がコピーされます。web_diary_dirは名前のとおり、web公開ディレクトリ下にあるので、そのままの状態では外部からでも直接ソースにアクセスできることになります。見られても影響はなさそうな気がしますが、気持ち悪いので、.htaccessやファイルパーミッションを変更して、外部からのアクセスを禁止します。

でも、これって何か変ですね。lib/, log/, split.pl, static.pl, ... なんかは web_diary_dir でなく、diary_dir(web非公開ディレクトリ下にある)でいいような気がします。

動的モードではCGIプログラムにアクセスできれば良いので、web_diary_dirに必要なのはCGIプログラムのみです。lib/ や dat/ などは、Apacheプロセスの実効ユーザがアクセスできればどこでも良いのです。

静的モードでは、web_diary_dirにはHTMLファイルと検索用CGIさえあればよいのですから、やはり lib/ やその他プログラムソースをweb_diary_dirに置く必要はないのです。

というわけで、今度はこのあたりを改善しようかと。

2. クリエイティブのホームページ

Patraやtelnetなどからリクエストすると、500や404が返ってくるので、その調査。WebサーバがIISだから、裏で何か変なことやってるんじゃないかなー、と色眼鏡で見つつ…

Hostフィールド、User-Agentフィールド共になし
Hostフィールドなし、User-Agentフィールドあり
404 Object Not Found。コンテンツHTMLのタイトルは 'Site Not Found'。「サイト」はあるじゃん…
Hostフィールドあり、User-Agentフィールドなし
500 Internal Server Error。
<p>Microsoft VBScript runtime </font>
<font face="Aral" size=2>error '800a0005'</font>
<p>
<font face="Arial" size=2>Invalid procedure call or argument: 'InStr'</font>
<p>
<font face="Arial" size=2>/includes/browser.asp</font>
<font face="Arial" size=2>, line 49</font>
コンテンツHTMLにこんな記述があるので、 おそらくユーザエージェントの判定でコケているのでしょう。 InStr関数で長さ0の文字列を処理しようとしたとか、そんなところでしょうかねぇ。 どうでもいいけどさー。

というわけで、おそらくユーザエージェントを書いてやらないとダメってことでしょうね。適当なユーザエージェントを指定してリクエストしてみます。

Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
OKです。
Patra/0.40 [ja] libwww-perl/5.69
だめです。
Mozilla/4.0 (Patra/0.40 [ja]) libwww-perl/5.69
これもだめです。
Mozilla/4.0 (compatible) libwww-perl/5.69
これはOKでした。
Patra/0.40 [ja] (compatible) libwww-perl/5.69
これもOKでした。

ということは、(compatible)という文字列があれば大丈夫なのでしょうか。何が「コンパチ」なんだか、よくわかりませんが、まぁいいや。

9月 14日 (日)

1. TDS-LaTeX

TDSでLaTeX出力する資料を検索しようとググってみたら、割とたくさんヒットしたのですが、ほとんどがTDS違いでした。

TDS = TeX Directory Structure

がっくし。

2. リカヴィネの真実

誰でもやってみたくなりますよね(?)

3. fractal

フラクタル画像でも描いてみるかー、と思いましたが、さてどうしたものか。

3.1. language

Javaで書くのがお手軽ですが、計算速度を考えるとCかなぁ、と。Cで書くとなると、Windowsに開発環境がない *1 ので、必然的にLinuxベースに。

3.2. PNG

画像処理をどうするか。出力形式として、不可逆圧縮形式は論外なので、BMPかPNGかに絞られます。BMPは嫌いなので、PNG形式で吐き出すことにします。とりあえずlibpngGDをインストール。

PNGファイル出力は「gdで楽々PNG作成」を参考にしました *2 。サンプル出力を確認して準備OK。

  • *1: cygwinでもいいんですが。
  • *2: このページのサンプルソースを読めば、読み込みから書き込みの流れが簡単に理解できます。良質なサンプルです。

4. Linux-ELF

プログラム実行時に、読み込むライブラリを動的に変更することってできるんしょうか。Windowsでいうところの「プラグイン」みたいな感じで。webで検索するより、Apacheのソース見たほうが速いかなぁ。

5. TDS-ruby 案

ルビ。

RUBY
RB base-text
RT ruby-text
/RUBY
<ruby>
<rb>base-base</rb>
<rp>(</rp><rt>ruby-text</rt><rp>)</rp>
</ruby>

複合ルビ。デリミタを指定できるとよいかも。

RUBY ","
RBC 薬,師,寺,涼,子
RTC やく,し,じ,りょう,こ
/RUBY
<ruby>
<rbc>
<rb>薬</rb><rb>師</rb><rb>寺</rb><rb>涼</rb><rb>子</rb>
</rbc>
<rtc>
<rt>やく</rt><rt>し</rt><rt>じ</rt><rt>りょう</rt><rt>こ</rt>
</rtc>
</ruby>

5.1. XHTML 1.1 DTD

複合ルビの場合に、rp要素を含めることが出来ないのはなぜ?

((rb, (rt | (rp, rt, rp)))
 | (rbc, (rtc | (rp, rtc, rp)), (rtc | (rp, rtc, rp))?)
 | (rbc, rp, rtc, rtc, rp))

何でこうしなかったんだろう?

9月 15日 (月)

1. MU Online

友人に「MUに参加しろー」って言われたんですが、推奨動作環境がちょっとねー。何でこんな高スペックを要求するんだか。今の環境では物理的に無理です。

MMORPGなどのネットゲーには手を出さないようにしています。理由は簡単。嵌るから。夜遅くまでプレイして、朝起きるのがつらくなって、…(以下略)になるのは目に見えています。廃人コースまっしぐらですよ、きっと。

2. アキバ

夕方、涼しくなってから出発。

  • デジカメの電源プラグ(EIAJ #1)
  • エルフェンリート(5)
  • 単4ニッケル水素電池
  • DVD-R

3. PXC250

ノイズガード用電源として、ニッケル水素電池を使ってみました。説明書には動作電圧がかかれていなかったので、2.4V(1.2×2)で動作するか心配でしたが、今のところ特に問題なく動いている模様。

4. MissionC

何でもキャラものにすればいいのか…

西暦20XX年、1つの政権が終わり、一人の悪が権力を握っていた。だが、それに立ち向かう勢力もあった。地下組織、エイダ。彼らのターゲットは、悪の中枢により掌握されたホストコンピュータ、『アースラ』。

ある日、キミは一人の少女と出会い、アースラを破壊するため、エイダでC言語の教育を受けることになる。それが、全ての始まりだった・・・!

Cで破壊されるホストコンピュータって、いったい何? M$製とか?

4.1. 体験版

main() の戻り値はvoidじゃなくてintだってば。

9月 16日 (火)

1. ダメ・コンパチ

Apache のアクセスログを見ていたら、こんなユーザエージェントを発見しました。

=?ISO-2022-JP?B?GyRCSH4+Lz13QG87ThsoQg==?=Sailor Moon Browser/0.41 Beta 1 (dame compatible :-)

デコードしてみます。

美少女戦士Sailor Moon Browser/0.41 Beta 1 (dame compatible :-)

…いや、何だって構わないんですけどね…

2. Gizmo I.Q.

体験版をやってみました。コンセプトはいいし、ルールも単純でとっつきやすいです。

ですが、プレイヤーの入力がダイレクトに反映されるゲーム(アクションゲームやシューティングゲーム)が好きな私にはちょっと不向きです。思考ルーチンを作成したら、後は見てるだけですからねえ。

9月 17日 (水)

1. クレオパトラの葬送

読了。少々ボリューム不足でしたが、さっくり読めました。

マリアンヌとリュシエンヌにはもっと活躍して欲しいところですが、初めてイラストが掲載されたから良しとしましょう。次回は是非メイド服で…

2. 小麦 KARTE 3

観せてもらいました。いやー、笑った笑った。

3. 版画の値段が一つ180K

安い部類に入ります。その人は多分、版画デビューして間もない人でしょう。だとしたら、そのくらいの値段が妥当でしょうね。

版画(リトグラフなど)って、手軽に量産・再生産できるものではありませんから、生産量、流通量が限られてしまい、時が経つにつれて入手しづらくなります。本当に欲しいのであれば、今のうちに買っておいたほうが良いでしょう。

版画の値段は、作家の版画家として功績を積むにつれて、年功序列のような感じで上がっていくらしいです。7年、8年と経験を積んできた人の新作なんて、平気で500K, 600Kなんて値段が付きます *1 。ですから、(版画家としての)初期の作品は、良質なわりに比較的安価で手に入る場合がありますので、実は狙い目だったりします。

ちなみに、私の欲しい某氏作の版画、以前お店の人に「3,000K出しても買えないでしょう。というか、値段がつけられない状態なんです。」と言われたんですが、今は値崩れしてるようですね。300Kくらいで買えるみたいなので、狙ってもいいかな。あ、でも飾るスペースがないですね。結構デカいからなぁ。

  • *1: ディーラーによるかも。

9月 18日 (木)

1. SX-Window

ひょんなことで会った某氏(初対面)。氏はSX-Windowの開発に携わっていたそうで、何でも、メーカー純正のCコンパイラの性能が悪いから、コードほとんどをアセンブラで書かざるを得なかったとか、そんな話をしてくれました。

いつどこでどんな人に会うか、わからないものですね。

2. 歌詞カード

現在の作成リスト。物と精度と歌詞の入手率にもよりますが、1曲作るのに、だいたい1〜4時間かかります。私に音楽センスがあれば、もう少し速く作れるんですが。

  • 鳥の詩
  • 愛のテーマ(巫女ナス)
  • Rumbling heart (Short ver.)
  • Spiral Destiny *1
  • Feeling Heart (To Heart)
  • sacred words (sense off)
  • Dunk! (Glove on Fight)
  • Melodies of life (FF9 日本語 ver. 1番のみ)
  • きみはホエホエむすめ (アイドル八犬伝:歌手不在。誰か歌わないかな…)

ギャルゲエロゲソングが増えていることに危機を感じます(何)

  • *1: 叫びの部分、「ろくしんがったーい!」でも通りそうな感じです。

9月 19日 (金)

1. 創竜伝12

読了。田中芳樹の現代小説はさくっと読めます。

9月 20日 (土)

1. りりか

やろう、やろうと思っていながら、手をつけていなかった、りりかの改修、というか、作り直し。

現行のプログラムは試験版をそのまま拡張したようなものなので、ソースがめちゃめちゃ汚いです。「モジュール化って何ですか?」な世界だし。ほんと、書き直したほうが良さそう。

2. 本

図書館から、予約した本が入ったと連絡が来たのですが、この雨では取りに行く気がせず。

9月 21日 (日)

1. 雨

今日も降ってるしー。

2. 逆相

逆相プレスCDって、そんなに多いんでしょうか。低音を強調するために、意図的に逆相にしているのが少なからずあるらしいですが、そんなことのために音質落としてるんじゃ、本末転倒ですよ。

ときどき、音の篭ったようなCDに出会うことがありますが、もしかしたら、アレが逆相?

3. りりか

3.1. 再設計

モジュールを10個くらいに分けました。ロードするモジュールを切り替えることで、多彩な出力が可能…になるといいな。

とりあえず、コアモジュールとさくらスクリプト変換モジュールだけ作成。

3.2. 動的ロード

ロードするクラスを動的に変える場合って、エバるしかないのかなぁ…

4. 巫女みこナース・愛のテーマ 〜仮歌バージョン〜

『柏木るざりん』自らが歌った仮歌をアップしました〜♪

…正気かオイ…

4.1. 神降臨

あ、BBSに九十九百太郎氏が来てますね。

9月 23日 (火)

1. ISO、コード課金を提案へ

…はぁ。やれやれ。

2. 本

図書館で、予約していた本2冊を借りてきました。片方はパラパラめくった後、読まずに返すことにしました。手元に置いておいたほうが良い本なので、後日購入することにします。

9月 24日 (水)

1. 秋

寒い日が続きます。米の不作が心配。

2. 口パク実験

妄想具現化計画実験フェーズ。ygs2kでの実装を考えましたが、どうせ実験なので手軽なところでWinamp+SSP。

2.1. surfaces

某ゴーストのシェルにサーフィス画像を10個ほど追加し、サーフィス定義を書き換えます。もちろんアニメーション付きで。「あ」「い」「う」「え」「お」「ん」と、いくつかの子音発音時の口画像があれば、とりあえずは十分でしょう。

さくらスクリプト変換モジュールを改造。日本語の場合、現代仮名遣いだと原則的には一字一音なので、歌詞の仮名の部分にはサーフィスコマンドを機械的に挿入することが出来ます。漢字や外国語の部分をどうしようか迷いましたが、ルビ(普通は仮名で記述される)の実装が完了しているのでそれを利用することにしました。本格的な対応はまた今度。

2.2. 実験開始

歌詞と口がピッタリ…というわけにはいきませんが、まあ、それっぽくは見えます。ウェイトの誤差や、画像の再描画によるタイムラグ等がありますから、多少のずれは致し方ありません。それに加えて、今回はWinampとTCP/IP通信も絡んでいますし。

ま、とりあえず今回は成功かな。

9月 26日 (金)

1. りりか

不備発見。内部正規化処理の練り直し〜。

連符、ルビ、発音表現周りの処理が厄介です。

9月 27日 (土)

1. アキバ

ちょっと買い物。

  • まほろまてぃっく (7)
  • BSD magazine (17)
  • CD-Rメディア

1.1. Mini-ITX

ファンレスのMini-ITXマザーが欲しいんですけど、これってケースや電源はどうするんでしょう?ファン付きの電源&ケースじゃ、ファンレスにした意味がないし。ケースもできれば小さいやつがいいですね。CD-ROMドライブは内蔵できなくても構わないので。

おとなしくEES-3610にしてしまうのも手ですが。んー。

2. BSD magazine (17)

帰宅後、買ってきた BSD magazine をおもむろに開いたところ、grep の正規表現の記事が目に入りました。とりあえずこの記事だけ読んでみたのですが、えーと…

間違った記述が多いのはこの記事だけですよね? 他の記事は大丈夫ですよね?

9月 28日 (日)

1. 七都市物語

読了。

2. 探し物

私の鉛筆削りは何処へいってしまったのでしょう。

3. なつかしもの

部屋を片付けていたら、昔使っていたヘッドホンステレオが出てきました。

適当なカセットテープをセットして、再生ボタンを押してみましたが、モーターがウーウーいうだけで、ちっとも回りません。駆動系がやられているのでしょう。さすがに10年近く使っていないと、ダメにもなりますね。

4. BSD magazine (17)

他の記事はまともでした。昨日は、運悪く変な記事から見てしまったようです。

小飼氏の記事が一番面白く読めました。