この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
rwiki.rbをdaemontoolsで動かすパッチをみてdaemontoolsについて調べてみた。
なぜ /service が inittab, init.d, rc.local よりもいいかをみて「確実に再起動される」と「プロセス状態がいつも同じ」がinit.dより良さそうと思った。他の利点は慣れでどうにでもなるけどこの2つは慣れててもどうしようもないことがあるので。
RWiki2になってライブラリ化が進んだので、デーモンのスクリプトやCGIのスクリプトは自分で作って使う方がいいような気がする。
/tmp/$USER/bin/ruby extconf.rb --with-js-dir=/tmp/$USERとすればdir_configで/tmp/$USERが追加されると。
bakadってHello Servletと同じかと思ったらGET以外でも同じ応答を返す、つまりHEADやTRACEでHTTP的に正しくない応答を返すという違いが。
RedHat系なら/etc/init.d/hoge statusで確認できます。Debianだとstatusは使えません。他のOSは不明。
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にバージョンアップした。
スラッシュドット ジャパン | BitBucket:遂に登場したBitKeeperクローンをみて日本語の情報を探してみたらペンギン流BK法がみつかって読んでみたけどよくわからない。
はまりそうなら破壊的メソッドを普段から使わない方がいいような気が。String#<<のようなメソッドは元々変更が期待されてる場合か先頭がリテラルの場合のように明らかに安全な場合しか使ってない気がする。
The RWiki - nori::2003::03より。答え付きの出題はパズルに。\
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
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
iCalライブラリのデータはwebcalをhttpにするとダウンロードできたけど、Outlook 2002ではさっぱり読み込めず。Japanese32Holidays.icsでMETHOD:PUBLISHをつけると最初のデータ(元日)は読み込めたけど、2日分のデータになって何か変。
DRbObject = DRb::DRbObjectとかっていつまであるんだろう。過去との互換性のためにあるだけでそのうちなくなるものと思ってたけど、ずっと残すのかな?
dRubyTutを見ていて行番号付きリストがあった方がいいような気がした。RD自体に行番号を埋め込んでいるとソースをコピーしてもそのまま実行できないと言う不便さがある。というわけでblock-ext/with_line_number.rbというのを作ってみた。
Test::Unit移行ガイドを書いてみようと思ったらあんまり書けることがなかった。
'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 -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
インストールガイドをRWiki2に変更。PageStoreCVSを使用。
RAAのRWiki-installerのStatusをobsoleteに変更。まだ消してないけど消した方がいいかもしれない。
cvs -q diff -uD '1 hour ago'で1時間よりもっと前に消したファイルなのに出てくる。-uND '1 hour ago'にすると差分としても出てきてしまう。出なくするための条件がよくわからない。
1.11.1p1だと出ていて1.11.5を使ったら出なくなった。
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]
[]
%
Googleっぽいもの。
Linkavailable: Ruby,diaryでRuby関係の日記を見ていれば既に気づいていると思いますが、www.ruby-lang.org/~user/以下はwww.rubyist.net/~user/になっています。分離した目的はruby-lang.orgというドメインの目的を明確にするためだそうです。
#define RUBY_RELEASE_MONTH 038月以降に危険な気が…と思ったらすでにRUBY_RELEASE_DAYの方は08になってたことがあるみたい。これで問題が起きていないと言うことは数値としては扱われていない?
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
(以下略)
利用者によって作られる百科事典(Lazy diaryより)とかtdiary-users-talk at lists.SF.jpのドキュメントのライセンスについてのスレッドなどを見ると悪意を持っているかどうかにかかわらず著作権上問題のある文書を書き込まれた場合にどうすればいいのかということが気になる。
Cマガジン4月号の学問のススメ 千言万語に載っていたUnlambdaは今まで紹介されてた言語以上にプログラムの作り方がわからない。
pageantを使っていれば、puttyでちゃんとパスワード入力無しでつながることを確認した後(このときにhost keyの確認ダイアログも処理しておく)、C-x C-f /[pscp/user@session-name]hoge.txtという感じで簡単につながってます。.profileなどで工夫をしているアカウントだとプロンプトが検出できずに止まって使えてませんが。
multirange.rbのMultiRange.parseで同じようなことが出来そう。範囲が重なってるとマージしたり文字列に変換できたりして便利なはず。String#num_arrayの方はEnumerable#to_aを使ってMultiRange.parse('1-2,5-7,12').to_aでよさそう。
%Mにhostname --fqdnと同じ結果を期待していたら、%mと同じ値が返ってくるマシンがあるのでstraceで原因を調べてみたら、%Mはuname(2)でカーネルに設定されているマシン名を取ってきていて、hostname --fqdnは/etc/nsswitch.confを見ていた。hostnameコマンドを引数無しで呼び出すと%Mと同じでuname(2)の結果そのままだった。
(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)
ebanさんのjarpのようにrrrのサーバに移転すれば負荷を気にせずにいろいろプラグインを入れられてよさそうだけど、httpsでの更新は出来なくなる。というわけでしばらくはこのままの予定。
8-1. Windowsパス名の落とし穴にあるように末尾には使えない文字(半角空白と.)があったり、「\\?\」をつければそういう文字も使えたりという複雑さがあるので、単純に調べるのは難しそう。
[Ruby] nonstdioをみて知ったので、ソースを眺めてみた。each_byte(rs=$/)になってるけどrsは使われていないし、IO.instance_method(:each_byte).arityは0なのでコピーした後の消し忘れ?
✑ Shirai,Kaoru [init.d だとデーモンの稼働状態を見るには ps やログや、別に提供された状態報告用のツールを使うしかないわけで..]
✑ kjana [ruby(1) には書いてあるから隠しというほどではないかも.]