nDiki : 2004年06月上旬
2004年6月1日 (火)
■ 過去の今ごろ

過去の6月1日より。
- プログラミング言語演習I第6回
- そういえば、今は Ctrl-] でもIPA(quail)にはいらないな。昔はたまに押し間違えていたっけか。今だと M-x set-input-method で IPA だけれど、まあ使わないよな。
■ HTTP/1.0 Simple-Response

「ある無線基地局のWeb管理画面の制御をスクリプトでしようとリクエストを送ったら、Status-Line 無しでボディが返ってきたよ」という話。 でRubyのライブラリや wget だとエラーになるとのこと。
@ HTTP/0.9 Simple-Response
RFC1945 6. Response で、Status-Line をともなわない「Simple-Response」というのが定義されている(HTTP/1.1 RFC2616 にはない)。
HTTP/0.9 Simple-Request (RFC1945 5. Request) を受けた時のみ Simple-Response を送信すべきとあるが must ではないようだ。 HTTP/1.0 Full-Request を送信して Status-Line で始まらないレスポンスを受けたら、Simple-Response とみなすべきとある。
GET Request-URI HTTP/1.1 CRLF
を受信した HTTP/1.0 サーバが Simple-Request を返しても違反とはいえないのかな。 まぁ行儀が悪いことには違いないが。
@ Perl libwww-perl の場合
Perl のライブラリをみてみた。
libwww-perl の Net::HTTP::Methods::read_response_headers では laxed => 1 が指定されると、Status-Line が無い場合 HTTP/0.9 な 200 と判断するようになっている。
LWP::UserAgent を使うと laxed => 1 が設定された状態で呼ばれるので、Simple-Response もうまく処理できるはず。
@ Server: GR-HTTPD Server/2.20
Server レスポンスヘッダフィールドにある GR-HTTPD っていうのは国産の組み込みWebサーバのようだ。
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
- POE で HTTP プロキシサーバ (2005-10-15)
- Tor で hidden service (2005-02-13)
- Firefox 拡張機能の整理 (2005-02-05)
2004年6月2日 (水)
■ 結婚記念日

帰りに花でも買ってみる(一部は自己満足で、一部は nDiki ネタ用という気持ちがないわけでもない)。花瓶のありかがすぐわからなかったので、暗室用品のメスシリンダーで代用。
ディナーは松屋で。
- 体育の日 (2006-10-09)
- www.naney.org 容量超過警告につきダイエット開始 (2006-10-03)
- amaroK で聞いた曲を Web ページで表示 (2006-02-02)
- mixiに登録 (2004-11-19)
- Naney's Diary 2004年分記事を nDiki に移動 (2004-09-16)
■ 過去の今ごろ

過去の6月2日より。
- 結婚
- 3年経ちました。
- ADSL故障問い合わせ
- 今回のモデムはとりあえず1年経ったが問題は出ていない様子。
- モデム故障…… (2000-09-26)
- パルディオ用 PHS 通信カード DC-6S を購入 (1999-09-22)
- ウェスティンホテル淡路 (2004-10-25)
- ダイソーのジョイントラックでルータ台を組む (2007-05-01)
- 過去の今ごろ (2004-03-24)
■ 父の死

私は小6で父を亡くしているせいか、映画の中での父親との死別シーンというのはどうもドライな視点になってしまってあまり感情移入できないのだが、他のひとはどうなんだろう。
単純に考えると、「父の死」を体験している人の方がそうでない人より感じるところがありそうに思えるのだがと。
もちろん人それぞれだと思うのだが、自分の場合はまだ小6だったからな。 その時も特に涙は出なかったし。 その後父がいないのが日常になり、もはや喪失の可能性はなくなった。 死は1度であるから。 逆に父の死という恐怖感はもう無いわけである。
ということで(父に関する)「死の悲しい記憶」も「恐怖」も無いからドライでいられるのかもしれない。
「(父ではなく)自分が亡くなった時、その記憶を思い出す時もドライなの?」と妻の問い。 今後の人生における人の死はもっと重い記憶になるのは間違いない。
- リング (2002-11-18)
- 博士の愛した数式 (2007-02-23)
- [ 映画鑑賞 ] ビッグ・フィッシュ (2004-05-31)
- [ 映画鑑賞 ] シンデレラマン - あしたのジョーを久しぶりに見たくなった (2005-09-23)
- 合格 (2004-11-12)
■ [ Perl ] Class::Virtual

先日「Perlでは子孫クラスにメソッドの作成を強制させられない(純粋仮想関数を宣言できない)のがネックだよね」という話をしたのだが、モジュールで実現している人がいた。
CPAN にある Class::Virtual では純粋仮想関数の宣言(呼ばれるとエラーをおこすサブルーチンを定義)をするためのサブルーチンと、継承したクラスで定義漏れのある仮想関数をチェックするメソッドが用意される。
また Class::Virtually::Abstract を使うとコンパイル時に自動的にチェックさせる事ができる。
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
- Perl の MIME-tools 4.121 ライブラリをインストール(2) (1999-02-03)
- Perl で遺伝的プログラミング (2004-07-05)
2004年6月3日 (木)
■ 過去の今ごろ

過去の6月3日より。
- graphviz でアンテナリモート取得グラフ
- 例によって最近更新していないな。この間リモート取得先を追加したから反映させねば。
■ Perlプログラムのコードカバレッジ解析

真実32 充分テストをしたとプログラマが自信を持つソフトウェアでも、全パスの50〜60%程度しか網羅していない。 パス・カバレージ・アナライザのような自動化ツールを使うと、網羅率が85〜90%に上がる。しかし、100%のパスを網羅するのは不可能だ。
真実34 ツールを使わないと、不良除去はうまくいかない。デバッガはみんな使うが、カバレージ・アナライザは、ほとんど使わない。
ということで、Perl 用のカバレッジ分析ツールを探してみる。 CPAN にある Devel::Cover が良さそげ。
@ Debian BOX にインストール
apt-get install libtest-differences-perl \
libpod-coverage-perl \
libtemplate-perl
してから Devel::Cover をインストール
dh-make-perl --cpan Devel::Cover --build dpkg --install libdevel-cover-perl_0.45-1_i386.deb
@ WiKicker のコードカバレッジをチェックしてみる。
WiKicker はExtUtils::MakeMaker を使ってパッケージ化しており、テストは t/*.t を使用するようになっているので、そのまま分析をする事ができる。
perl Makefile.PL make cover -delete HARNESS_PERL_SWITCHES=-MDevel::Cover make test cover
出力はこんな感じ
Reading database from /path/WiKicker/source/cover_db ---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt branch cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ blib/lib/WiKicker.pm 100.0 n/a n/a 100.0 n/a 0.0 100.0 ...cker/App/Configuration.pm 44.1 0.0 n/a 62.5 n/a 0.0 41.7 ...icker/App/MarkUpAsHtml.pm 38.1 0.0 0.0 66.7 n/a 0.0 34.8 ...CGI/AbstractController.pm 24.8 0.0 n/a 47.4 n/a 0.0 23.6 [snip] ...ageHtmlFragmentVisitor.pm 100.0 n/a n/a 100.0 n/a 0.0 100.0 ...icker/WikiPage/WriNode.pm 96.4 83.3 n/a 88.9 n/a 0.9 93.0 .../tDiaryFragmentVisitor.pm 32.3 0.0 n/a 33.3 n/a 0.0 29.8 Total 59.2 41.3 31.4 67.5 100.0 100.0 56.7 ---------------------------- ------ ------ ------ ------ ------ ------ ------ Writing HTML output to /path/WiKicker/source/cover_db/coverage.html ... done.
cover_db/coverage.html に各モジュール毎のコードカバレッジが表示される。 また、各モジュールファイル毎のレポートもHTMLで作成され、プログラムの各行毎のカバレッジがプログラムとともに表示される。
なかなかいい感じ。さすがにパスカバレッジはサポートしていない。
コードカバレッジを上げてもバグ0にはなるとは全然言えないのは承知しているが、テスト漏れを減らすための情報として結構使えそうだ。
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- Devel::CoverとAutoLoader (2004-06-04)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
2004年6月4日 (金)
■ 過去の今ごろ

過去の6月4日より。
- Win32 で WiKicker が落ちるのは binmode の設定忘れのせい (2005-04-18)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- mixiに登録 (2004-11-19)
- WiKicker へのセッション管理/認証/承認機能追加開始 (2006-03-02)
- 有給休暇 - フリーソフトウェア開発をするために会社を休む (2006-03-02)
■ Devel::CoverとAutoLoader

[ Perl ]
コードカバレッジをチェックするDevel::Coverであるが、AutoSplit / AutoLoader を使っていると分割されたサブルーチンが対象にならない。WiKicker では AutoLoader を多用しているので、ここがチェックされないと意味がない。
ということで Devel::Cover下でテストする時は AutoLoader を使わないようしてみる。
perl Makefile.PL WIKICKER_NO_AUTOLOAD=1
とした時はExtUtils::MakeMaker::WriteMakefile に PM_FILTER として
q($(PERL) -e "while (<>) {s!^\\\\s*use\\\\s+AutoLoader.*!!g; s!^__END__!!g; print} print qq(\\n1;\\n); ")
を渡すように Makefile.PL を修正。これで
perl Makefile.PL WIKICKER_NO_AUTOLOAD=1 make cover -delete HARNESS_PERL_SWITCHES=-MDevel::Cover make test cover
とすると AutoLoader を使わないバージョンでチェックができる。
- Perlプログラムのコードカバレッジ解析 (2004-06-03)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- Module::Build でソースパッケージング (2005-08-24)
- [ DiKicker ] Term DB の改良 (2004-06-12)
2004年6月5日 (土)
■ 過去の今ごろ

過去の6月5日より。
- 「この人臭いんですけど」
- 打ち合わせする相手が臭いと辛い
■ [ WiKicker ] キャッシュまわりにバグ

Memcached まわりをいじったので、キャッシュ具合をテストしていたら変な現象が。 WikiPage が表示されるべきところに、検索結果が表示されている。 あれ?
@ ページの内容が表示されるところに検索結果が
WiKicker では WikiPage のレンダリング結果も検索結果もキャッシュしているが、それぞれ別のキャッシュキーになるようにしている (WiKickerのバージョンを $V とすると、'$V:h:ページ名' と '$V:s:検索語')ので混ざるはずがないんだけれどな。 キャッシュしているデータの形式も違うし。
最初は Memcached まわりのアップデートで不具合がでたのかと思ったが、戻しても変わらない。ということは、ずっと以前からこの問題が発生していたのか。 やば。 設定でニックネームを設定している(cookie に保存している)と、その Web ブラウザに対してはキャッシュ機能が働かないようになっているので発見が遅れてしまった。
で結局コードをチェックしてみたら「WikiPage 表示と検索結果表示の View クラスを同じにしていたため、検索結果のレンダリングが WikiPage レンダリング結果と同じ領域にキャッシュされる」という風になってしまっていた。 ということで誰かがページ名で検索するとそれがキャッシュされてしまい、ページを読もうとしてもキャッシュ破棄されるまで検索結果が表示されてしまうというひどい状況になっていたと。
修正。
@ キャッシュキーのバグ
Memcached の出力をチェックしていたら、たまにエラーが起きていることを確認。 Memcached のプロトコルをチェックしたら、キーには制御文字と空白は使えないとある。 Cache::Memcached を見たらキーはそのまま through するだけ。 ということでページ名に空白が含まれている場合などの時には、まずい事になっていたようだ。 こちらは、キーを自前でエンコーディング(ページデータベースファイル名の作成に使っている base64 の亜種)するように修正。
- [ WiKicker ] Memcached を使った検索結果のキャッシング (2004-01-15)
- [ WiKicker ] SpeedyCGI 対応するも…… (2003-11-09)
- [ Perl ] Memcached を使ってみる (2004-01-12)
- [ WiKicker ] WikiPage のHTMLレンダリング結果のキ... (2004-02-14)
- Cache::Memcached 1.13 の Perl 5.005_03 対応 (2004-06-05)
■ パッチ作り

そういえばパッチなんて滅多に作らないな。Cache::Memcached のパッチを作った時の手順をメモしておく。 公開する場合のパッチの作り方はこんな感じでOK?
--- 作成 tar zxvf Cache-Memcached-1.13.tar.gz cp -a Cache-Memcached-1.13 Cache-Memcached-1.13.orig emacs Cache-Memcached-1.13/Memcached.pm diff -ur Cache-Memcached-1.13.orig Cache-Memcached-1.13 > Cache-Memcached-1.13-5.005_03-20040605.diff --- patch する時 tar zxvf Cache-Memcached-1.13.tar.gz patch -p0 < /tmp/Cache-Memcached-1.13-5.005_03-20040605.diff
- 別の人の作業ファイルをCVSにマージ (2005-02-17)
- Cache::Memcached 1.14 の Perl 5.005_03 対応 (2004-07-31)
- [ Debian ] GRUB でソフトウェアRAID1 ブート設定 (2004-01-05)
- 13:40 w3m インライン画像 patch (2001-10-01)
- すごいKPT事後評価セッション (2005-10-07)
■ 元家庭教師の旦那は一級建築士

妹の学生時代の家庭教師だった方が最近リフォーム・引越しをし、そのリフォームの話がテレビ東京18:30からの番組「辰巳琢郎の夢リフォーム」で紹介されるというので視聴。
30分まるまるそのお宅の話だった。先生の顔こんなだったかなぁ。
リフォームは、さすが旦那自身の設計とあって夫婦の希望通りという感じ。 「大改造!!劇的ビフォーアフター」のように、デザイナーのひとりよがり(と私は感じる)一工夫が入っていなく無駄がなくていいな。 最初からリフォームを念頭に中古マンションを購入とのこと。
遠いかすかなツテではあるが、なにかの機会があったら頼みたいかも。 しかし「リフォーム代約800万円 (設計費除く)」ってそんな金ないない。
- スクウェアフォーマットピンホールカメラ PP35/SQ[tigre] (テ... (2005-10-20)
- マクドナルド イエス・ノー・コイン (2004-06-27)
- jpegtran で Exif データを削除 (2004-11-27)
- 今日のさえずり - 納豆にオリーブオイル+胡椒 (2008-08-02)
- 黄金のキョロ缶オープン (2008-08-02)
■ Cache::Memcached 1.13 の Perl 5.005_03 対応

WiKicker で使用しているキャッシュシステム Memcached 用の Perl API Cache::Memcached が新しくなっていたので、入れ換え。
1月に入れた時と同様、Perl 5.005_03 ではそのまま動かないので一部を修正。 前回はCVSスナップショット(Memcached.pm revision 1.8)に対する修正だったので手元で修正しただけだったが、今回はパッチも作っておく。
修正点は
- our を使わないようにする。
- fields::new を代替コードに。
- IO::Handl::blocking を代替コードに。
- use bytes を使わないようにする。
といったところ(WiKicker で使っているところのみ修正)。
以前は Use of uninitialized value がかなり出ていたのだが、 Cache::Memcached のコード自体が綺麗になったのかこれらも出なくなっていい感じ。
- Cache-Memcached-1.13-5.005_03-20040605.diff
- Cache-Memcached-1.13 ディレクトリのある場所で patch -p0 < パッチ
- [ Perl ] Memcached を使ってみる (2004-01-12)
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- Memcached 1.1.11 (2004-06-05)
- Cache::Memcached 1.14 の Perl 5.005_03 対応 (2004-07-31)
■ Memcached 1.1.11

Perl API (Cache::Memcached)のアップデートのついでに、Memcached 自体もアップデート。
cd /tmp wget http://www.monkey.org/~provos/libevent-0.8.tar.gz tar zxvf libevent-0.8.tar.gz cd libevent-0.8 ./configure make cd .. wget http://www.danga.com/memcached/dist/memcached-1.1.11.tar.gz tar zxvf memcached-1.1.11.tar.gz cd memcached-1.1.11 CFLAGS='-L../libevent-0.8 -I../libevent-0.8' ./configure --prefix=$HOME/local/memcached-1.1.11 make make install
- Cache::Memcached 1.13 の Perl 5.005_03 対応 (2004-06-05)
- [ Perl ] Memcached を使ってみる (2004-01-12)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- Twitter への書き込みを自動的に Skype ムードメッセージに設定する (2008-02-25)
- MAILPIA による Twitter リプライチェック (2008-11-18)
2004年6月6日 (日)
■ 過去の今ごろ

過去の6月6日より。
- 今日のさえずり - 上げ潮特大号 (2008-09-18)
- Firefox 拡張機能の整理 (2005-02-05)
- Task Coach で GTD (2008-06-23)
- [ DiKicker ] くっつき BBSをくっつけてみた。 (2004-05-04)
- 給与制度改革 (2005-01-05)
■ パイナップル

めずらしく丸ごと買ってきた奴。 「芯抜く器具無いよ」と思ったが、考えてみたら普通に縦に切り分ければ関係ない。 最初にイメージしたのが輪切りだったので。
父「たいしたもんじゃないな。」
うちで買ったやつは、甘くてなかなかよかった。
■ [ WiKicker ] 0.23 リリース

キャッシュまわりのバグを修正した WiKicker 0.23 をリリース。
- [ WiKicker ] キャッシュまわりにバグ (2004-06-05)
- [ WiKicker ] SpeedyCGI 対応するも…… (2003-11-09)
- [ Perl ] Memcached を使ってみる (2004-01-12)
- WiKicker 0.27 リリース (2005-10-05)
- WiKicker 0.28 リリース - バグ修正版 (2005-10-06)
2004年6月7日 (月)
■ ハイパー日記システム と Log::Log4perl

朝、Naney's Diary をチェックしたらエラーが出てしまっている。 昨日 WiKicker をアップデートした事による影響か。
チェックしたところ、hns ではライブラリに HTTP というパッケージがありその中で Request サブルーチンが定義されていた。 これが HTTP::Request モジュールと被っており、今回 WiKicker の更新で間接的に使用されることになった Log::Log4perl の中での new HTTP::Request と衝突する事に。
名前空間大事。
hns の方の HTTP::Request サブルーチンはそのパッケージ内でしか呼ばれていないようなので、HTTP::RequestSub と名前を変更して対処。
- WiKicker 0.30 リリース - トップページのページ名を変更でき... (2006-05-22)
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- [ Perl ] Log::Log4perlのはまりどころ (2004-03-02)
- WiKicker における PageName 最長文字数 (2006-06-10)
■ 過去の今ごろ

過去の6月7日より。
- emacs-wiki に LaTeX コードを書けるように
- PC乗り換えてから、うまく生成できなくなってしまっている。直さねば。
■ Unison で展示会機器のセットアップ

来週の展示会の準備として、数台のWindows BOXにソフトウェアやらデータやらをセットアップ。 まだ確定していないデータなどもあるので、こまめに同期する必要あり。
ということで USB メモリに
- unison.exe
- ブートストラップバッチファイル
を書き込む。
1台目(マスター):
2台目以降:
後はどっかで変更したら適宜同期。
Unisonはインストール不要で exe 1個で動くのでこういう時に便利。 Windows だと -fastcheck true にしないとかなり遅いので注意。
時限的な作業で sshd を入れるのもなんなので Unison の Socket メソッドを使っているのだが、この方法だとまったく認証が無いのでちょっと気持ち悪い。 Socket モードでも rsync 程度の認証機能ぐらいは欲しい。
- TrueCrypt で USB メモリに Windows と Linux ... (2006-12-14)
- Unison + Zebedee (2004-06-11)
- xyzzyを読み取り専用メディアから起動する (2004-07-28)
- Unison で Windows 間 sync (2003-10-24)
- 1インチポータブル HDD HDMC-U12 インプレッション (2006-12-28)
2004年6月8日 (火)
■ ソフトウエア開発 55の真実と10のウソ読了

いろいろ考えさせられる本。
ウソ5 - ソフトウエアには、もっと開発方法論が必要である。
というのはかなりドキっとさせられる。開発方法論が駄目だとどうすればいいのか。 (状況に応じて)自分なりのパターンを作って適用していくのも意味がないのか。 毎回毎回うんうん唸ってその場限りの作戦を立てなければならないのか…。
よく読むと
筆者の意見は、小文字の m の methodology は善である。 大文字の M の Methodology は悪であり、使う場合は相当の注意を払うべきだ。
とあり、なるほどと。
アジャイル開発、エクストリーム・プログラミングに対する話も随所で述べられていて興味深い。
真実23 - プロジェクトが途中打ち切りになる二つの原因のうち、一つは、仕様を凍結できないことだ。
もかなり納得。
技術者もそうだが、ぜひ上層部の人たちに読んでもらいたい。 「見積もり」とか「要求仕様」とか「保守」とか。
- Joel on Software - 必読書 (2008-08-14)
- どうみても、そのままでは失敗しそうなプロジェクト (2005-05-16)
- すごい会議 - 短期間で会社が劇的に変わる! (2005-05-27)
- トム・デマルコ ゆとりの法則 - 誰も書かなかったプロジェクト管理の誤解 (2004-04-17)
- ソフトウェアかんばん (2005-10-28)
■ 過去の今ごろ

過去の6月8日より。
- 座椅子
- 1年たたないうちにガタがきた。尻の下のウレタンフォームがどうやらパックリ割れているようなそんな感蝕。ジーンズのベルトにつけっぱなしのカラビナがひっかかって、背もたれにほつれがきているのは自分の問題だ。
- 常に持ち歩くアイテム用に PORTER SMOKEY バッグ - 誕生日プ... (2007-04-27)
- EDWIN 403 SOFT FLEX 16/beige (2006-08-05)
- ジーンズ新調 (2004-05-29)
- 母がスーツを仕立ててくれた (2005-10-23)
- 505-0397 ダークリアルユーズド (2005-06-12)
2004年6月9日 (水)
■ 過去の今ごろ

過去の6月9日より。
- 2001年6月9日-- 32にもセクションを分けて書いてある。hns は記事の順次が維持され、Naney's Diary もそれを意図して書いているものがあるが、DiKicker はそのようにしていないので将来コンバートする時にこまるな。要検討。
- DiKicker に n 年日記機能を追加 (2006-11-03)
- 21:00 [ nDiki ] hnsからDiKickerへ (2004-02-22)
- hnsのキャッシュを有効に (2004-03-03)
- ハイパー日記システム と Log::Log4perl (2004-06-07)
- サーバの負荷が高くなったら DiKicker が 503 を返して沈静化を... (2007-04-05)
■ ハッシュとは

新人に Perl のハッシュの話をしていて、ふと隣にいた5年選手のプログラマに「ハッシュって何ですか」と質問してみた。
「キーと…」と連想配列としての使い方は理解していたが、「もしや」と思った通りハッシュ表、ハッシュ関数、チェイン法、開番地法といったことはまったく知らず。 当然、自分で書いたこともなし。
「クラスとかあるから…」
まぁ Java でも C++ でも Perl でも基本的なデータ構造はだいたい何らかの方法で提供されており多くのケースではそれらを使うのがよいのは事実。
しかしハッシュ・リンクリストや各種ツリーは1度は実装した事があるべき。 そもそも原理を理解していないと適切にデータ構造を使い分けられないし、速度・メモリ効率とかの検討もできない。
データ構造とアルゴリズムの基本は(当然)押さえとけ。
- Eclipse 3.0M8 (2004-04-19)
- 「○○についてのお薦めの本、ありますか?」 (2006-06-27)
- 新入社員 (2004-04-16)
- assertion (2004-05-16)
- 第4回 社内 Perl 勉強会 (2006-05-22)
■ 誕生日(妻)

本人の前で誕生カードを書くという初の試み (手抜き?)。
- 誕生日(妻) (2006-06-09)
- 誕生日(妻) (2005-06-09)
- 今日のさえずり - メールの着信音をホワイトベース警戒警報音にしたのだが、... (2007-10-24)
- ハンバーグお持ちしました (2006-01-02)
- カリ甘で美味しいニュージーランドのアイスクリーム「ホーキーポーキー」 (2007-07-11)
2004年6月10日 (木)
■ 過去の今ごろ

過去の6月10日より。
- Gauche 0.7
- まただ。いつも「今度は Scheme でも」と思うのだが、すぐやめてしまう。
- 新入社員 (2004-04-16)
- Scheme でプログラムを書く (2004-08-09)
- PerlでScheme実装 (2004-08-13)
- Perl で lex/yacc (1999-01-20)
- ぼちぼちと Scheme 処理系実装中 (2004-08-16)
■ [ WiKicker ] Acceptor とか ロックとか

HTMLレンダリングなどは WikiPage の構文木に対する Visitor パターンで行っている。
かなりの回数呼ばれるダブルディスパッチ部分、現在は accept の中で 'visit_クラス名' を呼ぶようにしている。 Acceptor クラスの accept メソッドでインスタンスのクラス名を取得してディスパッチしているのだがもったいない。
各サブクラスで明示的に accept をオーバライドするのが面倒なのでそうしていたのだが、今回は Acceptor モジュールを use した時にそのパッケージに accept 定義を作ってしまうように修正してみた。
@ ロックの方
アクセスが連続的にある時はDBに対して共有ロックがかかり続けるため、書き込みのための排他ロックがなかなか取得できない。 現在はDB全体でロックしているのだが、そろそろ「ページ名リスト」と「各ページ」を別にロックするようにした方がいいかもしれない。
- [ WiKicker ] form/list の paragraph から... (2003-05-03)
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- [ WiKicker ] RCSファイルのリビジョン間引き (2004-04-04)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- WiKicker 0.27 リリース (2005-10-05)
スポンサード リンク
■よく検索されるキーワード
提案書(75) torrent(69) perl(61) 書き方(45) 充電式カイロ(43) windows(38) x31(36) 使い方(32) linux(32) cvs(25) アジェンダとは(25) usb(25) thinkpad(23) 静電気(21) サンプル(20) 口コミ(20) ヨドバシ(20) アジェンダ(20) 画像(19) debian(19) ubuntu(19) mp980(18) f-01a(18) 手帳(17) tc-1(17) 秋葉原(16) ssh(16) subversion(16) グッズ(16) a6(15) 壁紙(15) ほぼ日手帳(15) c#(14) ダイソー(14) svn(14) 交換(14) インストール(13) 加湿器(13) firefox(12) ノート(12) 無印(12) 日本語(12) wiki(12) ganttproject(12) デロンギ(11) 方眼(11) ヨドバシカメラ(11) デザイン(11) nikkor(11) 設定(11) 作り方(11) dropbox(11) af(10) terastation(10) memcached(10) レビュー(10) カバー(10) カイロ(10) 2009(10) 除去(10) nikon(10) tortoisesvn(10) クラリチン(9) ガントチャート(9) 動画(9) ポメラ(9) ご査収(9) rcs(9) モジュール(9) n-01a(9) フィルム(9) 写真(9) システム手帳(9) edition(9) porter(9) xp(8) imap(8) 4c(8) docomo(8) ミニ6穴(8)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.152085s / load averages: 0.33, 0.26, 0.24
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)


スポンサード リンク