2009年5月21日木曜日

シェルスクリプトを「.app」形式にする方法 - 「SayKanji.app」を作ってみる。

先日、SayKanaを取り上げたのですが、翌日にはザリガニが見ていた...。さんが漢字対応してくれました。仕事早いな〜と思っていたら、あっという間にバイリンガルになっています。例えば、文中にある「Apple」を「あっぷる」と読んでくれます。凄い!

という訳で、私の環境にも「SayKanji」を導入させて頂きました、ありがとうございます!


さて、今回はこのシェルスクリプトを使わせて頂いて、Macの「.app」形式のアプリケーションを作ってみようと思います。ちなみに、参考にさせて頂いた情報源はコチラです。

ここで、私が想定しているアプリケーションとは...
  • Dockに表示される
  • クリップボードが更新された場合、クリップボードの文字列を読み上げる
こんな感じで、メチャクチャ適当なシンプルなアプリケーションです。それでは早速作ってみたいと思います。
  1. シェルスクリプト(saykanji.sh)を作成する
    これは、ザリガニが見ていた...。さんのページを参考にして、「saykanji.sh」を作成します。
    シェルスクリプトの置き場所は必要に応じて変更する事ができますが、ここでは「/usr/local/bin」以下に置いたと仮定しています。また、適宜「.bash_profile」なども書き換えて、ターミナル上で「saykanji」コマンドがちゃんと動作する事を確認しておくと良いと思います。


  2. シェルスクリプト(saykanji.sh)を呼び出すAppleScriptを作成する
    スクリプトエディタ.appを開いて、例えば、次のようなコードを書きます。
    ※注意!↓のスクリプトは、ド素人が見よう見まねで書いたヒドイ代物ですですので、ご利用は計画的に!(利用する場合は、末尾もFAQもご覧下さい)
    (追記:5/21)コードを修正(動かなかったバージョンのスクリプトをアップしていましたw)
    (追記:5/23)Gururiさんに添削して頂きました。次のスクリプトの代わりに、コメント欄にあるGururiさんのスクリプトを利用して下さい!
    set pbstring to ""
    set prev_pbstring to ""
    repeat
    tell application "System Events"
    delay 1.0
    set pbstring to (clipboard info for string)
    if pbstring is not {} then
    set pbstring to (the clipboard as string)
    if pbstring is not prev_pbstring then
    do shell script ". /usr/local/bin/saykanji.sh;saykanji " & "'" & pbstring & "'"
    set prev_pbstring to pbstring
    end if
    end if
    end tell
    end repeat
    このスクリプトを保存する時がポイントになります。通常は「フォーマット」の項目に「スクリプト」が選択されていますが、ここで「アプリケーション」(または、「アプリケーションバンドル」)を選択して下さい。
    (追記:5/23)Gururiさんのスクリプトを利用する場合、「実行後、自動的に終了しない」にもチェックを付けると、正常にアプリケーションが終了するようになります。


    ↑スクリプトエディタの保存画面


  3. アイコン(icnsファイル)を作成する
    Dockに表示させるからには、アイコンも設定しておきたいですよね。その場合は、icnsファイルが必要になります。png形式などの画像からicnsファイルを作成するには、「Img2icns」というアプリケーションを利用するのがオススメです。(デスクトップ用のアイコンならFree版でも作成可能です)


    ↑Img2icnsの画面
    アイコンで使用する画像をドロップして、1ボタンでicnsファイルが生成されます。


  4. SayKanji.appにアイコンを設定する
    Finder上で、2.で作成した「SayKanji.app」を右クリック→「情報を見る」を選択します。(Command+IキーでもOK)表示された情報画面の左上の表示されている標準アイコンの場所に、3.で作成したicnsファイルをドロップします。


    ↑SayKanji.appの情報画面
    ここでアイコンを変更する事ができる。


  5. SayKanji.appを起動する
    起動すると、こんな感じでDock上に表示されます。文字列をコピー(Command+Cキー)すると読み上げてくるアプリケーションが出来上がりました。




以上です。実は意外と簡単にシェルスクリプトからMac用のアプリケーションを作成する事ができます。覚えておくと、何かの役に立つかもしれません!


(FAQ)
2.で紹介したAppleScriptには、いくつか問題があります。
  • 終了しない!
    → アクティビティモニタなどから「強制終了」して下さい。
  • 落ちる!
    → 「<」、「>」等、苦手な文字があるようです。
他にも毎秒クリップボードを監視しているのでリソースを食うとか...。正直公開レベルでは無いのですが、書かないと話が進まなかったので、ごめんななさい。という訳で、素敵なアプリケーションに書き換えてくれる方を募集しています!

2009年5月19日火曜日

Macでも”ゆっくり”できる、SayKana

今回紹介する「SayKana」は、わかばマークのMacの備忘録さんのエントリ「SayKana」を読んで知りました。で、実際に試してみたら、面白いですね!

SayKanaは、日本語音声合成ソフトウェアです。インストールすると、Macでも「かな(*1)」をしゃべれるようになります。Macの「say」コマンドの日本語版に相当するもの、言えば分かり易いでしょうか?

例えば、こんな感じで使う事できます。
saykana -s 90 "ゆっくりしていってね"
どこかで聞いた事があるような気がしますね。


SayKanaを少し使ってみて、特に賢いな〜と感心したのは、数字の扱いです。例えば...
saykana "でんわば'んごーわ、<NUM VAL=01-2345-6789>です。"
saykana "すみませ'ん、<NUMK VAL=10 COUNTER=ふん>+おくれま'す。 "
を実行すると、上のコマンドでは数字を「棒読み」してくれます。下のコマンドでは、数字の桁を認識して「じゅっぷん」と読んでくれます。助数詞の変化にも対応しているところがスゴイです。

これ以外にも、アクセントや句切り記号を使って、より自然な日本語をしゃべらせる事もできます。詳しく知りたい方は、音声記号の仕様書(PDF)を確認してみて下さい。


という訳で、SayKanaはネタとしても楽しめるし、実用性もかなり高いアプリケーションだと思います。特に、もうAlex(*2)には飽きたよ...という方にはオススメです!


SayKanaのダウンロードはコチラから。


*1:漢字混じりの文には対応していません。ひらがなとカタカナだけが読まれます。その場合は、mecabなどで前処理をすればOKだと思います。
*2:sayコマンドのデフォルトで使われるキャラクター

2009年5月17日日曜日

お金を掛けずにMacbookを冷却する方法

タイトルは半分釣りです。
〜があったら教えて下さい。という意味も込められていますw


が、これだけではあんまりなので、私がやっている冷却方法も紹介したいと思います。
  1. ソフトウェアで冷やす
    Macにもコンピュータ内のファン回転数をコントロールするアプリケーションがあります。私は「iCyclone」というアプリケーションを利用しているのですが、コレを使ってファン回転数を上げ、冷却する事ができます。


    ↑iCycloneの設定画面


    iCycloneには、「マニュアル(M)」と「オート(A)」の2つのモードが用意されています。どちらも直感的に使う事ができますが、特にこだわりがなければ、「オート」を利用すれば良いと思います。この時、「Active Noise Control」にチェックを入れておけば、ファンの騒音がそこそこ抑えられて良い感じだと思います。

    ここ何日間は、比較的涼しかった事もあると思いますが、iCycloneを実行するだけであっという間に温度が下がって、眺めているだけで気持ち良いですw


  2. 物理的に冷やす(※実験中)
    私が使っている白Macbookは、キーボード左上付近が異常に熱くなります。特に本体裏側は酷いもので、Macbookの底も、机も溶けるんじゃないか?と思うくらい熱くなります。




    この問題に対処するために、ありがちですが、机とMacbookの間に隙間を作ってみました。用意するモノは、薄型CD/DVDケース(空)、3個です。設置方法は、↓のような感じで。




    こんな感じでCDケースを並べた上にMacbookを置いても、意外と安定感は保てました。後はMacbookの下に空気の流れを作れれば、冷却効率が上がるのでは!?と試しているところです。が、残念ながら、今のところ目に見えて分かる効果はありません...。唯一、机が溶ける心配が無くなった事は良かったのですがw


室温の上昇を考えると、これから先、エアコンを付け始めるまでが、コンピュータにとって一番厳しい時期なのだと思います。今年も試行錯誤をしているところですが、もし手軽に「冷やす」方法、アイディアがあれば是非教えて下さい!

2009年5月13日水曜日

Safari4 Bublic Betaもアップデート!

Mac OS X 10.5.7のリリースに合わせて、Safari4 Public Betaもアップデートされました。今回は、主にセキュリティ関係のアップデートのようです。詳しくはコチラで確認する事ができます。

なお、Safari4 Public Betaのアップデートは、Macを10.5.7に上げないと表示されませんでした。また、このアップデータのダウンロード容量は、31.8MB、こちらも再起動が必要となります。




Mac再起動後、Safariのバージョンを確認してみたところ、Build番号が1つ上がっていました。

Mac OS X 10.5.7がリリース。

今週末?と噂されていた、Mac OS X 10.5.7がリリースされましたね!




今回のアップデート容量は、449MB!です。当然ながら再起動が必要になります。Mac OS X 10.5.7の詳しい内容は、コチラのページで確認して下さい。

私の環境では、無事に更新する事ができました。が、他の方の環境ではトラブルが発生したりしているようです。ちなみに、再起動は2回掛かりました。特に2回目の再起動後、結構待たされたので、少しヒヤヒヤしました^^;

トラブルが気になる方は、適用前にコチラのページを確認しておくと良いかもしれません。現時点では、「10.5.7」の情報は出ていないようですが...。


2009年5月12日火曜日

Zipファイルの中身までSpotlight検索可能にする、「Ziplight」

つい先程、「Ziplight」というSpotlightのプラグインを導入してみました。

このプラグインは、zipファイルの中身までSpotlightの検索対象としてくれます。少し試してみたところ、便利だったので紹介したいと思います。


Zipファイル内まで検索した証拠画像?はコチラです。


↑Ziplightを導入後の検索結果


分かりにくい画像でごめんなさい...。
補足説明をしますと、「buz.zip」には「foo.txt」が含まれています。このようなファイルがある状態で、「foo」とSpotlight検索を実行すると、「buz.zip」がヒットするようになります。

ただし、Ziplightには制限事項があります。現状では、検索対象となるのは、Zipファイル内のファイル名までです。ファイルの中身は検索対象となりません。例えば、Zipファイル内のZipファイルを辿っていくような事はできません。

最初はちょっと残念に思いましたが、逆の見方をすると、索引作成等でリソースをそれ程食わず、結構役立つプラグインに仕上がっているとも言えますよね!


ちなみに、Ziplightのインストールは、
  1. 「Ziplight.mdimporter」アイコンをダブルクリック
  2. 一度ログオフする
だけです。後は、しばらく待っていれば使えるようになります。



Ziplightのオフィシャルサイトはコチラです
※Ziplight1.3がリリースされたようですが、このエントリを書いている時点では、Ziplight1.2しかダウンロードできませんでした...。
(追記:5/13)Ziplight 1.3がダウンロード可能になっています!

RSpecをグラフィカルに表示する「RSpactor」

ちょうど試行錯誤中という事もあり、個人的にツボだったので、「RSpactor」を紹介したいと思います。簡単に説明してしまうと、RSpecの実行結果をグラフィカルに表示してくれるMacのアプリケーションです。


RSpactorを実行すると、こんな感じで表示されます。


↑「Dashboard」の画面
日本語で書かれたテストもちゃんと表示されます。



↑「Inspect File」の画面


こんな感じで、RSpecの実行結果が表示されます。テストに成功した場合は「緑」で、テストに失敗した場合は、「赤」で表示され、それぞれGrowlでも通知してくれます。また、テスト内容がどんなコードなのか、すぐに分かるところも良い感じです。

RSpactorの使い方は、「Enter the root path ...」と書かれたテキストフィールド欄にパスを指定して、「Run」を押すだけです。「RSpec on Rails」の場合は、Railsルートを指定すればOKです。


RSpactorのダウンロードはコチラから。