ホーム > タグ > FileMaker Pro
FileMaker Pro
FileMakerにターミナルコマンドの結果を渡す
- 2008-10-28 (火)
- FileMakerPro
AppleScriptを使って、FileMakerにターミナルコマンドの結果を渡す方法です。
ファイル名等を取得し、それをFileMakerに読み込ませる必要があったので、調べました。
どうやら、FileMakerに変数を作って値を受け渡すことは出来ないようなので、グローバルフィールド等に値を渡すことになります。
FileMakerの「Appleスクリプトを実行」スクリプトステップに下記のように書き込みます。
set _ls to do shell script "ls -1" --変数 _ls に Terminalコマンド "ls -1"の返値をセット tell application "FileMaker Pro Advanced" set cell "f1" of current record to _ls as string --変数 _ls を フィールド f1 へ変数の値を書き込み end tell
1行目でターミナルコマンドコマンドを実行し、結果を _ls 変数にセットします。
4行目でファイルメーカーで現在開いているファイルのフィールド名 f1 に1行目の変数 _ls をセット
今回の場合ファイルの指定などを行う必要はありません。
FileMaker のスクリプトと同じように、実行をしているファイルがデフォルトで指定される為です。
他のファイルに値を書き込む必要がある場合は、そのファイルからスクリプトを実行するなどを行えばできます。
- Comments: 0
- Bookmark: 1
- Trackbacks: 0
MacOSX Leopard に Ruby インストール
- 2008-09-05 (金)
- Ruby
仕事でFileMakerを使って色々な情報を管理してる。
今はPerlを使ってFileMakerでは時間がかかりすぎる処理や、プラグインを使わないと出来ないような事をやっているのだが、つい最近「FileMaker API for Ruby」という物を見つけてしまった。
Perlに値を受け渡す時、FileMakerからtab形式等で書き出した物を処理させていたが、
Rfmを使えば直接情報を読み込み、書き込みが出来るようになるということで、Rubyを始めてみることにした。
Rubyをインストールする上で苦戦した事等をメモしていく。
MacPortsでRuby関連のインストール
MacPortsのインストール等は以前「MacPortsでステキなUNIXツールをインストール」を参考にさせてもらった。
すでにインストール済みである。
だが、インストールしたのは結構前なのでアップデートをしよう。
MacPortをアップデート
$ sudo port -d selfupdate $ sudo port upgrade installed
RubyGemsをインストール(PerlのCPANみたいなヤツ?)
$ sudo port install rb-rubygems
参考:MacにRailsをゼロからインストールする一番簡単な方法
Rubyを実行してみる
あとは適当なプログラムを書いて実行してみる。ぐぐれば適当な短いプログラムはたくさん出てくる。
$ ruby hogehoge.rb
その時下記の様なエラーが出た場合ライブラリーが足りない or 古いのでインストールしよう
エラー
$ ruby hogehoge.rb .../rubygems.rb:251:in `report_activate_error': Could not find RubyGem activerecord (>= 0.0.0) (Gem::LoadError)
上記の例の場合はactiverecordをインストール
$ gem install activerecord
追記:
MacPortsで一度インストールに失敗した場合アップデートをかけても、失敗し続けることがある。そういう時はインストール途中で止まっているファイルを一度クリアしてから、もう一度インストールしよう
再インストール(rb-rubygemsの例)
$ sudo port clean rb-rubygems $ sudo port install rb-rubygems
他にも、RubyGemsに登録されている物自体が古い場合があるので、RubyGemsの更新も忘れずに行おう!
$ sudo gem update --system $ sudo gem update
- Comments: 0
- Bookmark: 5
- Trackbacks: 0
FileMaker Pro + AppleScript で Perl
- 2008-05-17 (土)
- AppleScript | FileMakerPro | Perl
FileMaker Pro + AppleScirpt + Perl
FileMaker ProのWebビューアーを使ったスパイダリング(HTMLの収集)に限界が来たので、Perlでの開発を現在行っている。
HTMLのダウンロードという意味では、Perl等をかましてレンダリング・目的のHTML以外(画像等)のダウンロードを行わせないようにすれば、さほど変わらないのだが、スクレーピング(HTMLを分解し、必要な情報のみを抽出)は桁外れにPerlの方が早い。
ということで、FileMaker Pro → AppleScript → Perlという流れで情報収集を行っている。
FileMakerからAppleScriptを実行する方法はスクリプトステップの「AppleScriptを実行」というのは説明するまでもないか?w
AppleScriptからPerlを実行する時はdo shell scriptを使う
do shell script "perl 〜.pl"
“”の間はターミナルで実行している命令と一緒。
perlを実行する手前でcdコマンドを実行したい時等は、
do shell script "cd ./Document/; perl 〜.pl"
というに、セミコロン(;)で区切って複数の命令を書く。
PerlをTerminalから実行する時、色々とメッセージを返すようにしていたとしても、コマンドの実行が終わるまで基本的に何も出来ない。
なので、基本的にlogとしてデーターを残すようにしている。
do shell script "cd ./Document/; perl 〜.pl > 〜.log"
もうちょっと、AppleScript
作ったperlのスクリプトではLWP::UserAgentを使っているのだが、1ページダウンロードに通常1秒〜1.5秒かかっている。
ただし、何故か分からないのだが、同じスクリプトを2コ同時に実行すると、実行して少し経ってから1ページのダウンロードが0.3秒〜0.7秒にまでスピードアップする。
スクリプトを2つ実行することで、結果的に2倍のスピード!
──というのならばまだ分かるのだが、スクリプトを2つ実行することで、4倍以上のスピードが出るのは何故だ?
ちなみに、2つ実行してスピードが速くなった後に、片方のスクリプトを停止しても、1ページのダウンロードが0.3秒〜0.7秒というスピードは変わらない。
※通常1秒間に数ページみに行くのは相手側のサーバーに負担になります。マナー違反になるので注意!
1つのドメインに対してのみ現在は行っているので、もしかすると相手側のサーバー側の問題なのかもしれないが謎だ…。
お分かりになる方いらしたら、是非教えて頂きたい。
とりあえず原因は不明だが「なら、2つ以上のPerlを同時に動かせばいいのか!」という結論に至り、バックグラウンドでdo shell scirptを実行出来ないかと調べてみると、アップルのテクニカルノートにあった。do shell script in AppleScript
do shell script "perl 〜.pl > 〜.log 2>&1 &"
とすれば良いらしい。
これを上手く使えば、分割処理が出来るので更なるスピードアップも望める!
さらに色々調べていると面白そうな記事を発見!
AppleScript で Perl に GUI をつける
これは、かなり勉強になりそう。後日挑戦してみたい。
- Comments: 0
- Bookmark: 0
- Trackbacks: 0
Perlは手軽で、強力なツール
- 2008-04-30 (水)
- Other
皆さんはプログラミングを始めた切っ掛けってなんですか?
今から始めようと思ってる貴方は何の為に始めようとしてますか?
小学校時代の私にとってのパソコンとは、Macとは、テレビゲームの無い家での唯一のブラウン管を使った遊び道具でした。
とはいっても、当時はTVゲームのようなゲームは持っていなく、同世代の人には多いと思うけどドローソフトで絵を描いて遊んでいた。年賀状なんかもそれで作ったこともあった。
その後特にデザイナーという訳でもないが、親の影響でPhotoshopをバージョン5.5から使い始め、高校卒業の頃にはオペレーターとしてデザインの仕事もしていた。
ある日、今のバイト先でもある会社で使っていたFileMaker 8.5の新機能であるWebビューアーでHTMLをダウンロード出来るという情報を聞き入れ、小学校時代からたまっていた自動処理に対するフラストレーションが爆発し、それまでプログラミングのかけらも知らなかったのですが、徹夜して6日でmixiをハックするツール「mixi Reader」を作り上げた。
そのmixiをハックツールのことは、後日お話するとして、そんなことが切っ掛けでプログラミング”らしい“ことを始め、複雑な計算式も書けるようになり、先日「aipo4」をインストールする為に存在も知らなかったShell Scriptを読む為に軽く勉強を始め、Perlが Shell Script と同じように手軽に使えるツールであることに気付いた。
今思うと、小さい頃当たり前のように始めたパソコンの用に、Perlにももっと早く触れる機会があればと想う。
Perlが手軽というのも、ある程度前置きがあって始める切っ掛けがフェイドインのような自然な流れだったから思うのだが、改めで思ったのは、プログラムは「print “Hello World!”」以上でも以下でも無い。ということ。
printという命令(関数)を使ったら、その後に続く文字が出る。
別の命令を使えば、別の答えが出る。
じゃあ、やりたい事にはどの命令を使えばいいのか。それを考えるだけ。
もちろんスピード等を求めたり、とても複雑な事をやろうとしたら、大変だけどでも、これの積み重ねでしかない。
ただ最初に本を読むと自分の目的には必要の無いことが大量に出てくる。訳側からなくなりがち。
それでも、分からないことを調べたり、とりあえず進めて読んで目的の情報までたどり着くまで頑張れば「ある程度のレベル」のやりたい事なら、誰でも出来る。
プログラムなんて「1+1=2」という式が誰でも読める。英語も勉強をすれば書けるようになる。それと一緒なのだ。
とりあえず、MacOSXがUNIXベースで、Perlは元々入っていて「print “Hello World!”」まで行き着くには数クリックのマウス操作だけでいいという今の環境に感謝。
- Comments: 0
- Bookmark: 0
- Trackbacks: 0
Home > Tags > FileMaker Pro