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)
@ 表題リンクが間違ってたので修正:
しょんぼり。 ていうかファイルを置く事自体忘れてたし。バカじゃねーの俺。
2006年02月11日(土) [過去の今日]
#1 firefox 1.5.0.1
んー? Debianの 1.5.dfsg+1.5.0.1-2にアップグレードしたら、boldが出なくなった。なんだろう。mozilla-1.7.11では出てるし、xftやfontconfigの問題ではなさそうだが。
(@706)
2006年02月12日(日) [過去の今日]
#1 Sageの未読スタイル
ボールドになってるので、ボールドが出なくなってしまった今のFirefoxでは未読がさっぱりわからなくて不便すぎる。UserContent.cssで上書きできるかと思ったができないし、しょうがないのでSageのソースを拾ってきて改変。
当該箇所はsage.jarの中のskin/classic/sage.css。
#rssItemListBox > listitem { font-weight: bold; } #rssItemListBox > listitem[visited="true"] { font-weight: normal; }
こんなふうになってるので、
#rssItemListBox > listitem { font-weight: bold; background-color: #9beee7; } #rssItemListBox > listitem[visited="true"] { font-weight: normal; background-color: white; }
こんな感じにしてみた。
うーん、わかりやすいけど見にくいな……。デザインセンスかもん……。
(@398)
#2 firefox のボールド問題
#3 pangoが犯人だった
こないだから困ってたFirefoxでボールドが出ない問題は、Pangoという奴がenableになってたせいだった。はずしてコンパイルし直したら動いた。
で、このPango、IRCで教わったのだが、ギリシャ語の「Παν」(Pan、すべての)と日本語の「語」を組み合わせて作った造語だそうで。「Παν語」、つまりすべての語という名の通り、国際化テキストレンダリングのフレームワーク提供を目指してるらしい。 Pango プロジェクトでその様子が見えるが、まあせっかくなんだからいいものになってもらいたいなあ。
しかし、今現在は泣ける程に要らない……。どうにかならんのかな……。
(@679)
#4 agile
アジャイルって昨今の流行語の中で一番よくわかってなかったのだが、けっこう素で実践してる部分が多い。それが自分に取っては普通だったからそうしてたまでなんだけども、誤解を受ける場面もけっこうあった。
そんときこれを見せてあげれば、わかりやすく説明できたのかなあとちょっと後悔も入るんだが、まあ過ぎたことはしょうがないな。次の機会にでも、ちょっと説明してみようかなあ。
(@691)
2006年02月13日(月) [過去の今日]
ディディエとジルと言えば、ピローニとヴィルヌーヴだろう。しかし、ピローニの双子の子供たちの名前でもあるのだそうだ。ヴィルヌーヴの死後、ピローニが名付けたのだという。
親友と言われたヴィルヌーヴとピローニ、仲違いしたまま死に別れた二人。生き残ったピローニが、産まれた双子に付けた名前に込めた気持ちは、なんとも言い表しようが無い。
仲直りしたかったんだろうな……。
(@386)
セキュリティホールmemo でハッケソ。
また特許問題か。これがどんな特許に抵触するというのだろう。ソフトウェア特許にリスペクトを感じにくいのは、こういうショボい話ばかりが目立つからだよなあ。
そもそもそのショボさの原因は、特許取得の年代にも関係してる。今回は1994年だそうで、その当時だったらそれなりのリスペクトが得られたかもしれない。しかし、12年もたった今ではショボい話にしか聞こえなかったりもする。要するにソフトウェアのサイクルに比べて保護期間が長すぎる、といういつもの話になるわけだが。
ショボい話には関わりたくない、かといってソフトウェアを作ってると関わらざるを得ない。ソフトウェア特許自体に反対したり、ライセンスでどうにかしようと考えるのも無理からぬ話ではあるな。
保護期間がせめて10年程度ならなあ……。できれば5年くらいにしてもらいたい。通常の工業製品とはまた違った扱いを願う次第だ。
@ 思い付き:
期限付きGPLってどうだろう。保護期間を5年と定めて、公開から5年はGPL、5年を経過したら修正BSDLになるとか。これなら特許法との二重保護にもならんし、他人がそれで商売するのも難しくなるだろう。なんならGPLの制限をもっと増やしたライセンスでもいい。
公開されてるけど他人が商売に使えないって点で同じになるようにすれば、著作権法の範囲内で保護できて、特許権の保護期間にも影響されないと思うのだが。何にせよ二重保護はよくない。CDも再販制度と還流防止措置で二重保護になって批判受けてるじゃんね。
(@731)
2006年02月14日(火) [過去の今日]
#1 106日本語キーボードを101英語キーボードとして使う罠
普段HHKを利用してるのもあり、ノートパソコンの106日本語配列は使いにくくてしょうがない。なのでブチキレてXF86Config-4で101キーボードを指定してしまった。101配列ならなんでもよかった。今は反省している。
で、これで困るのがチルダとバッククオートがでないこと。 他のキーはそれとなく出てるのでいいのだが、これがけっこう困る。
ということで、xmodmapを使って空いてる「|/¥」のキーでチルダが出るように設定。
keycode 133 = grave asciitilde
うむ、これでなんとか生きて行けそうだ。いやまあ、素直に英語キーボードに張り帰ればいい話なのだが、自分一人で使うマシンでもないので、そうもいかなかったりするわけで。
(@583)
@ 考えたらおかしい:
このノートパソコンの「|/¥」はバックスペースキーの左で、無理矢理101配列にしたときは「+=」キーの右になる。「+=」キーの右は、やはりバックスラッシュ/パイプでなければなるまい。
ということでそれも入れ換えることにした。
keycode 133 = backslash bar keycode 51 = grave asciitilde
うむ、満足。
(@592)
2006年02月15日(水) [過去の今日]
#1 ステーキのどんと味っ子
ステーキのどん というレストランチェーンでご飯を食べて来た。何気なく食べてたのだが、この店は俺の中の古い記憶を呼び起こす……
うーまーいーぞーーーーー(口から怪光線)
周囲をベーコンで包んだステーキ、鉄板トレイのはじっこにはあつあつに焼かれたポッチ。そして大根下ろしのソース……。
こ、これはミスター味っ子のステーキっ?!?????!
そう、あれは小学生の時だったか、ミスター味っ子という漫画があり、そのアニメ版が大流行してた。その劇中で作られたステーキは、肉汁を出すためにベーコンで包み、さっぱりとおいしいが肉がさめてしまう大根下ろしソースのために、熱いポッチで温めながら食べるという代物だった。
まさかあれから20年近くたって現物を目の当たりにするとは……。ていうかホントにやってる店があるとは……。
ちょっとさがしてみると、ミスター味っ子の DVD-BOX はあるし、 文庫版 も出てる。 うお、 陽一が大人になった続編 なんかもあるのか。
久しぶりに味っ子の世界に触れたくなってきたなあ。
@ ちなみに:
ステーキを熱々にたもつためのポッチだが、ポッチ自体がすぐさめちゃうし、ポッチにくっついてる面しかあったかくならないので、あんまし意味が無い気がする……。これが現実というものか。
(@333)
@ 16日追記:
mixiでタレコミがあった。ベーコンで包んだのはライバル側のステーキだったらしい。さすがに20年近く前の記憶は曖昧だな。
さらに、あのポッチはペレットという名前があって、けっこう古くから使われてるものらしい。味っ子オリジナルだとは思ってなかったが、他で見たことは無かったなあ。
ペレットはネットで調べてみると「焼きながら食べるためのもの」という記述があったが、だとすると本来ペレットとともに出てくるステーキは生のままなんだろうか。ソースで冷えた肉を温めるというソリューションは、確かに大根下ろしソースならではの発想にも思えるな。
2006年02月16日(木) [過去の今日]
#1 http://slashdot.jp/article.pl?sid=06/02/16/0335225 WinXP Home サポート期間延長
やっと発表かよ!! おせーーーよ!!!
とりあえずいつ出るかわからん次期Windows、Vistaのリリース後2年はサポートされるとのこと。これで現在家電量販店に出回ってるWindowsXP Home搭載の大量のパソコンたちも安心というわけだ。
噂じゃVistaの前に中継ぎバージョンを売ってどうにかするって話もあったが、まあ無事延長ということでめでたい。こういう一般消費者にわかりにくいことはやめてもらいたいなあ。一般消費者はお店が提示してる保証期間しか知らないぞ。勝手に5年保証とかつけて売ってるけど、話をよく聞いたらハードの保証だけでソフトウェアはOSもふくめて保証対象外だっていうし。ひでえ商売だなと思うんだが、一般消費者は理解できないからOK、なんだろなあ。
もっとも、Windows Vistaは来年出荷されるって話なわけで。今WinXP Homeがプリインストールされたパソコンを買っても3〜4年しかサポートされないわけだ。やはり家電量販店はひどい商売してるな、と思う。
(@203)
#2 あゆ、ポルノ新作情報
またぞろアイドルの名前を使った18歳未満お断りのspamかと思ったが、某レコード店からのメールだった。浜崎あゆみとポルノグラフィティの新作情報らしい。どちらもアーティスト名だな。
……ならべるとややっこしい。
(@211)
2006年02月17日(金) [過去の今日]
うげ。正式な対処法はよくわからんけど、どうせ使ってない機能なのでこのCGIそのものへのアクセスをdenyしておいた。
しっかし、久しぶりにHNSのソース覗いてみたら、jcode.plとか使ってんのね……。うーん、いい加減他のシステムに移行すべき時かなあ……。
HNSのクエリを処理できそうな(あるいはそういうhackが簡単に仕込めそうな)blogツールどっかにないかな。
(@645)
2006年02月22日(水) [過去の今日]
うほ、こんなリソースがあったのか。
実は先日俺もとうとうzshに移行したのだが、ログインシェルとして使うには不安があって、ログインシェルは/bin/shにしてしまった。で、~/.profileに
if [ -x `which zsh` ]; then exec zsh elif [ -x `which bash` ]; then exec bash fi
なんて書いておいたのだが、仮想端末では/bin/shがあがってる状態になってしまってしょんぼりしてた。
一応 ~/.xsession に
SHELL=/usr/bin/zsh
なんて書いたら解決したのでOK!とか思ってたのだが、これはよろしくないな。 俺も~/.Xresourcesを書き換えておこう。
(@505)
@ そういえば:
rxvtを初回起動したときに環境変数LANGがCになっててkinput2が動かないなんて問題がある。
env LANG=ja_JP.eucJP /usr/bin/rxvt -im kinput2
なんてやっても全然ダメでしょんぼりしてたのだが、もしかしたら上記リソースでこれも解決するのかな?
こんどカーネル入れ換えるときに試してみよう。
(@509)
@ 24日追記:
試してみた。が、やっぱりrxvt初回起動ではkinput2は動かないなあ。
2006年02月24日(金) [過去の今日]
#1 timeのフォーマット
最近、timeコマンドがbashの場合シェルの組込になってる事に気付いた。 /bin/shを使ってると/usr/bin/timeに入ってるGNU timeが使われるのだが、これの書式が見にくくてしょうがない。
%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
普通にPOSIXフォーマットで出力させるには-pオプションが必要なようだが、どうにかしてこれをデフォルトにできないものだろうか。 manpageを見たりソースをgrepしたりしてみたのだが、設定ファイルの類が見当たらぬ。
で、よく探してみると付属のtime.htmlに環境変数TIMEにフォーマットを記述しておけばいいらしいことがわかった。しかしPOSIXとか書いておいても無駄みたい。ちゃんとフォーマットを書かなければならないらしい。
/* The output format for the -p option .*/ static const char *const posix_format = "real %e\nuser %U\nsys %S";
time.cに以上の記述があるので、
TIME='real %e\nuser %U\nsys %S'
としてみたら、ちゃんとPOSIXフォーマットで出力された。 /bin/shからちゃんと見えるように、~/.profileにでも書いておくべきか。むしろこれがデフォルトであるべきな気がするんだが。/etc/profileに記述しておいてくれてもよさそうな。
(@142)
#2 rxvt初回起動でkinput2が動かない問題解決
LANGとLC_ALL両方を設定しないとIMがきちんと動かないものらしい、rxvt。
env LANG=ja_JP.eucJP LC_ALL=ja_JP.eucJP /usr/bin/rxvt -im kinput2
つわけで.xinitrc/.xsessionには上記のように書けばいいということ。こんなことかよ。
(@166)
ほおう、EFI Linux Loaderですか。誰かがやるだろうと思ってたけど、ホントにやってる人いるんだな、EFI対応。
ま、これで間違ってIntel Macを買っちゃった人も安心だね。Debianではいつ使えるようになるのかなあ。
(@672)
2006年02月28日(火) [過去の今日]
某日記 でハッケソ。
アレゲライセンス反対ってのはこういうことだな。素のqmailならセキュアといえたとしても、パッチも含めてすべての組合せが検証され、メンテナンスされることはない。なぜならライセンスがアレゲだから。
まあ、djb系は避けて通れるなら避けて通るべき道だという思いがますます強くなったな。
(@805)
ちょー笑った。
ま、確かにwiki記法にしても省略しすぎてソースを見たとき意味がわからんってのはあるしなあ。そういう点ではgeek向けでしかないのかも。
正しいメタ言語のあり方ってのは一つの大きなテーマかもなあ……。HNFは気に入ってるんだが。
(@815)