この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
matzrubyというブランチが増えて、simple_versionのやり方のpatchlevel対応だけだと無理が出てきそうな気がしたので、pipeを使って標準出力を奪って、version.cのruby_show_versionという関数の出力を取り出そうという作戦に変更しようとしてみた。
DLを使えばいいのかと思いきや、使い方がよくわからずに適当にやってみたら使えたり、現在のtrunkだとdlがmake installでインストールされなかったので、rbconfigにも対応してみたりした。
module RubyShowVersion
module_function
# dl依存版
def dl_version
require 'dl/import'
eval(<<-'RUBY_CODE', binding, __FILE__, __LINE__+1)
module RubyShowVersion
if defined?(DL::Importable)
extend DL::Importable
dlload nil
else
extend DL::Importer
dlload DL::Handle.new(nil)
end
extern "void ruby_show_version()"
ruby_show_version
end
RUBY_CODE
end
# rbconfig依存版
def rbconfig_version
require 'rbconfig'
c = Config::CONFIG
rubypath = File.join(c['bindir'], c['ruby_install_name'] + c['EXEEXT'])
system(rubypath, '-v')
end
# patchlevel対応版(matzruby未対応)
def simple_version
if defined?(RUBY_PATCHLEVEL)
puts "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]"
else
puts "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
end
end
# version情報表示
def version
IO.popen('-', 'r') do |io|
return io.read if io
begin
dl_version
rescue LoadError
begin
rbconfig_version
rescue LoadError
simple_version
end
end
$stdout.flush
exit!(0)
end
end
end
[ruby-list:43094] [ANN] Exerb 4.1.0 Releasedでsetup.rbの実行をconfig,setup,installで書いているけど、最新のsetup.rbなら引数なしで実行するだけでインストールまでされるはず。
IRCクライアントも対応してくれるとうれしいのかもしれない。
mhc-trunkとかでcheckoutしていて、その中のemacsディレクトリにload-pathを通すようにしているところからシンボリックリンクをしていて、mhc-icon-pathとかmhc-schedule-fileとかを自動で設定したかったという話。
(let ((my-mhc-emacs-dir (file-truename (locate-library "mhc"))))
(setq my-mhc-dir
(and (string-match ".*/mhc[^/]*/" my-mhc-emacs-dir)
(substring my-mhc-emacs-dir
(match-beginning 0) (- (match-end 0) 1)))))
(let ((iconpath (expand-file-name "icons" my-mhc-dir)))
(if (file-directory-p iconpath)
(setq mhc-icon-path iconpath)))
(defun my-mhc-schedule-file (dot-schedule-files)
(let ((dot-schedule (expand-file-name (car dot-schedule-files))))
(if (file-exists-p dot-schedule)
(setq mhc-schedule-file dot-schedule)
(my-mhc-schedule-file (cdr dot-schedule-files)))))
(my-mhc-schedule-file
(list
(expand-file-name "~/.schedule") ; default of mhc-vars.el
(expand-file-name "samples/DOT.schedule.sample.jp" my-mhc-dir)
"/usr/share/doc/mhc/examples/DOT.schedule.sample.jp"))
✑ これだけのことをするにも再帰してる関数の関数名を変えたら中の再帰してる部分を変え忘れたりとか、最初再帰を使わずにdolistを使っていたら変数部分の括弧の数を間違えたりバグりまくりで、Too Dynamicのようなことは無理と思ってしまう。
% (echo aaa; echo bbb) > ab.txt % (echo aaa; echo -n ccc) > ac.txt % LANG=C diff -u ab.txt ac.txt --- ab.txt 2007-01-15 23:35:57.060627860 +0900 +++ ac.txt 2007-01-15 23:36:03.300643521 +0900 @@ -1,2 +1,2 @@ aaa -bbb +ccc \ No newline at end of file % diff -u ab.txt ac.txt | patch patching file ab.txt % cat -A ab.txt; echo aaa$ ccc %
firefoxに拡張を入れてみて再起動する前にリロードをしたタイミングで出てきて、再起動したり入れた拡張を消したりしても出てくるし、aを押しても移動できないので、なにこれバグ?とか思っていたけど、「これはスポンサーフィードです。」ってどこ?と思っていろいろ試してみたところ、マウスでのクリックで開けた。キーボードでの開き方はわからないままだけど。
担当者のおすすめフィード:livedoor コンピュータ 総合 - livedoor Blog(ブログ)に同じものっぽいのがあったので、登録してリロードしたら消えた。
WiiRemote+Miyakoで動かなかったというのを見て、気になったので試してみた。(WiiRemoteって書いてあるけどWiiRemoteはWiiリモコンの英語名なのでWiinRemoteの間違いではないかと。)
結論から言うとWiinRemoteだとダメで、GlovePIEだとOKだった。たぶんキー入力を発生させているAPIの違いだと思う。
メニューのFileのOpenでスクリプトはWiimoteScriptsの中のNES.PIEを選らんで開いて、Runと書いてあるボタンを押して動かして、Ruby/SDLスターターキットのrskit-1.2.0b.zipのdebug.exeで(バーチャルコンソールのファミコンのゲームをやるときと同じようにWiiリモコンを横に持って)左右やプラスキーでのエンターが動くのを確認できた。
Ruby で文字列を文字参照に変換するだとtoutf16.unpack( "n*" )にしているけど、UTF-8をunpack("U*")する方がわかりやすいような気がする。