nDiki : 2004年02月上旬

2004年2月1日 (日)

[ photo ] 散歩

電柱 花

Nikon F3/T に NEOPAN 100 ACROS を詰めて近所を散歩。 家の前は電柱の建替中につき2本並立している。

無印良品

収納用品を見に立ちよったのだが、商品構成の変更で一部の商品が在庫のみとのこと。 統一して買い足していきたい人は困るだろうな。 紙管ラックとかも部材が無くなると困るよね。 店舗から引き上げるだけで無印としては無くならないのか、はたまた。

CD用に硬質パルプボックスを買おうと思ったのだが、あまり置いてなかった。 前はいっぱいあったのにな。 別の店舗に行くしかないか。

レンタルビデオ ユニックス(UNIX)

大井町レンタルビデオ屋が不足している事で有名(でもないか)。 ゼームス坂通りに1件ユニックスというレンタルショップがあるのだが、DVDプレーヤーを手にいれたこともあって覗いてきた。

こじんまり。

メジャーどころは一応揃っているが、DVDはまだまだ多くないな。 いろいろ借りたかったら、やっぱり通勤経路で途中下車するしかないか?

スポンサード リンク

過去の今ごろ

過去の2月1日より。

WiKicker 0.20 リリース

1ヶ月ぶりにリリースtDiaryテーマ対応・共有メモリ使用・Memcached使用など実験的なコードを沢山いれた。

Baby-G から怪音

25:00前、そろそろ寝ようかと思ったら部屋の片隅から「キーン」という高い周波数の怪音が。 「何だろう?」しばらく音源を探したところ、棚の上の方にしまってあった「Baby-G」からであった。

既に電池が消耗しており、液晶表示も消えてしまっている。 最後の微弱な電流で誤動作しているのだろうか。 適当にボタンを押したりしてみるも、いっこうに鳴りやまず。

しかたないので電池抜き。 しかし、工具箱から精密ドライバーを取り出そうとすると音が止まったり。 で「大丈夫かな?」と思うとまた鳴りはじめる。 まるで分かっているかのようで不気味。

結局やっぱり電池を抜いて対処。 精密ドライバーも昔持っていた安物のセットの数本がバラで何本か残っていたのみなので危なかった。 やっぱきちんと買っておいた方がいいな。 電池を抜くのに金具のロックを外す必要があったのだが、それに必要な細ーい棒が無くてマチ針を使ったり。

しかし、防水性能の高い腕時計でなくて良かった。

[ WiKicker ] wikiの編集機能を学習

NaneyOrgWiki を掲示板的に使っていたユーザの一人が、「編集」できる事に気がつきつつある様子。 不適切な(気にいらない)コメントを削除とかしているみたい。 そのページのコミュニティが成長しつつあるのかもしれない。ページ新規作成機能等や BracketName まで使いこなせるまで行くのか?

[ 2月1日全て ]

2004年2月2日 (月)

[ お仕事 ] 絶食

16:00 から健康診断なので、一応抜いておく。

過去の今ごろ

過去の 2月2日より。

蒲田 ペンギン

[ 蒲田 ] [ ペンギン ]

[ Linux ] SSH remote port forwarding

Web カメラ*1画像ファイルとか、ノート PC から cron で定期的にサーバへ送信している。しかしPUSHじゃなくてPULLも活用したい。

それから Web サーバはホスティングサーバなのであまりヘビーな事はできないし、ツールのビルドに必要なライブラリとかを一般ユーザで用意するのもいろいろ面倒ということで、一部の処理は手元のホストでやらせてもいいかなと。

だいたいいつもIPマスカレード下にいるので、トンネルを用意しないと。 SSHがやはりお手軽かな。 例えば、

 ssh -R XXXX:127.0.0.1:80 www.naney.org

しておけば www.naney.org 上からそのホストに

 wget http://localhost:XXXX/service.cgi?foo=1234

などとしてPULLできるようになる。 ...はずだがうまくいかないや。何故?

プライベートネットワーク同士ではうまくいったので「ルータがらみ?」かと思ったが、別の外部ホストに対して実験してみたところそっちではうまくいったので、そうでもない様子。

でいろいろチェックしてみたところ www.naney.org

 Feb  2 12:08:41 yyyy sshd[61628]: error: Hm, dispatch protocol error: type 80 plen 33

エラー吐いてた。 もしやと思って ssh 実行時に -1 したら成功。 通常の SSH接続だと ssh -2 でもつながるし、LocalForward でもプロトコル2でつながっているんだけどなぁ。

そういえば ssh -4 は 'Use IPv4 only.' (OpenSSH_3.6.1p2)。 'Force protocol version 4' が必要な時代がきたらどうするのかな?

*1休止中

健康診断

クリニック レントゲン装置

4年弱ぶり。 会社の近くのクリニックにて。

  • 尿検査 - 会社を出る準備の時にいつものようにトイレに入って半分出したところで「もしや?」と思ってキュッと止めた残りで。
  • 体重 - 並(最近のレベルという意味で)
  • 身長 - ちょっと伸びた?
  • 視力 - 矯正で 1.0 - 0.8。見にくい視力表だった。3月の免許書き換えはとりあえず問題ないかな。
  • 採血 - 痛くない看護婦さんだった。
  • 聴覚 - 問題無し (看護婦さんよく操作方法をわかっていなかった)。
  • 問診 - 問題無し。田中康夫似の先生。机にデスクトップVAIOがあった。
  • 血圧 - 60/110 (だったかな)。いつもと同じ
  • 心音 - 問題無し。
  • レントゲン - レントゲン車慣れしているので、このタイプのを見るのは初めてかも。以外に簡素。
[ 2月2日全て ]

2004年2月3日 (火)

[WiKicker] WiKicker の文字化け対応

WiKicker文字化けであるが Perl 5.6.x という環境が怪しそう。 ということで、ローカルに Perl 5.6.2 を入れてテスト。

 tar zxvf perl-5.6.2.tar.gz
 cd perl-5.6.2
 rm -f config.sh Policy.sh
 sh Configure -de -Dprefix=/usr/local/perl-5.6.2
 make
 make test
 make install

で /usr/local/perl-5.6.2/bin/perl -MCPAN -e shell でもりもり必要なモジュールをインストール

WiKicker のテスト。化けた。 追いかけてみると、Locale::Maketext モジュールが use utf-8 をしているため、l10n した文字列は UTF-8 として mark されてしまっているようだ*1。 で、mark されていない他の部分の(バイト列としてのUTF-8)文字列と結合したりしたところで化けたと。

ということで、Perl 5.6.x では maketext で帰ってきた文字列の UTF-8 mark を外すようにする。

 if (5.006 <= $] && $] < 5.7) {
     return eval "no utf8; my \$tmp = \$language_handle->maketext(\@param); \$tmp =~ /^(.*)\$/; \$1";
 }

という緊急処置コード。 Perl 5.005_03 では utf8 プラグマ自体が無いので、eval の中に入れておく。 v5.6.x での UTF-8 mark の外し方が良くわからないので、とりあえず正規表現に全マッチさせるというダサいコード(v5.8 だと utf8::* にそこら辺の関数があるのだが)。

*1Perl 5.6.x では Perl 5.8.x のように "UTF8" flag という呼び名はないのかな?

[ WiKicker ] WiKicker 0.20 で文字化け

F.KIMURAさんによると 文字化けするらしい。

あちゃ。たしかに fkimura Wikiで化けちゃってるな。 うーん。何だろ。 Perl 5.6 系だからかなぁ(開発では Perl 5.005_03 と 5.8.x でしかテストできていないので)。

は実験中のコードが要求するだけなので、WiKicker の実行には必要ないです。 やっぱり紛らわしいのでチェックコード外したほうがいいかな。

[ Debian ] Galeon 1.3.12

あちゃー、ブックマークツールバーを左側にくっつけられなくなっている。

Galeon を使い続けている一番の理由が、この「ブックマークツールバー」を4辺の好きなところに配置できるだったので悲しい。 いわゆる他の Web ブラウザサイドバー中のブックマークはフォルダが「開く/閉じる」形なのに対して、Galeon のそれはフォルダをポップアップメニューとして開いてくれるので非常に使い勝手が良かったのだ。

今後また、くっつくようになるのかなぁ。 今回のバージョンアップで textarea 中のキーバインディングがより Emacs に近くなったのは嬉しい点。

なつみかん」の開発・保守・運用を凍結します。

見逃していたが、

2003/12/24(水) 「なつみかん」の開発・保守・運用を凍結します。 今後のバージョンアップ・フォロー等は、気が向かない限り無いと思います。 -- 「なつみかん(NATSU-MICAN)」オフィシャルサイト

か。残念。 はてなアンテナの有料オプションの話もあるし、アンテナ業界(?)も変化の時期か? RSSも含めて今後どうなっていくのだろう。 LIRSなどのリモート取得関係とか。

他の実装

The diary formerly known as Go ahead make my day.より。

たまてばこ」「五月雨」はRubyか。サーバ容量に余裕があまりないので(ruby自体のインストールも必要とあって)ちょっと厳しいかな。 RNA は面白そう。RSS以外も取得できるといいな。pure Perlだし。 「第二アンテナ」はtDiary限定?

なつみかん」がGNU GPLとかで、どこかが引き継げればいいんでしょうけどね。

追記

「ありますよ、いよかんが」 (2004年2月6日追記)

過去の今ごろ

過去の2月3日より。

  • 豆まき
  • 今年はまだ買ってない。落花生があるから、あれでいいか? (の好物なのできっと良くない)。

豆まき

やった。 冗談で「落花生」とおもったが、実家では実際「落花生」で豆まきをしていたらしい。

[ 2月3日全て ]

2004年2月4日 (水)

ありますよ、いよかんが。

お座布団より。

いよかんというのがあるとの事。 おお。これで一安心。かな。

[ Debian ] shfsSSH 接続されたリモートホストのディレクトリをマウント

試してみる。 Linux kernel モジュールになるので、現在しようしているカーネルをビルドしたディレクトリ下で作業。

 su
 apt-get install shfs-source shfs-utils
 exit
 cd /usr/local/src/linux
 tar jxvf /usr/src/shfs.tar.bz2
 cd kernel-source-2.4.22
 MODULE_LOC=/usr/local/src/linux/modules fakeroot make-kpkg modules_image
 cd ..
 su
 dpkg --install shfs-module-2.4.22_0.32-2+sebastian.1.6_i386.deb

マウントしてみる

ノート PC から naney ユーザでリモートホストに接続する。 ローカルも naney.naney (1000.1000)権限で見えるようにする。 root で

 shfsmount naney@www.naney.org /mnt -o uid=1000,gid=1000,rw,nocache
 ls /mnt
 shfsumount /mnt

公開鍵認証できるようにしているので、パスフレーズ無しで接続できる。

mount コマンドだと、

 mount -t shfs naney@www.naney.org /mnt -o uid=1000,gid=1000,rw,nocache
 ls /mnt
 umount /mnt

autofs + shfs

autofs で自動的にSSH接続しマウントするようにしてみる。

/etc/auto.misc に以下の行を追加

 naneyorg -fstype=shfs,uid=1000,gid=1000,rw,nocache :naney@www.naney.org

でテスト。

 /etc/init.d/autofs restart
 ls /var/autofs/misc/naneyorg

OK。

自動的にアンマウントしない?

タイムアウト時間を過ぎてもマウントされっぱなしのようだ。

過去の今ごろ

過去の2月4日より。

似顔絵イラストメーカー

naney naney

Abi-Station似顔絵イラストメーカーで作成してみた。似てるかな?

「目・鼻・口・りんかく」の選択は結構迷う。

[ WiKicker ] textarea ビヨーン

今日IEで、WikiPage を編集しようとしたら textarea ビヨーンに遭遇。 CSS で'width: %' を指定していると発生する比較的有名な問題のようだが、WiKicker ではそういえば今まで起きていなかったなぁ。

昨日だか、今日だかに Windows Update をしたから? トリガーは何だか良くわからんが、IEユーザは少くないしなんか対策とらねばならないか。

しかしLinux開発していると、ここら辺の検証面倒なんだよねぇ。

[ 2月4日全て ]

2004年2月5日 (木)

過去の今ごろ

過去の2月5日より。

なか卯 豚どんぶり

[ 豚丼 ]

豚どんぶり

買ってみた。 ちょっと酸っぱいかな。 PCで作業しながら気がついたら食べ終わってた。

牛丼からの移行は業者側も消費者側も楽な一品って感じ。 同じ調理器具がそのまま使える感じだし。 どこでも言われているように280円に慣れてしまった今、400円は高く感じるな。

健康保険 被保険者証

カードになった。

紙のやつを先週一旦返却したため「早く新しいのがこないと花粉症が切れる! *1」という状況だったのだがが無くなる前に間に合った。

*1去年の残りを服用中。

[ 2月5日全て ]

2004年2月6日 (金)

スキージャンプ・ペア オフィシャルDVD

スキージャンプ・ペア オフィシャルDVD

遅ればせながら「スキージャンプ・ペア オフィシャルDVD」を買ってみた(意外に大きいお店では見つからなくて地元のレコード屋で購入、Amazon.co.jp で買った方が安かったな)。

面白いね。 これは買いだな。 もっとジャンプ数が多いといいなと思う反面、これ以上だと飽きるのかもしれない。

[ 花粉症 ] 花粉アレルギー対策に診療所

今年1度目の通院。 今日は会社帰りに17:30頃、いつもの診療所へ。 今日は副院長による診察(というかお喋り)。

  • 早めに飲み始めないと -> 去年の飲み始めてます -> それなら問題無し。
  • 去年4月からの規制緩和で可能になった1ヶ月分のを出してもらう。
  • (カルテを見つつ)去年も丁度2月6日にきてるわね。

ダウト。 2月6日に来たのは2年前。 去年は、民間療法を試して出遅れて 3月4日

n 年日記見返していたので、すぐ「アレ?」と思ったのだが突っ込まないでながしておく。

ということで

をもらってきた。 診察後受付でをもらうのだが、今年はが「トレー」に載せて出されてきた。 看護婦さんとの確認をしたあと、自分で袋に入れるようになった。 ミス防止のためにそのようにしたのだろう(過去にミスがあって改善策として導入されたとしたらそれはちょっと嫌だが)。

過去の今ごろ

過去の2月6日より。

無印良品 CDケース

日曜日に行った地元の無印良品に無かった硬質パルプのCDケースを、有楽町の店舗で購入。 さすがにここは品揃え豊富。

ブツの方であるが、CDケースのサイズに対してそれほど余裕のとられていない引き出しサイズなので(初回限定版などの)小洒落たジャケットに入っている奴などは入らない。 貧乏臭くビニールに入れてあるCD(ケース)も結構ギリギリ。

とりあえず良く聴くCDらを収納して、コンポの近くに並べておく。


[ 製品レポート ]

[ 2月6日全て ]

2004年2月7日 (土)

[ WiKicker ] あれこれポップアップ

ALIMIKA SATOMI さんのあれこれポップアップが格好イイので NaneyOrgWiki に組み込んでみた。

WiKickerで外部スクリプトを指定できるようになっていなかったので、プロパティの項目を追加して指定できるように改良。

あれこれポップアップで提供している ArekorePopup.js と ArekorePopup.css をヘッダで指定するだけで、title属性のバルーンが半透明ポップアップ化される。 素晴しい!

手元の Galeon と自宅の Windows 98 SE + IE6 ではうまく表示された。

過去の今ごろ

過去の2月7日より。

にごり水(13:00 - 17:00)

どこかに退避しようかとも思っていたのだが、曇ってきたし家で静かにしていることにする。

[ 2月7日全て ]

2004年2月8日 (日)

過去の今ごろ

過去の2月8日より。

自宅の電話番号電話すると、他人の家にかかる(NTT東日本)

12:XX 発信できない

電話 コンポの時計合わせをしようと思い、固定電話から 117 へかけてみたところオフフック時の「ツー」という音は聞こえるもののかからない。 「あれ?」

最初は電話機の不調かと思い、電源を抜いてリセットしたりADSL用のスプリッタを経由しないで接続してみたりしたがやはり発信できない(ADSLは問題なく接続したままである)。

PHSで自宅へかけてみると、PHS側では呼出し音が鳴っているものの自宅の方では呼び鈴鳴らず。 とうことで受発信とも駄目。

そういえばと思い、電話電池を交換(AC アダプタ 共有だが単4x4もはいっている)を交換してみるも変わらず。

実家から電話してもらう

PHSからではなく他の固定電話からだとどうだろう。 ということで実家から、電話をかけてもらった。

「違う男の人が出た」

ん? もう一度かけてもらったがこちらの呼び鈴はやはり鳴らず。 実家もまた違う人が出たら嫌だということで、すぐ切ってしまった。

おかしい。

12:49 自分でPHSにもう一度自分の家に電話してみる。

出た。他人が。 番号を確認したが、やはり違う番号の電話につながっているらしい。 明かに局側のトラブルだと判明。

12:53 PHSから故障受付にTEL

10分強ほどオペレータへの接続待ち。

担当に接続されたので、発信不可、違う人への着信の旨伝える。 PHSからつながったセンターは当該地域とは別のところということで、地元センターに連絡して5〜10分後に折り返すとのこと。

13:10 固定電話に折り返し

PHSに連絡が入ると思っていたのだが、固定電話にかかってきた。 やはりトラブルが発生しているとの事。 1〜1.5時間後ぐらいに、ウチに調べにくるらしい。

突然だな。来る前に連絡を入れてもらう約束をする。

さすがに局からだと直接固定にかけられるのだな。 切った後117にかけてみたが、やはりこの段階ではつながらない。

13:45 電話局より連絡

PHSにTEL。担当が20分後に来るとのこと。

13:55 NTT-ME東京到着

はやい。

「近所で何か工事とかございましたか?」 「先週ぐらいから電柱の建替工事が始まってますが」 「ではその際に入れ換わったかもしれないですね」

アパート外の配線箱を開けていろいろ調査し始めた。 どうやら、アパートの階下の人とクロスしていたらしい。

電柱 調査

アパートの下の人の方はノイズのっているようで、室内に入って確認作業をした様子。

結局ウチの方は、局の人の携帯電話から2度ほど通話確認をしただけで室内に上がってはこなかった(あわててちらかっているブツを別の部屋に移したのだが)。

ADSL回線の方は、作業中一度切れたものの再接続で問題なく復帰。 電話不通の間も、接続できていたということは階下の人も契約していたって事?

14:08 ごろ作業完了。 入れ換わっていた2日間程度の電話料金に関しては別途、電柱交換作業側のNTT東日本下請け会社?から連絡がはいるであろうとの事。

15:35 施行業者 代表取締役

菓子折り 施行業者の代表取締役がミニストップで買ったらしい菓子折りを持って来訪。

電話線交換時に、確認にきたが不在だったため信号確認のみを行ったがその時にミスを発見できなかったらしいとの事。

作業は一昨日夕方。 電話代の取り扱いについては「次回請求書で通常より大幅に増えていたりした場合には連絡して欲しい。期間も短かったので多分大幅に変化していることはないと思うが」との事。 きちんと課金計算等はしないつもりらしい。 不通期間の基本料金等の言及も向こうからはなかったな。 2日間程度で実害はほとんどなかったし、面倒な手続きまでして回収したいとは全く思っていないのでまあいいのだが。

Berkeley DB 4.2.52 + DB_File 1.808 をホームにインストール

[ Perl ]

DiKicker の二次データの保存先を何にしようか思案中。 MLDBM::Sync が候補なのだが、MLDBM::Sync::SDBM_Fileだとデータが大きくなった時に速度が出ないようだ。

このサーバ(FreeBSD)のPerl(5.005_03)は、DB_FileGDBM_Fileも有効になかったので今までDBMパッケージの使用は避けてきたのだが、さすがに今回は使えないと辛いかも。

ということで Berkeley DB も含めて DB_File をホームにインストール

db-4.2.52

 tar zxvf db-4.2.52.tar.gz
 cd db-4.2.52/build_unix
 ../dist/configure --prefix=$HOME/local/db-4.2.52
 make
 make install
 rm -rf $HOME/local/db-4.2.52/docs

インストール自体は特に依存するものも無く簡単。 ただし、このサーバでは丁度 busy だった事もあってビルドに2時間!もかかってしまった。 本来は暇そうな時にやるべきなのだろうけど、今日中にうまくいくか検証しておきたかったので、待った。

DB_File-1.808

 tar zxvf DB_File-1.808.tar.gz
 cd DB_File-1.808
 export DB_FILE_LIB=$HOME/local/db-4.2.52/lib
 export DB_FILE_INCLUDE=$HOME/local/db-4.2.52/include
 perl Makefile.PL INSTALLDIRS=site \
                  LIB=$HOME/local/lib/perl \
                  INSTALLMAN1DIR=/tmp/man/man1 \
                  INSTALLMAN3DIR=/tmp/man/man3
 make OTHERLDFLAGS="-Wl,-rpath -Wl,$HOME/local/db-4.2.52/lib"
 make test
 make install

libdb を実行時に検索させるのに LD_LIBRARY_PATH環境変数とか指定したくなかったので、-rpath を指定してしまった。 Makefile中の OTHERLDFLAGS 変数がリンク時に空だったので、ここで設定。

しかし libdb-4.2 でかいな。 Perl からの呼び出し一発目は結構時間がかかる。

[ 2月8日全て ]

2004年2月9日 (月)

過去の今ごろ

過去の2月9日より。

  • ST.JAMES'S CLUB 迎賓館
    • 1周年おめでとうございます。その後新居に入居・おめでたとイベント目白押しらしく。結局それから1度も顔を合わせていないな。まだまだ忙しいのかな。

[ WiKicker ] 自動InterWiki

一昨日実装した、 複数のキーワード集合による、AutomaticLinkモジュールを WiKicker CGI プログラムから使えるようにしてみた。

ローカルにおいておいたキーワードリストファイルを読み込み AutomaticLink 処理(WikiForum 内で AutomaticLink でマッチしていない部分文字列に対して)。 マッチした場合は InterWiki を使ってURIに変換しリンク化する。

あわせてIndexPage.txtWiKicker WikiForum 内の PageName を取得できるようにした。

これで例えば、2つの WiKicker WikiForumcron で互いの IndexPage.txt を定期的に取得し、AutomaticLink するようにすれば、相補的に連携する事ができるようになる(ただし AutomaticLink のみ。WikiNameBracketName は依然としてその WikiForum 内のみ)。

AutomaticLink でのリンク先は(指定した)任意の InterWiki で定義できるので、あるキーワード集合について Google検索結果ページや「はてなダイアリーキーワード」への自動リンクも実現可能(はてなダイアリーキーワード自動リンクAPIはキーワードリストではなく正規表現を返してくるので、元に戻す必要有り。またあれだけ巨大なキーワードリストだと毎回 AutomaticLink のために、trie 再生成するのも辛いのでもう一工夫必要)。

[ Perl ] Search::InvertedIndex

DiKicker のキーワードインデックス用の転置ファイル実装によさそげなモジュールはないかと CPAN をあたってみたところ、Search::InvertedIndex を発見。

Berkeley DB を複数束ねて大容量対応してあったりキャッシュ実装されていたりと高機能だが、それゆえ今回使うにはオーバースペックっぽい。 依存するモジュールもそれなりにあるし。

やっぱ、今回は自分で実装するかな。 しかし Search::InvertedIndex 自体は結構使えそうな感じなので機会があったら試してみたい。

AIM 5190 -> 80

ルータの設定の関係で社内からAIMできなくなっていたので proxy かなにかを通そうかと思ったら、何のことはない接続先をポート80にするだけでOKだった。

サーバ側で80でも待ち受けているってことか。 知らなかった。

マスク着用開始

今日から2ヶ月程度マスク生活が始まる。

[ 2月9日全て ]

2004年2月10日 (火)

[ WiKicker ] WiKicker脚注機能追加

WiKicker スタイルで日記を記述するにあたり欠けている機能として「脚注」がある。 Wiki としては必須でないので WiKicker には導入していないのだが、日記としては無いと困る。 脚注が使えると文を書く時に正直手を抜ける。 またハイパー日記システム上の旧記事をコンバートする時にも無いといろいろ面倒だし。

ということで実装

インラインブロック

さてどうしたものか。 WiKickerWRI (BracketName 等を含む識別子)としての実装なら、parser の変更もなく新しいWRI scheme の追加と対応するクラスを書くだけですむ。 しかし WRI は終端記号なので、そうすると脚注の中でWRIを使えなくなる。 それは困る。

ということで、やはり非終端記号が必要。 悩んだあげく、

 {{scheme: ... }}

という「インラインブロック非終端記号」を導入。 {{..}} というのは確かいくつかの WikiEngineプラグイン呼び出しで使っている記法だったような。

  • 一般的な文章中には現れず、
  • かといって文章中に混ぜてもそれほど違和感なく(wiki ではこれが重要)
  • これ以上文法を追加したくないので、今後機能追加の際に利用できるように scheme 指定できる

といった点から、このようにしてみた。 2番目の点で合格点の出せる記法かどうかは微妙だが、まぁ許せる範囲かな。

{{ }} は、1行中に現れる必要有り。 「...」は scheme specific part だが、今のところ scheme によらず、InlineParser で解析されて部分木になるため、WRI とか ... とかも書ける。 InlineParser では正規表現を使っていて括弧の数は数えないので、今のところ {{ }} の中に {{ }} は書けないが、まぁ問題ないでしょう。

脚注記法

脚注は、

 {{fn: ...}}

となる。 普通。

実装

  • InlineParser の拡張
  • InlineBlockNode クラスの追加
  • 各 Visitor に visit_InlineBlockNode を追加。
  • HtmlFragmentVisitor に fn: の処理を追加。

いざ実装してみると、ちょこっとのコードで実現。 脚注番号の降り方とか、今後改良する点はあるけど、大枠は完成。

過去の今ごろ

過去の2月10日より。

Wiki文法の標準化

今まで触れなかったが、やはり文法拡張する際は気になる存在。

各方面で出ている賛否どちらの意見もうなずける点が多く、自分の思いつく点もだいたいどこかで語られている感じ。

私が最初に Wiki の存在を知ったのは、やまだ君からだった。 当然「記法(文法)は?」というのがまず気になった点だったが、その時すでに「Wiki文法WikiEngine毎に異なる」という事だった。

WiKicker という新しい WikiEngine を作る際には、もちろん各 Wiki文法を調べたのだが、それはもう様々で。 「見出し」記号など単純に流派的なものと、ブロックプラグインなど設計思想に依存するものがあって、特に後者はどれかを統一して選択するのは難しいと感じた。

WiKicker では(もともと利用していた) YukiWiki2 に emacs-wiki の [[A][B]] を加え、その他の文法要素と表記は、

  • 見やすさ
  • メジャー度
  • WiKicker のベースの文法と衝突しない
  • 行指向を採用(行を越えた、開始・終了を利用者が明記しないで済むように)
  • 構文解析しやすい (実装の容易性は、高速化・独自ツール作成時に重要)

あたりをポイントに決めた。

将来標準(ができたとして)に準拠する?

多分しないな。 面倒だし。

[ 2月10日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.053758s / load averages: 0.43, 0.51, 0.50
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker