Monthly Archives: December 2008

Amazon.co.ukで購入しました

一時GBP/JPYが250だったのに、現在は130というポンド安に乗って(約半額)、Amazon.co.ukで洋書を購入しました。
生まれて初めてAmazonで購入したのはAmazon.co.ukでしたので、懐かしい気持ちになりました。
ほとんどの場合、Amazon.comよりも安く購入することができます。

購入したのは以下の5冊

£74.85、送料£19.94、合計£94.79でした。
クレジットの明細が来ていましたが、購入したときのGBP/JPYは133円ぐらい、1.63%のチャージがかかるので結局のレートは135.794でした。
ということで、請求されたのは12,872円ということになりました。
Amazonはクレジットカードへの請求が早いので比較的レートが変動しないで購入できるのが嬉しいです。

ちなみに、日本のAmazonで購入するとしたら、PoEAAがなぜかマーケットプレースでしか扱っていませんが、マーケットプレースの最安値を使って合計すると22,161円になりました。
ということで10,000円近く安くなっています。

注文時間は24日の午前5時、発送されたのは24日の午後10時(いずれも日本時間)です。
そして本日31日に到着しました。
特に痛みもなく良好な状態でした。

さくらインターネットのレンタルサーバを契約しました

以前から、Webサーバが欲しいなぁと思っていて、自宅サーバを検討していたのですが、sshが使えるレンタルサーバならたいていのことはできるし、そちらの方がデータを置いておくのも安全ではないかと思いました。
今更ながら。

ということで、とりあえずさくらインターネットのレンタルサーバに契約してみました。
契約プランはスタンダードです。

このブログも近々そちらに移そうと思います。

それは追々として、契約後に設定したことなんかを書いていこうと思います。
たぶん適当に更新していきます。

ログインシェルをzshに変更

chsh -s /usr/local/bin/zsh

zshrcをscpで転送し、設定

scpでMac OS Xで今使っている.zshrcを転送しました。

scp .zshrc hoge@hoge.sakura.ne.jp:~/
export PATH=~/local/bin:$PATH
export MAILCHECK=0

などを追加し、MacPorts系のパスを削除しました。
UNIXはこういう風に設定ファイルを転送するだけですぐにいつもの環境にできることがすばらしいですね。

vimのインストール

標準のviではちと辛いです。

さくらインターネットの共用サーバに vim をインストールする – talk to oneself 2
こちらを参考にしました。

まずはダウンロード。

wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz

続いて展開。

tar jxf vim-7.2.tar.bz2
tar zxf vim-7.2-extra.tar.gz
tar zxf vim-7.2-lang.tar.gz
cd vim

ftp://ftp.vim.org/pub/vim/patches/7.2/にアクセスして、現在の最終パッチの番号を確認し、パッチを当てます。
このときは75でした。

mkdir patches
cd patches
curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.[001-075]'
cd ..
cat patches/7.2.* | patch -p0
./configure --enable-multibyte --enable-xim --enable-fontset \
--with-features=big --prefix=$HOME/local
make
make install

viでvimが起動するように.zshrcに以下の文を記述しておきました。

alias vi=vim

Mercurialのインストール

こちらを参考に。
steps to phantasien t(2007-05-19)

まずはダウンロード。

wget http://www.selenic.com/mercurial/release/mercurial-1.1.1.tar.gz

そして展開。

tar zxf mercurial-1.1.1.tar.gz

続いてインストール。

cd mercurial-1.1.1
python setup.py install --home=$HOME/local --force

このままだと、何か変なエラーが出るので.zshrcに以下の文を追加しておきます。

export PYTHONPATH=~/local/lib/python

あとは.hgrcと.hgignoreも同じく普段使っているMac OS Xからscpで転送しておきました。

scp ~/.hg* hoge@hoge.sakura.ne.jp:~/

MercurialのWebインターフェイスの設定

Mercurialは標準でWebブラウザからコードを閲覧できるcgiが付いています。
アーカイブの中のhgweb.cgiもしくはhgwebdir.cgiです。
両者の違いは、hgweb.cgiが単一レポジトリ用、hgwebdir.cgiが複数のレポジトリ用のようです。
今回はhgwebdir.cgiを利用しました。

cd www
mkdir mercurial
cd mercurial
cp ~/mercurial-1.1.1/hgwebdir.cgi ./index.cgi

index.cgiの中身を修正します。

import sys
sys.path.insert(0, "/home/hoge/local/lib/python")

hgwebdir.cgiを作成します。
これにはレポジトリのパスが書かれます。

vi hgwebdir.cgi[paths]
piyo = /home/hoge/piyo

最後は「Mercurial を DreamHost で使う」を参考に、URLの設定?(うまい言葉がわからない)をしました。

vi .htaccessRewriteEngine On
RewriteRule ^$ index.cgi  [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.cgi/$1  [QSA,L]

RugyGemsのインストール

RubyGemsはインストールされていないので、インストールしてみた。
ほぼそのまま「さくらサーバーに Rubygems をインストールする – make world」の通り。

WWW::Mechanizeをインストールしようとしたらrootになろうとしてエラーが出るので、以下のオプションを.zshrcに設定した。

export RB_USER_INSTALL=true

rep2のインストール

2chブラウザのrep2をインストール(拡張パック)した。
今まで使っていたログを見てみたらなんと600 MB以上あって驚いた。
果たしてここまで残しておく意味があるのだろうか?

ログをCyberduckで送信しようと思ったが、どうしてもうまく行かないのでscpを使用することにした。

scp -r source/dir piyo@hoge.sakura.ne.jp/www/p2/data

本当はqオプションをつけた方がよかったかもしれない。

●を使っていたのですが、なぜか表示ができなくなりました。
これはバグだそうで、最新のレポジトリは修正されています。
こちらを参考に_downloadDat2chMaruを修正しました。

よしもとばなな「彼女について」を読みました

よしもとばななさんの新刊、「彼女について」を読みました。

ふとした瞬間に、どこかで新刊が出たことを知り、たぶんAmazon.co.jpかどこかの内容紹介を読んで、無性に読みたくなったのでした。

彼女について
著者: よしもとばなな
出版社: 文藝春秋
発売日: 2008年11月13日

せっかくだから、内容紹介のところを引用してみましょう。

由美子は、幼なじみのいとこ昇一とともに失われた過去を探す旅に出た。この世を柔らかくあたたかく包む魔法を描く書き下ろし長篇。

幸せの魔女が、復讐の旅にでた。どこまでも暗く、哀しみに満ちた世界を最後に救ったものとは―大きな愛に包まれる、ばななワールドの新境地。

一気に読んだ。
最後の方は祈るような気持ちで。
でもどうしようもなくって、切なくて悲しかった。
外で読んでいたのだけれど、涙があふれそうになった。
でもね、優しい気持ちにもとってもなれる。

読み終えたあと、余韻がぐつぐつ、どろどろと心の中を漂っていて、しばらく心そこにあらずという感じがした。
色々な未分化な感情が、ざらざらと金平糖みたいに混ざっていた。
今でもきゅーんとする。
とてもすばらしい小説だと思う。

あらすじは内容紹介のところで書かれているので十分かな?
とある悲しい事件で、失われてしまった主人公由美子の過去。
それを久しぶりに現れたいとこの昇一とともに一緒にたどり、二人手を取りながら、向き合うことで次第に過去が癒されていく。

心理療法でもそうみたいだけれども、本当に癒すというのは起こったことにきちんと向き合って、壮絶な感情を体験しつつも、心の中で意味づけ、物語にしていって、受け容れていく作業。
だから、とっても苦しい。

苦しいから、一人ではなかなかできなくて、たいていの場合こんな風に一緒にたどってくれる人が人には必要みたい。
一人じゃないと思えるから、向き合っていこうかなと思うのかも。

そして癒されるのは由美子だけではなく、一緒に旅をすることを決めた、昇一も。

途中にある

君の幸せだけが、君に起きたいろんなことに対する復讐なんだ。

よしもとばなな 『彼女について』

という言葉が真理を伝えていつつも、とっても優しい。
昔このことを自分が知ったときは、パウロさながら目から鱗が落ちた。
それをこんな風に小説に載っけてしまうのがすてきだと思う。

この小説を読んでいると、ばななさんがばななさん自身を癒そうとしているのかもしれないって思う。
この言葉も、彼女の中のもう一人の彼女に必死に言っているように聞こえる。

ばななワールドの新境地と書いてあるけれども、それは嘘で、彼女はいつも同じことしか書いていない。
それは悪い意味ではなくて、普遍的な神話としての意味では同じ話というだけ。
何回も書く必要があるんだと思う。

「WALL-E」を観ました

実は「ラースと、その彼女」の前に観ていたのですが、 書きそびれていました。
WALL・E/ウォーリー

とてもすばらしい映画でした。

無声映画と変わらないぐらい言葉が少ないのに、こんなにも感情が表せて、大事なことが表せて、さすがPixar、ジョン・ラセターだと思いました。

あらすじは、今から700年後の地球、人は皆ゴミの山のために宇宙へ飛び出していたのでした。
そんな中、一人でゴミを来る日も来る日もかたづけるロボット、WALL-Eがいました。
ゴミの中から見つけたお宝の中の一つ、ミュージカル「ハロー・ドーリ—!」のビデオを観て、誰かと手をつなぐことを夢見ていました。
そこへ謎のロボットEVEがやってきます。

WALL-EのEVEに対する愛情か、友情かわかりませんが、そのけなげさにいつしかEVEも同じような感情を抱くようになる。
たった小さなことが積み重なって、いつしか大切な気持ちになっていく。
それがとても丁寧に描かれていて、途中涙涙で、ラストは祈るような気持ちでした。

そしてきちんと人間の行く末を予期させるような展開も誰にでもわかりやすく描かれていたのが、さすがだと思いました。

そういえば、WALL-Eの充電完了、もしくは再起動の音がMacの起動音で笑えました。
とてもすばらしかったので、もう一度観たいです。

物語と癒し 〜 「ラースと、その彼女」を観ました

今年観た映画の中で(といっても両手で数えられる範囲だけれど)最もすばらしい作品でした。
12月20日(土)公開『ラースと、その彼女』公式サイト

正直これを観るまで、映画をあまり観たことがないので、映画という映像メディアでは小説や漫画で使えるモノローグによる心理描写ができないがために、心理描写というのは限界があるのではないか?と思っていました。
そんなことはないと、きちんと映像描写で心理描写ができるんだということを、教えてもらいました。

あらすじは、周囲に心を開かない青年の主人公ラースが、ある日兄夫婦にガールフレンドを紹介する。
そのガールフレンドのビアンカというのは、なんとインターネットで購入した等身大のラブドール
しかもラースはそれを生身の女性だと思って接している。

兄夫婦は面くらい、そこでうまく言って精神科のようなところに連れて行く訳です。
そして、そこで医者から言われたことは「ラースに付き合って、ビアンカが生身の女性だと思って接すること」。

最初は周りの人も面くらい、兄夫婦のお願いによってビアンカに接することにはしていますが、当然陰では蔑まれる訳です。
しかしながら、いつしか・・・というストーリー。

後半のクライマックスにかけての、そのいつしかのあたりのストーリー展開が非常にうまく、感激してしまいました。

映画の最初に医者が「ビアンカは意味があって現れた」と言うことを口にし、その現れた意味を医者がラースとともに探していきます。
つまりは、ビアンカが現れるという物語がどうしてラースによって描かれなければならなかったのか?

物語を描き、そして一緒に物語を共有していると、これがとてもおもしろいことに、心というものは勝手に治っていこうする。
ビアンカが発する言葉はラースの言葉であり、ビアンカによってラースは自分自身の心に直面し、客観的に観られるようになるから。

人が過去に心に受けた傷というものは、物語によって意味づけられ、直面させられることによって自身が癒されていく。
そういう物語の癒しの力というのを、改めてまざまざと見せつけられました。

ファンタジーではあるのだけれども、根底ではとてもあり得そうな、リアルファンタジーという触れ込みは全く持って嘘ではないのだと思います。
大事なのは個々の事例ではなく、その根底に流れる普遍的な物語であり、神話です。

あの出来事の解釈はどうしたらいいのかとか、心についてもっともっと学びたくなる、そんなストーリーでした。

暗算で遊ぶ

薬の数を数えるときに、かけ算をします。
1日3錠7日分であれば、21錠。

こんなもんだったらいいですけれど、例えば1日18錠、21日分とかある訳です。
最近は、できるだけ暗算をして遊んでみようと思っています。

やり方は単純で中学校?で習うあれです。
(20 – 2) * (20 + 1) = 400 – 40 + 20 – 2 = 378

人間は少し負荷がかかったときに成長するようなので、こうやって遊んでいるうちに脳内スタックが増えないかなぁと考えているところです。

暗算は自分がやりやすい方法を見つければいいのだと思います。
全部暗記してしまうというてもあるし、大人なのであれば原理から攻めてもいい。

他の人の方法を試してみて、自分の方法で大丈夫だと思えばそれでいいのです。
日々、最適化を試みるというのも大切ですけどね!

hp ML115 G5

hpのML115 G5というサーバーがあります。

なんと、NTT-Xというサイトで11,750円で売っています。
ML115 G5 スタートダッシュ3 キャンペーン(S) 4577670-ADRP HP(旧コンパック) NTT-X Store

とりあえず銀行振り込みなので、注文だけ出しました。
どうしようかなぁと迷っているところです。
果たして買ったところでちゃんと使うのかなと。

このご時世仮想化ソフトを入れればOSは動きますから。

自作にしても、なんにしてもいいケースがほんとにないですよね。
それで買う気がなくなります。
本当に。

UITableViewCellを削除ボタンを使って削除する

iPhoneのアプリケーションでは、交通標識の一時停止マークのようなものをクリックすると、削除ボタンが現れて項目が削除できるというギミックがあります。こういうのです。

このボタンを押して削除したときにはどのようなdelegateがおこなわれるか、そしてどのようにして項目を削除するのかということにちょびっとはまったので書いておきます。

まず、このボタンを押すとtableView:commitEditingStyle:forRowAtIndexPath:というdelegateがおこなわれます。

そして削除時なんですが、deleteRowsAtIndexPaths:withRowAnimation:メソッドを利用して削除します。
このとき注意すべき点は、このメソッドを呼び出した際にUITableViewのtableView:numberOfRowsInSection: delegateが呼び出されるということです。
そこで、UITableViewのcellに表示している項目を例えばNSMutableArrayなどで管理している場合には、そのNSMutableArrayの項目を先に削除しておかないと、例外が発生します。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger row = indexPath.row;

    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        [tableViewArray removeObjectAtIndex:row];
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
    }
}

のように先にNSMutableArrayの方を削除してから、deleteRowsAtIndexPaths:withRowAnimation:メソッドを呼び出す訳です。

OMakeを使ってLaTeXをコンパイルする場合には、DVIPDFMFLAGSも指定した方が吉

あたくしも早速OMakeを使ってLaTeXのコンパイルをしてみました。
OMake つかって LaTeX コンパイルしたら簡単すぎて身長が5cm伸びた – 日記を書く[・ _ゝ・]はやみずさん

なぜかMacPortsではインストールに失敗したので、ソースからコンパイルしました。
そのまま自分がやった手順を書きました(なので冗長です)。

1. MacPortsで

sudo port install omake

2. OCamlのインストールは成功するものの、Omakeのインストールは失敗する。

3. パッケージだとどこにインストールされるかわかったものではないので、ソースからコンパイルしインストールすることに。

wget http://omake.metaprl.org/downloads/omake-0.9.8.5-3.tar.gz
tar xvf omake-0.9.8.5-3.tar.gz
cd omake-0.9.8.5

4. INSTALLというドキュメントを読む
 普通にインストールすると/usr/localにインストールされるようなので、そのままで行くことにする。

make bootstrap
sudo make install

5. texファイルがおいてあるディレクトリで

omake --install

6. OMake つかって LaTeX コンパイルしたら簡単すぎて身長が5cm伸びた – 日記を書く[・ _ゝ・]はやみずさんを参考にOMakefileを編集する。
 今回は200812.texというファイルだったので、

LATEX = platex
DVIPDFM = dvipdfmx

LaTeXDocument(document, document)

.DEFAULT: 200812.pdf 200812.dvi

7. コマンドを実行する。

omake -P --verbose

8. ファイルを更新してもコンパイルされない!おかしいぞ!と思う。
 6.のLaTeXDocument(document, document)のdocumentも200812で置き換えなければならないことに気がつく。

9. 無事にファイルが更新されるとpdfが作成されるようになったが、余白がおかしいことに気がつく。
 実行されるコマンドを見てみると

dvipdfmx -p letter -o 200810.pdf 200810.dvi

というコマンドが実行されていて、これが原因と気がつく。

10. OMakefileファイルでDVIPDFMFLAGSを指定する。

DVIPDFMFLAGS =

でもよいし、A4であれば

DVIPDFMFLAGS = -p a4

と指定すればいい。

Emacsでコンパイルが簡単とはいえ、自動的にやってくれるのはやっぱり楽でした。

P.S. いい加減preタグが汚いスタイルシート直したいな。

Firefox 3.1 Beta 2

気が向いたのでインストールしてみました。

今までMacBookでFirefoxを使うと、レンダリングが気に入らないのと、なぜか時々ページのダウンロードができないという二つの理由で使い物にならないなぁと思っていました。
でも、Firefox 3ではCocoaに対応しレンダリングがまともになったのと同時に、ダウンロードが止まってしまうというようなこともほとんどなくなったような気がしたので、まあ使えるかなぁという感じになりました。

そんなことを言いつつ、やはりメインはSafariですが。

閑話休題。

Firefox 3.1 Beta 2を入れてみたところレンダリングがかなり高速であるように感じられました。
The Acid3 Testもこのように93点です。
どうせなら100点をめざして欲しいところですが、今回は目指さないそうなので実際に100点になるのはだいぶ先でしょう。

今回のバージョンでは、新しいJavascriptエンジンであるTraceMonkeyもアクティベートされているから速いのかもしれませんね。
プライベートブラウズ機能が搭載された「Firefox 3.1 β2」が公開 | パソコン | マイコミジャーナル