2011年12月31日土曜日

決まりごと

いよいよ大晦日の夜もふけ2011年が終わろうとしている.
今年はおとなしく紅白を見ているところだが,そういえば紅白を見て過ごした大晦日って過去にあっただろうかと記憶をたどっても,今年ほど腰を据えて紅白を素直に見ている年はないように思う.

歌を聞きながら紅白とは日本の宗教的儀式だと解説した佐藤優氏の一説を思い出した.
要約すると,紅白歌合戦は,一つの時間の区切りの感覚を日本全体で共有する民族的儀式だという.
そもそも年末感と言うか1つの区切りがついて新しい年を迎えるイメージや感覚は,テレビによる影響が大きいのではないか.紅白はその中で一番シンボリックな存在であることには疑いの余地はない.

私は毎年紅白を見て大晦日の夜を過ごすことはワンパターンでつまらないことだと馬鹿にしていた方だが,歳を取ったせいだろうか,それは間違いであったと思いはじめている.

紅白を見ずに大晦日を過ごすほうが,かえって余計にエネルギーと労力を食うような気がしてきた.
抗うことのできない日本人の慣習というものなんだろうか.
あるいは社会との一体感を共有していないことへの恐れなんだろうか.

今,紅白をみながら,漠然とした日本の一体感を感じてホッとしている自分がいるのに気づいている.
このあとゆく年くる年を見て,2011年が終わったことを頭に叩き込むことになるのだ.



2011年の最期の日

久しぶりにbloggerを開いたら,
最後に書いた記事は11月3日となっており
およそ2ヶ月放置していた.

いっその事,やめちゃえばいいのに
2011年最後の日になんか書いてみることにする.

今年は3月11日以降は,時間が止まったみたいな
感覚があって,2011年が今日で終わりだなどとは
にわかに信じがたい心境である.
せっかく慣れてきた2011年や平成23年という
文字と永遠にお別れだとは不思議な感じすらするのだ

今年は,どんな年だったか.
振り返れば,結構色々なことがあった.
そういえば日記を書き始めたのも今年.
中国へ初めて行ったのも今年のことだった.
大学時代の友人と再会したのも今年.
ここには書けないあれやこれや皆今年の出来事ではないか

年をとるたび,行動するまでに時間がかかるようになった.
あれやこれや心配して,だんだんとつまらなくなって
やる気そのものがなくなっていく
行動する前に目的の価値が心のなかですり減っていく.

明日から2012年.平成24年.
なんかいいことがあるような気もするし,
恐ろしいことに出くわすのではないかという不安もある年の瀬.

今できることは,平安を願って祈ることのみ.



2011年11月3日木曜日

等速直線運動

車に乗って高速道路を走らせていた時,
時速100キロで滑るように走る車の中で
自分が止まっていて,フロントガラスに
投影された風景だけが動いているのを
眺めているような錯覚に陥った.

時速100キロという高速で移動しているのに,
体に加速度を受けなければ,
静止しているのと区別できないことを思ったとたん,
私の思考は,自動的に別のことへ移ろった.

変化のない漫然とした生活を送る者がいたとしたら,
果たして生きていると知覚できているのだろうか.
変化のない生活は,まるで等速直線運動のように
静止した状態との区別を難しくするに違いない.

「生きているのか死んでいるのか?」
「生きている意味はなんだろうか?」

時速100キロで滑るように走る車の中で,
静止した車に乗り,映画を見ているような錯覚は,
震災で歪んだ路面の段差に乗り上げた瞬間,
走っている実感で心は満たされ,
溶けて透明なって存在を失った.

意味を求めつづけ,さまよえる心は,
実はとても単純なことで足元の羅針盤に
気付くことができるんじゃないかと私は思いながら
完全の下り坂のカーブに差し掛かっているのを見て
現実とダブった気がして一人苦笑いした.

2011年11月1日火曜日

堂々巡り

もう11月かとため息が思わず出てしまった.
確かに空気は,冷たくなって上着が必要なった.
庭のドウダンツツジは,去年よりも赤く染まった.

7月から書き始めた日記帳の1ヶ月前,
2ヶ月前,3ヶ月前と振り返ってみると,
あっという間に過ぎ去ったような時間は,
それなりの厚みを持っていることを知る.

この11月の1ヶ月間もまた,
矢のように過ぎ去ることだろうが
今,予想もしない事が起こる1ヶ月になるのかも知れないし
何事もない普通の1ヶ月かも知れない.

平穏無事を願った今年の正月に,
たとえ今年あった出来事や状況を夢に見たとしても,そ
れが現実の未来だと信じることができただろうか.

今ものすごい勢いで世の中がマイナスの渦に
引きこまれて,奈落のそこへ落ちていくような
状態にあるように思えてならない.
磁石が引き合い距離が短くなるほど
ますます,力強く引きあうように
状況は,どんどん悪い方へ加速度的に
引き寄せられていくのではないか

などと,悲観的に考える一方で,
なんとかなると楽観的になる自分もいる.
優れた人達が切磋琢磨する日本が,
必ず再起動すると信じている自分がいる.

結局は,中途半端な知識による不安と
根拠のない安心感のバランスで
私は精神の安定を保っているのか.

そして,考えの息つく先が全て無意味に感じる時,
虚無感が私を絡めとる.
生きる意味を失いかねないブラックホール.

痛みの感覚が与えられたのは,
希望を失いかけた時でも
生き続けられるようにだろうか.
その痛みを知る時,生きる道を諦めた
罰を与えられたということか.

だんだんと考えるのがめんどくさくなって,
肥えた腹は,グーと鳴り,
食欲に私は命ぜられ,だるい体を持ち上げる.

生きる喜びとは欲を満たすことだろうか.
人と動物の違いについて考えると
私は果たして人といえるのか疑問にも思えてきて
そうなると,もう笑うしか無い.

そして幼い息子や娘をみるとき,
生きる意味が意味の解釈を経ずに
私に力を与え,朝の夜明けに,
再び起き上がる力を与えてくれるのだ.



2011年10月31日月曜日

鳥肌の立つ場所

3ヶ月前から手書きで日記をつけるようになってから,
自宅でパソコンに向かう時間が惜しくなるようになってしまい
ただでさえ更新が滞りがちなブログの文章は,
ますますほったらかしが続いていたのだけれど,
久しぶりにキーボードで文章を書いてみたい気持ちが湧いてきた.

しかし,日曜日の23時35分という微妙な時間に書き始めた文章は,
導入部分で既に躓いている状況で,
しまいにはどうでもいいような気になって
途中で投げ出してしまいそう.

これをあなたが読んでいるということは,
そんな事が心に湧き怒りながらも,なんとかめげずに,
読んでもためにならない,書いても見返りもないこの文章を
私がなんとか書き終えたということを意味しているのです.

今日は,夜になってから雨が降ったのか,外からは
雨だれの音がボツボツとこだまして低い音が響いており,
途切れなく続くその音は聞く耳を休ませることを許してくれません.
温かい家の中にいて外の雨だれを聞くことは,
外の寒さを想像する余裕を私に与え,
幸せを感じさせてくれる瞬間でもあります.

今日は,鳥肌がたつ経験をしました.
大げさかもしれませんが身の毛もよだつという表現が私にはぴったりきます.
別に怪物を見たとか何か恐ろしいものを見たという事ではないのですが,
何かの存在を私は感じました.
37年間生きてきて記憶にあるかぎりあまり経験のないことです.
このことについて書いてみましょう.

週末に私はドライブへ田沢湖まで出かけることがよくあります.
私の住んでいる盛岡近郊から田沢湖までは車で1時間程度で行くことができ,
風景も綺麗でドライブにはちょうどいい場所です.
私がよく出かけるのは田沢湖の南側にある「秋田県民の森」か,
あるいは西側にある「かたまえ山森林公園」,
東側の田沢湖高原の温泉地あたりです.
特に県民の森とかたまえ山森林公園は共に少し小高い場所にあって
田沢湖を一望できる散歩にはもってこいの場所です.
かたまえ山森林公園には滑り台などの遊具もあり,
いつ行っても空いているので,3歳と6歳の子供たちがいる
私たち家族にとってお気に入りの場所の1つとなっています.

今日も田沢湖に私たち家族は出かけていたわけですが,
たまには違うところへいってみようということで,
田沢湖の北側にある,鏡石に行ってみることにしました.
田沢湖の周囲には湖岸を取り囲むように道路があって,
車で湖の全周へアクセスできます.
今は紅葉の時期で田沢湖周辺を走る車がいつもより多いようでした.


何度も田沢湖には出かけているのに,
この「鏡石」という場所は,まったく行ったことがありませんでした.

鏡石入り口にあるドライブインを兼ねたおみやげ屋さんの駐車場に
車を停めて,矢印の案内に従って私たち家族は歩き始めました.
駐車場から鏡石までは,300mm程度の距離があって,
後半200mは,急な上り坂となっていました.
上り坂には丸太が埋め込まれた階段が作られていて,整備されています.

登る途中,3組の家族とすれ違いましたが,
私たちと同じタイミングで登る人達はおらず,
麓のドライブインにいた観光客の数とは対照的に
寂しい雰囲気の参道でした.

上り坂100mほど行ったところに「願橋」という木製の橋があり,
切り立った崖をつないでいました.
ふと見上げると「かなえる岩」という立て看板表示がついた巨石が
今にも落ちてきそうな格好でこちらを覗いていました.
6歳になる息子が走って願橋を渡ろうとしたのをたしなめた時,
橋の手すりを見るとたくさんの願いことが書き込みされてありました.
きっと地元の民間信仰みたいなものがあるのでしょう.
家族の病気が回復するようにとか試験に受かりますようにとか
ところ狭しとマジックやボールペンで書きこまれていました.
願橋から更に100mの急な上り坂を,3歳になる娘を抱えながら,
私たち家族は散歩を楽しんていました.
息子も階段の脇にどんぐりを見つけては,これは大きいだとか
あれは虫が食べた穴があるとか言いながら集めていました.

残り100mの坂は中間地点にちょっとした踊り場みたいな
場所があってそこから少し「く」の字に曲がっていて,
前半50m以下の地点からは直接上が見えないようになっていました.
その踊場について一息つく間もなく上を見上げると,
なんだか私は違和感を覚えていました.
うまく言葉では言い表せませんが,薄気味悪いと言うかなんというか.
しかし,急な坂を途中まで登ってきた労苦を思うと,
どうしても達成感を得たいという意識が働き,
不安な気持ちは,直ぐに薄らいでしまい,そのまま私たちは上りました.

上り坂の「終着点」は,木製の展望台のような作りになっていて,
45度くらいの階段が15段くらいありました.
階段を登りきって私の視線に入ったのは.お金でした.
展望台の手すりは,木の丸太で作られているのですが,
割れた隙間にはビッシリと5円とか1円硬貨が差し込んであって,
手すりには触れられない状態でした.
その手すりを支える柱の部分には所狭しと願いことが書きこまれています.
願橋にあった願い事よりもより多くのことが小さな字で書きこまれていました.
癌が治りますようにという言葉がいくつも目に止まりました.
死期を悟った人が家族への思いをかたどったであろう言葉もありました.

そこから20m程度はなれた断崖に「鏡石」はありました.
すこし風化したしめ縄がとりつけられており,石の表面は
苔で覆われているのが見えました.
私は特に感慨もなく,今度は登ってきた坂道を下る労苦を思って
うんざりした気分になっていました.
3m四方程度の展望台のようなスペースには,
私たち家族しかいなくて登ってくる人達もいません.

6歳の息子が早く帰ろうというので,一休みもそこそこに
展望台の階段を下り始めました.
すると,私の後ろから何かの気配を感じるのです.
はじめはその気配も気のせいだと思っていましたが,
今度はだんだん,体の表面がゾクゾクとして鳥肌がたってきます.
私は3歳の娘の抱っこしながら階段を一歩づつゆっくりと
下っていきますが,背後の存在感の大きさに耐えかねては,
振り返って後ろを見つめました.

しかし,なにも居ません.

ところが何も見えませんが,何かがそこに存在する気配を感じるのです.
振り返って見たときに見えない存在は,隠れることもせずその場所から
こちらを伺っているそんな具合です.
気持ち悪さを一人でやりすごすことができなくて
私は横を歩くかみさんに話しかけました.

「誰か居るような気がしたけど気のせいだよな」と.

カミサンは,そっと囁くように「私はさっきから鳥肌が立ってる」と
言うではありませんか.

「きっとこういうふうに祀ってあって,入り口にも鳥居があったのも
理由があるんじゃない」と続けて言いました.

その間も私は,私達に近づいてくるような背後の気配を背に,
何度も振り返っては何も見えないことを確認することを繰り返しました.
50m下った「く」の字の踊り場地点に降りてきたら,
急に気配は消えました.

何かを見たわけでもないのに,私に存在するという
感覚をもたらした情報は一体何だったのでしょう.
少なくともあの場所は,自分にとって容易に近づけない場所になりました.
行ったことのある人で似たような経験をした人はいるのでしょうか.

では,おやすみなさい

2011年7月20日水曜日

キーボードと万年筆

初めてパソコンのキーボードに触れた中学2年生の頃から
文章を書く時は,キーボードを通じてテキストを入力してきた.
14歳の頃から打ってきたこともあって,結構キーボードは
早撃ちできる方ではないかと思ったりもする.

けど,文章を書いてやろうとキーボードに手を置いても
スラスラ文章を思い浮かべて入力できるかというと,そうでもない.
キーボードで言葉を入力しては,消してまた入力の繰り返し.
消せるから,紡ぐ言葉に覚悟がないのだと思う.

2週間ほど前に,机の掃除をしてたら安物の万年筆を見つけた.
きっとなんかの入学記念とかでもらったものだと思う.
赤いペンだったから,自分がもらったんじゃなくてカミサンが
もらったものかも知れない.
軽い気持ちで手にとって,いつも持ち歩いているペンケースに入れ,
先日 仕事でメモを取るのに使ってみたら,なんだか気持ちよく字が書けた.

いつも使っているボールペンよりも,万年筆のインクは,
もっと濃くて深い黒で,なめらかに書けると感じる.
力をいれれば,加減に応じて毛筆のように太さが変わって
メリハリの効いた字が書ける気がするのだ.

「万年筆でメモをとっていると気持ちがいい」
字を書くのが楽しくなった.

1週間ほど使っている間にすっかり万年筆が気に入って,
少し太めの中国製の安物万年筆をヤフオクで買った.
値段は430円.でもコンバータ方式になっていて,
ボトルのインクから補充できたり,重量感もあってあなどれない.
ちなみに定価は3800円とあった.本当か嘘かはわからない.

この新調した安物万年筆は,使いきりのボールペンなどよりも
かなりインクが多く出るようだ.
補充してもノートを4ページ程度書いているとコンバータの
インクはすっかり無くなって,すぐに補充する必要がある.
だからといってインクが出すぎて字がにじむということもない.

インクの減りが早いことは,私にはメリットに思えてならない.
インクが無くなるほど書いたという充足感がたまらなく心地いい.
もうこんなに書いたのかと,減ったインクを眺めながら
コンバータにインクボトルから新しいインクを吸わせて満たす.
インクが満タンになったら心も満タンになったような満足感.
再び万年筆を走らせたくなる.

文章を書くなら,キーボード入力しようが,ノートに鉛筆で書こうが
万年筆で書こうが,出来上がるものは同じであると私はこれまで
信じて疑わなかった気がする.これは間違いだったと気付かされた.
文章を書くという行為は,書くときの気分にずいぶん左右される作業だ.
もし書くことが一字一句決まっているなら同じかも知れないが,
少なくとも今の私は,万年筆を持って文章を書こうとする時と,
キーボードに手をおいた時の文を書く楽しさは確かに大きく違う.

一字一句を頭に思い浮かべて,字を思い起こしながら,万年筆を紙に走らせ
紙に載ったインクの乾き具合をみて,減っていくインクの量を実感しつつ
うまく書けた字を眺め,万年筆を引き続き走らせていく昔ながらの行為は,
その瞬間瞬間に思い通りにいったとか,ちょっと失敗したとか,
心のなかでの応答があって,それが心地良さとなっている.
書く行為そのもので新たな言葉が浮かんでくる気がする.

効率と便利を追求するなら,圧倒的にキーボードを通じて
電子的なテキストにしたほうが時間も短縮できて効率も
よいだろうが,それは 楽しくないと思うようになった.

ただし,人に読んでもらう様な文章を書くには,一発で仕上げることなど
私にはできそうもないので,この文章を書いている今はキーボードを叩いている.

もっぱら万年筆が活躍するのは,自分しか読むことのない,
仕事のメモと日記だけになりそうだ.

2011年7月9日土曜日

暑い夏

今年の暦の基準は,3月11日.
季節の移り変わりを表現するとき,
あれから何ヶ月と数えてしまう.

3月11日の頃は,まだ雪が降っていた.
季節は,もう夏.
あっという間だったようであっても,
じっくりと振り返れば,
色々あった約4ヶ月.

漠然とした盤石を疑うこともなく
過ごしてきた日々が,
いかにもろいかを思い知らされた.

「無常」が「無情」と心のなかで重なる.

人は築き上げたものが奪われゆく時,
はじめて自分が何者でもないことに気づき
そこから生きることの意味を否応なしに
考えざるを得なくなるのか

死ぬことの意味を知っているようで知らない.
裏をかえせば,それは
生きていることの意味を知らないともいえよう

自分が何者で何を為すべきために今生きているのか,
何をしたいのかさえも,この頃わからぬまま,
今日も朝を迎えた

2011年4月26日火曜日

漠然とした不安とmilkモジュール

皆様おはようございます.
今朝の滝沢村は,雨だれの音が音がこだましていて
どんよりとした雲が低く垂れこんでおります.

地震から日が経つに連れ余震の頻度は落ちてきた
はずなのに,正直なところ気持ちは落ち込む一方です.
なにか悪いことが起こるのではないかという,
なんともいえない気持ち悪さが心から離れません.
そんなことは無いさと思ってみても,気を緩める頃には
決まって地震に大地が震え,私は再び悪い予感に
とらわれるという循環になっています.

自分の心に素直に向き合い,本能の声に耳を傾けるならば
「これだけでは済まされない,もう一つ何かが起こるよ」
というささやきが聞こえてくるようです.
その声を無視して日常をやり過ごせばよいのか,それとも
理屈では説明のつかない悪い予感に従えばいいのか,
まだ割り切れずにいながら,時間が過ぎていきます.

ところで,ここまでの話と全く脈略がありませんが,
ここからガラリと話題を変えまして...

先日,少し知的な処理をコンピュータにやらせたいと思いまして,
pythonの機械学習モジュールについて調べてみる機会がありました.
そのとき見つけた「milk」というモジュールについてメモを披露したいと思います.

「milk」は名前の印象とは関係なくって複数の機械学習
アルゴリズムを集めたpythonパッケージのようです.
SVMやboostingなどをお手軽に使えるところが気に入りました.
複数のアルゴリズムを組み合わせて使うことも考慮されています.
残念なことに,milkのドキュメントは2つくらいしか見つかりません.
pypiluispedroです.
インストールは「easy_install milk」でいけました.

使い方ですが,サンプルを引用します.
import numpy as np
import milk
features = np.random.rand(100,10)
labels = np.zeros(100)
features[50:] += .5
labels[50:] = 1
learner = milk.defaultclassifier()
model = learner.train(features, labels)
example = np.random.rand(10)
print model.apply(example)
example2 = np.random.rand(10)
example2 += .5
print model.apply(example2)

milk.defaultclassifier()は,お手軽に使えるように
あらかじめデフォルト設定された学習機となっていて
SVM=Support Vector Machineを使った学習となっています.
教師信号として入力する特徴量(features)と対応するクラスタラベル(label)を
入力してやります.
特徴量の正規化や線形従属な要素の除去なども全自動でやってくれます.
defaultclassifier()では複数のクラスタに分類するためにone-versus-rest手法が
用いられるようになっています.
もちろんこれらの組み合わせを自分で自由に設定することも可能です.
defaultclassifier()の中身は,次のようになっているようです.
defaultclassifier = ctransforms(
   chkfinite(),
   interval_normalise(),
   featureselector(linear_independent_features),
   sda_filter(),
   gridsearch(one_against_one(svm.svm_to_binary(svm.svm_raw())),
   params={
     'C': 2.**np.arange(-9,5),
     'kernel': [svm.rbf_kernel(2.**i) for i in np.arange(-7,4)],
   }
))
ctransforms()というのが複数のフィルタ(学習器)を束ねてくれるmilkのAPIです.
そのなかで1つづつ与えられている引数の要素がそれぞれ別個の学習機や
フィルタとなっています.
・chkfiite()は,特徴量やラベルに無限やNaNなどが含まれていないかチェックするフィルタ.
・interval_normalise()は,特徴量を正規化するフィルタ.
・sda_filter()は,判別分析を行うフィルタ.
・gridsearch()は,多値問題をグリッド検索に基づいて与えられた学習器で学習するフィルタ.
・svm.rbf_kernel()は,Support Vector Machineのradial basis function kernel.

milkのフィルタ(学習器)は,皆 learn_func(features, label)のような引数を持つように
設計されていて,ctransforms()で束ねて与えると,パイプライン処理により1つの
学習機として動作するようになっているようです.

冒頭のサンプルコードに戻りますが,学習器のインスタンスを生成した後,
「train」で特徴量とラベルを与えて学習させます.
learner = milk.defaultclassifier()
model = learner.train(features, labels)
処理には数秒を要します.学習が終わると学習モデルが得られますので,
未知の特徴量を与えれば,学習結果に基づいて分類してくれます.
print model.apply(example)
学習モデルは,pickle化できるのでディスクから読み込むことも可能です.

OpenCVと組み合わせたり,あるいはネットから集めたデータを
自動分類したい時など,お手軽に使えるのではないでしょうか.

2011年4月21日木曜日

近況報告と64bit windows環境でのCython

皆様こんにちは.
どうやら2ヶ月ぶりの更新だったようです.
2月から3月までは,ただブログ更新をサボっていただけなのですが,
3月から4月にかけての1ヶ月間は リアルな生活で精一杯でした.
ようやく余震は,頻度も規模も小さくなってきて3.11以前の日常に戻りつつあります.
大震災で亡くなられた皆様のご無念を思うと切なくてなりません.
亡くなった皆様のご冥福をお祈り致しております.
また被災者の皆様には一日も早く落ち着いた生活を取り戻せますように祈っております.

日本政府の遅々とした対応には憤りを感じるばかりです.
奮闘している現場と対照的に政府にはリーダーシップのかけらも感じられません.
今回の大震災は被災地が広範囲に渡っているとはいえ散々な対応ぶりに見えます.
震災以前は,日本政府の能力は高く国民主体であると漠然と思って疑いませんでしたが,
これが大きな勘違いであったと今回の出来事で思いました.
普段あまり意見の合わないカミさんとさえも,この点においては意気投合しておりましたので,
世の中の皆さんにもこのように感じた方が少なくないのではないかと
勝手ながら想像しているところです.
どうか日本に一刻も早く良きリーダーが与えられて人々が希望を胸に
前に進むことができるようにと強く願い,毎日祈る日々です.

 私の近況ですが..地震の後 3日ほど停電,
その後の余震でも1日程度停電があった事などで
仕事にも多少の影響はでておりましたが,
事前の計画を遅れなく実現すべく開発業務に勤しんでいます.
 この頃は,もっぱら物理現象を観察しその現象をある程度再現する
なるべく簡略なモデル式とパラメータを探すといった地味な仕事をしております.
地味な仕事とはいえ このような最適化の作業は,物理の教科書をほっくりかえしつつ,
過去にサボったツケを実感しながら,
試行錯誤の繰り返しと計算の待ち時間のやり過ごし方など
ストレスの多い作業となっています.
 数時間かかった最適化計算が収束せず,良く調べてみたら計算プログラムのバグに
行き着いたときに感じる無気力感を 気持ちの隅に追いやりながら
作業を継続せねばなりません.
 以前は最適化計算をさせるためにC++やCを使っていましたが,
この頃は Python+SciPy+Numpyの組み合わせが気にいております.
特に「scipy.optimizeパッケージ」に感謝です.
 私は普段,Intel T7600(Core2duo 2.3GHz)+32bitVistaのノートPCを
持ち歩いて仕事しているのですが,最適化の計算だけは時間がかかってしまうので,
その時だけちょっと速そうなデスクトップパソコンを起動して計算させています.
例えばAMD PhenomII3GHz+Vista64bitなどにPythonスクリプトを走らせると,
T7600ノートPCでは及びもつかないスピードで計算してくれます.
当初は,私もこれだけで満足していたのですが,どんどんフィッティング対象の式が
複雑怪奇なものに成長するにしたがってPhenomマシンでも待ち時間が長くなり
どうしたものかと悩むようになりました.
 JITで早いとウワサのPyPyを試してみようと思いましたが,残念なことに
NumpyもScipyもPyPyでは動きませんので箸にも棒にもかかりません.
 そこで,Cythonを試してみることにしました.
Cythonは,Pythonもどきのスクリプトを書いてあげるとCに変換してくれて
pythonからimport可能なDLLを生成してくれるものですが,
現時点におけるpython高速化の確実なソリューションといえると思います.
 しかし普段やらないことにとりかかるのは億劫なものです.
ドキュメントも読まねばなりません.
こういうパッケージを追加していざ取り組んでみると落とし穴にハマって
抜け出せないことが多々あります.Cythonも例外ではありませんでした.

 結論からいうと,Vista32bit環境でCythonを使うことは全く問題ありませんでした.
Vista32bitではVisual Studio2005をインストールしているけれども,
mingwでコンパイルする設定を追加しておりますが問題もなく動きました.
きっとVCでもサクっとコンパイル出来るに違いありません.
私のVista32bit環境python27にあるLIB/distutils/distutils.cfgの中身を書いておきます.
[build]
compiler = mingw32
Cythonスクリプトをコンパイルしたときのsetup.pyは次のとおりです.
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [Extension("hoge_func", ["hoge_func.pyx"], include_dirs=["C:/cygwin/usr/local/Python27/Lib/site-packages/numpy/core/include"])]
setup(
  name = 'hoge function',
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules
)
これでhoge_func.pyxにCythonスクリプトを書いておいて
"python setup.py build_ext --inplace"を実行すればサクっとコンパイルされて
pythonから"import hoge_func"できて恩恵に預かることができました.
ただしVista32bit環境だけです.
 Vista64bit環境のCython設定でハマりました.
正しく言えばdistutilの設定ということでしょうか.
Vista32環境+Cythonで十分早くって64bitで動かすことをしなくてもいいぐらい
高速化されたんですが,欲が出まして Vista64でも scipy+numpy+cythonの
最適化計算環境がどうしても欲しくなりました.
そこで 64bitネイティブなmingw64でもないかと探して"x86_64-w64-mingw32-gcc"なるものを
見つけインストールしsetup.pyを走らせましたがエラーを吐きます.
エラーの内容はもはや思い出せませんが,多数のエラーにブチ当たりました.
行き着いた先が,「Compiling 64-bit extension modules on Windows」というドキュメント.
64bitでcythonを楽しむためには次の条件を揃えねばならないようです.
1.Python2.6か2.7もしくは3.1
2.Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1が必須
 つまり,mingw64は使えないということです.
先程のドキュメントにはSDKバージョンは"Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1"以降となっていますが,最新版をインストールしてもコンパイルできませんでした.
SDKのダウンロードも結構かかった上に2種類もインストールしたり,
インストール中にフリーズしたりとハマリにハマってやっとコンパイルできました.
コンパイル時の呪文も書いておきます.
これをバッチファイルやMakefileなどに書いておくといいかもしれません
C:\Program Files\Microsoft SDKs\Windows\v7.0>set DISTUTILS_USE_SDK=1
C:\Program Files\Microsoft SDKs\Windows\v7.0>setenv /x64 /release
python setup.py build_ext --inplace
 苦労した割に,振り返ってみると大した事ではなかったのに
いったい何でハマってしまうのかと毎回思うのですが,
知らないもんは知らないのですからしょうがないと諦めます.
 ちなみにCythonの高速化は,ハンパではありませんでした.
正確にベンチマークとったら報告したいと思いますが,
体感スピードでは100倍以上早くなったといっても大げさではないと思っています.

2011年2月22日火曜日

VHDLが好きな岩手県?

ちょっとだけ面白いことを見つけたので紹介します.
下のランキングはGoogleで「Verilog」を検索している地域の順位.

続いて「VHDL」のランキング.
何故か岩手県がトップに君臨.
しかも2位を30ポイント近くも引き離しております.
岩手県にはVHDLが気になっている人が多いのでしょうか

もう一つ「Python」でのランキング.
これにも岩手県が2位にランキングしています.
世の中ではあんまりメジャーじゃないものが岩手県民のお好みなのでしょうか
とても不思議なランキングです

2011年2月8日火曜日

FT2232HをPythonで使う

ストロベリーリナックスからFT2232Hを載せたUSB高速シリアル変換基板が発売されております.
FT2232H(2ch)高速USBシリアル変換モジュールキット
これは単純に言えば,パソコンから自作マイコンやFPGAボードなどに480Mbpsでデーターを簡単に送れてしまえるスグレモノなのです.
パソコン側のソフトを開発するためのライブラリなどはFTDI様が配っておられます.
FTDI CHip D2XX Driver Download site
筆者はこの頃,年をとったせいか開発中にコンパイラを起動するのがストレスになり,
単にアウトプットだけが問題なときやテストメインの時は,Pythonでお手軽に処理するのが最近の趣向なのです.
そこで上記のボードもPythonから使えるようにFTDI様のDLL用にctypesラッパーモジュールを書きました.
これを書いているほうが断然キーボードを叩く量が多い気が途中でしましたが,一度作れば480Mbpsの通信を
Pythonで制御できるので嬉しい気分となります.
ftd2xx-py.zip
スクリプトの中身は整理もなんにもしてなくて,コメントもありませんがご容赦下さい.

使い方は,例えばこんな感じです.32メガバイトを送信する例となっています.
from ftd2xx import *
handle = c_ulong()
ret=FT_Open(0, byref(handle))
ret=FT_SetBitMode(handle, c_ubyte(0xff), c_ubyte(0x0))
print "FT_SetBitmode=", ret
ret=FT_SetBaudRate(handle, 6000000)
print "FT_SetBaudRate=", ret
data = range(1024)*1024*32
ret=easy_write(handle, data)

2011年2月3日木曜日

健康食品

今週の週明けは,新幹線移動による日帰りでの出張からはじまった。
その日の盛岡の朝は,寒かったが晴れ渡った空に上る朝日がまぶしい。
きっとこの寒さは放射冷却現象という現象に違いないと思った.
以前はこの言葉を天気予報でよく聞いた気がするのだが、
このごろあまり聞かなくなったのではないか。
私は出張の時に、決まって乗る盛岡駅行きのバスには乗らずに、
青山駅まで徒歩で向かった。
途中の歩道は凍っていて転倒するかしないかは運みたいなものだ。

歩くと汗が心地よい。

体によいことをすると気持ちがくなるように
人間の体はできているのだと誰かに聞かされことがある。
しかし「体によい気持ちよさ」が得られる機会とは、
実に限られているものではないか。

たとえば,昨今、健康ブームもあってか
様々な健康食品が世にあふれている。
だが健康食品が体によいものであっても
直接的な心地良さを効能として体感できるものではない。
病気の際に飲む薬とは違って効果が見えないのだ。
健康が持続していることこそが健康食品の効果であると
いえるかもしれないがそれが、
直接的に影響したのかどうかはわからないのだ。

ここで前述の通り体によい事をしたときには
心地よさが得られるような体の仕組みが
実際に存在したと仮定しても、
健康食品にはそれが当てはまらないことは明白だ。
強いて健康食品を摂取したときに得られる
心地よさをあげるとするならば、
「おいしさ」や「はごたえ」といった味覚と食感のみである。

乏しい直接的効能にも関わらず高価な健康食品に人気があるのは、
カタログや説明書に書いてある効果が得られたという体験談や
毎日継続して飲んでいるのだからきっと効き目があるに違いないという
目には見えない働きを信じているのだ。
つまり期待感や自己満足と行った
心理的快感を得ているにすぎない。

現代人は理性や科学を信じたことによって、
理屈で説明が付かない事柄には関心がなくなったかといえば
このことからも違うことがわかる。
健康食品一つとってみても、
自分の体への有効性を確かめることもなく
高価な健康食品を信じて今日も食べるのだ。
健康食品のラベルやパンフレットには
体によい根拠が記載されているではないかという
主張が聞こえてきそうだが、実際にそれを検証した
客観的事実を確認しつつ飲んでいる人たちがどれだけいるだろうか。
コレステロールにいいとか、おなかにいいと言われていることがらを
有効成分の働きなどを交えて科学的に説明する広告を見て、
それが自分の体にも聞くに違いないと信じるから買うのだけど、
自分の体への有効性が保証されているわけではないのに
それを追求せず今日も健康食品を食べ続けるのだ。
医者からもらう薬でさえ、風邪をなかなかなおしてくれず、
時と場合によって効果があったりなかったりするというのに
自分用に特別に作られたものでもない「食べ物」や「飲み物」がなぜ、
個人間で異なる様々な体質の人間たちに
一様に有効であるといえるのだろうか。

それでも健康食品を買って飲むのだから、
それを動機づけしているものとは、
自分の健康が損なわれそうな可能性を恐れ、
健康食品のもつ目には見えない働きに、
自分を健康にしてくれるのではないかという
期待感であると思うのだ。

「実際に少しでもプラスならよいではないか」
そのような許容によって、私たちは
目に見える世界と見えない世界の狭間で
揺れ動く心のバランスを
保っているのではかなろうか。

2011年1月28日金曜日

pythonでctypesを使ったときにちょっと困った不可解なエラー

経験のないUSB機器をお手軽に試用するため、
久しぶりにpython+ctypesを試してみることにした。
長いこと使っていないと一度調べたことを再び
一から確認していかねばならなくなるので、
煩わしくて、せっかく適応可能な機会に恵まれても
使う気力は失せてしまう。
それでも、全く使わないですむかというと、
使ったときの快適感だけは鮮明に記憶されているので、
引っ張りだして使ってみたくなるのがpytho+ctypesだと
僕は思うのだ。
以前に書いたスクリプトとドキュメントを参考にしながら、
今回お世話になるDLLのヘッダファイルを見て、
ctypesラッパーを書いたのだけど、すぐにつまずいた。
正しく関数の引き数の指定しているにも関わらず、
引き数の数が合いませんとかいうエラーが出るのである。
エラーメッセージを頼りにしてGoogle先生に聞いてみたら、
DLLに組み込まれている関数のプロトタイプ宣言に
関係があるらしい。いわゆるstdlibとCDECLの違いだ。
簡潔に言えばstdlibは、Win32APIみたいなOSの
サービスコール的な関数をDLLに埋め込むときの規約で
CDECLは、C/C++でつくった関数を単純にDLL化したときに
適応される約束みたいなものだ。
話を元に戻すと自分が今回でくわしたエラーは、
stdcallで宣言された関数を呼び出すときに、
ctypesに対してそれはCDECL宣言の関数ですよと
謝った情報でDLLをオープンしていたかららしい。
DWORD testFunc(DWORD a, DWORD *b);
みたいなDLL関数をインポートするとき、次でエラーが出るような場合だ。
from ctypes import *
_lib_hoge=clib.LoadLibrary("hoge.dll")
testFunc=_lib_hoge.testFunc
testFunc=testFunc.args=[c_ulong, c_void_p]
bb=c_ulong()
ret=testFunc(10, byref(bb))
testFuncがstdcallな関数だった場合に、このスクリプトを
実行したときのエラーメッセージはこんな感じ。
"ValueError:Procedure called with not enough
argments (8 bytes missing) or wrong calling
convention"
一見,引数の数か型指定が間違っているだけとしか思えない.
でも正しい指定をしているから期待通りに動かない怒りは,
結果としてctypesに向けられることになるのだ.
エラー対策方法は,スクリプトの冒頭にあるDLL読み込みのところを
次のように改めればよい。
from ctypes import *
_lib_hoge=clib.LoadLibrary("hoge.dll")
testFunc=_lib_hoge.testFunc
testFunc=testFunc.args=[c_ulong, c_void_p]
bb=c_ulong()
ret=testFunc(10, byref(bb))
知っていれば些細な問題なんだけど、知らないとこれだけで
python+ctypesをあきらめてしまう要因になると思うのだ。

湯船につかりながらポメラでこの記事を書いているのだけど、
昨日やったばかりの作業やエラーメッセージを思い出せない。
日頃どれだけコピペに頼る生活をしているのか、
実感させられるのである。
2011/01/27 07:23

2011年1月23日日曜日

ソリの思い出

「東北小さな旅」は毎週土曜日の朝にNHKが
放送している東北地方限定ニュースのなかのコーナー。
その名の通り東北地方の各地を回り田舎の風景を
そこに住む人々の生活も交えて紹介していく番組だ。

毎週絶対見るのだと決めているわけではないのだけど、
土曜日の遅い朝に目が覚めてテレビをつけチャンネルを
ポチポチと切り替えると決まってこの番組に落ち着く。

今日の町は「秋田県にかほ市」
ちょうどテレビをつけたところで、
雪深い神社の境内に長く張り巡らされた階段を
女性レポーターが歩いているところだった。
階段には10cmほどの新雪があり
レポーターは長いブーツで雪を漕いで歩いていた。

雪と階段をテレビに見ながら僕は、
冬になると決まって思い出すソリの思い出を
反芻していた。

小学3年生まで僕は盛岡市青山4丁目にある
自衛隊官舎に住んでいた。
そこは運動公園の前にあり、雪が積もると
誰も来なくなる冬の運動公園に行っては
雪を漕いで歩いた。

あの頃は今に比べると盛岡も寒かった。
運動公園の中にある日本庭園の池も
カチガチに凍っていた。
学校から池の氷の上に乗らないように
注意されたが、1度くらいは
氷の上にのっかったような気がする。
高松の池でスケートをしていた頃だから
真冬ならなにが問題だと思うほど
ガッチリと堅く凍っていた。
今は絶対に無理だろう。

冬の運動公園へ遊びに出かけるときは
いつも後ろにプラスチック製の
青いソリをひいていた。
ソリの先端につけた白いビニールのヒモ、
確かピーピーテープと家では呼んでいたのだけど、
そのヒモを長めにソリに結んでおいて、
外に遊びに出かけるときは欠かさず引いていた。
夏は自転車、冬はソリが子供の乗り物だと
子供の僕は堅く信じていた。

一度だけ運動公園の中にあるスタジアムの西側の階段で
ソリ滑りをして遊んだ思い出がある。
スタジアムというのは運動公園の最北端にある
今改修している野球場のことだ。
このスタジアムの階段は、西側にあって観客用の
入り口に設置されているもので今も昔も変わっていない

ソリを引いた小学3年生の僕は、
このスタジアムにさしかかり、
この階段に心を奪われた。
階段の中程にある踊り場が
ジャンプ台となって
ソリのスリルを味わうには
よい場所に見えた。

そう思って僕は迷わず雪の積もって
上りにくい階段をソリを手にかけあがり、
そして滑った。

階段の踊り場は予想通りジャンプ台となって
ソリと僕を勢いよくはじきとばし、
回転しながら氷の地面にたたきつけた。
怪我をした記憶はないが、
僕の大事な青いソリの中程に
パックリと亀裂が入ってしまった。

親は壊れたからと言って易々と
買い換えてはくれないとあきらめていたので、
僕はこの階段の踊り場でソリ滑りをしたことを
とても後悔した。
それから何度もソリの亀裂をガムテープなどで
修理して滑ったが、雪の上を滑らせるとすぐに
テープは端からはがれ亀裂から雪が吹き込み
ソリは鉋のようになって止まるようになった。
だからソリ遊びはあきらめざるを得なくなった。

ソリが壊れた冬の雪が溶ける頃、
僕は父の転勤で幼少期を過ごした
思い出の多い盛岡を後にし、
北海道旭川市へと引っ越した。

それから28年たった今、自分は再び岩手に住んでいる。
毎朝の通勤時に運動公園横を車で通過する度に、
あの階段は、ソリの思い出と共に
僕は少年時代へとフラッシュバックさせられるのだ。

3年前、旭川に帰省した際、割れたソリが
家にまだあって冬に濡れた靴をストーブの前に
乾かすときに活躍していることを知った。
子供の頃の買い換えは無理だろうと
あきらめた事は正解だったと
これで証明されたような気がした。

2011年1月21日金曜日

bitファイルからPicoBlazeの命令用BRAMブロックのみを入れ替える方法

PicoBlazeと共に頒布されているDATA2MEM_assistanceをよく見たら
KCPSM3アセンブラが吐き出すMEMファイルを使って,
BITファイル中のPicoBlazeの命令BRAMブロックのみを
更新する方法が記載されていたので,自分自身も忘れないようここに紹介する.

まず次のフォルダにパスを通しておく.
C:\Xilinx\12.4\ISE_DS\ISE\bin\nt
このフォルダに,PicoBlazeの開発ツールの下記フォルダにある
bp_bmm.exeを上記フォルダにでもコピーしておく.
KCPSM3\DATA2MEM_assistance

ここでPicoBlazeのアセンブリファイルをprogram.psmとし
ISE Navigatorのプロジェクト名がsampleだとすると
次のコマンドを実行する
kcpsm3 program.psm
pb_bmm program.bmm sample.ncd
data2mem -bm program.bmm -bd program.mem -bt sample.bit -o b new_sample.bit

出来上がったnew_sample.bitをFPGAにアップロードすればよい.
data2memを実行途中でPicoBlazeの命令を収めたメモリブロックを選択する
プロンプトが表示される.1つしか無いなら迷わず1を押してリターン.
複数ある場合は,確認する必要がある.

ひとまず,これでPicoBlazeのマシン語を修正したときに
論理合成とインプリメントの時間待たされずにすむので大助かり.
出来上がったBITファイルをJTAGケーブルでダウンロードすれば
新しいプログラムの実行を確認できる.

2011年1月6日木曜日

「風情故に雪を願い,利便の故に雪を嫌う」

正月休みにドカ雪が振り,
盛岡の街中の沿道にも
うず高く雪が積もっている.

雪が降るとめんどくさい作業が増え,
車の運転にも慎重を要し,
渋滞が増えたりして
生活の利便性は良くないのだけど,
雪はやっぱり風情があっていいと思う.

僕が高校生まで育った旭川では,
半年くらい雪と共に暮らしていたからか,
冬の足元に雪がないとしっくりこない.
でも実際にドカ雪が降ると
「やっぱ雪はイイっすネ」と
言いにくくはなるが,
風情故に僕は雪が好きなのだ.

雪は自然が降らせるものだから,
もっと降って欲しいと思ったところで降らないし,
降らないで欲しいと願っても降る.

「また こんなに降った」と,
「もう たくさん」と思っても,
人の思いとは関係なく降り続く雪は,
普段は気づかない人のエゴを炙り出すような気がする.

早く目的地に付きたいと思っても雪の渋滞で動けない.
車を出そうとしても雪にハマって動けない.
雪で滑って歩きにくい.
それらは全て雪のない日常が人にとってありがたい
状態であったかの裏返しだ.
しかし日常において,そのことに感謝する事を知らない.

でも,考えてみると
雪のふる北國に住む人は
心が温かいとか情緒豊かだと
言われることがある.
もしかしたら,それは人の力の及ばないことを,
毎年の雪に思い知らされているからではないか.
降った雪に文句を言ったところでどうにもならない.
雪を前すると諦めて除雪するしかない.

水害や地震に被災した人達が,その経験を堺に
生き方や自然に対する見方が変わるという.

毎年降るこの雪は,静かに僕らに語りかけると思うのだ.
人の及ばぬ力が雪を降らせるから,
僕らもそれを思わずにはいられぬ.

2011年1月3日月曜日

サイデル教授のかっこよさ

あけましておめでとうございます。
今年もどうぞよろしくお願いいたします。

私は正月休み中は 家でゴロ寝をしながら、ひたすらにテレビとネットを眺めて過ごしています。
この二つは時間を無意味にやり過ごすには最高のものだと今回つくづく思いました。
31日は紅白歌合戦を見ずにビートたけしが出演しているアンビリーバブルを見てるうちに眠くなって寝てしまいました。
怪奇現象などのネットビデオを紹介したり心霊写真を解説したりしているうちはまだ興味をもって見ていられたのですが、途中からフジテレビのスタジオに作ったお化け屋敷に芸能人を歩かせて驚く様子をみんなで面白がるという軽薄な内容となってしまたのが残念なところです。
今日は既に3日の夜なので明日の1日を過ごしてしまえば正月休みも終わって仕事始めです。
休み前はいろいろとやってやろうと思ってはいても、終わってしまえばなんともあっけないものですね。
このような堕落した正月を過ごしていると自分がさらに救いようのないダメ人間になっていくような怖さを感じますが、たとえ何かをしていても対して変わらないかとも思うので、そのように気楽に考えて自分を安心させております。

そういえば元旦の夜に、いつもは見ないNHK教育テレビをつけてみたら話題になっているハーバード大学サイデル教授の政治哲学の講義を連続で放送しているのを目にしました。
講義の中身はともかく、サイデル教授のかっこよさが光っておりました。
ズボンのポケットに手を突っ込みながら絶妙の間合いでジョークを飛ばし、重要なポイントを鋭く放つサイデル先生の授業スタイル、アメリカの政治家が選挙中に繰り広げる演説スタイルとダブります。
そして随時、学生に発言させる機会を与え、必ず最後に「君の名前は?」と聞くところが特に印象的です。
もう1つ注目すべきと思うのは、サイデル教授の授業の後、番組の最後で日本の先生が解説を加えているシーンです。
かっこよすぎるサイデル先生が登場してため息がでそうなすばらしい講義を聴いた後に、あの日本の先生のお話を聞くのは、アメリカの教育レベルと日本の教育レベルの差を見せつけられているようで皮肉でしかありません。
サイデル先生と解説している日本の先生の髪の毛は、同じぐらい薄いのだけど、二人を比較するとまるで大人と子供のようなオーラの違いを感じさせられるような気がしてなりません。
聞くところによるとサイデル先生の授業はアメリカの標準的な大学の講義スタイルなのだそうです。
日本の一方的な講義とはずいぶん違うことに驚いてしまいます。
日本の大学は少子化によって学生が少なくなっていくことですし、この際、大学の講義をアメリカのような積極参加型に改め、知識を詰め込むのではなく考える力を身につけさせる事を目指したらいいんじゃないでしょうか。
ゆとり教育が叫ばれたときに小中学生に考える力を身につけさせると言う話がありましたが、むしろ子供の時は知識を詰め込み、大学生ぐらいになってから深く物事を考える力を身につけさせる手順の方が、現実の社会で活躍できる人物を育てることができるのではないかと個人的には思います。

サイデル教授の哲学の講義の中身そのものは,正直なところどうでもいい内容なのですが,どうでもいい内容を楽しく人に伝える技術を学ぶ良い教材だと思いました.
そのうち録音して通勤の車の中で聞きたいと思っています.