2011年1月24日月曜日

Mac OS X Finderのディレクトリ名ローカライズを任意に設定する

MacOS XのFinderでは一部のディレクトリ名がローカライズされるようになっている。例えば以下のような感じ。

  • Applications⇛アプリケーション
  • Desktop⇛デスクトップ
  • Documents⇛書類

これらのディレクトリの実体は英語名で存在している。Finderはこのディレクトリの中に.localizeというファイルが存在することをチェックし、存在すれば上記のようにローカライズして表示するような仕組みになっている。

このようにローカライズされるディレクトリ名を任意に設定することも出来る。以下のファイルを編集する。

/System/Library/CoreServices/SystemFolderLocalizations/Japanese.lproj/SystemFolderLocalizations.strings

とりあえず以下のような行を追加してみた。

"Archives" = "アーカイブ";
"Temporary" = "テンポラリ";

あとはこのようなディレクトリを作成し、その中に.localizedを作成する。

mkdir Archives
touch Archives/.localized
mkdir Temporary
touch Temporary/.localized

killall Finder等でFinderを再起動するとこのようになる。

ちなみに実際のディレクトリは以下のとおりである。

[NO]imac[~]$ ls
Applications/ Documents/    Library/      Pictures/     Temporary/
Archives/     Downloads/    Movies/       Public/       bin/
Desktop/      Dropbox/      Music/        Sites/        src/

英語のディレクトリ名が日本語で表示されていることがおわかりだろうか。

2011年1月21日金曜日

昔のガラケーで録った動画をiPhotoに取り込む 

昔々Vodafon時代のシャープの携帯電話で撮った写真と動画をディスク上に発見した。2003〜2005年頃のモノのようだ。貴重な思い出の品なので、iPhoneやデジカメでそうしているように写真、動画共にiPhotoに取り込むことにしたが、動画だけは取り込むことができない。さてさて…。

まず動画のフォーマットを調べてみる。mediainfoの結果は以下のとおり。拡張子はASFである。

General
Complete name                    : MOL009.ASF
Format                           : Windows Media
File size                        : 428 KiB
Duration                         : 8s 717ms
Overall bit rate                 : 402 Kbps
Maximum Overall bit rate         : 458 Kbps
Encoded date                     : UTC 2005-05-03 04:46:58.000

Video
ID                               : 1
Format                           : MPEG-4 Visual
Codec ID                         : M4S2
Codec ID/Hint                    : Microsoft
Description of the codec         : ISO MPEG-4('M4S2')
Duration                         : 8s 733ms
Bit rate                         : 346 Kbps
Width                            : 320 pixels
Height                           : 240 pixels
Display aspect ratio             : 4:3
Frame rate                       : 15.000 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Bits/(Pixel*Frame)               : 0.300
Stream size                      : 368 KiB (86%)

Audio
ID                               : 2
Format                           : ADPCM
Codec ID                         : 45
Codec ID/Info                    : G.726
Codec ID/Hint                    : Microsoft
Description of the codec         : G.726
Duration                         : 8s 717ms
Bit rate                         : 32.0 Kbps
Channel(s)                       : 1 channel
Sampling rate                    : 8 000 Hz
Bit depth                        : 4 bits
Stream size                      : 34.1 KiB (8%)

動画のフォーマットはiPhotoがサポートしているmovコンテナに乗りそうなので、ffmpegを使ってコンテナのみロスレス変換(ASF⇛MOV)してみることにした。

for i in *.ASF ; do ffmpeg -i $i  -acodec copy -vcodec copy ${i%.*}.mov; done

変換は終了したが、QuickTime Playerで再生しても音声が鳴らない。ADPCMはサポートしない?

今度は動画はそのままで、音声をAACにエンコードしてmovにしてみた。

for i in *.ASF ; do ffmpeg -i $i  -acodec libfaac -ac 1 -ab 48000 -vcodec copy ${i%.*}.mov; done

今度はうまくいったようだ。ちなみにオーディオのビットレート48000は、それ以上にするとエラーになるぎりぎりの値にしてある。

iPhotoに取り込む前にタイムスタンプを元の動画にそろえておこう。

for i in *.ASF ; do touch -r $i ${i%.*}.mov ; done

うまくiPhotoに取り込むことができた。目的達成である。

2011年1月15日土曜日

整備品Time Capsule 2TBを買った

宅急便で到着。何の変哲もないダンボールにTime Capsuleとケーブル、それとCDだけが入っている簡素包装っぷりに多少驚く。あのAppleの美しいデザインのケースが好きな人は整備品に手を出さないほうがいいかも知れない。

初期セットアップ

iMacに入っていたAirMacユーティリティでセットアップを行う。特に難しいことはない。うちの場合はアクセスポイントとしてセットアップを行うので、接続共有を「切(ブリッジモード)」で構成する。


ディスクの構成

これが悩みどころ。

Time CapsuleはAD連携のような気の利いた機能はないが、Time Capsuleにアクセスするアカウントを複数作成することができ、いわゆるNASのように使用することが出来る。しかしバックアップ用、NAS用と用途に応じてディスク使用量を(正規には)制限することができない。そうなると放っておけば際限なく増えていくTime MachineのバックアップがNAS領域を圧迫するため、NASとして使うかTime Machineバックアップ専用ストレージとして使うか。実質は二者択一である。

しばし悩んだがTime Machine専用として使うことにした。よく良く考えてみればiTunesのホームシェアリングやDropBoxのような便利な共有ソフトウェアのおかげで、個人的にNASのような手段でファイルを共有する用途を想像できないからだ。

設定は以下のようになる。アカウントを作成せず、iMacからのみアクセスする。


使い勝手、その他

バックアップストレージとしては13MB/sec程度のスループットがでるので概ね良好。無線LAN APとしても十分なスループットが出ており特に問題ない。

よくよく設定を見てみるとsyslog転送やSNMPの設定があったりして、なにげにSMBにも使えそうである。

2011年1月11日火曜日

Google AppsがDKIMに対応

Google AppsがDKIMに対応したとのことなので、早速設定を入れてみた。

DKIMとは公開鍵技術を使って、メール送信者(送信ドメイン)を偽造することを防ぐ技術。似たような技術にSPFがあるが、SPFはソースIPアドレスを用いて認証を行うのに対し、DKIMはヘッダやメッセージの電子署名を用いる点が異なる。

実施に当たって、実にありがたいことに面倒なことはほとんどGoogleのクラウドがやってくれるが、一点だけユーザーで行わなければならないことがある。

DKIMの仕組み上、受け取り側がメッセージを検証するために、送信元の公開鍵をグローバルに公開する必要があるが、これにはDNSのTXTレコードを使用することになっている。

DNSの管理はGoogle外なので、つまりユーザーは自らの管理するDNSにTXTレコードを作る作業は自分で行わなければならない。

公開鍵はGoogle Appsのコントロールパネルで生成できる。(Advanced Tools⇛Authenticate email)

あとはこれをコピー&ペーストでBINDのマスターファイルに転記すればよい。ootsuka.jpドメインの場合は、以下のようになった。

google._domainkey 86400 IN TXT ("v=DKIM1; k=rsa; t=y; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkQF6QQxwRDtOW7LlvAtY5PxYfWlW+
YkUSroBt6SZdlCIwxyP6jQBxvbEsaDeqVtBOApk25TRkeaVa2Dnr7CNAdlIPNY/07dudEO
/NQMSWxZ/y9pZsXKPeWhpjgRelkh9PES5Kdh3XrA+K0ncw4R1lZJYVhxsgF8VpQxhAoAa6
3QIDAQAB")

digで確認。

$ dig -t txt google._domainkey.ootsuka.jp @a.ns.ootsuka.jp

; <<>> DiG 9.5.1-P3 <<>> -t txt google._domainkey.ootsuka.jp @a.ns.ootsuka.jp
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59951
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; QUESTION SECTION:
;google._domainkey.ootsuka.jp. IN TXT

;; ANSWER SECTION:
google._domainkey.ootsuka.jp. 86400 IN TXT "v=DKIM1\; k=rsa\; t=y\; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkQF6QQxwRDtOW7LlvAtY5PxYfWlW+Yk
USroBt6SZdlCIwxyP6jQBxvbEsaDeqVtBOApk25TRkeaVa2Dnr7CNAdlIPNY/07dudEO/NQM
SWxZ/y9pZsXKPeWhpjgRelkh9PES5Kdh3XrA+K0ncw4R1lZJYVhxsgF8VpQxhAoAa63QIDAQ
AB"

;; AUTHORITY SECTION:
ootsuka.jp.  259200 IN NS ns14.zoneedit.com.
ootsuka.jp.  259200 IN NS a.ns.ootsuka.jp.
ootsuka.jp.  259200 IN NS ns16.zoneedit.com.

;; ADDITIONAL SECTION:
a.ns.ootsuka.jp. 259200 IN A 219.99.179.189

;; Query time: 1 msec
;; SERVER: 219.99.179.189#53(219.99.179.189)
;; WHEN: Tue Jan 11 01:02:10 2011
;; MSG SIZE  rcvd: 383

ootsuka.jpというドメインから見ると、どの程度効果があるのかは不明だが、Google Appsという世界でも有数のホスティングサービスが対応した点で大きな意義があることだと言えるだろう。

2011年1月7日金曜日

Mac App Storeで買ったiPhoto'11が起動しない

Mac App Storeで購入したiPhoto'11が起動しないという不具合に遭遇したので顛末を記載しておく。

状況


iPhotoが起動と同時にクラッシュする。クラッシュログは以下のとおり。
Process:         iPhoto [1675]
Path:            /Applications/iPhoto.app/Contents/MacOS/iPhoto
Identifier:      com.apple.iPhoto
Version:         9.1.1 (9.1.1)
Build Info:      iPhotoProject-5310000~5
App Item ID:     408981381
App External ID: 3231463
Code Type:       X86 (Native)
Parent Process:  launchd [667]

Date/Time:       2011-01-07 02:38:50.177 +0900
OS Version:      Mac OS X 10.6.6 (10J567)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.CoreFoundation            0x90c51ec0 CFStringGetLength + 80
1   com.apple.CoreFoundation            0x90c51cce CFURLCreateWithFileSystemPath + 30
2   com.apple.prokit                    0x017ba5b1 +[NSProFont registerProUIFont] + 290
3   com.apple.prokit                    0x017b9a02 +[NSProFont initialize] + 67
4   libobjc.A.dylib                     0x96634510 _class_initialize + 380
5   libobjc.A.dylib                     0x9663b972 prepareForMethodLookup + 85
6   libobjc.A.dylib                     0x9663cc17 lookUpMethod + 86
7   libobjc.A.dylib                     0x96634367 _class_lookupMethodAndLoadCache + 40
8   libobjc.A.dylib                     0x96633f13 objc_msgSend + 83
9   com.apple.iLifeKit                  0x016f8ec3 +[iLifeKit install] + 131
10  com.apple.iPhoto                    0x00003707 0x1000 + 9991
11  com.apple.iPhoto                    0x00003275 0x1000 + 8821
/var/log/system.logには以下のようなメッセージが表示されている。
imac iPhoto[1322]: System font path not found in bundle at path: /System/Library/PrivateFrameworks/ProKit.framework

英語的に何か間違っているような気がするが気にしない。

原因推定と暫定対策


ProKitフレームワークがフォントを見つけ切れないのではないかと推測。
具体的にどのフォントなのかは不明だが、さしあたりProKit.frameworkフォルダに含まれているHelveticaNeueUI.ttcを/System/Library/PrivateFrameworks/ProKit.frameworkにコピーしてみたところ無事起動した。

根本対策


上記対策で起動はするようになったのだが、どうも解せない。ProKitはMacOSX 10.6.6 updateに含まれているが、インストールに不備があってこのような事態になっているのではないかとの疑念が頭から離れない。

そこでProKitUpdate6.0.1.dmgを入手、unpkgで展開してMacOSX 10.6.6 Updateと比較してみたところ、明らかな差異を発見できた。 

ProKitUpdate6.0.1のProKit.framework/ 以下でlsを実行した場合。
lrwxr-xr-x  1 masahito  staff   23  1  7 19:12 ProKit@ -> Versions/Current/ProKit
-r--r--r--  1 masahito  staff  405  1  7 19:12 ProKitVersion.plist
lrwxr-xr-x  1 masahito  staff   26  1  7 19:12 Resources@ -> Versions/Current/Resources
drwxr-xr-x  4 masahito  staff  136  1  7 19:12 Versions/

MacOS X 10.6.6 updateのProKit.framework/ 以下でlsを実行した場合。
drwxr-xr-x  3 masahito  staff  102  1  7 19:11 Versions/

要するにシンボリックリンクが張られていないのだ。ProKitUpdate6.0.1同様にシンボリックリンクを貼り直したところ、無事起動した。

これまで一度もProKitをインストールしたことがないMacでMacOS X 10.6.6 updateを適用した場合、iPhoto'11が動かない可能性があるようである。

2011/1/10 追記

MacOS X 10.6.6へのアップデートに、ソフトウェアアップデートを使用せずMac OS X Server v10.6.6 統合アップデートを使用すると、この問題は出ないようだ。

2011年1月4日火曜日

HandBrake 0.9.5リリース 

ダウンロードはこちらから。 以下NEWSより抜粋。
Changes between 0.9.4 and 0.9.5:

* Core Library
  - BluRay disc structure support. (No decryption support) 
  - Updated Libraries (x264, ffmpeg) 
  - SSA Subtitle support. (Including burn-in) 
  - MP3 audio now supported in MP4 files (Note: Limited Player compatibility) 
  - VOBSUB subtitle now supported in MP4 files (Note: Limited Player compatibility) 
  - Updated Presets for newer devices and better quality 
  - AC3 encoding support.
  - Many Bug fixes and other small improvements
  - Improved DVD Main Feature detection (when using dvdnav)
  - Universal audio downmix support (all audio types can be downmixed)

*All GUIs
  - Updated x264 Advanced Panel
  - Video Quality Slider drops % value and only shows RF for x264
  - Batch Scan (Scan Multiple files at once. N.B: Does not include multiple VIDEO_TS folders / Image fil
es) 
  - Peak framerate option (Capped VFR)
  - Many Bug fixes
  - Many Tweaks to improve usability.
  - Ability to edit queue jobs
  - Point-to-Point encoding (second or frame start and end times)

* Mac GUI
  - New Audio Panel supporting >4 Audio Tracks
  - VLC detection in /Applications and ~/Applications

* Windows GUI
  - Encode Status in GUI. (CLI window is now always hidden)
  - Improved Auto-Naming for Destination file name.
  - Drag / Drop Video onto Main Window to scan.
  
* Linux GUI
  - Multiple instance support (run multiple copies of ghb at once)
  - Many Bug fixes and UI improvements. 
このバージョンからAppleTV2のプリセットが追加されている。録り貯めた動画をApple TV2で鑑賞するためには、AppleTV2用にエンコードし直す必要があるが、HandBrake 0.9.5はそれを簡単・確実にやってくれる。
GUIでやってもよいが、以下のようにバッチでやるのがおすすめだ。
for i in *.avi; do
HandBrakeCLI --preset "Apple TV2" -i $i -o ${i%.*}.m4v
done