フォト

デブネコのおすすめリンク集

無料ブログはココログ

2009年9月15日 (火)

Automatorでlame使用のMP3エンコーダのドロップレット その2(邪道編)

以前にAutomatorを使ってlameのMP3エンコーダのドロップレットを作ると、「シェルスクリプトを実行」ではlameが起動してすぐにこけるということを書きましたが、今でも状況は変わっていないみたいです。lameが何らかの形でAutomatorで使用できない部分を含んでいるのかもしれませんがド素人のわたしにはわかりません。実際他のコマンドは問題なく動きます。例えばmpg123を使ってMP3ファイルをWAVにエンコードするドロップレットを下の画像のコードみたいに書くとうまく動きます。

Mpg123

for f in "$@"
do
  cd $(dirname "$f")
  /usr/local/bin/mpg123 -w $(basename "$f" .mp3).wav "$f"
done



すっきりしないながらもしかたがないので「AppleScriptを実行」を導入してその中で「do shell script」を実行し問題を回避しています。lameのオプションは適当な例です。

Lame_automator


on run {input, parameters}
  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



これはもちろんAppleScriptだけで下の画像みたく書くこともできますが、わたしはSnow LeopardのAutomator実行中に出てくる歯車が気に入っているので敢えてわざわざAutomatorで組んでいます。

Lame_as_2






on open dd_items
  repeat with object in dd_items
   set sound_file to POSIX path of object
   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
end open

2008年3月19日 (水)

AutomatorでLAMEを使って

MP3エンコーダのドロップレットを作ろうと思ったのですが、これがなかなかうまくいきません。最初に数メガバイトエンコードした後に止まってしまいます。AppleScriptのdo shell scriptを経由するとLAMEはうまく動くんですが...

なぜAutomatorアプリにしたいかって言うと、LAMEの画面が目に入るとなんかこう催眠状態に陥って見とれてしまって仕事の速度が落ちるからなんです。見なければ良いんですけどつい視線が...

2008年3月12日 (水)

クローンもどきの常駐型ファイルの変更監視スクリプト その2(AppleScript邪道編)

グローバル変数を使ったら(on idleより前に入れたモノは全て無駄でした...)大幅に無駄が省けました。前回のはあまりにもダサかったので削除しました。今回のは監視対象ファイルのmodification dateだけでコピーを取るかどうかを判断します。それでもシェルスクリプトやPerlだけをを使った方がマシンのリソースを食わないものができます。

常駐型Intelアプリとして保存するにはスクリプトエディタからフォーマットでアプリケーションバンドルを選択し、「実行後、自動的に終了しない」をチェックします。

global sakki tell application "Finder"  set viimeksi to modification date of file "OSX:Users:Shared:kansitaisyo.txt" end tell on idle
 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がインデックスを作成し始めてファンがブンブン回ることになってもー大変...

あまりにもダサイので削除しました。その2をご覧ください。

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.1

このシリーズも読み返してみると最初の頃は我ながらすごくとろいことやっていますね (^^;

Automatorで作った古いアプリを書き直してみました。ドロップしたテキストファイルをISO-8859-1からUTF8にエンコードするアプリです。


Utf8

Automator勉強中 その1.5

久々のAutomatorネタ(と言えないかもしれません)。Automatorのワークフローはコマンドラインからでも使えるので色々実験しているのですが、これはこれで難しいですねえ。

わたしが使ってみた簡単な実験用のワークフローでのやり方を説明しておきます。

ワークフローの内容
指定されたPDFファイルをページごとのイメージとして「画像」フォルダに保存する。


1.Automatorを立ち上げ、アクションの中から「PDFページをイメージとしてレンダリング」を選び右側にドロップ。同様に「新規フォルダ」のアクションも続けてドロップ。

1





2.このワークフローをデスクトップ等任意の場所にワークフローとして保存。

2





3.後はターミナルを立ち上げてautomatorコマンドで使うだけです。わたしの例の場合は i オプションでインプットに語彙集のPDFファイルを指定、その後に使うワークフローを指定しています。形としては「automator -i インプット ワークフロー」というような感じです。

3





4.結果

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 "〜"」だけです。〜の部分に好きな文を書き込みます。


Kaigi1


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


Kaigi2


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


Kaigi3


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


Kaigi4

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 に渡しています。勿論これだけでは何の役にも立ちませんが、コマンドラインでやる時みたいにドロップされたアイテムをシェルスクリプトで処理したい時にはこの手順を知っておくと便利かも。

1_2

2007年4月27日 (金)

公式なメール文書の保存方法

わたしの仕事場では、公式な電子メールの保存方法が決まっています。フィンランドで一般的に使われている方法ですが、まずメールをプリントアウトし、それをスキャンして、TIFF画像で保存するというものです。これ見ていて大変だなあと思っていたのですが、今のMacを使っている人には簡単に出来ますねえ。やり方は、保存したいメールを全てPDFでまずは保存しておきます。その後Automatorの「新規フォルダ」と「PDFページをイメージとしてレンダリング」を組み合わせたアプリを作ってその上に、PDFファイルを落とすだけ。大幅な時間の節約になると思いますが、これだけ楽になるんだからMacをもっと導入せよという企画書でも出してみようかな。

追記 あっ、勿論プレビューでも同じことができます。でも1ページずつしか出来ないんですよね。

Tiffi

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


Sono1


4. オートメーターのファイルから「プラグインを別名で保存...」を選択します。


Plugin


5. 保存するファイルの名前を決めて「プラグインの対象」にフォルダアクションを選択、「添付先のフォルダ」に1で作った「UTF8」を選択します。最後に「フォルダアクションを可能にする」にチェックを入れます。


Sono2


これで先程作った「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. 最後にこのワークフローをプログラムとして保存すれば、アイコンの上に画像ファイルをドロップすると自動的に指定したファルダーに拡大もしくは縮小したファイルをコピーしてくれます。

_1

スクリーンショットを撮るために日本語環境にしてみましたが、普段見慣れていないのであたふたしてしまいました (^^;

2009年11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

デブネコのおすすめブログ・ホームページ集

  • ミサの日芬・芬日語彙集 / Misan japani-suomi / suomi-japani -sanasto
    Ilmainen japani-suomi / suomi-japani -nettisanasto. フリーの日本語ーフィンランド語語彙集。お金をかけずに手軽にフィンランド語の勉強をしたい方に最適。
  • Söpö
    名前の通りとても可愛いmacoさんと黒猫まめちゃんのホームページ。フィンランドのことやアンティーク着物等のことがとてもわかりやすく深く書かれています。フィンランドファンはもとより着物ファンもGo!
  • とちの実Diary
    心が温まる日常にフィンランド関連の情報に溢れる、謎の奥様とちの実さんのブログ。フィンランドにいてもこれだけフィンランドの情報を得るのは簡単ではありません。
  • Kiitti!
    lahjaさんが綴るフィンランド人の彼氏との国際恋愛進行形ブログ。フィンランド人の彼氏、彼女を持つ人もしくは持つ予定の人は必見!
  • makon makoisia herkkuja
    フィンランド在住のmakoさんがオリジナル料理のレシピをきれいな写真とともに紹介しているお料理ブログ。お料理ファンの方はGo!

最近のトラックバック