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


2005年05月02日(Mon)


2005年05月05日(Thu)

[debian] スラッシュドット ジャパン | Sarge ついにフリーズ、今月末にリリースの予定

ついにというかやっとというか。

特に気になっているパッケージとしては、wanderlust(wl,wl-beta)が古いまま、cvsupが(libpm3の道連れで)消えた、というあたり。


2005年05月09日(Mon)

[mail] 長い行

1行が989バイトより長い行があるとpostfixが勝手に改行を入れてしまうらしい。RFC2822を考慮すると、そんな長い行を送ってしまうMUAの方が悪いとも言えるけど。

その影響で日本語文字列の途中で切られてしまうと文字化けしてしまったり、PGP署名などがあると検証に失敗してしまったりする。

[ruby] Rubyist Magazine - 0006号

公開されたらしい。


2005年05月10日(Tue)

[ruby] SSL経由のNet::IMAP

メールをIMAPにまとめよう計画進行中。IMAPサーバはcourier-imap-sslのオレオレ証明書利用の状態で、openssl s_client -connect imaps.example.jp:993 -stateで繋いで表示される-----BEGIN CERTIFICATE-----の行から-----END CERTIFICATE-----の行までを~/oreore.certsなどに保存して、接続自体は1 logoutなどで切断。openssl s_client -connect imaps.example.jp:993 -state -CAfile ~/oreore.certsで接続確認。 そんな感じでオレオレ証明書をキャッシュするというopensshのような方法で証明書を入手した後、Net::IMAPでbiff用のプログラムを作ってみたら、.../lib/ruby/1.8/net/imap.rb:897: warning: using default DH parameters.と出るので、何かと思ってIRCで話してみると、無視しても構わないwarningだったらしい。
imap = Net::IMAP.new('imaps.example.jp', 993, true,
                      File.expand_path("~/oreore.certs"), true)
imap.authenticate('LOGIN', ENV['USER'],
                  File.read(File.expand_path('~/.imapbiff')).chomp)
imap.examine('INBOX')
seen = {}
loop do
  new_seen = {}
  imap.noop
  imap.search(["UNSEEN"]).each do |message_seq|
    attrname = "BODY[HEADER.FIELDS (list-id)]"
    next if /\.ruby-lang\.org/ !~ @imap.fetch(message_seq, attrname)[0]['attr'][attrname]
    envelope = @imap.fetch(message_seq, "ENVELOPE")[0].attr["ENVELOPE"]
    from, = envelope.from
    subject = NKF.nkf('-j', envelope.subject).gsub(/\s+/, ' ')
    str = "imapbiff: #{subject} - <#{from.mailbox}@#{from.host.split(/\./)[0]}...".freeze
    new_seen[str] = true
    next if seen.key?(str)
    puts str
  end
  seen = new_seen
  sleep 10
end

2005年05月11日(Wed)

[skk] skkdic-expr2

なんとなくマージしてみた。dkkinputは今は使ってないけど。
% sudo aptitude install skktools                        
(略)
% skkdic-count .skk-jisyo .skk-uim-jisyo .skkinput-jisyo
.skk-jisyo: 907 candidates
.skk-uim-jisyo: 1207 candidates
.skkinput-jisyo: 664 candidates
% skkdic-expr2 .skk-jisyo + .skk-uim-jisyo + .skkinput-jisyo > skk-jisyo
% skkdic-count .skk-jisyo .skk-uim-jisyo .skkinput-jisyo skk-jisyo
.skk-jisyo: 907 candidates
.skk-uim-jisyo: 1207 candidates
.skkinput-jisyo: 664 candidates
skk-jisyo: 1632 candidates
% cp skk-jisyo .skk-jisyo
% cp skk-jisyo .skk-uim-jisyo
% cp skk-jisyo .skkinput-jisyo
% rm skk-jisyo
% skkdic-count .skk-jisyo .skk-uim-jisyo .skkinput-jisyo
.skk-jisyo: 1632 candidates
.skk-uim-jisyo: 1632 candidates
.skkinput-jisyo: 1632 candidates
%

2005年05月13日(Fri)

[ruby] railsのインストール

~/rにrailsをインストールしてみた。test/runner.rbがこけるのは無視で。rubygemsのところはバージョン固定。
% cat r-setup.sh
#!/bin/sh
set -ex
prefix=$HOME/r
PATH="$prefix"/bin:"$PATH"
 
# initial dirs
r_init () {
    mkdir "$prefix"
}
 
# checkout
r_checkout () {
    mkdir "$prefix"/wc
    cd "$prefix"/wc
    cvs -d :pserver:anonymous@cvs.ruby-lang.org:/src co -d ruby_1_8 -r ruby_1_8 ruby
    cd ruby_1_8
    autoconf
}
 
# build
r_build () {
    mkdir "$prefix"/build
    cd "$prefix"/build
    mkdir ruby_1_8
    cd ruby_1_8
    "$prefix"/wc/ruby_1_8/configure --prefix="$prefix"
    make
    make test
    make install
    ruby "$prefix"/wc/ruby_1_8/test/runner.rb || :
}
 
# install rubygems
r_rubygems () {
    wget -N http://rubyforge.org/frs/download.php/3700/rubygems-0.8.10.tgz
    tar zxvf rubygems-0.8.10.tgz
    cd rubygems-0.8.10
    ruby setup.rb
}
 
# install rails
r_rails () {
    gem install --include-dependencies rails
}
 
r_init
r_checkout
r_build
r_rubygems
r_rails
%
本日のツッコミ(全1件) [ツッコミを入れる]

babie [おぉー、rubyからゴッソリ作るんだ。レンタルサーバ向けですね。]


2005年05月16日(Mon)

[tdiary] AntiRefererSpam Plugin patch

AntiRefererSpam Pluginを使おうとしていくつか問題があったので、パッチを作成してみました。CRLFの行とLFのみの行が混在していたので、CRを取り除いた後のdiffがantirefspam-20041125-ignore-cr.diffで、CRを取り除く前からのdiffが antirefspam-20041125.diff です。 変更点は以下の通り。
  • base_urlでもチェックするようにした。
  • index_pageが「http://」か「https://」で始まらない時は無視するようにした。
  • antirefspamの有効にするかどうかを設定できるようにした。
  • 一度も設定していないと@conf['antirefspam.proxy_server'].empty?でNoMethodErrorになっていたのを修正した。

[tdiary] AntiRefererSpam Plugin

こっちで確認したのと同じような現象でうまく動かないという話をみかけたので、ツッコミしておいた

パッチについてはAntiRefererSpam Pluginの作者にメールでも送っておいたので、そのうち直るかも。

[Linux] gdbとシグナル

別途定めるチェッカーからIRCに発言を送り込むためにUNIXSocketで待ち受けるnadoka pluginを作って試していたら、gdb上で実行していた送り込む方のスクリプトが受け取り側の方を/nadoka reloadした後にSIGPIPEでgdbが止まってしまったので、困ってしまった。gdb上じゃなかったらErrno::EPIPEになるので、gdbの(設定の)問題点だと思って調べてみるとhandle SIGPIPE nostopでErrno::EPIPEになった。 以下は確認に使ったスクリプト。
#!/usr/bin/ruby -vd
require 'socket'
 
server = UNIXServer.open('sock')
Thread.start do
  server.accept.close
  server.close
end
 
sock = UNIXSocket.open('sock')
sock.puts

2005年05月20日(Fri)

[security] tmpreaper

ruby-devのFileUtils.rm_rfの話を見ていて、sargeになってからtmpreaperがデフォルトでは何もしないようになっていて、/usr/share/doc/tmpreaper/README.security.gzを読んでから/etc/tmpreaper.confを修正するようになっているのを思い出した。


2005年05月24日(Tue)

[ruby] 祝日対応カレンダー

いつの間にかドメインが変わっていて、検索で見つからなかったのでリンク。

cal.rb:14: getopts is deprecated after Ruby 1.8.1; use optparse insteadと出るのが気になるけどどうすればいいかなあ。


2005年05月26日(Thu)

[ruby] soap4rの非互換

warningはおいといて、nadokaのgoogle botがこんな非互換の影響を受けた。
% cat g.rb
require 'soap/wsdlDriver'
google_wsdl = 'http://api.google.com/GoogleSearch.wsdl'
@google = SOAP::WSDLDriverFactory.new(google_wsdl).create_driver
@google_key = File.read(File.expand_path('~/.google_key'))
result = @google.doGoogleSearch(@google_key,'nadoka',0,1,false,"",false,'lang_ja','utf-8','utf-8')
e =result.resultElements[0]
p e['URL']
p e.methods.grep(/URL/i)
p e.URL
% ruby -v g.rb
ruby 1.8.2 (2005-04-11) [i386-linux]
/usr/lib/ruby/1.8/soap/streamHandler.rb:82: warning: instance variable @nil not initialized
"http://www.atdot.net/nadoka/nadoka.ja.html"
["URL=", "URL"]
"http://www.atdot.net/nadoka/nadoka.ja.html"
% ruby18 -v g.rb
ruby 1.8.3 (2005-05-24) [i686-linux]
/home/kazu/opt/ruby18/lib/ruby/1.8/net/https.rb:121: warning: method redefined; discarding old edit_path
/home/kazu/opt/ruby18/lib/ruby/1.8/net/https.rb:130: warning: redefine socket_type
/home/kazu/opt/ruby18/lib/ruby/1.8/net/https.rb:157: warning: method redefined; discarding old on_connect
/home/kazu/opt/ruby18/lib/ruby/1.8/soap/wsdlDriver.rb:160: warning: method redefined; discarding old __attr_proxy
WSDLDriverFactory#create_driver is depricated.  Use create_rpc_driver instead.
/home/kazu/opt/ruby18/lib/ruby/1.8/soap/wsdlDriver.rb:48: warning: instance variable @logdev not initialized
"http://www.atdot.net/nadoka/nadoka.ja.html"
["uRL", "uRL="]
g.rb:9: undefined method `URL' for #<SOAP::Mapping::Object:0xb7ce17a8> (NoMethodError)
%

2005年05月27日(Fri)

[Windows] PuTTY β 0.58 ごった煮版

いつものようにcygwinでmakeした。
  • svn co svn://ixion.tartarus.org/main/putty-0.58
  • putty-0-58-JP_Y-2005-05-20.lzhからputty-0-58-JP_Y.patchとputtyd.icoを取り出す。
  • patch -Np0 < ../putty-0-58-JP_Y.patchでパッチを当てる。
  • puttyd.icoをputty-0.58/windowsに置く。
  • perl mkfiles.plを実行する。puttyd.icoを置いた後に実行するのが重要。putty-0.58直下にputtyd.icoを置いてしまうとMakefile.cygではputty-0.58直下のputtyd.icoに依存していることになっているのにwindows/pfwd.rcはwindows/puttyd.icoを要求するというおかしなことになってしまった。
  • windows/pageant.rcにCONTROL "&Save this passphrase",103,"Button",BS_AUTOCHECKBOX | WS_TABSTOP | WS_DISABLED, 10, 42, 120, 10のようにWS_DISABLEDを追加してパスフレーズ保存を無効に。
  • make -f Makefile.cyg VER=-DRELEASE=0.58-JP_Y-2005-05-20-- COMPAT=-DWINVER=0x0500でmake。VERのところは適当に。WINVERはw32api/wingdi.hでAlphaBlendの宣言を有効にするため。
  • windows/*.exe,windows/*.lng,windows/*.iniをインストール先にコピー。

2005年05月28日(Sat)

[LLDN] チケット購入

ローソンの店舗に行って直接Loppi端末を利用して購入してみた。昼の部と夜の部を同時に指定する方法がわからなくて結局別々に指定したら、個人情報を別々に入力しないといけなくなって非常に面倒だった。Loppi端末が複数指定対応するか、セットのチケットが用意されていれば楽だったのに、と思った。セットのチケットだと後で面倒そうだから、複数指定対応する方が良さそう。

[svk] svkでsvn trunkの追っかけ

いつものようにRD形式で書いてしまったので、The RWikiに置いてみた。

svk coまでしてしまえば後はcvs up -dPsvn upのようにsvk pullするだけ。


2005年05月30日(Mon)

[emacs] Simple Paste 貼り付け

tdiaryのcontribにあるhttp.elを使ってSimple Pasteに貼り付けるものを書いてみた。initzのファイルに書いたので、init-*.elになってますがそこは適当に。 http.elはHTMLが返ってくることしか考慮してないようで、URLのみを返してくるsp/auto/commitに対応出来なかったので、そこだけ変更して使ってみた。
;;; init-atdot.el --- init file for atdot.
 
;; http://cvs.sourceforge.net/viewcvs.py/tdiary/contrib/util/tdiary-mode/
;; にある http.el の http-fetch の "</body>" の部分を
;; http-fetch-terminator に置き換えて
;; (defvar http-fetch-terminator "</body>"
;;   "content body end mark.")
;; を追加したものを使用。
(autoload 'http-fetch "http")
 
(defvar atdot-simple-paste-auto-commit-terminator
  "http://www.atdot.net/sp/view/"
  "sp/commit/autoが必ず返す文字列の一部")
(defvar atdot-simple-paste-auto-commit-url
  "http://www.atdot.net/sp/commit/auto"
  "sp/commit/autoのURL")
(defvar atdot-simple-paste-auto-commit-result-regexp
  "http://www\\.atdot\\.net/sp/view/[a-z0-9]+"
  "sp/commit/autoでpasteした結果を表示するためのURLを取り出す正規表現")
(defun atdot-simple-paste-post (beg end)
  (interactive "r")
  (let ((http-fetch-terminator atdot-simple-paste-auto-commit-terminator)
        result-buffer)
    (insert
     "<"
     (save-excursion
       (setq result-buffer
             (http-fetch
              atdot-simple-paste-auto-commit-url 'post nil nil
              `(("paste_body" . ,(http-url-hexify-string
                                  (buffer-substring beg end) 'utf-8))))
             )
       (set-buffer result-buffer)
       (goto-char (point-min))
       (if (re-search-forward atdot-simple-paste-auto-commit-result-regexp
                              nil t)
           (match-string 0)
         (error "paste failed.")))
     ">"
     )))
 
(provide 'init-atdot)
本日のツッコミ(全13件) [ツッコミを入れる]

Before...

dolores [oxycontin http://lin]

aldara [aldara http://pomm.a]

miss [internet advertising]


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