« 2005年06月 | メイン | 2005年08月 »

2005年07月31日

[読書] 近代日本と植民地 5

膨張する帝国の人流
4000104853大江 志乃夫 浅田 喬二 三谷 太一郎


Amazonで詳しく見る
by G-Tools

岩波講座 近代日本と植民地 全8巻を二十代の時に購入したが、全ての巻を読んだいなかったので、今回未読の第5巻「膨張する帝国の人流」を読んだ。

日清戦争(1895)、日露戦争(1905)、柳条湖事件(1931)、盧溝橋事件(1937)と日本が支配権を広げるにつれて、日本国内から、台湾、朝鮮半島、中国東北部、東南アジア諸国に日本人移民などがどうように広がっていき、現地でどのような生活をおくり、そして、どんな国内事情から、移民政策が押し進められたのかに焦点を当てた巻。

自分は、右か左かと問われたら、レッズよりだと思う。やはり近代における日本の歴史は欧米諸国からの植民地化を逃れたという点は良だが、近隣アジア諸国には多大なる損害を与えたと思う。教科書問題などで、右の人たちが自虐的な歴史観うんぬんと鼻息があらいが、彼らがなんと主張しようが、日本は朝鮮半島、中国、東南アジア諸国でかなりひどいことをしてしまったのは事実だろう。

できるだけ近代史を客観的に知っておきたいと思っているので、オピニオン誌に掲載されるような記事より、少しでも一次情報に近いところで書かれているものを機会があれば、読むようにしている。

出版社が岩波なので、もちろん、どっちかというと左よりかもしれないが、学者による研究論文の書き下しなので、かなりの程度で真摯な内容であると思う。集録論文(?)は以下の通り。

I 「内地人」「外地人」の人流
1.在朝日本人と日清戦争               高崎宗司
2.在外居留民の社会活動               木村健二
3.南方「移民」と「南進」                早瀬晋三
4.台湾総督府の対岸政策と「台湾籍民」      梁華璜

II 戦時体制下の動員
5.朝鮮の労務動員                   海野福寿
6.東南アジアの「ロームシャ」             中原道子
7.東南アジアとインド国民軍              長崎暢子
8.戦時食糧問題の発生                 大豆田稔

III 女性と植民地
9.満州と女たち                     加納実紀代
10.からゆきさん・「従軍慰安婦」・占領軍「慰安婦」 鈴木裕子
11.シンガポールにおける娼婦の社会史       ジェームズ・F・ワレン

それにしても、武力で制圧、占領、下層にいる自国民を移民として送り込み、占領の継続という図式がいたるところで何度も繰り返されるのであろうか?

北海道、アメリカ、オーストラリア、ニュージーランドも、そういうこだよなぁ。

投稿者 nekobara : 22:13 | コメント (0) | トラックバック

2005年07月30日

[技術] 玄箱にCVSのインストール

【覚書】

玄箱で、コンパイラやその他ツールが用意できたので、目的であるCVSをインストールし、システム開発マシンから使えるようにするまでの手順

CVSのTARボール cvs-1.12.12.tar.gzをダウンロードして、展開。

% cd cvs-1.12.12
% ./configure
% make
% make install

CVSを管理するユーザを作成

# useradd cvs
# passwd cvs

CVSのリポジトリを置くディレクトりの作成

# mkdir /usr/local/cvs
# chown cvs /usr/local/cvs

ユーザcvsに環境変数の設定
# su -l cvs

CVSROOT=/usr/local/cvs

リポジトリを初期化

% cvs init

他のUNIXマシンよりCVSを使えるように設定

/etc/inetd.confに以下を追加

cvspserver stream tcp nowait root /usr/local/bin/cvs cvs --allow-root=/usr/local/cvs pserve

inetdの再起動

# kill -HUP (inetdのpid)

他のUNIXマシンでの設定

環境変数の設定

CVSROOT=:pserver:cvs@192.168.0.2:/usr/local/cvs

他のUNIXから、CVSサーバにログイン

[tama] cvs login
Logging in to :pserver:cvs@192.168.0.2:2401/usr/local/cvs
CVS password:

リポジトリにモジュールの登録

[tama] cd test
[tama] cvs import -d test nekobara start

リポジトリの登録されているモジュールを取得して、開発環境をつくる

[tama] cd dev
[tama] cvs checkout test

これで ~/dev/testにCVS管理できる開発環境が作成される

投稿者 nekobara : 19:46 | コメント (0) | トラックバック

[技術] 玄箱のカスタマイズ

【覚書】

バックアップ用ファイルサーバとしてつかっている玄箱にCVSをインストールしようとしたら、コンパイラーがインストールされていない。

で、付属のCDをみたら、binaryフォルダにgccやglibcなどがあったので、とりあえず、コンパイル、デバックに必要なものなどをftpして、/で展開するとインストールできた。

今回、インストールしたもの一覧
binutils-2.10.91.0.2.tar.gz
cvs-1.12.12.tar.gz
diff-2.7.tar.gz
g++-2.95.3.tar.gz
gcc-2.95.3.tar.gz
gdb-5.1.tar.gz
gettext-0.10.35.tar.gz
glibc-2.2.3.tar.gz
libgdbm-1.7.3.tar.gz
make-3.79.1.tar.gz

でも、まだsortがない? CDにも見当たらない?

よくよくCDをみると

textutils-2.0.tar.gz

があったので、インストールしてみるとsortはこの中にありました。

たぶん使わないけど

texinfo-4.0b.tar.gz

もついでにインストール。

投稿者 nekobara : 16:16 | コメント (0) | トラックバック

[その他] 花火大会のネット中継

全国的にも有名な市川大門の神明花火大会がネット中継されます。詳細は以下のURLにあります。

http://www.navel-y.jp/event/live20050807/

投稿者 nekobara : 10:43 | コメント (2) | トラックバック

2005年07月29日

[休肝日] NONDRINKING

今週も3休刊日達成。今週は月、火と発泡酒飲んでしまい、出遅れたが、後半は夜中までコーディングに夢中になっていたので、飲むひまがありませんでした。

投稿者 nekobara : 21:31 | コメント (0) | トラックバック

[予定] 7月29日の行動

■午前
・所用で外出

■午後
・プログラミング(ユーザ公開画面)

投稿者 nekobara : 09:07 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂28回
夜:腰痛予防体操 2セット、ストレッチ、懸垂28回

体重 62.4kg 体脂肪率 14%

投稿者 nekobara : 09:06 | コメント (0) | トラックバック

2005年07月28日

[読書] 武士道

武士道―日本の魂
4806755656新渡戸 稲造 飯島 正久


Amazonで詳しく見る
by G-Tools

さて、「武士道の逆襲」を読んでおいて、武士道の定番「新渡戸稲造の武士道」を読まないのはなんなので、読んでみた。「武士道の逆襲」である意味逆のバイアスがかかってしまったので、あまり期待しないでよんだが、期待に反して非常に面白かった。

この本は、「新渡戸稲造の武士道」の一章ごとに翻訳者である飯島正久さんの解説があり、本文もよいがこの解説もなかなか読み応えのある内容だった。ちなみに新渡戸の武士道は欧米向けに英語で書かれた本なので、翻訳本である。飯島正久さんも、著者と同じキリスト者で、しかも、内村鑑三門下系列の人であるため、キリスト者であった新渡戸稲造の意図を深く理解しているように思える。ちなみに飯島さんは75年より、大泉村に住まれているらしい。

で、何がすごいって、新渡戸稲造の博識、洋の東西を問わず、思想・哲学・宗教・芸術・科学に関する知識がすごく、日本人固有であると思われているような事柄(習慣、文化)を説明するときに彼の博識が総動員され、類似パターンを挙げて人類に普遍的な事柄であることを証明し、安易に日本特殊論に陥いることなく、文化の違いをきっちりと説明している。とにかく、すごい人ですね。

著書そのものは日本古来の武士道を述べたというよりは、欧米での生活経験もあり、欧米の知人友人の多い彼が武士道という思想を再構築して、欧米人に日本の文化、思想を説明し、理解してもらうことをねらっていると感じた。そして、日本は未開で野蛮な社会ではなくて、欧米に匹敵する道徳的な観念を持ち、優れた精神的土壌があるということを暗にしかし力強く主張している。

ちなみに訳者あとがきでは、日本の優れた精神的土壌にキリスト教の福音を蒔くことにより、日本の魂が輝きをもって世界人類に貢献するものになってほしいと新渡戸が切に願って「武士道」を著したと訳者は信じていると書いてあった。

投稿者 nekobara : 22:59 | コメント (0) | トラックバック

[休肝日] NONDRINKING

今週、2休刊日目。

投稿者 nekobara : 22:23 | コメント (0) | トラックバック

[読書] 武士道の逆襲

武士道の逆襲
4061497413菅野 覚明

おすすめ平均
stars「武士道」と「明治武士道」との間
stars感涙
stars新渡戸らの明治武士道はクリスチャンのトンデモ的主張

Amazonで詳しく見る
by G-Tools

最近、新渡戸稲造の「武士道」が書店で平積みなっていたのと、武士道という言葉を聞く機会が多かったので、ふと武士道ってなんだろうと思い、新渡戸の「武士道」を読んでみようかと思っていたら、この本を見つけてしまった。あっさり、タイトルにつられて、読んでしまいました。(編集者の思う壺ですね)

まず、著者は新渡戸稲造の「武士道」は、明治武士道として、本来の武士道とは区別すべきだという。明治中期以降、日清・日露戦争を経て、西欧勢力に注目されるようになってきたころに日本国内では軍人、言論界で武士道の復興に盛り上がったらしい。新渡戸のほかにもさまざまな明治武士道論が登場したという。

今の日本人の中にある武士道は、新渡戸の「武士道」を代表とする明治武士道であり、本来の武士道とは大きくことなっている。ちなみに、新渡戸の「武士道」も読んでいない私の場合は、武士に関する情報は水戸黄門や遠山の金さんなどのテレビの時代劇ですから、もうかなりいいかげんってことですね。(ちなみに金さんはやっぱり杉良太郎が一番だな)

そもそも、武士とは私的先頭集団が成り立ちなので、明治武士道のように天下国家という概念は存在せず、主君と一族が一致団結して、他勢力と対抗して生き延びていくための厳しい掟のようなものであったようだ。常に殺人の道具(刀)を身に着けていることの覚悟、つまり、いつでも殺せる殺されることが日常の世界は、現代社会に生きる私には到底理解できないすごさだ。武士道の書である『葉隠』の「武士道と伝は、死ぬ事と見付けたり。・・」という言葉の凄みに圧倒された。

そして、後半では、武士という階級が消滅した明治中期以降に天皇を頂点する国体思想を軍隊内そして国民の間に浸透させるための装置として、武士道が再構築され、軍人勅諭、教育勅語などにつながっていくことを明らかにしている。

最近、若手の経営者のテレビ番組への露出が激しいが、そのなかでクレープのフランチャイズで成功した社長が「ビジネスは戦いだ。だからは俺は武士なんだ・・・」なんて言って、日本刀を手にしていたなぁ~。ぜんぜん関係ないけど。

投稿者 nekobara : 17:16 | コメント (0) | トラックバック

[予定] 7月28日の行動

■午前
・プログラミング

■午後
・プログラミング

投稿者 nekobara : 10:26 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂27回
夜:腰痛予防体操 2セット、ストレッチ、懸垂28回

一回カウントアップ!

投稿者 nekobara : 10:25 | コメント (0) | トラックバック

2005年07月27日

[技術] Catalystで静的ファイルの表示

Catalyst環境で静的(static)なファイルを表示したり、HTMLファイルからリンクしたスタイルシートやJavaScriptファイルがブラウザにロードされるようにする方法の覚書。

Catalystで静的なHTMLファイルを表示させたくて、MyApp/rootにtest.htmlを置いて、ブラウザでhttp://hoge:3000/test.htmlとしても、test.htmlは表示してくれない。

やり方がわからないので検索すると、静的なファイルを表示するときは、Catalyst::Plugin::Staticを使うとらしいことはわかった。しかし、Staticのヘルプを見ても、$c->serve_staticとするとしか書いていない。

そこで、Static.pmを見てみると以下のようになっている。ブラウザがサーバにhttp://hogehoge:3000/test.htmlとリクエストすると、$c->req->pathには、test.htmlが格納されてくるらしい。(Static.pmの全コード


sub serve_static {
my $c = shift;
my $path = $c->config->{root} . '/' . $c->req->path;
return $c->serve_static_file( $path, @_ );
}

ということで、test.htmlがリクエストされたときにこれを受けるメソッドを定義して、その中で、$c->serve_staticをコールしてやればよいということがわかった。例えば、以下のようなメソッドを定義する。

sub test_static : Path('/test.html') {
my ( $self, $c ) = @_;
$c->serve_static;
}

これで、test.htmlのリクエストがあるとメソッド test_static()がデスパッチされ、test_static()の中で、$c->serve_staticをコールすれば、test.htmlの内容がブラウザに返される。

例えば、HTMLファイルにリンクする画像ファイルなどは、メソッドのデスパッチに正規表現を使って以下のようにすればよい。rootディレクトリの下にimagesというディレクトリをつくり、リンクするHTMLファイルでは、<img src="images/hoge.jpg" />としている場合は以下のようなメソッドを定義してやる。


sub images : Regex('images/.+\.[gif|jpg]') {
my ( $self, $c ) = @_;
$c->serve_static;
}

まあ、Static.pmを見てもらえばわかるんですが、要するにデスパッチされたメソッドの中で、該当ファイルを開いて、$c->res->outputしてやる必要があるってことみたい。その一連の作業をStatic.pmがやってくれるってことですね。

投稿者 nekobara : 20:17 | コメント (0) | トラックバック

[休肝日] NONDRINKING

今週、最初の休刊日。 今週は妻が早く帰ってきているので夕食はまかせてます。

投稿者 nekobara : 20:12 | コメント (0) | トラックバック

[予定] 7月27日の行動

■午前
・プログラミング

■午後
・プログラミング

投稿者 nekobara : 09:27 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂27回
夜:腰痛予防体操 2セット、ストレッチ、懸垂27回

投稿者 nekobara : 09:27 | コメント (0) | トラックバック

2005年07月26日

[その他] 笑える

http://www3.diary.ne.jp/user/338790/#1122237220

「きっこ」って何者?

投稿者 nekobara : 13:06 | コメント (0) | トラックバック

[予定] 7月26日の行動

■午前
・基本仕様再々検討

■午後
・基本仕様再々検討

投稿者 nekobara : 09:19 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂27回
夜:懸垂27回

体重 62.6kg 体脂肪率 14%

投稿者 nekobara : 09:19 | コメント (0) | トラックバック

2005年07月25日

[その他] バルザック (1799-1850) フランスの小説家

【覚書】

「家族の連帯が喪失したことで、社会はモンテスキューが名誉と名づけた根本的な力を失ってしまった」

家族の連帯は19世紀にはすでに喪失していたらしい・・・

投稿者 nekobara : 16:47 | コメント (0) | トラックバック

[予定] 7月25日の行動

■午前
・所用

■午後
・基本仕様再々検討

投稿者 nekobara : 10:19 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂27回
夜:ストレッチ、懸垂27回


投稿者 nekobara : 10:19 | コメント (0) | トラックバック

2005年07月22日

[予定] 7月22日の行動

■午前
・技術調査
・基本仕様のまとめ

■午後
・技術調査
・子供をプール教室へ

投稿者 nekobara : 08:46 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂27回

投稿者 nekobara : 08:44 | コメント (0) | トラックバック

2005年07月21日

[休肝日] NONDRINKING

本日で3休刊日達成。しかし、体調がよくないなぁ~。

投稿者 nekobara : 23:42 | コメント (0) | トラックバック

[夕食, 料理] じゃやがいものクリーム煮

20050721-2.jpg

ごはん
ほっけ
じゃやがいものクリーム煮 p128

投稿者 nekobara : 23:38 | コメント (0) | トラックバック

[料理, 昼食] ドライカレー

20050721.jpg

ドライカレー
ミニトマト
桃ヨーグルト

投稿者 nekobara : 13:19 | コメント (0) | トラックバック

[予定] 7月21日の行動

■午前
・情報収集

■午後
・スケジュール再作成

午後、申し込んでいたBフレッツ光の工事の下見に人がきた。家の周りと電柱を調べて帰っていった。
6月20日に申し込んでいらい、工事の下見になかなかこないので、問い合わせしようと思っていたところだった。それにしても、一ヶ月もかかるなんて・・・・ 迅速にさばけないほど、申し込みが殺到しているのだろうか?

投稿者 nekobara : 09:39 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、腹筋10回、懸垂27回
夜:懸垂27回

投稿者 nekobara : 09:38 | コメント (0) | トラックバック

2005年07月20日

[休肝日] NONDRINKING

今週、2日目の休刊日。

投稿者 nekobara : 23:04 | コメント (0) | トラックバック

[夕食, 料理] カレーそぼろ丼

20050720.jpg

カレーそぼろ丼
アスパラとミニトマト
コーンスープ

投稿者 nekobara : 20:44 | コメント (0) | トラックバック

[技術] Ajaxサンプル with Google Maps

Ajaxサンプルの第二弾が完成した。第一弾を拡張して、番号を2桁入力した時点で、マッチする山情報をプルダウンして、マウスでクリックもしくはカーソル移動+リターンで確定し、その山のGoogle Mapsを表示します。このサンプルを作成するにあたり参考にしたのは、map.rails2u.comです。(つぅーか、JavaScriptはかなりパクリました)

Google Mapsの方は、マップが表示されるようになっていますが、マップ右上の「サテライト」をクリックすると人工衛星写真に切り替わります。ちなみに地図はマウスでがんがんスクロールしますので、遊んでみてください。(ちゅーか、こっちがAjaxの本家本元のお手本ですね)

さて、このサンプルプログラムをつくるのにははっきり言って苦労しました。参考にしたmap.rails2u.comの方は、Ruby on Railsを使ってシャカシャカと作ってしまったようなのですが、私の方はJavaScriptがよくわからんところで、いきなりフレームワークでは内部的なやり取りがどうなっているのか完全にブラックボックスで、フレームワーク上での指定がぴんと来ません。そこで、ライブラリととして使われているJavaScriptを解読したために時間を取られました。

また、位置情報系の知識もなかったので、緯度経度でさらに泥沼に嵌ってしまい、Google Mapsと連携しても、全然違う場所が表示されてしまい。はて? どうしたものか、というつらい時間が結構続きました。

ということで、今回のサンプル作成で、わかったことを備忘録として以下に書いておきます。

■Ajax用 JavaScriptライブラリ
 Ruby on RailsやCatalystなどのフレームワークで、Ajaxを実現するときに使用しているJavaScriptライブラリを以下のサイトより、入手する。バージョンは1803。ちなみにダウンロードできなかったので、ブラウザにソースを表示してコピペで自分のサイトに置いた。

http://dev.rubyonrails.com/browser/spinoffs/scriptaculous/?rev=1803

ファイルは全部で、prototype.js, controls.js, effects.js, dragdrop.jsの4つ。今回は、dragdrop.jsを除く3つのファイルをpoint2.htmlでインクルードした。htmlのヘッダ部に以下を書きます。

<script src="prototype.js" type="text/javascript"></script>
<script src="controls.js" type="text/javascript"></script>
<script src="effects.js" type="text/javascript"></script>

で、入力候補をメニューにブルダウン表示して、マウスもしくはカーソルキーで選択できるAjaxインターフェースを提供するクラスが、controls.jsにあるAjax.Autocompleterクラス。このクラスのコンストラクターは、引数として、(id, update, url, {options})の4つをとる。

id -> 入力を監視するINPUTタグのid属性を指定
update -> 候補選択メニューを挿入する場所(タグ)のid属性を指定
url -> XmlHTTPRequestとやり取りするサーバ側CGIのURLを指定
{options} -> オプションを指定 ({tokens:new Array(',','\n')}のように指定できるらしい)

point2.html内では、以下のように記述しています。

<script type="text/javascript">
var auto = new Ajax.Autocompleter('pointid',
                       'pointid_menu',
                       'point2.cgi',
                       {});
auto.select_entry = select_entry;
</script>

で、入力を監視する属性id="pointid"と候補メニューを表示する属性id="pointid_menu"は以下のように記述します。

<p>番号: <input type="text" autocomplete="off" class="inputText" name="pointid" id="pointid" size="40" />
<input type="button" value="国土地理院の地図表示" onClick="watchizu();">
</p>
<div class="auto_complete" id="pointid_menu"></div>

そして、サーバ側に用意したCGI(point2.cgi)はこちら。このCGIでは、以下のようなXHTML形式で検索結果をブラウザに返します。

<ul class="pointdata">
 <li class="pointid">
  <span class="pointid">102</span> 
  <span class="pointname">瑞牆山</span><br /> 
  (緯度: <span class="ido">35.53.36</span>
   経度: <span class="keido">138.35.31</span> 
   標高: <span class="height">2230</span> ) 
 </li>
 <li class="pointid">
  <span class="pointid">101</span> 
  <span class="pointname">横尾山</span><br />
  (緯度: <span class="ido">35.55.08</span>
   経度: <span class="keido">138.31.16</span>
   標高: <span class="height">1818</span>)
  </li>
 <li class="pointid">
  <span class="pointid">100</span> 
  <span class="pointname">甲武信ヶ岳</span><br />
  (緯度:<span class="ido">35.54.32</span> 
   経度:<span class="keido">138.43.44</span>
   標高:<span class="height">2475</span>) 
  </li>
</ul>

そして、表示する候補メニューに見栄えは以下のCSSで調整します。

div.auto_complete {
  position: absolute;
  background-color: #fff;
  border:1px solid #888;
  margin:0px;
  padding:0px;
  z-index:100;
}
ul.pointdata  {
  list-style-type: none;
  margin:0px;
  padding:0px;
}
// 候補メニュー中、フォーカスがあたっている候補を色反転する
ul.pointdata li.selected {
  background-color: #B2BEFF;
}
li.pointid {
  list-style-type: none;
  display:block;
  margin:0;
  padding:2px;
  height:45px;
}
span.pointid{
  font-weight:bold;
  color:#555;
}
span.pointname{
  color:#555;
}

実際にブラウザ上でユーザが候補を選択すると、Ajax.Autocompleter.select_entry()がコールされます。そこで、このselect_entry()関数を自前で作成して、オーバーライドすることで選択された候補を取り込み、ブラウザに値を反映させます。point2.htmlでは、関数select_entry()は以下のように定義し、Autocompleterのインスタンスを生成したところで、var auto = Ajax.Autocompleter(....); auto.select_entry = select_entryとしています。

function select_entry() {
    this.active = false;
    var result = Element.collectTextNodesSelectClassnames(this.get_current_entry(), ['pointid','pointname','ido','keido','height']);
    if(result['pointid'])
      $('pointid').value = result['pointid'];
    if(result['pointname'])
      $('pointname').value = result['pointname'];
    if(result['ido'])   //name="ido"
      $('ido').value = result['ido'];
    if(result['keido']) //name="keido"
      $('keido').value = result['keido'];
    if(result['height'])
      $('height').value = result['height'];
    // Google Maps
    if(result['keido'] && result['ido']){
      var decido = ToDecimalNotation(result['ido']);
      var deckeido = ToDecimalNotation(result['keido']);
      gmap.centerAndZoom(GPointTokyo(parseFloat(deckeido),parseFloat(decido)),4 );
      Element.show('gmap');
    }
    //
    this.element.focus();
};
Element.collectTextNodesSelectClassnames = function(element, classnames) {
  var children = $(element).childNodes;
  var result = new Object();
  for (var i = 0; i < classnames.length; i++) {
    for (var j = 0; j < children.length; j++) {
      if((children[j].className == classnames[i]) && children[j].hasChildNodes()){
        result[classnames[i]] = children[j].childNodes[0].nodeValue;
        break;
      }
    }
  }
  return result;
}

このselect_etnry()では、候補が決定され、緯度経度が取得できたところで、Google MapsのAPIを利用して、緯度経度に該当する地図も表示させています。つぎは、Google MapsのAPIと緯度経度について言及します。

■Google Maps APIと緯度経度
GPSなどの位置情報に関する知識がほとんどない状態で、このサンプルを作成開始したために緯度経度の問題でかなりなやみました。

まず、第一に緯度経度が世界で統一されていないということでした。日本では、従来、「日本測地系(TOKYO)」といわれる緯度経度を利用し、世界標準の「世界測地系(WGS-84)とは、同じ緯度経度でも指し示す実際の場所が異なるということでした。

しかし、日本では法律を改正して、2004年4月より従来の日本測地系から世界測地系を使うようにしたので、国土地理院が提供データなどは世界測地系に変換されている。

Google Maps APIは基本的に世界測地系を採用していいるが、日本地図(ゼンリンの地図らしい)だけは日本測地系を採用している。
05年12月1日より、Google Mapsの日本地図データも世界測地系に変更になりました。

まず、この即地系の対応で混乱してしまい、国土地理院からとってきた山の緯度経度データをどう変換して、Google Maps APIに食わせるたらいいのかで、混乱しました。

そして、その混乱に拍車をかけたのが、緯度経度の表記法が3種類あるということでした。度分秒式(例 23° 27′ 30")と秒十進式(例 23° 27.500′)と分秒十進式(例 23.45833°)があるということです。やられました。


で、結論ですが、Google Maps APIを使って、日本地図を表示させるには、日本測地系の緯度経度を分秒十進式にしなければいけないということでした。このことが判明するまで、実験したり、検索しまっくたりで、えらい苦労しました。

このあたりの変換は、point2.htmlのToDecimalNotation(ddmmss)やGPointTokyo(lng,lat)関数を参照してください。世界測地系緯度経度(度分秒表記)→分秒十進表記→日本測地系緯度経度→Google Maps APIという手順を踏んでいます。

で、国土地理院の度分秒式のデータを、分秒十進式に変換して、Google Maps APIに与えてやります。
このあたりの変換は、point2.htmlのToDecimalNotation(ddmmss)関数を参照してください。世界測地系緯度経度(度分秒表記)→分秒十進表記→Google Maps APIという手順を踏んでいます。

ちなみに、度分秒表記を分秒十進表記への変換式は以下になります。

分秒十進緯度経度 = 度 + (分 / 60)  + (秒 / 3600)

ということで、AjaxのライブラリのAutocompleter(この中で、XmlHTTPRequestを使っています)の使い方とGoogle Maps APIとの関連での緯度経度についてのメモでした。

投稿者 nekobara : 16:46 | コメント (2) | トラックバック

[予定] 7月20日の行動

■午前
・Google Mapsとの連携実装

■午後
・サンプルプログラムまとめ

投稿者 nekobara : 09:30 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂26回
夜:腰痛予防体操 2セット、ストレッチ、懸垂27回

う~ん、なんとか27回へステップアップ

体重 62.4kg 体脂肪率 14%

投稿者 nekobara : 09:30 | コメント (0) | トラックバック

2005年07月19日

[休肝日] NONDRINKING

今週、最初の休刊日。今日も暑かったが、飲まなかった。

投稿者 nekobara : 23:02 | コメント (0) | トラックバック

[運動] 本日の体操

夜:腰痛予防体操 2セット、ストレッチ、懸垂26回

投稿者 nekobara : 23:01 | コメント (0) | トラックバック

[夕食, 料理] 味噌チャンプルー

20050719.jpg

ごはん
味噌チャンプルー
みそ汁

投稿者 nekobara : 22:59 | コメント (0) | トラックバック

2005年07月18日

[その他] サワガニ?

20050718.jpg

長男がカニを捕まえたいというので、芦安方面の川に行って捕まえてきました。自分は子供の時、カニは近くの海で捕まえていた(さすがに毛ガニじゃないよ)ので、川にいるカニは始めてです。

カニの種類はサワガニなんでしょうか? ネット調べるとサワガニは水のきれいな川にいますと書いてあったですが、このカニを捕まえた川は正直そんなにきれいではありませんでした。

カニの動きを観察していると結構面白く、子供よりも自分がはまってしまい、1時間ぐらい見てしまいました。シート状の金魚のえさをあげるとはさみでつかんで、上手にちぎってたべますし、口の動きなんかも結構かわいいです。

ちなみに最初は3匹を一緒にしていたのですが、観察しているとどうも共食いしそうだったので、今は1匹ごとに分けました。

PS. 現在、カブト4匹、ノコギリクワガタ3匹、コクワガタ8匹、カニ3匹。結構、お世話が大変です。

投稿者 nekobara : 14:03 | コメント (0) | トラックバック

2005年07月16日

[お酒] ルイ・ジャド ブルゴーニュ シャルドネ(白) 1999

20050716.jpg

名称 BOURGOGNE Applellation Bourgone Controlee CHARDONNAY 1999
産地 フランス ブルゴーニュ
容量 750ml
度数 13%
価格 1,764円
輸入業者 兼松株式会社
備考 ブルゴーニュ・ワインの名門ルイ・ジャド社は1859年の設立以来、銘醸畑より産出する高貴なブドウから数々の優れたワインを生み出し ”卓越した品質のワイン作りをするドメーヌ”としての地位を築いてきました。ブルゴーニュの心臓部とも言うべきコート・ドール地区のグラン・クリュやプルミエ・クリュを始め、多数の優れたクリュに100ヘクタールを超える自家畑を持つほか、ボージョレのムーラン・ナ・ヴァンにシャトー・デ・ジャックのエステートを所有しています。また、優れた栽培農家から最上のブドウを買い付けてワイン造りを行うネゴシアン(ワイン商)としても世界の尊敬を集めています。
その他 Eleve et Mis en bouteilles par LOUIS JADOT (F 21200 - FRANCE)

■印象
 飲み始めは赤ワインによくあるような渋みと樽の香りが目立った。しかし、その後はよくわからない。現在の自分にはティストを感知できない。ただ、舌の表面からワインが抜けていくときに少しピリピリするのがわかる。あえて言えば、少しすっぱい味なのだろうか?

投稿者 nekobara : 22:32 | コメント (3) | トラックバック

2005年07月15日

[予定] 7月15日の行動

■午前
・Ajax用JavaScriptライブラリの解読
・外出

■午後
・外出
・子供を歯医者

投稿者 nekobara : 08:20 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂26回

投稿者 nekobara : 08:19 | コメント (0) | トラックバック

2005年07月14日

[休肝日] NONDRINKING

今週も3休刊日を達成。明日のお酒が楽しみだ。最近は白ワインにはまっているので、明日も白かな?

投稿者 nekobara : 21:31 | コメント (0) | トラックバック

[夕食, 料理] ポークソテー

20050714-2.jpg

ごはん
ポークソテー
ポテトとインゲン

投稿者 nekobara : 21:27 | コメント (0) | トラックバック

[料理, 昼食] ほうとう

20050714.jpg

あばれほうとう
ハンバーグ
トマト

投稿者 nekobara : 13:14 | コメント (0) | トラックバック

[予定] 7月14日の予定

■午前
・Ajaxで入力支援サンプルの拡張

■午後
・HTML::PrototypeでのAjaxサンプル作成

こちらのサイトのように、入力候補をプルダウンメニューで表示して、選択できるサンプルを作ろうとしているのだが、うまくいっていない。このサイトは、Ruby on Railsを使っているらしい。地道にprototype.jsとcontrols.jsのコードを解読しているところだが、いかんせんJavaScriptの知識がなさすぎで、苦戦中。

投稿者 nekobara : 09:58 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂26回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂26回

投稿者 nekobara : 09:57 | コメント (0) | トラックバック

2005年07月13日

[技術] Ajaxサンプル

Ajaxを使ったウェブアプリのサンプルを作成してみました。参考にしたサイトはこちら

サーバ側に山の情報として、「番号、名称、緯度、経度、標高」のデータを保持しておき、画面で番号を入力し、該当するデータがあった場合に名称、緯度、経度、標高を表示します。おまけとして、取得した緯度経度で国土地理院の地図データを表示するようにしました。




Ajax サンプル : 番号欄に3桁の数字を入力してください

番号: (100,101,102,110,111,112,120,121)

名称:

緯度:

経度:

標高:

このアプリの技術的特長は、番号入力後にユーザがいちいち送信ボタンを押さなくても、番号欄の入力値が変わるたびにサーバ側にデータを取得しに行っていることです。

このようなことを可能にしているのが、JavaScriptにあるXmlHTTPRequestクラスです。JavaScriptは以下のようになります。

// 国土地理院の地図を表示する
function watchizu(){
  var ido   = document.getElementById('pointido').value;
  var keido = document.getElementById('pointkeido').value;
  var B = ido.replace(/\./i, "");
  var L = keido.replace(/\./i, "");
  var url = "http://watchizu.gsi.go.jp/cgi-bin/bl.cgi?b=" + B +"&l=" + L ;
  window.open(url,"");
}
// サーバ側のCGIを呼び出し
function getPointData() {
  var id = document.getElementById('pointid').value;
  http.open("GET", '/sample/point.cgi?id=' + escape(id), true);
  http.onreadystatechange = handleHttpResponse;
  http.send(null);
}
// サーバから返答を取得し、画面に表示
function handleHttpResponse() {
  if (http.readyState == 4) {
    results = http.responseText.split(",");
    document.getElementById('pointname').value = results[0];
    document.getElementById('pointido').value = results[1];
    document.getElementById('pointkeido').value = results[2];
    document.getElementById('pointheight').value = results[3];
  }
}
// サーバとのやり取りを制御するXmlHTTPRequestインスタンスを生成
function getHttpObject() {
  var xmlhttp;
  // プリコンパイル指定
  /*@cc_on
 @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msmxl2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
    xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
var http = getHttpObject();

サーバ側のCGI(point.cgi)は以下のようになる。

#!/usr/bin/perl -w
use strict;
use CGI;
my $q  = CGI->new;
my $id = $q->param('id');
my $hash = {
    100 => {name=>'甲武信ヶ岳', ido=>'35.5432', keido=>'138.4344', height=>'2475'},
    101 => {name=>'横尾山',     ido=>'35.5508', keido=>'138.3116', height=>'1818'},
    102 => {name=>'瑞牆山',     ido=>'35.5336', keido=>'138.3531', height=>'2230'},
    110 => {name=>'金峰山',     ido=>'35.5217', keido=>'138.3731', height=>'2599'},
    111 => {name=>'朝日岳',     ido=>'35.5228', keido=>'138.3833', height=>'2579'},
    112 => {name=>'国師ケ岳',   ido=>'35.5215', keido=>'138.4023', height=>'2592'},
    120 => {name=>'北奥千丈岳', ido=>'35.5207', keido=>'138.4015', height=>'2601'},
    121 => {name=>'乾徳山',     ido=>'35.4923', keido=>'138.4254', height=>'2031'}
};
print "Content-Type: text/xml\n\n";
if ($hash->{$id}) {
    my $data = $hash->{$id};
    print "$data->{name},$data->{ido},$data->{keido},$data->{height}";
}else{
    print '該当データなし,,,';
}

HTMLは以下のようになっている。

<form action="">
<p>番号: <input type="text" name="pointid" id="pointid" onKeyup="getPointData();"/>(100,101,102,110,111,112,120,121)</p>
<p>名称: <input type="text" name="pointname" id="pointname" /></p>
<p>緯度: <input type="text" name="pointido" id="pointido" /></p>
<p>経度: <input type="text" name="pointkeido" id="pointkeido" /></p>
<p>標高: <input type="text" name="pointheight" id="pointheight" /></p>
<input type="button" value="国土地理院の地図表示" onClick="watchizu();">
</form>

投稿者 nekobara : 22:39 | コメント (2) | トラックバック

[運動] 本日の体操

朝:なし
夜:腰痛予防体操 2セット、ストレッチ、懸垂26回

体重 62.4kg 体脂肪率 14%

朝は寝坊したために体操を忘れてしまった

投稿者 nekobara : 21:04 | コメント (0) | トラックバック

[休肝日] NONDRINKING

今週、2休刊日目

投稿者 nekobara : 21:03 | コメント (0) | トラックバック

[夕食, 料理] ハンバーグ

20050713-2.jpg

ごはん
ハンバーグ
みそ汁

投稿者 nekobara : 21:02 | コメント (0) | トラックバック

[料理, 昼食] 焼きそば

20050713.jpg

焼きそば
トマト
みそ汁

投稿者 nekobara : 14:01 | コメント (0) | トラックバック

[予定] 7月13日の行動

■午前
・散髪

■午後
・Ajaxで入力支援サンプル作成
最初、CatalystのPrototypeプラグインを使ったサンプルでやりましたが、XmlHttpRequestの仕様をまったく理解しないでフレームワークをつかってもさっぱりわからなかったので、地道にXmlHttpRequestをつかったサンプルをチュートリアルサイトを参考にして作ってみた。とりあえず、動いた。

投稿者 nekobara : 09:17 | コメント (0) | トラックバック

2005年07月12日

[休肝日] NONDRINKING

今週、最初の休刊日

投稿者 nekobara : 20:11 | コメント (0) | トラックバック

[夕食, 料理] うなぎ&サバ

20050712.jpg

穀物専科入りごはん
うなぎ
サバの塩焼き
かぼちゃのクリームサラダ
みそ汁

投稿者 nekobara : 19:14 | コメント (0) | トラックバック

[予定] 7月12日の行動

■午前
・ドメイン取得などもろもろ

■午後
・ポイントデータ関連処理の検討

投稿者 nekobara : 09:43 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂26回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂26回

投稿者 nekobara : 09:43 | コメント (0) | トラックバック

2005年07月11日

[夕食, 料理] 鶏肉のカシューナッツ炒め

20050711-2.jpg

お豆と雑穀ごはんの素入りごはん
鶏肉のカシューナッツ炒め
シュウマイ
トマト
かぼちゃのみそ汁

投稿者 nekobara : 22:26 | コメント (0) | トラックバック

[雑感] 音楽が鳴り出すサイト

サイトのデザインの参考にするために、今日はいろいろなサイトを見ていたのだが、開くといきなり音がなるようにしているサイトに遭遇することが多かった。音楽付のページって、何パーセントぐらいあるんだろうとふと思った。いつか、ひまなときに調べてみよう・・・・

投稿者 nekobara : 17:16 | コメント (0) | トラックバック

[料理, 昼食] ざるそば定食

20050711.jpg

お豆と雑穀ごはんの素入りごはん
はい!千番信州そば
トマト
みそ汁

投稿者 nekobara : 12:40 | コメント (0) | トラックバック

[予定] 7月11日の行動

■午前
・プログラミング

■午後
・市川花火インターネット中継現場下見

投稿者 nekobara : 09:55 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂26回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂26回

投稿者 nekobara : 09:54 | コメント (0) | トラックバック

2005年07月08日

[お酒] シャブリ 2002 白

20050708-3.jpg

名称 Chablis Appelation Chablis Controlee
産地 フランス
容量 750ml
価格 1,659円
輸入業者 日含商事

■印象
辛口だが舌の上で転がすと甘味が舌に染み込み、口蓋に甘い香りが広がる。そして、のどに抜けていくときに舌にピリピリした感触を残す。

投稿者 nekobara : 22:47 | コメント (6) | トラックバック

[夕食, 料理] 鶏肉のしょうが焼き

20050708-2.jpg

穀物専科入りごはん
鶏肉のしょうが焼き (おかず応援団p61)
枝豆
ワンタンスープ

投稿者 nekobara : 22:43 | コメント (0) | トラックバック

[料理, 昼食] はい!千番そうめん

20050708.jpg

はい!千番そうめん+昨晩の残り物

投稿者 nekobara : 15:45 | コメント (0) | トラックバック

[予定] 7月8日の行動

■午前
・プログラミング(DBまわり)

■午後
・プログラミング(DBまわり)

投稿者 nekobara : 08:33 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂26回 (とりあえず、カウントアップ)
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂26回

体重 62.6kg 体脂肪率 14%

投稿者 nekobara : 08:32 | コメント (0) | トラックバック

2005年07月07日

[その他] ノコギリクワガタ

20050707-3.jpg

K平に今日も長男と行ってしまいました。ほとんど家に篭っているので運動不足だから、多少のウォーキングにもなって、運動不足解消にちょうどよいと言い訳して、家を出ました。で、今日の収穫は、コクワガタのオス1匹、メス1匹、ノコギリクワガタのオス1匹でした。まずまずの成果に息子も私も満足顔で帰宅しました。(^o^)

投稿者 nekobara : 22:37 | コメント (0) | トラックバック

[休肝日] NONDRINKING

今週も3休刊日を達成。明日は枝豆でビールだ!

投稿者 nekobara : 22:28 | コメント (0) | トラックバック

[夕食, 料理] 豚肉とトマトのピリ辛炒め

20050707-2.jpg

ごはん
豚肉とトマトのピリ辛炒め(おかず応援団p46)
みそ汁

投稿者 nekobara : 22:20 | コメント (0) | トラックバック

[技術] Catalyst環境再構築

【手順の覚書】

■プロジェクト名XGでCatalyst開発環境作成

[y-ishiha@tama catalyst]$ catalyst.pl XG
created "XG"
created "XG/script"
created "XG/lib"
created "XG/root"
created "XG/t"
created "XG/t/m"
created "XG/t/v"
created "XG/t/c"
created "XG/lib/XG"
created "XG/lib/XG/M"
created "XG/lib/XG/V"
created "XG/lib/XG/C"
created "XG/lib/XG.pm"
created "XG/Build.PL"
created "XG/Makefile.PL"
created "XG/README"
created "XG/Changes"
created "XG/t/01app.t"
created "XG/t/02pod.t"
created "XG/t/03podcoverage.t"
created "XG/script/xg_cgi.pl"
created "XG/script/xg_fastcgi.pl"
created "XG/script/xg_server.pl"
created "XG/script/xg_test.pl"
created "XG/script/xg_create.pl"

■ViewをTemplate-Toolkitベースで作成
[y-ishiha@tama catalyst]$ cd XG
[y-ishiha@tama XG]$ script/xg_create.pl view TT TT
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/V/TT.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/v/tt.t"

■データベースの作成とテーブル定義
[y-ishiha@tama script]$ createdb -E utf-8 xg
CREATE DATABASE
[y-ishiha@tama XG]$ psql -e xg < script/posgres.sql
BEGIN TRANSACTION;
BEGIN
CREATE TABLE users (
username varchar(100) PRIMARY KEY NOT NULL,
password varchar(100) NOT NULL,
nickname varchar(100),
name1 varchar(100),
name2 varchar(100),
name3 varchar(100),
sex varchar(6) CHECK(sex='male' OR sex='female'),
email varchar(100),
zip varchar(100),
country varchar(100),
prefecture varchar(100),
city varchar(100),
address1 varchar(100),
address2 varchar(100),
address3 varchar(100),
tel varchar(100),
fax varchar(100),
question varchar(100),
answer varchar(100),
active boolean DEFAULT 'false',
activedate timestamp,
closedate timestamp,
modifydate timestamp,
registdate timestamp DEFAULT now()
);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "users_pkey" for table "users"
CREATE TABLE
CREATE TABLE guidedata (
id serial PRIMARY KEY NOT NULL,
title varchar(100) NOT NULL,
area varchar(100) NOT NULL,
category varchar(100) NOT NULL,
body text,
public boolean DEFAULT 'false',
modifydate timestamp,
registdate timestamp DEFAULT now()
);
NOTICE: CREATE TABLE will create implicit sequence "guidedata_id_seq" for "serial" column "guidedata.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "guidedata_pkey" for table "guidedata"
CREATE TABLE
CREATE TABLE articles (
id serial PRIMARY KEY NOT NULL,
basename varchar(100) NOT NULL,
username varchar(100) NOT NULL,
title varchar(100) NOT NULL,
area varchar(100) NOT NULL,
category varchar(100),
body text,
public boolean DEFAULT 'false',
modifydate timestamp,
registdate timestamp DEFAULT now()
);
NOTICE: CREATE TABLE will create implicit sequence "articles_id_seq" for "serial" column "articles.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "articles_pkey" for table "articles"
CREATE TABLE
COMMIT;
COMMIT

■ModelをClass::DBIをベースにして作成
[y-ishiha@tama XG]$ script/xg_create.pl model Pg CDBI dbi:Pg:dbname=xg y-ishiha
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/M/Pg.pm"
exists "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/M/Pg"
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/M/Pg/Articles.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/M/Pg/Guidedata.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/M/Pg/Users.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/m/pg_articles.t"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/m/pg_guidedata.t"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/m/pg_users.t"

■Controllを作成
[y-ishiha@tama XG]$ script/xg_create.pl controller Login
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/C/Login.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/c/login.t"
[y-ishiha@tama XG]$ script/xg_create.pl controller Regist
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/C/Regist.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/c/regist.t"
[y-ishiha@tama XG]$ script/xg_create.pl controller User
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/C/User.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/c/user.t"
[y-ishiha@tama XG]$ script/xg_create.pl controller Admin
created "/home/y-ishiha/public_html/catalyst/XG/script/../lib/XG/C/Admin.pm"
created "/home/y-ishiha/public_html/catalyst/XG/script/../t/c/admin.t"
[y-ishiha@tama XG]$

■ユーザ認証にPluginのAuthenticate::CDBIを使うための作業
Authenticate::CDBIはまだCPANに登録されていないようなので、http://dev.catalyst.perl.org/browser/trunkより CDBI.pmファイルを取得して、/usr/lib/perl5/site_perl/5.8.5/Catalyst/Plugin/Authenticateにコピーする。

XG/lib/XG.pmのPlugin指定をuse Catalyst qw/-Debug Session::FastMmap Authenticate::CDBI/;にする。(Session::FastMmapを一緒に追加)

同じくXG.pmのconfigのsessionを以下のようにする。

session => {
expires => 60 * 60 * 24,
rewrites => 0,
storage => '/tmp/session'
},
authenticate => {
cdbi => {
class => 'XG::M::Pg::Users',
username => 'username',
password => 'password'
},
}
}

Class::DBIのAutoCommitを有効にするためにXG/lib/M/Pg.pmのconfigのoptionsに{AutoCommit=>1}を追加する。

投稿者 nekobara : 15:12 | コメント (0) | トラックバック

[料理, 昼食] 霧しなそば

20050707.jpg

久しぶりに残り物でない昼食でした。

投稿者 nekobara : 13:45 | コメント (0) | トラックバック

[予定] 7月7日の行動

■午前
・プログラミング

■午後
・プログラミング

投稿者 nekobara : 08:20 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂25回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂25回

投稿者 nekobara : 08:17 | コメント (0) | トラックバック

2005年07月06日

[読書] 復活

復活 (上巻)
4102060189トルストイ

おすすめ平均
stars晩年の大作
starsトルストイの思想
stars小説って……
stars『復活』の魅力
stars熱いです

Amazonで詳しく見る
by G-Tools

5月のドストエフスキーの「貧しき人々」に続く、再読はトルストイの「復活」。これもまた、「貧しき人々」と同じで、情けないことに結末は覚えていなかったので、読むことにしました。

主人公のネフリュードフ公爵が陪審員として出た裁判で、昔、自分が犯したカチューシャのシベリア送りが決定してしまう。しかし、彼女は無実であり、しかも彼との一件で妊娠したカチューシャは奉公先を追い出され、出産した子供がまもなく死に、彼女自身は売春婦に身を持ち崩してしまったことを彼は知る。自らの罪過を反省し、人間としての復活を誓ったネフリュードフはカチューシャを助けるために奔走し、その過程で、帝政ロシアの社会矛盾を自覚するにいたり、自らの領地を農民に開放する。そして、シベリアに移送されるカチューシャを追って、自らもシベリアに向かう。そして、彼の懸命の働きで、判決取り消しの特赦が下りて、カチューシャは釈放されることになった。しかし、カチューシャの方は移送される囚人の中にいた政治犯シモンソンと知り合い、彼とともにシベリアへの旅を続けることにするのであった。

ざっと、こんなあらすじですが、非常に面白いです。トルストイは、物語の核心は非常に重いテーマなのですが、ストーリーが巧みで、重いテーマにありがちな退屈感を読んでいても感じません。トルストイがネフリュードフを通して語る帝政ロシアの矛盾(官僚の罪の意識なき机上での決定が現場では恐ろしい結果になっている)は、現代では人権への配慮が当時とはかなり違っているとは思いますが、構造的矛盾として現代社会にも十分に通じます。例えば、政府の借金が700兆円あるのに、毎年40兆円前後の借金を作り続けて、先進国の中で最悪の財政状態をそのままにしている政府および与党が運営している日本なんかもそうでしょう。(だいたい郵政民営化の前にもっとやることがあるだろうに)

実は、トルストイはこの「復活」しか読んでいないのですが、「アンナ・カレーニナ」と「戦争と平和」はそのうちにぜひ読んだみたいと思います。蛇足ですが、ネフリュードフの感情と太宰治の感情がシンクロしてるなぁとなぜか思いました。

投稿者 nekobara : 22:50 | コメント (2) | トラックバック

[その他] コクワガタ

20050706-2.jpg

以前の勤め先のNさんが、K平の通りの街灯にクワガタが飛んできて、落ちていることがあるよと教えてくれたので、昨日の夜、子供二人を連れて夜の8時ぐらいに行ってみました。現場に向かう車の中で、二人の会話から、がんがん取れることをすごく期待している様子がひしひしと伝わってきました。時間帯的にどうなのか、わからなかったので、内心まずったなぁ、1匹も取れなかったらどうしようと心配になってしまいました。で、結果ですが、割と小さめですがコクワガタを1匹ゲットできたので、とりあえず子供も納得してくれて、よかったです。Nさん、どうもありがとうございました。

投稿者 nekobara : 22:27 | コメント (0) | トラックバック

[休肝日] NONDRINKING

今週、2休刊日目。

投稿者 nekobara : 22:26 | コメント (0) | トラックバック

[夕食, 料理] カレーライス

20050706.jpg

カレーライス
サラダ
シジミのみそ汁

投稿者 nekobara : 21:42 | コメント (0) | トラックバック

[予定] 7月6日の行動

■午前
・プログラミング

■午後
・プログラミング

投稿者 nekobara : 08:40 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂25回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂25回

体重 62.4kg 体脂肪率 14%

投稿者 nekobara : 08:40 | コメント (0) | トラックバック

2005年07月05日

[休肝日] NONDRINKING

今週最初の休刊日。昨日は最初は飲まないつもりだったのだが夕食の時に土壇場で発泡酒の缶を開けてしまった。ちなみに先週は3休刊日だった。

投稿者 nekobara : 21:46 | コメント (0) | トラックバック

[夕食, 料理] いかのバター焼き

20050705-2.jpg

穀物専科入りごはん
いかのバター焼き
キャベツの梅あえ
みそ汁

投稿者 nekobara : 19:55 | コメント (0) | トラックバック

[雑感] モリゾー&キッコロ巨大化

20050705.jpg

愛地球博のマスコット、モリゾー&キッコロに似た草が巨大化している。


ちなみに先月の写真はこちら

投稿者 nekobara : 09:32 | コメント (0) | トラックバック

[予定] 7月5日の行動

■午前
・プログラミング

・昼食
 完全なる残り物世界に漂う~

■午後
・プログラミング

CatalystでModelを定義して、内部的にClass::DBIを使用する場合、データベースにPostgreSQLとOracleを使う場合に、AutoCommitが0となっているので、明示的にAutoCommit=>1にしてやらないと、Catalyst環境内で、createしてもDB上には書きこまれない。(ClassDBIの仕様なので、単独でClass::DBIを使用するときも同じ)

投稿者 nekobara : 08:48 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂25回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂25回

投稿者 nekobara : 08:47 | コメント (0) | トラックバック

2005年07月04日

[夕食, 料理] 鶏砂肝とニラ

20050704.jpg

ごはん
鶏砂肝とニラ
シュウマイとキャベツ
キュウリとトマトとワカメのサラダ
みそ汁

今日はレシピも見ずに適当にやったら、ひどかった~

投稿者 nekobara : 19:57 | コメント (0) | トラックバック

[予定] 7月4日の行動

■午前
・プログラミング

1)PosgresSQLのユーザ作成
# su -l posgres
% createuser -A -d -P y-ishiha
-A user can not add new users
-d nser can create new databases
-P assign a password to new user

2)データベースの作成
% createdb -E utf-8 xchro

3)Catalyst::Plugin::Authenticate::CDBIのインストール
CPANに登録されていないので、http://dev.catalyst.perl.org/browser/trunkより、CDBI.pmをとってきて、/usr/lib/perl5/site_perl/5.8.5/Catalyst/Plugin/Authenticateの下にコピーした

4)PostgreSQLにユーザ認証用テーブルを定義
% cat a.spl
BEGIN TRANSACTION;
CREATE TABLE users (
uid int PRIMARY KEY NOT NULL,
username varchar(100),
password varchar(100)
);
INSERT INTO "users" VALUES(1, 'Melody', 'Nelson');
COMMIT;
% psql -e xchro < a.spl

・昼食
 残り物です、はい!

■午後
・プログラミング

5) モデルの作成(ちょっとはまる)
% script/my_app_create.pl model AuthDB CDBI dbi:Pg:dbname=xchro y-ishiha
で、PosgtreSQLからテーブルのインデックス名の取得に失敗して、NGになってしまう。ヘルパースクリプトを追っていくと、下記のようなSQLを発行しているが、relname='public.users'のpublicがいらない。

SELECT indkey FROM pg_index
WHERE indisprimary=true AND indrelid=(
SELECT oid FROM pg_class
WHERE relname='public.users');

そこでテーブル名を取得しているところまで追っていくと、DBD::Pgのバージョンをチェックして1.31以上なら、no_prefix指定して、テーブル名の前のprefixを取り除いてテーブル名を取得するようにVersion0.22のClass::DBI::Loader:Pg::_tables() が記述しているにも関わらず、サーバにインストールされているDBD::PgのVersion1.31はオプションを一切みずにprefixをテーブル名につけて返している。そこで、DBD::Pgを1.43に更新した。そして、再度ヘルパースクリプト実行したら、下記のように正しく生成された。

created "/home/y-ishiha/public_html/catalyst/My-App/script/../lib/My/App/M/AuthDB.pm"
created "/home/y-ishiha/public_html/catalyst/My-App/script/../lib/My/App/M/AuthDB"
created "/home/y-ishiha/public_html/catalyst/My-App/script/../lib/My/App/M/AuthDB/Users.pm"
created "/home/y-ishiha/public_html/catalyst/My-App/script/../t/m/authdb_users.t"

投稿者 nekobara : 09:04 | コメント (2) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂25回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂25回

体重 62.4kg 体脂肪率 14%

投稿者 nekobara : 09:03 | コメント (0) | トラックバック

2005年07月01日

[夕食, 料理] 焼き魚ほっけ

20050701-2.jpg

穀物専科入りごはん
焼き魚ほっけ
ナスとトマトのチーズ焼き
みそ汁

投稿者 nekobara : 21:02 | コメント (0) | トラックバック

[料理, 昼食] はい!千番そうめん

20050701.jpg

はい!千番そうめん

投稿者 nekobara : 13:01 | コメント (0) | トラックバック

[予定] 7月1日の行動

■午前
・プログラミング

・昼食
 はい!千番そうめん
20050701.jpg


■午後
・プログラミング
 Catalystが面白い。まだ、全然よくわかっていないけど、楽だわ~。

・夕食
 穀物専科入りごはん
 焼き魚ほっけ
 ナスとトマトのチーズ焼き
 みそ汁
20050701-2.jpg

投稿者 nekobara : 08:14 | コメント (0) | トラックバック

[運動] 本日の体操

朝:腰痛予防体操 2セット、懸垂25回
夜:腰痛予防体操 2セット、腹筋20回、ストレッチ、懸垂25回

投稿者 nekobara : 08:14 | コメント (0) | トラックバック