2010.03.21

[Emacs]「Mac の Emacs でツールチップ辞書を実現する」に必要な「dict」コマンドをビルド

id:tomoyaさんの「Mac の Emacs でツールチップ辞書を実現しよう。」の中で必要なid:tekezoさんのdictコマンドが、Mac OS X 10.6.2/Xcode3.2.1環境でmakeしたものがうまく動かないので、Xcodeでビルドしてみました。

「dict.zip」をダウンロード

なお、Mac の Emacs でツールチップ辞書 パート2。の方のns-popup-dictionary関数を動かすには、jaspace.elをインストールしておく必要があるようです。

ここまでやって、銭谷さん版のCarbonEmacsではCommand+Control+Dで、普通にOSのツールチップ辞書が出るということに気づく件。

Tooltipdictionaryoncarbonemacs

|

2008.03.31

[Mac OS X]iTunesの自動ローカライズ機能で日本語表記にされた「ジャンル」を修正するAppleScript

古い話で恐縮ですが、iTunesは7.6になってからジャンルを勝手に日本語表記にするようになり、人によっては気になっていたんじゃないでしょうか。

NihondoさんのTune-up iTunes 7.6に、この自動ローカライズ機能を無効にする機能が付いたので当てましたが、既にヤラレてしまった曲をいちいち手で直すのは面倒。

しばらく放っておいたのですが、修正するAppleScriptを書いてみました。

どーという内容ではありませんが、置いておきます。

set gl to {{"オルタナティブ", "Alternative"}, {"イージーリスニング", "Easy Listening"}}
set gl to gl & {{"ニューエイジ", "New Age"}, {"サウンドトラック", "Soundtrack"}}
set gl to gl & {{"ロック", "Rock"}, {"フォーク", "Folk"}}
set gl to gl & {{"ポップ", "Pop"}, {"ニューエイジ", "New Age"}}

tell application "iTunes"
    repeat with i in gl
        if ((count of (every track of library playlist 1 of source 1 where genre is (item 1 of i))) > 0) then
            set (genre of every track of library playlist 1 of source 1 where genre is item 1 of i) to item 2 of i
        end if
    end repeat
end tell

|

2008.01.27

[Mac OS X]単3電池1本で動くGPSロガー HOLUX m-241をMac OS Xで使う

GPSロガーのHOLUX m-241を購入しました。

i-Blue 747 / i-Blue 757 / Qstarz BT-Q1000 / i.Trek Z1 / Konet BGL-32などと同様、超高感度のMediatekのMTKチップを搭載した機種です。

m-241は、単3電池1本で約14時間駆動するのが特徴。

外見はKodakの35mmフィルムを模していて、ユニークですね。

みなさんの評では、「ちょっと大きい」とのことですが、単3電池で動くというのは、とにかく素晴らしいです。

NOKIA N810とのペアリング

NOKIA N810とのペアリングで困ったのが、マニュアルにpasscode (pairing code)の記載が無いこと。

マニュアルにあるWindows Mobileとのペアリングでは、SPP Slaveを選ぶように指定しているので、記載が回避されています。

しかし、NOKIA N810では、そのような指定ができません。

HOLUXはよくpairing codeに "0000" を使うとの記載を発見したので、それで試したら大丈夫でした。

Mac OS Xでの設定変更/ログの吸い出し:bt747編

Mac OS X Leopardを使っている自分にとっては、ログ取りできるのはいいものの、ログのダウンロードがやっかい。

純正のユーティリティは、Windowsで動くものしか提供されていないのです。

Java製のbt747が使えることが分かりました。

bt747は、ログのダウンロードだけでなく、m-241単体では不可能な、詳細な設定もできる優れものです。

Mac OS Xで動かすには若干の準備が必要です。

具体的な手順は、Levien van Zonさんが立てたスレッド「BT747 on MacOS X」に書いてあります。

むぁっく日記さんのエントリ、「MacOSX版GPSロガー用ソフトウェアの使い方」辺りに日本語の情報があります。

僕の場合、ドライバはこちらの業者が用意しているものを使いました。

http://www.gpsdgps.com/product/pr_holux_m-241.htm

デバイスファイル名が、上記の例とは違って「/dev/tty.SLAB_USBtoUART」となったので、その部分は修正しています。

HOLUX m-241との間で通信をする場合の要諦は、115200bpsでは動かず、38400bpsに設定する必要があるということです。

HOLUX m-241とbt747との接続は、以下の手順を踏む必要がありました。

  • 起動直後の「Con」タブで、ボーレートを「115200」から「38400」に変更
  • 「Connect Port Nbr」ボタンを押す

接続するとすぐ「Log」タブへ移動しますが、「Con」タブに戻って見てみると、接続が成功していれば、以下のような情報が表示されると思います。

そのほか「File」タブの「Output Dir:」には、既存のフォルダを指定する必要があります。デフォルトでは「/BT747」になっていますが、そのようなディレクトリは、作っていない限り無いはずですのでエラーが出ます。既にあるフォルダを指定して、「Apply&Set the above values」ボタンを押し、反映させます。

ログは、「Log」タブで「Get Log」ボタンを押せば取得が始まるはずです。

取得したログは、m-241のメモリイメージをダンプしたもののようで、バイナリです。 そのままでは使えません。

bt747には、このバイナリのログから各種フォーマットに変換する機能が付いています。 ログを取得した後で「Log」タブにある「To CSV」等のボタンを押せば変換が始まります。

(ログ変換がうまくいかないと書いていましたが、ログがうまく取得できていなかったのが原因でした。ログを取り直したら変換もうまくいきました。触った範囲の機能は完動です)

Mac OS Xでの設定変更/ログの吸い出し:MTKBabel編

ほかにソリューションは無いかと探してみると、i-Blue 747をはじめとしたMediatek MTKチップ搭載GPSの操作をする、MTKBabelというPerlスクリプトがあったので試してみました。

http://www.rigacci.org/wiki/doku.php/doc/appunti/hardware/gps_logger_i_blue_747

MTKBabelの実行にはDevice::SerialPortが必要ですので、CPANからインストールします。

$ sudo perl -MCPAN -e shell
cpan> install Device::SerialPort

CPANを実行したことが無ければ、Device::SerialPortのインストールの前にいろいろと聞かれるでしょう。適当にデフォルトで答えておけばOKです。

ダウンロードしてきたmtkbabel-0.5.tar.gz(現時点のバージョン)を解凍すると出てくる「mtkbabel」を編集します。115200bpsでつなごうとするので、m-241ではそのままでは動きません。以下のような行があるので、

$device->baudrate(115200) || die "fail setting parity";

以下のように書き換えます。

$device->baudrate(38400) || die "fail setting parity";

後は、mtkbabelのあるディレクトリで以下のように実行すればログがm-241から吸い出され、バイナリフォーマットと、XMLベースのGPXフォーマット(ってよく知らないんですが)でカレントディレクトリに書き出されます。

chmod +x mtkbabel
./mtkbabel -p /dev/tty.SLAB_USBtoUART  -f data -t -w

デバイスファイル名は、僕の場合です。bt747で推奨されているドライバを入れているなら、「/dev/cu.SLAB_USBtoUART」かもしれません。

その他の情報

mtk-gps-controlというPythonスクリプトがありました。

|

2007.10.28

[Mac OS X]LeopardではSafari3にてタブがらみのスクリプティングが可能に

Mac OS X Leopardインストールしましたよ。
やはり新しいOSはいい。iMac G5だと、なんかSafariでフォームに入力するときにモタ付きを感じますが。Safari 3 パブリックベータで見られた「っっっっ」という現象は直ってます。

さて、Safari 3 パブリックベータではClassとしては存在しても、まだ機能していなかったタブ(tab)がらみのスクリプティングができるようになっています。

現在Safariは3.0.4。tabの操作をする場合、tell対象はdocumentではなくwindowなのがミソ。

tell application "Safari"
	make new document
	tell window 1
		make new tab
		set myTab to make new tab
		set URL of myTab to "http://www.google.co.jp"
		set current tab to myTab
		delay 5
		close myTab
	end tell
end tell

|

2007.10.15

[Mac OS X]iTunes-LAME2.0.9test4の文字化け修正スクリプト

先日のエントリ「[Mac OS X]iTunes-LAMEがiTunes7対応アップデート! しかし……。」で、新しいiTunes-LAME、iTunes-LAME.2.0.9-test4で起きる日本語の文字化けを嘆いたところですが、その文字化けを修正するスクリプトをやっつけで書いてみました。

すぐ修正されるかと思いますが、それまでがまんできない人は試してみてください。

インポートしたMP3にCDからタグをコピーする、ということをやっています。

ダウンロード

「cure-garbled-characters-on-itunes.zip」をダウンロード

使い方

  • ダウンロードしたものを解凍します。
  • CDをインサートし、iTunes-LAMEで曲をインポートします。
  • CDを入れたまま、今iTunes-LAMEでインポートした「ライブラリ>ミュージック」にある曲を選択します。
  • CD上の曲と、「ライブラリ>ミュージック」上で選択中の曲が同じ順番で表示されているか確認します。
  • 「ライブラリ>ミュージック」を表示させます。(CD上の曲を表示させているなら切り替えます)
  • 当スクリプトを実行します。



注意点

無保証です。

  • CDが入っていないとエラーが出ます。
  • CD上の曲数と、「ライブラリ>ミュージック」上で選択した曲数が違うとエラーが出ます。
  • CD上の曲と「ライブラリ>ミュージック」上で選択した曲が同じ順番で表示されていないとエラーが出ます。
  • 「ライブラリ>ミュージック」を表示させていないとエラーが出ます。

間違いが起きてもいいよう、コピーを取ってからやった方がいいかもしれません。

|

2007.10.06

[Mac OS X]iTunes-LAMEがiTunes7対応アップデート! しかし……。

いつの間にかGoogle Codeに移管されていたiTunesとLAMEのBridgeであるiTunes-LAMEが久しぶりにアップデート。バージョンは2.0.9に。

iTunes7になってから、リッピングしたファイルのid3-tagに異常が出るようになっていたので、それを直したんだろうとホクホク試してみると、「以前よりは」正常に動作。日本語が化けること以外は……。

ロシアの人が既にプロジェクトページでバグ報告してたので、直ることに期待。
bwandersonという人がWikiの方に「大塚 愛が化けてしまうのは俺にとってチョーでけえ問題ッスよ」って書いてるけど、この人外人だろうか?

というわけで、日本語の文字化けを修正する対策スクリプトを書きました。
スクリプトは以下のエントリに。

[Mac OS X]iTunes-LAME2.0.9test4の文字化け修正スクリプト

|

2007.09.09

[Mac OS X]iPhotoで選択中の画像をココログに一発でアップロード

ブログに貼る画像を用意するのが面倒で、Flockを使ってFlickrと連携させているのですが、Flickrが重いことが多くて、これもイマイチだなーと思っていたところで暴想さんのエントリ「暴想: cocolog_image_uploader.rbをバージョンアップ」を発見。

こりゃ便利! ということで真似をさせていただきました。

まずは動作環境を作ります。
既に/usr/local/binにruby1.8.6をインストールしているので、そこまでは(恐らく)暴想さんと同じですね。

ちなみに、僕はMac OS X Tigerを使ってます。

RMagickのMac OS X Tigerへのインストール

cocolog_image_uploader.rbではRMagickを使っているのでインストールします。
RMagickは依存しているライブラリが多いので、結構インストールが大変です。

RMagickのMac OS X Tigerへのインストールについては、Installing RMagick on OS Xを参考にしました。

X11のインストール

X11のインストールをします。僕はもうインストール済みでした。
Mac OS X Tiger用のX11はOSのインストールDVDに収録されてます。

Xcode ToolsとX11 SDKのインストール

これもインストール済み。
ADCからXcode 2.4.1をダウンロードしてインストールしてあります。

Xcodeには3.3と4.0のGCCが入ってますが、gcc4.0の方を選択しておく必要あり。
リンク先ではlnを使ってシンボリックリンクを手動で張ってますが、gcc_selectというコマンドでできます。

sudo gcc_select 4.0

これでOK。

MacPortsのインストール

これもインストール済み。公式ページ

参考「はこべにっき#: MacPortsでステキなUNIXツールをインストール」

MacPortsから必要ライブラリをインストール

以下を実行し、

sudo port install jpeg
sudo port install libpng
sudo port install libwmf
sudo port install freetype
sudo port install ghostscript

さらに以下を実行して、

freetype-config --cflags

以下の出力が得られていればOK。

-I/opt/local/include/freetype2 -I/opt/local/include

ImageMagickのインストール

ImageMagickのページからImageMagick.tar.gzを落としてきて、以下の通りにオペレートします。

tar xvzf ImageMagick.tar.gz
cd ImageMagick-X.Y.Z
export CPPFLAGS=-I/opt/local/include
export LDFLAGS=-L/opt/local/lib
./configure --prefix=/opt/local --disable-static --with-modules --without-perl \
--without-magick-plus-plus --with-quantum-depth=8 \
--with-gs-font-dir=/opt/local/share/ghostscript/fonts
make
sudo make install

RMagickのインストール

RubyGems経由でRMagickをインストールします。
無論、RubyGemsがインストールされていないといけません。

sudo gem install rmagick

ソースからインストールする場合は以下でいけるそうです。

tar xvzf RMagick-X.Y.Z.tar.gz
cd RMagick-X.Y.Z
./configure
make
sudo make install

cocolog_image_uploader.rbの動作確認

cocolog_image_uploader.rbに実行権を与えます。

chmod +x cocolog_image_uploader.rb

RubyGems経由でRMagickをインストールしたので、スクリプトの冒頭に、

require 'rubygems'

を追記。

accountsを自分のアカウントに書き換え。
iPhotoからデスクトップ上に作ったblogフォルダに画像を放り込んで、スクリプトを実行

cd ~/Desktop
./cocolog_image_uploader.rb blog

ちゃんと動きました。

cocolog_image_uploader.rbを改造

iPhotoからコピーするのが面倒なので、iPhotoで選択中の画像を直接アップロードするよう改造してみました。

「cocolog_image_uploader_variant.rb」をダウンロード

ライブラリ、rb-appscriptを使ってます。
rb-appscriptはRubyGemsからインストールできます。

sudo gem install rb-appscript

使い方は、以下の通りです。
iPhotoでアップロードしたい画像を、並べたい順番に一つずつ選択して実行します。iPhotoで選択した順番が反映されます。

./cocolog_image_uploader_variant.rb アカウント名

引数として、アカウント名を指定します。
もちろん、実行前にaccountsの部分を自分のアカウントに書き換えておく必要があります。

エラー処理がほとんど無いので、注意して使ってください。
結果に責任を持てません。

|