hirax.net::Keywords::「AmetMulti」のブログ



2006-05-05[n年前へ]

「歴史」や「進歩」や「才能」 

 今日の「n年前へ」は「何でもやればできる、という言葉」「Thinkpadモーションコントロール動画」「未来予想図の多数決」「頭の中の妄想」と「証拠」「のび太君,百年の歴史を見るには百年かかるんだよ…」などです。「AmetMultiを使ってるところを映した動画」も懐かしく面白いですね。

「(何かを) - やろう - と努力をちゃんとできること」も「才能の一つ」なのかも、と思ったりもする。あるいは、「誰でもみんなやろうと思えばできる」と信じる力こそが、欠かせない才能の一つなのかもしれない、とも思う。
「のび太君、百年の歴史を見るには百年かかるんだよ…」
"Sometimes I wonder how you can stand being just a dog."  (人間じゃなくて)犬でいるのって大変じゃない?"You play with the cards you're dealt, whatever that means."  君だって自分に配られたカードで勝負するしかないんだろ?
本当の理科人間は理屈を言い争うディベートを好みません。どんな結論にも理屈はつけられるので、このようなコトバによる議論が、意味ある結論に導くとは思わないからです。
ぼくは、進歩しようとしない人を好きではない。

2006-10-31[n年前へ]

「時間と場所をわきまえた(TPO)予測入力変換」「わからないこと」「 B級タレントが身近にいたら」 

 「時間と場所をわきまえた(TPO)」予測変換入力システム・「AmetMulti + 携帯GPSデータ」「わからないこと」 from n年前へ.

「わからないこと」を無理してわかろうとしない方が良いんだ「わからないこと」というのはたいていどこかおかしい
同じユーザであっても違う時間にいるなら、それは違うユーザと考えた方が良いこともあるし、(その同じユーザが)違う場所にいればそれも違うユーザと捉えた方が(そして違う文字を予測した方が)良いこともある
「最後は自分がどうするかなんだぞ」っていうのを常に言われたんです。自分がどうするか決めた一球っていうのは、誰にも文句を言われる筋合いはないって、そういう話ばっかりするんですよ。

2008-03-01[n年前へ]

日本語変換再び 

 Perlで何かを作ったのは1年半くらい前が最後で、それ以降に使う新規作成するスクリプトはRubyを使うようになった。それとともに、ATOKの機能拡張ツールとして作ったAmetMultiも使わなくなっていた。

 AmetMultiは、スクリプト・バッチ処理などを「辞書登録」しておけば、ATOKというIME(日本語変換プログラム)を使って、色んなプログラム処理ができる、というツールである。IME経由で入力した文字列や、クリップボードにコピーした内容を使ったスクリプティングをIMEで駆使することができる、文字処理も、日付処理も、画像処理も、とりあえず、とりとめもない色んなことができる、というものである。

 最近ではWEB APIの速度も苦にならない程度になってきたので、久々にATOKとAmetMultiとRubyでも使って、何かツールを作ってみることにしよう。下のYoutubeリンクは。AmetMultiで画像検索や画像処理や文字処理(行番号付加)などを行っている例だけれど、WEB APIを簡単に使うことができ・その速度も十分速くなってきた今日この頃、それに応じた「スクリプト辞書」を作り直してみるのも面白いかもしれない。

2009-10-02[n年前へ]

IronRubyとMathematica Playerの良い組み合わせ方を考える 

 さて、.NETで動くRubyであるIronRubyと無料で使うことができるMathematica Playerを組み合わせて遊んでいると、とりあえずは、Rubyの中で数式処理結果を使いたければ、EvaluateToInputFormを使って評価を行い、人間が評価結果を眺めたければ、EvaluateToOutputForm を使って評価を行うのが便利だ、という当たり前の事実に突き当たります。

 たとえば、こんなコードを書いてみます。4 x+3==0 という1次方程式を解くだけのコードです。

include System
require 'Wolfram.NETLink'
include Wolfram::NETLink
kernelLink=MathLinkFactory.CreateKernelLink()
kernelLink.WaitAndDiscardAnswer()
result=kernelLink.EvaluateToInputForm(
            "Solve[4 x+3==0,x]", 0)
puts result
kernelLink.close
このスクリプトを走らせると、
{{x -> -3/4}}
という風に答えが返ってきます。こういった形式で答えが返ってくれば、このMathematicaによる数式処理結果を用いてRubyの中で(xを-3/4で)置換を行い何か処理を実行させる・・・といった使い方がいくらでも簡単にわかりやすく書けそうです。

 これが、もし EvaluateToInputForm をEvaluateToOutputForm に入れ替えれてみたとするならば、
         3
{{x -> -(-)}}
         4
という答えが返ってくることになります。もちろん、こちらの記述の方が人間はわかりやすいですが、Ruby中で数式評価結果を使おうとすると、これでは不便極まりない表記としか言いようがありません。(もちろん、MathematicaですらOutputFormで出力した結果を直接再利用することはできません)

 Mathematica と IronRuby を上手く組み合わせると、結構面白いことができそうです。久しぶりにATOKの機能拡張であるAmetMultiでも引っ張り出して使ってみるか、それともATOK for Windows 無償試用版でもダウンロードしてみて面白い使い方ができないかどうか、少し挑戦してみることにしましょうか…。

2009-10-14[n年前へ]

AutoHotkeyで任意の場所・タイミングでRubyやPerl等を使おう 

 キー入力する際に、さまさまな機能を使いたくなります。たとえば、以前作ったAmetMulti,AmetPerlなどは、ATOKのAMET機能(変換機能を拡張することができる仕様)を使って、Atokでプログラミング言語の一行プログラムを実行させたり、そういったワンライナー(一行プログラム)を辞書登録してしまうことで、文字処理・作成だけでなく、アスキーアート作成機能・画像取得機能などさまざまなことをしてみました。下の動画は、AmetMutiを使って、画像取得を行い、画像処理をかけたり、アスキーアート化を行った時のデモ動画です。

 最近のATOKには、そういった機能拡張がより簡易にできる機能が追加されているようです。とはいえ、市販ソフトのお仕着せ機能を使うのも(趣味としては)少しつまらないですし、何より、ATOKで似たようなことをするならAMET拡張機能を使えば良いので、わざわざ車輪の再発明のようなことはしたくありません。(趣味なんですから)何か新しいものに挑戦したいものです。

 そこで、今回はWindows用の(これまた無料の)AutoHotKeyを使って、キー入力を自由自在にフックして、さまざまな機能拡張を追加してみたい、と思います。AutoHotKeyはさまざまな機能を持ったソフトウェアなので、AutoHotkeyは、キー・スワッピングや語句置換や、キー入力などをトリガーにした各種処理ができるソフトで、非常に高機能なものです。その概略については、「AutoHotkeyを流行らせるページ」を一読してみれば、知ることができると思います。とはいえ、あまりも機能が多岐にわたっているので、まずは、既存のスクリプトを使ったり・改造したりすることから始めるのが良いと思います。

 さて、今日は、AutoHotKeyを使い、"rby"と打つと、クリップボードに入っているRuby(ワンライナー)スクリプトを実行させ、その結果をキー送出させるプログラムを書いてみることにします。

 準備作業は、まずAutoHotKeyをインストールします(再起動などは必要ありません)。そして、プロセスを起動して標準出力を読み書きするスクリプトをAutoHotKeyのAutoHotkey.ahkに追加します。もちろん、Rubyも必要です(どのようなバージョンでも構いません)。また、Rubyでなく、Perlでも何でもスクリプトを変えれば同機能を実現できます。

 それでは、スクリプトをAutoHotkey.ahkに追加しましょう。

::rby::
a=ruby -e '
c='
d=%a%%clipboard%%c%
pi:=PRun(d)
PWaitExit(pi)
r:=PRead(pi)
Send,%r%
PClosehandle(pi)
return
はい、これだけです。rbyという単語入力がされたら、rubyを-eオプションを付け起動させ、クリップボードの中身をワンライナーとして処理した上で、その結果をキー送出させる、というわけです。

 あとはAutoHotKeyで.ahkファイルを再読み込みし、メモ帳を開いて、

puts Time.now.month
と書き、その一行をコピーして、rbyと入力しエンターキーを押すと、そこには10という文字が出現します。もしも、 puts Math.sin(5) という一文をコピーして、rbyと打てば、メモ帳上に-0.958924274663138という文字が出現します。

 もちろん、メモ帳でなくても構いませんし、

a=ruby -e '
の一行を
a=perl -e '
とでも適当に替えるだけで、Perlを好きなソフト上で好きなタイミングで自由に使うことができるようになります。awkでも何でも同じ話、です。

 というわけで、今日はautoHotKeyを使って、自分の指先が叩くキーボードのすぐ向こうに、RubyやPerlの機能をいつでも呼び出せるようにしてみました。もちろん、この話はさらに(無料の)Mathematica Player機能の実装などにも繋がっていくことになります。



■Powered by yagm.net