Dropbox

新MacBook Airを入手したので古いMacBook Airは家族用にWindows7マシンとして余生を送ることになりました。

普通にMacBook AirにWindowsを導入するためにはMac OS XのBoot Campアシスタントから導入しますが、完全にWindowsマシンにするためにWindows7の導入ディスクからブートして導入することにしました。

まずはWindowsに入れるドライバー類を用意しておきます。もしSnow Leopardの導入ディスクがあれば、それがそのまま使えます。何もドライバーが無い場合はBoot CampアシスタントからドライバーをUSBメモリーあるいはCDに書きこむ必要があります。(“最新のWindowsサポートソフトウェアをAppleからダウンロード”メニューを使用します) LionのBootCampアシスタントからUSBメモリーに作成したサポートソフトウェアはWindows7を単独で導入した場合には使用できませんでした。Windows7の導入にあたってはSnow Leopardの導入ディスクが必須かも知れません。

ドライバーの準備が出来たら導入です。MacBook Airに外部光ディスクドライブを接続しWindow7導入ディスクを入れてブートします。今回は完全にWindows7マシンにするのでWindows7の導入ブログラムから見えている全パティションを削除して新規パティションを作成し導入を始めました。

ひとつだけ戸惑うことがあるかも知れません。Windows7の導入の過程で何度か再起動がかかります。この時、画面が真っ白のままになってしまいます。これはMacBook AirのブートローダがWindowsが入ったパティションを自動的には認識してくれない為です。慌てることはありません。まずはoptionを押しながら再起動させます。するとWindowsの入ったパティションを選択して起動させる事ができます。

Boot Campドライバーを導入後、Boot Campコントロール・パネルにてBOOTCAMPパティションを起動パティションとして選択すると、その後はoptionキーの押下無しで起動できるようになります。

Mac OS Xのスティッキーズのデータ移行

おそらく色々なところで語られている情報かと思いますが新しいMacBook Airを導入するにあたってスティッキーズのデータだけを旧環境から移動したので事例として書き留めておきます。

Mac OS Xの場合、丸ごと環境を移動するのはTime Machineのバックアップなどから簡単に行うことが出来ますが、色々と旧環境にはゴミも溜まっているので新規に導入することにしました。

というのも普段使いのデータはDropboxにあるので必要なアプリケーションを導入して、いくつかデータをコピーするだけで作業の環境が完成するからです。

で、タイトルにあるスティッキーズのデータは /Users/user_name/Library/StickiesDatabase (ただしuser_nameは登録したユーザー名です)にありますので、それを旧環境からコピーすればOKです。

先々困らないために旧環境のデータを保管するためにユーザーディレクトリーを丸ごと外部ディスクに保管しておきました。Finderの移動メニューでHomeを選択して現れるフォルダーですが、見えているものだけでは足りません。command+↑を押して親のフォルダーに移動し、自分の名前(家のアイコン)を丸ごとコピーします。パス名で表すと /Users/ 以下にある自分の名前のフォルダーをすべて保管しておきました。

追記)
macOS Big Surでスティッキーズのデータベースが変わりました。そのため、Big Sur以前のデータをBig Surもしくは新しい環境に手作業でのコピーすることは出来ないと思われます。新しいスティッキーズのデータは/Users/user_name/Library/Containers/com.apple.Stickies/というフォルダー下に配置されているようです。Big Sur以降であれば、このフォルダー以下を丸ごとコピーすれば大丈夫かもしれません。

MacBook Airがやってきた

2009年夏にC2Dになって値段が下がったMacBook Airを購入し、ほぼ毎日使い続けてきました。私的にはCPUの能力はまだまだ行けそうだったのですが如何せんメモリーが2GBでは、だんだんキツくなってきました。使い方は2009年と何ら変わりません。Mac OS XやXcodeなどがだんだんと重くなってきたのが原因です。

とは言え、古いOSやツールを使うわけには行かないのでMacBook Airを新調することになりました。仲間の勧めもあり、せっかくですので13インチ256GBモデルにCTOでi7プロセッサに変更したものを入手しました。

すでに皆さんご存知のMacBook Airですので特別ここで書くべきこともありません。ただの自慢的な話を書くと、
– やはりステレオスピーカーはとても素敵です。
– キーボードのバックライトはやはり必要でしょう。
と、いったところでしょうか。

Xcode4の動作は驚くほど快適になりました。i5なMac mniにより動作が軽い気がします。i5とは言えクロックはminiの方がだいぶ速いのでSSDが効いているのでしょうね。

TimeMachineで大きなバックアップ中に風車多発するのは仕方ないのかな? Snow Leopardまでは そんなこと無かったように気がするな。

モバイル・ルーターと位置情報を関連付けないためにSSIDをxxx_nomapにしてみた

最近のモバイルデバイスで動く地図アプリはGPSだけではなく携帯電話基地局や巷に飛び交っている無線LANの情報を元に位置決めを行なっています。そのためGPSが不調あるいは搭載されていなくても現在位置が分かるため、私のiPod Touchですら都会であれば地図アプリが実用になります。

無線LANと位置情報のヒモ付は、各デバイスからの情報により自動的に行われサーバー上に蓄積されているようです。

私はモバイル・ルーターを持ち歩いているのですが、それを使用している時にAndroidのGoogle mapsを使用すると思わぬ場所が現在位置として表示されてしまいます。おそらくは過去にモバイル・ルーターを使用した場所にてルーターと位置情報が紐付けされてしまっているからでしょう。なぜかiPod Touchでは、そのような事は起こってません。これはAppleが賢くて何時も色々な場所で使用しているルーターを自動的に排除しているのか、単純にGPS付きなiOSデバイスを使用しているからなのかは分かりません。

つい最近になってGoogleからルーターと位置情報を紐付けしない方法が提示されました。このページのHow do I opt out?の項目に詳しく書かれています。手順は簡単でルーターのSSIDの最後を _nomap にするだけです。

これで、思わぬとこが現在位置として表示されることが少なくなると期待しています。

Dropbox APIが新しくなったというニュースを見かけて、とあるアプリケーションに使ってみようと重い腰を上げテストしてみました。

iOS v1.0にはドキュメントが用意されていません。SDKに添付されているサンプル・プロジェクトが動くことを確認した後はtutorialに従って基本的に動作確認です。ところがファイルをアップロードしようとしたらupLoadFileがdeprecatedであると言われてしまいました。

ChagelogやDBRestClient.hを読めば事情は把握できるので良しとしましょう。せっかくのtutorialなので最新のAPIに変更しておいて欲しいものです。

新しいupLoadFileは、

- (void)uploadFile:(NSString *)filename toPath:(NSString *)path withParentRev:(NSString *)parentRev
    fromPath:(NSString *)sourcePath;

という形式です。parentRevと言うパラメータが増えています。ここにnilを指定してアップロードすることも出来ます。その場合、同じファイル名がサーバー上に存在する場合上書きをせずファイル名の後に(1)などと付加されて新しいファイルとして保管されます。現行ファイルを上書きする場合はloadMetadataにて現在のファイルのrevを取得しなければなりません。

ものすごく単純なコード例を書いておきます。
前提としてdocDirはアプリのDocumentフォルダーを指し、そこにファイルtest.txtが存在するものとします。またTutorial通りの手順でrestClientは初期化されているものとします。

- (void)uploadFile1
{
    [[self restClient] loadMetadata:@"/test.txt"];
}

-(void)uploadFile2:(DBMetadata*)meta
{
    NSString *testfile = [docDir stringByAppendingPathComponent:@"test.txt"];
    [[self restClient] uploadFile:@"test.txt" toPath:@"/" withParentRev:meta.rev fromPath:testfile];
}

// DBRestCleintDelegte
- (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata
{
    [self uploadFile2:metadata];
}

- (void)restClient:(DBRestClient*)client loadMetadataFailedWithError:(NSError*)error
{
    [self uploadFile2:nil];
}

revは元々、古いバージョンのファイルをリストアしたりするためのものと思います。詳しくは考えていませんが(ぉぃ、とりあえず動いてはいるようです。

Mac OS X Lionでの802.1Xの設定

オフィスの無線LANが802.1X LEAPによる認証を行なっています。Mac OS X Snow Leopardの時は、その設定をネットワーク設定/詳細/802.1Xタブの中で行っていました。Lionになってから、そのページを開くと設定項目は一切なく「構成プロファイルを使って802.1Xプロファイルをシステムに追加します。詳しくはシステム管理者に問い合わせてください。」などと書かれています。

構成ユーティリティをダウンロードして自分で設定しなければならないと最初は思いました。が、取り敢えず無線LANを接続して見ました。するとユーザーIDとパスワードを入力するダイアログが表示されました。LEAP認証に使用するものを入力してみると、あっさりと接続されるではないですか。証明書などを使用しないタイプだからかも知れませんが設定無しで使えるようになったということです。802.1Xの設定項目がなくなったのは、単純に自動的に認証方式を判別してくれるようになったからなのですね。

iOS5には辞書が搭載されています。Safariなどで単語を選択しポップアップメニューの「辞書」をタップすると単語の意味が表示されます。これもまたMac OS Xと同様に英和・和英辞書が載っていますので日本人としては有り難く使いたいところです。アップル用語辞典は各国語版が搭載されていますが、一般の辞書は英語と日本語だけで他の言語の辞書は載っていないようです。

ふと気になって、南京東路のアップルストアでiPhone4のデモ機で辞書を引いて見ました。Safari上に表示された英単語を選択しポップアップメニューの「定义」をタップすると何と英和辞典が表示されました。中国語に設定されているデバイスならば英英辞典が表示されるべきでは無いのか? 大きな謎を抱えたまま、その場は帰途につきました。

帰宅後iPod Touchにて色々と試してみると以下のような事が判明しました。

– アップル用語辞典は、表示言語に合わせて切り替わる。ただし試したのは英語、日本語、中国語とフランス語のみ。
– 英英辞典への切り替えは、表示言語を英語にした時に行われる。
– 英和辞典への切り替えは、表示言語を日本語にした時に行われる。

従って、一度表示言語を日本語にしたあと、中国語にしてもフランス語にしても英単語で辞書を引くと英和辞典が表示されてしまいます。英英辞典にしたい場合は一度、表示言語を英語にしてから中国語などにしないと行けません。

きっと、私がアップルストアで試したiPhoneは、誰かが日本語表示にした後だったのでしょうね。

デザインとして、こうなってしまうのも分からなくはないし、一般的な話として困ることはないでしょう。しかしながら日本人に一度デバイスを貸した後などに悩みまくるユーザーも、きっと出てくる事と思います。

とりあえずは、英語圏、日本以外のお店でデモ機に触る機会のある方は、片っ端からiPhoneの表示言語を日本語にしてみましょう(笑)。

追記) iOS5の内蔵辞書を利用した辞書アプリが出ていました。その名も辞書。オフラインでも使用できる無料辞書アプリとして入れておくのが吉です。

 

iTunes ConnectでInvalid Binaryになった

久しぶりにiOSアプリケーションを更新しサブミットしたらInvalid Binaryになってしまいました。Xcode 4.2のArchiveからValidationは問題なし。Xcode4.2上ではSubmitも問題なしですがiTunes Connectを見るとInvalid Binaryと表示されていました。以前ですと問題があると何かしらエラーの理由が記されたメールが送られてくるのですが、それもありません。

まったく、手がかりの無いところから原因を探らねばなりません。Googolで検索すると、同様の現象について沢山の事例が見つかりました。ひとつひとつ検証した結果Info.plistでのアイコン指定の問題でした。

前提としてはiOS Deployment Targetが3.0なUniversal Applicationです。

最初は、

CFBundleIconFile icon.png
CFBundleIconFiles
  Item 0 icon.png
  Item 1 icon@x2.png
  Item 2 icon-72.png

みたいな感じでした。これで以前は問題なかったと思います。

ここに下のアイテムを追加してInvalid Binaryが解消しました。

CFBundleIconFile~ipad icon-72.png

本来ならXcodeのValidationでエラーを見つけてくれるべきなんでしょうね。試しにCFBundleIconFileにファイル名を消してみるとValidationの際にかなり詳しいエラーメッセージが出ました。

PreviewによるPDF編集 – Mac OS Xの便利なとこ2

Mac OS Xで印刷機能でPDFを作成することが出来ることはユーザーならば皆知っていることと思います。

それだけではなくMac OS Xの標準機能のpreviewでPDFの簡単な編集も可能です。複数のPDFをひとつに結合したり、分割することが出来ます。

ページ毎の編集を行うためにPDFファイルをpreviewで開いたら表示メニューでサムネイルを表示させます。

結合する場合、サムネイル上に結合したいファイルをドロップします。ドロップするファイルはPDFだけでなく画像ファイルも可能です。

不必要なページがある場合はサムネイルからページを削除するだけです。

元ファイルを変更する場合は、そのままpreviewを終了するだけです。逆に元ファイルを変更しない場合は予めコピーしておいたほうが良いでしょう。

またpreviewでは画像ファイルのタイプを変更したりも出来ます。このあたりは「書き出す」メニューを開けば一目瞭然です。

ちょっと前にtwitterでMac OS Xに辞書が付いているのを気づいてない人が多いという話題が流れていました。すでに多くの場所で紹介されている機能ですが、使わないのはあまりにももったいないので少しだけ書いておきます。いつ頃から搭載されているのかは不明ですが少なくともLeopardには載っていたと思います。

以下、Mac OS X Lionで調べた事柄です。

[ 搭載辞書 ]
– 国語辞典 (大辞泉)
– 英和/和英辞典 (プログレッシブ英和・和英中辞典)
– 類語辞典 (類語例解辞典)
– Apple (Apple 用語辞典)
– Wikipedia
– British Thesaurus (Oxford Thesaurus of English)
– Thesaurus (Oxford American Writer’s Thesaurus)
– Dictionary (New Oxford American Dictionary)
– British Dictionary (Oxford Dictionary of English)

並べてみるとすごいです。Lionって幾らでしたっけ? しかも日本語の辞書が付いているのは我々にとってすごいサービスと言えます。使わなきゃ申し訳ないです。

Mac OS Xは世界中で同じものが使われています。ちなみに香港で売っていたMac miniで表示言語を英語で立ち上げたもので調べたところディフォルトで英語の辞書しか引けませんでしたが環境設定をみると選択されていないだけで国語辞典も入っていました。

[ 辞書の引き方 ]
– 辞書アプリを使用する。Launchpadから辞書アプリを起動します。ポップアップ辞書で使用する辞書の種類なども辞書アプリの環境設定で行います。
–  Safariでは単語の上にマウス・ポインターを置き ctl+command+D で辞書がポップアップします(他のアプリで使えるものもあるかもです)。
– 他のアプリでは単語を選択して右クリックメニューで「辞書を検索」を実行します。
– 辞書ウィジェットを使用する。