2003-04-19[n年前へ]
■There's so much discover
I thought I reached the endThe end of a long long journeyOnly to find It's not overThere's so much more to discoverAs long as there are dreamsBurning in the hearts of the youngAs long as there's desireYou'll never tireYou'll find roads into your imaginationThat can stretch and far and foreverYou'll see colors transcending even rainbowsWe have so much we can discoverカラオケでよく歌ったこの曲が何のフレーズか判った人がいるだろうか。あぁ、検索エンジンでは一発かぁ…。
ともあれ、人間の可能性は無限大で、時間は有限なので、無限大*有限がどうなるかが興味深いところ。そこのところJ.P.ホーガンは何と書いていたのだっけ?
2003-10-19[n年前へ]
■さらば、大艦巨砲主義。
鍵はオトコのヤング率?
海外でトイレに入ると、高い位置にある小便器に四苦八苦することが多い。私が小柄なせいもあるのだけれども、何しろ便器の高さがほとんど股の位置と同じくらいだったりするのである。しょうがないから、そんな時は放水を行う「大砲」の角度を若干上側に調整して、小便が描く放物線を上手く調整しながら放水を行うことになる。そんな風に神経を使う放水作業を行っていると、「もう少し小柄な人のことも考えてくれぇ」となんだか腹が立ってきたりもするのである。
しかも、そんな位置が高すぎる便器には大抵"AmericanStandard"なんて刻まれていて、人の気持ちをさらに逆なでしたりするのだ。もちろん、それは単に便器メーカーの社名であるのだけれど、それでも"AmericanStandard"だなんてと言われて良い気持ちがするわけはないのである。「この高さがアメリカの標準デ~ス。アナタの大砲の取り付け位置は低すぎデ~ス」と便器にバカにされているような気になってしまい、思わず「それは余計なお世話デ~ス。アメリカの標準を他人に押しつけないでほしぃのデ~ス!」と思わず便器に言い返したくなったりするのである。
先日、やはりそんな風に"AmericanStandard"な便器に向かってハラを立てながら「大砲」の角度を調整しながら放水作業をしている時に、ハラが立つあまりにとてもヘンなことをワタシは考えはじめた。
確かにアメリカンな標準大砲は「取り付け位置」も高いし、大砲は長くて口径も大きい(コーラ瓶のような巨砲を持つアメリカンAV男優を参考にするならば)。そのせいで、射程距離だって確かに長く、高い便器でも全く苦労しないかもしれない。しかし、必ずしも大砲がデカけりゃいいってわけでもないのではないハズである。例えば、かつて我が日本は大艦巨砲主義に固執し巨大戦艦「大和」を作り上げたわけだが、その大艦巨砲主義が時代の流れに取り残されてしまったことは「戦艦大和」の悲劇が証明している通りである。それと同じように、放水の「大砲」におけるアメリカンな「大艦巨砲主義」だって、時代の流れ・時の流れに取り残されることがあるのではないだろうか、と思ったワケなのである。「これがアメリカの標準サイズなのデ~ス」という言い放つブッシュ大統領率いるアメリカン大艦巨砲主義だって時代の流れ・時の流れを考えれば、何処かに「落とし穴」があるのではないだろうか、とワタシは考えたのである。つまりは、高すぎる便器にハラを立てたあまりに、ワタシはなんとかアメリカン・スタンダードな大艦巨砲主義になんとか「落とし穴」を見つけようとしたわけである。
そして、ワタシが考え出したものがかねてから宿題のままワタシが決して手を付けようとしなかった「オトコのヤング率(物質の堅さを示す係数、応力に対してどの位歪むかを示す)」だったのである。かつてワタシは、人体の柔らかさを「人体におけるヤング率」という物理係数を導入することで、さまざまな人体に関する物理現象を解明することができると提唱したわけであるが(オッパイ星人の力学- 胸のヤング率 編 - を参照のこと)、今回は小便を発射する大砲の強度を定めるオトコのヤング率を考えることで、アメリカが「標準サイズ」と言い放つ大艦巨砲の「落とし穴」を見いだそうとしたのである。鍵はオトコのヤング率なのである。
そのアメリカンな大艦巨砲の「落とし穴」を説明するために、まずは人体におけるヤング率の定義をもう一回おさらいしてみよう。人体におけるヤング率とは人体の柔らかさを定義する係数であって、それは年齢に比例する係数である。人体におけるヤング率は若いときは堅く(ヤングで)、年をとるに従って柔らかくなる(ヤングでなくなる)のである。そういうわけで、例えば胸のヤング率を考えれば、当然若い女性の胸は垂れないけれども、おばあちゃんの乳が垂れていったりするわけである。そして、それと同じように当然オトコの大砲におけるヤング率というものもあるわけで、試しにヤングなヤング率を持つ「ジャパニーズな小砲」と「アメリカン・スタンダードな巨砲」を有限要素法で変形計算をしてみたものが下の二つのグラフである。
もしも、大砲の取り付け位置の高さが同じであれば、「ジャパニーズな小砲」に比べて「アメリカン・スタンダードな巨砲」は長いぶんだけ、発射口の位置も高い。だから、当然ターゲットがいくら高い便器であっても百発百中で狙いを外さないに違いない。それに対して、「ジャパニーズな小砲」は発射口の位置が低く、ターゲットたる便器を外してしまうことも多いように思える。確かに、小便における大艦巨砲主義は間違っていないように思えることだろう。
しかし、である。時代の流れ・時の流れを考えるならばどうだろうか?女性のオッパイが年を経て時が流れるに従って、堅くなくなり垂れてくるように、男性の「大砲」だって時が流れ年を経るに従って哀しいけれど堅くなくなってくるのである。さまざまなシチュエーションでそのオトコのヤング率は問題になるわけであるが、とりあえず便器に向かって放水活動を行うときだってそのヤング率は問題になるわけである。というわけで、例えば時を経てヤングでなくなった「大砲」がどう変形するかを同じように計算してみたものが、次の二つのグラフである。
短いがそのぶん時を経ても変形量も少ない「ジャパニーズな小砲」に対して、時代が流れヤングでなくなった「アメリカン・スタンダードな巨砲」はひどく変形してしまっている。巨砲の台座たる根本を固定して遙か上に向かって放水を行ったにしても、アメリカンな巨砲の先端は変形して下を向いてしまっているのである。そうとなれば、大砲から発射される放物線も低い弾道を描き、小便は遠くまで飛ばないわけで、アメリカンな巨砲主義から発射される小便は"AmericanStandard"のターゲットを外すかもしれないのである。しかし、それに対して質実剛健な竹ヤリのような「ジャパニーズ小砲」はほとんど曲がることもなく、失礼な"AmericanStandard"便器をヤングな時代と同じように打破することができるかもしれないわけなのである。
…と、こんな「オトコのヤング率」についてワタシは放水作業をしながら考えたのであるが、ふと我に返ってみれば私たちは別に便器を前に飛距離競争をしていたのではないのであった。そもそも、ワタシと違って股位置の高いアメリカンは大砲の角度を上に向ける必要はないのである。取り付け位置の高い大砲ならば、別に大砲が下を向いていたってちゃんと便器内に放水ができるわけなのである。哀しいけれど大砲の取り付け位置の高さが違うということは絶対的な差を持つのである。
というわけで、いくら時代の流れ・時の流れを考えても、ワタシはいつまで経ってもアメリカン・スタンダードな便器に苦労し続けるだろうし、背の高い「アメリカン・スタンダードな巨砲」達はいつまで経っても軽々とダンクシュートのごとく小便を便器に命中させ続けるに違いないのであった。ワタシが「さらば、大艦巨砲主義」といくら言ってみたところで、しょせんは虚しい遠吠えなのである。かつて、我が日本の大艦巨砲主義は時代の流れに取り残されてしまったけれども、残念ながらアメリカン・スタンダードな便器における大艦巨砲主義の時代はまだまだ続いてしまうのであった。
2004-04-12[n年前へ]
■ようこそ「辞書単語登録プログラミング」の世界へ
ATOKではじめるperlスクリプト
日本語を使う日本人として、PCを使っていて不便を感じることは多い。例えば、URLを入力するときには半角英文字入力モードに切り替えてキーをタイプしなければならないのに、その一方メールを書くときにはATOKの全角ひらがな入力モードに切り替えてキーをタイプし日本語を入力しなければならない。そして、そのメールを書いている途中にアルファベットのフレーズが出てくるようであれば、また文字入力のモードを切り替えなければならない。基本的にアルファベットだけを使うラテン語系の言語と違い、日本語のような多くの文字を入力するためにIMEなどのプログラムを使わなければならないとなると、どうにも不便を感じることが多い。そんな時、アルファベット文化圏に生まれなかったことを少し残念に思ったりする。
しかし、短所と長所は紙一重の表裏一体のものである。短所と長所が表裏一体というからには、どんな視点から眺めるかで、その表と裏は短所にもなれば長所にもなるハズである。IMEなどの日本語入力システムを使わなければならない不便さも、少し考え方を変えてみればきっと何かの便利さにも姿を変えるハズである。例えば、「グーグル」なんていう言葉を"
www.google.com"と辞書に単語登録してさえおけば、入力の手間を少し省くことができる。つまりは、日本語入力システムがブックマーク代わりになったりもする。つまり、日本語入力システムを単なる「よみ→漢字」という変換を行うデータベースにしておくのではなくて、「名前→URL」という変換を行うデータベース代わりに使うと便利であったりする。
そんな考えをさらに進めて、少し前にATOK数式処理プラグインなんていうものを作ってみた。JUSTSYSTEMの日本語入力システムATOKに数式処理機能を追加することで、数式計算を日本語入力と同じような感覚でできるようにしてしまうというツールを作ってみたのである。つまり、日本語入力システムを使えば「ひらがなの読みを入力すれば漢字が表示される」のと同じように、「数式を入力すればその計算結果が表示される」というものを作ってみたわけだ。日本語入力システムを使わなければならない不便さを、それを使えば、「どんなに算数が苦手な人であっても、誰もが天才算数少年になることができてしまう」という短所・長所変換システムを作ってみたのであった。
もう少し言い換えると、「有限の『よみ』を有限の『漢字』に対応させる」といったような「有限のデータベース」だけではなくて、「(色んな無限のパターンがある)数式→(色んな無限のパターンがある)計算結果」という無限のデータベースに日本語入力システムを変えてみたわけである。今回はそんな考えをさらにさらに押し進めて、ATOKの機能を必要以上にムダに機能拡張してみたい。
というわけで、今回は「数式」ではなく「perlスクリプト」プラグインを仕立ててみた(最新バージョンはperlだけでなく、ruby,awk,何でもござれバージョンになっています)。「数式」も「perlスクリプト」も結局は「プログラム言語」であって何ら違いはない(ATOK数式処理プラグインではクリップボードを変数として使うこともできる関数でもあった)わけだが、色々なことを実現しようとするならばperlの方が高機能であるに違いない。そこで、Windowsにインストールされたperlの機能をATOKから使うことができるプラグインを作ってみた。「そんなもの何の役に立つ?」「無意味にムダじゃないの?」と思う人が多いだろうし、その疑いは必ずしも外れてはいないのだが、とりあえず少し使い方の説明をしてみることにする。
例えば、まずは「perlスクリプト・プラグイン(最新バージョンはperlだけでなく、ruby,awk,何でもござれバージョンになっています)」を使って、これまでの「数式処理プラグイン」と同じようなことをしてみることにしよう。ソフトウェアをインストールした後でATOK上で半角英数で入力中に、まずは
print sin(3)/5 |
と入力して「AMET変換」すると、
0.0282240016119734 |
という風に計算を行った結果が出力される。もちろん、これまと同じように入力語句の末尾に"="を付けて
print sin(3)/5= |
と入力して「AMET変換」すると、
print sin(3)/5 = 0.0282240016119734 |
というように、入力スクリプトとその実行結果(計算結果)が共に出力される。なんと、これでATOKユーザーならばperlの数式処理機能を全て文字入力中に使うことができるわけである(perlがインストールされていれば)。
また、クリップボードにテキスト形式のデータが入っていれば、その内容が入力されたファイルがperlスクリプトに引数として渡される。だから、例えばクリップボードに
いろはにほへと ちりぬるをわか よたれそつねな らむうゐのおく やまけふこえて あさきゆめみし ゑひもせす |
なんていうデータが入っている時に、ATOKの文字入力で
$i=1;while(<>){print qq/$i: $_/;$i++}& |
と入力(末尾の&は出力結果が長くなるときのおまじない)して変換すると、クリップボードにコピーされていたデータを
1: いろはにほへと 2: ちりぬるをわか 3: よたれそつねな 4: らむうゐのおく 5: やまけふこえて 6: あさきゆめみし 7: ゑひもせす |
と行番号付きで出力することができる。
つまり、ATOKを使う限りにおいては、どんなアプリケーションであってもperlの機能を使うことができるわけだ。上の行番号を出力した例のように、メモ帳からでもあるいはノートパッドからでもperlの機能を使った機能拡張をすることができるわけだ。メモ帳ですら、perlの正規表現を駆使した整形処理をすることができるようになるのである。
えっ?こんな「perlスクリプト」を入力するのはメンドくさい?こんな"$i=1;while(<>){printqq/$i: $_/;$i++}&"なんていうプログラムを毎回毎回入力できるハズがない? うーん…何のためのATOK、何のための辞書変換、何のための日本語入力システムだろうか? …そう、こんな「perlスクリプト」はただ辞書に単語登録しておけば良い。「ぎょうばんごう」なんていう「読み」で"$i=1;while(<>){printqq/$i: $_/;$i++}&"という文字を登録しておけば済むのである。すると、最近のATOKであれば予測入力すらできてしまうから、二回目からは「ぎょう」という辺りまで入力したときにはすでに「perlスクリプト」が表示されているハズなのである。これがATOKではじめる「辞書単語登録プログラミング」なのである。これからの時代は「入力予測システム」「プログラム・データベース」「クリップボードを用いたファイル不要のプログラミング」という実にお気楽環境なのである。
そのお気楽プログラミングでどんな便利が手にはいるかというと、例えば「じこく」という「読み」に
($s,$m,$h,$d,$o,$y,$w,$i)=localtime;print qq/$h:$m:$s/; |
というような、文字を登録しておけば、「じこく」でAMET変換すると
0:18:16 |
という風に時刻を表示させることもできるし、例えば
ねん = "($s,$m,$h,$d,$o,$y,$w,$i)=localtime;$y+=1900;print qq/$y\//;" がっぴ = "$s,$m,$h,$d,$o,$y,$w,$i)=localtime;$o++;print qq/$o\/$d/;" じかん = "$now=localtime;print qq/ $now /;" |
なんていう風に登録しておけば「ねん+がっぴ」を変換すれば
2004/4/12 |
になるし、「じかん」であれば
Mon Apr 12 00:22:27 2004 |
というように自動入力することだってできるのである。
もちろん、system関数だって使えるわけだから、他のプログラムの機能を使うことだってできる。もちろん、他のプログラムの機能を使うまで行かなくても、他のプログラムを起動だけさせるなんてことだって簡単にできる。例えば、「でんたく」なんていう読みには"system(calc)"というような文字を辞書登録しておけば、「でんたく」と入力しperlスクリプトを表示させた後に変換を行うと、電卓が起動するようになる。
上に挙げたものは、とても簡単なサンプルに過ぎない。おそらく、perlを使いこなす人たちであれば、色んなperlスクリプトで色んな機能をATOKに追加していくことができるに違いない。
というわけで、今回はこんな「ATOKperlスクリプト・プラグイン」のご紹介をすることで、ATOKではじめる「辞書単語登録プログラミング」の世界へようこそと宣言をしてみたい、と思う。Windows上でATOKを使っていて、perl使い、という人がどれだけいるかは判らないが、一行プログラミングならぬ「辞書単語登録プログラミング」も面白いかも、と小さく呟いてみたいと思うのである(ちょっと弱気)。
2004-06-19[n年前へ]
■無限のポテンシャルと有限の時間
人の可能性や能力は無限にあるの。だけど、人には有限の時間しかないの。これって、面白いパラドクスだと思わない?J.P.ホーガン
運動量は加えられた力積で変化する。力積は「力」×「時間」で定義される。人が持つ潜在的な力・ポテンシャルは無限、だけど時間は有限だとしたら、その結果となる人の運動量は、無限×有限=…?
2004-10-10[n年前へ]
■グラスハープを有限要素法で解析
グラスハープと言えば、グラスに水を入れて綺麗な音色を出すものだ。そんなグラスハープが鳴るようすを有限要素法で解析したもの。