2004-07-17
_ 予想通りメールの乗り換えは恐ろしくつらい作業だ。
コンバートにも時間が掛かったが、いちいち振り分けのルールを作っていく過程がたまらなくつらい。UI なんか要らないから全部エディタでルールを書かせてくれないかと真剣に考えてしまう。トラックパッドはやはり細かい作業には向いてないって。
Datula → Thunderbird
- Datula で mbox 形式で吐き出す
- 拡張子を .mbx にしておく
- Thunderbird 側で Eudora のメールをインポート
- さっきの .mbx のファイルが置いてあるフォルダを指定すれば ok
- ローカルフォルダ内にインポートされたメールがセットされる
Eudora ってなんだ、っていうのが正直なところ。今回のバージョンは Firefox もそうだけど、一般ユーザーをかなり意識した作りになってきているところは確かに評価できる。でもさ、mbox 形式って表記くらいは入れようよ。仮にも Thunderbird ですよ、ああた。どれだけ作り手が一般ユーザーを意識してもさ、まだマニア向けだっつの。
雑感
今回はメールボックス内に飼っていたワームが AVG に引っかかって作業が中断してしまったので、ついでに高速化のために AVG を切って作業を行った。
Thunderbird の動作は 0.6 よりは 0.7 の方が速い感じ。大量のメールデータを一気に扱う場合は Datula に比べて明らかに遅いが、まぁそんな機会はめったにあるわけでなし。それよりメール作成時に外部エディタが使えないのが痛い。細かいテキストを作るときにはやはりエディタの力がほしい。そういや昔 EdMax と Datula を比較した際にも
- 設定が楽であること
- 外部エディタで編集できること
で Datula に軍配を上げたような気がする。
Thunderbird の動作はまだまだこなれていない感じがする。
- フォルダツリーでフォルダをダブルクリックすると新しいウィンドウが立ち上がる。
これはたぶんメッセージ一覧でダブルクリックしたらメッセージウィンドウが立ち上がる動作がそのまま転用されているんだろうけど、明らかに変だ。
- メッセージを移動する際に移動中のカウントが出たり出なかったりする。
いつまで待てばいいのかよく分からなくて気持ち悪い。あんまり遅いので殺して再起動したら移動は終わってたりする。
こうして別な作業をしながらでないと続けられない。
2006-07-17
_ パーツショップのショッピングサイトってひどいんだなぁ
最近 Pentium M で新しいサーバを組もうと思ってパーツをあれこれ注文していた*1んだけど、そこで気づいたことがある。全部かどうかは知らないが、PCショップのショッピングサイトの作りがひどすぎるということである。高木先生にたれ込んだらきっと重油吹くサイトのオンパレードだ。個人情報を入力して注文を完了させる画面において、
- SSL 使ってない
- あるんです!
- オレオレ証明書
- 少しはやる気があったんだなぁ
- 決済処理丸投げで別ドメインの証明書*2
- しかもオレオレ
- しかもフレーム分けてる
なんてのがザラにある。もちろん安めの店を狙っていたからなのかもしれないけど、そういうところはおまけに電話で注文を受け付けてくれなかったりする。電話掛けてもサイトから注文をお願いしますと言われる。
まぁ別にその店に個人情報が渡ったとか、パーツを買った履歴が漏れるかもしれないとか、spam が増えるかもしれないといった程度のことにこっちはそんなにビクビクしちゃいない。買い物はすべて代引きにしてるのでクレジットの情報はやりとりしてないしね。
にしてもだ。今なお Web 上で正しくセキュアな通信を行うなんてことに、中小零細のショップが気を回せるところにはきてかもしれないけれども、PCショップの客層にはそういうの詳しい人結構いるんでないかい? そういうところ気にならないのかなぁ。ショップ比較する人たちはセキュリティには興味ないのかな? もしかしてプライバシーポリシーとか特定商取引の文言があればいいの?
文句は言っているが、なぜかほしいものが扱ってる店のかなり限られたものばかりになってしまい、セキュアでないことは分かったうえで買っちまった。「こういう店では買わない宣言」できればかっこよかったかもしれないんだけどねぇ。
2007-07-17
_ Debian etch の Trac 0.10.3 に Web Admin Plugin
WebAdmin - The Trac Project - Trac
インストールは
TracPlugins - The Trac Project - Trac
の通りに
sudo easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin
ってやったらあっけなく済んだ。インストール先は
/usr/share/trac/plugins/
ではなく
/usr/lib/python2.4/site-packages
の方だったけど、trac.ini の方で enabled にしたら普通に認識してくれたのでよしとしよう。
あとは user をコマンドラインから
trac-admin PROJECT permission add USER TRAC_ADMIN
してやると、Web の方でいちばん右端に Admin タブが現れるので、これ以降は Web 上で管理できるようになる。user とか group 作った方がいいんだろうけど、今のところそんなに複雑な管理してないから、ここら辺はまだ放置でいいかな。外に公開もしてないし。
※ trac 0.11 ではこれは core package に入るらしいのでますます楽になるのね。
2008-07-17
_ REXML で SAX風に id と class を抜き出してみた
こんな風に使います。
ruby class_id_picker.rb FILENAME
当然、HTML は処理できなくて、XHTML でないとダメです。
使い道は、とりあえず付けてある名前を推敲するのに使えるかなーくらい。あとは id が unique かどうかとか? 普通はこんなの要らない気がする。
attrs をチェックする際にわざわざ
//i
で引っ掛けているのは REXML でのパース時に大文字や小文字への正規化は行われないためです。
#! /usr/bin/env ruby
require 'rexml/document'
require 'rexml/streamlistener'
class ClassIdPicker
def initialize
@ids = []
@classes = []
end
attr_reader( :ids, :classes )
def self.parse( io )
obj = self.new
REXML::Document.parse_stream( io, Listener.new( obj.ids, obj.classes ) )
return obj
end
def attrs
return instance_variables.map { |e|
e.sub( /\A@/, '' )
}
end
def browse
puts "=== Classes ==="
puts @classes.sort.uniq.join( "\n" )
puts "=== Ids ==="
puts @ids.sort.uniq.join( "\n" )
end
class Listener
include REXML::StreamListener
def initialize( ids, classes )
@ids = ids
@classes = classes
end
attr_reader( :ids, :classes )
def tag_start( name, attrs )
attrs.each_pair { |name, val|
case name
when /\Aid\z/i
@ids.push( val )
when /\Aclass\z/i
@classes.push( val )
end
}
end
end
end
if ( __FILE__ == $0 )
app = ClassIdPicker.parse( ARGF.file )
# 数を数えながら表示してみる
app.attrs.each { |attr|
p attr
attr_list = app.send( attr ).dup
attr_list.sort.uniq.each { |name|
puts "#{name}\t#{attr_list.grep( name ).size}"
}
}
end