スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



IZはトトロ

となりのトトロを観たとき、劇中のシーンがどこまでがこの世でどこからがあの世なのか分からなくなった。もし子供のころに観ていたら、あの世は存在する!と確信していたと思う。

映画では大木の根のくぼみがそうだったが、僕もソファの下の反対側から光が差し込む薄明るいすき間や、山の中の防空壕跡の薄暗い穴が違う次元への入口になっているんじゃないかという気になっていた記憶がある。

となりのトトロには裏話の噂もある。ジブリは公式には否定しているが、いわくトトロは死後の世界の使者で、さつきとメイは実際には死んでいたという・・・

ハワイアン音楽を聴こうと思って調べたら、そんなトトロみないな人がいた。
97年、すでに38才で亡くなっていた。
下のyoutubeにハワイの伝統的な葬式の動画があった。遺骨を海にまくセレモニーで、みんなお祭りのように楽しそうに騒いでいる。
日本でも葬式ではビールでワイワイやるが、これはもっとストレートで素朴で、悲しいからこそそうなんだというのがよく伝わってくる。幌に「IZ lives」と書かれた船もあった。この人は、ハワイの人からいったいどれだけ慕われていたんだろう。



ハワイの人同士では、IZのことは生きている人の話題のように話されるらしい。

人の死は受け入れないといけないものではないのかもしれない。それが記憶にある間、存在しているものとして共有するほうが、もしかしてずっと人生は豊かなんじゃないだろうかと思った。思い出すたびに枕を濡らすのではなくて。

人の魂は、あったとしても実体を感じることはできない。まるでプログラムのコードのよう。普段はモニタに表示される文字を実体のあるもののように受け止め、そのプログラムの動作をあたり前のように追っかけているが、その文字の羅列自体は、実はなんの実体も持っていない。電気のオンオフが繰り返されているだけだ。

何々さんという名前がついたデータのかたまりみないなものをオブジェクトという。プログラムにはそのオブジェクトがたくさんあって、「何々さんこれをしてください」とか、「何々さんこれを覚えていますか?」とかいうやりとりをお互いにやりあって動いている。
そして、その何々さんが誰からも呼ばれなくなると、そのオブジェクトは連絡網から解放され、ようやく完全に消去される。プログラムはそうやって、ただ一行一行順番に実行されていた頃よりも、同じ一行でずっと豊かに動作できるようになった。

魂も本当は、プログラムのオブジェクトみたいに何らかの形で実在しているのかもしれない。
IZというオブジェクトは、今もハワイの人のみならず世界中の人々から呼ばれ続けている。

IZの遺骨を海にまくハワイの人たち、ワーワーいいながら水面をバシャバシャたたいているのをみていると、本当にこんな気がしてきてしまう。

IZオブジェクトは実際に存在して、それを感じて豊かに暮らしている世界があるように。



スポンサーサイト

100万人の心を震わせたピザデブブサ男

何をやっても自信が持てず、つまずいてばかりの人生。携帯電話を売る仕事をしているが、夢は生きがいと感じることを仕事にすること。実際、人の影ばかりを歩いてきたような雰囲気が顔にも風体にもにじみ出ている。そんなポール・ポッツさんの唯一の心の支えは、自分の声だった。
「自分の声がいつも親友でした。
 学校でいじめられたときはいつでも自分の声が頼りでした。
 歌っている時は、そんなことはどうでもよくなります。
 たぶんそれが自信が持てない理由だったのかもしれません。」

すき間のある前歯に、脂肪が垂れる口元、だらしないYシャツの襟。そんな彼がある日テレビの素人オーディション番組に応募した。

ありえない舞台に立ち、たらした両手を硬直させたまま、一点をじっと見つめて全身の力を振りしぼり、後先のことなんてまったく頭にはないように必死に歌う。

そんな様子を見ながら耳に入ってくる歌声がもう人類の叫びのようで、僕も気がついたら涙が出ていた。歌い終わったときの物憂げな表情がまたたまらない。


すごい視聴率だったそうだ。


くわしい紹介サイトはらばQ


リヤキャリアバッグ






BSMオプションパーツのリアキャリアバッグ。

1.フロントシングルでディレイラーを付けない
2.リアキャリアを外さない
3.決して安くはないメーカーオプション品

という3条件を満たす奇特な人だけがたどりつく、ビミョーな商品。骨組内側の空間を荷物スペースに利用する、モールトンらしい商品。
天井側はプラ板でキャリアから垂れ下がらないようにという考慮もされています。底は布一枚なのでゴムのクッションを敷きました。

中に入れるのは左上から時計周りに、
ABUS多関節
携帯工具
パンク時の二酸化炭素ボンベ、それ用のバルブ
英式バルブ、チューブ、タイヤヘラ、
ケース、タオル。





などを入れても、上にはまだ少し余裕があります。
思ってたより結構入りました。

重さ1kgのロック、多関節もようやく安住の地を見つけたかもしれません。

普段出し入れしない荷物をまとめて入れておくにははうってつけかもしれません。

つけてみてみると、それっぽくていい感じです。

買ってよかったかも。

向こう側に見えるのは、届いて以来ずっと週末が雨で出番を待ちこがれている折りたたみチェア、
上のバッグの底板を抜いて前に畳み、空いたスペースに乗っけます。



背丈くらいそびえ立ってしまいますが、軽いので平気そうです。

これで、海を前に足を伸ばして本が読めたら、もうたまんないっす。なにもいりません!

BSM最高!









mirrorMan - オンマウスでフェードイン

いつもチェックさせてもらっているcolissさんのサイトで、おもしろいエフェクトを紹介されていたのでmirrorManにもつけてみました。
お気に入りボタンにフェードインのエフェクトをつけたソースの抜粋です。
<style>
.setLstSpn {display:block;padding:0px 8px 0px 8px;
background:url(img/setLstLft.gif) no-repeat -1px right
}
</style>
<script>
with(document.body){
onmouseover = handleMouseOver;
}
function handleMouseOver(){
var src = event.toElement||event.srcElement;
var cls = src.className;

…(省略)

}else if(/^setLstSpn/.test(cls)){
$(src).toggle().fadeIn();
if(/MSIE 6/.test(navigator.appVersion)) $(src).css('display','inline');

src.style.background = 'url(img/setLStRht.gif) no-repeat -1px right';
}
}
</script>
ここでfadeIn()は思いつかなかった!

フォーカスが
フェードインで
明るくなります

追記:PCのIEが6だった場合に要素がブロック化してレイアウトがぐちゃぐちゃになってしまっていたので、displayプロパティをinlineに設定しなおす行を追加しました。



本 - 『マリス博士の奇想天外な人生』

コールマンの折りたたみ椅子を買ってBSMのキャリアにくくりつけ、新しいキャリアバッグもつけて用意万端の週末だが、今日も明日も雨。自転車ブログ村サイトからのアクセスがいつもより多いのも雨のせい?

『生物と無生物のあいだ』の著者の翻訳本。巻末に対談もある。ノーベル賞サーファー博士の自伝、この本こそ海辺で読みたかった。カラマーゾフじゃなしに。


大学生時代に友達同士でインドに安旅行にいった。その時の一番強烈な体験は、バラナシのホテルに泊まっていたときでのこと。通りに面したベランダに居心地のいいテーブルがあって、そこで皆でダベったりして気のいい16才の若い従業員と友達になっていた。その日の夜、その従業員がドアをノックしてきて、他の日本人の宿泊客が様子がおかしいから見てくれという。
その部屋に入ってみると、カップルがいて笑ってヘラヘラしていた。男は坊主頭で、名前を聞くとダイドーだといった。女の名前は忘れたが、すぐにベジタリアンの差別について何やら語り始めたのを覚えている。インドは酒は禁止されているのにまずいなと思ったが、酒のボトルらしきものは見当たらなかった。かわりに、ライチとカボスを足して割ったような柑橘系のピンポン玉くらいの果物が幾つか、包丁で二つに切った後があった。

話かけてもべろんべろんで会話にならないし、一ところにじっとしていないので目が離せない。トイレにいくといえば、男は入口のドアに向かってしようとしたり、女は入って出てこないと思ったらTシャツを脱いで上半身裸で手洗いで洗濯を始めていた。
それだけならまだしも、彼らの五感で感じるものは全て幻のようだった。何もない床でこぼれ散った何かをかき集める動作をして食べようとしたり、サソリだかイモリだかがベッドのあちこちを這いずりまわっているだとかを楽しそうに伝えてきたり。これはダメだというのを目でホテルの人に合図してから、手に取れるものはすべて棚に隠したりして、とにかくベッドに座らせておとなしくさせていた。
そうこうしていると、インド人の医者がやってきて、ホテルの支配人らしき人と真剣な顔で何やら相談を始めた。どうやら、あのタトゥーラとか何とかいう果実がLSDよりも強力な作用を持つらしく、二人はそれを直接しゃぶってしまったからもうどうしようもないのだという。一時間おきに飲ませるようにといって利尿剤を処方して帰ってしまった。

それから朝まで、ホテルの従業員が1時間おきに持ってくる利尿剤を飲ませながら、幻覚や幻聴、意味不明な言動のおつきあいをした。いいかげんこっちも疲れて、「ホーリーネームだか何だか知らないけどダイドーさん、日本に髪の毛忘れてるみたいだからとりあえず取りに帰れよ」とイヤミをいうと、それは幻聴には聞こえなかったのか、おれは日本で~お前も明日にだって死ぬんだ~とハイテンションになった。僕は笑ってツルツル頭をなでなでして「おーよしよし」とやってやったら、キョトンとしてた。そこまでしてもプッツンしないのは酒より恐い。もうくたくたになって彼らの横で眠った。今思えば、髪の毛を食われるか便器がわりにされるか、何をされるか分からないこわいことをしたが、その時は目を離すことができなかったし、なんだか情も少し移って気を許していた。

僕がガンジャ程度ならインドでやってみたかどうかは読む人のご想像にまかせるが、脳の働きが壊れるというのは、機械のそれと変わらないなというのが結論だ。動画や音声が無限にループ再生されてしまったり、キャブをいじってバイクのスロットルが全開から戻らなくなったり。手に負えない未知なるものとの遭遇の一瞬を感じさせるものではあるが、所詮故障は故障にすぎない。
だから、ドラッグをやって感じるかりそめの幸福感だったり全能感というものは、その場だけのものでしかなく、変な夢をみたというのと何も変わらない。

バイクの事故で気絶して救急車で集中治療室に運ばれ、丸一昼夜意識が戻らなかったときも変わった気持になったことがあった。まず時間の感覚がなかった。目を覚ます度に、おれここで何してんのと家族に何十回も聞いていたらしい。窓の外にある木と会話ができる気がして、それが不自然なことという自覚もなく話しかけたりしていた。夕暮れ時の窓の外の明るさと僕の感情が直結していて、黄昏気分とそれとが一体化しているのもごくあたりまえにハッピーなことのように感じた。歩いてトイレにいくにも、エスカレーターで浮遊して動いているような感じだった。
しかし、半日、一日と時間が過ぎるほどに、僕の頭はみるみる時間の感覚を取り戻し、窓の外の世界も外部の存在になっていった。翌朝目が覚めたときには、頭は元通りのクリアな状態に戻った。

ノーベル賞受賞者のマリス博士は、LSDの経験者であることを公開しながら、LSDがもたらすものに対する一定の評価は変えていないように読めた。テレパシーの体験や、一人で命を落としそうになったときに幽体離脱ができる女性に助けられ、後からその説明をされてせまられた話。アライグマのような生き物に「こんばんは、博士」と話しかけらた瞬間から数時間の記憶が全くない話、トンデモ体験のオンパレードだ。
それも、科学者としてのマリス博士はとても正直者で、未知なるものは全て科学の対象なのだからだろう。一方で、金や権威といった俗っぽいことで科学を捻じ曲げる科学者を痛烈に批判する。健康、環境やエイズの問題を食い物にでっちあげて人々を不安症におとしいれ、自分はBMWに乗って郊外の邸宅に住む人たちをこきおろす。

僕が女だったら、最後の章を読んで心がときめいているはず。さすがモテモテマリス博士。

p310「地球の未来は、人間の思惑とは無関係に展開していくのだ」(と低くてあついため息をもらし)、「人間は~」「地球は~」「人類が~」と7,8回続けて(熱い眼差しを向けて)語った後、こういう。

p314「人類など巨大な岩石の表面に薄く生えているコケのようなものだ。人類は思考し、言葉を操る特別な生物で、その数を増加させている。しかしこの地球の運行をピクリとも変化させることはできない。地球のごく表層を占有し、ひっかいて自分のものにしたつもりでいるにすぎない。」

p315「人間ができることと言えば、現在こうして生きていられることを幸運と感じ、地球上で生起している数限りない事象を前にして謙虚たること、そういった思いとともに缶ビールを空けることぐらいである。」


キャー!ステキ!


CATEYEのLEDライト

今日は涼しかったので乗らずにいられるかと、前の職場の飲み会で飲んで帰った後にタイヤにいっぱい空気入れて出た。30km/hで練馬駅前までいって帰ってくる。



注文していたキャットアイ(CAT EYE) コンパクトオプティキューブライト HL-EL400。ちゃんと地面も照らしている。写真のように襟巻きのような部分がまぶしい位に光っているのがたまにきず。

ハンドルの下側につけて、上側には一緒にコンパスもつけた。









チューブ - 純正とシュワルベ

右がBSM純正で、左がシュワルベの17inch兼用の18inch。
左は輪ゴムでしばってある分、よけいに小さく見えるのを差し引いても軽くはなりそうだ。

回転モーメントの小さい小径でタイヤ外径部の重量が軽くなれば、加速↑で速度維持↓という変化も大きそう。ちょっとした空気圧の違いで相殺されてしまいそうなことだろうけど。

純正タイヤは固くて転がりが軽い印象があるが、これとシュワルベのチューブを合わせるのもちょっとおもしろそうではある。



映画 - 『歩いても歩いても』

少し前にやっていた「結婚できない男」というドラマ、阿部寛と夏川結衣のコンビでやっていたのをみて面白かったのでこの映画も去年の春のクランクインの発表のときから見たいと思っていた。僕は素人一般人レベルながら阿部寛に似ていると言われるから彼には親近感があり、結婚できない男という自分みたいな設定のドラマでもあったからだった。
なにより、夏川結衣とのコンビがよかった。優柔不断というか自分の世界にこもりがちな雰囲気の阿部寛と、シャープな切れ味で男にすぱっと気持を問いかける夏川結衣。ドラマの向こうの人事ながら、この二人本当に結婚すればいいと思ってしまった。最後に診察室で彼に気持を打ち明けるときの彼女の目は今も忘れられない。

ところがである。阿部寛は結婚記者会見でこれ以上ないほどの幸せぶりを披露した。夏川結衣ではなく、一般人の女性との。
え、どうして?『歩いても歩いても』を楽しみにしていた僕の頭に暗雲がたちこめた。もしも、夏川結衣氏が彼に気持を寄せていたとしたら、夫婦の設定であるこの映画はとてもつらいものになってしまうだろう。もちろん夏川結衣は気のしっかりした一流の女優だから個人の感情で仕事をダメにしたりはしないだろうが・・・

そんな気持ちを引きずりつつ、今日やっと観てきた。1時間前にいって一番後ろのいい席を確保して。
映画自体は小津安二郎の現代版のようでとてもよかった。演技もみんな自然体でよかったし、父母祖父祖母孫たち、それぞれの立場から家族を守る姿勢と本音の両方が痛いほど描かれていて、見ごたえがあった。

阿部寛はいたって相変わらず阿部寛だった。夏川結衣はというと、あらかじめいうが、異性を見る曇った色眼鏡というのはたいてい真実とは違い、間違っている。そもそも、夏川結衣が独身なのか彼氏がいるかどうかすら私は知らない。それを踏まえていうなら、彼女はさびしそうに見えた。夫婦らしさを感じたのは唯一、ふとんの上で「おへそからじわじわ入ってくる」話をしていたところだけ。もちろん、そんなことを気にして観ていない観客にはちゃんと夫婦らしく演技していたことは、彼女の名誉のためにいっておかなくてはならない。

要するに一言でいうと、阿部寛似の僕は夏川結衣がタイプだったというだけの話である。




mirrorMan - ドライブ割当て

Windowsサーバはドライブを割り当てるほうがアクセスが速いし安定している、気がする。
のでドライブを割り当てています。

画面上では\\(バックスラッシュ)で始まるUNCパスで表示していますが、


ドライブも割り当てています。


内部で処理するのに気を付けた点は、
* ユーザはドライブ文字を意識しない。
* 親ディレクトリで割り当てられたドライブがあればそれを使う。
* 終了時に一括して切断する。

1つめは、空いているドライブ文字を検索してから割り当てます。
2つめは、割り当てパスとの前方一致でチェックします。
3つめは、mirrorMan自身で割り当てたドライブを繰り返し処理で切断します。

 1|function chkMapping(path){
2| if(!ssh.NameSpace(path)) return path;
3| if(!sfs.GetDriveName(path)) return path;
4| if(!sfs.GetDrive(sfs.GetDriveName(path)).DriveLetter){
5| var enumDrvs = (new ActiveXObject("WScript.Network")).EnumNetworkDrives();
6| for(var i=0; i<enumDrvs.length; i+=2){
7| if(!enumDrvs.Item(i)) continue;
8| if(enumDrvs.Item(i+1).toLowerCase() == path.toLowerCase())
9| return enumDrvs.Item(i)+"\\";
10| if(0==path.toLowerCase().indexOf((enumDrvs.Item(i+1)+"\\").toLowerCase())){
11| var lst = path.slice(enumDrvs.Item(i+1).length);
12| var pth = sfs.BuildPath(enumDrvs.Item(i), lst)
13| return pth;
14| }
15| }
16| for(var i=71; i<92; i++){
17| if(i == 91) return wsh.popup("ドライブが全て使用されています");
18| var d = String.fromCharCode(i);
19| if(!sfs.DriveExists(sfs.GetDriveName(d+":"))){
20| if(mapDrive(d, path)) return d+":\\";
21| else return false;
22| }
23| }
24| }else return path;
25|}
2行目はパスがNameSpace()が通るかどうかチェックしています。
3行目はドライブ文字を取得するFileSystemObjectのメソッドですが、UNCパスでもtrueが返ってきます。逆に特殊フォルダではfalseになるのでチェックに使用しています。
4行目で、ドライブ文字からドライブオブジェクトを取得できなければ、ドライブを割り当てるべきパスとしています。
5行目はドライブ文字のコレクションを取得しています。
6行目ですが、このコレクションはドライブ文字とパスのペアになっているのでi+=2で回します。
8行目では、既に割り当てたドライブがあればそのドライブを返しています。
11行目からは、親フォルダにドライブ割り当てされたパスが含まれていれば、それ以降のパスをくっつけて返しています。たとえば、\\fogeというパスがF:ドライブに割当たっているとして、\\foge\foo\だったらF:\fooというパスにして返しています。
16行目からは空いているドライブ文字が見つかるまで検索し、mapDrive()関数を呼び出しています。
 1|function mapDrive(d, path){
2| try{(new ActiveXObject("WScript.Network")).MapNetworkDrive(d+":",path,false)}
3| catch(e){return wsh.popup(e.number+":"+e.description,0,document.title,16)}
4| mappedDrv.pushDrv(d);
5| return true;
6|}
ドライブを割り当てています。割り当て後、ドライブ文字を次のオブジェクトに追加しています。
var ArrMapDrvs = function(d){
this.drvs = [];
this.pushDrv = function(d){ this.drvs.push(d) }
}
var mappedDrv = new ArrMapDrvs();
ドライブ文字を格納する配列とその配列への追加メソッドを持つオブジェクトです。
最後は、終了時に呼び出される切断処理です。
document.body.onunload = closeWin;
function closeWin(){
for(var i in mappedDrv.drvs) if(! unmapDrive(mappedDrv.drvs[i]+":")) return;
window.close();
}
ドライブ毎にunmapDrive()を呼び出してます。
 1|function unmapDrive(d){
2| try{ (new ActiveXObject("WScript.Network")).RemoveNetworkDrive(d) }
3| catch(e){
4| var sug = e.number =="-2147022492" || e.number =="-2147022495"
5| ? "切断してからmirrorManを終了するには、"+
6| d+"ドライブを使用中のファイル及びフォルダを閉じて再試行ボタンを押します。"
7| : "\n" ;
8| var btn = wsh.popup(d +" ドライブが切断できませんでした。\n\n"+
9| e.description+"\n"+ sug , 0, document.title, 69);
10| switch(btn){
11| case 3: return false;//[中止]
12| case 4: unmapDrive(d);//[再試行]
13| }
14| }
15| return true;
16|}
エラー番号はXPとVista、もしくはIE6とIE7or8で異なっています。
実際に表示されるメッセージは次のようになります。





『カラマーゾフの兄弟4』@若洲ヘリポート

荒川河口に向かう。パレサイは10時ちょうどではまだ半分車が走っていた。コーンで仕切られた左側一車線以外はもう自転車道路になっているようだ。スパッと横切って右側に出る。広い道路の主役が自転車になったみたいな、なんかいい気分だ。
日比谷交差点を東に曲がり、銀座を抜けて晴海通りをまっすぐ走り、勝どき橋で隅田川を渡る。あれ、これお台場に行く道だったとここで気づいた。荒川は河口どころかもう海になってる。まあいいや、この前走った道をまた行こう。
さっきから信号待ちのタイミングが合っている、頭をグリーンとレッドに染め分けた黒いスペシャのクロスバイクのお兄さんがいる。こちらはゆっくり走っているので後ろにいたが、晴海大橋でアメトークに出てた自転車芸人のあのセリフを思い出した。
「フジテレビ行くときの晴海大橋のあの地上高く空を飛ぶような感じと、下り坂を飛ばすスピード感がたまらない」


スイッチオン。
記憶の彼方からよみがえってきた奥田民生のこの曲「股旅(ジョンと)」

踏め踏め踏めー細道~

橋のてっぺんで緑赤頭兄ちゃんをすっとばし、下ハン握って59km!
ほんまか。YPKのchoronometerのサイコンはよく電波混線するし。


お台場手前のレインボーブリッジ入口のところで信号待ちしていると、後ろから「すいません」と声が。
「それなんていう自転車なんすか?」
「これ?これはBSモールトン」
「へー、後ろ走っててもう全然追いつかなくて、それタイヤ小さいのに、はやいっすねー、これ友達に借りて二日目なんすけど、全然走らないんすよ」
どうやら、お台場の花火かの祭りのバイトで来るのに借りているらしい。スペシャの黒クロス、よく見ると全然メンテされてないようだ。
「タイヤは大きい方がやっぱり楽でよく走りますよ」「そうなんすかー」
なんか納得してないようだ。
「ウーン、シューズをペダルに固定してるのと、空気圧の高いタイヤが大きいかなあ」
黒クロスの前輪をつまんでみる。全然空気が入っていない。
「これもっと空気入れたほうがいいですよ。それだけでも全然違うと思うから」
「はー、いやー股間もすっげえ痛くて」(話聞いてるのか?)
「ははは、僕のは穴あきなんで、これいいですよ」
「え!、それ店でこうしてくれっていえばやってくれます?」
「いや、こういう種類のもういっぱい売ってますよ」
へー、とさっきから自転車をしげしげと見つめて、「ありがとうございました!」といって走って行った。

うーん、アメトークの自転車芸人が晴海大橋の話をして奥田民生の歌を思い出してそれでガシガシ踏んでたからだと、見ず知らずの人にいきなりそんなことは言えないしなあ。
キコキコ漕いでいると件の小説の一節を思い出す。
今から70年前、先進国から半歩遅れで近代化の道を歩んでいたロシア、人々はまだロシア正教、つまりキリスト教の枠組みの中で暮らしていたが、これから科学の進歩で神は死ぬのだというくだり。
p394
「だれもが、人はいずれ死ぬ身であって、復活はないことを知るので、死を、神のように誇り高く、平然と受け入れることになる。人間はその誇り高さゆえに、人生が瞬間であることになんら不満をこぼすことはないし、自分の兄弟を、もはやいっさいの報いなしで愛するようになる。愛が満たすことができるのは人生の刹那でしかないが、愛が刹那にすぎないという自覚ひとつで、その炎は、かつて死後の永遠の愛に対する期待の中で広がっていったのとおなじくらい、つよく燃え盛るのだ・・・」
復活というのはイエスキリストのそれで、死後の永遠の愛というのもそれにまつわるそれだ。永遠の愛はともかく、復活の事実については今はもうごくごく一部の信派でしか信じられていないと思う。
とはいえ、愛の刹那と永遠とのこの2重真理が現代人にとってすでに現実かといえば、とんでもない。

緑赤頭の若者よ、ぼくが言いたいのはこうだ。
「だれもがいずれ自転車を降りるのであって、自分の自転車が遅いことになんら不満をこぼすことはないのだ。君に必要なのは、もはやいっさいの報いなしで自転車を愛する(整備する)ことである。その愛(自転車整備)が刹那にすぎないという自覚ひとつで、その炎は、永遠につよく燃え盛るのだ!!」

別に燃え盛っていらんだろう。あの若者には。
でも速さときれいさを保つために乗るたびやっている整備は、刹那的な行為ではある。
女が一生に一度かのような真剣な目で毎朝毎朝尽きることなくメイクをくり返すように。

妄想もたくましく、前回写真を撮ったコンテナ埠頭。
ものの10分ほどでバカデカいタンカーが接岸されてしまうのが経済効率スゴす。神の御技でも愛の刹那でもなんでもない。









お台場を後にして、若洲のヘリポート横の一直線道。きれいに剪定された植木と、すぐ横に見下ろす海がずっと続く。これは気持ちいい。突端のベンチで一服して、若洲公園へ。

たち○ょんをして戻ったらBSMがかわいく見えたので親バカな一枚。









ヘリポートのベンチにもどる。今日は汗が出るほど暑くないし、海辺で蚊も襲ってこないので快適だ。本腰いれて読むこと4時間。ドストエフスキーの饒舌で感情的な登場人物たちも場が法廷となると、不思議と生き生きして見える。まるで誰もが有能な弁護士かのようだ。とくにイワン。この場では逆に言葉少なで、ギャップがちょっとかっこいいと思ってしまった。相変わらず読み進めるのは苦痛を伴う。海と波の音がまったく似合わん。

帰りに夢の島公園の前を通ると、なにやらよさげなズンドコ節が、疲れた脳と腹にひびいてくる。WORLD HAPPINESSという看板が。お、これが職場の人が行くと言っていたやつか。入ってみよう。当日券4500円。無理。というか、その人にもいくといってないからやめておこう。でも出演者をみると、興味ある人ばっかだなあ。BONNIE PINKは好きだったな。会場内の撮影はだめだろうけど、これは外だし、誰も見えてやしないので。






mirrorMan - フォーカスローテート2

2はソースです。
function moveSelItm(){
var eID, iID = cntSelItmId(), iLR = getLR(2);
if((event.keyCode==37)||(event.keyCode==39)){
if(/^txt0|^txt2/.test(event.srcElement.className)) return;
if(/itmRnmFrm/.test(event.srcElement.id)) return;
}
setEventRetFalse();
switch(event.keyCode){
case 37://←
case 39://→
iLR = iLR ? iLR = 0 : iLR = 2;
eID = getLR(1) + iID; break;
case 38://↑
if(iID) eID = getLR(0) + --iID;
else if(!iLR){
eID = getLR(0) + lftPains.Count;
iID = lftPains.Count;
}else{
eID = getLR(0) + rhtPains.Count;
iID = rhtPains.Count;
} break;
case 40://↓
if(iID) eID = getLR(0) + ++iID;
else{
eID = getLR(0) + ++iID;
if(!document.all(eID)) return;
}
}
if(document.all(eID)){
cntSelItmId(iID);
selItmLR.innerText = iLR;
if(document.all(eID).firstChild.id =="itmRnmFrm")
txtBoxFocus(document.all(eID).firstChild);
else{
selItm(document.all(eID));
keyDowns.innerText ="";
}
}else if(iID > 0){
switch(event.keyCode){
case 37://←
case 39://→
cntSelItmId(iID -1); break;
case 40://↓
cntSelItmId(0);
}
return moveSelItm();
}
}

方向キーが押されるたびに呼び出されるfunctionです。
cntSelItmId()は、フォーカスのあるアイテムのインデックス番号を返します。番号は上から順に0,1,2です。
押されたキーが←か→であれば、テキストボックスが表示中かどうかをチェックして処理を行わずに返します。
setEventRetFalse()はevent.returnValue = false;をしています。たとえばウインドウにスクロールバーが表示されてい場合に、IEの方向キーでの画面スクロール動作が同時に行われてしまうのをオフにしています。
その次のswitch文はフォーカス移動先のインデックス番号を求める処理です。方向キーでは一度に一つしかフォーカスは移動しないので、インクリメントかデクリメントのみですね。
lftPains、rhtPainsの自前オブジェクトは、画面更新時にそれぞれのペインのファイル/フォルダのオブジェクトを格納していて、それらの数のCountプロパティも追加しています。このCountプロパティ値で、左右ペインを移動したときに一番下のファイルにフォーカスを移るようにしています。

そして、求めたeIDは見てのとおりタグのid属性値というわけです。その要素が存在すればそちらへ、なければ再帰的に呼びなおすことでフォーカスローテートさせています。最初に考えていたよりコンパクトにできたので、これもお気に入りロジックです。






mirrorMan - フォーカスローテート

IEはブラウザです。フォーカスはフォーム部品のみで、動かすのもTABキーです。
しかしフォーカスを方向キーで動かせないとファイラとはいえません。

フォーカスは1_名無しフォルダにあり、1_名無し.txtは名前変更中です。
この時点でエクスプローラではあり得ない状態です。エクスプローラでは名前変更中に↑↓キーを押してもカーソルが移動するだけですが、mirrorManではフォーカスが移るようにしています。名前変更中に他のファイルやフォルダの名前をコピーしたいときと、↑↓キーでカーソルを動かそうとするときとで、どちらがよくありますか?



↓キーを押して、ファイル名の文字を全選択した状態にフォーカスが移りました。









ここで、←→キーを押すとカーソルが移動します。










SHIFT+←→キーで部分選択して、Ctrl+CしたりCtrl+Vしたり。

さらに↓キーを押すと、次の画像のように、フォーカスが下に移ります。







ここから→キーを押してみます。



右ペインの一番下のファイルにフォーカスが移動しました。
ここでCtrl+Cを押してコピーし、
→キーか、←キーのどちらかを押してみます。



←キーを押せば左ペインに移り、右ペインで→キーを押しても、ローテーションして左ペインに移ります。一番下で↓キー、一番上で↑キーでも同様にローテートします。
↓キーで名前変更状態のファイルに移ります。

さらにShift+←→キーで「名無し.txt」を範囲選択し、先ほどコピーしたファイル名をCtrl+Vで貼り付けます。









選択範囲に貼り付けられました。











名前変更を行うにはエクスプローラと同様にF2キーか、右クリックメニューから名前変更を選択します。名前変更状態でない場合にCtrl+CやCtrl+Vを押した場合は、エクスプローラと同様にコピーorペーストするので、mirrorManでコピーしたファイルをデスクトップやエクスプローラに貼り付けたり、逆にエクスプローラでコピーしたファイルをmirrorManに貼り付けたりできます。
ただ、ドラッグドロップで他のウインドウへ運ぶのは未実装で、IEの機能のままです。たとえばエクセル画面にドラッグドロップしたりすると、HTMLで貼り付けられちゃったりしてしまいます。


Googleマップストリートビュー!

すごすぎる。
gstreetv.jpg
お気入りの北の丸公園入り口。

っか、
自分の家のベランダ丸見えだし、
学生時代のアパート、まだ変わらずあったし、
職場のコンビニ前は顔知ってる人が写ってるっぽいし。

荒川CR見れんし!
googleの人、ヘルメットにカメラのせてサイクリングロード撮ってくれ!



mirrorMan - ZIP圧縮解凍












右クリックメニューからZIP圧縮を選択します。















緑色でmirrorMan.zip圧縮フォルダが作成されました。非同期処理なので、表示されない場合は画面を更新してください。



中を開いて参照することも可能です。もう一方のペインから圧縮フォルダ内に追加コピーすることもできますが、非可視の怪しげなシステムファイルができるケースもあり、個人情報を含めずに人に渡したい場合は、しない方がいいかもしれません。











続いてソースの抜粋です。

<script type="text/javascript" defer src="./js/jquery.contextmenu.r2.js"></script>
コンテキストメニューのjQueryプラグインを読み込みます。

<div class="contextMenu" id="conMenuLftItms">
<ul>
<li id="verbZipTo">ZIP圧縮 </li>
<li id="verbZipfrom">ZIP解凍 </li>
</ul>
</div>
コンテキストメニューに表示する要素を作成します。

function initContextMenu(){
$('#rhtClkLftItmsAra').contextMenu('conMenuLftItms',{
bindings:{
'verbZipTo' : function(t){ invokeVerbZip() },
'verbZipfrom': function(t){ invokeVerbZip('extract') }
}
}
選択された時の動作を起動時に読み込ませます。

function invokeVerbZip(p){
if(!selItmObj) return;
var intLR = getLR(4);
if(p =="extract")
ssh.NameSpace(getAdrBar(intLR)).CopyHere(selItmObj.GetFolder.Items());
else{
cntSelItmId(0);
selItmObj.InvokeVerbEx("copy");
var zt = ["Compressed (zipped) Folder.ZFSendToTarget", //XP
"圧縮 (zip 形式) フォルダ.ZFSendToTarget"]; //Vista
for(var i in zt){
var tgt = ssh.NameSpace(wsh.SpecialFolders("SendTo")).ParseName(zt[i]);
if(tgt){ tgt.InvokeVerbEx("paste");break}
}
}
}
selItmObjは現在フォーカスされているファイル/フォルダ名からShell.ApplicationでNameSpace(fol).ParseName(item)したものを格納しています。フォーカスが外れるとnullにしているので、右クリック時に選択されているファイル/フォルダがあるかどうかのチェックにしています。
解凍が選択された場合、selItmObjのフォルダオブジェクトのItems()をCopyHereしてやると解凍されます。

そういうことのようです。
解凍さえしてくれれば僕は満足です。

圧縮が選択された場合、エクスプローラの右クリックメニューをシミュレートしてくれるInvokeVerbEx("copy")メソッドを使用してselItmObjをクリップボードに送ります。これでエクスプローラ上でファイル/フォルダをコピーしたのと同等の状態になります。
そして、同じくエクスプローラの右クリックメニュー「送る」の特殊フォルダにある特殊ファイルに対し、また同じく、エクスプローラの右クリックメニュー「貼り付け」で圧縮されます。

そういうことのようです。
圧縮さえしてくれれば僕は満足です。

ちなみに、XPとVistaでファイル名が変わってしまっているので、こうなっています。
いえいえ無事動作して僕は満足です。


mirrorMan - コンボボックス風フォーム3

ソースの追加です。
selectタグをinput type=textに切り替える場合、表示文字列であるselectedIndex.lengthからテキストボックスのsizeを求めていたのですが、JScriptは内部文字コードをUNICODEで保持しているので、日本語2byte文字も1文字とカウントされます。このためフォルダ名に日本語が多く含まれると幅が足りなくなります。
そこでbyte長を返すようにしました。
RPthTxtBox.size = (new String(elm.value)).length;
を変更して、
RPthTxtBox.size = bLen(elm.value);
bLen()は、
function bLen(s){
var l = s.length, b = l;
function isWide(c){ return(0x80 <= c &&(c <= 0xff60 || 0xffa0 <= c)) }
for(i=0; i<l; i++) if(isWide(s.charCodeAt(i))) b++;
return(b);
}
です。



while(aho.atEndofStream)

笹部 政宏
笹部 政宏
mail




フリーソフツ
Category
はてブ
Monthly Archive
New Entry
New Comment
New Trackback
RSS
Copyright © Kittens flewby me All Rights Reserved.

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。