zt日記

書いているのは Kazuhiro NISHIYAMA a.k.a. ZnZです。
2001|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|
2012|04|05|06|09|

この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。

xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法インストールメモXREA + tDiary + Namazuをどうぞ。


2003年03月01日(Sat)

[RWiki][daemontools]

rwiki.rbをdaemontoolsで動かすパッチをみてdaemontoolsについて調べてみた。

なぜ /service が inittab, init.d, rc.local よりもいいかをみて「確実に再起動される」と「プロセス状態がいつも同じ」がinit.dより良さそうと思った。他の利点は慣れでどうにでもなるけどこの2つは慣れててもどうしようもないことがあるので。

RWiki2になってライブラリ化が進んだので、デーモンのスクリプトやCGIのスクリプトは自分で作って使う方がいいような気がする。

[ruby] RHG

ruby -yってruby -hで出てこないと言うことは隠しオプション?

[SF.jp] DNS down?

プロジェクトの*.sourceforge.jpがDNSでひけなくなってる。cvsやcfはひけるということはwildcardのレコードの設定ミス?

[ruby] dir_config

/tmp/$USER/bin/ruby extconf.rb --with-js-dir=/tmp/$USERとすればdir_configで/tmp/$USERが追加されると。

[ruby][WEBrick] Re: どんなrequest出しても1つのHTMLしか返さないHTTPサーバ

bakadってHello Servletと同じかと思ったらGET以外でも同じ応答を返す、つまりHEADやTRACEでHTTP的に正しくない応答を返すという違いが。

[daemontools] 生存確認

RedHat系なら/etc/init.d/hoge statusで確認できます。Debianだとstatusは使えません。他のOSは不明。

[RWiki][dRuby] 1から2へ

RWiki2はdrb-1だとrwiki/cgiapp.rbがそのままでは使えずdrbconnerror-patch.rbの様な感じでDRb::DRbConnErrorを用意しておく必要があった。内容はこれ。
unless defined?(DRb::DRbConnError)
  module DRb
    class DRbConnError < StandardError; end
  end
end
でもRWiki2はdrb-2推奨らしいので、$HOME/lib/rubyに入れていたdrb-1はdrb-2.0.1にバージョンアップした。
本日のツッコミ(全2件) [ツッコミを入れる]

Shirai,Kaoru [init.d だとデーモンの稼働状態を見るには ps やログや、別に提供された状態報告用のツールを使うしかないわけで..]

kjana [ruby(1) には書いてあるから隠しというほどではないかも.]


2003年03月02日(Sun)

[SF.jp] 復活した

夕方に復活していたみたい。

[net] IPアドレス

「192.168.001.013」が「192.168.1.11」になるって@niftyのRTCで.NET Framework クラス ライブラリ の IPAddress.Parse メソッドに同じ問題があるという話があったのを思い出した。
本日のツッコミ(全1件) [ツッコミを入れる]

arton [inet_addrがそういうもんなのでそういうもんだと思うんですが。問題なのかな? http://www.openg..]


2003年03月03日(Mon)

[BitKeeper]

スラッシュドット ジャパン | BitBucket:遂に登場したBitKeeperクローンをみて日本語の情報を探してみたらペンギン流BK法がみつかって読んでみたけどよくわからない。

[ruby] Re: オブジェクトのコピー

はまりそうなら破壊的メソッドを普段から使わない方がいいような気が。String#<<のようなメソッドは元々変更が期待されてる場合か先頭がリテラルの場合のように明らかに安全な場合しか使ってない気がする。


2003年03月04日(Tue)

[url] 微弱社入試問題

The RWiki - nori::2003::03より。答え付きの出題はパズルに。\

[zsh] IGNOREEOF

デフォルトの^Dと同じように「zsh: use 'exit' to exit.」を下に表示させたいけど、下に表示させる方法がわからず。下の行に表示した後、エスケープシーケンスで戻って$PROMPTを表示するしかない?
function my-ignore-eof {
  if [[ -z "$BUFFER" ]]; then
    if [ "$WIDGET" != "$LASTWIDGET" ]; then
      MY_IGNORE_EOF_COUNT=0
    fi
    if [[ ${IGNOREEOF:-10} -le $[++MY_IGNORE_EOF_COUNT] ]]; then
      echo exit
      exit
    else
      #echo zsh: use 'exit' to exit.
    fi
  else
    zle delete-char-or-list
  fi
}
zle -N my-ignore-eof
#bindkey '^D' my-ignore-eof
#IGNOREEOF=3

2003年03月05日(Wed)

[ruby][SOAP] RAA.rb

ruby 1.6.8 (2003-02-04) [i386-cygwin]でsoap4r-1.4.8のsample/RAA/soap4r.rbの中身を実行していると、時々400: Bad Requestになる。
SOAP::HTTPStreamError: 400: Bad Request
        from /usr/local/lib/ruby/site_ruby/1.6/soap/streamHandler.rb:171:in `sendPOST'
        from /usr/local/lib/ruby/site_ruby/1.6/soap/streamHandler.rb:111:in `send'
        from /usr/local/lib/ruby/site_ruby/1.6/soap/proxy.rb:104:in `invoke'
        from /usr/local/lib/ruby/site_ruby/1.6/soap/proxy.rb:110:in `call'
        from /usr/local/lib/ruby/site_ruby/1.6/soap/driver.rb:156:in `call'
        from (eval):2:in `getModifiedInfoSince'
        from ./RAA.rb:61:in `__send__'
        from ./RAA.rb:61:in `method_missing'
        from (irb):21
本日のツッコミ(全17件) [ツッコミを入れる]

Before...

aldara [aldara http://pomm.a]

miss [internet advertising]

cukimbo [aldara http://aldara]


2003年03月06日(Thu)


2003年03月07日(Fri)

[ruby] resolv.rb

こちらでも試した方がよさそうな気がしたので試してみた。MLを読んでたのにパッチあてるのに失敗してから改行コードの話の意味に気づいた。ブロードバンドルータ経由だけじゃなくてPPPoE直接も試した方がいいのかもしれないけど面倒なので保留。


2003年03月08日(Sat)

[net] iCalendar

iCalライブラリのデータはwebcalをhttpにするとダウンロードできたけど、Outlook 2002ではさっぱり読み込めず。Japanese32Holidays.icsでMETHOD:PUBLISHをつけると最初のデータ(元日)は読み込めたけど、2日分のデータになって何か変。

[ruby][dRuby] ::DRbObject

DRbObject = DRb::DRbObjectとかっていつまであるんだろう。過去との互換性のためにあるだけでそのうちなくなるものと思ってたけど、ずっと残すのかな?

[RWiki] 行番号付きリスト

dRubyTutを見ていて行番号付きリストがあった方がいいような気がした。RD自体に行番号を埋め込んでいるとソースをコピーしてもそのまま実行できないと言う不便さがある。というわけでblock-ext/with_line_number.rbというのを作ってみた。

[ruby][dRuby] Rinda2

使ってみようとする。いくつかうまくいかなかったのはバグを踏んでいたと言うこともあったみたい。

[ruby] Test::Unit

Test::Unit移行ガイドを書いてみようと思ったらあんまり書けることがなかった。

本日のツッコミ(全1件) [ツッコミを入れる]

 [適切な指摘にいつも感謝しています。]


2003年03月11日(Tue)

[ruby][Ruby/JS]

RAAのDownloadのリンクが間違ってる様な気が。 空文字列の処理はNJSが変? 'new Date.toString'はJavaScriptとして変なのかな。'new Date().toString'のメソッド(だっけ?)がnilになるのは不思議。
% irb --prompt simple
ruby 1.6.8 (2003-02-04) [i386-cygwin]
>> require 'js'
=> true
>> JS::LIB_VERSION
=> "0.2.5"
>> JS.evaluate ''
VM: warning: using undefined global `JSC$token_linenum'
=> nil
>> JS.evaluate 'new Date'
JSError: not supported type
        from (irb):4:in `evaluate'
        from (irb):4
>> JS.evaluate 'new Date.toString'
JSError: StringStream:1: illegal object for new
        from (irb):5:in `evaluate'
        from (irb):5
>> JS.evaluate 'new Date().toString'
=> nil
>> JS.evaluate 'new Date().toString()'
=> "Wed Mar 12 02:12:21 2003"
>> JS.evaluate 'Date'
JSError: not supported type
        from (irb):8:in `evaluate'
        from (irb):8
>>

[ruby][fusen]

久しぶりに使ってみようと思ってcvs upしてインストールしようとしてみたらsetupでこけた。
% ruby -v
ruby 1.6.8 (2003-02-04) [i386-cygwin]
% ruby install.rb setup
(中略)
ipmsg.c:46:24: sys/sockio.h: No such file or directory
make: *** [ipmsg.o] Error 1
setup failed
'system make' failed
try 'ruby install.rb --help' for usage
%
ipmsg/extconf.rbのwhen /linux/when /linux|cygwin/にしてipmsg.cの#include <linux/sockios.h>をコメントアウトしてごまかしたらインストールできた。cygwinなのに-DLINUXを使うというのは良くない対応ですが。 fusenの動きは前と同じような感じ。エラーが出てるのも前と同じ。追加や削除や再起動とかをしていたときに出てたエラーはこんな種類があってgdkwindow-win32.cの行番号はどれも同じ。(ソート済み)
(fusen:1808): Gdk-CRITICAL **: file gdkwindow-win32.c: line 1568 (gdk_window_get
_geometry): assertion `window == NULL || GDK_IS_WINDOW (window)' failed
(fusen:3008): Gdk-CRITICAL **: file gdkwindow-win32.c: line 1568 (gdk_window_get
_geometry): assertion `window == NULL || GDK_IS_WINDOW (window)' failed
(fusen:3052): Gdk-CRITICAL **: file gdkwindow-win32.c: line 1568 (gdk_window_get
_geometry): assertion `window == NULL || GDK_IS_WINDOW (window)' failed
(fusen:3692): Gdk-CRITICAL **: file gdkwindow-win32.c: line 1568 (gdk_window_get
_geometry): assertion `window == NULL || GDK_IS_WINDOW (window)' failed

2003年03月12日(Wed)

[ruby] RWiki関連

インストールガイドをRWiki2に変更。PageStoreCVSを使用。

RAAのRWiki-installerのStatusをobsoleteに変更。まだ消してないけど消した方がいいかもしれない。

[cvs] cvs diff: hoge no longer exists, no comparison available

cvs -q diff -uD '1 hour ago'で1時間よりもっと前に消したファイルなのに出てくる。-uND '1 hour ago'にすると差分としても出てきてしまう。出なくするための条件がよくわからない。

1.11.1p1だと出ていて1.11.5を使ったら出なくなった。

[ruby] 'p = 1; p []'

pじゃなくて()の問題? こういう挙動の違いもruby 1.8 featureに載せていかないといけないのですが、誰がやるのでしょうか…。クラスやメソッドの追加や変更は出来そうですが、細かい挙動の違いは出来そうにないなぁ。
% ruby16 -ve 'p = 1; p []'
ruby 1.6.8 (2003-03-11) [i686-linux]
[]
% ruby18 -ve 'p = 1; p []'
ruby 1.8.0 (2003-03-12) [i686-linux]
-e:1:in `[]': wrong number of arguments(0 for 1) (ArgumentError)
        from -e:1
zsh: 4701 exit 1     env PATH=$MYPATH ruby18 -ve 'p = 1; p []'
% ruby18 -ve 'p = 1; p([])'
ruby 1.8.0 (2003-03-12) [i686-linux]
[]
%
本日のツッコミ(全1件) [ツッコミを入れる]

なかだ [これですね。うーん、意図的なものではないような気が。 revision 1.227 date: 2002/11/1..]


2003年03月13日(Thu)

[web] OpenPKSD Search

Googleっぽいもの。

[ruby] man-1.6

容量を食いまくってたようなので2001年分と2002年分のログをざっくり削除。2002年分のログだけで482Mもあったらしい。

[web][ruby] www.rubyist.net

Linkavailable: Ruby,diaryでRuby関係の日記を見ていれば既に気づいていると思いますが、www.ruby-lang.org/~user/以下はwww.rubyist.net/~user/になっています。分離した目的はruby-lang.orgというドメインの目的を明確にするためだそうです。

本日のツッコミ(全1件) [ツッコミを入れる]

なひ [ZnZさんも当事者なんだから「だそうです」はだめー。:)]


2003年03月15日(Sat)

[ruby] #define RUBY_RELEASE_MONTH 03

8月以降に危険な気が…と思ったらすでにRUBY_RELEASE_DAYの方は08になってたことがあるみたい。これで問題が起きていないと言うことは数値としては扱われていない?

[web] wrong header line format

webrick/httpproxy.rb経由だと見えないので調べてみた。5行目のHTTP/1.0 200 OKがwrongみたい。
% wget --server-response --spider http://www.masao-k.net/tDiary/index.rb
--23:47:08--  http://www.masao-k.net/tDiary/index.rb
           => `index.rb'
www.masao-k.net をDNSに問いあわせています... 完了しました。
www.masao-k.net[218.219.224.97]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
 1 HTTP/1.1 200 OK
 2 Server: Microsoft-IIS/5.1
 3 Date: Sat, 15 Mar 2003 14:47:08 GMT
 4 Content-Type: text/html; charset=EUC-JP
 5 HTTP/1.0 200 OK
 6 Date: Sat, 15 Mar 2003 14:47:08 GMT
 7 Server: Microsoft-IIS/5.1
 8 Connection: close
 9 Vary: User-Agent
10 Last-Modified: Sat, 15 Mar 2003 11:25:53 GMT
11 Pragma: no-cache
12 Cache-Control: no-cache
13 Content-Length: 13611
(以下略)

[Wiki] 著作権

利用者によって作られる百科事典(Lazy diaryより)とかtdiary-users-talk at lists.SF.jpのドキュメントのライセンスについてのスレッドなどを見ると悪意を持っているかどうかにかかわらず著作権上問題のある文書を書き込まれた場合にどうすればいいのかということが気になる。

[Linux] at

at -c 1で実行されるコマンドが見えることがわかった。atqで出来なくて困ってたけどatの方だったとは。

本日のツッコミ(全1件) [ツッコミを入れる]

なかだ [つーかRUBY_RELEASE_{YEAR,MONTH,DATE}はmakefile(精確にいえばwin32/set..]


2003年03月17日(Mon)

[Linux] フロッピーでgrub

FATでフォーマットしたフロッピーディスクにgrubを入れてみた。
# mformat a: 
# mount /dev/fd0 /floppy 
# grub-install --root-directory=/flopply /dev/fd0 
# cp /boot/grub/menu.lst /floppy/boot/grub/

2003年03月18日(Tue)

[ruby] Method

__send__でいいような気がしないでもない。


2003年03月19日(Wed)

[programming] Unlambda

Cマガジン4月号の学問のススメ 千言万語に載っていたUnlambdaは今まで紹介されてた言語以上にプログラムの作り方がわからない。


2003年03月20日(Thu)

[Linux] -vv

オプションでvを並べるとさらにverboseになるものとしてrsyncやstoneなどがある。2つつけると元に戻るものもあった(何だったか忘れたけど)。ほとんどは複数つけても1つの場合と同じ。

本日のツッコミ(全1件) [ツッコミを入れる]

アバン [very verboseでんがな。]


2003年03月21日(Fri)

[Emacs][Meadow] Meadow で tramp

pageantを使っていれば、puttyでちゃんとパスワード入力無しでつながることを確認した後(このときにhost keyの確認ダイアログも処理しておく)、C-x C-f /[pscp/user@session-name]hoge.txtという感じで簡単につながってます。.profileなどで工夫をしているアカウントだとプロンプトが検出できずに止まって使えてませんが。

[ruby] String#num_range

multirange.rbMultiRange.parseで同じようなことが出来そう。範囲が重なってるとマージしたり文字列に変換できたりして便利なはず。String#num_arrayの方はEnumerable#to_aを使ってMultiRange.parse('1-2,5-7,12').to_aでよさそう。


2003年03月26日(Wed)

[Linux][zsh] print -P '%M %m'

%Mhostname --fqdnと同じ結果を期待していたら、%mと同じ値が返ってくるマシンがあるのでstraceで原因を調べてみたら、%Muname(2)でカーネルに設定されているマシン名を取ってきていて、hostname --fqdnは/etc/nsswitch.confを見ていた。hostnameコマンドを引数無しで呼び出すと%Mと同じでuname(2)の結果そのままだった。

[Linux] hostname

で、そのカーネルの中のホスト名がどこで設定されるか調べてみたら、Debian woodyの場合は/etc/rcS.d/S40hostname.shの中のhostname --file /etc/hostnameで設定されていた。つまりFQDNが出ていなかったマシンは/etc/hostnameがホスト名のみでFQDNになっていなかったからだった。Redhat 7.3の場合は/etc/sysconfig/networkのHOSTNAMEに書いた値が、/etc/rc.d/rc.sysinitの中でhostname ${HOSTNAME}として設定されていた。

[ruby] linux-gnu

1.8の方で./config.status --recheck ; ./config.statusを実行したら-gnuが付くようになったので、rm -r extしてmakeし直さないと拡張ライブラリが読み込めなくなっていた。linux-gnuの話をみていたのですぐに原因に気づきました。


2003年03月27日(Thu)

[Emacs] navi.el

10.1 モードラインをカスタマイズにあるような感じでmode-nameを変更しているとうまく動かなかったので、put-text-propertyでinvisibleをつけてみたらEmacs21では期待通りになったのにEmacs20(とMeadow1.15)ではinvisibleがきかなかったので、結局別途定めるバッファローカル変数に元のmode-nameを保存しておいて、adviceでletして元のmode-nameを見せることにした。
(make-variable-buffer-local 'my-original-mode-name)
(add-hook
 'texinfo-mode-hook
 #'(lambda ()
     (setq my-original-mode-name mode-name
           mode-name "Texi")))
;; scratch バッファの Lisp Interaction も長い
(add-hook
 'lisp-interaction-mode-hook
 #'(lambda ()
     (setq my-original-mode-name mode-name
           mode-name "LI")))
;; Emacs-Lisp も長い
(add-hook
 'emacs-lisp-mode-hook
 #'(lambda ()
     (setq my-original-mode-name mode-name
           mode-name "EL")))
(defadvice navi (around let-original-mode-name activate)
  (let ((mode-name (or my-original-mode-name mode-name)))
    ad-do-it))
messageが見えなくてもっと後でエラーになったので、navi.el自体にはこういう変更をしてみた。(navi 1.38からの差分)
--- navi.el     26 Mar 2003 08:33:10 -0000      1.1
+++ navi.el     26 Mar 2003 11:01:22 -0000      1.3
@@ -398,5 +398,5 @@
                     (setq subexp navi-search-exp-diff)))
-                 ((t)
+                 (t
                   (progn (setq navi-listing-search-exp "")
-                         (message "invalied mode"))))
+                         (error "invalid mode: %s" navi-search-mode-name))))
            (navi-lines-clean-buffer navi-search-mode-name outname inname)

[Emacs] Maildirとか

Meadow 1.15上のWanderlustでMaildirを使ってみようとしたら、ファイル名に「:」が使えないのでうまくいかなかった。shimbunでも「*」とかが入ってる名前にしようとするとまずいことになるし、Windows上ではファイル名関係がいろいろ不便。


2003年03月28日(Fri)

[ruby] らぐやねん 花見オフ

4月5日か6日の可能性が高い? 連絡用MLはアーカイブ公開の設定のついでにやってもらうのが良さそうかと思ったら、去年分の復旧待ちで止まってるので無理?

[tDiary] 移転するかも

ebanさんのjarpのようにrrrのサーバに移転すれば負荷を気にせずにいろいろプラグインを入れられてよさそうだけど、httpsでの更新は出来なくなる。というわけでしばらくはこのままの予定。

[tDiary] index.rbとupdate.rbの設置場所分離

たしかtDiaryが1.4.2の頃からupdateの方はhttpsの方において試していたのですが、別の場所に置くと更新用画面の右上にある「最新」のリンクが違うところを指しているのでそのままでは使えません。今までも使ってなかったので結局そのまま放置してしまっています。

[web] wrong header line format

webrick/httpproxy.rbを使っているとhttp://www.masao-k.net/tDiary/index.rb が wrong header line format になって見えないのはwebrick側ではなく中で使っているnet/http.rbで例外になっていたのが原因だった。自動処理をするプログラムならチェックは厳密な方がいいけど、proxyは寛容な方が使いやすいと思う。どうするべきだろう?


2003年03月31日(Mon)

[Windows] パスに使える文字

8-1. Windowsパス名の落とし穴にあるように末尾には使えない文字(半角空白と.)があったり、「\\?\」をつければそういう文字も使えたりという複雑さがあるので、単純に調べるのは難しそう。

[ruby] nonstdio

[Ruby] nonstdioをみて知ったので、ソースを眺めてみた。each_byte(rs=$/)になってるけどrsは使われていないし、IO.instance_method(:each_byte).arityは0なのでコピーした後の消し忘れ?


copyright © 2001-2013 ZnZ
Key fingerprint = 6E14 2C9C DBD7 874D 8B3C CAA8 9B58 5538 ED7E 1B73