Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Computer
Lyrics Master for Mac OS X の AppleScript サポートについて。
今まで AppleEvent だけをサポートしていた LM ですが、今回の 2.3.7 から試験的に AppleScript 辞書を搭載しています。

ただし、LM の AE/AS インターフェースは GUI を直接操作することを目的にしているため、非対話的なオペレーションを目的として使用するのは厳しいものがあります。
自分の使っているテクニックですが、以下のような (チャタリングキラー的な) コードを使うと何となくいい感じに動きます (実際に使うときは repeat の中で delay 入れたり、待ち時間に上限を設けたり、いろいろしてみてください)。
tell application "Lyrics Master"
-- Lyrics Master の内部ダウンロード Queue に URL を追加
-- この時点では is lyrics available は true か false か不明
download lyrics "http://www.utamap.com/showtop.php?surl=k-130313-240"

-- download lyrics 実行直後に is lyrics available が true という可能性は低い (つまり元から true だった可能性が高い)
repeat while (is lyrics available) -- false になるまで待つ
end repeat

-- ダウンロードが完了するまで待機
repeat until (is lyrics available) -- true になるまで待つ
end repeat

-- 歌詞データを取得して表示
display dialog (get lyrics text)
end tell
なお、LM の内部ダウンロード Queue は 1 秒おきにポーリングされているので、download lyrics 命令を実行してもすぐにダウンロードが開始されるわけではありません。
Category: Computer
約半年ぶりの更新となってしまいましたが、本日リリースしました。ダウンロードはこちら
変更点については更新履歴をご覧ください (Mac OS X / Windows)。

今回は主にメンテナンスリリースですが、ご要望の多かった「連続モード利用時に検索結果が確定しなかった場合、自動的に次の曲に進むオプション」を追加しています。環境設定の「iTunes」タブから変更できます (デフォルトで有効です)。

また、Mac OS X 版では、OS X 10.6 以前の環境で iTunes 連携が動作しなくなっていた問題を解消しています(ご利用の皆様には長らくお待たせすることになってしまい、申し訳ありません)。これは、OS X 10.7.5 以降で AppleEvent に Bundle ID が使えなくなってしまった問題の回避策による弊害でした。

技術的な(開発者向けの)ところでは、Mac OS X 版に AppleScript 辞書を試験的に追加してみました (今までの AppleEvent と互換です)。位置づけとしては experimental feature で、今後コマンド体系を変えるかもしれません。
Category: Computer
Cygwin シェル上で Windows のクリップボードの内容を取得する one-liner (+ ついでに CP932 から UTF-8 に変換)。かなり泥沼です (変数 SRC に代入しているのがポイント)。
SRC='vbscript:Execute("t=clipboardData.getData(""text""):If Not IsNull(t) Then CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(t):End If:Close()")' cmd /c mshta "%SRC%" | iconv -f cp932 -t utf-8

CP932 外の特殊文字 (〜とか) が入っていると Write(t) がうまく動かない問題があって苦戦中...。

(追記: 2013/05/03)
以下で解決。
SRC='vbscript:Execute("t=clipboardData.getData(""text""):If Not IsNull(t) Then CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1,True).Write(t):End If:Close()")' cmd /c mshta "%SRC%" | iconv -f UTF-16LE -t UTF-8
Category: Computer
久々に Cygwin をセットアップして使っていたらエラーに遭遇。環境は Windows 8 (64-bit)。

git リポジトリをクローンしようとしたら以下のようなエラーメッセージが出力。
$ git clone https://github.com/foo/bar.git
/usr/lib/git-core/git-remote-https.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

strace したところ、libsasl2 が見つからないようだったので、libsasl2 パッケージを追加でインストールしたら直った。どこかで依存関係が切れてしまったのかな。
Category: Mobile
かつて Classic Mac で圧倒的知名度を誇った「穴下り」ゲーム、NS-SHAFTiPhone アプリになって帰ってきた!!

BGM も SE も昔のままで感動しました。難易度はちょっと簡単になったような。NS-TOWER for iPhone にも期待...!