この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
(defun irbsh-mswin32 ()
"irbsh with mswin32 ruby"
(interactive)
(irbsh "c:\\ruby\\bin\\ruby -S irb --inf-ruby-mode"))
require 'irbsh-lib'が失敗したときにNameError: uninitialized constant Irbshとなってexitもきかないのがちょっと困る。
メソッドが実際には呼び出せるのに偽になることがある。method_missingで処理しているもので問題になる。dRubyではrespond_to?を代わりに使えばいい。
必要に応じて中の式を実行する
([ruby-dev:16482]のあたりのスレッド)。そういうものです。
Refererがつかないリンクというとメーリングリストでの紹介というのがすぐに思いつきます。
窓使いの憂鬱を使うという手はWindows XP (Home)なので無理そうです。
いつの間にかWin9x系に対応していて機会があったら使えると思っていたらこちらがXPになってしまって結局また使えない環境になってしまったという。
| Undo | u |
|---|---|
| Redo | Ctrl+R |
| Repeat last change | . |
| Repeat latest f, t, F or T | ; |
| Repeat the latest "/" or "?" | n |
| Repeat the latest "/" or "?" in opposite direction | N |
init-keychainというのはinitzで読み込むため。
;;; init-keychain.el --- init file for keychain.
(unless
(getenv "SSH_AUTH_SOCK")
(save-excursion
(let*
((filename
(expand-file-name (concat ".ssh-agent-csh-" (system-name)) "~"))
(buffer
(find-file-noselect filename))
)
(set-buffer buffer)
(setq buffer-read-only t)
(widen)
(goto-char (point-min))
(while (re-search-forward "setenv \\(SSH_.+\\) \\(.+\\);" nil t)
(setenv (match-string 1) (match-string 2))
)
(kill-buffer buffer)
)
))
(provide 'init-keychain)
Ctrl + -(0の右横) でUndoできるということなのでやってみると出来た。describe-bindingsだとC--はnegative-argumentになってるのに。不思議。
$tablealign = ($tablealign eq 'left' ? 'right' : 'left');
print "<div style='position: relative; $tablealign: -10%'>\n";
ループの中のここでしか使わないのでmyにしたかったけど、myにするとループで次に回ってきたときに使えないので意味がない。ループの直前にまで戻ってmy $tablealignを入れるのはループの前を探すのが面倒そうだったのと、他でmyがほとんど使われていなかったということで、結局この2行の追加だけにしておいた。他で使われていない変数名かどうかは念のためgrepでチェック。
HTTP/1.1はObsoleteなRFC2068よりもRFC2616を。
MIMEにあわせるならヘッダ自体ではBエンコードやQエンコードを使うことになるのかも。
$ ruby install.rb setup install.rb: entering setup phase... setup failed hook /tmp/fusen-pre0.6/./pre-setup.rb failed: No such file or directory - "bin/fusen" try 'ruby install.rb --help' for usage $失敗。setup phaseが出来ないのであきらめて、srcの中で直接起動。
Gdk-CRITICAL **: file gdkwindow-win32.c: line 1552 (gdk_window_get_geometry): as sertion `window == NULL || GDK_IS_WINDOW (window)' failedとでる。不吉。 インストールできてないので英語メッセージのままなのが不便。Linux上でちょっと試したときにも思ったけどExecって意味が分かりにくいです。 文字化け、じゃなくて編集中の文字が表示されない。フォント設定を発見したのでMS UI Gothicに設定。MSゴシックとかは選択肢の下の方の読めないところにあるみたい。編集後の付箋状態では読めるようになったけど、編集中はやっぱり読めない。 バックグラウンドにしても右クリックででてきたメニューが消えないのがじゃま。
Operaでは""でくくられて表示されていた。
ruby要素はタグを削るだけでも問題ないようになってるのにQ要素は全然違う印象を受けるようなものになってしまっているのはどうしてだろう。
(add-hook 'after-init-hook 'session-initialize)が実行されないのがなぜかと思ったら、(add-hook 'after-init-hook 'initz-startup)で呼ばれている中でadd-hookしているからのような気がした。
find-file-noselectで開いたファイルもfile-name-historyに残ってしまうようだったので.ssh-agent-csh-も無視するようにしてみたけど、historyに残らないファイルに開く関数を探した方がよさそう。
mhc-category-histなどのmhcのhistoryも残せるようにするためにoryを省略可能な正規表現に差し替えた。
(require 'session)
(setq session-set-file-name-exclude-regexp
"/\\.overview\\|\\.session\\|News/\\|\\.ssh-agent-csh-")
(setq session-globals-regexp "-\\(ring\\|hist\\(ory\\)?\\)\\'")
;;(add-hook 'after-init-hook 'session-initialize)
(session-initialize)
いつもwwwの方からリンクをたどってダウンロードしてますが、memberの方にはダウンロードへのリンクが直接はないみたい。
検索はLinuxならeijiro-fpwで変換して検索、WindowsならDicCreatorに変換してDDwinで検索するのがよさそうな気が。
plugin/@debug.rbとして@debug = trueを実行するだけのファイルをおくとか。@なのはソートしたときに前の方にくる文字のはずだから。
途中に追記すると後ろのアンカーがずれてまずいような気が。
.gtkrcの設定がよくわからず。~/.gtkrcを以下の内容で作成しても、変化が無かった。
style "default"
{
fontset = "-unknown-MS UI Gothic-normal-r-normal-*-*-120-*-*-p-*-jisx0208.1983-0"
}
バックグラウンドにするというのはAlt+Tabなどで別の窓にフォーカスを移動してもメニューが消えないということです。これもGTK自体の問題のような気がするけど。
/tmp/$USER以下のCVS版rubyのところにインストールしようとしたらPermission denied - "/usr/share/locale/ja/LC_MESSAGES/fusen.mo"でinstall failed。いい方法を思いつかなかったのでpre-install.rbをinstall catalogue fileの前でexitさせて、とりあえずインストール。
実行、と思ったらインストールされてなかった。bin/fusen,cd lib;../bin/fusenでGTKが/tmpには入ってなかったことに気づいて、ruby install.rb config; ruby install.rb setupし直し。
cd lib;../bin/fusenで無事起動。rc fileは最初だからないので問題なし。とりあえずSave nowしてみたら終了してしまった。一度作成されてしまえば問題なし。
rc file(/home/kazu/.fusenrc) read error...
../bin/fusen:2415:in `save': undefined method `[]' for nil (NameError)
from ../bin/fusen:2350:in `open'
from ../bin/fusen:2350:in `save'
from ../bin/fusen:870:in `initialize'
from ../bin/fusen:869:in `call'
from ../bin/fusen:5479:in `main'
from ../bin/fusen:5479
HEADとGETで返してくれるヘッダが違うというmod_layoutの罠?
style "default"
{
fontset = "-unknown-MS UI Gothic-normal-r-normal-*-*-120-*-*-p-*-jisx0208.1983-0"
}
widget "*" style "default"
Gdk-CRITICAL **: file gdkwindow-win32.c: line 1552 (gdk_window_get_geometry): as sertion `window == NULL || GDK_IS_WINDOW (window)' failed
C:\cygwin\usr\share\locale\ja\LC_MESSAGESにmoがある他のものをLANG=jaで試してみたら、ちゃんと日本語で表示された。ということは文字化けのものさえ表示されなかったのはちゃんとインストールできていなかったから?
$ LANG=ja bison 2>&1|ruby -rnkf -pe'$_=NKF.nkf("-Es",$_)'bison: 文法ファイルが指定されていません
Gdk-WARNING **: gdk_text_extents: gdk_nmbstowchar_ts failed
Gdk-WARNING **: gdk_draw_text: gdk_nmbstowchar_ts failed
UnitTestを書いていて、TrueClassとFalseClassだけの共通の親クラスがあれば、assert_kind_of(BooleanClass, hoge)のようにできたのに、と思った。
問題なく起動。chmod 600 ~/.fusenrcを勧めるのなら最初からumask 077でファイルを作ればいいのに、と思ったり。
サーバにつなげてみたら、たくさん付箋が開いた。画面外にはみ出している部分を読むのに移動はどうすればいいのかと思ったら、KDEなので(?)マウスの真ん中ボタンのドラッグで移動できた。
anonymousなので当然編集不可能。付箋をwindow managerの機能で閉じるとread onlyだからエラーがでるけどちゃんと(?)閉じる。もう閉じてしまった付箋に更新メッセージがきたらやばそうという不安を感じて終了。
man-1.6で無駄な空白を1つ消そうとしただけだったのに操作ミスでSaveを連打してしまって、1回目が尻切れPOSTで2回目がrevision mismatchとなってしまった。mandiffで気づいたのですぐになおしたけど。
Operaの検索用の窓で検索するとhttp://www.google.com/search?q=google&sourceid=opera&num=0&ie=utf-8&oe=utf-8のように勝手につきます。
つっこみをするのに画像が表示されないとURLをすぐにコピー出来なくてリンクするのが不便。
h = Hash.new(Hash.new.freeze)という感じのHashでh[key] ||= Hash.newしてはまった。やりたかったことはunless h.key?(key); h[key] = Hash.new; endという感じ。
last_line = ''
lines.each do |line|
last_line << line
if /\\$/ === last_line
last_line = $`
next
end
line, last_line = last_line, ''
# ...
end
これが取り込まれたらファイル名にShift_JISの2バイト目の\が含まれる場合の問題とかが解決する?
-をつけるよりもxとyを入れ替える方がいいのでは?
ebanさんの発見報告で存在はわかっても場所がわからなかったので、Linkavailable: Ruby diaryに載るまで待ってました。
必要な画像が表示されなかったり、オフにしていてもスタイルシートで指定されている画像は読み込んできたりとなんかいやな感じ。クイック設定にもGIFアニメーションのオンオフしかないし。
#!/usr/local/bin/ruby
require 'webrick'
s = WEBrick::HTTPServer.new(
:BindAddress => "127.0.0.1",
:Port => 2000,
:Logger => WEBrick::Log::new($stderr, WEBrick::Log::DEBUG),
:DocumentRoot => '/var/www'
)
s.mount("/~kazu", WEBrick::HTTPServlet::FileHandler, "/home/kazu/public_html")
trap("INT"){ s.shutdown }
s.start
6.0 Beta 2をdeb QT Staticで入れてみた。Menu barを間違えて消してしまってGUIでは戻せなくて結局~/.opera/opera6.iniのShow Menu=0を1に変更して戻した。
日本語が文字化けするのでフォントのNormalをjis-fixedに変更。
wget -N setup.exeでダウンロードしたsetup.exeが実行できなかったのでchmod +x setup.exeしてから実行した。環境変数CYGWINにntsecを入れているのが原因のはず。
/usr/local/doc/ruby/soap4r-1.4.4.1/test/interop/clientSOAP::Liteで進めなくなったのでキャンセル。::がまずい気がする。
「バンプ レスト 社員&hl=ja」みたいになるのは$KCODEだから。
disp_refererの/#{url}/iを/#{url}/inにするかref = CGI::unescape( ref )をstr = CGI::unescape(ref.gsub( /#{url}/i, name ))のように後回しにすればいいはず。
$KCODE="NONE"を期待して予想外のマッチをしてしまうというのはありがちなバグのような気がします。
$ ruby -vrgtk -e 0
ruby 1.6.7 (2002-05-10) [i386-cygwin]
-e:1: warning: useless use of a literal in void context
$ ruby -vrtk -e 0
ruby 1.6.7 (2002-05-10) [i386-cygwin]
/usr/local/lib/ruby/1.6/tk.rb:7:in `require': tcltklib: tcltk_stubs init error(-1) (LoadError)
from /usr/local/lib/ruby/1.6/tk.rb:7
lunaの数少ないドキュメント。
ConfigBlockで区切りを,以外にすれば使えます。
2002/05/14のところ。callccを使わなくてもcatchとthrowでいいような気がする。
1.4.4.1-1-1になってる?
ruby本体だけExpのバージョンで他はCurrのままということがしたいけど、ラジオボタンでCurrを選んでいるとruby本体がリリース時点の1.6.7に戻ってしまう。
途中に追記したくなったときにサブセクションがないと後ろにずれるから対応しているシステムが多い(?)のかもしれない。
後からbinmodeにするよりも"rb"で開けばいいだけのような気が。
各種子プロセス生成を使ったJARH。標準入出力を付け替えた子プロセスをシェルを経由せずに安全に起動するにはforkしてexecする以外の方法はない?
systemは複数の引数でシェルを経由しないが、標準入出力の付け替えが出来ない。
popen(open('|command')も同様)はシェルを経由してしまう。標準エラー出力の付け替えも出来ない。
irbでrequire 'etc';a1=[];Thread.new{Etc.passwd do |a|a1.push a;Thread.pass;end};a2=[].taint;Thread.new{$SAFE=4;Etc.passwd do |a|a2.push a;Thread.pass;end}.valueとして、a1 != a2となることを確認した。
つまりEtcはマルチスレッドセーフではないし、セーフレベルも考慮されていない。
(1以上に)セーフレベルをあげているとrequireができないので、別のところでrequire 'etc'している場合のみ、セーフレベルが高い環境でもpasswdとgroupの(一般ユーザ権限で読み出し可能な)情報を読みとることが出来る。
sshd_configとssh_configを勘違いして悩んだことが。
colorsを使うとzsh3系のところで使えなくなるのでまだ使ってないです。potato…。
ファイル読み込みは$(の方がいいかも。
パターンマッチは前後を気にせず*0.[012]*)のようにするのじゃだめ?
負荷をあげるにはmake -jとか。実家マシンはdistributed-net clientを動かしてるから常に1以上だけど。
Content-Type に Charset がついてないと化けるということだったみたいで、今は化けなくなりました。
pribnow boxは今でも化けるので確認してみたところ、<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp" />
はあってもヘッダの方はContent-Type: text/html
だけでした。
最新のOperaに勝手にファイルをアップロードする穴ということで6.03にバージョンアップ。
FYI, some compilers (ex. GCC) are satisfied with const.
という文の意味がさっぱり分かりませんでした。他もほとんどわかってない気がしますが。
File.expand_path('~/hoge')でtainted?がtrueになるのでなぜかと考えてみたらENV['HOME']を使っているからだった。
ちなみにFile.expand_path('~hoge/hoge')ではtainted?がfalseになる。
他には相対パスだとtaintになって絶対パスだとtaintにならないみたい。
目的としてはCGIとして呼び出されたスクリプトの中でライブラリの$LOAD_PATHを自動設定したかったということなので、結局ENV['HOME']の設定されていないCGI環境ではFile.expand_path('~/hoge')は使えなかった。
お勧めされたので使ってみている。
Operaが使いにくかったのはCtrl+Tabですぐに切り替わらない、textareaに入力中に途中でフォントが変わることがある、など。
Ctrl+Tabで右から左に切り替わることがあって使いにくかったのでDonutRaptに戻した。せめて並べ替えたら…、と思ってタブをドラッグアンドドロップしたらマウスカーソルに+がついていないのにコピーされるという点なども使いにくかったし。
✑ ばけら [専用の Perl スクリプトで GET したとか【謎】。]
✑ 助田 [vim の Undo の Undo って Ctrl + r のことですか?]
✑ arton [MLはアタリでしょう。ところでrdindexのほうも簡単に行けますか?]