Windows で GNU ツールを使う

ふだんやってる Tips みたいなことは、簡単なことでもどんどん書いておくことにする。

開発用には Windows でも make や tar や touch を使いたい。Makefile を書くなら mv や cp や rm もないと面倒くさい。そこで、Windows 用にビルドされた Gnu のツールを PATH の通ったフォルダに入れておくとよい。

から入手できる。ぜんぶをまとめたのもダウンロードできるけど、自分は CoreUtils, Make, Tar くらいしか入れてない(find とか sort は Windows 標準のと被るので)。ようするにベーシックな Makefile が動けばいいという感じ。凝ったことはせずコマンドプロンプト(cmd.exe)で make と叩くのに使うだけで、個別のコマンドを使うことはあまりない(touch や tar くらいか)。

最近気づいたのだけど、Patch は Windows 8.1 で使おうとすると UAC の警告に阻まれてふつうに使えない。OS 全体で UAC を無効にするのがいやなら、‘Using “patch” from the GnuWin32 project on Windows 7’ に書かれている方法で exe に manifest を埋め込むとよい。

これだけで自前のたいていの Makefile は Windows と OS X (Unix) とで共用できるようになるので重宝。Visual Studio の nmake は、Windows 専用の開発にならいいけど、Python とかのプロジェクトにはなんかしっくりこないからね。

iPhone の写真をバックグラウンドでアップロードする

前回 iCloud のバックアップから写真を復旧させる話を書いたけど、うっかりでここまでやらなきゃいけないのはたいへんである。写真を自動でどこかにバックアップするような方法はないか調べてみた。

まず誰でも思いつくサービスとして Dropbox。Dropbox はインストールするとカメラアップロードという機能を猛プッシュしてくるので、ひとつ使ってみる。

IMG_0285

Dropbox のカメラアップロードは iOS の位置情報サービスを使う。iPhone の移動を感知するとそこで Wi-Fi が使えるかを確認して、使えるようなら写真のアップロードを始める。なるほど……ではあるけれど、ずっと位置情報取得のコンパスアイコンが出てるのが気になる。

iOS では 7 からバックグラウンドでできるタスクが増えたので、もうちょっと賢い実装もある。Dropbox もそのうちそうなるだろうけど、いまは後方互換性を気にしているのかもしれない。

Facebook アプリには写真の同期設定というのがあって、iPhone で撮影した写真を自動で Facebook にアップロードさせることができる。アップロードされる写真はすべて公開設定はプライベートなので、手動で共有しないかぎり他の人からは見えない。

IMG_0283

これはわりとうまく動いているので Facebook を使っているなら(そして Facebook を信用できるなら)おすすめできる。

ただしアップロードされる写真はフルサイズではない。じゅうぶん大きいけれども、オリジナルよりは劣化する。

Flickr アプリも新バージョンではバックグラウンドで写真をアップロードできる。ただしちょっと前から日本語の App Store からは購入できなくなってしまっている。

けど、以前のバージョンを購入したことがある人なら最新バージョンを使える。あまり知られていないけど、自動アップデートには現れなくなるものの、国内のストアから撤退したアプリが海外のストアではアップデートされ続けている場合、「購入済み」から再ダウンロードすることで最新版に更新できるのだ。Flickr は最初は日本のストアでも公開されていたのでその時ダウンロードしている人も少なくないと思う。

IMG_0286

Flickr の最新版で Auto Sync をオンにするとあとは自動で Flickr に(プライベート設定で)アップロードされる。サイズもオリジナルだし、これが本命かなあ。ただしアップロードを Wi-Fi に限定するオプションは(いまのところ)ない、というじつに男気のある実装なので通信量には注意。

iOS は 8 で写真まわりも iCloud 使うように変わるらしいので、そのときにはバックアップからのサルベージももう少し楽になるかもしれない。

カメラロールから削除した写真を取り戻す

過去に iPhone で撮影した写真のひとつを、意図せず削除してしまった。写真を削除しようとすると iPhone は「この写真はすべてのデバイスのフォトストリームからも削除されます」という確認を出してくるけど、自分がなにをしようとしているか(愚かしくも)わかっているつもりだったので、僕はそんなのに迷わされることなく「削除」をタップした。

写真はカメラロールから削除され、フォトストリームからも消えた。

そして、その写真は削除してはいけないものだったと気づいた。さあどうする。

このときフォトストリームが共有の仕組みであってバックアップの仕組みでないということがやっと身にしみてわかった。Mac を開いても iPad を見ても、フォトストリームはすみやかに同期されていて問題の写真は消えていた。

ではバックアップはどうかというと、もちろんバックアップはある。iCloud のアカウントを登録してあれば、iPhone は充電中にユーザーのデータを iCloud にバックアップする。そこに目的のファイルが残っているのは確実だ、やったー。……ってどうやってその写真を取ってくる?

iCloud のバックアップはデバイス全体を復旧することしか想定していない。Mac の Time Machine バックアップのように、特定のフォルダだけ過去の状態に戻すということはできない(書いてて思ったけど、アップルは将来できるようにはするのかもね)。

それでけっきょくどうしたかというと、

  • 現在の状態を iCloud に手動でバックアップ。
  • iPhone を初期化し、写真を削除する前の時点での iCloud バックアップから復元する。
  • 削除した写真を Dropbox にコピー(メールで送信とかでも、やりかたは何でもよい)。
  • iPhone を初期化し、はじめに取った最新の iCloud バックアップから復元する。
  • Dropbox からコピーしておいた写真をカメラロールに保存。

写真1枚の復旧のためにデバイスを2回初期化している! まあでもそんな手間よりも「写真を取り戻すことができた」ということのほうが重要かもしれない。バックアップ重要。

とはいえ初期化・復旧は時間かかるから、写真を簡単にアンドゥできるような仕掛けはほしい。そのあたりも調べたのだけど長くなるのでまた回をあらためて書きます。

ThinkPad X240s

ちょっと前ですが ThinkPad X240s を買いました。

ここがよい:

  • 薄くて平ら。
  • バッテリーの持ち。
  • IPS 液晶の発色。

ここがだめ:

  • キーボード。
  • ウルトラナビ。
  • ちょっと重くなった。

とくにキーボードには問題が多い。キーストロークは今まで使ってきた ThinkPad の中でもっとも浅くチープである。X201s でディスプレイにあわせて筐体がワイドになってキートップがフルサイズになったのに、今回でまた Enter 周りのキーが狭くなってしまった。7段配列でなくなり、Home, End, Insert, Delete, PgUp, PgDn, PrtSc の配置が変わった。さらに、ファンクションキーがボリュームや輝度調整などのユーティリティ・キーと共用になり、後者がデフォルトとなった。ファンクションキーとして使用するには、Fn キーと組み合わせて押す。

Fn キーは Fn + Esc でロックすることができて、そうすると最上段のキーは標準でファンクションキーとして働く。この場合は Fn キーと組み合わせれば各種ユーティリティ・キーになる。

ここからが問題なのだが、じつは Insert キーがなくなって Fn + End にマッピングされるようになった。そして Fn ロックがかかっていると、End キーは Insert キーになってしまい Fn キーと組み合わせないと End にならない。これがほんとうにひどい。すこし前の ThinkPad Edge というネットブックが6段でちょうど同じようなキー配置だったけど、Fn キーのロックは BIOS で変更できて、変更した場合でも End と Insert が入れ替わったりはしなかった。X240s では CapsLock と Ctrl を入れ換える BIOS 設定はあるが、End / Insert に関しては存在しない。

仕方ないので、Windows に詳しい人ならご存じの、レジストリでのキーマップの変更を設定することに(知りたい人は「レジストリ Scancode Map」あたりでググりましょう)。「それで解決じゃん」と思うかもしれないけど、これだとマシン全体の設定になるので外付けのキーボード挿したときにも End / Insert が入れ替わってしまう。やっぱり基本的にはドライバか BIOS で対応してくれないとだめなのだ。まあとうぶん外付けキーボードは付けないからこれで使うことに。

ウルトラナビのドライバの出来もいまいち。トラックポイントだと中央ボタンと組み合わせたスクロールをよく使うのだけど、今回3ボタンとトラックパッドが一体化したものになったのでボタンの押し分けがむずかしい。トラックバッドが Mac くらいよくできてればいいのだけど、設定項目がやたら多いくせにどうにも最適な調整にはならない。

ディスプレイが綺麗になったのとバッテリーの心配をしなくていいくらい持つようになったのはよい。……が、これって ThinkPad じゃなくてもよくないかって感想だ……。真面目な話、いま Windows 走らせるサブノートとしては、MacBook Air がいちばん優れてるかもね。

 

艱苦の iTunes Match

日本でも iTunes Match が始まったので遅まきながら自分も登録してみた。iTunes Match を登録するとどう嬉しいのかなどについては深澤さんのブログにうまく整理されていますのでそちらを。

僕の iTunes ライブラリにはおよそ13,000曲、アルバムにして1,000枚ちょっとの曲が入っている。その9割近くが CD から取り込んだもの。10年以上前からずっと入っているものもある。以下の話の参考までに。

iTunes Match の話になるとかならず「アップロードに時間がかかる」という話になるのだけれど、僕の場合は Mac 点けっぱなしでおよそ4日かかっていた。上りの遅い ADSL 回線だけどね。アップロードすることになった(つまり「マッチ」扱いにならなかった)のは約4,000曲だった。曲が iTunes Store の情報に「マッチ」すると、その曲は実際にアップロードしなくてもよいので、その割合が高いほど初期準備の時間は短くなる。 処理完了後、ライブラリの iTunes Match 状況の内訳は次のようになった(括弧内はアルバム枚数)。

  • マッチ: 8,963 (819枚)
  • 購入した項目: 97 (5枚)
  • アップロード済み: 3,959 (514枚)
  • 待機中: 39 (34枚)

「待機中」というのは iTunes Store のクラウドでマッチ処理が継続しているということで、この状態の曲はダウンロードすることも聴くこともできない。ふつうは処理の進行に伴って減っていくのだが、いつまでも終わらないでこのように残る(グレーアウトして表示される)曲がどうしても出てきてしまうのが実情のようだ。しかしそれが39曲というのは他の人のブログなどを見る限りかなり少ない方のようで、僕はラッキーなほうだったみたい(最近なのでクラウド側の処理が改善されたのかもしれない)。ちなみに、他の人ではちらほら見かける「不適格」ステータスがついたものは一曲もなかった。DRM 付きのがなかったからかな。

さて、アップロード済みの中には、取り込んだのが最近で AAC 256 kbps(つまり iTunes Store と同等)のものもある。iTunes Match では、マッチした楽曲は元ファイルのビットレートにかかわらず 256 kbps の AAC 版をダウンロードできるようになっている。僕は昔に取り込んだビットレートの低い MP3 ファイルが多かったので、今回はそれも重要な登録の目的のひとつだった。そこで自分のライブラリで音質がそれ未満のものを抽出してみると、10,270曲あった。こういう情報は、iTunes でスマートプレイリストを作ると簡単に抽出できますよ。

古い MP3 楽曲の高音質版を手に入れるのが目的で iTunes Match を購入している場合は、できるだけ多くのアルバムをマッチさせるのが望ましい。iTunes に AAC 版があるのに「アップロード」扱いになっているようなものは、ほんとうは再マッチさせたいところである。(今回はあまり重要視していないけど、マッチさせると、25,000曲という iTunes Match のアップロード曲数制限にかからないというメリットもある。)ちなみに、もちろん iTunes のサーバにそもそも登録がないものは、iTunes Store 版の AAC はダウンロードできない。さて、ではその再マッチさせるのにいちばんいい方法はというと、それがビットレートを上げてリッピングし直すことみたいなのである。

高音質版を楽に手に入れたくてマッチさせようとしてるのに、けっきょく再リッピングになってしまうんだ……。

まあそれは仕方ないと自分を納得させることとして(それでも音質の低かった曲をすべて再リッピングするよりはずっと——正確には7,268曲も、つまり「『マッチ』していた低ビットレート曲数」分——手間は減ってるんだし)、そうなると作戦としては、

  • 「待機中」でグレーアウトしてしまった曲を含むアルバムを再リッピング・再マッチさせる。
  • その上でマッチせず残ったアルバムのうち、ビットレートの低い MP3 のものを再リッピング・再マッチさせる。

とするか。これだと「マッチせず残った、本来ならマッチしているべきアルバム」は見逃すことになっちゃうけど、それはまた一段階贅沢なレベルの話と割り切ろう。

さて、400枚か……(マッチしなかった曲を含むアルバムのうち低ビットレートのものの枚数)。