2009/12/15

about-mdiary

mdiary について

有名な tDiary にあやかり mdiary と名付けた。
正式名称は「ま(m)だできてない diary」で mdiary ^^;

<特徴>
• ruby 1.9.1 が必要です。
• local (自分のコンピュータの中) で使うものです。
• home user 向けです。
• ちょっとしたメモ、雑記帳、todolist としても利用できます。
• vim を前提にしてますが mdiary-main.rb を一行変更するだけで他のエディタでもつかえます。
• 標準ライブラリ以外のライブラリに依存してません。
• gem とかいらないです。
• データベースを使用していません。
• marshal なども使用していません。
• キャッシュを作成しません。
• logfile ありません。
• ひょっとしたら軽いかも?
• まだ未完成です。

<使い方>
$ vim bin/mdconfig
ファイル保存先として利用したいディレクトリのパスを記入。
$ vim bin/mdiary-run.rb
ruby 1.9.1 のパスを一行目に記入(例:#!/usr/local/bin/ruby)

新規ファイル作成
$ ./mdiary-run.rb -at '2009/12/14 21:00'

一覧表示(ハイフン + 小文字のエル)
$ ./mdiary-run.rb -l

=>
1  [-] [2009/12/14 Mon PM 21:00:26] [about-mdiary] (draft)
2  [-] [2009/12/14 Mon PM 21:00:00] [about-git] (diary)
3  [+] [2009/12/14 Mon PM 20:00:00] [list] (book)
Select NO:


使い方の続きは REAME を...
$ git clone git://github.com/midore/mdiary.git
or
ブラウザごしにダウンロードもできると思います。
URL : http://github.com/midore/mdiary.git

force_encoding

ここを読んで
github.com/midore/amazon-jp-api
をなおした。

2009/11/07

numerical.rb

www.midore.net/daybook/2006/5-9/1159081162.html
を書き直し。

% cat numerical.rb

  1 # coding: utf-8
  2 # 2009-11-06
  3 
  4 str =<<EOF
  5 <?xml version="1.0" encoding="UTF-8"?>
  6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  7 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
  8 <head>
  9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 10 <title>数値文字参照</title>
 11 </head>
 12 <body>
 13 EOF
 14 
 15 n = ARGV[0]
 16 abort unless n
 17 abort if /\D/.match(n)
 18 (n.to_i..n.to_i+5).step{|x|
 19     str << "<p>#{x} => &##{x};</p>"
 20 }
 21 str << "</body>\n</html>"
 22 filename = 'numerical.html'
 23 # save file
 24 File.open(filename, 'w:utf-8'){|f| f.print str}
 25 # only OS X
 26 system "open #{filename}"


表示する数値文字は引数として与える数字から5を足した数までに制限している。line.18
数字の範囲は得に定めていないので、与える数字によってはすべて空欄にもなりうる。

% ruby19 numerical.rb '1100'


を実行すると実行ファイルと同じ階層に'numerical.html' ファイルが保存される。
OS X の場合、最終行でブラウザが 'numerical.html' を開く。
与えた数に対応する数値文字がブラウザに表示される。

1100 => ь

1101 => э

1102 => ю

1103 => я

1104 => ѐ

1105 => ё

2009/10/31

FXRecentFolders

Finder->移動->最近使ったフォルダ
に追加されたフォルダの削除

% cat delete-recentrolders.sh

#!/bin/bash

cd
defaults delete com.apple.Finder FXRecentFolders
killall Finder


# 実行権付与
% chmod +x delete-recentrolders.sh

# 実行
% ./delete-recentrolders.sh

参考
http://www.macosxhints.com/

2009/10/30

Book.new('1Q84')

村上春樹の『1Q84』が世間に投げかけた何かを仮に x として読者が感じ取ったものを仮に k とする。
k は抽象的概念を並べたものでもありキーワードの束のようなものとする。

これを Ruby で表現してみると

  1 # coding: utf-8
  2 
  3 class Book
  4 
  5   attr_reader :name
  6   attr_accessor :x
  7   
  8   def initialize(name)
  9     @name = name
 10     @x = nil
 11   end
 12   
 13 end
 14 
 15 class Reader
 16 
 17   attr_reader :booklist
 18   
 19   def initialize
 20     @booklist = Hash.new
 21   end
 22   
 23   def read(book)
 24     @book = book
 25     return self
 26   end
 27   
 28   def image(*k)
 29     @booklist[@book.name] = k
 30   end
 31   
 32 end
 33
 34 book1 = Book.new('1Q84-1')
 35 book2 = Book.new('1Q84-2')
 36 
 37 i = Reader.new
 38 i.read(book1).image('science','nation','man')
 39 i.read(book2).image('religious','language','female')
 40 p i.booklist


実行結果

# =>
# {"1Q84-1"=>["science", "nation", "man"], "1Q84-2"=>["religious", "language", "female"]}


@x には値を付与できるし値を読み取ることもできる。けれども値を付与できるのは作者以外にいない。そして Reader class は直接 @x の値を読み取る手段をもたない。@booklist の values は読者の抱いた感想に基づくキーワード群。それぞれ何かと対をなしていて二項対立とも同一概念の表裏とも光と陰とも言えるような値にしておいた。あえて加えなかったけれども Author class を作るとしたらそこには作者が値が付与できる @booklist があるはずだ。それは作家の頭の中にしか存在しないものなんだろうけど。

作ってみて一番面白かったのは、25行目 return self。 これは i.read(book).image('xxx') と記したかった為に必要だったからなにげなく書いたんだけど def read が self を返す(or 返す必要がある)なんて! ちょっとリアルな感じがした。

'science' のかわりに 'mathematic' の方がふさわしいような気もするし
'nation' のかわりに 'force' とすべきなのかなと迷った。
'female' のかわりに 'child', 'man' のかわりに 'soldier' にしてもよいような気もした。

『1Q84』を読み終えた読者が実際今何人なのか?なんて知る由もないが、仮にすべての読者が抱いたキーワードを全て寄せ集めることができたのなら、この本が抱えるキーワードの束は膨大な数になるんだろうなー。そして時間経過とともに読者数累計は増加してキーワードのエントロピーは増大していく。翻訳される言語が増えればなおさら...。それにキーワードはただ増えるだけじゃなく他の本とどんどんと繋がっていく。

たとえば
『知識人とは何か』( Edward W. Said / 平凡社 / 978-4582762365 )
に 『 若き日の芸術家の肖像 』( Joyce James )
からの引用がある。

p.46

「きみには、ぼくがすることと、しないことをおしえてあげよう。ぼくは自分で、もう信じていないもの、それを家庭と呼ぼうが、祖国と呼ぼうが、教会と呼ぼうが勝手だけれども、そういうものに仕えるつもりはない。ぼくがやってみたいのは、人生とか芸術をとおして、自分自身を、できるかぎり自由に、できるかぎりそこなうことなく表現することなんだ。そのため、自分をまもるのに使う武器は、三つにかぎることにするー沈黙、亡命、そして狡知」。


ここにある3つの単語は、『1Q84』が発する何かと強烈に結びついているように思えてならない。
狡知に対応するものが 'science' or 'mathematic'
亡命に対応するものが 'nation'
沈黙に対応するものが 'language'

それにしても、と思う。たくさんの小説家が巨大な渦に流され溺れてしまわないための自衛策についてあらゆるかたちで書き残してる。それこそ「そこなうことなく」しるされてる。

修正: 'femail' => 'female'

悪霊にさいなまれる世界

悪霊にさいなまれる世界 上 / Carl Sagan / 早川書房 / 978-4150503567
悪霊にさいなまれる世界 下 / Carl Sagan /早川書房 / 978-4150503574

この文庫本は2000年に「人はなぜエセ科学に騙されるのか」というタイトルで出版された作品で2009年7月に文庫化されたもの。

訳者の青木薫氏が「訳者あとがきに代えて」の中で

これまでも、たびたび、自ら行李を背負い、一冊一冊行商して歩きたいぐらいだと冗談めかして言ってきたが、実はそれは本音である。

と述べているのが印象深かった。

この訳者が手がけた本は過去にいくつか読んだことがある。どれも非常に面白かった。面白いばかりでなく「読者の1人として尊重されている」とすら感じた。
それはどういうことかというと....

科学分野の本(一般市場に流通する書籍)を書く人たちは、一般人への配慮に欠いていることがある。なぜならその方がより的確な単語を使用できるし効率的に話を進めることができるであろう、から。そこには本が作られる最初から一般人との境界線がある。そのような本は専門書店にだけ置いてあるわけではなく普通の書店にも並べられているので、私が何かの間違いで購入してしまった時、その都度私は自分を落第生だと改めて思い知らされマラソンを走る最後のランナーだと感じてきた。じっさい世の中は私にとって難しい本でみちみちているし。
たまには運良く少し理解できるようになることも稀にある。それはよほど意識的に関連本を探したり、うなりながら何度も繰り返し読んでみたり違う方向から探ってみることなしにはありえない。こういった読者の姿勢は独習することそのものだからそのように学ぶことを、億劫がったり嫌悪するべきではない、という考えは当然なことだとも思うけれども、一方で、難しいことをわかりやすい文章で説明し多くの人が理解しやすい内容の本に出会ってしまうと、なんというか、やっぱり深く感動する。小説を読み終わった後の感動となにも違わない。

そういった意味で「暗号解読」など青木薫氏が訳された一連の本は、読者である私に落第生だと感じさせるような真似は一切しなかった。私は最後まで興味深いマラソンを完走できてしまった。文系人間(高校生の時に文系か理系かの選択を迫られて文系を選択したという意味)の私でも科学ジャンルの本の面白さにフル参加できた...。これは当時非常に稀なことだった。この喜びは本の面白さともあいまって二重の楽しさを私にもたらしてくれた。ひとえに作者の人と訳者の人がわかりやすい文章を用意してくれたおかげだ。そこには科学者でも研究者でもないごく普通の一般人を尊重し信頼する気持ちが根底に流れているように感じた。だから、読者である私は

「読者として尊重されている」

と、思った。
(最近福岡伸一氏の著作にも同じ印象を持っている)

...以上のような経緯があり
この人が訳す本は面白いと認識している。そして実際今回も期待以上に面白かった。この本にこめられたカールセーガンさんの気合いと根気強さには驚くばかりだった。

懐疑的な精神を培うことは民主主義的な思考と矛盾しない。むしろ大切なことのようだ。加えて、もしもあなたが今なお数学や科学に対して文学や音楽に対するのと同じような興味や関心を抱けないでいるのなら、それはあなたの人生にとっても人類の歴史にとってもマイナスでしかない、とカールセーガンさんは言っているんだと思う。たとえこの本を手に取る人が何歳であろうともそんなことは全くおかまいなしに、知るとは科学的とはどういうことかについて改めて立ち止まって考えるべき機会を全ての読者に与えてくれると思う。愚かな権力者に対してストッパーとして役割を果たせるのは、結局1人1人の科学的な視点およびその総体なんだろうと思った。

nationalgeographic.co.jp

怠惰への讃歌-1

怠惰への讃歌 / Bertrand Russell / 平凡社 / 978-4-582-76676-9

新聞の書評欄に紹介されていたのを読んで(確か10月半ばあたり)珍しく素直に購入してみた。第四章まで読んだ

この本は、平凡社から2009/08/10 付けで出版されたものだが本の最初のページに 「1958年に角川文庫から刊行されたもの」だと記されている。作者のバートランド•ラッセル氏は数学者としても知られている人。

第1章 1932 年
第9章 1929 年
第10章 1930 年
第11章 1933 年
第13章 1928 年
第15章 1928 年

とあり1928年から1933年のあいだに書かれたもののようだ。

第一章で1日4時間労働説を読んだ。これにはちょとしたカルチャーショックをうけた。この説はたとえこの本に興味がない人でも知っていて損はないと思う。
そして、それにもまして興味深かったのが下記。

p.72

この気狂いじみた状態に対し、気狂いじみた解決を考えついた。ドイツに、ドイツが支払わなければならないものは何でも貸すときめたられたのである。
連合国が結局いいわたしたことはこうである。「私たちは、賠償をお前らから免除してやるわけにはいかぬ。というのは、それはお前たちの犯した罪悪に対する正当な罰であるからだ。さてまた、私たちは賠償を支払わせるようにしてやることはできない。そうすると、私たちの産業を破壊するからである。それで、私たちはお前たちに金を貸そう。そして私たちが貸したものをお前たちが返却するようにさせよう。この方法によると、原則は守られて、しかも私たちに損害はないだろう。お前たちに及ぶ損害についていえば、それをただ後まわししようと考えているだけだ」。だがいうまでもなく、この解決は、その場限りのものにすぎなかった。...


これはひどい話だと思った。

「インフレーション」という単語をガッコーのキョーカショではじめて目にした時、大量のお札を荷車にのせてそれを引っ張る老婆の白黒写真がそのかたすみに掲載されていたと記憶している。その写真の人はドイツ人だと習った気もする。その程度のことであとはほぼ忘れてしまっているんだけども、ここを読んでへぇーそんなことだったわけ?とちょっと驚いてしまった。ドイツに多額の賠償を負わせた。としか私は認識していなかったから。

p.74

私たちの不幸のもととなったしどろもどろの考え方は、消費者の立場と生産者の立場、もっと正しくいうなら、競争する組織の中の生産者の立場との間に起こった混乱である。賠償がドイツに課せられると、連合国は、自分たちを消費者だと思いこんだ。即ちドイツ人の生産したものを消費することができるのは、いい気持ちだろうと考えた。ところが、ヴェルサイユ条約が結ばれてしまって、彼らが俄に気がついたことは、自分たちも生産者であり、自分たちが求めているドイツの品物が流れ込むと、自分たちの産業が亡ぶだろうということだ。彼らは非常に困ったので、途方にくれ頭をかきはじめたが、何の役にも立たなかった。連合国側は一緒に集まって頭をかき、それを国際会議といってみても何にもならない。正直なところ、世界の支配階級が甚だ無智、愚かであるから、かよな問題を考えぬくこともできず、また甚だ鼻柱が強いから、彼らを助けようとする人々から注意をしてもらおうともしなかった。


え!...。ヴェルサイユ条約についてこんな風に書いてある文章には初めておめにかかった。これがある程度事実に即しているのならば連合国側は相当子供ぽいというか「あなたいくつですか」よばわりされても不思議じゃない程の愚行を行ったことになる。国際会議つったって商店街のおじさんたちの井戸端会議と大差のないような代物だったということにもなる。いや商店街のおじさんたちの方がよっぽど優秀だろうから大差はあるかな。これじゃたまらない気持ちになるし、これが歴史だと思いこまされてきたいくつかのことは詭弁だったのかと疑いたくなってしまう。

戦争がなぜ起きたのかを解説する本はたくさんあるし、何が事実で何が事実でなかったのかをできるかぎり正確に見分けようとするのは結構大変なことなんだけども、だからといってそれは永久に知ることができないものだと決めてかかるのもおかしな話だと、あらためて思ったりもした。