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をどうぞ。


2002年09月02日(Mon)

[zsh] \r問題

cygwin上のzshでHISTFILE=${HOME}/etc/zhistory.$(hostname -d)が作られないと思ったら、hostname -dが使えないからだった。-dは他にも使えない環境があるので、HISTFILE=${HOME}/etc/zhistory.${$(hostname)%%.*}に変更したが、それでも作られないのでなぜかと思って調べてみたら、末尾に\rがついていたからだった。

zshの機能だけで\rを取り除く方法がよくわからなかったので、結局HISTFILE=${HOME}/etc/zhistory.$(expr ${$(hostname)%%.*} : '\([A-Za-z0-9-]*\)')としてみた。%%.*のところはもう必要なさそうだけど、念のためつけている。


2002年09月05日(Thu)

[ruby] %W(#{})

%W( a b c #{} d )という感じで%wでは出来なかった空文字列を含んだ配列を作ることが出来る。

[ruby] Kconv.tokcode(string)

逆方向のKconv.kcodeto{sjis,euc}とかもあるとよさそう。

[zsh] extended_glob

NULL_GLOB(echo ~/bin(N))のように一時的にextended_globが出来ないか探してみたけどなさそう。

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

たむら [Kconv.tokcode って、変換先を $KCODEのものに自動的にしてやるってこと ? unkf で試験的に実..]


2002年09月06日(Fri)

[ruby] segv

ruby 1.7.3 (2002-09-05) [i686-linux]でrubyが落ちたときのbacktrace。再現条件を絞り込めるような大きさのプログラムじゃないのでbtのみ。


2002年09月07日(Sat)

[ruby] Kconv.tokcodeのイメージ

こんな感じの処理をイメージしてました。
Kcode_map = {
  'EUC' => 'euc',
  'SJIS' => 'sjis',
  'UTF8' => 'u8',
}
def tokcode(str)
  raise ArgumentError unless Kcode_map.key?($KCODE)
  to_code = Kcode_map[$KCODE]
  from_code = 自動判別(str)
  Uconv.__send__("#{from_code}to#{to_code}", str)
end

[ruby] SIGSEGV

gdb --pid=pidでbtを取ってみたら#7までが同じところで落ちていたので、regex.c:2445があやしいと思って、NULLチェックを追加したら解決したように見えたので、ruby-bugs-jaに送ってみた。 すぐ下のif (bufp->must_skip) xfree(bufp->must_skip);と同じようにしてみたけど、xfree=ruby_xfreeの中でNULLチェックしているはずなのに、re_free_patternの中でチェックする必要がある理由がよくわからない。
#0  0x400dcc1b in free () from /lib/libc.so.6
#1  0x400dcaa3 in free () from /lib/libc.so.6
#2  0x080692c3 in ruby_xfree (x=0x8225a50) at /home/kazu/fromcvs/ruby/gc.c:135
#3  0x0809c943 in ruby_re_free_pattern (bufp=0x81c4738)
    at /home/kazu/fromcvs/ruby/regex.c:2445
#4  0x0806a2b0 in obj_free (obj=1077844336) at /home/kazu/fromcvs/ruby/gc.c:984
#5  0x0806a083 in gc_sweep () at /home/kazu/fromcvs/ruby/gc.c:879
#6  0x0806a5ec in rb_gc () at /home/kazu/fromcvs/ruby/gc.c:1183
#7  0x0806958f in rb_newobj () at /home/kazu/fromcvs/ruby/gc.c:302
本日のツッコミ(全1件) [ツッコミを入れる]

たむら [unkf の ukconv.rb に追加してリリースしてみます。> Kconv.tokcode 例外上げるまでも無い..]


2002年09月08日(Sun)

[ruby] SIGSEGV

昨日のパッチだと全然解決してませんでした。処理が多くなると落ちまくり。

[cygwin] setup.exe

インストールしようとするとWindowsが落ちるので困っていたけど、/etc/setupを/etc/setup.bakにして実行したら落ちなくなった。落ちる原因となったと思われる*.lst.gzはまだ残ってるけどどうしよう。

[ruby] Kconv::tokcode()の逆方向のKconv::kcodeto{sjis,euc}

自動認識が必要ない場合もあるので、そういうことでよさそう。$KCODEの"J"っていうのは今のバージョンだとあり得ない($KCODE='NONE'になる)ので、無理そう。

[ruby] unkf のバイナリパッケージ

unkf.soだけ入ってても、どこにおけばいいのか悩みそうです。 それからこのあたりは既に定義されてたらそれを使うか、require 'unkf'中でrequire 'nkf'して、nkf.soに定義をまかせる(NKF.nkfやNKF.guessがnkf.soで上書きされるのも防ぐ)かした方が良いような気がしました。
% ruby -rnkf -runkf -e 0
warning: already initialized constant AUTO
warning: already initialized constant JIS
warning: already initialized constant EUC
warning: already initialized constant SJIS
warning: already initialized constant BINARY
warning: already initialized constant NOCONV
warning: already initialized constant UNKNOWN

2002年09月10日(Tue)

[ruby] pp

ppが使いたいだけならshimとか。

[ruby][win32] resolv.rb

%windir%\HOSTSと%windir%\SYSTEM32\DRIVERS\ETC\HOSTSを探して、見つからなければレジストリを、というハイブリッド方式はどうでしょうか?

[cygwin][ruby] package

setupのソースを見てみた。'-'でgrepしてみると、cygpackage.ccのcygpackage::set_canonical_versionというところで、'-'を区切りにしてバージョンを取り出しているので、rdocのバージョンが期待通りに処理されていないように思います。

それとは別に現在のsetup.iniは[prev]に[curr]より新しいバージョンが入っているところが。

[ruby][Emacs][Meadow] migemo.el

使われてなかったmigemo-rubyを使うようにしたら、migemo.elの変更だけでMeadowで使えた。
--- /tmp/migemo-0.32/migemo.el	2002-09-10 18:57:42.000000000 +0900
+++ lib/elisp/migemo.el	2002-09-10 21:23:55.000000000 +0900
@@ -31,5 +31,5 @@
 (defvar migemo-ruby "ruby"
-  "*Name or full path of the perl executable.")
+  "*Name or full path of the ruby executable.")
 
-(defvar migemo-directory "/usr/local/share/migemo"
+(defvar migemo-directory "c:/cygwin/usr/local/share/migemo"
   "*Directory where migemo files are placed")
@@ -94,3 +94,3 @@ (defun migemo-init ()
 	(let ((options
-	       (append migemo-options
+	       (append '("-S" "migemo") migemo-options
 		       (if (file-exists-p migemo-user-dictionary)
@@ -105,3 +105,3 @@ (defun migemo-init ()
 	  (setq migemo-process (migemo-start-process 
-		 "migemo" migemo-buffer "migemo" options))
+		 "migemo" migemo-buffer migemo-ruby options))
 	  (process-kill-without-query migemo-process)

2002年09月11日(Wed)

[valgrind][ruby] 1.7のSIGSEGV調査

unstableにしかなかったのでapt-get source valgrindして、./configure --prefix=/tmp/$USER; make; make installで入れて、/tmp/kazu/bin/valgrind --suppressions=/tmp/deb/valgrind-1.0.1/woody.supp /tmp/kazu/bin/ruby17 n.rbで落ちるまでしばらく待ってみたところ、この6行がでて止まった。Ctrl+Cもきかなかったので、別のシェルからkillして止めた。
==21937== Warning: SIGSEGV not in user code; either from syscall kill()
==21937==    or possible Valgrind bug.  This message is only shown 3 times.
==21937== Warning: SIGSEGV not in user code; either from syscall kill()
==21937==    or possible Valgrind bug.  This message is only shown 3 times.
==21937== Warning: SIGSEGV not in user code; either from syscall kill()
==21937==    or possible Valgrind bug.  This message is only shown 3 times.

[ccmalloc][ruby]

/usr/share/doc/ccmalloc/USAGEにNow you just have to replace the linking command with ccmalloc gcc -o binary mod1.o mod2.o -lm # linkingと書いてあったので、こんな風にやってみたけどmakeが通らなかった。
% ~/fromcvs/ruby/configure --prefix=/tmp/r
(略)
% make CC='ccmalloc gcc'
(略)
ccmalloc gcc -g -O2 -rdynamic main.o dmyext.o libruby.a -ldl -lcrypt -lm   -o miniruby
ccmalloc: installation prefix: /usr
ccmalloc: valid C++ wrappers: g++ gcc
ccmalloc: $Id: ccmalloc.in,v 1.8 2001/11/21 08:25:20 biere Exp $
ccmalloc: using '/usr/lib/ccmalloc-gcc.o' as C++ wrapper
gcc -g -O2 -rdynamic main.o dmyext.o libruby.a -ldl -lcrypt -lm -o miniruby /usr/lib/ccmalloc-gcc.o -L/usr/lib -lccmalloc -ldl
*** good bye cruel world ...
make: *** [rbconfig.rb] アボートしました
zsh: 14989 exit 2     make CC='ccmalloc gcc'
%

2002年09月12日(Thu)

[ruby][win32] resolv.rb

NT系レジストリを先にみるというのは確かにその方がよさそう。

[ruby] 自分のIPアドレス

cygwin上でSocket.gethostbyname(Socket.gethostname)[3].unpack('C*').join('.')だとLAN側の固定IPアドレス1つしかとれなくて困り中。

自分のIPアドレス全てを取得するにはどうすればいいんだろう?


2002年09月14日(Sat)

[http] version

まじめに対応しようとすると難しいらしい。RFC2616の3.1とかRFC2145とか。

Leading zeros MUST be ignored by recipientsということはHTTP/01.01とか送ってみるとおもしろいかもしれない。続きにand MUST NOT be sent.と書いているので、普通はやらない方がよさそうだけど。

[web] Mosaic

ソース発見。ftpにつなごうとするとSleipnirが固まるので結局ダウンロードできず。


2002年09月16日(Mon)

[sf.net] SourceForgeでrwiki

rubyが入ってるのがshell hostのみでweb server側には入っていないという可能性は…。

[mail] アドレスに+

受け付けるアドレスとして、RFCまでは見なくてPerlメモの正規表現を見た結果、英数字と一部の記号のみになった例とPerlメモの正規表現を採用した例をみたことがある気がします。


2002年09月19日(Thu)

[ruby] JavaやPerlのように抜けるブロックを指定するという機能

って結局catchとthrowと同じようなものになってしまうような気が。

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

なかだ [catch&throwだと、間にメソッドを介してたりするとSymbolがかち合う可能性を否定できなかったりするので。..]


2002年09月20日(Fri)

[ruby][webrick] '%x' % st.mtime

WEBrickが1.2.2になったらこの影響でファイルがとれなくなった。
% ruby -S irb
ruby 1.6.7 (2002-03-01) [i386-cygwin]
irb(main):001:0> '%x '% Time.at(0)
TypeError: failed to convert Time into Integer
        from (irb):1:in `%'
        from (irb):1
% irb
ruby 1.6.7 (2002-03-19) [i386-linux]
irb(main):001:0> '%x' % Time.at(0)
TypeError: failed to convert Time into Integer
        from (irb):1:in `%'
        from (irb):1
irb(main):002:0>
% irb16
ruby 1.6.7 (2002-09-12) [i686-linux]
irb(main):001:0> '%x' % Time.at(0)
"0"
irb(main):002:0>
% irb17
ruby 1.7.3 (2002-09-17) [i686-linux]
irb(main):001:0> '%x' % Time.at(0)
"0"
irb(main):002:0> 
%

2002年09月21日(Sat)

[ruby] CとC()

以下のように定義してもDigest::MD5では呼び出せなくて、Digest::MD5()Digest.MD5と書かないといけないので、autoloadの代わりにはならなかった。
def Digest.MD5
  require 'digest/md5'
  Digest::MD5
end

[ruby] rough 入り

CVSアカウントがあるのなら入れてしまえばいいような気がします。

[ruby] catch&throwとSymbolの衝突

無名Symbolが作れれば解決しそうなのにSymbol.new => undefined method `new' for Symbol:Classということで無理そう。
catch(sym = Symbol.new) {
  throw sym
}
本日のツッコミ(全2件) [ツッコミを入れる]

kjana [ずっと前に「new はだめ,別名を」「じゃあ gensym とか?」 っていう話をしたっきりですね,そういえば.un..]

kjana [...gensym じゃなくて無名シンボルか << 出して読み直してから気付いたやつ.]


2002年09月22日(Sun)


2002年09月23日(Mon)

[Windows] WindowsXP の regedit はエクスポートすると text じゃない

UTF16(LE)はtextではありませんか。Unicodeに対応してないエディタとかで見るとそうかもしれない。


2002年09月24日(Tue)

[ruby] configure

1回実行しただけなのにcachedとでると言うことは無駄なチェックがある?
checking for long long... (cached) yes
checking for off_t... (cached) yes
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for memory.h... (cached) yes

2002年09月25日(Wed)

[tdiary] tdiary-mode

httpsには対応してなさそう。

[ruby] ossl

この中のnet/httpsを使って、httpを受けつけてhttpsにつなげばよさそう?

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

きた [https要りますか? emacsでhttps喋らせるのか… めんどくさそう.]


2002年09月26日(Thu)

[ruby] ruby-cvs

ruby-cvsって過去ログがWeb上に公開されてない気がしたので、ruby-devに移動させようとしたけど、ちょっと遅かったみたい。

[ruby] https

結局rubyでtdiary-modeのhttp接続を受けて、httpsに送るようにしてみた。


2002年09月28日(Sat)

[Emacs][Meadow] gnuserv

一番新しそうなのでgnuservからリンクされていたgnuserv-2.0.2.2 (1999-09-12)を入れてみたが、runemacs.exe固定でまだMeadowが起動していないときに起動できなかったので、gnuserv-0411-1999にしてみた。でも、コマンドプロンプトからgnuclient経由でMeadowNT.exeを起動したときに、cmd.exeを終了してもコマンドプロンプトが閉じないので、閉じるボタンを押して閉じてみると、MeadowNT.exeが終了してしまったので、結局あらかじめ起動しておかないと使えなさそう。


2002年09月29日(Sun)

This buffer is for notes you don't want to save, and for Lisp evaluation.

If you want to create a file, visit that file with C-x C-f,

then enter the text in that file's own buffer.

[nkf] utf-8対応

ruby本体添付のnkfもutf-8対応のものになるのかな?

[mail] flowed

format=flowedってどういう意味なんだろう。

[web] antenna

毎日チェックしてるのはLinkavailable: Ruby,diaryしかないので、それ以外のところは見に行く頻度が落ちてしまう。いろんなところからLIRSとかを取ってきてローカルで自分がよく見るところだけの表示するものを用意した方がいいのかもしれない。

[tdiary][tdiary-mode] 送信失敗?

送信失敗というか変なものが送信されてしまっていたらしい。仕方がないのでブラウザから編集。

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

きた [変なもの,ではよくわからないのですが…]


2002年09月30日(Mon)

[tdiary-mode] 謎の3行

29日の最初のこの謎の3行が、変なものです。*scratch*バッファの内容のようですが、なぜこんなものが送信されてしまったのかがよくわかりません。

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

ただただし [あー、あの話につながるのか……なるほど]

きた [確かに*scratch*バッファの内容のようですねぇ.なぜだろう… せっかく書いていただいたんですが,すみません,分..]


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