FileMaker Proのカスタムアプリケーション(データベース)のコンテスト「FM-1グランプリ」で、応募作品「FileMaker PowerPack」が第2回予選を通過しました(全3回の予選の2回目)。
内容は、FileMaker Proを制御するCocoa Scriptのサンプル集です。ちょうど、CotEditor用に出しているPowerPackのFileMaker Pro版といった位置付けで、厳選したCocoa Scriptを掲載しています。
他の開発者の方が使って便利と感じる「ベネフィット」だけの存在として企画し、「コピペで即戦力的に使えるAppleScriptのコード集。その場でテスト実行できる」という、ベネフィットだけで実体がほとんどないという不思議な異次元作品になりました。
実体がないといっても、FileMaker Proでできることが飛躍的に広がる……といいますか、各種掲示板などで「これができない」「これに困っている」という話が出ていたものを丹念に調査し、そうしたものを中心に(すべてではない)収録。とくに、HTMLのタグ除去処理とテキストからの絵文字除去処理!!!
さすがに強豪ぞろいで大賞は取れないと思うのですが、予選通過できて一安心です。一晩で作ったので、ちょっと問題点がいろいろありましたが、修正可能な範囲だったのでセーフ! セーフでしょう。
応募時の内容は、テキスト処理系と画像処理系を中心にまとめました。PDF処理系と画像フィルタ系も試していたのですが、FileMaker Proに組み込む書き方で難儀してこの第1回応募作品には間に合っていません。
# 画像のフィルタ処理を行うためにCIFilterを呼び出していたのですが、結局明示的にメインスレッド実行する必要がありました。FileMaker ProのAppleScriptランタイム環境の挙動が他の環境と違いすぎて、けっこう手を焼きます
応募作品の内容を審査していただいたところ、いろいろ細かい問題点は見つかりました。
・Retina環境で動かすと画像処理系で問題の出るScriptがある(顔認識+マスク処理)、、、これは、他の画像処理(重ね合わせとか)ではRetina対応できているので、こいつだけ間に合っていなかったっぽいです。FileMaker Pro上では単なるテキストとしてScriptを書く必要があり、バンドル内にライブラリを格納するとかインストールした外部ライブラリを呼び出せないといった「AppleScriptランタイム環境としては過酷」なFileMaker Proランタイムの制限が厳しいところです
・データベースが複数オープンされていると正しく「最前面のデータベース」を検出できない、、、、database 1で最前面のデータベースを指定してしまったので、その点を修正。審査Blogには「M1対応していない」と書かれていますが、開発自体をM1 Mac miniで行なっているので、複数データベースをオープンしている状況に対処できていなかっただけでしょう(アプリケーションを終了してデータベース1つだけの状態になったので動作)
ルール上、3回目の最終選考に修正したものを出せることになっているので、FileMaker ProでPhotoshopばりの画像フィルタ処理を行いまくるScriptを追加して出せるといいのではないかと(ただ、CIFilterを使うことになるので、AppleScriptからパラメータを指定できるものが少ない)。
ほかにも有効と思われるのは2点間の距離計算であるとか、多次元配列処理、与えられたデータの順列組み合わせ計算(Permutation)、あたりでしょうか。地味なところで、各種日付表記フォーマットでの文字列化。タグクラウド処理あたりはやりたいところです。データベースに入っているデータをもとに、タグクラウドを生成して表示するといったところで。感覚的にデータ内容の傾向をつかみやすいので。