Automatorでlame使用のMP3エンコーダのドロップレット その2(邪道編)
repeat with obj in input
set sound_file to POSIX path of obj
do shell script "/usr/local/bin/lame -V0 --vbr-new " & sound_file & " " & "$(/usr/bin/dirname " & sound_file & ")/" & "$(/usr/bin/basename " & sound_file & " .wav).mp3"
end repeat
return input
end run
2008年3月19日 (水)
AutomatorでLAMEを使って
MP3エンコーダのドロップレットを作ろうと思ったのですが、これがなかなかうまくいきません。最初に数メガバイトエンコードした後に止まってしまいます。AppleScriptのdo shell scriptを経由するとLAMEはうまく動くんですが...
なぜAutomatorアプリにしたいかって言うと、LAMEの画面が目に入るとなんかこう催眠状態に陥って見とれてしまって仕事の速度が落ちるからなんです。見なければ良いんですけどつい視線が...
2008年3月12日 (水)
クローンもどきの常駐型ファイルの変更監視スクリプト その2(AppleScript邪道編)
グローバル変数を使ったら(on idleより前に入れたモノは全て無駄でした...)大幅に無駄が省けました。前回のはあまりにもダサかったので削除しました。今回のは監視対象ファイルのmodification dateだけでコピーを取るかどうかを判断します。それでもシェルスクリプトやPerlだけをを使った方がマシンのリソースを食わないものができます。
常駐型Intelアプリとして保存するにはスクリプトエディタからフォーマットでアプリケーションバンドルを選択し、「実行後、自動的に終了しない」をチェックします。
tell application "Finder"
set Ima to modification date of file "OSX:Users:Shared:kansitaisyo.txt"
if Ima = Sakki then
else
do shell script "jikan=$(date \"+%Y-%m-%d_%H-%M-%S\");cp /Users/Shared/kansitaisyo.txt ~/Desktop/Sooko/$jikan'.txt';"
set Sakki to Ima
end if
end tell
return 1
end idle
2008年3月11日 (火)
クローンもどきの常駐型ファイルの変更監視スクリプト(AppleScript邪道編)
というようなものを作ってみました。初めてAppleScriptでアプリを作ってみましたが、色々と実験が楽しくてのめり込みますねえ。共有フォルダにある監視対象のブツとデスクトップ上の比較フォルダにあるブツのコピーのファイルのmodification date(変更日)を1秒ごとに比較して、違っていたらデスクトップ上の倉庫にチェックした時間をファイル名としてブツを保存し、比較フォルダにあるコピーも最新のものに更新するという単純なものです。監視対象のブツのmodification dateが刻々と変化するという前提です。modification dateは秒まで取得できますので、1秒ごとの巡回でもしっかり差をチェックできます。当然のことながら1秒以内の変化は把握できませんが。あとmodification dateは内容に違いがなくても保存時刻によって変わってしまいますので、無駄なコピーが多くなるかもしれませんね。実はシェルスクリプトでも同じようなのを書いてみたんですが、やはりと言うか予想通りと言うかシェルスクリプトの方がコンピュータのリソースを使わなくて効率良いです。AppleScriptアプリの唯一の利点はファインダからアプリを終了できることでしょうか。ところで、本当に1秒おきにコピーを取ると突然Spolightがインデックスを作成し始めてファンがブンブン回ることになってもー大変...
AppleScriptでテキストの比較は?
まあUNIXのdiffと同じことをしようとしたんですが、適当な例が見つからなかったので、二つのファイルを読み込んで = かどうかで判断すると言うめちゃくちゃなスクリプトで例の常駐型ファイル監視アプリを作ったらプロセッサの使用率が50パーセント以上(!)の大変なアプリになってしまいました。こういうのはやはりUNIXコマンドとのキメラにするかmodification dateの比較なんかで処理すべきなんでしょうねえ。
2008年3月10日 (月)
AppleScriptアプリはPowerPCアプリ?
AppleScriptのon idleを使ってcronもどきの常駐型ファイル監視アプリを作ったのですが、AppleScriptのアプリってPowerPCアプリとして認識されてしまうんですね。実際はどの程度PowerPCアプリなのかわかりませんが、マウスのカーソルが色付きではなくて懐かしい白黒の丸に変わってしまいます。do shell scriptを使って中身はPerlで処理しているんですが、Perlだけで無限ループを使って同じことした方がAppleScriptでアプリにするよりもバーチャルメモリで半分、プロセッサの負荷で13分の1ですみました。PowerPCアプリということが影響しているんでしょうかね。ということでわざわざAppleScriptを使うことはなかったという間抜けな結果になりました...まあいつものことか...
と書いた後にネット検索したらユニバーサルバイナリにする方法がしっかり見つかりました。保存をアプリケーションではなくてアプリケーションバンドルにすれば良いだけでした。結果として0.3パーセント程プロセッサの負荷が減り、バーチャルメモリの使用量が200MBぐらい減りましたが、カーソルの白黒の丸は変わりませんし、ただのPerlスクリプトの方が効率が良いというのも変わりません。わざわざkillコマンドで殺す必要がないのは手軽ですけどね。
2008年3月 8日 (土)
Automatorを勉強中 その1.6
今ファイルの変更をチェックして変更があった場合にはファイル全体のコピーを保存先のフォルダに送るというようなものを作っているんですが、やはり一定時間ごとに(例えば1秒ごとに)チェックするしか方法が見つかりません。ファイル保存のイベントハンドラがあれば良いのですが、ないみたいですねえ。
2008年1月25日 (金)
Automator勉強中 その1.5
久々のAutomatorネタ(と言えないかもしれません)。Automatorのワークフローはコマンドラインからでも使えるので色々実験しているのですが、これはこれで難しいですねえ。
わたしが使ってみた簡単な実験用のワークフローでのやり方を説明しておきます。
ワークフローの内容
指定されたPDFファイルをページごとのイメージとして「画像」フォルダに保存する。
1.Automatorを立ち上げ、アクションの中から「PDFページをイメージとしてレンダリング」を選び右側にドロップ。同様に「新規フォルダ」のアクションも続けてドロップ。
2.このワークフローをデスクトップ等任意の場所にワークフローとして保存。
3.後はターミナルを立ち上げてautomatorコマンドで使うだけです。わたしの例の場合は i オプションでインプットに語彙集のPDFファイルを指定、その後に使うワークフローを指定しています。形としては「automator -i インプット ワークフロー」というような感じです。
4.結果
繰り返し文等を使おうとするとエラーが出てしまいます。まあ、何かに使えるかもしれませんけど、もしかしたら全く役に立たないかもしれません。
2007年11月 3日 (土)
Tigerで作ったAutomatorアプリが
動かなくなっていました。同じワークフローをLeopardのAutomatorで作り直してアプリにしたら動きましたが、細かいところが変更されていました。
あとAutomatorが作動している時と作動後のマウスの動きが変です。
2007年6月13日 (水)
Automator勉強サボり中
ということで、ここ3週間程全く手をつけていません。LeopardのページでAutomatorを見てみたら「In Leopard, Automator has a new recording function」といきなり書いてありました。これは楽しみですねえ。
2007年5月20日 (日)
AppleScriptの基本を勉強する (アンチョコ篇)
AppleScript関連でまたまたネット徘徊していたら、Appleのサイトでこんなページを見つけました。というか、前にも見ていたのですが、注意力散漫のため素通りしていました。で、このページに「Scale Image(s) by Percentage」というのがあるではないですか!早速スクリプトをダウンロードして、中身を覗いてみたらけっこう応用ができそうです。Automatorのアクションもこれがベースなのかな?
2007年5月 7日 (月)
Automator + iCal vs. Unixのcron
先日Automatorで iCal用のプラグインを作って設定した時間にメッセージを表示させることをしましたが、これって応用するとUnixのcronで行うような作業の大半を処理できてしまいますね。どちらを選ぶかは好みの問題でもありますが、Unixのcronの場合crontabの編集が面倒です。個人的にはどんどんAutomatorの方に傾いています。でも逆にAutomator経由でぐにょぐにょやるのが面倒くさいという人もいることでしょう。で、ちょっと検索してみたらGUIでcronを扱えるソフトが見つかりました。CronniXというソフトで、使い勝手はなかなか良さそうです。
2007年5月 4日 (金)
Automator勉強中 その1.4.2 (iCalとの連携)
目覚まし時計のアプリとかありますが、仕事中は実はコンピュータをミュート状態にしていることが多いので、あまり使う機会がありませんでした。そこで音ではなくビジュアルに表示してくれるものがいいなと思ってウィンドウのテキストで知らせてくれる簡単なプラグインを作ってみました。
1. Automatorを立ち上げてライブラリのAutomatorから「AppleScriptを実行」を選択して右側のウィンドウにドロップ。自分で書くスクリプトは「display dialog "〜"」だけです。〜の部分に好きな文を書き込みます。

2. ファイルから「プラグインを別名で保存」を選んで、

3. 出てくるウィンドウでプラグインの名前を書き、プラグインの対象に「iCalアラーム」を選びます。

4. この後iCalが自動的に立ち上がって、プラグインがスケジュール上に見えます。プラグインを自分の好きな日時の場所に移動して終わりです。

2007年5月 3日 (木)
AppleScriptの基本を勉強する (do shell script)
なかなか良いテクニカルノートを見つけました。しかしまともに読んで実験する時間がない...
2007年5月 2日 (水)
AppleScriptの基本を勉強する(教材)
ず〜っと勉強したかったんですが、時間はないし、今までUnixコマンドで何とかなってしまっていましたし、高い本も買いたくなかったので常時先送り状態になってしまっていました。使ったとしてももっぱらosascriptコマンド経由でお遊び程度。しかしAutomatorにこり始めてからAppleScriptでもっと何かしたいなあと思ってネット検索してみました。日本語で詳しく書かれたものはベースがかなり前のものが多く、正直なところ現状とどのぐらい差があるのかわかりませんでした。が、英語ではすぐに使えるサイトが見つかりました。MacScripter経由Applescript Sourcebookというサイトです。ここのAppleScript for Absolute Starters下のBill Cheeseman氏の同じ題名のページにBert Altenburg氏が書いたこれまた同じ題名のPDFファイルがリンクされています。これはわたしの様な初心者にはもってこいの教材です。興味のある方は是非ダウンロードして読んでみてください。
2007年4月30日 (月)
Automator勉強中 その1.4.1
研究中等と偉そーに書いていましたが、勉強中に修正しました(それでもやっていることのレベルが低すぎると言う声が...)。既にカテゴリーはメチャクチャになっていますけどついでにカテゴリーもMacからOSXに変更しました。今後も主にUnixコマンドにAutomatorでGUIをつけてコマンドを書く手間を省くような感じのものを扱いたいと思います(と言ってもアイコンをクリックするかドラッグ&ドロップできる程度ですが)。
Automator勉強中 その1.4(基本覚え書き)
ライブラリのFinderにある「選択されたFinder項目を取得」はAutomatorアプリにドロップされたアイテムのパス名を次のワークフローに渡してくれます。例えばデスクトップにあるhogehoge1.txt、hogehoge2.txt、hogehoge3.txtの三つを選択してドロップしたとすると下記のようにパスが次のワークフローに渡されます。
/Users/misabazooka/Desktop/hogehoge2.txt
/Users/misabazooka/Desktop/hogehoge1.txt
/Users/misabazooka/Desktop/hogehoge3.txt
改行付きでパスが渡されるので、「シェルスクリプトを実行」でコマンドラインでやる時みたいにそのままパスを使おうとするとうまくいきません。改行を抜くには色々方法がありますが、bashですぐに処理をする時にはコマンド echo とオプション -n、perlで処理する時はコマンド chomp を使えば良いでしょう。画像の例ではドロップされたアイテムをコマンド cat とオプション -b を使ってデスクトップに行番号を付けてコピーしています。逆引用符を使って先に echo -n で改行を抜いたパスを cat に渡しています。勿論これだけでは何の役にも立ちませんが、コマンドラインでやる時みたいにドロップされたアイテムをシェルスクリプトで処理したい時にはこの手順を知っておくと便利かも。
2007年4月27日 (金)
公式なメール文書の保存方法
わたしの仕事場では、公式な電子メールの保存方法が決まっています。フィンランドで一般的に使われている方法ですが、まずメールをプリントアウトし、それをスキャンして、TIFF画像で保存するというものです。これ見ていて大変だなあと思っていたのですが、今のMacを使っている人には簡単に出来ますねえ。やり方は、保存したいメールを全てPDFでまずは保存しておきます。その後Automatorの「新規フォルダ」と「PDFページをイメージとしてレンダリング」を組み合わせたアプリを作ってその上に、PDFファイルを落とすだけ。大幅な時間の節約になると思いますが、これだけ楽になるんだからMacをもっと導入せよという企画書でも出してみようかな。
追記 あっ、勿論プレビューでも同じことができます。でも1ページずつしか出来ないんですよね。
2007年4月24日 (火)
Automator勉強中 その1.3
Automatorで「新規フォルダを作成」アクションだけをアプリにして複数のファイルを落としてみたら、作成されたフォルダにファイルがコピーされていました。これなかなか使えそう。不可視フォルダを作ってそこでUnixコマンドに処理させてしまえば外見上はスマートな処理が出来そうですね。処理が終わったらフォルダを消せば良いだけだし。
Automator勉強中 その1.2
またまたオートメーターをいじってます。先日書いたPerlのEncodeモジュールを使ってiso-8859-1テキストをutf8にするプラグインですが、今日同僚用に新たに作ったので手順を簡単に書いておきます。
1. デスクトップに「UTF8」という名のフォルダを作り、その中に「Kekka」という名のフォルダを作っておきます。
2. オートメーターを立ち上げてオートメーターの項目を選んで「シェルスクリプトを実行」をドロップします。
3. スクリプトは「/bin/bash」を選んで予め書いてあるcatを消去し、以下のコマンドを書き込みます。
for i in ~/Desktop/UTF8/*.txt; do perl -MEncode -ne '$muunneltava = encode("utf8", decode("iso-8859-1", $_)); print $muunneltava;' $i > ~/Desktop/UTF8/Tulokset/`basename $i .txt`_utf8.txt; done
4. オートメーターのファイルから「プラグインを別名で保存...」を選択します。
5. 保存するファイルの名前を決めて「プラグインの対象」にフォルダアクションを選択、「添付先のフォルダ」に1で作った「UTF8」を選択します。最後に「フォルダアクションを可能にする」にチェックを入れます。
これで先程作った「UTF8フォルダ」にiso-8859-1テキストをドロップするだけで、その中にある「Kekkaフォルダ」に「元のファイル名 + _utf8.txt」というutf8のテキストが作成されます。注意点としてはフォルダとファイルのパスは「~/Desktop/...」というようにしておくことです。「/Users/misabazooka/Desktop/...」という風にしてしまうと、ユーザーごとにパスを変更しなくてはならないので汎用性がなくなります。
2007年4月22日 (日)
Automator勉強中 その1.1
結局は他のアクションからUNIXコマンドへの引き継ぎを諦めました。だって遅いんだもん。代わりに、この前に紹介したPerlのEncodeモジュールを使ってテキストファイルをiso-8859-1からutf-8にするUNIXコマンドをAutomatorでプラクインにしてフォルダーアクションに取り込みました。これだとパスが決まってしまうのでワークフローの汎用性はないのですが、プラグインにしてフォルダーにドロップするだけでコンバートしてくれるので、よく使う人は重宝するかもしれません。
2007年4月21日 (土)
Automator勉強中
またまた時間もないのにやっています^^
スクリプトの実行を使っているのですが、ワークフローの中でなかなかうまく引き継ぎができません。やっと出来たのはiso-8859-1テキストをドロップするとutf8に変換するアプリだけ。しかも複数のファイルをドロップすると全て1つになって出力されてしまいます。難しいですなあ。
2007年3月22日 (木)
画像の拡大縮小を手軽にAutomatorで
昨日今日とあまり好きではない画像処理をやるハメに。しかもえ〜こんなにというぐらいの数。最初はsipsコマンドを使って拡大縮小ぐらいやろうと思っていたのですが、拡大縮小をパーセントではできない(わたしが知らないだけ?)みたいですね。仕方がないのでiPhotoでも使おうかと思っていたのでですが、思い出しましたよん。Automatorちゃんを! ファイルの大量処理とかいうとすぐにコマンドラインからしようとするのは病的でいけませんね。早速簡単なワークフローを書いてプログラムとして保存して試したら見事に動きました!(当たり前か)
手順は下記の通りです。
1. Automatorを立ち上げてFinderの項目から「Finder項目をコピー」を選んで右側のウインドウにドロップします。この時にコピー先のフォルダーも指定しておきます。わたしの場合は「結果」という名のフォルダーを選択しています。
2. 次にプレビューの項目から「イメージをサイズ調整」を選んで右側のウインドウにドロップします。わたしの場合は15%まで縮小。
3. 最後にこのワークフローをプログラムとして保存すれば、アイコンの上に画像ファイルをドロップすると自動的に指定したファルダーに拡大もしくは縮小したファイルをコピーしてくれます。
スクリーンショットを撮るために日本語環境にしてみましたが、普段見慣れていないのであたふたしてしまいました (^^;
その他のカテゴリー
Apple | AppleScript & Automator | HTML | iPhone | japani-suomi | JavaScript | Mac | OSX | Suomeksi, koska en uskalla kirjoittaa japaniksi | Suomeksi, koska haluan kirjoittaa suomeksi | Suomeksi, koska tietsikka ei ymmärrä japania | suomi-japani | XML | おすすめサイト | お知らせ | ぼやき | ぼやき (フィンランド語版) | ウェブログ・ココログ関連 | クルマ | サッカー | スクリプト | スポーツ | ニュース | バイク | パソコン・インターネット | ファッション・アクセサリ | フィンランド | フィンランド人 | フィンランド語 | ユーミン | 北欧 | 悲劇 | 携帯・デジカメ | 文化・芸術 | 旅行・地域 | 日記・コラム・つぶやき | 映画・テレビ | 書籍・雑誌 | 私的Mac生活 | 経済・政治・国際 | 芸能・アイドル | 言語学 | 音楽












最近のコメント