2008-03-01[n年前へ]
■日本語変換再び
Perlで何かを作ったのは1年半くらい前が最後で、それ以降に使う新規作成するスクリプトはRubyを使うようになった。それとともに、ATOKの機能拡張ツールとして作ったAmetMultiも使わなくなっていた。
AmetMultiは、スクリプト・バッチ処理などを「辞書登録」しておけば、ATOKというIME(日本語変換プログラム)を使って、色んなプログラム処理ができる、というツールである。IME経由で入力した文字列や、クリップボードにコピーした内容を使ったスクリプティングをIMEで駆使することができる、文字処理も、日付処理も、画像処理も、とりあえず、とりとめもない色んなことができる、というものである。
最近ではWEB APIの速度も苦にならない程度になってきたので、久々にATOKとAmetMultiとRubyでも使って、何かツールを作ってみることにしよう。下のYoutubeリンクは。AmetMultiで画像検索や画像処理や文字処理(行番号付加)などを行っている例だけれど、WEB APIを簡単に使うことができ・その速度も十分速くなってきた今日この頃、それに応じた「スクリプト辞書」を作り直してみるのも面白いかもしれない。
2008-06-09[n年前へ]
■Photoshopプラグイン開発環境(PDLS)再び
Photoshopプラグイン開発環境 Photoshop DLL Linking System (PDLS) のページを(旧Pukiwiki)のファイルを元に書き直しました。PDFの説明ファイルの2004/08/07版はこちらになります。また、サンプルソース・バイナリファイルはこちらです。
AmetMultiのモットーは「ATOKから何でもできる」でしたが、PDLSのモットーは「Photoshopから(その人のレベルに応じて)何でもできる」でした。(Photoshopの規約は気にせず)Cを使ってネイティブ・プラグインを気軽に書くこともできれば、GUIを使った連続作業などで自動的にマクロ関数(プラグイン)をお手軽に作ることもできる。その人のレベルに応じて、ステップアップすることができるPhotoshopのプラグイン開発環境というわけです。
マクロ関数やネイティブ・プラグインを組み合わせれば、さらにカスタムプラグインを作ることもできます。また変数を使ったり演算や数式処理も使えて、NEWやDELETEといったマクロを使い、局所領域に対してだけ演算を行うこともできます。そして、マクロプラグインには自動的にGUIをかぶせることもできるのです(GUIコードを書かなくても、ダイアログで変数設定などを実行時にすることができる)。
また、表計算アプリとの連携や鳥瞰図表示のプラグインもついている……というテキトーな機能てんこ盛り、の環境です。Photoshop Elementなんかで使うこともできますので、画像処理で遊んでみたい人は一度使ってみても良いかもしれません。いつものように、SYSTEMコールもできるプラグインなので、つまりは何でもし放題のプラグイン環境です。使ったことのないPhotoshopユーザ(ないしはPhotoshopプラグイン互換の画像処理ソフトユーザ)は一度遊んでみると良いかもしれません。
2009-03-04[n年前へ]
■AMET無くなった
今回2009にアップデートしたところ、2009にはAMETが無くなっているそうです。どうも2008から、他のアプリケーションだけでなくインターネット経由でAPIも呼び出せる「ATOKダイレクト」という機能に発展的解消したらしく、AMETを設定する方法がありませんでした。
2009-03-08[n年前へ]
■ATOKダイレクトでATOK 2009を拡張するプラグインを作ろう! - Pythonでつくってみよう
ATOKダイレクトでATOK 2009を拡張するプラグインを作ろう! - Pythonでつくってみよう
Perl/Ruby、そして、Python といったスクリプト言語を利用して ATOK の拡張プラグインを作ることができます。ATOK を使って漢字変換をする時に、特定の変換用のキーを押すことで、変換候補の欄に任意の情報を表示できるというものです。 スクリプト言語を用いることで、 ...
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 無償試用版でもダウンロードしてみて面白い使い方ができないかどうか、少し挑戦してみることにしましょうか…。