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年07月05日(Tue)

[RWiki] www.ruby-lang.orgのrwiki更新

/ja/man/などのrwikiを更新した。rwikiのtrunkに入れているsite/ruby-lang/update.shで更新して、/var/lib/ruby-man/siteで./run-ruby-man-rwiki.sh restartなど。diffmail.shなどもsite/ruby-lang/site以下に入れたので、crontab crontab.txtでcrontabも更新。


2005年07月08日(Fri)

[quickml][postfix] XVERP

sargeのdebianパッケージになっているquickmlを試してみた。 quickmlの「エラーメールの自動処理」の説明に「Postfix の場合は設定不要」と書いてあるので、「XVERP に対応した Postfix」という条件の方をみたしていないと判断して、postfixの設定を調べてみた。 sargeのpostfixは2.1.5-9で2.1系なので、Postfix VERP HowtoSMTPD(8)と調べていって、Postfix 設定パラメータのauthorized_verp_clientsのところで「Postfix バージョン 2.1 では、このパラメータは smtpd_authorized_verp_clients に改名され、デフォルト値はなくなりました。」というのが原因だとわかったので、/etc/postfix/main.cfに「smtpd_authorized_verp_clients = 127.0.0.1/8」を追加したところ、以下の例のように「250-XVERP」が出てくるようになった。
% telnet 127.0.0.1 smtp
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 mail.example.net ESMTP Postfix (Debian/GNU)
EHLO localhost
250-mail.example.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-XVERP
250 8BITMIME
QUIT
221 Bye
Connection closed by foreign host.
%

2005年07月09日(Sat)

[ruby] Ruby勉強会@関西-4

たくさんの人が来ていた。 BioRubyの話はそういう使われかたもあるのか、という感じだった。メインの処理はC言語で書かれた既存のプログラムを使うというのは、適材適所という感じでいいのではないでしょうか。 Ruby初級者向けレッスン第1回は何人かのTAの一人ということになってしまったので、それなりにそれなりのことをしたような気がする。最後の「いろいろやってみよう」のところでは、irb上で以下のような感じのことをやっていた。
require 'apache_log'
logs3=File.read('log3.txt').collect{|line|ApacheLog.new(line)};nil
logs=File.read('log2.txt').collect{|line|ApacheLog.new(line)}
logs.find_all{|x|x.request_uri=="/index.rdf"}.size
logs.find{|x|/mac/i=~x.user_agent}
logs.collect{|x|x.user_agent}.uniq.sort
require 'pp'
pp logs3.collect{|x|x.user_agent}.uniq.sort
c=Hash.new{0};logs3.each{|x| c[x.time.wday]+=1};c
c=Hash.new{0};logs3.each{|x| c[x.time.wday]+=1};c.sort_by{|k,v|v}
c=Hash.new{0};logs3.each{|x| c[%w"Sun Mon Tue Wed Thu Fri Sat"[x.time.wday]]+=1};pp c.sort_by{|k,v|v}
c=Hash.new{0};logs3.each{|x| c[%w"Sun Mon Tue Wed Thu Fri Sat"[x.time.wday]]+=1};pp c.sort_by{|k,v|-v}
c=Hash.new{0};logs2.each{|x|c[x.user_agent]+=1};c
c=Hash.new{0};logs3.each{|x|c[x.user_agent]+=1};pp c.sort_by{|k,v|v}
本日のツッコミ(全11件) [ツッコミを入れる]

Before...

aldara [aldara http://pomm.a]

miss [internet advertising]

cukimbo [aldara http://aldara]


2005年07月13日(Wed)

セキュリティアップデートの日

いろいろセキュリティアップデートされている。WindowsとかMac OS XとかFirefoxとか。


2005年07月14日(Thu)

[emacs] vc-svk.el

EmacsSVK - Kwikiにあるvc-svk.elを使おうとしても、emacs21だとそのまま使えないらしいので、いくつかいじって試してみた。defaliasで3引数になっているところの最後のdocstringっぽいところを削って、time-less-pとassoc-stringがないので、eldavからeldav-time-less-pをもらってきて、assoc-stringも適当に作って、以下のようにしてごまかしたら、load errorはおこらなくなったけど、いまいち何が使えるのかよくわからない。
  (add-to-list 'vc-handled-backends 'SVK)
 
  (defsubst eldav-time-less-p (t1 t2)
    "Say whether time T1 is less than time T2."
    (unless (consp (cdr t1))
      (setq t1 (list (car t1)(cdr t1))))
    (unless (consp (cdr t2))
      (setq t2 (list (car t2)(cdr t2))))
    (or (< (car t1) (car t2))
        (and (= (car t1) (car t2))
             (< (nth 1 t1) (nth 1 t2)))))
  (defalias-maybe 'time-less-p 'eldav-time-less-p)
 
  (defun vc-svk-my-assoc-string (key alist)
    (assoc-default
     key alist
     (lambda (a b)
       (and (stringp a) (stringp b) (string-equal a b)))))
  (defalias-maybe 'assoc-string 'vc-svk-my-assoc-string)
 
  (require 'vc-svk)

[linux] dbskkd-cdb

いつの間にかddskkで変換できなくなったので、なぜかと思って調べてみたら、tcp wrapperの設定として/etc/hosts.denyにALL: ALLを追加したのが原因だったので、/etc/hosts.allowにALL: 127.0.0.1を追加して解決した。

本日のツッコミ(全15件) [ツッコミを入れる]

Before...

aldara [aldara http://pomm.a]

miss [internet advertising]

cukimbo [aldara http://aldara]


2005年07月15日(Fri)

[ruby][rails] MySQLでUTF-8

sargeのmysql-server-4.1やmysql-client-4.1パッケージ(バージョンは4.1.11a-4)でUTF-8に統一しようとしていろいろ悩んだが、CREATE TABLEでDEFAULT CHARSET=utf8にしておいて、railsの方はconfig/environment.rb の ActiveRecord::Base.establish_connection の後に ActiveRecord::Base.connection.execute("set names utf8")ではだめで、ApplicationControllerにconfigure_charsets で文字化けしなくなった。
% cat app/controllers/application.rb
# The filters added to this controller will be run for all controllers in the application.
# Likewise will all the methods added be available for all controllers.
class ApplicationController < ActionController::Base
  before_filter :set_charset
  before_filter :configure_charsets
 
  protected
  def set_charset
    @headers["Content-Type"] = "text/html; charset=utf-8"
  end
 
  def configure_charsets
    @response.headers["Content-Type"] = "text/html; charset=utf-8"
    # Set connection charset. MySQL 4.0 doesn't support this so it
    # will throw an error, MySQL 4.1 needs this
    suppress(ActiveRecord::StatementInvalid) do
      ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
    end
  end
end
%

2005年07月16日(Sat)

[security][firefox] ファイルを開く?

Windowsで、URLをクリップボードにコピーして、Ctrl+L Ctrl+V Enterのつもりが間違えて、Ctrl+O Ctrl+V Enterと押してしまったら、ローカルファイルとしてそのURLのHTMLが開かれてしまった。セキュリティ的には非常にまずいと思うのですが、Documents and Settingsの中のLocal Settings\Temporary Internet Files\Content.IE5の中のファイルだったということはWindows側の問題なんでしょうか?


2005年07月19日(Tue)

[ruby] autobuild

1.9の方はuninitialized constant EXIT (NameError)の問題が残っているけど久しぶりに0F0Eに戻っている。

1.8の方はtest_https_proxy_authentication(HTTPSProxyTest)で1F。

[ruby] Rubyist Magazine 0008 号

リリースされたようです。


2005年07月20日(Wed)

[mozilla] Firefox 1.0.6とThunderbird 1.0.6

窓の杜だと両方1.0.6(ただしThunderbirdの1.0.6は英語版のみ)になっているのに、http://www.mozilla-japan.org/ は古いまま。


2005年07月21日(Thu)

[security] Re: Cross-site scripting と Hungarian-notation

変数名とかにエスケープされているかどうかがわかりやすい名前を付けるというのは、あんまり出来てないなあ。エスケープしたものは文字列に埋め込んでたり、それをそのまま返値として返してることが多いからかな。

rubyのtaintをエスケープやサニタイズされているかどうかのフラグに使おうとしたことがあるけど、結局出力の時にチェックが必要だったり、適切にフラグが伝搬しているか確認しにくかったりして、うまくいかなかった気が。

[security] Re: サニタイズ? エンコード? バリデーション?

(「えび日記さん」と呼んでいるのにあわせると「こめんとさん」?)

なんと呼ぶかという話はおいといて、『上の話とも関係するんだけど、結局高木さんも言われている通り、 SQL injection でも XSS でも、データの「型」というか「値域」をちゃんと意識していれば、正しいプログラムは自明に書けて、バグなんて引き起こさないはずなんですよ。』というのは間違ってると思う。ちゃんと意識していても一瞬でも気がゆるめばバグが入る(可能性がある)。


2005年07月26日(Tue)

[mozilla][firefox] ユーザスタイルシート

ユーザスタイルシートの設定はどこだったっけ、と思って設定を探しまわっても見当らず、しばらく考えていたら、userContent.css決めうちだったことを思い出して解決。

いろいろ試そうとすると、変更を反映させる方法がfirefoxの再起動しかわからないので時間がかかって困る。


2005年07月27日(Wed)

[nifty] 【重要】会員種別移行のご案内

「【重要】会員種別移行のご案内(再送)」というメールがきていた。会員種別の自動移行処理をするらしい。会員種別の変更によるともう戻せないらしいけど、戻す必要ももうなさそう。


2005年07月29日(Fri)

[web] JavaScriptオフ

JavaScript必須なのに、JavaScriptオフで見ると中途半端に使えて、途中からクリックが無視されるサイトが困る。必須ならオンにするように促すメッセージが欲しい。

例えば、bloglinesとかFEEDBRINGERとかでログインは出来るのにfeedが読めないとか。

[UI] 使いにくいUI

1の状態で「RSS 1.0」の「1.0」のところにマウスカーソルを持っていくと2の状態になってクリックできなくなってしまう。
  1. hover前
  2. hover中

[tdiary] ol/li/img

olの中のliの中にimgを直接書いてるだけなんだけど、1と2が重なって、画像がずれている。tdiaryの中で画像を使うのはどういうタグの書き方を想定しているんだろう?

[tdiary] [BUG] unknown node type 0 ruby 1.8.1 (2003-12-25) [i686-linux]

最新の表示でキャッシュがあるとScript Errorになるので、そのメッセージにあるようにAddHandler cgi-script-debug .cgiを試してみたところ、[BUG] unknown node type 0 ruby 1.8.1 (2003-12-25) [i686-linux]になっていた。

これはどうしようもないのでとりあえず適当に更新をして直るのを待つことに。


2005年07月30日(Sat)

[web] コメントに埋め込んだXML

Account Auto-Discovery(Accout(nが抜けてる)になってるところが)をみて思い出したけど、埋め込んだXMLに「--」がそのまま入っていて変になっているものがあるような気がする。そのあたりのエスケープもちゃんと考えないと書式としては不備があるように思ってしまう。

[web] 開いただけで既読扱い

bloglinesもFEEDBRINGERも間違えて閉じてしまうと未読なのに既読になってしまう。mobileimapも長文のものを全部読むのはつらいのに開いただけで既読扱いになるのが不便なことがある。

[web] つっこみした

遅レス。とかMoonRock@MoonRock/A mere diaryとか。


2005年07月31日(Sun)

[ruby] truncate

seekしてないから、ってことで仕様かな。Fileにあわせてるみたいだし。
#!/usr/bin/ruby
require 'stringio'
buf = StringIO.new('', 'w')
buf.print('a')
p buf.string #=> "a"
buf.truncate(0)
p buf.string #=> ""
buf.print('a')
p buf.string #=> "\000a"
buf.truncate(0)
buf.seek(0)
buf.print('a')
p buf.string #=> "a"
File.open('hoge', 'w') do |f|
  f.print('a')
  f.truncate(0)
  f.print('a')
end
p File.read('hoge') #=> "\000a"
File.open('hoge', 'w') do |f|
  f.print('a')
  f.truncate(0)
  f.seek(0)
  f.print('a')
end
p File.read('hoge') #=> "a"

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