misima SOAP Web Service 2.4 公開

misima SOAP Web Service 2.4 パッケージをようやく公開した。すでに公開していた GNU Emacs,Microsoft Word 以外に秀丸エディタ,Jedit X エディタ及び TeXShop TeX 統合編集環境の,各ソフトウェアのためのクライアントツールを同梱した。Jedit X,TeXShop は Mac OS X で定評のあるソフトウェアである。私のサイトのダウンロード・サービスから misimaSoapService-2.4.zip を落としてお試しください。

ここのところ,Jedit X 用の AppleScript の作成に夢中になっていて,この成果で TeXShop 向けにも misima クライアントを拵えた。

TeXShop の AppleScript は Jedit X と異なり,アプリケーションが自前でスクリプトを起動する仕組みになっており,コードの先頭に "--AppleScript direct" なるコメントを記載しておく必要がある。選択文字列の取得方法が分らず苦労した。Google で探しまわって,いろいろ試行錯誤した挙句,content of selection of front document で取れることが判明。あとは,Jedit X と同工異曲で完成。

tell application "TeXShop"
    -- TeXShop ドキュメントの選択テキストを取得する。
    set tString to (content of selection of front document) ¬
        as Unicode text
    .....
end tell
    (*
        Jedit X と全く同じ misima call soap,Perl Unicode 変換
    *)
tell application "TeXShop"
    -- misima SOAP 変換結果で選択テキストを置換する。
    set (content of selection of front document) ¬
        to cnvResult as Unicode text
end tell

しかし,TeXShop のドキュメントはもう少し開発者向けの詳細を書いてくれてもよいのにと思う。

秀丸エディタ用のクライアント公開版では,コマンドプロンプト画面抑止のために作った misimalaunch.exe に,私のサイトのアイコンをバインドするという,余計な遊びも入れた。

Windows プログラミングには極めて疎いのだけど,Google 検索によって得られた情報でプログラムにアイコンを埋め込むことができた。ただ,引数で指定したプログラムを新しいプロセスで起動するだけの,はじめての Windows プログラム。忘れないうちに書き記しておく。

/*  misimalaunch.c: misima java ランチャ  */
#include <windows.h>
 
int WINAPI WinMain(
        HINSTANCE hInstance, 
        HINSTANCE hPrevInstance, 
        PSTR szCmdLine, 
        int iCmdShow ) {
    PROCESS_INFORMATION pi;
    STARTUPINFO si;
 
    LoadIcon(hInstance, TEXT("MISIMAICON"));
 
    ZeroMemory(&si,sizeof(si));
    si.cb=sizeof(si);
 
    CreateProcess(NULL, 
        szCmdLine, 
        NULL, 
        NULL, 
        FALSE, 
        NORMAL_PRIORITY_CLASS, 
        NULL, 
        NULL, 
        &si, 
        &pi);
 
    CloseHandle(pi.hThread);
    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
 
    return 0;
}

Mac OS X Illustrator,Photoshop で 16,32,48 ピクセルのアイコン画像を作成し,Windows 上で『@icon変換』フリーウェアを使ってマルチアイコンを生成する。bcc32.exe (Borland C++ コンパイラ 5.5) で実行バイナリを作成したあと (LoadIcon 関数でアイコンをロードするコードが必要である),リソーススクリプト misimalaunch.rc を書いた。

MISIMAICON ICON "misima.ico"

このたった 1 行のリソーススクリプトはプログラムで指定した ID (MISIMAICON) のアイコンリソースを定義している。brc32.exe (Borland C++ リソースコンパイラ 5.5) でこれをコンパイルすると実行バイナリにアイコンが埋め込まれる。エクスプローラやデスクトップなど局面に応じて違うピクセルサイズのアイコンが表示されるようになる。

C:\tmp>dir /b
misima.ico
misimalaunch.c
misimalaunch.rc
C:\tmp>bcc32 -W misimalaunch.c
C:\tmp>brc32 misimalaunch.rc

これで当初の目標であったアプリ用 misima SOAP クライアントが一揃いできた。TeX Q & A で宣伝までしてしまった... しかしまだドキュメントがきちんとしていない。これが次の課題。

* * *

土曜日,中学一年になる下の娘の学校で文化祭。あいにくの大雨で,露店でヤキソバやらポテトフライやら買ったはよいが食する場所がなく,帰宅。往復で一時間も歩いてびしょ濡れに。

夕方,妻の誕生日プレゼントにと,ネックレス,日本語コロケーション辞典,出たばかりの塚本邦雄歌集を購入。自分の勉強のため,O'REILLY の Apache Ant の解説書も買った。川崎で二人でとんかつをいただく。
 

知っておきたい 日本語コロケーション辞典
学研辞典編集部 金田一 秀穂
学習研究社 (2006/06)

短歌の編集をしている妻は,「人事を尽くして天命を待つ」の天命を「全う」することができるのかで,早速この本が役に立ったようである。

私は,昔,塚本邦雄の歌集二冊を,国文社から出ていた現代詩人文庫で読んだ。つい最近,思潮社から出たこの文庫は,この偉大な現代歌人の全足跡から,選りすぐりを集めたものである。


Ant第2版
スティーブ ホズナー Steve Holzner, 長瀬 嘉秀 テクノロジックアート訳
オライリージャパン (2005/11)


私は自作プログラムのビルドや面倒なインストール・オペレーションには,ついつい make を使う。最近は Java で書いた Web アプリケーションのコンパイル,デプロイは Apache Ant で行うのが一般の定石となりつつある。Eclipse と Ant を知らずして Java プログラマか!と言われる昨今である。実は私は Eclipse も Ant もまったくの門外漢で,そろそろ勉強しなくちゃ。というわけで,業界標準オライリーの決定版解説書を読みはじめることとした。

2015.8.18 付記

最近の Web Service の主流は RESTful ではないかと思う。RESTful は SOAP と比べ,XML に依存せず簡便に実装できるメリットがあると思う。弊サイトの misima SOAP Web Service はセキュリティの課題(要するに,限定公開とするための認証機構を実装できていなかったこと)もあり,その後公開を停止した。現在,misima RESTful Web Service が稼働している。

misima RESTful Web Service は Web ブラウザ,GNU Emacs,Microsoft Word 2003 / 2007,秀丸エディタから直接 misima 旧字・旧仮名遣い変換をサポートしている。ただし,変換実行に際して usercode(友人にだけ配布した非公開キー)を指定する必要があり,限定ユーザしか利用できない。

misima RESTful Web Service のサーバ実装(Java Servlet),各種クライアント実装については,弊ブログの以下の記事を参照いただきたい。