刺激的な単語に過剰反応する危険なマスコミ 光市母子殺害

http://kunakuna.exblog.jp/5800188


もし私が凶悪な強姦魔なら、まず子供を人質に取り、性行為に応じなければそ
の場で子供に危害を加える、と被害者を脅します。これでほとんどの場合、犯
行は成功裏に終わるでしょう。被害者の性器の写真などを撮影しておき、警察
に通報したらその写真をばら撒く、と言って立ち去れば、誰を殺す必要もなく
犯行もまず発覚しません。子供を人質に取っても被害者が言いなりにならない
場合は、躊躇なく子供を殺害します。被害者は動揺し、レイプに抵抗する力を
失うでしょう。性行為が終わったら被害者を殺害し、子供が被害者によって殺
害されたかのように見せかければ事件はそれでおしまいです。被害者の自殺を
偽装すれば、警察は子供を虐待して殺してしまった親が発作的に自殺したと考
えるに違いありません。

警察は犯罪者の心理を知り尽くしてるプロだから、犯罪者の考えることはお見通しでしょ。犯罪のプロであるのならば偽装が成功するかもしれないけど、素人じゃ無理かと。
マスコミの煽りすぎというのは同意。

追記:読んでて同意できる点が多いものの、どうもこの人は人を殺める行為を軽いものと思っているように見受けられる。虐待死や飲酒運転による死亡事故なんかは極刑あるいは無期懲役でいいと俺は思う。しつけと称して幼児をボコったら死に至る可能性があることくらい小学生でもわかる。だから虐待死は殺人と並ぶほど悪質な犯罪だと俺は考える。飲酒運転致死も同様。

ブログにコメントしたいのだが、w3mだとinvalid cookieとか出て書き込めないのでここで。

restart-caseの実験

ようするにエラーの修復手段を処理関数側で用意し、呼び出す側は自由に選択できるってことかな?
Rubyとかならlowは例外だけを発生させて、lowとmidの間の階層でエラー修復手段つきの関数をつくるのだろうか。
Rubyみたいにスタックトレースにエラーメッセージを出すことってどうするんだろう?

(define-condition invalid (error) ((desc :initarg :desc :reader desc)
                                   (value :initarg :value :reader value)))
(defun low (arg)
  (if (eql arg 'invalid)
      (restart-case (error 'invalid
                           :desc (format nil "invalid error in low: value=~a" arg)
                           :value arg)
        (use-value (value) value)
        (validate (new-value) (low new-value)))
      (format nil "(~a)" arg)))

(defun mid ()
  (format nil "<~a>" (low 'invalid)))

;;;; high level functions

(defun cause-error ()
  (mid))
;; (cause-error)

(defun signal-and-set-low-result ()
  (handler-bind ((invalid (lambda (c)
                            (use-value
                             (let ((msg "invalid caught at high."))
                               (signal 'invalid :desc msg)
                               msg)))))
    (mid)))
;; (signal-and-set-low-result)
(defun reraise-error ()
  (handler-bind ((invalid (lambda (c)
                            (error "reraised error: ~*" c )))))
    (mid))
;; (reraise-error)
(defun set-low-result ()
  (handler-bind ((invalid (lambda (c)
                            (use-value
                             (format nil "invalid caught at high: ~a" (desc c))))))
    (mid)))
;; (set-low-result)

(defun set-new-arg-of-low ()
  (handler-bind ((invalid (lambda (c)
                            (declare (ignore c))
                            (invoke-restart 'validate
                             'fixed))))
    (mid)))
;; (set-new-arg-of-low)

(defun handler-case-returns-result-of-error-clause ()
  (handler-case (mid)
    (invalid (c) 'invalid-handler)))
;; (handler-case-returns-result-of-error-clause)


CL-USER> (cause-error)
Condition INVALID was signalled.
   [Condition of type INVALID]

Restarts:
 0: [USE-VALUE] USE-VALUE
 1: [VALIDATE] VALIDATE
 2: [ABORT] Return to SLIME's top level.
 3: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {AFEA8D9}>)
CL-USER> (signal-and-set-low-result)
"<invalid caught at high.>"
CL-USER> (reraise-error)
Condition INVALID was signalled.
   [Condition of type INVALID]

Restarts:
 0: [USE-VALUE] USE-VALUE
 1: [VALIDATE] VALIDATE
 2: [ABORT] Return to SLIME's top level.
 3: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {AFEA8D9}>)
CL-USER> (set-low-result)
"<invalid caught at high: invalid error in low: value=INVALID>"
CL-USER> (set-new-arg-of-low)
"<(FIXED)>"
CL-USER> (handler-case-returns-result-of-error-clause)
INVALID-HANDLER

そりゃまずいな

http://lispuser.net/memo/lisp/2007-06-29-01-12.html

  ■[ruby]RubyはもっとLispっぽくなれれば 19:14 現在の状態をイメージファイルに落とした
  り、構文木をいじるマクロがあればいいな。真の多値(1.9にあるっけ?)やキーワード引数
  も恋しい。それと高速なネイティブコンパイラ。

たぶん、それは Ruby じゃなくなっちゃいます。Ruby の統一感、気持ち良さ、感情移入という
のは随所に Matz Way が込められているからであって、構文をユーザー定義できたら良さが薄
れちゃう気がします。一人の人間の一貫した意図がないとあの一貫した使い心地にはならない
でしょう。

うむ、たしかに構文木Rubyレベルでいじるのはまずいですね。Cの拡張ライブラリレベルでできるとしても、やはりRubyじゃなくなってしまいます?

Rubyをイメージファイルに落とせるとしたら、ライブラリロードを省けるからrails CGIを高速に実行できたりとかしそう。

もし、構文木をいじる方向やネイティブコンパイラを意識した方向に進化したりすると、Ruby
の各実装がバラバラに進化しはじめて、コンパイラに対応するために実行時とかコンパイル時
の概念が導入されたりして、いろんなコンパイラが乱立して、仕様の違いでユーザーが混乱し
て、結局みんなで集って ANSI Common Ruby を策定するはめになって、巨大な仕様とか叩かれ
て、Matz さん独自路線のシンプル Matz Ruby と二派に分かれて微妙にお互い仲悪いみたいな
関係になったらどうします?

げげげげ、そりゃまずい。やっぱりLispっぽくなったらCommon Lispの二の舞になるのは不可避なんですかねぇ。

SBCL 1.0.7

26日に1.0.6が出てるよーと言った翌日に1.0.7が出てら!なんというタイミング。

P.S.
もうSBCLに移行できました^^
初インストールの時SBCL_HOMEを設定するとエラーで怒られていたので、unsetすると無事にSLIMEまで使えました。
Debian GNU/Linuxだから設定の面倒まで見てくれているのかもしれません。

変数・関数などのドキュメントに自分のメモを書けるツールがあるといいな

プログラミングをしていて、使い方のわからない(覚えていない)変数・関数・クラスの使い方を調べるとき、その言語用のドキュメント引きツールを使う(RubyならReFeやRI、elispならM-x describe-*、Common LispならM-x slime-documentationなど)ことはみんなやっていると思う。けれど、説明を見たって実際に使ってみないと理解はできないもの。実際に使ってやり方を覚えるものだ。
実際の使い方はメモするべきことだが、方法はいろいろとある。ChangeLogメモやら、ブログに書くやら…。しかし、他の場所に書いたメモを検索すると、たくさんゴミもひっかかってしまう。これまでメモにたくさんコード片を書いていると特にだ。
どうせだったらドキュメント引きツールの結果に自分のメモが追記できたり、その結果を保存して、次回同じエントリを引いたとき自分のメモも出たらどんなに嬉しいことか。
そういうツールは存在しないようなので作ろうと思っている。

マイナーモードとdefadviceであらゆるツールと併用できるようにする。

結果のバッファにC-x C-sすると自分用のメモのみが保存される。ドキュメントとメモを保存するとベンダー側でドキュメントが変更されると古いドキュメントのままになってしまうため。

エントリを引いたとき該当するメモも表示する。

実用化できそうならば、emacswikiにでも置いておこうと思う。

民家の飼い犬鉄棒で殴り殺した無職男逮捕

http://www.nikkansports.com/general/f-gn-tp0-20070629-219704.html

 松山南署は29日、民家の飼い犬を殴り殺したとして、器物損壊の疑いで松山市萱町、無職
秋山康博容疑者(34)を逮捕した。

ちょっw動物愛護法違反じゃなくて器物損壊かよ。生き物と人工物を同一視する法律はどうかと思う。

携帯電話:「ダサイ機種の男は会いたくない」 女性意識調査

http://news.goo.ne.jp/article/infostand/business/it/1480286.html

古い=ダサイと思うのが今の風潮だろうか?物を大切に使うことを教えられなかったのかな。長年使っていると湧く愛着というものを知らないのだろうか。たしかに今は浪費時代だからな…
古いものでも長く使うにはいろいろな理由があるだろう。ケータイやPDAだったら、使いやすさ、キーへのなじみやすさ、画面の見やすさ、維持費などなど。
俺はいまだにモノクロ乾電池のPalmバイスVisor Platinumが現役PDAだし、2機持っている。おそらく10年後も使っているであろう。カラーだと目が疲れやすくて困る。ニッケル水素電池さえあれば壊れるまで使える。いざ電池がなくなってもコンビニ行けばまた新しい電池が買える。