リンク: [ホーム] [自己紹介] [リンク集] [アルバム] [ソフトウェア] [発表文献] [その他]

まさおのChangeLogメモ / 2005-02

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

2005-02-27 Sun

* Weight Loss Graph

http://revjim.net/page/weightloss/
ダイエットの記録をグラフとして付けている人発見。

GD か何かでやってるっぽいけど、どうやっているのかの説明はない。
気になる。

The Hacker's Diet: http://www.fourmilab.ch/hackdiet/#Comptools
なんてのも見つけた。

* Suggestions for Performing a Good Review

http://spot.colorado.edu/~jsedr/goodreview.html

良い査読をするには:

論文査読は研究者であることの責任を果たすのに欠かせない仕事である。
査読者の任務というのは、原稿をアクセプトすべきか、リジェクトすべき
かを決断することにある。ネガティブな決断、ポジティブな決断のどちら
であれ、著者と編集者の双方が適切な対応ができるよう、十分な詳細を合
理的に説明する必要がある。一論文につき、たいてい2人か3人の査読者し
か関わらないため、各査読者は注意深く査読を行う必要がある。査読は、
厳格に精密に建設的に行うこと。

Waser et al. (1992) や DePinto (1995) は公正な論文査読を行う方法
についての提案を行っている。以下にその要約を挙げる:

・著者が同業者であることを忘れず、そのように扱うこと。重要な研究を
最大限適切な方法で示すことこそが著者・査読者・編集者3者の共通の目
標である。

・論文中の劣った点だけでなく、優れたデータや優れた考察を指摘するこ
と。利点と欠点の双方を提示することで、査読結果が著者・編集者に理解
されやすくなる。

・査読で攻撃を行わないこと。敵対的なコメントよりも建設的観点からの
批判の方がずっと効果的であり、著者やその研究活動に対する個人攻撃や
侮蔑的な攻撃を避けること。

・著者自身の方が少なくとも査読者よりはその研究をよく理解しているこ
とを忘れないこと。システムについての解釈や分析についての質問をする
際は、居丈高な姿勢で行わないこと。「私が間違っているのかもしれませ
んが…...」のような言い方が望ましい。

・論文を良くする提案は具体的に行うこと。論文には必ず改善の余地が残っ
ているので。

・全ての著者がその研究を無限のリソースや全くの制約無しで行っている
と思わないこと。高くつく研究設計や分析手法を使わないのには理由があ
る場合もあることを理解しようとすること。査読者が知っているより良い
アプローチを提案することは良いが、それを採録条件にせず、重要なのは、
データの質であることを忘れずに。

・一回以上論文を読むようにすること。査読の提出前にその対応やコメン
トについてよく考えること。論文を再度読み返すことでその内容が変わる
かもしれない。

・個別の論点のみでなく、全体的な観点から査読を行うこと。JSRは国際
的な論文誌であり、掲載論文には幅広い価値が必要となる。

・読みにくさや理解しにくさがあったとしても、それだけで論文の価値を
決めないこと。著者が、一般の読者には不明な俗語や未定義の用語を使っ
た個所を指摘すること。非ネイティブ英語の文章には修正すべき個所があ
る場合がある。
 
・論文には科学的な一貫性がなければならない。共通の知識となっていな
い全てのアイデアや情報については、適切な参照(文献)が加えられてい
るか確認すること。研究上のアイデアというものは、以前の研究の上に成
り立っているため、論文には以前の研究との文脈における新規性が述べら
れていなければならない。

・査読のコメントや提案が、査読者の考え方を詳しく書いたり例を示した
りして、うまく説明されているか、公正に述べられているか確認すること。
査読者が変更を提案していても、その変更の方法と理由を説明しなければ、
著者の役には立たない。

・論争をしたり、著者の見解に反対したりしたくなる誘惑に耐えること。
査読者はその分野の専門性を持っているから論文を査読するよう依頼され
たのであり、新たな知見や研究の発展を進める機会を与えるようにすべき
である。

・査読の要請への返答は速やかに。査読期間はたいてい一ヶ月である。時
間が取れなかったり、その分野の知識が無かったりして、論文を査読でき
そうにないと思ったら、論文を直ぐに編集委員に送り返すこと。また、査
読を始めてから、査読報告が遅れることになったなら、委員に連絡するこ
と。

参照文献:
・DePinto, J.V. 1995. Open Letter to JGLR, Reviewers. J. Great
Lakes Res. 21:1-2.
・Waser, N.M., Price, M.V., and Grosberg, R.K. 1992. Writing an
effective manuscript review. Bioscience46:621-623.

* ”田舎”で生き延びる方法

http://behavior.biology.kyushu-u.ac.jp/kasuya/inaka01.html
研究者にとって必要なのは「やる気の減退」であり、それを避ける手段を
確保せよとのこと。

2005-02-25 Fri

* pkgadd

Solaris のパッケージ管理ツール。

rctpsv6 で Sunfreeware.com からパッケージをもらってきてインストー
ルしてみた。

国内のミラーサイトを使うと良い:
http://sunsite.tus.ac.jp/sun/solbin/indexintel9.html

インストールは以下の手順:

% gunzip ruby-1.8.1-sol9-intel-local.gz
% su masaor
# pkgadd -d ruby-1.8.1-sol9-intel-local

→ と思ったが、ruby-iconv がうまく動いていないようなので、
Ruby-1.8.2 をソースからインストールした。

readline を使いたいので、以下のようにする:

% env CFLAGS="-I/opt/sfw/include" ./configure
% make
% su
# make install
# make install-doc

2005-02-23 Wed

* mobo新機能

bbs に要望が上がってたやつ。

無題 - かんだ (2004-11-24 (水) 23:50:55)

ももんが家計簿大変便利に使わせていただいております(感謝!)

さて、最近の銀行口座などではある残高以上ならば引き落とし手数料が無料になったりします。そこで口座残高がある一定金額以下になると警告を発する機能(例えば異なる色で表示されるなど)があると便利だとおもうのでしょうがいかがでしょう?

balance_hook みたいなのを呼んで、そこで設定値以下になってたら、

<span> の class を変更する。っていうのが良いかも…。

* IR Vocabulary

http://sasa.cis.ibaraki.ac.jp/member/sasaki/research/glossary.html
オリジナルが無くなっているが、情報検索の用語集。日本語版。

* EUC-JP検索「靴」

EUC-JPの文字列を「靴」で検索すると大量にひっかかる。

靴: \xB7\xA4

これは、\xA4 がひらがなの先頭バイトで頻出するためで、「して」にひっ
かってしまう。

して: \xA4\xB7\xA4\xC6

とりあえず、大崎さんの「Perlメモ」に対処法が書いてある:
→ Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm#JP_Match

2005-02-19 Sat

* 2分探索

doclist/sitelist はソート済なのだから、2分探索できることに気付いた。

それなら、はるかに簡単にできそう…。

2005-02-18 Fri

* Jess

Automated Japanese Essay Scoring System:
http://coca.rd.dnc.ac.jp/jess/
Jess : 日本語小論文 評価採点システム

とりあえずメモ。

2005-02-17 Thu

* Federal Web Content Managers Toolkit - Best Practices - Common Practices

http://www.firstgov.gov/webcontent/shoulddo_bestpractices.shtml
アメリカ連邦政府のポータルサイトによる Web コンテンツ作成者を対象
とした覚書やヒントなど。

from: http://cmswatch.com/

* LETS自転車通勤

http://www.asahi-net.or.jp/~pr4n-tugu/index.html
とりあえずメモ。

* プログラミング言語演習II-1

http://www.slis.tsukuba.ac.jp/~mikawa/cprogII-1/
今年度から C++ になったと(一部で)評判のプロ言演習。

2005-02-16 Wed

* SPAM Archive

http://www.em.ca/~bruceg/spam/
スパムメールのアーカイブ。
1998 年からのものが大量にある。

* Nerd Quiz

http://www.wxplotter.com/ft_nq.php?im
オタク度クイズ。

結果:
Low Ranking Nerd. Definitely a nerd but low on the totem pole of nerds.

2005-02-15 Tue

* The UCData and Pretty Good Bidi Algorithm Home Page

http://crl.nmsu.edu/~mleisher/ucdata.html
シンプルな Unicode ライブラリ発見。いいかも。

cf.[2005-02-09]

* mobo遅さ改善計画

ようやっと、「編集」でどこがネックになっているかは分かったかも…。

skel/edit.rhtml:
      <% count["genre"] ||= 0; c = Time.now %>
<% genre_list.each do |genre| %>
<% next unless /^[ie]:/ =~ genre %>
<option value="<%= genre %>"<%= if item.genre == genre then selected end %>><%= genre %></option>
<% end %>
<% count["genre"] += Time.now - c %>

この収入・支出の各項目の出力を行う、この個所だけで、200501 だと
each_notmove_item: 25.743957
each_notmove_item: genre:14.746433, account:7.319069
もかかっている(単位は秒)。

通常の表示だけ(Month)では、0.2 程度なので、文字列の比較が話にな
らないくらい遅いのかも。
あとは ERB が大きくなるととたんに遅くなっているのかも…。

Ruby-1.8 系に上げた方が速いかもなあ。。。

2005-02-14 Mon

* SKK辞書のインストール

cf.[2005-02-08]
amazon にインストールした SKK だが、~/.skk が無設定で辞書を指定し
ていない状態だと動いていなかった。

先に辞書ファイルをインストールしておく、というか、辞書ファイルを置
いた状態で make install しておかないと、skk-large-jisyo を適切に設
定しておいてくれないみたい…。

* 検索システムBOF

Namazu,Estraier,Namazu,Gonzui,Qwiki という豪華なメンツ(=高林、平
林、野首、江渡)による BOF が開かれた模様。

以下の日記など参照:
・検索システム集会 - 開発メモ:
http://ukai.org/d/index.cgi?2005-02-13#1
http://qdbm.sourceforge.net/mikio/rbbs.cgi?id=RA11083149812943528002
http://www.daionet.gr.jp/~knok/diary/?200502b&to=200502141#200502141

* おかずや 平句凡帳 〜丸の内オアゾ(oazo)

http://r.gnavi.co.jp/a186423/menu1.htm
昨日の OC 大会の帰りに東京で食べた店。

おすすめコースは、野菜もたっぷりの和食でおいしかった。

日本酒も、「満点星」という銘柄が非常にすっきりとした飲み口で美味し
かった。

2005-02-12 Sat

* 訳してねっと

http://www.yakushite.net
コミュニティ型機械翻訳サイト。

各分野のコミュニティ内で Translation Memory とも言うべき辞書を共有
して、それを使った機械翻訳を提供する。
といった感じだろうか。

とりあえずメモ。

* ■ [I18N] 文字符号化検出と言語検出

http://d.hatena.ne.jp/kazama/20041106#p1
文字コードと言語の自動検出の話題。

Mozilla の chardet モジュールとそれに関連する各種ライブラリがよく
まとまっている。
http://www.mozilla.org/projects/intl/chardet.html
http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html

iChardet: mozilla/intl/chardet の Java 版:
http://www.i18nfaq.com/chardet.html

ちなみに、ICU4C ではエンコーディングの自動判別機能は提供していない
らしい…。
http://oss.software.ibm.com/icu/userguide/codepageConverters.html

また、以下の www-international@w3c.org ML の以下のスレッドでは多言
語の自動判別についてのアルゴリズム/ツールが挙げられている。
・What is a language detection algorithm?
http://lists.w3.org/Archives/Public/www-international/2004OctDec/thread.html#59

2005-02-11 Fri

* firefox固まる

OgreKitWiki にて 2つ目の JavaScript リンクを辿ると必ず固まる。

OgreKit Wiki - some about a regular expression framework:
http://www-gauge.scphys.kyoto-u.ac.jp/~sonobe/OgreKit/OgreKitWiki.html

→ Bugzilla-jp に登録した:
http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=4269

* 要チェックのIR関連の論文誌

・IPM
・SIGIR
・ECIR
・JASIS
・ACM Computing Survey

http://www.webir.org/publications.html も要チェック。

2005-02-09 Wed

* Rubyの遅さ

freqfiles.rb が異様に遅かった件について、検証してみたい。

なんとなく、ハッシュテーブルの実装に問題がありそうな気がしてきた。
amazon 上で、最新版を取ってきて、確認してみよう。

ベンチマークは、ランダムなアルファベット 5〜20 文字を一行ずつで
10000 行というものを作って確認してみる。

ついでに、Perl/Python などとの比較もしてみたい。

同様の疑問を持った人は他にもいるみたいで、ruby-talk では 2001 年ご
ろに以下のようなスレッドが立っている。
[ruby-talk:24466] Why is ruby slow (compared to perl):
http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-talk/24466?24273-25371

ちなみに、色々なプログラミング言語のベンチマークを取った Language
Shootout のサイトは以下に移動した模様:
http://shootout.alioth.debian.org/
http://shootout.alioth.debian.org/benchmark.php?test=wordfreq

手元のデータでやってみると、ruby-1.6 系だと遅いが、CVS 最新版をビ
ルドしてテストすると、格段に速くなっていた。

% time perl -w test.pl test.dat ; time ./ruby -w test.rb test.dat
0.70u 0.03s 0:01.13 64.6%
1.79u 0.10s 0:03.22 58.6%

これなら問題なさそうだね。

念のため、ruby-1.8.2 でもやってみたが、同様に速かった。
なお、比較に使った Perl は v5.6.1(amazon にデフォルトで入っていた
Sun 由来のやつ)

* Wiki+Weblog

両者をまとめたようなツールが欲しい。

* SpamFilter

PaulGraham御大のSpam論文3部作:
・A Plan for Spam
・Better Bayesian Filtering
・Filters That Fight Back

を読んでいたら、スパムフィルタをいじりたくなってきた。

CJK などでのトークン分割手法で、形態素解析/n-gram/文字種のどれが一
番性能が良いかなど確認してみたいなあ…。

* lessの画面消去

arno などの Linux 上の less において、終了時に表示していた画面が消
えてしまう現象が出ることがある。

これは、less の FAQ にもあるように、less が termcap(terminfo) の
ti/te (smcup/rmcup) を発動することによって起きる現象のようである。
cf. http://www.greenwoodsoftware.com/less/#tite

さて、これを変えるには以下の方法がある:

1. less -X
上記の FAQ にも載っている方法。

ただし、FAQ にもあるように less 内で矢印キーが使えなくなるなどの別
の不具合が出た。

2. LESS_TERMCAP_te=" " && LESS_TERMCAP_ti=" "
less のソースを読んでみると、less では、こういう環境変数で te/ti
の実際の設定を置き換えることが可能みたい。ただし、空文字列になって
いると無視されるので、何か入れておく必要がある。

かなり裏技的だが、less 以外の curses アプリケーションには効かない
のが痛い。

3. $TERM の変更
ti/te を使わないような $TERM を使用する。
→ xterm1 など(参照文献参照のこと)

ただし、どの環境でも汎用的に使える $TERM を探すのは面倒かも…。

4. termcap(terminfo) DB の書き換え
単純に termcap/terminfo に載っている xterm の定義を変える。

いくつものマシンを使っていると、それぞれのマシン上で設定を変更して
いかないといけないのが面倒。

5. 端末エミュレータの設定変更(titeInhibit)
手元でよく使う端末エミュレータに、この ti/te を無視する設定があれ
ば、うまくいく。

Putty の場合、[端末]→[特徴] にある「Alternate端末画面への切替を無
効にする」("Disable switching to alternate terminal screen")をオン
にしておけば良い。

ちなみに、xterm の場合、titeInhibit というリソースを設定すれば良い。
という記述がマニュアルにあったところからの類推で辿りついた。
cf. http://www.fifi.org/doc/xterm/xterm.faq.html#xterm_tite

・参照: つれづれ日記 2002年5月:
http://www.sshida.com/~shida/diary/200205-diary.html#20020509
X で利用する curses 対応ソフトで画面が復帰 (再描画) されないよう
にする

これは以前から非常に不満に思っていたのだが、
    * man, vi, less, w3m などを使ってちょっとファイルを見たあと、
    * プログラムを終了させて表示処理から抜けると、
    * そのソフトでわざわざ表示させた文字列がきれいに消えて
    * terminal に表示されている文字列がそのソフトの実行前の状態になる
例えば man termcap などとして、何かのアトリビュートの説明を 検索
して表示させたあと、その場で q と打てば、そのアトリビュート
の 説明が画面上に残っていてほしいわけだ。しかし、RedHat では
せっかく表示したものが消えてなくなってしまう。

このような画面の復帰をやめさせるには RedHat の場合は TERM=xterm1
を指定すればよい。/etc/termcap を見ると、 xterm1 のエントリがあ
るが、ここでは ti@, te@ を指定 している。

less --no-init, w3m -X などと する方法もあるが、これだと vi には
効かない。vi などでも 効果を出すには terminfo の変更が必要。

該当するのはこの部分になる:

:ti=\E[?1048h\E[?1047h: --- 端末初期化時処理
:te=\E[?1047l\E[?1048l: --- 端末終了時処理

ESC [ ? Pn h はモードの退避、
ESC [ ? Pn l はモードの復帰らしい。

1047,1048,1049 については man xterm を見ると、いくつかの 命令が
組み合わされた xterm 用のエスケープシーケンスらしい。

なお、その他の ANSI/ECMA のエスケープシーケンス表は /etc/termcap
の最後の方にある。

xterm1 をわざわざ指定するのがいやな場合は xterm-xfree86 の 部分
だけを別ファイルに取り出し、上の変更を加えたあと 自分のユーザ権
限のままで tic my-xterm.termcap などとすれば 自分のホームディレ
クトリの .terminfo/x/xterm-xfree86 という ファイルに terminfo が
作成され、利用できるようになる。

* 話せる・聞ける英語の勉強法

とりあえずメモ。
・On Off and Beyond: 話せる・聞ける英語の勉強法:
http://www.chikawatanabe.com/blog/2004/04/post_3.html
・On Off and Beyond: 話せる・聞ける英語の勉強法2:
http://www.chikawatanabe.com/blog/2004/04/post_8.html

* Unicodeライブラリ

cf.[2005-02-04]
Unicode 文字列および 文字属性(スクリプトなど)の情報を扱うような
ライブラリをいくつか見てみたが、libm17n が意外といいかも…。

候補は以下の通り:
・ICU4C http://oss.software.ibm.com/icu/
・mozilla/intl/ http://www.mozilla-japan.org/projects/intl/
・libm17n http://www.m17n.org/m17n-lib/

しかし、どれもライブラリのサイズが大きいなあ…。

* 英会話(皇居前)

朝の出勤後、皇居一周してきたら、パレスサイドビル脇の竹橋駅出口でつ
かまった。

外人: Excuse me. Where is the emperror parace?
自分: Parace?
外人: Yes. Where is the Japanese emperror parace?
自分: Well, over there. (皇居を指差す)
外人: Where is the entrance of the parace?
自分: Well, ... (えっとー、どこだったけかな?)
         (道路を指差して、右の方へ曲がる動作をしながら)
        Go to right over there,
        and, along with this street
         (えっと、どれくらいだったけかな?)
        about 2 or 3 hundred meter.
外人: OK. I see. Thank you.

ただし、帰ってきてから考えると、200〜300m ではきかない位遠かったみ
たい。mapfan で調べると 1.6km くらいあるみたい。

しばらくダウンをしていると、戻ってきたので、諦めたのかも…。
「What's up?(どうした?)」って声をかけてみれば良かったかも…。
Referrer (Inside): [2005-02-15-2]

2005-02-08 Tue

* Toward Better Weighting of Anchors

doi:10.1145/1008992.1009096
SIGIR2004ポスターセッションの論文を読了。

・書誌情報:
David Hawking, Trystan Upstill, Nick Craswell.
Toward Better Weighting of Anchors.
Proceedings of the 27th annual international conference on
Research and development in information retrieval, Sheffield,
United Kingdom, pp. 512 - 513, 2004. (ISBN:1-58113-881-4)

アンカーテキスト(anchor-text-surrogates)をナビゲーショナル検索に
利用する際のランキング手法の検討。

アンカーテキストにおける TF と文書長の分散を調べてみると、伝統的な
コンテンツベースの BM25 をアンカーテキストの検索にそのまま使うと、
文書長の正規化が入ってしまって、うれしくない。
(アンカーテキストの場合、文書長による正規化は性能を悪化させる)

そこで、新しいランキング手法として、AF1 という tf の対数を取る単純
なモデルとの比較を行った。

比較対象は、以下の4モデル:
・AF1
・BM25A (文書長にアンカーテキストの長さをそのまま使う)
・BM25D (文書長に文書コンテンツの長さを使う)
・BM25N (文書長を無視する)

結果: BM25D > BM25N == AF1 > > BM25A

* ForecastFox日本語化

Firefoxまとめサイトにある日本語版が昔のやつだったので、更新しよう
としてみた。

ついでだからと、「Light Rain」→「小雨」みたいな翻訳も加えようとし
たら、そういう機構を用意していなかったことが判明…。

この拡張は、天気情報を weather.com から SOAP 経由で取得して、XML
を解析することにより、表示している模様。
この Web サービスについての情報は以下からユーザ登録することにより
入手可能。
http://www.weather.com/services/xmloap.html

一方、アメリカ政府の NOAA も XML ベースの天気情報の配信を始めた模
様。
cf. NOAA - National Weather Service - National Digital Forecast
Database XML/SOAP Service: http://www.weather.gov/forecasts/xml/

ちなみに、FreestyleWiki では Yahoo!Japan の天気情報を HTML を解析
して取り出している。一応、Yahoo!側に確認を取っている模様。だけど、
この利用はかなりグレーだねえ。
BugTrack-plugin/130 - FreeStyleWiki:
http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F130

* デイブ・ラジェットのHTML入門(仮訳)

http://bewaad.com/archives/getstart.html
簡潔な HTML 入門で良いかも…。

* goo キーワードアシスト - goo 検索サービス

http://search.goo.ne.jp/gka/
検索キーワードの補完。
面白い。

goo キーワードアシスト β版について:
http://guide.search.goo.ne.jp/beta/gka/about.html
* goo ウェブ検索のログより、対象の単語と合わせてよく検索されるキーワードを抽出
* 過去2週間分の検索ログから
* 一定数のユーザ以上が利用した組み合わせが対象
* 利用されなくなり、1週間で対象より削除
* 日々更新
* 入力された1キーワード目のワードに対しての補完です
  2キーワード目以降は補完されません

* The tcshrc Project Home Page

http://tcshrc.sourceforge.net/
とりあえずメモ。

* Putty on GTK

nile でちょっとコンパイルしようとしたが、えらい難儀して、結局でき
なかった。Linux/BSD 系の方が楽なのかも…。

とりあえず以下のような感じ:
% svn co ...
% cd putty
% ./mkfiles.pl Recipe
% cd unix
(ちょっとゴニョゴニョ…)
% svn diff
Index: uxnet.c
===================================================================
--- uxnet.c (revision 5272)
+++ uxnet.c (working copy)
@@ -17,6 +17,8 @@
 #include <netdb.h>
 #include <sys/un.h>
 
+#include <sys/sockio.h>
+
 #define DEFINE_PLUG_METHOD_MACROS
 #include "putty.h"
 #include "network.h"
@@ -26,6 +28,10 @@
 # define X11_UNIX_PATH "/tmp/.X11-unix/X"
 #endif
 
+#ifndef AF_INET6
+# define AF_INET6 26
+#endif
+
 struct Socket_tag {
     struct socket_function_table *fn;
     /* the above variable absolutely *must* be the first in this structure */
@@ -743,9 +749,9 @@
         if (a.sin_addr.s_addr != (in_addr_t)(-1)) {
             /* Override localhost_only with specified listen addr. */
             ret->localhost_only = ipv4_is_loopback(a.sin_addr);
- got_addr = 1;
+ /* got_addr = 1; */
         }
- addr = (struct sockaddr *)a;
+ addr = (struct sockaddr *)&a;
         addrlen = sizeof(a);
         retcode = 0;
 #endif
Index: uxpty.c
===================================================================
--- uxpty.c (revision 5272)
+++ uxpty.c (working copy)
@@ -6,6 +6,8 @@
 #define _XOPEN_SOURCE_EXTENDED
 #define _GNU_SOURCE
 
+#include <sys/ttold.h>
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -747,7 +749,9 @@
  dup2(slavefd, 1);
  dup2(slavefd, 2);
  setsid();
+#ifdef TIOCSCTTY
  ioctl(slavefd, TIOCSCTTY, 1);
+#endif
  pgrp = getpid();
  tcsetpgrp(slavefd, pgrp);
  setpgid(pgrp, pgrp);
@@ -930,7 +934,9 @@
  font_dimension(pty->frontend, 0);
     size.ws_ypixel = (unsigned short) pty->term_height *
  font_dimension(pty->frontend, 1);
+#ifdef TIOCSWINSZ
     ioctl(pty->master_fd, TIOCSWINSZ, (void *)&size);
+#endif
     return;
 }
 
% make -f Makefile.gtk CC=gcc COMPAT="-DNO_IPV6 -DOMIT_UTMP -DHAVE_NO_SETRESUID" ULDFLAGS="-lnsl -lsocket"
...
gcc `gtk-config --libs` -o putty be_all.o cmdline.o config.o cproxy.o \
        dialog.o fromucs.o gtkcols.o gtkdlg.o gtkpanel.o gtkwin.o \
        ldisc.o ldiscucs.o localenc.o logging.o macenc.o mimeenc.o \
        minibidi.o misc.o pinger.o portfwd.o proxy.o raw.o rlogin.o \
        sbcs.o sbcsdat.o settings.o slookup.o ssh.o sshaes.o \
        sshblowf.o sshbn.o sshcrc.o sshcrcda.o sshdes.o sshdh.o \
        sshdss.o sshmd5.o sshpubk.o sshrand.o sshrsa.o sshsh512.o \
        sshsha.o sshzlib.o telnet.o terminal.o time.o timing.o \
        toucs.o tree234.o utf8.o ux_x11.o uxagentc.o uxcfg.o \
        uxmisc.o uxnet.o uxnoise.o uxprint.o uxproxy.o uxputty.o \
        uxsel.o uxsignal.o uxstore.o uxucs.o version.o wcwidth.o \
        wildcard.o x11fwd.o xenc.o xkeysym.o
未定義の 最初に参照している
シンボル ファイル
Xutf8TextPropertyToTextList gtkwin.o
Xutf8TextListToTextProperty gtkwin.o
ld: 重大なエラー: シンボル参照エラー。putty に書き込まれる出力はありません。

* 目薬

前回([2004-11-16])買ったものが見当たらなかったので、同じ製薬会社
の「ロートPRO」というのを買った。
(パレスサイドビル内の薬局にて)

* Reading "Modern Infromation Retrieval" (Rinko)

http://research.nii.ac.jp/%7Ehidaka/rinko/mir/
1999〜2000年にかけて行われた NII での Modern IR の輪講会。

輪講での発表用資料(要約)が参考になるかも…。
Referrer (Inside): [2005-02-14-3]

2005-02-07 Mon

* CSUR

ACM Computing Surveys
ついでにこっちも読んでおきたいかも…。

キャッシュ関連の論文: (新しいもの順)
・Local ratio: A unified framework for approxmation algrithms in
memoriam: Shimon Even 1935-2004
http://portal.acm.org/citation.cfm?id=1041683

・Replication for web hosting systems:
http://portal.acm.org/citation.cfm?id=1035573

・A survey of Web cache replacement strategies
http://portal.acm.org/citation.cfm?id=954341

以下は、大規模データの処理用アルゴリズムのレビュー:
・External memory algorithms and data structures: dealing with
massive data
http://portal.acm.org/citation.cfm?id=384193

* ARIST

Annual Review of Information Science and Technologies
ここ1・2年のから Web 検索関連のものをいくつか読んでおくと良いかも…。

2005-02-04 Fri

* chromedit

入れてみたけど文字化けするなあ…。

同様に悩んでいる人がここにも↓
・拡張"ChromEdit"でのフォント文字化け:
http://ryuzi.dyndns.org/mozillazine/html/modules/newbb/viewtopic.php?topic_id=2348&forum=4&noreadjump=1

ソースを眺めてみると、chromedit.js 内の loadIt() で
"@mozilla.org/scriptableinputstream;1" を使ったローカルファイルの
読み込みをしているのだが、このコンポーネントは ASCII しか読み込め
ないように書いてある気が…。。。

from: nsIScriptableInputStream Overview:
http://developer.mozilla.org/xpcom/api/nsIScriptableInputStream/
* Remarks
This interface provides JavaScript with a way to read ASCII text
from a nsIInputStream. However, it does not address the problem
of reading arbitrary binary data from a stream.

以下の文書によれば、
XUL Apps > Tips > テキストファイルの入出力 - outsider reflex:
http://piro.sakura.ne.jp/xul/tips/x0021.html
読み込んだテキストは、ファイルの文字コードそのままで返します。実
際に使えるようにするには、文字コードを判別したあとで、
nsIScriptableUnicodeConverter を使って Unicode に変換する必要が
あります。

とのこと。

やってみた。
すんごく苦労した(FireFoxが何度も落ちる)が、なんとかうまく動くよ
うだ…。

diff -u -b -r1.14 chromedit.js
--- content/chromedit.js 30 Nov 2004 13:00:01 -0000 1.14
+++ content/chromedit.js 4 Feb 2005 16:54:20 -0000
@@ -118,12 +118,15 @@
         .createInstance( Components.interfaces.nsIFileInputStream );
     var sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
       .createInstance( Components.interfaces.nsIScriptableInputStream );
+ var uconv = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
+ .createInstance( Components.interfaces.nsIScriptableUnicodeConverter );
+ uconv.charset = "utf-8";
 
     if (fileLocal.exists()) {
         is.init( fileLocal,0x01, 00004, null);
         sis.init( is );
         var stuff = sis.read( sis.available() );
- setTextareaText(stuff,targetNodeID);
+ setTextareaText(uconv.ConvertToUnicode( stuff ),targetNodeID);
     }
     else if (/css$/i.test(fName) ) { // && ! f.exists()
 
@@ -136,7 +139,7 @@
             is.init( fileLocal,0x01, 00004, null);
             sis.init( is );
             var stuff = sis.read( sis.available() );
- setTextareaText(stuff,targetNodeID);
+ setTextareaText(uconv.ConvertToUnicode( stuff ),targetNodeID);
         }
         else {
           var extDefaultsDir = getExtDefaultsPath();
@@ -146,7 +149,7 @@
               is.init( fileLocal,0x01, 00004, null);
               sis.init( is );
               var stuff = sis.read( sis.available() );
- setTextareaText(stuff,targetNodeID);
+ setTextareaText(uconv.ConvertToUnicode( stuff ),targetNodeID);
           }
         }
 
バグ報告した → http://bugzilla.mozdev.org/show_bug.cgi?id=9150

FireFox1.0 ではこれでいいんだけど、気になるのは、
nsIScriptableUnicodeConverter のインタフェースが最新のCVSでは変わっ
ていることかな!?
cf. https://bugzilla.mozilla.org/show_bug.cgi?id=262385

と思ったら、うまく動かないことが判明。

1. 保存が効かない。(こっちも文字コード変換かまさないとダメ…)
2. なんかうまく動かない。(chromeditOptions.dtdがない!?)

* puttyダブルクリック選択

「佐々木」という文字列を選択しようとしてダブルクリックしたら、それ
ぞれ一文字ずつしか選択されない。
これはバグかしら…。

雰囲気的には、「々」が特殊な文字扱いされている感じ。
期待される動作としては、他の漢字と同様にまとめて選択状態になってほ
しいのだが…。。。

putty-0.56 のソースを読んでみると、term_mouse() 内で sel_spread()
を呼ぶことによって行っている様子。
で、肝心の選択を広げる範囲については、wordtype() でUCSの同一の範囲
にあるかを判別している模様。

wordtype() 内で、以下のような定義がある(これは文字種の規定で、開
始・終了コードポイントで、3番目が文字種値)が、

0x3001, 0x3020, 1}, /* ideographic punctuation */

「々」は U+3005 のコードポイントを持っており、ここに入るので、他の
漢字とは別になるみたい…。

ちなみに、Unicode Character Databaseにあるこの文字の情報も見ると以
下のようになっている:

3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt

さあ、原因はわかったが、どうすべきか…。

一つの手としては、http://www.unicode.org/reports/tr24/ で提案され
ている Script 情報を使う方法。
http://unicode.org/Public/UNIDATA/Scripts.txt によれば、
3005 は Han となっており、きちんと他の日本語文字列と混ぜて使うこと
が可能。
この Script が同じものについてはまとめてwordとし、ただし、
Punctuation/Space の判別については、General Category Name を使うと
いう手。

きちんと実装するなら、以下の仕様に則ってやるべきか…。
Unicode Standard Annex #29: Text Boundaries
http://www.unicode.org/reports/tr29/
しかし、この仕様はよく意味がわからん。

* iconv --version 誤訳

日本語ロケールで iconv --version してみたら、
iconv (GNU libc) 2.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
これはフリーソフトウェアです。利用許諾についてはソースをご覧ください。
商業性や特定の目的への適合性の如何に関わらず、無保証です。
Ulrich Drepperによる書き込み.

最後の行は、「Written by Ulrich Drepper.」の訳だと思うが、これはあ
まりにアレだろ…。。。

Ulrich Drepperによる開発。
作者Ulrich Drepper。

とかにしとけよ。書きこみって意味不明じゃん…。

お、最新版の glibc-2.3.4 を取ってきてみたら直ってた:
作者: %

さすがにアレだと思ったんだね。

* 援助交際

今朝の通勤途中で王子の順天高校に向かう坂の上で、通学中の女の子3・4
人に向かって、「援助交際しないー?」ってなんだか頭の悪そうな中年が
声をかけていた。何かの冗談かと思って、そのまますれ違ってしまった。

女の子たちもキョトンとしたまま、無視していたが、そのうち後ろの方で
女の子たちが「ひょっとしてうちら、援交申し込まれたのー?えー!?」っ
て、きゃーきゃー言う声が少し聞こえてきた。

とても気にはなったが、もう通り過ぎてしまったのでそのままスルーして
しまったが、警察に突き出すなり、少なくとも順天の前に立っていた教員
とおぼしき人物に言っておくべきだったか…。悔やまれる。

今調べてみたら、売春防止法でもって勧誘行為も禁止されているので、そ
のまま警察直行で良かったのね。

from: http://www.ron.gr.jp/law/law/baisyun.htm
(勧誘等)
第五条 売春をする目的で、次の各号の一に該当する行為をした者は、六月以下の懲役又は一万円以下の罰金に処する。
 一 公衆の目にふれるような方法で、人を売春の相手方となるように勧誘すること。
 二 売春の相手方となるように勧誘するため、道路その他公共の場所で、人の身辺に立ちふさがり、又はつきまとうこと。
 三 公衆の目にふれるような方法で客待ちをし、又は広告その他これに類似する方法により人を売春の相手方となるように誘引すること。

* TREC Spam Filter Evaluation Tool Kit

http://plg.uwaterloo.ca/~trlynam/spamjig/
TRECでもSPAMフィルタシステム間の評価とテストコレクションの作成をやっ
てみようという試み。

とりあえずメモ。
Referrer (Inside): [2005-02-09-2]

2005-02-03 Thu

* largefile problems - linux and solaris

http://ac-archive.sourceforge.net/largefile/solaris.html
以前調べた([2005-01-16])largefileについての資料(英語)

* lv bug?

複数の文字コードの異なるファイルをコマンドラインから指定した際に、
2番目以降に指定したファイルは先に見ていたファイルの文字コードになっ
てしまって文字化けになる。
どうやら、そういう仕様みたい。

command.c 内の CommandColon() で次のファイルを読む処理をしているが、
ここでは、既にコマンドラインオプションは見ていない。

conf.c 内でデフォルトオプションを保存しておいて、CommandColon 内で
戻す処理を加えてみた。
以下、パッチ:

diff -ru lv451/src/command.c lv451.mod/src/command.c
--- lv451/src/command.c Mon Jan 5 16:42:31 2004
+++ lv451.mod/src/command.c Thu Feb 3 15:46:40 2005
@@ -1012,6 +1012,7 @@
     }
 
     f = files->file;
+ FallbackToInit( f );
 
     f->find.displayed = FALSE;
     CommandRestorePattern();
diff -ru lv451/src/conf.c lv451.mod/src/conf.c
--- lv451/src/conf.c Mon Jan 5 16:23:29 2004
+++ lv451.mod/src/conf.c Thu Feb 3 15:47:12 2005
@@ -72,6 +72,8 @@
 
 private byte *lvHelpFile[ 2 ];
 
+private conf_t *global_conf; /* used in FallbackToInit */
+
 private void ConfInitArgs( conf_t *conf )
 {
 #ifdef HAVE_SETLOCALE
@@ -403,6 +405,8 @@
 
   while( *++argv )
     ConfArg( conf, argv, "argument" );
+
+ global_conf = conf;
 }
 
 public void ConfInit( byte **argv )
@@ -444,4 +448,13 @@
   } else {
     return *( conf->file );
   }
+}
+
+public void FallbackToInit( file_t *f )
+{
+ f->inputCodingSystem = global_conf->inputCodingSystem;
+ f->outputCodingSystem = global_conf->outputCodingSystem;
+ f->keyboardCodingSystem = global_conf->keyboardCodingSystem;
+ f->pathnameCodingSystem = global_conf->pathnameCodingSystem;
+ f->defaultCodingSystem = global_conf->defaultCodingSystem;
 }
diff -ru lv451/src/conf.h lv451.mod/src/conf.h
--- lv451/src/conf.h Thu Nov 13 12:30:49 2003
+++ lv451.mod/src/conf.h Thu Feb 3 15:47:44 2005
@@ -28,5 +28,6 @@
 public void ConfInit( byte **argv );
 public void Conf( conf_t *conf, byte **argv );
 public byte *ConfFilename( conf_t *conf );
+public void FallbackToInit( file_t *f );
 
 #endif /* __CONF_H__ */

* firefox設定

・拡張:
undoclosetab
diggler
livehttpheaders
checky
linky
ieview
forecastfox
# mozcc

・bookmarklet:

RakuCopy

・設定:
フォントをゴシックに: オプション→フォント→「Sans Serif」
PDFプラグイン無効化: オプション→ダウンロード→プラグイン... にて
PDF関連のチェックをはずす

2005-02-02 Wed

* 中田先生最終講義

とりあえずメモ。

from matz日記: http://www.rubyist.net/~matz/20050201.html#c11
今月、中田先生の最終講義があるそうです。
「コンパイラとつきあって40年」
日時: 2005年2月25日(金) 16時30分より
場所: 法政大学市ヶ谷キャンパスボアソナードタワー26階 スカイホール

* firefox固まる

http://www.alles.or.jp/~spiegel/ を見に行くと必ず固まる現象が発生。

Mozcc extension のせいかなあ…。

* mnews.spec

mnews 用の SRPM を作っておく。
基本は VinePlus のパッケージから取ってきたものを使い、自前の設定や
オプションを追加しておく。

Makefile.src から Makefile を作る際に cpp がタブを除去する。
(GCC-3.3 以降のバグor仕様?)
→ GCC-2.x 系なら大丈夫みたいだけど…。

・転送を行う際には mail_forward() を呼ぶ。
・~/.mnews_setup での特殊書式指定を使うには、field_fprintf() を呼
べば良い。

2005-02-01 Tue

* libdivsufsort

cf. [2005-01-20]
http://homepage3.nifty.com/wpage/software/index.html#suffix_array
libsary 互換の SuffixArray を構築するライブラリ。
LGPL で公開。

fread() を fwrite() にしないとダメとか、シンタックスエラーが出るな
どあるが、それは手で修正。

速度は libsary 付属の mksary と比較にならないくらい速い。

これで、おれが手をつける必要はなさそう…。
あとは圧縮くらいかな…。。。

ちなみに、CVS版の SKK-JISYO.L(r)を使って実験すると、
libsary:
libdivsufsort:

* Distiller+A4

mnewsprint での作った印刷用文書を Windows 上で GSView で開こうとす
るとエラーになるので、Distiller で PDF 変換してから印刷しようとし
たが、ページの上の方が切れてしまう現象が出て、どうもうまくいかない。

これは、dvips が PostScript にデフォルトでは A4 指定を付けてくれな
いのが原因らしい。

とりあえず、Distiller で「標準」設定から、デフォルトページサイズを
A4 に合わせて、幅:21.0cm * 高さ:29.7cm にした Standard(A4) 設定を
作っておいて、それで処理するようにした。

ちなみに、以下のサイトにあるとおり dvips -t a4 mail.dvi とすれば、
A4 指定の PostScriptが作れる。
cf. dvips - TeX Wiki:
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?dvips
サイクリング走行距離メーター
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12