hirax.net::inside out::2008年12月

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2008年11月 を読む << 2008年12月 を読む >> 2009年1月 を読む

2008-12-01[n年前へ]

「Windows操作を再現するPerlスクリプト」を自動で作る"Win32GuiTest.exe" 

 PerlでWindowsのGui操作を記述することができるライブラリ Win32::GuiTest を、ppmからインストールするのではなくてWin32-GuiTest-1.56.tar.gzとしてダウンロードしてみると、"Win32-GuiTest Recorder"というwindows アプリケーションが付属していることに気づきました。

 "Win32-GuiTest Recorder"が行う動作を「ひとこと」で言ってしまえば、「マウスイベントとキーボードイベントをフックし、得られたマウス操作やキーボード操作をPerlのソースコードとして保存してくれる」というものです。たとえば、「( "Win32-GuiTest Recorder" の)"Record"ボタンを押し、適当にキーボードとマウス作業をしてから、"Stop"ボタンを押す」と、こういったPerlソースコードが自動作成されます。

#!/usr/bin/perl
use Win32::GuiTest qw/:ALL/;
$Win32::GuiTest::debug = 0;

MouseMoveAbsPix(303, 484);
SendMouse('{LEFTCLICK}');
SendKeys('{ENT}test{ENT}');
SendRawKey(VK_LCONTROL, 
  KEYEVENTF_EXTENDEDKEY);
SendKeys('s');
SendRawKey(VK_LCONTROL, 
  KEYEVENTF_EXTENDEDKEY | 
  KEYEVENTF_KEYUP);
MouseMoveAbsPix(169, 484);
SendMouse('{LEFTCLICK}');
SendKeys('{BAC}{ENT}');
SendRawKey(VK_LCONTROL, 
  KEYEVENTF_EXTENDEDKEY);
SendKeys('s');
SendRawKey(VK_LCONTROL, 
  KEYEVENTF_EXTENDEDKEY | 
  KEYEVENTF_KEYUP);
 

ソースを眺めてみれば、結局、Windows操作を、MouseMoveAbsPix と SendMouse と SendKeys と SendRawKey として記録するだけになります。しかし、Windows上の操作を一回するだけで、スクリプトが自動生成されるというのは、とても便利です。しかも、マウスイベントとキーボードイベントだけを記録するだけでなくて、起動時に表示されるダイアログで"Windows Hint"オプションを付けておけば、「操作を行ったWindowの名前やクラス」を(ソースコード内にコメントとして)記録しておいてくれるのです。これは、後からfindWindowなどを使った処理に変える際に非常に便利です。Windowのクラスや名前を自動で記録しておいてもらえると、たとえば、(画面サイズが異なる他の人のPCで動くように)後でPerlスクリプトを修正したりする作業が実に簡単になります。

 単純作業をスクリプトで書く場合には、ソースコードをゼロから書き始めるよりは、叩き台・スケルトンからスタートする方が「とっつきやすい」ものです。もちろん、「とっつきやすい」コースが最終的に楽なコースかどうかは場合によりけりだと思いますが、いじり始める叩き台が自動的に作ってくれるツールというのは、とても便利なものだと思います。

2008-12-02[n年前へ]

"Win32GuiTest.exe"で「Windows操作を再現するRubyスクリプト」を自動で作る 

 PerlでWindowsのGui操作を記述することができるライブラリ Win32::GuiTest を Ruby に移植した Win32GuiTest クラスをバージョンアップし win32GuiTest.rb として、ここに置きました)。変更点の一つめは、"pushButton" ""pushChildButton" "sendMessage" "postMessage" "getTopWindow" といった関数を増やしたことです。

 そして、もう一つが「マウスイベントとキーボードイベントをフックし、得られたマウス操作やキーボード操作を Perlのソースコードとして保存してくれる」"Win32-GuiTest Recorder"(ここに Recorder.lzh としてコピーを置いておきます)が出力したPerlのソースコードをRubyスクリプトに変更する処理を、クラスメソッドとして実装したことです。たとえば、

require 'win32GuiTest'
Win32GuiTest.convertPerlScript("pl.pl")
といったコードを書けば、"Win32-GuiTest Recorder"が出力したPerlスクリプト"pl.pl"をもとに、Rubyスクリプトが出力されます。(たとえば、pl.plを変換した結果がpl2rb.rbになります)。

 これで、PerlユーザだけでなくRubyユーザも(とはいえ、きっとPerlを使うことができる人はRubyも使うことができるだろうし、Rubyを使うことができる人はPerlも使えるだろう・・・と思っているのですが)、"Win32-GuiTest Recorder"を使ったWindows 操作のスクリプト自動生成のありがたみを味わえる、ということになります。

 ちなみに、"Win32-GuiTest Recorder"の設定は、ダイアログのチェックボタンを下に示したスクリーンショットのように(とりあえずは)ユーザが処理した待ち時間やウィンドー情報を保持しておくのと、後で便利でお勧めです。

"Win32GuiTest.exe"で自動作成したRubyスクリプト実行動画 

 "Win32GuiTest.exe"で「Windows操作を再現するRubyスクリプト」を自動で作るの処理例、つまり、"Win32GuiTest.exe"で自動作成したPerlスクリプトをWin32GuiTest by RubyでRubyスクリプトに変換し、そのRubyスクリプトを走らせてみた時の動作画面を下に動画として貼り付けておきます。

 まずは、下に貼り付けた動画がpl2rb.rb(変換前のPerlスクリプトはpl.plになります)の実行画面になります。行った作業はテキストを入力して、何回かコピー&ペーストして、その後に削除する、というものです。

 そしてこちらがoutput_revised.rb (変換前のPerlスクリプトはoutput.rbです)の実行画面です。行った作業は、日本語入力とアルファベット入力を自動で行ったものです(ちなみに、"Win32GuiTest.exe"は、私の環境では、日本語変換モード切り替えのキーコンビネーションをきちんと記録してくれなかったので、Rubyコードの方に修正を入れてあります)。



2008-12-03[n年前へ]

ハードウェア要らず?の遠隔リモコン制御 

 「汎用赤外線リモコンI/Fが使えないエアコンを外出先からオン・オフするにはどうしたらいいか?」ということが話題になっていました

 使える材料として「遠隔操作できるPC」がある、ということなので、「(新たに追加する)ハードウェア要らず?の遠隔リモコン制御」を私も考えてみました。それは「CDトレイをソフト制御してエアコンのリモコンのオン・オフをする」という、実に原始的メカニカルな「アイデア」&「実装」です。

 思いついたらやってみよう!というわけで、ソフトウェアを仕立て、万力でエアコンのリモコンを固定して、hirax.netが稼働しているサーバのCDドライブを外に引っ張り出し、実際に検証してみた結果が下に貼り付けた動画です。ケータイで撮影した動画ではわかりづらいかもしれませんが、CDトレイの角でリモコンのボタンがきちんと押されて、エアコンがピピッと鳴り、そしてエアコンからの送風が始まりました。

 ちなみに、書いたコードはwin32GuiTest.rbを使ったので、こんな具合になります。「書いた」というほどのものでは、ないことが丸わかり…です。

require 'win32GuiTest'
sleep 5
gui=Win32GuiTest.new
gui.cdAudioDoorOpen
 動作としては、CDトレイが開き、リモコンのボタンを押し、何かにぶつかったことをCDドライブが検知し、CDドライブのトレイが(勝手に)自動で閉まる・・・という具合です。こういう動作をするスクリプトを外出先からPCを起動させる時に動かせば、あるいは、常時動いているhttpサーバからでも呼んでやれば、遠隔リモコン動作システムのできあがり、ということになります。

 というわけで、今日作ってみたガラクタは「ハードウェア要らず?の遠隔リモコン制御システム」です。

Remotish






2008-12-04[n年前へ]

ぼくらはどういう状態にいたいのだろう? 

 Rubyのまつもと氏「エンジニアに安住の地がなくなってきている」と警鐘という記事を読む。

 情報の格差というものがある。それは解消すべきともいわれるが、モノが高いところにあれば、位置エネルギーが発生し、電気を起こしたりすることができる。情報の場合も、上の方やまんなか辺りにいれば、位置の差でエネルギーを取り出せる

まつもとゆきひろ

 この言葉を読むと、以前「競馬」と「資本主義」で書いた、(AERA Mook Special 「21世紀を読む」の中で岩井克人が書いていた)「イデオロギーとしての資本主義は、”見えざる手により調整される自己完結したシステム”だが、現実の資本主義は ”(場所・価格・情報といった)違いを利用して利潤を生むシステム”だ」といった言葉を思い出す。

 ”違い・差”があって初めて、現在(現実)の資本主義を回すエネルギーは生まれているのだと思っている。いや、現在どころか、はるかな昔からそうだったに違いないと信じている。そして、この事実は技術者の志向と実は相反することが多いのではないか、とも思うことがある。

 「PCを自由自在に使うことができる人」がいたとする。その人が「技術的な面で心地よく理解しあえる人」を周囲に求めようとしたならば、つまり周囲と自分との間の技術的な”違い・差”="境界"を小さくしたいと願うなら、多くの場合、”利益”を生むことはできないのではないだろうか。「あなたにできること」は「相手もできたりする」ということは、つまり、境界がないのだから、そうそう利益が生まれるわけもない。

 しかし、「PCを自由自在に使うことができる人」が、「PCという言葉もよく知らないし、そんな代物を使うこともできない人」たちの「間」に立つのなら、そこから「利益」を生むことは比較的容易だろう。

 ということは、「技術的な満足」と「大きな利益」はなかなか両立しえない、ということになる。

「競馬」と「資本主義」

 ぼくらはどういう状態にいたいのだろう?位置エネルギー、ポテンシャルを高めたいのだろうか、それともエネルギー変換効率が良い場所にいたいだろうか。

 やりたいことと売れるというのは違うね。売れるってことはハリウッド映画みたいな、頭悪~い奴もわからなきゃいけないってことだぜ。

(西原理恵子との対談で)みうらじゅん ユリイカ 2006.07

 「技術的満足」と「大きな利益」は両立するのだろうか。そんなことができるのだろうか。・・・きっと、その答えは自分で探すしかないのだろう。

 そこまでをやりたいの。

西原理恵子@ユリイカ

LEGO Mindstorms NXT で作ったイメージ・スキャナ 

 「 LEGO Mindstorms NXTで作ったイメージ・スキャナ」が面白い。MATLAB/Simulink でLEGO Mindstorms NXTを操作し、「紙送り」と「先端をピンホール加工した光量センサ」をサーボモータで移動制御させ、Mindstormの光量センサから得られたデータに対して、「ピンホール光学系」のボケ補正のデコンボリューション補正処理をする、という仕組みになっている。

 そんな動作機構・実装方法を考えるのも楽しいが、それが動くさまを眺めてみるのも、やはり面白い。そして、さらに動作機構と「自分ならこう作ってみたい」と考えてみたりするのが、何より楽しい。


2008-12-05[n年前へ]

西岡常一 「木のいのち木のこころ 天」 

木のいのち木のこころ―天・地・人 (新潮文庫)」(あるいは「木のいのち木のこころ〈天〉」)は本当に貴重な必読書だと思う。斑鳩大工の西岡常一が語った言葉を塩野米松が書いたこの本には、本当に色々な形の、それでいて重い言葉が詰まっている。

 時代は科学第一になって、すべてが数字や学問で置き換えられました。教育もそれにしたがって、内容が変わりました。「個性」を大事にする時代になったといいますな。
 しかし、私たち職人から見ましたら、みんな規格にはまった同じものの中で暮らしているようにしか見えませんのや。

 近くの図書館の蔵書にこの本が入っていたならば、迷わず借りて読んでみるといいと思う。とても高い密度の真理が、きっとこの本には詰まっている、と思う。そして、折に触れてこの本に書かれている「たくさんのこと」を何度も何度も読み返したい、と思ったなら自分のものとして買ってみると良いと思う。

 木そのものが精密やないんですから精密機械は無駄ですな。そのとき精密に削っても次の日には狂っていますやろ。 

 少なくとも、技術者になりたいと思っている人は、けれどこれまで読んだことがなかったというような人は、読んでみるといいと思う。絶対に、そう思う。

受動歩行メカのネガティブ・フィードバック構造 

 動力を持つわけでもなく、何かのプログラムで動くわけでもなく、ただ坂道に置くだけで、トコトコと歩いていく受動歩行ロボットを見た。機械仕掛けというほど複雑でもなく、けれど驚くほど自然に歩くその物体に、不思議なくらい興味をかき立てられた。

 さらに、受動歩行ロボットの歩行動作自体に、ネガティブ・フィードバック構造、つまりは歩行動作が不安定になりかけると、それを安定に直すような仕組みが内包されているという話を聞いた。その話はとても面白くて、メモを必死に取りながら色々なことを考えてしまった。

 たとえば、義足を作るときにも、こういったメカニカルに安定歩行を実現するシステム(バランス)が考えて設計がされているのだろうか。私たちの体自体の「バランス」は一体どのようになっているのだろうか。


2008-12-06[n年前へ]

格安ロボットアームで遠隔リモコン制御 

 「ハードウェア要らず?の遠隔リモコン制御」のポリシーは、「リモコンにハードウェア改造をしない」「コストをできる限りかけない」というポリシーのもとにない知恵を絞って作成してみました。その結果、実装も見た目もが実に「行き当たりばったり感」に満ちてしまい、遠隔操作システムというよりピタゴラスイッチのようなものになってしまいました。

 そこで、「リモコンにハードウェア改造をしない」という前回と同じ方針のもとに、けれど、「コストをできる限りかけない」という「縛り」部分を少しゆるめて、格安ロボットアーム「MR-999 」と「シリアル接続I/Oボード:RBIO-2U」を使いエアコンのリモコン遠隔操作をすることができるか、ロボットアームの先っぽで、リモコンの電源オン・オフを押すことができるか、という検証実験に挑戦してみました。

 RBIO-2U (USB-シリアル通信-リレー)I/Fユニットを使うと、シリアル通信経由で命令コマンドを送信するだけで、簡単に、100ms単位でロボットアーム MR-999 の各関節や、可動部を駆動制御することができます。・・・で、挑戦してみた結果、リモコンのスイッチを押すことはできたのですが、残念なことに、(関節モータの遊び量が多いことと、いつの間にか動かないモーターが増えてしまい)何度も動作させることができませんでした。

 そこで、検証実験中のようすを撮影したものを貼り付けておきます。しかし、この写真を見ても、「見た目」もどうも今ひとつ「原始的」ですし、「安っぽさ」をぬぐい去ることが全くできていないような気がします。技術のぎ「ギ」の字も感じない割に、ローテク感だけは満ちているように思えるところが実に哀しいところです。

ロボットアームでリモコンを押すロボットアームでリモコンを押す






2008-12-07[n年前へ]

「フルデジタルスピーカー記事」を整理する 

 少し前に、「フルデジタル・スピーカー」「フルデジタル・スピーカーを利用した音声出力の指向性制御」といった記事があった。少し内容がわかりにくく感じたので、「フルデジタルスピーカー記事」で書かれていた内容を、(参考文献1,2と技術説明員に質問して内容をもとに、「どういった点についてわかりにくい」と感じたのかを、技術内容を理解するために(自分なりに)整理してみることにした。

 このフルデジタル・スピーカー・システムを単純化すると、「"均等な重み付けの"複数ビットを出力するΣΔ変調器(複数レベル出力であるために、1bit ΔΣ変調(ΣΔ変調)よりは低い周波数で駆動しても同等の表現力を持つ)」→「(後段の複数スピーカーや複数ボイスコイル間の出力差がある場合のために)各ビットを複数スピーカーに(時間的に)均等にばらまくように(時間的にシャッフルするように)繋ぐセレクタ回路」→「(高効率の)D級アンプ」→「(基本的には均等な出力を想定した)複数スピーカー/もしくは複数ボイスコイルの1つのスピーカー」という構成であるように見える。
 ちなみに、ΔΣ変調器の後に入れたくなるだろうローパス・フィルター(LPF)は省略したシステムになっている。
 また、ΔΣ変調の「複数bit出力」はその複数bit間に「重みの差」はないので(そうでないと後段のシャッフリング回路を動作させることができない)、たとえば4bitだからといって、16段階の出力レベルを持つというわけではなく、これは単に5段階を意味することになる。

 わかりにくく感じる理由をまず先に書いていくと、記事中の「フルデジタル・スピーカー」というものが実際には「複数の構成(設定)」を持つのに対し、それをあたかも1つのシステム(構成・設定)のことを書いた記事であるかのように読んでしまったことである。「(こういうシステムでは)こういうメリットがある」「(その一方、また少し使用設定が異なるシステムでは)このようなメリットもある」ということが書いてあるはずの説明記事を、あたかも一つのシステムが実現する機能・特性であるかのように読んでしまったからであるように思う。

 たとえば、最終段のスピーカーシステムには、

  • 複数スピーカーによるスピーカー・アレイを使う場合
  • 複数ボイス・コイルを組み込んだ1個のスピーカーを使う場合
という複数の異なるシステムがあって、できること・できないこと/メリット・デメリットは当然それぞれ異なってくるだろう。それを、一つのものと思いながら読んでしまうと、一体どのようなものなのかという「イメージ」が全く湧かなくなってしまう。

 また

  • スピーカー(もしくはボイスコイル)の数
により、たとえば
  • 必要となるΔΣ変調器の駆動周波数
などは変わってくるだろうし、複数スピーカーを用いるシステムにおいては、
  • 複数ピット・最終出力間のシャッフリングを行うか否か
は指向性を持たす機能を実現できるか否かに関わってくるように見える。複数ボイス・コイルを使うシステムの場合には、コイルの配置・巻き方も変換効率・信号特性に大きな影響を与えるに違いない。 コイル
 こういった、各部分の条件を整理しないで記事を読んでいたために、記事内容を理解することができなかったように感じた。

 ということは、こういった各種条件を表か何かに描き整理し、「ΔΣ変調器」「LPF」「D級アンプ」「スピーカー」を組み合わせたような従来システムと比較してみれば、このフルデジタル・スピーカー・システム「ズ」が一体どのようなものであるかを納得することができそうだ。

複数OSをシームレスに使うことができるVMware「ユニティ機能」がWindows上でも動く 

 Windows上で動かしている VMware にアップデートをかけると、「ユニティ(Unity)機能」を使うことができるようになっていた。Unity機能とは、仮想PC上で動かしているシステムのウィンドーをホスト側の画面にシームレスに表示する機能である。これまでも、OS X上で動くVMware Fusionや、(やはりOS X上で動く仮想PCソフトウェアである)Parallelsではこういった機能がサポートされていたが、Windowsでも「ホストPCと仮想PCのウィンドーをシームレスに使うことができる環境」ができた。

 たとえば、下の画像は一見よくあるWindows画面だが、実際には(ホストOSである)Windows Vista上で動いているウィンドーとVMware上で動かしているWindows 2000が表示しているウィンドーが混在している。

 わかりやすいように(下の画像のように)色分けしてみると、水色部分がWindows Vistaのウィンドーで、オレンジ色部分がWindows 2000 のウィンドーである。もちろん、下のタスクバーの中でもWindows VistaとWindows 2000が共存していることがわかる。

 現状ではMicrosoft WindowsとLinux系のウィンドーシステムで動くようなので、Windows上でVMwareを使って作業するような人であれば、重宝する状況が多いに違いない。

 しかし、今のところ、私の環境では(ユニティ機能を使うと)仮想PC側のWindowでは「Ctrl+"hoge"」キーを使うことができなくなる。CtrlとCapsLKを入れ替えていることが原因なのかもしれないが、これでは使いたいけれども使えない・・・というのが残念なところだ。

UnityUnity






2008-12-08[n年前へ]

「癖のある木」と「不揃いの木」 

 それにしても、西岡常一と、(西岡常一に唯一師事した)小川三夫の言葉にはもっと早く出会いたかった、と思う。彼らの話をもとに作った本は、本棚からすぐに引き出せる場所に置いておこうと決めた。

 どのページを開いても、あぁそうなのかと、とても厳しくも的確に響くことばかりだ。

 人間というやつは、褒められると、こんどは褒められたくて仕事をするようになります。・・・ところがそういうふうにして造られた建物にはろくなものがないんです。

西岡常一 「木のいのち木のこころ―天
 だいたい私もそうかもしれませんが、職人というのは頑固ですわ。人のいうことを簡単に聞きません。・・・

西岡常一 「木のいのち木のこころ―天
 俺は器用な子はだめだっていうんだ。器用な子は頭の中も起用なんだから。頭の中が器用というのは怖いで。・・・そういう生き方をしてしまうと自分のためにはならないんだ。

 器用な人というのはやはり簡単にしかものを見ない。見られないんだ。すぐわかった気になるからな。それは自分のために損や。

小川三夫 「不揃いの木を組む

2008-12-09[n年前へ]

「卓球ロボットvs.卓球人間」スゴイのはどっちだ!? 

 ロボットアームを作ろう!?と色々探しているうちに、こんな卓球ロボットを見つけた。アームの先に透明板とカメラを備えた"ROXY"は、人間相手に卓球をプレーすることができるロボットだ。

 「卓球ロボット vs. 人間」の実演動画(動画1,動画2)を見ているうちに、人間を相手にして卓球をプレーすることが可能な卓球ロボットもスゴイけれど、卓球ロボットとラリーを続けることができる卓球人間の方もスゴイ・・・と気づかされた。卓球ロボットの守備範囲に、実に見事にボールを上手に返し続けている。卓球ロボットが人間とラリーすることができるためには、卓球ロボットと同じように人間の方だって卓球テクニックがなければいけないわけである。

 もしも、この実演者がロボットアームの開発者でもあったりしたならば、もしそうだったりするならば、得意技術分野中には、ぜひとも「卓球」という項目を書き入れて欲しい。自分で作り上げたロボットを相手にラリーをし続けることができる「技術力」と「卓球力」・・・何だか面白い。

2008-12-10[n年前へ]

Office付属OCR機能で「板書画像を一発でPPTファイルにするRubyスクリプト」を作る 

 「ホワイトボード前で打ち合わせをして、打ち合わせ終了時にホワイトボードに書いた板書をプリントアウトして、後でパワーポイント資料を作り直す」といった作業をしたことがある人は多いと思います。あるいは、(印刷機能を持ったホワイトボードは高いですから)「ホワイトボードに板書した内容をデジカメやケータイで撮影しておいて、撮影画像をプリントアウトした後にパワーポイント資料を作ったり」、「撮影画像をモニタ上で眺めながらパワーポイントを作ったりした」ことがある人も多いのではないでしょうか。

 そんな人、そんな時のために、Office 2003以降に着いてくる"Microsoft Office Document Imaging"のOCR機能を使って(デフォルト設定ではインストールされないかもしれません)、「板書画像を一発でPPTファイルにするRubyスクリプト」を作ってみました。作ったもの一式をとりあえずここに置いておきます

 たとえばこんな手書きの板書があったら

ruby imgOCRppt.rb rakugaki.jpg
 といったようにimgOCRppr.rbスクリプトを呼ぶと、rakugaki.pptというファイルができあがります。この例では私のラクガキ手書き文字が汚いせいで、ずいぶんと文字化けしていますが、達筆な人が描いた板書なら、きちんとしたパワーポイント(PPT)ファイルが(もしかしたら)生成されるかもしれません。

 スクリプトの内容は、

require "win32GuiTest"

img=ARGV[0]
Win32GuiTest.img2PPTbyOCR( img.sub(/\.jpg$/i,'.ppt'),
         Win32GuiTest.bmp2texts(img), 
         img.sub(/\..?$/i,'') )
とい風で、"img2PPTbyOCR"と"bmp2texts"という2つのメソッドからできています。

 ちなみに、画像からテキストを抽出するOCR部分("bmp2texts")のRubyソースは、次のようになっています。

def Win32GuiTest.bmp2texts(file)
  doc=WIN32OLE.new('MODI.Document')
  doc.Create(file)
  doc.OCR(17, false, false) # Japanese
  layout=doc.Images(0).Layout
  str=doc.Images(0).layout.Text
  doc.Close
  return str
end
 そして、この後、 Win32GuiTest.img2PPTbyOCR で画像ファイル名をスライドのタイトルにして、画像ファイルからOCRで抽出されたテキストをスライドのコンテンツ・テキストとして入力・保存する、という内容になっています。

2008-12-11[n年前へ]

「板書画像をベクタライズしPPTファイルにするRubyスクリプト」を作る 

Office付属OCR機能で「板書画像を一発でPPTファイルにするRubyスクリプト」を作る」で、板書画像を文字認識した上で、パワーポイントのファイルに変換するRubyスクリプトを作ってみたわけですが、あまりの悪筆で板書文字をろくに認識してくれなかったりすることも多いと思います。また、板書にイラスト・説明図を頻繁に描くような人も、おそらく少なからずいると思います。

 そんな時、「板書画像を自動でベクタライズした上で、パワーポイント上でイラストを再編集することができたら便利だろう」というわけで、「板書画像をベクタライズしPPTファイルにするRubyスクリプト」を作ってみました。その例がjpg2ppt.rbです。

require "win32GuiTest"
jpg=ARGV[0]
Win32GuiTest.img2PPT(
   jpg.sub(/\.jpg$/i,'.ppt'),
   Win32GuiTest.jpg2wmf(jpg),
   true)
という具合でいつものように、処理本体自体は win32GuiTest に(とりあえず)入れてあります。

 スクリプトを置いたディレクトリに"apps"という名前のサブディレクトリを作り 、その中にここからダウンロードしたPotraceのバイナリ・ライブラリ類を置いて、さらに、JPG2BMP に入っているバイナリ・ライブラリ類をを置けば準備完了です(win32GuiTestの末尾当たりを見れば、その汚い実装や変更方法がわかると思います)。後は、

ruby jpg2ppt.rb rakugakiv.jpg
とスクリプトを呼べば、こんんなパワーポイントファイルができあがります

 PPT(パワーポイント)ファイルに貼り付けられた画像はベタライズされた上で、Windows Meta File形式でスライド上に貼り付けられているので、グループ化を解除していけば、後でベクター部品に分解された板書の再編集が可能、ということになります。

2008-12-12[n年前へ]

「サングラス」と「サーモグラフィ」 

 温度分布を映し出す「サーモグラフィ/サーモカメラ」を作って、色んなものを撮影してみたいとよく思います。電子機器の発熱分布を見てみたいとも思いますし、ふだん眺めている景色を温度分布として眺めてみたいとも思います。あるいは、目の前にいる人の顔を温度分布として眺めてみたいなと、ふと思ったりすることがあります。

 赤面した人の顔をサーモカメラで眺めてみたら、自分の目で眺めるのと同じように、やはり熱を発しているように見えるのだろうかとか、そんなことをふと考えたりします。

 サーモカメラが映し出す人の顔を眺めていると、メガネをかけた人たちがみなサングラスをかけているように見えることに気がつかされました。サーモカメラが温度推定に用いる遠赤外線をプラスチックやガラスはほとんど透過させないので、サーモカメラでメガネをかけた人の顔を撮影すると、メガネの部部分がサングラスさながらに暗く映るのです。だから、メガネをかけた人をサーモカメラで写すと、みなサングラスをかけているように見えます。

 もしも、メガネをかけて赤面した人をサーモカメラで撮影してみたら、サングラスを掛けた赤いタコのように見えるのかもしれません。温度分布を映し出す「サーモグラフィ/サーモカメラ」を作って、色んなものを撮影してみたいとよく思います。

サーモカメラサーモカメラ






2008-12-13[n年前へ]

「F1の変化」と「スポーツの定義」 

 本田技研工業が今シーズンを最後にF1世界選手権から撤退するというニュース、あるいは、F1がさらに使用リソース・技術を削減していくという記事を見て(F1 ルール変遷)、ふと、車両技術開発者やドライバーやメンテナーや、そんな多数の人からなるチームが競い合うF1というスポーツは、どういうスポーツなのだろう、と思った。そして、自動車レースの写真とともにスポーツ博物館の入り口に掲げられていた文章を思い出した。

 "What is Sport"と題されたその文章を前にして、「スポーツが私たちに与えてくれるものが何なのか」と、ずいぶんと考えさせられた記憶がある。ふと、そんなことを思い出した。

Despite the entry of sport into the marketplace, the older meanings of sport persist. It still thrills, provinding people with a sense of identity and community and a way to feel good about themselves. The nature and definition of sport continues to be redefined.


「F1」と「スポーツの定義」「F1」と「スポーツの定義」






2008-12-14[n年前へ]

「解析的考察」と「数値シミュレーション」と「村上春樹」 

 複雑な現象を考察するとき、その現象をよく眺めた上で、その現象を扱える範囲で「解析的に考察する」道と、「数値的にシミュレーションする」道があるように思う。解析的な考察は因果関係を明瞭に説明してくれるけれども、解析的考察をするために現象をあまりに単純化してしまうと、それは現実からずいぶん離れたものになってしまう。

 それでは、複雑な現象をそのままに観察したり、数値的なシミュレーションを行えば複雑な現象の向こうに、それを超える何かが見えてくるかというと、そういうわけでもないように思える。どんな「原因」がどんな「結果」を作り出すか、「結果」を生み出す「原因」は一体何かということは結局のところわからないことが多いように思う。数値シミュレーションという名の水晶玉を通して因果関係をおぼろげに語ってくれるけれど、それはやはり明瞭なものではない・・・のが普通であると思う。

 とはいえ、課題とされる「結果」を解決・改善するために、そういった数値シミュレーションは行われることが多いわけだから、つまりは、課題とされる「結果」を生み出す原因が示し、「課題を解決する対策」をしたいのだから、因果関係が明らかにならない・・・というのでは少し困ってしまう。

 数値シミュレーションプログラムを四六時中書いている人と雑談していると、村上春樹の話題になった。その人が語る村上春樹の魅力を聞いていた時、ふと、「河合隼雄の人生読本」の中で、河合隼雄が「ねじまき鳥クロニクル」を解説していた一節を思い出した。

 現代人は何事にも「原因」とか「理由」とかがあり、それを見いだすことによって、「解決」できると思い込みすぎている。理由が不可解なままで・・・

P.236 「河合隼雄の人生読本

 しかし、考えてみれば、複雑な現象が単純な因果関係で説明できるわけもないのである。それでも、そんな複雑極まりない現象・世界をコードで書き下ろして何かを見いだす作業をしている人に勧められた「ねねじまき鳥クロニクル」は、いつか読んでみようと思いつつもまだ読んでいない。

2008-12-15[n年前へ]

この世でいちばん大事な「カネ」の話 

 西原理恵子の「この世でいちばん大事な「カネ」の話」を読んだ。西原理恵子の叙情的なマンガを、「ぼくんち」「うつくしいのはら」を生んだモチーフ、そんなマンガの底にあるモチーフが訥々と語られている。

 文字が大きい本だから、あっという間に読めてしまうかもしれないけれど、読んでいる本をふと汚してしまったり、やっぱり一人部屋で読んでみたくなったりするかもしれないから、買ってみても良いかもしれない。

 才能なんて、だから天賦のものではなくて、ほとんどあとからもらったものだと思う。
 でも、そんなにも劣悪で、人生に対する諦めだけを教えられる環境に生まれても、なお、自分で自分の人生をつくろうとする子どもがいる。
 なぜ、その子に、そんなことができたんだと思う?
 「希望」を諦めてしまうことを、しなかったから。

2008-12-16[n年前へ]

「ピッチャーが踏み出す両足の間隔」と「人体のプロポーション」 

 野球のピッチャーが投球を行うとき、理想の足を踏み出す幅は「足のサイズを基準にして、およそ6足半の長さ」だという。ピッチングの教科書を見ると、そう書いてある。たとえば、足のサイズが25cmの人であれば、25×6.5=162.5cmほど足を踏み出して、ボールを投げるのが理想的なフォームということになる。

 この数字は「理想的な投球を行うためには、ピッチャーは自分の身長とほぼ同じ長さだけ、足を広げて投球を行わなければならない」ということを意味している。ダ・ヴィンチの人体の素描を思い起こせば、それはつまり、ピッチャーは両足を180°近くも開脚した状態でボールを投げるということだ

 180°近く足を開きながらボールを投げるわけないよなぁ・・・と思いつつ、ピッチャーがボールを投げているようすを見てみると、確かに両足を身長と同じくらい近く開いている。広げた両腕と同じくらいの長さに、両足を広げている。

 野球の練習のために、相撲の「股割り」を長時間続ける練習をするとも聞く。野球のピッチングは調べれば調べるほど面白い。

2008-12-17[n年前へ]

「速い球」と「遅い球」の境界は時速何kmか? 

 「野球の科学」を解説した本は多い。野球はとても人気があるスポーツであるし、野球に含まれている「力学から複雑な流体力学にわたる科学的事象」を単純化して解くことが比較的簡単にできるためか、野球を題材にした科学本が数多く出版されている。

 ワッツ&ベイヒル 「ベース「ボール」の科学―ボールから目を離すな (数理科学ライブラリ)」を読んでいて面白かったのが、「球速 vs. 打者がホームベースの何m 手前で球を見失うか」というグラフだった。下のラクガキはそれを描き写したもので、ピッチャーが球を投げたとき、バッターから見て球の移動速度が「(角速度)にして300°/s」を超えたとき「打者は球を見失う」として作成された計算結果(のグラフ)である。追尾可能な角速度が300°/sというのは、(テストに参加した)プロ野球選手の能力のほぼ2倍という値だというから、実際にはこのグラフに示されているものより遙かに遅い速度で(=ホームベースから遠い場所で)、バッターは球を見失ってしまうことになるだろう、と書かれている。つまりは、どんなバッターもボールの軌跡を眺め続けることはできないと書かれている。

 バッティングセンターに行ってみると、時速90kmくらいを境に「速い!」と感じてしまうが、このグラフを眺めてみると、ちょうど草野球レベルが時速90km辺りになるから、普通の草野球レベルを超える辺りのスピード球から「速い」と感じているようだ。つまり、私にとっては、「速い球」と「遅い球」の境界線は草野球レベルの時速90km辺りに引かれているようだ。野球好きな人、よく野球を楽しむ人たちの「速い球」と「遅い球」の境界線は一体時速何km辺りなのだろうか?

グラフ






2008-12-18[n年前へ]

「トンデモ計算」を生む原因 

 何かの現象の計算をし、最適解を得ようとしたときに、とんでもない結果が出てしまうことがある。とんでもない結果といっても、決して計算機がおかしいわけでなく、計算機を使う人間が「必要な条件・制限」を考えに入れていないために、とんでもない答えが出てくることがある。あるいは、計算結果の点においては「最高」の結果を与えるが、その点から少しでもズレてしまうと、とたんに不安定になる答えが出てきてしまったりする。

ワッツ&ベイヒル「ベース「ボール」の科学―ボールから目を離すな (数理科学ライブラリ)」を読んでいると、そんな失敗をしないためのアドバイスが書かれていた。

 科学的知識はわれわれの周りの世界に起こる出来事を説明し、多くの場合、物事のより良いやり方を予知するために用いられるが、それには問題意識と目標が十分に明確でなくてはならないのである。科学にとって興味のあるほとんどすべての問題は、互いに相反する要素を含むといってよい。

ワッツ&ベイヒル 「ベースボールの科学」
 互いに相反する要素の関係・効果を考えないと、トンデモな結果が出てしまう。それでは、相反する要素を見落とさないようにするにはどのようにしたら良いのだろう。

 現象を一つ一つ注意深く眺めていくしかないのだろうか。

ラクガキ






2008-12-19[n年前へ]

アップルとニュートンとワーズワース 

 今のApple、かつてのApple Computerの一番最初のロゴは右の中世風スケッチのようなものだった。木陰で人が本を読んでいて、その人の頭上には木が林檎を実らせている。そして、その林檎が地面に向かって落ちようとする瞬間を描いた絵がapple Computerのロゴだった。

 つまり、木陰で読書する人は万有引力の法則を見いだしたアイザック・ニュートンであり、ニュートンの目の前で林檎が地面に向かって落ちようとしている瞬間を描いた絵が、Apple Cmputerのロゴだった。自分たちの会社名の"Apple"を、世界を動かす力を見いだすきっかけになったという”伝説”の林檎になぞらえたわけだ。

 そして、このロゴの周囲にはこんな文章が刻んである。

NEWTON… "A MIND FOREVER VOYAGING THROUGH STRANGE SEAS OF THOUGHT…ALONE."
この文章は、イギリスの詩人ワーズワースの詩  THE PRELUDEからの引用だ。ニュートン像を思い浮かべながら、ワーズワースが綴ったこんな一節(のさらに一部)を抜き出したものになる。
And from my pillow, looking forth by light
Of moon or favouring stars, I could behold
The antechapel where the statue stood
Of Newton with his prism and silent face,
The marble index of a mind for ever
Voyaging through strange seas of Thought, alone.

 このApple Computerの一番最初のロゴは、古くさくて洗練されたデザインではないけれど、このロゴからは「世界を動かす力・それを生み出す力になる」という若い自信が感じられていい。地上に落下した林檎の30年後、つまり現在の世界を眺めてみると、なおさらにそう思う。

appleLogo






2008-12-20[n年前へ]

Tec-On!用のグリースモンキー・スクリプト 

 情報サイトを閲覧するとき、ユーザーIDとパスワードを忘れてしまって困ることが多い。毎回毎回ユーザーIDやパスワードの確認作業をするのがあまりに面倒になってきたので、今日は日経BP Tec-On! 閲覧用のグリース・モンキー・スクリプトを書いた(techon.js)。

// ==UserScript==
// @name Read Tech-On!
// @namespace http://www.hirax.net/
// @description Read Tech-On!
// @include http://techon.nikkeibp.co.jp/*
// ==/UserScript==
(function () {
  var dom_obj=document.getElementById('nocookie');
  var dom_obj_parent=dom_obj.parentNode;
  dom_obj_parent.removeChild(dom_obj);
})();

2008-12-21[n年前へ]

「すいかの匂い」の「解説文」 

 本の最後に付いている「解説」を読むと、その本を読んで感じたことが的確な言葉で書き表されていて、自分の思いを再確認することができたりする。あるいは、その本を読んだのに感じられなかったこと、読解力・想像力が足りなくて、自分で読んだだけでは気づかなかったことを教えられたり、する。

 江國香織「すいかの匂い (新潮文庫)」の解説文は、川上弘美が書いている。江國香織と川上弘美、どちらも魅力的な文章を書く。だから、江國香織の文章を、川上弘美の文章が解説する「すいかの匂い」はポケットの常連だ。

 江國さんにおいていちばんすばらしいのは、「どんな言葉をここにあてはめるか」ということに関する選択眼だと思う。
 江國香織の「すいかの匂い」を読んでみる。しばらくしてから、川上弘美が解説する「江國さんのひみつ」を読む。自分が感じたこと、けれど言葉になかなかできないことが、当たり前のように表現されていると、何だか少し気持ち良い。
 工芸品をつくる職人さんのような技だと思う。完成した作品はとてもなめらかなので、どんな技を使ったか、すぐにはわからない。わからないけれど、確かに技は使われている。わからないということが、何より、技を使ったしるしなのだ。

 すいかの匂いに出会うと、いつも江國香織を思い出す。そして、顔を上げてその匂いの先を眺めてしまう。

2008-12-22[n年前へ]

「○×する10の方法」と「できる人はやる」 

 本屋に行ってビジネス棚に目を走らせてみると、「○×するための10の方法」といった本が溢れている。ふと手に取ろうとした瞬間に、こんな言葉を思い出して、伸ばそうとした手をいつもポケットの中に戻してしまう。

He who can does.
He who cannot teaches.
(できる人はやる。できない人は教える)

バーナード・ショー

 これが他のジャンルの棚ならば、手を戻したりせずに本を持ち頁をめくる。けれど、目の前にあるのがビジネス棚だと何だか少し眺ようとする気持ちがどこかへ消えてしまう。本当にそんな素晴らしい方法があるのなら、きっと、その人自身がやっていることだろう。特に、ゼロ・サム・ゲーム的な事象の場合には、「○×するための10の方法」を書くくらいなら、誰にも言わずにその「10の方法」をするはずだ。

 だから、ちまたに溢れる「○×するための10の方法」が正しいかどうかは、その「○×」がゼロ・サム・ゲーム的要素を含むか否か、がひとつの目安になるように思う。

2008-12-23[n年前へ]

答えが見つからない「女性作家のコトバ探しミステリー」 

 角田光代の「酔って言いたい夜もある」は、魚喃キリコ・栗田有起・石田千・長島有里枝と「同じ皿の料理を食べ飲みながら」喋った内容を本にしたものだ。その中の第2章、角田光代が栗田有起と話している部分に、気になる箇所がある。

角田:絶対にこういうことは書きたくないということはありますか?
栗田:まだわからないんですよ。でも絶対に避けてるものはある。・・・角田さんは絶対にね、書かないことがあるんですよ。
角田:私は、川上弘美さんがすごい好きなんですけど、川上さんって、ドロドロしたことを絶対書かないなと思って、そのときにハッと気づいた。この作家はすごく慎重に書かないんだ!書かないことでなにかを言ってるんだ!って。
栗田:確か江國香織さんもインタビューで同じようなことをおっしゃってたんですよ。書きたくないものがあるって。あと丸谷才一さんのエッセイでも、その作者がなにを書かないかということも考えながら読まなきゃいけないって。

 ここで触れられている「江國香織が話したこと」を眺めてみたくて、ずっと探しているのだけれど、そのインタビュー記事を未だに見つけることができずにいる。「書きたくないものがある」という言葉を探す何か一種の「ミステリー」のような気分で、本棚をよく眺めたりする。図書館に行けば、(CD-ROM版の)大宅壮一文庫を検索できたりするのだけれど、それはアンチョコをいきなり見てしまうようで何だか味気なく、ただひたすら答えが書いてありそうな本を読みあさっている。

 「書きたくないものがある」というのに少し近い言葉だと、そして、角田光代と栗田有起が会って話した時期より前に栗田有起が目にした可能性があるものだと、後藤繁雄が柳美里・吉本ばなな・川上弘美・赤坂真理・山田詠美・中上紀・江国香織・松浦理英子という8人の女性作家にインタビューした「彼女たちは小説を書く」の中に、こんな会話がある。

後藤:(江國さんの小説って)大きな事件というのをつくらないでしょ。どうしてですかね?
江國:どうしてでしょうね。多分、単に私の書きたいことじゃないからでしょうね。
 この本は、雑誌連載を出版したものだけれど、雑誌が出たのも本が出たのも、栗田有起がデビューする前になるから、時期的にはおかしくはない。・・・けれど、何だかこの会話は、答えから遠くはないけれど近くもないという感じがする。

 ただ、「彼女たちは小説を書く」の中で、「書きたくないものがある」という言葉とかなり近い内容を山田詠美が語っている。

山田:私、自分が書きたいと思うことよりも、書きたくないことの基準を決めておくことの方がずっと大切だと思っているんで・・・それが矜持と言えば、矜持ですね。
後藤:書かない部分に厳密ですね。
山田:そうですね。書かない部分の方が重要ですね。

 栗田有起が喋った「江國香織のインタビュー」は、もしかしたらこの「(江國香織もインタビューイになった)インタビュー連載の中にある、山田詠美のインタビュー」なのだろうか。そうであってもおかしくもない、と考えつつも、何だかそれは「決めつけ」に過ぎないようにも思う。

 そんなわけで、「女性作家のコトバ探しミステリー」は未だ答えが見つからない。その分、足を棒にして、読む本だけは増えていく。

 だから、答えが見つからない方が、きっと楽しい。

Ubuntu と WindowsをタブレットPCでシームレスに使う 

 Windows Vista上で動くVmware Workstationの仮想PCにUbuntuを追加した。Vmware toolsをインストールし、/usr/bin/vmware-user を動作させた状態にすると、(ホストOSとゲストOSのウィンドーをシームレスに表示する)ユニティ機能も、ホスト・ゲスト間のテキストのコピー&ペーストも何の問題もなく動く。

 B5ミニノートのX61 Tabletでも、キータイプ主体の作業なら動作感も悪くない。タブレット用のペンも(Windows側で認識しているので)普通に使うことができる。そして、そう驚くことではないような気もするけれど、(コンバーチブルのタブレットPCの画面を回転させ)横長画面から縦長画面に変えると、その瞬間にUbuntu側もそれに連動し画面が調整され、何の違和感もなく使い続けることができる。

 ・・・残る課題は、使う人の側も無意識のうちに「頭」を切り替えて、"ls""dir"などをバイリンガルに使い分けることができるようにする、ということだけかもしれない。あまりにシームレスになると、意外に人の方がついていけなくなるかもしれない。

Ubuntu






2008-12-24[n年前へ]

「プリンタで偽造したナンバープレート」と「速度取り締まり機の撮影波長」 

 スラッシュドットで「レーザープリンタで光沢紙に車のナンバープレートを出力し、スピード違反取締りカメラを騙す」という記事を読んだ。この記事を読んでふと疑問に感じたのが、「プリンタで偽造したナンバープレート」をどの程度鮮明に「速度取り締まり機」で撮影することができるか、ということである。

 なぜかというと、レーザープリンタで使われるインク(トナー)は赤外光をほとんど吸収しないからである。カーボンブラックを使った黒いインクは赤外線を吸収するが、それ以外のマゼンタ・シアン・イエローといった色インクは赤外線をほとんどそのまま透過させてしまう。右下の図が、光の波長と透過率を示したグラフである(ディジタルハードコピー技術 P.119)。赤外線で眺めてみれば、カラーインクはほぼ透明に近いということがわかるだろう。

 一方、速度取り締まり機、オービスは赤外光で走る車を撮影する。つまり、カラーインクが光吸収しない波長領域で、ナンバープレートを見るのである。・・・ということは、もしもナンバープレートに描かれた「緑色の文字」をイエローとシアンのインクで描いたなら、それはオービスにとってみると「淡い色の文字」にしか見えそうにない。

 実際には暗い緑色を描くために黒インクも使われるだろう。しかし、もしも、イエローとシアンだけを使ってプリントしたなら、そのナンバープレートに描かれた文字は、オービスにはほとんど判別できない(透明)色になってしまいそうだ。人間が見ると、白地に緑色の(それほど不自然でない)ナンバープレートに見えるにも関わらず、である。

 一体、「プリンタで偽造したナンバープレート」は「速度取り締まり機」で眺めてみると、一体どのように見えるのだろうか。どのくらい違って見えるのだろうか。

 自分の目で見たものと他人の目が見るものが違うように、自分の目で見るものと機械が同じとは限らない。機械にはどんな風に見えるのか想像してみて、そして、検証してみることが大切なのだろう(参考リンク)。

ナンバープレートトナーの透過波長






2008-12-25[n年前へ]

サーバ構成の「お色直し」 

 ”Rails 3 = Merb 2” なんてニュースが流れる、2008年の年の終わりになりました。もう2年近く前になりますが、Rails入門書を買い、一番最初に作ってみたRailsアプリが画像処理アプリサーバ"Imagination You Make"(使い方)で、その後に作ったのが”画像ジェネレータ”のジェネレータ"Imagenerator"(使い方)です。それらを、今更ながら、他アプリと同じクラスタ・サーバに移行してみました。動作に不具合などありましたら、お知らせ頂ければ幸いです。

 なお、画像処理アプリサーバ"Imagination You Make"の方は、ログインすると、画像アップロード機能やフィルタリング時のカスタマイズ機能が幾分追加されるようになっています。

「写し鏡」を市電に乗って見に行こう 

向田邦子の青春―写真とエッセイで綴る姉の素顔 (文春文庫)
 いつか、鹿児島に行ってみようと思っている。市電「朝日通」から歩いて徒歩7分の場所にあるという「かごしま近代文学館」に行って向田邦子の常設展をゆっくり眺めてみたい、と思っている。鹿児島は確か九州の南の端にあったはずというくらいの知識しかないので、実際のところ、市電「朝日通」に行くにはどうしたらいいのか全然わからない。けれど、いつになるかわからないけれど、いつか行こうと思っている。たとえば右上の表紙のような写真を眺めてみたいからだ。

写真機のシャッターがおりるように、庭が急に闇になった。
 向田邦子 「かわうそ」(思い出トランプ

 写真というのは「写し鏡」に似ている。カメラで撮影した写真に写っているのは「被写体」のようでいて、実は撮影者が写っている。そして、その撮影者を動かしているのは「被写体」でもある。

 被写体が人ならば、被写体はカメラのレンズ見る。だから、写真に写った被写体の瞳にはカメラを構える撮影者が映る。それと同時に、写真には撮影者がカメラを通して眺めた被写体が写っている、被写体と撮影者の両方を、その両方の視点が重なり写っているのが、写真だと思う。シャッターを押すのが撮影者なら、シャッターを押させるものは被写体である。そして、焦点が鋭く合っている写真であれば、必ず、そんな写し鏡のような景色が写る。

だから、「かごしま近代文学館」に行って、そんな写真を実際に眺め、写真に写る瞳をできる限りの近くから眺めてみたいと思っている。

 「冬の運動会」の、加代の死のシーンの稽古をしながら考えた。―向田さんは、どうしていつも<蜘蛛膜下出血>なのだろう。描写も似ている。
 ―その人が倒れたのは、蜘蛛膜下出血が原因だったのではないか。そして向田さんは、その発作の瞬間を目撃したのではなかったか。
 久世光彦 「冬の女たち

 その瞳に写っている景色を、いつか、見てみようと思っている。

2008-12-26[n年前へ]

任意ファイル(場所)からコマンドプロンプトを出してみよう 

 スクリプトを使ってデータ処理等をする場合、「任意のフォルダからコマンドプロンプトを開いて」処理作業をすることが多いものです。「任意のフォルダからコマンドプロンプトを開く」のはWindows レジストリにキーを一個追加すれば良いだけですから、この「任意のフォルダを起点としたコマンドプロンプト」を使っている人も少なからずいることでしょう。

 ところで、そんな人たちの何割かは、「任意のフォルダを右クリックしてコマンドプロンプトを出すのではなく、任意のファイルを右クリックして、そのファイルがいるフォルダを起点としたコマンドプロンプトを出したい」と思うことがあるのではないでしょうか。フォルダウィンドーを開いて作業しているときに、そのフォルダでスクリプト処理などをしたくなってコマンドプロンプトを開きたくなっても、(左にツリービューが表示されたエクスプローラでないと)1階層だけ上に戻らないと、コマンドプロンプトを開くコンテキストメニューを表示させることができないからです。

 そこで、任意のファイルを右クリックすることで、そのファイルがいるディレクトリを起点とするコマンドプロンプトを出すスクリプトを作ってみました。

 作ったといっても、RubyやPerlといったスクリプト言語をインストールしている人であれば(Windowsデフォルトの機能だけでもできそうですが)、90秒もあればスクリプト書きも設定作業もすべて終わるほどの簡単なものです。どのようなものかというと、送る("SendTo")メニューに「コマンドプロンプトを立ち上げ、送りつけられたファイルがあるディレクトリに移動する」という処理をするスクリプト(バッチファイル)へのショートカットを入れておくわけです。

Ruby で書くなら

system 'cmd.exe /k "cd '+ARGV[0].sub(/\\[^\\]*?$/,'')+'"' 
という具合のスクリプトを書き、(たとえば)cmdfromanywhere.rbといった名前で保存した上で、
ruby cmdfromanywhere.rb %1
という内容のバッチファイルを作り、そのバッチファイルへのショートカットを"送る"="SendTo"ディレクトリ(Windows Vistaの場合には、"送る"="SendTo"ディレクトリは " C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\SendTo"になります。また、それ以外だと"C:\Documents and Settings\ユーザ名\SendTo"辺りです)に置いて、バッチファイルへのショートカットを”コマンドプロンプト”という名前にでもしておけば良いのです。

 これで任意のファイルを右クリックし、コンテキストメニューから”コマンドプロンプト”に「送る」と、そのフォルダを起点としたコマンドプロンプトが立ち上がるようになります。

コマンドプロンプトスクリプトコマンドプロンプトスクリプト






「田舎の湾」と「西原理恵子」と「寺田寅彦」 

 山に囲まれた場所に住んでいると、その山の高さや存在感を強く感じる。空を囲む山々が見せる色の変化で、季節や日々の時間を感じる。そして、海辺に住んでいると、海の色や空の色、あるいは、海の向こうに霞んで見える山の色から、そんな移ろいを感じる。

 西原理恵子のマンガには、よく高知の浦戸で見ただろう海の景色が描かれる。時には言葉で、時には淡いけれど鮮やかな色の絵で、浦戸の景色が描かれる。

おねえちゃん、今日の船、
誰か知ってる人のってんの?
ねえちゃんとボクは手をふった。

西原理恵子 「ぼくんち

 そんな浦戸の海の景色を、寺田寅彦も同じような言葉を綴る。寺田寅彦と若くして結婚し、浦戸湾口の種崎海岸で療養していた夏子を思い浮かべながら、同じようなことを書いている。船の上からの視点で、こんな言葉を書く。

種崎の方の岸に見ておるらしき女夏に似たり

寺田寅彦 日記 明治34年11月25日
浜を見たけれど、約束の人見えず

寺田寅彦 日記 明治35年1月19日
 寅彦自身が療養していた須崎と高知の実家を、寅彦が船で行き来する時には、浦戸湾先の海岸にいる夏子に手紙を書いて知らせ、手を振り合ったという。



 海と山に囲まれている町に住んだりすると、寅彦が書く文章や西原理恵子が描く景色が、写真以上に写実的に見えてくる。そんな浦戸の海辺の景色をいつか見に行ってみたいと思う。太平洋に面した広い海原と、穏やかな湾の水面を眺め、海と空と岬の色を眺めてみたい、と思う。

船からは
みかんの花みたいにちいさい手が
ぴらぴらするのがみえて、

みんな自分の一番好きな人と
まちがえてるんだろうと思う。

西原理恵子 「ぼくんち
  

2008-12-27[n年前へ]

「スピードガン」で「目差せ球速100km/h」 

 野球・ソフトボール・テニスのボールなら時速16~177kmまで、車両・列車・レースカーなら時速16~322kmまでの範囲を、 精度プラス・マイナス時速1kmで測定することができるというスピードガン「ブッシュネル スピードガン」1万6500円ナリ。スポーツファンも、モータースポーツファンも、フェライド成分に満ちている鉄道ファンも、みんなそれぞれのジャンルで楽しむことができそうだ。

 スピードガンで、目差せ球速100km/h。

スピードガンスピードガン






ラジコン 超大型水陸両用車 

 川の真ん中を、ショベルカーと船を合体させたようなメカニカルな物体が、ゴギゴキ・プカプカと動いている。そして、その近くの川縁を大きなラジコンユニットを手に持ち歩いている人がいる。何だろうと思い眺めてみると、ラジコン遠隔操作方式の「水陸両用ブルトーザ」らしい。何だか、大昔のロボットマンガみたいだ。鉄人28号みたいだ。



ラジコン超大型水陸両用車






2008-12-28[n年前へ]

「プリンタで偽造したナンバープレート」と「速度取り締まり機の撮影波長」 実験編 Part.1 

 「プリンタで偽造したナンバープレート」と「速度取り締まり機の撮影波長」で、「赤外光をほとんど吸収しない通常のカラーインクで、ナンバープレートの緑文字を描いたなら、赤外線領域で撮影する速度取り締まり機・オービスからは非常に淡く見えそうだ。一体、プリンタで偽造したナンバープレートを速度取り締まり機で眺めてみたら、一体どのように見えるのだろうか」 と書きました。・・・疑問に思うだけで何もしないのはつまらないですから、実験をしてみることにしました。

 まずは、デジカメを改造します。デジタルカメラの撮像素子の前には赤外線を通過させない赤外線カットフィルタ(シート)が張られていますから、その赤外線カットフィルタを取り外してみます。

 そして、赤外線を撮影することができるようになったそのデジカメのレンズ前に、今度は赤外線だけを通過させる可視光カットフィルタ(右図)を貼り付けてみます。すると、「赤外線だけを撮影できるデジタルカメラ」ができあがります。このデジカメを使えば、「赤外線で見た車のナンバープレート」を撮影することができるわけです。

 とりあえず、今日は、ホワイトボードに黒色ペンと緑色ペンでプリンタで偽造したナンバープレートを模した絵を描いてみました。それが、一番上に貼り付けた写真です。そして、そのナンバープレートの絵を赤外線だけで撮影してみたのが右の写真になります。

 右の写真を見てみると、黒色ペンで描いた部分はハッキリ見えますが、緑色ペンで描いた部分はほとんど透明になってしまい、ナンバープレートの数字がほとんど見えなくなってしまうことがわかります。少なくとも、ホワイトボードとホワイトボード用色ペンで描いた「(いかにもバレバレですが)偽造ナンバープレート」は、速度取り締まり機・オービスからは識別することができなさそうです。

可視光写真赤外写真可視光カットフィルタ






2008-12-29[n年前へ]

現在望み得る最上かつ最良の○×上達法 

 文章上達法のコツを一番的確に書いた文章はは、井上ひさし 「現在望み得る最上かつ最良の文章上達法」である。・・・と、名文を書く人たちがみな口を揃え自著に書く。

 井上ひさしの「現在望み得る最上かつ最良の文章上達法(死ぬのがこわくなくなる薬―エッセイ集)」は、たった3ページほどの文章なのに、密度が実に高い。何しろ、「現在望み得る最上かつ最良の文章上達法」について、いきなり一行で答えを冒頭に書いてしまう。

「丸谷才一の『文章読本』を読め」
 そして、「文章を手当たり次第読み、そして、それを真似する作業をせよ」という内容が書かれ、最後の一文はこう締めくくられる。
 つまり文章上達法とはいかに本を読むかに極まるのである。

 どんな分野でも「技術」は欠かせない・・・だろうと思う。それが、体を使うことであっても、頭を使うことであっても、あるいは多くのことがそうであるように、体も頭も使うことであったとしても、「技術」を必要としないものはないはずだ。・・・根拠無しにそう思う。

 そういった技術に関して、「現在望み得る最上かつ最良の○×上達法」というものを考えるとき、井上ひさしの「現在望み得る最上かつ最良の文章上達法」は、意外に適用できることが多いのではないのだろうか、と思う。だから、というわけではないが、この文章を一度読んでみて損はないと思う。もちろん、丸谷才一の『文章読本』も一緒に「あわせて読みたい(読まなければならない)」ということになるのだが、それは「(名文を読む)楽しみが増える」ということであるから、これもまた得であっても決して損ではないのである。

2008-12-30[n年前へ]

「電気コタツ」から「人間行動」まで「フィードバック」してみよう 

 寒くなってくると、「モ-レツ科学教室」の「フィードバックしてみよう」を思い出す。越前屋俵太とトンチ博士が電気コタツの中に潜り込み、コタツの中をドライヤーでさらにアッチッチにすると、サーモスタットでコタツのヒーターが止まるようすから「ネガティブ・フィードバック」を説明する。つまり、(目標とする安定状態からの)差分を消す方向に働くフィードバック制御を説明する。

 そして、次に、2人でボールを投げ合っているうちにヒートアップし、力一杯ボールを投げつけ合うさまから、「ポジティブ・フィードバック」を説明していく。もちろん、いつも屋外授業がモットーの「モ-レツ科学教室」だから、越前屋俵太は京都の町中の公園に行き、歩く人たちにボールを投げつけ「ネガティブ・フィードバック」を体感する。

 ビデオを見ているだけで、「電気コタツの動作」から「人間の行動」まで、「フィードバック」を体感したような気持ちに私までなってくる。

 一般的に、ほどよいネガティブ・フィードバックは安定な状態を作り出し、ポジティブ・フィードバックは大きな変動を生み出す。道端でする井戸端会議、ネット上のさまざまなシステム、世界全体を巻き込む経済動向といった、多種多様なものたちに働いている「フィードバック・システム」を眺め、その「設計思想」を考えてみたくなる。

2008-12-31[n年前へ]

赤外線で見る「マチスの画集」 

 「プリンタで偽造したナンバープレート」と「速度取り締まり機の撮影波長」 実験編 Part.1 で書いたように、普通の印刷やプリンターなどで使われる(黒以外の)カラーインクは赤外線を吸収しないものが多い。私たちの目には鮮やかな色を見せるカラーインクでも、赤外線の目から見ると単なる透明のインクでしかなかったりする。通常の四色印刷で使われるインクのカラーインクは、赤外線にとっては全然「カラー」ではないのだ。

 美術書の頁をめくりながら、マチスの画を眺めている時に「この頁を、このマチスの画を赤外線で眺めたらどんな風に見えるだろう」と、ふと思った。そこで、可視光をカットし赤外線だけでマチスの画を眺めてみた。すると、やはり、肌色も鮮やかな赤も緑も消えて、色のない黒い部分だけの画になった。

 実際のマチスの画を赤外線で眺めてみても、きっと、こんな風には見えないだろう。一体、どんな風に見えるだろうか。自分の目とは違う目で、色んなものを眺めてみたいとよく思う。

 絵や本を読むと、そんな思いが少しかなうのがうれしい。

マチス赤外線でマチス