2006年02月01日(水) [過去の今日]
もうずいぶん下火の話題だと思うが(そもそも発端の会社がそれどこじゃないし)、 ひろの日記帳 でハッケソしたTrackback論争のメモページがおもしろかった。
それで改めて思うのは、やはり「spamと区別の付かないものはspamである」ということだろう。アクセス数稼ぎが目的で、その裏には(アソシエイト等)金が動いてるなら、それはもう立派にspamだし、明確にアソシエイトが動いてなくてもそう思われて反論しようが無いであろう。そこに想像を働かせることのできなかった人たちが、たまたまアニメファンに多くいたのが件の騒動のきっかけと言えるんじゃないだろうか。
そもそもこういうものは技術的に解決すべきだと思う。送信は厳密に、受信は寛容にというThe Netの原則を考えれば、受信側でどうにかすべきだろう。極端な結論はtrackbackを使わない、というもので、逆側の極端はいっさいの対策を行わない、というものだろう。その中間に何があるかと言えば、フィルタの類になる。そのフィルタの実装法やポリシーは多様で、トラックバック元にリンクがあれば通す、というものが多いようだ。
その他にも思い付くだけで、
- ベイズフィルタをもちいる
- 受信側の人間が承認するまで表示されない
- 一度メールで作者に送り、メーラーのspamフィルタを通した後、承認待ちフォルダにリファイル
と、ざっとこんなもんか。
大量のspamの中からちゃんとしたものだけ見付けだし、なおかつ作者によるもみ消しを「うっかりやってしまわない *1 」程度に自動化されてるものが望ましいだろう。
承認待ちのトラックバックをトラックバック元の記事ごとHTMLメールかなにかで作者に送り、そのメールにコマンドを書いて返信すると承認したり、却下したりできるようなのがいいかな。もちろんその手前でベイズフィルタ等が必要になるだろうけども。となるとデフォルトは却下になってないと使いにくいなあ……。一定期間放置で自動承認という仕組みが入れにくい。
さてはて、他にいい方法は無いかな。
(@237)
2006年02月02日(木) [過去の今日]
#1 メディアによって印象が違う
ふと本家/.を見ていたら、 Beyond Java というタイトルの記事があるのを見付けた。興味をもって「Javaを越えるとはどういうことだろう。新しい言語か、Javaの革新的な何かか」と思いながら見てみると、"Beyond Java"という題名の本のレビュー記事だった。
その時点で、いきなり興味を失った。「なんだ本の題名か。どうせただのJavaのテクニック本かなんかだろう」、そう思ってしまった。
同じ題名がついてても、/.と本ではかくも自分に与える印象が違うものかと、驚愕した。メディアの違いは大きいのだな。
(@163)
うちで使ってるBX50XFのバッテリ寿命が尽きたので購入。交換もけっこう簡単で、ちゃんと動作中に交換できた。いい製品だな。もう5年くらい使ってるUPSだろうか。
しかし簡単な交換とはいえ、ドジっ子属性爆発、うっかりネジを落して紛失してしまった。うーん、まあふたがしまってなくても動くし、今度探そう……。
(@289)
2006年02月03日(金) [過去の今日]
うへ、最近homesにアクセスできてなかったのはこのせいか。 しょうがないので cp /var/lib/samba/passdb.tdb /var/run/samba/ したら、あっさり繋がった。NEWSとかに出てたっけっかなあ、こんな変更。
(@353)
おおお、とうとうzshがマルチバイト文字の1文字も1文字とし認識するようになったか。これでbashに並んだなあ。
つことでそろそろzsh乗り換えかのお。1日自由な時間が取れたらいいのだが。
(@662)
なるほど、痛みいる。俺自身もPCオタクであって、PCパーツを求めてアキバ通いをしてたクチだからだ。確かに店員に質問したりしてパーツを選んでいた。あれはよろしくなかったか。
だが、俺はそれでもそれなりに勉強してきたつもりではあるし、今では専門家と呼べるほどではないにせよ、そこそこの知識はあると思う。メモリとメモリコントローラの相性とかはどうしょうもないので、相性保証付きを買ったり、店員に高品質のメモリを出してもらったりしてはいるが。
言われてみれば我々が「フィギュア」と呼び、展示品を「すげえ!」と叫びながら見ていたものたちも、ガレージキットばかりだったように思う。もちろん組み立てもされておらず、着色もされてない。そういうものたちだったはずだ。
そのようなものを見て、造型の美しさや組み上りの素晴らしさをして「すげえ!」と思っていたはずだ。それは紛れもなく「技術」へのリスペクトであったし、そこまでは「アキバらしさ」があったのではないかと思いたい。
しかし、確かにドラマの「電車男」に描かれてるようなオタク像というのは、技術から完全にかけ離れている。一応自前で組み上げたPCと思しきマシンを使ってはいたが、素人に毛が生えた程度であることは雰囲気からも読み取れる。飾ってあるフィギュアやプラモも、ほとんど完成品ばかりではなかったか。そもそも塗料や接着剤が部屋の中に見当たらなかったように思う。
あれが一般的な、現代のいう「アキバ系」であるというなら、俺や一緒にアキバに通ってた仲間たちは絶対にアキバ系ではない。みんな何かしらの「技術」に秀でた人たちだった。アニメも好きだし、エロゲーもやる奴はやっていたが、現実の女性から逃げるためにやっていたわけじゃないはずだ。そういうエロゲーマニアに限って普通にカノジョがいたりしてたからだ。
俺はアキバが好きだし、どう変容しようともアキバの裏通りは昔とそんなに変わらない。だから今でもアキバには行くし、これからも行くだろう。だから俺は今まで誇りを持って自分をアキバ系であると自認して来た。だが、それは大きな思い違いだったのだろうか。なれば、アキバ原人とでも名乗るしかないのだろうか。
(@779)
2006年02月04日(土) [過去の今日]
ちょっと入り用だったのでこのプラグインを入れてみた。もっとも、画像張り付けからは呼び出せないので、プレビューが見れないという悲しい感じ。
それでも使いものにはなるし、まあ用は足りた。ありがたいことだが、やっぱりプレビューが……。
(@901)
2006年02月05日(日) [過去の今日]
2006年02月06日(月) [過去の今日]
#1 Intel MacのCMがむかつく
「長い間Intelチップは地味で小さな箱の中に閉じ込められて、単調な作業を繰り返して来た」って、PCで作られて来た数々の仕事をバカにしてねえか。自らの土台を真向から否定して、そんなにMacがうれしいですかそうですか。
やっぱりMacは鼻につくなあ、と思った次第。
(@629)
2006年02月07日(火) [過去の今日]
個人的にはsuper/hyperキーにでも割り当てておけばいいような気がする。Windowsキーではないが、俺はHHKユーザなのでAlt以外にコマンドキーがある。確かWindowsで使うとこれはWindowsキーとして機能したような気がする。
で、これをxmodmapでsuperキーに割り当てる。実際のキーコードはxevなどで調べた方がよかろう。
keycode 0x83 = Super_L keycode 0x81 = Super_R
そして.emacsに以下のような設定を書き込んでる。
;; auto-fill-modeの切替え (global-set-key [(super a)] 'auto-fill-mode) ;; bufferの文字コード変換 (global-set-key [(super c)] 'set-buffer-file-coding-system) ;; ^H が backspace になってるので (define-key global-map [(super h)] 'help)
というわけで、UNIX使いにもWindowsキーは有用に使える(かもしれない)という例でした。
(@407)
@ おまけ:
Super+hjlkでEmacsのカーソル移動ができる設定なんてのも作ったことがあった。以下のような感じ。
;; super + hjkl でカーソル移動 (define-key global-map [(super h)] 'backward-char) (define-key global-map [(super j)] 'next-line) (define-key global-map [(super k)] 'previous-line) (define-key global-map [(super l)] 'forward-char)
便利か?と言われると微妙。hはヘルプに割り当てちゃったしな。
(@411)
#3 Jcode.pm の 存在意義
もうEncodeが使えるようになって久しく、Jcode.pmはその歴史的役割を閉じた……と思い込んでたのだが、そうでもないらしい。
たとえば半角カナを全角カナに変換しようというとき、Jcode.pmでは、 こちらの投稿にあるように
$from = Jcode->new('0-9A-Za-z()#”','sjis')->euc; $to = '0-9A-Za-z()#"'; $str_e = Jcode->new($str,'sjis')->h2z->tr($from,$to)->euc;
というようなことが出来た。これをEncodeでやろうとしてもできるものではない。
で、そんなwrapperがあればいいのかなあ……と考えたとき、そういえばJcode.pmそのものがEncodeのwrapperとして再実装されてたのを思い出した。 そこで上記コードをその再実装版のJcode.pmで動かしてみたところ、見事に動いた。コードも簡潔で美しくなるし、何より開発者に優しい。
うーん、やはりJcode.pmは日本語を利用するperlユーザーには必須という状況なのであろうか。
(@687)
@ 参考までにEncode::JP::H2Zの使い方:
実はperldocにも使い方が書いてない。しかも色々注意事項があったりする割に、解説してるサイトがない。唯一 googleキャッシュで見付けた記述 があったので、引用しておく。
まず、utf8な変数は受け付けません。ので、utf8フラグが立っている場合は削っておく必要があります。encode等を使って、euc-jpのオクテット列に変換し、渡す事になります。 (中略)
use Encode; use Encode::JP::H2Z; if(Encode::is_utf8($string)){ $string = encode('euc-jp', $string); Encode::JP::H2Z::h2z(\$string); $string = decode('euc-jp', $string); } else{ Encode::JP::H2Z::h2z(\$string); }
ポイントはeuc-jpに変換し、リファレンスで渡してやることか。
(@699)
@ 手元のコード:
今やってるのはShift_JISの半角文字の入った(でっかい)テキストファイルを読み込み、半角カナはすべて全角ひらがなに変換しようという試み。
まず、Encodeだけでやった場合。
use Encode qw/encode decode from_to/; from_to($data, 'shiftjis','euc-jp'); Encode::JP::H2Z::h2z(\$data); $data = decode('euc-jp', $data); $data =~ tr/ア-ン/あ-ん/; print encode('euc-jp', $data);
速度は、
real 0m11.840s user 0m10.090s sys 0m1.310s
こんなもん。
次に、Jcode.pmを使った場合。
use Jcode; my $from = Jcode->new('ア-ン','sjis')->euc; my $to = 'あ-ん'; my $str_e = Jcode->new($data,'sjis')->h2z->tr($from,$to)->euc; print $str_e;
速度は、
real 0m11.876s user 0m10.210s sys 0m1.160s
実質的に違い無し。
んー、これがもともとオブジェクト指向の言語であれば、Encodeのような実装でも同じStringクラス配下になって、Jcode.pmのように使えるのかねえ。
ちなみにテストに使ったテキストファイルは12MくらいのShift_JIS。CPUはAthlon64 3000+で、OSはDebian GNU/Linux(sid)のi386版。
(@709)
#4 wiki-mode が欲しい
なんとなくwiki-modeが欲しくなって、major modeを定義してみている。まあ、font-lockで強調表示する程度のもので、どういう機能が必要かはおいおい考えようかと。
(@823)
2006年02月09日(木) [過去の今日]
とりあえずfont-lockを定義しただけで満足。hnfモードみたいな補完機能は、ちょっと作りにくいしね。
ああ、2月9日だから一応肉の日リリースか?(笑)
(@389)
@ 表題リンクが間違ってたので修正:
しょんぼり。 ていうかファイルを置く事自体忘れてたし。バカじゃねーの俺。