この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
HTML版のファイル名(への変換ルール)を変更したけど影響はないのかなと思ったけど、ReFeは元のRDファイルの方を使うから影響はないんだった。
RWikiのUTF-8化を考えているけど、それは日本語が入ったファイル名が変わるから影響があるのかもしれない。
フッタに入れているようにクールなURIは変わらないということに出来るだけしたいので、RWikiをUTF-8にしたときにページが存在しなくて、指定されたページ名をeuc-jp(-ms)と見なしてUTF-8に変換した名前のページが存在すればリンクを表示するようにしたい。そこまではサーバ側だけで出来るからいいとして、fragment部分(URIの#以降の部分)もどうにかしたいと思うと、その部分は普通はサーバ側に送られてこないので変換できなくて困ってしまう。
クライアント側で何とか出来ないかと思ったけど、仮にJavaScriptで変換できたとしても、euc-jpとeuc-jp-msのような違いがあって、それがサーバ側と一致していないと困ってしまう。だから結局サーバに送信して変換してしまうしかなさそう。というわけでajaxのようにサーバに送ってどうにかすれば良さそうと思ったけど、具体的にどういうコードにすればいいのかはまだ調べていない。
iconv.dllでrb_sys_fail(iconv)をみて、そういえばcygwinの自分でmakeしたruby18がiconvでErrno::ENOENTになることがあると思って調べてみた。
rubyとirbはcygwinのパッケージのバイナリで、ruby18とirb18は自分でmakeしたもの。自分でmakeした方はSylpheed/Win32を試すときに入れたものに入っていたiconv.dllを使ってしまっていて、Iconv::IllegalSequenceにならなければ(偶然?)うまく動いていて、Iconv::IllegalSequenceになるべきところから変になってしまうようです。
途中でmakeし直したのでruby18のバージョンが変わってますが、ext/iconvは変わってないので影響はないはずです。
ではC:\GTK\bin\iconv.dllが見えなければいいのかと思ってC:\GTK\binをPATHからはずしてみるとrequire 'iconv'がLoadErrorになって、結局cygwinのパッケージのrubyと同じ状態には出来なかった。
% irb18
irb 0.9.5(05/04/13)
ruby 1.8.3 (2005-10-23) [i386-cygwin]
irb(main):001:0> require 'iconv'
=> true
irb(main):002:0> p Iconv.iconv("ISO8859-1", "UTF-8", "ABCDE")
["ABCDE"]
=> nil
irb(main):003:0> p Iconv.iconv("ISO8859-1", "UTF-8", "\342\200\234")
Errno::ENOENT: No such file or directory - iconv
from (irb):3:in `iconv'
from (irb):3
from :0
irb(main):004:0>
% irb18
irb 0.9.5(05/04/13)
ruby 1.8.4 (2005-11-06) [i386-cygwin]
irb(main):001:0> require 'iconv'
=> true
irb(main):002:0> puts File.read("/proc/#{$$}/maps")
00400000-0040A000 r-xs 00401000 A8B0:01F2 4503599627439818 /opt/ruby18/bin/ruby18.exe
7C940000-7C9DD000 rw-p 7C953156 A8B0:01F2 562949953666397 /cygdrive/c/WINDOWS/system32/ntdll.dll
7C800000-7C931000 rw-p 7C80B436 A8B0:01F2 562949953666407 /cygdrive/c/WINDOWS/system32/kernel32.dll
10000000-100C3000 r-xs 10084A00 A8B0:01F2 7318349394546386 /opt/ruby18/bin/cygruby1818.dll
77CF0000-77D7F000 r-xs 77CFF538 A8B0:01F2 1125899906960057 /cygdrive/c/WINDOWS/system32/USER32.dll
77ED0000-77F16000 r-xs 77ED63CA A8B0:01F2 3421891291871690816 /cygdrive/c/WINDOWS/system32/GDI32.dll
6F530000-6F537000 r--s 6F5317F0 A8B0:01F2 281474976761713 /usr/bin/cygcrypt-0.dll
61000000-61259000 r-xs 6104BA10 A8B0:01F2 844424930181929 /usr/bin/cygwin1.dll
77D80000-77E29000 r-xs 77D870D4 A8B0:01F2 562949953666419 /cygdrive/c/WINDOWS/system32/ADVAPI32.DLL
77E30000-77EC1000 r-xs 77E36284 A8B0:01F2 562949953666701 /cygdrive/c/WINDOWS/system32/RPCRT4.dll
762E0000-762FD000 r-xs 762E12C0 A8B0:01F2 562949953667090 /cygdrive/c/WINDOWS/system32/IMM32.DLL
60740000-60749000 r-xs 60742EAD A8B0:01F2 562949953667027 /cygdrive/c/WINDOWS/system32/LPK.DLL
73F80000-73FEB000 r-xs 73FBAEB6 A8B0:01F2 13879249626625981928 /cygdrive/c/WINDOWS/system32/USP10.dll
77BC0000-77C18000 r-xs 77BCF2A1 A8B0:01F2 562949953666891 /cygdrive/c/WINDOWS/system32/msvcrt.dll
003C0000-003C9000 r--s 003C28F0 A8B0:01F2 1125899907099599 /opt/ruby18/lib/ruby/1.8/i386-cygwin/readline.so
6BD50000-6BD7A000 r-xs 6BD68A90 A8B0:01F2 1688849860347154 /usr/bin/cygreadline6.dll
6C180000-6C1BD000 rw-p 6C1A40D0 A8B0:01F2 1688849860339699 /usr/bin/cygncurses-8.dll
003E0000-003E8000 r--s 003E27C0 A8B0:01F2 1688849860393559 /opt/ruby18/lib/ruby/1.8/i386-cygwin/iconv.so
06820000-068FA000 rw-p 0682D0B7 A8B0:01F2 844424930408275 /cygdrive/c/GTK/bin/iconv.dll
76BA0000-76BAB000 r-xs 76BA10F1 A8B0:01F2 562949953666759 /cygdrive/c/WINDOWS/system32/psapi.dll
=> nil
% irb
irb 0.9.5(05/04/13)
ruby 1.8.3 (2005-09-21) [i386-cygwin]
irb(main):001:0> require 'iconv'
=> true
irb(main):002:0> puts File.read("/proc/#{$$}/maps")
00400000-00405000 r-xs 00401000 A8B0:01F2 562949953509471 /usr/bin/ruby.exe
7C940000-7C9DD000 rw-p 7C953156 A8B0:01F2 562949953666397 /cygdrive/c/WINDOWS/system32/ntdll.dll
7C800000-7C931000 r-xs 7C80B436 A8B0:01F2 562949953666407 /cygdrive/c/WINDOWS/system32/kernel32.dll
10000000-100C3000 r-xs 100842AA A8B0:01F2 562949953509466 /usr/bin/cygruby18.dll
6F530000-6F537000 rw-s 6F5317F0 A8B0:01F2 281474976761713 /usr/bin/cygcrypt-0.dll
61000000-61259000 r-xs 6104BA10 A8B0:01F2 844424930181929 /usr/bin/cygwin1.dll
77D80000-77E29000 r-xs 77D870D4 A8B0:01F2 562949953666419 /cygdrive/c/WINDOWS/system32/ADVAPI32.DLL
77E30000-77EC1000 r-xs 77E36284 A8B0:01F2 562949953666701 /cygdrive/c/WINDOWS/system32/RPCRT4.dll
77CF0000-77D7F000 r-xs 77CFF538 A8B0:01F2 1125899906960057 /cygdrive/c/WINDOWS/system32/USER32.dll
77ED0000-77F16000 r-xs 77ED63CA A8B0:01F2 3421891291871690816 /cygdrive/c/WINDOWS/system32/GDI32.dll
762E0000-762FD000 r-xs 762E12C0 A8B0:01F2 562949953667090 /cygdrive/c/WINDOWS/system32/IMM32.DLL
60740000-60749000 rw-p 60742EAD A8B0:01F2 562949953667027 /cygdrive/c/WINDOWS/system32/LPK.DLL
73F80000-73FEB000 rw-p 73FBAEB6 A8B0:01F2 13879249626625981928 /cygdrive/c/WINDOWS/system32/USP10.dll
77BC0000-77C18000 r-xs 77BCF2A1 A8B0:01F2 562949953666891 /cygdrive/c/WINDOWS/system32/msvcrt.dll
003C0000-003C9000 r--s 003C28AA A8B0:01F2 562949953509566 /usr/lib/ruby/1.8/i386-cygwin/readline.so
6BD50000-6BD7A000 r-xs 6BD68A90 A8B0:01F2 1688849860347154 /usr/bin/cygreadline6.dll
6C180000-6C1BD000 rw-p 6C1A40D0 A8B0:01F2 1688849860339699 /usr/bin/cygncurses-8.dll
003E0000-003E8000 r--s 003E27BA A8B0:01F2 562949953509555 /usr/lib/ruby/1.8/i386-cygwin/iconv.so
6C6F0000-6C7E2000 r-xs 6C7DBB40 A8B0:01F2 281474976783482 /usr/bin/cygiconv-2.dll
76BA0000-76BAB000 r-xs 76BA10F1 A8B0:01F2 562949953666759 /cygdrive/c/WINDOWS/system32/psapi.dll
=> nil
irb(main):003:0>
OUTFLAG_SPACEあたりの話はどこかで見たことがあると思って、探してみたら、GNU make 日本語訳(Coop編) - 変数の二つの味の先行空白(leading whitespace)のあたりの話だった。そこでの例はこんな感じ。
nullstring := space := $(nullstring) # end of the line
久しぶりにサービス詳細 : インターネットマルチフィード時刻情報サービス for Publicを見てみたら、いつの間にかDNSラウンドロビンのとかv6のとかが増えていた。ルータとかWindowsとかはDNSラウンドロビンのntp.jst.mfeed.ad.jpにしておくとよさそう。
cygwin とか coLinuxを見て、NATの中の複数ホストに接続する時にWarning: the RSA host key for 'hoge.test' differs from the key for the IP address '10.1.1.1'のように同じIPアドレスで違うhost keyがあるという警告が出るのは、UserKnownHostsFileを使えばいいということに気がついた。今までもPortを設定するために~/.ssh/configに設定はしていたので、それぞれ1行増えるだけで解決した。
ちょっとdovecot-imapdを試してみようと思ったら、「Login failed: elmo-imap4-auth-login」と出てつながらなくて、サーバ側のログ(/var/log/mail.log)には「imap-login: Disconnected」としか出てなくて、*IMAP4 DEBUG*バッファを見ても「NO LOGGING」が3行あるだけで原因がよくわからないと思ったら、dovecotは認証がloginじゃなくてclearという罠だったので、「%INBOX:kazu/clear@dovecot.example.jp」のように「/clear」を追加して解決した。
bidi関係を調べていたら偶然見つけた。このくらいの話はi18n対応のアプリケーションを作る人には常識として知っておいてほしい気がする。
「文字列の連結」のあたりの話や「ユーザーインターフェイスの問題」の最後の方に書いてある「UI コントロールを文の一部として使用しないこと。」というのはKDEの翻訳でも非常に苦労してそうな感じがした。
区切り無しだと":filename :file" % {:filename => filename, :file => File.read(filename) }とかで簡単に困ったことになるので、Pythonの % 演算子の右辺がdictの場合のように"%{filename}s %{file}s" % {:filename => filename, :file => File.read(filename) }という感じで指定できるのが良いのではないかと思いました。ちなみに括弧はparenよりもbraceの方が#{}に近くていいかなと思ってbraceにしてみてます。
今までゲームのことはここには(たぶん)書かなかったけど、ニンテンドーWi-Fiコネクションで無線LAN関係ということで。発売日前日だったけど、偶然売っているのをみつけてしまったので、買ってしまった。
ゲーム自体の説明書とは別にニンテンドーWi-Fiコネクションガイドブックという小冊子がついていて、ニンテンドーWi-Fiコネクションと同じ説明が載っている。
対応しているのはWEP(152/128/64ビット)のみで他の暗号化(AESやTKIP)や認証方式(WPA-PSKやWPA-EAP)などには対応していない。
SSIDをブロードキャストしない設定は手動設定で接続出来るので問題なし。
で、接続してみようとすると「エラーコード:51300」でつながらなかったので、とりあえず後で考えようと思って普通に始めて、きりがいいところまでいったところで、もう一度アクセスポイントの設定画面を見ながら試してみると、MACアドレス制限が原因だったとわかったので、DSのMACアドレスを登録すると接続できるようになった。
MyException.raise("message")という書き方が出来てもいいのではないか2005.12.04 (Sun) 07:30 - 18:00にirc.fujisawa.wide.ad.jpが停止予定らしい。
最近停止予定がJIRCC MLには流れるのにWebには載らないことが多くて他の人に教えるのに困っていたけど、サーバ管理者によって載せるかどうかが違うのかな。
XML 1.0の文字として使えないものをU+3013(ゲタ記号)にしようと思って、Iconvで変換した後にgsubで変換するようにしてみた。ruby 1.8の正規表現の文字クラスだと[\x10000-\x10FFFF]の範囲は扱えなかったので、それ以外の範囲をチェックするようにしてみた。
以下はrwiki/trunk/site/ruby-lang/migrate.rbからiconv周りだけ抜粋。gsub部分があるので、tocodeにはUTF-8系しか使えない。migrate.rbではCVSの,vファイルも変換しているので、fromcodeで多バイト文字の2バイト目以降に「@」が入るものもまずそう(だけど以下の部分だけなら問題ないはず)。
require 'fileutils'
require 'iconv'
class FilenameMigrate
def initialize(fromcode, tocode, notest)
@fromcode = fromcode
@tocode = tocode
@notest = notest
if notest
@FileUtils = FileUtils::Verbose
else
@FileUtils = FileUtils::DryRun
end
end
GETA_KIGO = [0x3013].pack('U')
def convert_code(indata)
outdata = ''
iconv = Iconv.new(@tocode, @fromcode)
begin
outdata << iconv.iconv(indata)
rescue Iconv::IllegalSequence => e
outdata << e.success
indata = e.failed
indata[0] = 0x1a # dummy
retry
end
outdata << iconv.close
# [#x10000-#x10FFFF] are OK in XML 1.0 too
outdata.gsub(/[^\x9\xA\xD\x20-\xD7FF\xE000-\xFFFD]/u) { GETA_KIGO }
end
end
HotSaNICのpingモジュールでチェックしていたマシンが止まっていて、HotSaNICを動かしていたマシンのiptablesの設定を厳しくしていたので、loにLAN側IPアドレスからLAN側IPアドレス宛のICMPのTYPE=3のパケット(Destination Unreachable)が捨てられていた。loは127.0.0.1から127.0.0.1のようなloに割り当てられているIPアドレスのパケットしか流れないのかと思っていたけど、そうでもなかったらしい。
✑ なかだ [それはGNU makeは末尾のスペースを保存する例なので、ちょっと違いますね。]