2013年2月22日金曜日

早速Ubuntu 12.10 Touch Previewをインストールする

CanonicalからUbuntu Touchのプレビュー版(MWC2013でのデモ用イメージ)が公開されました。対象は、Nexusブランドの4機種、Galaxy Nexus, Nexus 4, Nexus 7, Nexux 10です。

このあたりも見越してGalaxy Nexusの中古を入手してあったので、早速入れよう... としたのですが、説明はあくあまでUbuntuを使っての作業が書かれているのみ。

しかし、カスタムROMやらGalaxy NexusならGoogle公式最新版イメージに置き換えたことのある人ならご存知の通り、adbとfastbootさえあれば、bootrom unlockしたNexus端末にどんなROMを入れることもできることはご承知の通り。

そんなわけで、Mac OS X(たぶんWindowsでも同じ)から、Ubuntu Touchをインストールする手順を以下に。

1. イメージ等、必要なファイルの入手

今回公開されたイメージファイルは、ここにあるものがすべてです。それぞれ、機種に対応するコードネームがついたものがあります。それぞれ、
  • Galaxy Nexus - maguro
  • Nexus 4 - mako
  • Nexus 7 - grouper
  • Nexus 10 - manta
です。今回はGalaxy Nexusなので、ファイル名にmaguroが入っているものすべてを適当な場所にまとめてダウンロードしておきます。慎重な人は、md5ファイルもとって、md5コマンドで正常にダウンロードできたかどうかをチェックしてもいいでしょう。今回は、以下の4つ

  • quantal-preinstalled-armel+maguro.zip
  • quantal-preinstalled-boot-armel+maguro.img
  • quantal-preinstalled-recovery-armel+maguro.img
  • quantal-preinstalled-system-armel+maguro.img
です。

2. adbとfastbootの準備

これは、Android SDKのなかに入っています。Mac版は、platform-toolsの下に入っているので、適当にイメージと同じ場所に移動してしまっていいでしょう。

3. bootrom unlock

すでにやってある人は気にしなくていいのですが、初めての人は、以下の作業をしてください。
  1. いったん電源をオフにします
  2. 電源ボタンと音量ボタン上下の3つのボタンを同時に押して起動します
  3. 端末とMacやPCをUSB接続します
  4. ./fastboot oem unlock  のコマンドをPC側から実行します

4. 稼働中のAndroidのバックアップ

もう戻らないよ、という人や、まっさらからAndroidイメージを書き戻しても惜しくない人はこれをやらなくてもかまわないですけれど、Androidに戻したくなったときのために、現状のすべてをバックアップしておきます。ただ、なにやらGoogle Playに怪しげなバックアップツールがいろいろありますが、どれもsecroid.comで調べてみると、「危険度HIGH」で、広告屋やらPayPalなどへ情報を送信しています。使わないのが無難ではないでしょうか。

ICS以後はadbコマンドでフルバックアップがとれるので、以下の通り、簡単に済ませましょう。

その前に、「USBデバッグ」を有効にしなくてはいけません。これは、設定アプリで情報を開いて、ビルド番号のところを7回連打すると隠されていた「開発者向けツール」の項目が現れ、そこのなかに設定があります。「USBデバッグを有効にする」にチェックを入れておきます。そして、そのあと、MacやPCにUSB接続をすると、Android画面に(4.2以後なら)USBデバッグの許可をするかの確認が出ます。コンピュータのハッシュも出ますが、まぁそういうことで、「許可」します。そのあとで、adbで以下のおまじないをしておくといいかもしれません。
$ ./adb kill-server; ./adb start-server
そのあとおもむろに、
$ ./adb backup -f android422.ab -apk -shared -all -system
とやって、android422.abなど、適当なファイル名でバックアップを取得します。これは、あとでリストアするときに使えます。

5. 各種ファイルの書き込み

まず、Androidが普通に起動している状態にしておきます。USBデバッグは有効にしておいてください。そこで、adbコマンドでzipファイルを/sdcardに書き込みます(内部のフラッシュメモリですが、データ保存場所としてそういう名前のフォルダがあると考えてください)。
./adb push quantal-preinstalled-armel+maguro.zip /sdcard/autodeploy.zip
後ろのファイル名は固定です。この名前でなければだめです。

そのあと、端末を再起動してイメージを一気に書き込み、最後に再起動する作業をします。
./adb reboot bootloader
./fastboot flash system quantal-preinstalled-system-armel+maguro.img
./fastboot flash boot quantal-preinstalled-boot-armel+maguro.img
./fastboot flash recovery quantal-preinstalled-recovery-armel+maguro.img
./fastboot reboot
これで、Googleロゴが出たまま固まっていると思います。失敗したかと焦ると思いますが、なにやらイメージのリサイズとやらで、10分以上待たされるのだそうです。Galaxy Nexusだと、もしかすると30分とか平気でかかるかと思います(と書いているのは、まだ起動待ち状態だから)。

 というわけで、こちらはまだGoogleロゴの画面のままなので、なにがどうなっているかさっぱりわかりません。当面寝かせておいて、起動したらまた追記します。

おまけ:Androidの復元

4.2.2のイメージは、Googleの開発者向けサイトに置かれています。Galaxy Nexsusなら、maguroの項目を見て、4.2.2の「Link」をクリックすればイメージをzipにしたものが落ちてきます。あとは、これを展開したなかにある./flash-all.sh を実行してやれば、イメージの書き込みが終わり、まっさらな状態で再起動します。その後、最初の言語の選択とGoogleアカウントでのログインを終えたあと、クラウドからの復元のチェックを外しておいて先に進んで、ホーム画面にたどり着いたら、再びUSBデバッグを有効にしたあと
./adb restore android422.ab
のようにファイル名を指定してバックアップから戻せば元通りです。

おまけその2:石化してしまった場合の対処

1日置いたけど先に進まない、もうだめ、というときには、落ち着いて裏蓋を外し、電池を抜きます。深呼吸しながら10数えて再び電池を入れ直し、裏蓋をします。その後、おもむろに電源ボタン+ボリューム上下ボタンで起動してやれば、リカバリモードに入ることができます。ここで心配ならば、上のAndroidの復元をすれば元通りになります。

2013年2月4日月曜日

Windows 8でホームディレクトリを英数字のみのユーザ名にする方法

かなり過日のことでしたが、Windows 8が作成するホームディレクトリが漢字にならない方法を見つけたので、念のため紹介しておきます。

普通にWindows 8をインストールする際には、ユーザの登録場面で、Microsoftアカウントの作成もしくはMicrosoftアカウント(旧Live ID、旧旧Hotmailアカウント、旧旧旧...)でのログインを求められます。このとき、そのMicrosoftアカウントに関連付ける氏名に漢字を使っていると、下の名のほうを使った日本語フォルダが作成され、ホームディレクトリになります。僕の場合は、ユーザの下に「敏之」というフォルダができるという感じ。

いまどきの若い方々は下の名前で互いに呼び合うので違和感はないかもしれませんが、私のようないい年のおっさんには、「なんだよ、呼び捨てかよ」的な違和感が残ります。

またなにより、ホームディレクトリの下には、Windowsでユーザ固有の設定を置くユーザプロファイルという特殊なファイル(普通は見えない)や、アプリケーションの個人設定などを置くApplication Dataフォルダなどがあり(これも普通は見えない)、インストールしたアプリはすべからくこれらを読み書きします。

そこで、例えばネットからダウンロードしてきたソフトウェアとか、日本語版でないアプリケーションなどを動かすと、ユーザプロファイルやApplication Dataフォルダ以下が見つからずに、へんてこに文字化けた謎フォルダを作ったあげく、起動しないということがたびたび生じます。

世間ではこのようなとき、「英数字でないログイン名をつける奴が悪い」「その変な文字やめれ」的な回答をユーザーフォーラムのようなところで雨あられと頂戴することになっております。これは漢字圏に限らずヨーロッパでも同じで、母国の正しい表記の名前でユーザ名を作ったばかりに、上記のように屈辱的な回答を頂戴して「ごめん、出直してくるよ」と回答せざるを得なくなるケースを非常によく見ます。旧聞になりますが、Kobo騒動では三木谷がマヌケだったわけではなく、彼こそがグローバルスタンダードだったといってもよいぐらいなわけであります。

そんなわけで、Windows 8はLive IDもといMicrosoftアカウントとの統合が売りなので、Microsoftアカウントでないことに対して様々な不安を与える表示を出して、Microsoftアカウントへと誘導します。しかし、ここさえ乗り切れば、「つい、うっかり」非英数字のホームディレクトリを作成してしまうことを避けることができるのです。

いま、インストールの途中でMicrosoftアカウントの作成もしくはMicrosoftアカウントでのログインを求められている場面だとします。ここで、迷わず「ローカルアカウントを使う」を選ぶのです。すると、Microsoftアカウントを使うことの優位性を説かれ、「それでもいいですか」的な表示が出ます。ここでひるんではいけません。非情に「ローカルアカウントを作成する」を選択します。そして、英数字でローカルアカウント作成するのです。

これで、ホームディレクトリは英数字の範囲内で作成されました。でも、もちろんローカルアカウントなので、Windows Live(でいいんだっけ)による、ユーザ情報の共有やアプリの同期などはできません。どうせWindows 7まではそうだったし、この状態でもSkyDriveなどは個別にアプリからログインすれば使えますから、このままでもいいでしょう。でも、ありがたいことに、この状態から「Microsoftアカウントへ切り替える」しても、ホームディレクトリはそのままなのです。この変更は、個人設定でできます。スタート画面でチャーム(右からうにょって出てくるやつ)を出し、いちばん下のギアを選択して、切り替わった画面のいちばん下にある「PC環境の設定」を選べば、「PC設定」アプリが起動し、左の「ユーザー」メニューを選べば、「お使いのアカウント」として、Microsoftアカウントへ切り替えるのボタンが現れます。ここではじめてアカウントを作成するのもよし、すでにLive IDをお持ちならそれでログインすればいいというわけです。

ちなみにこれは一方向です。というか、最初に作成されたホームディレクトリが必ず維持されます。なので、先に非英数字のホームディレクトリを作成してしまったら最後、いくらMicrosoftアカウントの氏名をローマ字に変更しようとも、漢字なら漢字のままです。思い出してください。ここには、ユーザプロファイルという、Windows NT以後最重要な個人設定ファイルがあるのです。途中でこのファイルの場所を変更するのは危険です。できないように作りこむのがメーカーの良心というものでしょう。

Windowsの設定に詳しい方なら、プロファイルのパスを設定変更する方法をご存知かと思います。もちろん、その機能はあります。同じ画面でホームディレクトリを直接指定することもできるので、英数字の任意のフォルダをホームディレクトリに設定することも可能です。しかし、残念ながら、Application Dataフォルダは相変わらず漢字のフォルダ側に残ります。要するに、普通にユーザから見えるデータの置き場所だけが設定したディレクトリになるだけなのです。さらに悪いことに、ユーザプロファイルが分断されて、両方に書き込みが(一貫性なく?)あるようです。環境変数の書き換えも万能ではありません。アプリケーションによっては、こうした設定に従ったり、環境変数だけを参照してくれるケースもあるのでうまくいくこともありますが、それは運がよかったというべきかと思います。したがって、これらは「無駄な抵抗」と思っておいたほうが無難ではないかと僕は思っています。

最後に、もう一度だけおさらいしておきます。

「先にローカルアカウントを英数字の範囲だけで作成し、そのあとでMicrosoftアカウントへ移行すれば、日本語のフォルダが勝手に作られることから逃げられます。」

日本語のホームディレクトリができてしまった人は残念です。Windowsと心中できる覚悟のない方は、諦めて再インストールしましょう。事情があって再インストールは不可能な場合は、新たにローカルアカウントを英数字で作り、いったんサインアウトしてから新しいローカルアカウントでサインインして、なんとかすればいいでしょう。ただし、ホームディレクトリの削除は管理者権限でコマンドプロンプトを開いたぐらいでは消すことができません。もちろん、管理者権限でコマンドプロンプトを開いてそこでの作業をするのは前提なのですが、attrコマンドでファイルやフォルダに対してひとつひとつ権限を外したあとでなければ、どうやっても消せません。非常に面倒です。こういうときは、ダチョウアルゴリズムを採用して、「見なかったことにする」のが正しい対処法ではないかと思われます。

そういえば、マイクロソフトに忠実な方で、正式版以前からアップデートされてきた方は、Windows.oldというフォルダがCドライブのルートにあることでしょう。これも同じように、attrコマンドでちまちまと膨大な作業をしないと消えません。VBScriptやPowerShellを使いこなせる人が近くにいれば、スクリプトで作業するのも手かもしれませんが、ディスクにゆとりがあるなら、これも「見なかったことにする」のが最も手っ取り早いように思います。多少ディスクの残りが厳しいならば、管理者権限である程度までは消すことができるので、それをやってあとは諦めるのでもよいと思います。

自分のCalibreライブラリをOPDSで自分用に公開する

英文の本はほぼ確実に電子書籍を買う。待たなくていいから。特に、O'Reillyの本はDRM Freeで、DropBox連携もあるので、買えばその場で自分のDropBoxアカウントに落ちてくる。Kindleも、まぁ、すぐに落ちてくるが、DRMがついているのでこれはやや難がある(それをどうにかする話は検索すれば多数ひっかかるし、商売でやっている人も海外にいるから読者のご判断に任せる)。

自炊本も含めて、蔵書管理に便利なのがCalibreだ。多数の電子書籍デバイスにも対応していて、DRMの心配がない、例えばパブリックドメインの本などは全部これに入れておき、書誌情報をGoogleやAmazonで検索してくっつけておく、などということもできる。

一方で、出先で自分のCalibreライブラリにアクセスしたいということはあると思う。CalibreはWebサーバとして動作する機能があり、「サーバを起動」すれば、設定したポートでWebサーバとして動作し、設定したパスワードで以後蔵書にアクセスしてダウンロードすることもできる。サーバのページはわりとよくできていて、特に不満はないと思う。

ただ、電子書籍の書誌情報についての規格としてOPDSというのがあって、OPDSカタログを使ってInternet Archiveや青空文庫などと同じようにOPDSから本を選んでダウンロードしたいということもあるだろう。それをどうにかしてくれるのが、calibre2opdsというソフトウェアだ。これはCalibreとは別のプロジェクトで作られていて、作者個人がメンテナンスしている感じだ。当初はDropBoxにCalibreのライブラリごと置いてOPDSカタログもそこに作れば幸せだね、って感じでやっていたようだが、DropBox側の通信量制限にひっかかるケースが続出したようで、OPDSそのものにブロックがかかってしまったようなぼやきが作者のブログに書かれている。

なので以下の記述は、自分でWebサーバを公開できる人に限った話ということになる。

話は簡単で、Calibreのライブラリごと自分のWebサーバに置いて、そこにcalibre2opdsでOPDSカタログを作り、StanzaなどOPDSに対応した読書ソフトウェアに、生成されたindex.xmlへのURIを設定する、ということになる。

i文庫HDなどのように、最初からDropBoxに対応しているアプリで不便を感じていないならば、またGood Reader経由でアプリに渡せばいいじゃないかと思うなら、こんな面倒なことをする必要はない。

しかし、青空文庫やProject Gutenberg、O'Reillyなどと同じ並びで自分の本棚が選べてダウンロードできるというのは、やってみると一味ちがう。StanzaはEPUB2までの対応ということで、縦組みは期待できないが、O'ReillyのPDF版を読むぐらいなら、絶対にStanzaで読むEPUBに切り替えるべきだ。好みの問題といえばそれまでだが、僕は紙の書籍のときから、O'Reillyのへんてこなフォントが大嫌いだった。これで読むしかないから我慢していたのであって、読みにくくて脱落することがとても多かった。でも、Stanzaのデフォルトフォントは、少なくともiOS版に関する限り、十分にオーソドックスな書体が使われていて、たいへん読みやすい。文字のせいで脱落するようなことはなくなった。だから、Stanzaに直接ダウンロードするのを、Webサーバ上でCalibreを動かすことなく(普通はそうだろう)、生成されたインデックスと書籍本体のファイルだけ置けば可能になるというのはとてもよいものだ。日本語も問題なく処理してくれるので、自炊PDFも大丈夫だ。

StanzaはEPUB2とPDF以外にはWordとRTFとHTMLに対応しているんだそうだ。他にmajor ebooks formatsということなんだが、MOBIとかが対応しているのかどうかは試していないのでいまのところわからない。

それから、OPDSは、英文のWikipediaの項目を参照されたい。パブリックドメインの本を提供している複数のサイトのOPDSが掲載されているので、シャーロック・ホームズを原文で読みたいとか、そういった古典へのアクセスに、青空文庫が満足できると思う人なら無償のデジタル本やスキャンされて公開されている古書をこれらOPDSを通してアクセスするのはなかなか快適だ。インライン画像も入っているのでスキャンした本やEPUBで表紙が含まれているならそれが現れるし、書誌情報がついていればそれを確認してからダウンロードすることもできる。ぜひ試してみていただきたい。

そういえば、国会図書館がデジタル化資料(古い官報や古典籍―とはいっても著作権が切れていればいいので1949年、つまり戦後すぐまでの本は入っている)を公開しているのだが、OPDSないよー、とぼやいている人が検索したらたくさん出てきた。ついでなのでここでも「国会図書館のデジタル公開分もOPDS対応してほしい」と要望しておきたい。