blog
In the Mood 0.6.0
In the Mood 0.6.0をリリースしました。
元々の目的は、起動時などにSkypeへの接続に失敗することがあったバグの修正と、ウェブから取得していたGrowl通知用のデフォルトアイコンの内包でしたが、せっかくなので、Twitterにもムードメッセージを送信する機能を追加してバージョン0.6.0としました。
automaticをオンにしておくと自動でどんどんtwitterしてしまうので、やりすぎるとちょっと鬱陶しいかもしれません。
今回Twitterに対応するにあたって、パスワードの保存先はkeychainがいいだろうということで、widgetからkeychainに保存する方法を模索していました。
コマンドラインからsecurityというコマンドでKeychainへのパスワードの追加、参照ができるようでしたが、既存のパスワードの変更の仕方が分からず断念。
結局、ADCのドキュメントにあったソースをそのままwidgetpluginに流用して、widgetへのインタフェースを付けただけでわりと簡単に実現できました。
ところで、リリースしたのは昨晩遅くでしたが、眠かったので公開するだけして寝てしまいました。にもかかわらず、朝には新しもの好きのダウンロードさんに掲載していただいてました。うーん、素早い!
いつもありがとうございます。
Sifter 1.1.2
PHP/Perl用のテンプレートエンジンSifter 1.1.2をリリースしました。
バグフィックスとちょっとした最適化だけですけど。
この手のテンプレートエンジンは他にも数多くありますが、そもそも開発したきっかけは、patTemplateがあまりに使いにくく、Smartyも複雑で覚えることが多く、シンプルで簡単に使えるテンプレートエンジンが欲しくなったからです。
数年前から自分の仕事で使って、少しずつブラッシュアップされて、ようやく今の形になりました。
Sifterは、実行の度にテンプレートを解釈してオブジェクトのツリーを作成し、それを根元から再びたどって出力をしています。そのため、あんまりパフォーマンスはよくないです。
Smartyのように、スクリプト化されたテンプレートファイルを出力するようにすればパフォーマンスを上げることができるので、次期バージョンではそんな仕様を組み込もうと思っています。
まあ、あんまりファイルを出力して散らかすのもどうかと思ったり、パーミッションなど面倒な設定がいらずに使えるというところも売りであったりするので、オプショナルな機能ということで。
Skype 2.6.0.72 BETA
Skypeの新しいベータバージョンが公開され、設定の詳細に「ムードメッセージにiTunesの曲を表示」オプションが追加されました。
開発を始めて早半年、いつかは来ると思っていた日が来たという感じです。
標準の機能となったことで、In the Moodはその役目をほぼ終えましたが、表示するフォーマットを変更できたり、よく使うムードメッセージを切り替える機能もあるので、まだ存在意義はあるかな〜と思います。
今後は、とりあえず再生中の曲のアートワークをアイコンに表示できるようになるまでは開発を続けようと思ってます。
widgetpluginからのframeworkの利用
In the Moodの新バージョンをリリースしたわけでもないのにアクセス数が伸びてると思ったら、HMDTさんからリンクしていただいていました。
やはりこの、widgetpluginからframeworkを使用するときの問題は皆さん引っかかるようですね。
僕も色々検索してインストールパスを変更すればいいというのはすぐに分かったんですが、実際のやり方が、検索しても英文ドキュメントしか出てこないこともあり、なかなか分かりませんでした。
HMDTさんが書かれていますが、install_name_toolでインストールパスを変更できるのは短い名前にする場合だけだそうです。やはり、コンパイル済みのバイナリに対してコマンドを実行するのでそうなっているんでしょうね。
In the Mood 0.5.0
仮運用中のためしばらくトラックバックなどはできませんが、開発記録としてブログを始めてみようと思います。
早速ですが、In the Mood 0.5.0をリリースしました。
今回一番大きい変更点は、最も見た目には分からない、今までAppleScriptとPHP(とwidgetplugin)で行っていた内部処理をwidgetpluginに一本化したというところです。
widgetpluginで処理をするようになった0.2.4のころからずっとそのつもりだったんですが、widgetpluginでSkype.frameworkを使用するために@executable_pathを@loader_pathに変更するやり方が分からず、しばらく放置していました。
今回、Growlの通知に対応するためにGrowl.frameworkを使用する必要が出てきて、改めて検索などしていたら実は簡単な方法だったんですね。
/usr/bin/install_name_tool -change
"@executable_path/../Frameworks/Skype.framework/Versions/A/Skype"
"@loader_path/../Frameworks/Skype.framework/Versions/A/Skype"
itm.widgetplugin/Contents/MacOS/itm改行はなしで、frameworkやwidgetpluginの名前は適宜読み替えてください。
さて、そのGrowlの通知ですが、iTunesで再生中の曲が変わったときに通知してくれるアプリケーションは結構あるんですが(Growlに付属のGrowlTunesやiScrobblerなど)、それだけのためにアプリケーションを起動しておくのが何となく気になっていたので、In the Moodの機能とすることにしました。
メニューバーやDockの領域ももったいないですし。
ところで、0.4.0のころからDashcodeのベータ版を試験的に導入しています。
widgetpluginの部分には使えませんが、JavaScript部分のデバッグが格段に楽になりました。Dashboardを表示しなくてもテスト実行できるのがいいですね。