デスノートを読んだ

DEATH NOTE (12) (ジャンプ・コミックス)

DEATH NOTE (12) (ジャンプ・コミックス)

会社の人から借りれたので一通り読んでみた。評論本とかに比べてネタバレが罪な感じなので、感想書きにくいなぁと思ったら、Amazonレビューでは容赦なく中身について書いてたので、まぁいいかとも思ったり。
最初の方の死神の世界観とかは結構面白い。んで、途中から金田一少年の事件簿みたいになって、最後は火曜サスペンス劇場な終わり。
個人的にはもっとストレートなものの方が好きだ。銀と金みたいな。

銀と金―恐怖の財テク地獄変 (1) (アクションコミックス・ピザッツ)

銀と金―恐怖の財テク地獄変 (1) (アクションコミックス・ピザッツ)

テレビで犯罪についての論争を観ていると、大きくは「犯罪者は悪なのだから、行為に見合う代償(実刑なり賠償なり)を行うべきだ」という視点と「犯罪者とて被害者、刑罰とは別に加害者と被害者の双方に社会保護が必要だ」という視点で揉めているように感じる。
自分はMORI LOG ACADEMY: 社会とはと同じような考え方を持っていて、社会に個人は存在しないし、個人からみた社会もまた個人の集合体ではないと思っている。会社が決して「社員 + 社員 + 株主 + …」とかでないのと同じことだろう(所有者は株主だったりするだろうけど)。
だから、政策とか法律とかを話すときに、加害者とか被害者の具体例が出てくると話が破綻すると思う。その場合の加害者は社会という言葉と同等に抽象化された「(一般的な)加害者」でなければならないだろうから。
とは言うものの、別に実際の個々の事象を考慮して社会体制を決めることが悪いとは思っていない。寧ろ、「社会にとって善いので」とか言われるよりはリアルに感じられるから良いと思っている。でも、そもそも話が破綻しているところからスタートしている議論であることは感じた方が良いかなとは思う。
で、デスノートは最後まで諦めずに読めたので、それなりに面白かったということで。

自分の購読RSSを公開する

初めてRSSを購読したときは、クライアントのRSSリーダーを使ってた。でも、フィードの共有が端末を越えてできなかった(当たり前)ので、すぐにWebサービスに乗り換えた。最初はgoo RSSリーダーとか使ったけど、しばらくして、はてなRSSに乗り換えた。
はてなRSSは既読の考え方が好きじゃなかったり不満が結構あって、流石にBloglinesにするかと思ってたときに、livedoor Readerがリリースされたので、即座に乗り換え。
ただ、livedoor Readerはフィードを公開できないのが残念だ。ブログやブックマークもそうだけれど、公開していると反応してくれる人がいて、自分自身が勉強になることが多い。
そこで、Bloglinesのフィードを公開しとくことにした(リンクは左メニューにも置いておいた)。因みに普段は今でもlivedoor Readerを使ってる。

clonedの購読RSS

フィードの調整は一ヶ月に一回くらいやってて、購読してる癖に全然読まずにスキップしてしまうフィードとかは削除するようにしてる。逆に新しく登録するときは「試し読み」の状態がほとんど。過去の記事とかを一杯読んで自分のRSSに登録すべきかなんて悩むのがアホらしいので、そういうスタンスで登録RSSを整理している。
だから、一度は削除したけど再び登録することとかもある。現在、登録フィード数が200弱なのだけど、まだ消化できそうな感じ。300くらいを目処に良質なフィード(いい加減な定義)を探したい。

Dream Theater 20周年

スコア~フル・オーケストラ・ライヴ 2006 [DVD]

スコア~フル・オーケストラ・ライヴ 2006 [DVD]

何か全然再生が上手くいかなかったので、ハードウェア的な問題かと思ったら、ソフトを変えたら再生できた。コーデックのせいか何かだと思う。
さて、DreamTheater。20周年を飾るDVDということで、前の武道館のやつは買わなかったけど今回は買ってみた。
演奏はいつもながら上手。選曲はそこまで良い感じではないけど、MAJESTY時代の曲とかまでやってた。インスト曲とかソロとかなかったので、演奏側が控え目な印象。
後半はオーケストラと一緒に演奏。でも、メタリカがオーケストラと共演したS&Mみたいな斬新な感触はなかった。ジョーダン・ルーデスのキーボードがうるさいので、台無し。ひょっとして、生で観てたら凄かったのかもだけど。
個人的には、チャーリー・ドミニシとデレク・シェリニアンがインタビューに出演していたのが面白かった。

Subversion1.4.0をインストール

遅れ過ぎながら、自宅にSubversionをインストールするべく、まずはVMwareで実験。OSはFedora Core 6 test3。

$ cd ~/download
$ wget http://subversion.tigris.org/downloads/subversion-1.4.0.tar.gz
$ wget http://www.apache.org/dist/httpd/httpd-2.0.59.tar.gz
$ wget http://www.webdav.org/neon/neon-0.25.5.tar.gz
$ wget http://downloads.sleepycat.com/db-4.2.52.tar.gz
$ cp ./subversion-1.4.0.tar.gz /usr/local/src/
$ cp ./httpd-2.0.59.tar.gz /usr/local/src/
$ cp ./neon-0.25.5.tar.gz /usr/local/src/
$ cp ./db-4.2.52.tar.gz /usr/local/src/
$ cd /usr/local/src/
$ tar zxvf ./subversion-1.4.0.tar.gz
$ tar zxvf ./httpd-2.0.59.tar.gz
$ tar zxvf ./neon-0.25.5.tar.gz
$ tar zxvf ./db-4.2.52.tar.gz
$ cp -a ./httpd-2.0.59/srclib/{apr,apr-util} ./subversion-1.4.0/
$ cp -a ./neon-0.25.5 ./subversion-1.4.0/neon
$ cd ./db-4.2.52/build_unix/
$ ../dist/configure
$ make
$ sudo make install
$ cd ../../subversion-1.4.0
$ ./configure --with-berkeley-db=/usr/local/BerkeleyDB.4.2
$ make
$ make check
$ sudo make install

make checkが異常に時間がかかったけれど、そこそこあっさり味に入った。付属品のバージョンはINSTALLファイルに書いてあるのに出来るだけ合わせた。OSが空っぽだと、Pythonとかも入れないと駄目みたい。
さて、お次はTracでも入れるかな。

[追記]
せっかくインストールしたので、基本コマンドを一通りやってみた。

$ cd ~/tmp
# Make repository
$ mkdir ./test_repository
$ svnadmin create ./test_repository
# Import
$ mkdir ./test_work
$ echo "Hello" > ./test_work/practice01.txt
$ svn import -m "Message" ./test_work file:///$HOME/tmp/test_repository
$ rm -r ./test_work
# Checkout
$ svn checkout file:///$HOME/tmp/test_repository ./test_work
$ cat ./test_work/practice01.txt
$ ls -la ./test_work/
# Diff
$ echo "World" >> ./test_work/practice01.txt
$ svn diff ./test_work
# Commit
$ svn commit ./test_work/practice01.txt -m "commit file"
# Update
$ svn update ./test_work
# Add file
$ echo "Hello Subversion" > ./test_work/practice02.txt
$ svn add ./test_work/practice02.txt
$ svn commit ./test_work/practice02.txt -m "commit add file"
# Add directory
$ svn mkdir ./test_work/child_dir
$ svn commit ./test_work/child_dir -m "commit add dir"
# Delete file
$ svn delete ./test_work/practice02.txt
$ svn commit ./test_work -m "commit delete file"
# Move file
$ svn move ./test_work/practice01.txt ./test_work/child_dir/practice01.txt -m "commit delete file"
$ svn commit ./test_work -m "commit move file"
# Information
$ svn info ./test_work

[追記 2]
外から使えるようにするための手順を追加。HTTP使うのはまた今度。とりあえずはsvnserveで。下の手順では/svnの中にtestリポジトリを作成している。

$ su -
$ mkdir /svn
$ cd /svn
$ mkdir ./test
$ svnadmin create ./test
$ cd ./test/conf
$ vim ./svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
$ vim ./passwd
[users]
cloned = clonedpassword
$ svnserve -d -r /svn/test
$ exit

TortoiseSVNとか外部からアクセスするときは「svn://hogehoge.jp/svn/test」になる。当たり前だけど、先に何かしらをインポートしてないとアクセスしても「対象リビジョンがない」と怒られる。
svnserve止めるときは、普通にkillすれば良い…はず。

[追記 3]
一つのファイルを以前のリビジョンに戻す場合は以下のようにやる。

$ svn merge -r 31:30 ./hoge.txt
$ svn commit ./hoge.txt -m "revert SVN rev30"

[追記 4]
あるリビジョンからブランチを作成する。

$ svn cp -r50 file:///home/cloned/repository/test/trunk file:///home/cloned/repository/test/branches/branche-name -m "message"

[追記 5]
リポジトリを引っ越しする

# フルダンプを作成
$ mkdir svnbackup
$ svn-backup-dumps.py {reposdir} svnbackup
# フルダンプからリストア
$ svnadmin create {reposdir}
$ svnadmin load {reposdir} < svnbackup/svn.xxxxxx-xxxxxx.svndmp

svn-backup-dumps.py は tools/server-side/svn-backup-dumps.py あたりにある。

はてなブックマーク衆愚化の打開策

個人的な感想で言えば、今の人気とか注目にあがってくるものは、自分も衆愚化してきていると感じてしまう。だから、最近はlivedoorクリップで「おっ!」というのを発見することの方が多い。でも、それ自体は当然じゃないのかと思う。
はてブの使用者が増えるにつれ、ブックマークされるページも一般化する。だから、最初にはてブを使っていたWeb界隈の人たちにとっては、自分(Web界隈の人)たちにとって有益な情報が見つからなくなり、衆愚化したと感じる。今はGIGAZINEで済んでいても、最終的にはYahoo!トピックスで落ち着くこと間違いなしということだろう。
ここで、一つ気付くべきことがあると思う。それは、「自分と同じ職業や同じ趣味の人のお気に入り情報に興味津々」ということ。これについては、naoyaさんが最近のブックマークで書いている、

ソーシャルブックマークの重要なところは、人気情報を教えてくれるかどうかということよりも、他の人が見てる情報が分かるというところだよなと。

が当てはまると思う。
そこで、はてブの人気なり注目なりが、「自分と同じ職業や同じ趣味の人がブクマした人気・注目」になれば、衆愚化し難いのではないかと考えられる。重要なのは、「ブクマされたページ」をフィルタリングすることではなく、「ブクマした人」をフィルタリングすること。
では、どう実現するのか。性善説な発想でいけば、プロフィールで職業なり趣味なりを選んでもらえば良いだろう。でも、これだけでは結構いい加減になると思う。多くの人がとりあえず選んでおこうと思う職業なり趣味なりでは、猛烈に衆愚化しそうだ。
しかし、そうなるとロジックで判断するしかない。やってみなければわらない系の話だけど、適当に案を書いてみる。

  1. ブクマされたページのテキストを解析して、ジャンルに紐付ける。
  2. 各ユーザごとにどんなジャンルをブクマしてるか集計する。
  3. ブクマページが、IT系70%、音楽系20%、その他10%の人なら、ITジャンルブックマーカーの称号を与える。

1.のロジックが賢くないとあんまし効果ないかも。逆に1.のロジックが賢ければ、3.で割合をコントロールするだけで、それっぽくなりそう。

なんてのはダメかなぁ。

JavaScriptで月の最終日を取得する

JavaScriptで月の最終日が何日かを取得するのが組み込みでないかと思って探してみたのだけど、どうもなさそう。ちゃちゃっと書いてはみたけれど、格好悪いなぁ。

function getEndDate(arg) {
var d = new Date(
arg.getYear(),
arg.getMonth(),
arg.getDate()
);
d.setMonth(d.getMonth() + 1);
d.setDate(1);
d.setTime(d.getTime() - 1);
return d.getDate();
}

[追記]
突っ込みの入ったDateオブジェクトの拡張バージョン。

Date.prototype.last_day_of_month = function() {
var d = new Date(
this.getYear(),
this.getMonth(),
this.getDate()
);
d.setMonth(d.getMonth() + 1);
d.setDate(1);
d.setTime(d.getTime() - 1);
return d.getDate();
};

last_day_of_monthって名前良いなぁ。いい加減、get〜とかset〜とかadd〜とか、Javaで覚えた命名も卒業しようかな。

AutoHotkeyでタスクマネージャ起動

AutoHotkeyが素晴らしい。これもShibuya.jsで知ったネタだけど。キーボードの操作やらなんやらを登録できるソフトで、プログラムを書くというよりは設定ファイルを書いている感じで、非常にスマート。
とりあえず、手始めにタスクマネージャを簡単に呼び出すショートカットを作ってみた。

#t::Send,^+{ESC}

書いたのはこれだけ。「Win + T」で「Ctrl + Shift + ESC」が送信されるようにしている。「Ctrl + Shift + ESC」でタスクマネージャが一発起動できるというのはあんまり知られていないけれど、知ったところで押しにくい。
AutoHotkeyにハマると割り当てたいボタンだらけになりそうだから、結局はmalaさんみたいに専用キーボードを購入するのが吉かもしれないと思った。

落雷でハードディスクエラー

昨日の朝方、近くに落雷があって停電した。UPSをまだ買っていなかったので、あっさりサーバーが落ちてしまった。
起動すると動いたので良かったとか思っていたら、ちゃっかりと壊れていた。現象はconfigureできない。あまりの意味不明さに原因が検討もつかなかったのだけど、/var/log/messagesを見ると

status=0x51 { DriveReady SeekComplete Error }
error=0x40 { UncorrectableError }

とか出てた。あらまって感じ。configureを実行するとエラーが出るので、何かconfigureが使いたいところが死んでしまったのだろうなぁ。とりあえず、動いているうちに全部DVDに焼かねば。