上海から北京まで新幹線(京沪高铁)に乗って見ました。例によってGPSロガーの代わりにGoogle Latitudeの履歴機能からkmlファイルを書きだして表示させてみました。
使用したのはDesireZです。電源が確保できたので安心してGPSをオンにしたまま窓際に放置しました。車内には無線LAN電波が飛んでいます(なぜかインターネットには接続出来なかったです)。GPSが衛星を掴めない時に、この無線LANにヒモ付されていると思われる上海虹橋駅の位置に現在位置が飛んでしまいました。そのためkmlファイルを取得する前に、明らかに間違った位置を手作業にて削除しました。そうしないと軌跡が変なことになってしまいます。
最高時速は310Km/hほどで、1300Km強の距離を4時間55分で走ります。速度計を見ているとほとんどの時間が300Km/h前後でした。さすがに大陸だけのことはあって、ほとんどカーブしているのを感じません。軌跡をみているとかなりの部分が直線になっているのがわかります。しかも平野だらけで一面畑の中を延々と突っ走っている感じです。中国国内の飛行機はディレイするのがデフォみたいなものなので、北京・上海間は新幹線を利用するというも悪くは無いです。料金も一等席で935元なので飛行機とほぼ同じ。走行中、ほとんどの場所でChina Unicomの3G電波が良好に使用出来ていましたので、乗車中ずっと仕事をしてしまうというデメリット(?)もあります。
大きな地図で見る
出張先のホテルで苦労するのでコンセントの数だったりします。かなり良いホテルでも、普通の人はパソコン一台つながれば大丈夫と考えているのか、机の周りにひとつだけの空きコンセント、ちょっと気が利いているホテルではベット周りにもうひとつみたいな感じです。
色々と充電したりパソコン二台持ち歩いていたり、あるいは自前のWiFi電波飛ばしたりするためには、電源コンセントが全然足りません。日本では持ち歩いても苦にならない小型のテーブルタップを何種類も見たことがあります。中国ではもともと電源コンセントが大きいですし220Vな国であるためか、どのテーブルタップを見てもとても気軽に何時もかばんに入れておけるサイズではありません。


あきらめず色々と探していたところ海外向けの電源プラグ変換アダプターを売っているコーナーで三つの口がついたアダプターを見つけました。その名もTRAVEL UNIVERSAL ADAPTER。オス側のコネクター形状は色々と揃っていました。私は中国で一般的なグランド付きのOタイプを買いました。出口は三つ有り、それぞれ形状が異なっています。
形状が大きいのでコンセントの場所によっては3つの口がすべて使えなかったりします。そんな時は別のアダプターとACアダプター用の短いケーブルを接続すればテーブルタップ的にも使用出来ます。
下に貼ったアマゾンリンクのACアダプターを4個つなげるケーブル
は今度日本に行ったときに買ってみたいと思います。
新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キーの押下無しで起動できるようになります。
おそらく色々なところで語られている情報かと思いますが新しい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以降であれば、このフォルダー以下を丸ごとコピーすれば大丈夫かもしれません。
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までは そんなこと無かったように気がするな。
最近のモバイルデバイスで動く地図アプリは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は元々、古いバージョンのファイルをリストアしたりするためのものと思います。詳しくは考えていませんが(ぉぃ、とりあえず動いてはいるようです。
オフィスの無線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の内蔵辞書を利用した辞書アプリが出ていました。その名も辞書。オフラインでも使用できる無料辞書アプリとして入れておくのが吉です。
久しぶりに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の際にかなり詳しいエラーメッセージが出ました。