AndroidのフォントをGoogleの新フォントファミリーNoto Sans CJKに変更

Googleが公開した新しいフォントファミリーNoto Sans CJKを、Androidのシステムフォントとして使用するようにした。このフォントファミリーはOpenTypeであるが、拡張子をttfに変更することなくotfのまま使用できた。

Googleが美しく読みやすいフォントとして新しいフォントファミリーNoto Sans CJKを公開しました。タイプフェイスの著作権はアドビが保持していますが、データ自体はApache License(2.0)で公開されているので、ライセンスを守れば誰でも自由に使用できます。

そこでさっそくCarbonRomをインストールしたGalxy SII LTEにこのNoto Sans CJKをインストールしてシステムフォントとして使用できるようにしてみました。

準備

  • root取得済みAndroid 4.4端末
    CarbonRom(KitKat)をインストールしたGalaxy SII LTE(SC-03D)を使用
  • Noto Sans Japanese
    Noto Sans CJKをNotoフォントのWebサイトからダウンロード。

手順

システムフォントの変更は、大まかに次の3ステップとなります。

  • ファイルシステムの再マウント
  • フォントを端末にコピーする。
  • fallback_fonts.xmlを編集する。

ファイルシステムの再マウント

フォントファイルなどが入っている/systemディレクトリーは、読み込み専用としてマウントされています。そこで次のように読み書きできるようにパーティションを再マウントします。

$ adb root
$ adb shell

シェル上で次のコマンドを実行する。

# mount -o rw,remount /system
# exit

  • マウントする具体的なパーティションは指定する必要はありません。
  • シェルに入ってからsuでrootになって再マウントすると、フォントファイルをコピーする時にpermition deniedになってしまいます。

フォントのコピー

必要なフォントを端末にコピーします。最低RegularとBoldの二つのフォントファイルをコピーします。Noto Sans CJKのようなOpenTypeフォントは、otfという拡張子をttfにしてコピーすると書かれたページがありましたが、私が試した範囲では変更する必要はありませんでした。

Regularタイプ
  • NotoSansJP-Regular.otf
  • NotoSansJP-Light.otf
Boldタイプ
  • NotoSansJP-Bold.otf
  • NotoSansJP-Black.otf

$ adb push NotoSansJP-Light.otf /system/fonts
$ adb push NotoSansJP-Black.otf /system/fonts

フォントファイルの編集

$ adb pull /system/etc/fallback_fonts.xml
$ cp /system/etc/fallback_fonts.xml fallback_fonts_orig.xml

fallback_fonts.xmlの最後の方

<family>
  <fileset>
    <file lang="ja">MTLmr3m.ttf</file>
   </fileset>
</family>

lang=”ja”となっている所を新しくコピーしたNotoSansフォントに変更します。

<family>
  <fileset>
    <file lang="ja">NotoSansJP-Light.otf</file>
    <file lang="ja">NotoSansJP-Black.otf</file>
 </fileset>
</family>

$ adb push fallback_fonts.xml /system/etc

端末を再起動すると、インストールしたフォントがシステムフォントとして使用されます。フォントをキャッシュするのか、新しいフォントを入れた直後の再起動は通常よりも時間がかかります。

MigMixフォント

MigMix Font
MigMix Font

Noto Sansフォント
NotoSansJP-RegularとNotoSansJP-BoldではMigMixとの違いが分かりにくいのでNotoSansJP-LightとNotoSansJP-Blackを使用。

Noto Sans Font
Noto Sans Font

Postfixのcorruptメールを削除

Postfixのスプールに溜まったcorruptメールをきれいに削除する方法。

メールの配送状況の確認はmailqコマンドを使用します。このコマンドを実行すると、どのメールが処理中で、どのメールが配信にエラーが起きて溜まっているかを確認できます。

普通はmailqを実行して配信エラーが無いか確認するだけで十分なのですが、あるとき気が付いたらMuninのPostfixの状況を示すグラフの値がいつもと違っていました。普段corruptキューの値は0なのですが、このcorruptが1になっていました。

実際にPostfixのcorruptディレクトリーを確認すると、確かにC961B3Fというファイルが作成されていました。この時mailqコマンドを実行してもC961B3Fというidは存在しませんでした。

Postfixのキューに溜まったエラーメールを削除するには、postsuperコマンドの-dオプションを使用します。そこで次のようにしてcorruptメールを削除しようとしました。

postsuper -d C961B3F

しかしmailqに表示されない、すなわちキューに登録されていないのでこのコマンドでは削除する事ができませんでした。

そこで最後の手段でスプール上のファイルを直接削除しました。

find /var/spool/postfix -name C961B3F -delete

rmコマンドで削除しても同じですが、Postfixは関連ファイルを他のディレクトリーにも作成しているのでfindコマンドで検索と削除を同時に実行しました。いきなり削除が怖い場合は、-deleteオプションの代りに-printオプションを使用して指定ファイルの検索のみを実行すると安心です。

LPC810のプログラムをUbuntuで開発する

  • LPC810の公式開発環境LPCXpressoは、Linux版が用意されている。無料版のLPCXpressoは開発できるプログラムの大きさに制限があるが、コンパイラの最適化に制限はない。
  • 公式の開発環境を使用しないでもプログラムを作成することができる。
  • LPC810にプログラムを書き込むにはlpc21ispを使用する。
  • Ubunt上に開発環境をセットアップして、実際にLEDをチカチカさせるプログラムで動作確認を行った。

2014-01-13_2

先日秋月のWebページを散歩していたら、Androidに使われているのと同じアーキテクチャのARMマイコンコーナーにたった8ピンしかないARMマイコンLPC810を見つけました。たった8ピンのDIPパッケージとはまるでPICマイコンかタイマーICの555みたいです。それにおもしろいことにLPC810には内蔵機能を使うための関数がROMとして初めから組み込まれています。これならフラッシュ領域以上の働きをするプログラムを作成できます。しかし、その時は「へー」で終わっていました。

ところが昨日本屋さんに寄ったら、その8ピンARMマイコンLPC810が付録になっているトランジスタ技術を見つけました。ちょうど年末から電子工作に目覚めてLEDをチカチカさせて遊んでいる所だったので、週末ちょっと遊ぶには良いかもとオマケのLPC810目当てにトランジスター技術を買って来ました。

今回はUbuntu(Linux)で開発環境を整えて、動作確認のためにLEDをチカチカさせるところまでやってみました。

LPCXpressoをインストール

Windows向けに無料の開発環境があるのは当たり前になっていますが、Ubuntu(Linux)環境でソフトを開発するにはコンパイラ等のツールを準備するのが大変かなと覚悟していました。しかし案ずるよりは産むが安し、Windowsと同じLPCXpressoがLinux向けに提供されていました。なので開発環境を準備するには、公式ページからLinux向けのインストーラをダウンロードしてインストールするだけでした。

tar zxf Installer_LPCXpresso_6.1.2_177_Linux-x86.tar.gz
./Installer_LPCXpresso_6.1.2_177_Linux-x86

LPCXpressoをインストールするには管理者権限が有無を言わせず要求されます。sudoを付けないで起動すると、ダイアログが表示されて管理者権限を取得するパスワードの入力を求められました。

無料版のLCPXpressoは、開発できるプログラムサイズに制限がありますが、コンパイラの最適化などに制限はないようです。インストール後にアクティベーションをするとプログラムサイズの上限が256KBに引き上げられます。もっともLPC810のプログラム領域は4KBなのでアクティベーションをしなくても困らないと思います。

GUIが不要ならば

もしどうしても公式のGUI開発環境を使いたくないということであれば、GNUツールを使っても開発は可能です。

開発に必要なGCCは次のようにインストールします。

sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi

もしかするとLPCXpressoのコンパイラー(これもGCC)をコマンドラインから使えるかもしれません。

プログラムを書き込むツールをインストール

出来あがったバイナリー(hexファイル)は、lpc21ispというプログラムを使ってコマンドラインから書き込みます。このコマンドがシリアル回線を使ってプログラムをLPC810に書き込んでくれます。

lpc21ispのインストールは次のように行います。Ubuntu 13.10ならば既にレポジトリにlpc21ispが登録されているので直接installに進めます。

sudo add-apt-repository ppa:kamalmostafa/lpc21isp
sudo apt-get update

sudo apt-get install lcp21isp

Switch Matrixツール

今回のテストには不要ですが将来LPC810の各ピンに割り当てられている機能を変更する場合、設定にはWebベースのツールLPC Initializer and pinmuxが使えます。

動作確認にLチカ

LEDを点滅させるLチカ用プログラムは、ただの動作確認なのでGithubに公開されているLPC810 CodeBaseを使うのが便利です。

git clone https://github.com/microbuilder/LPC810_CodeBase.git

このプロジェクトをLPCXpressoにインポートしてビルドするか、srcディレクトリーに移ってmakeしてLチカプログラムのhexファイルを作成します。

回路の組立

LPC810 CodeBaseはPIO0_2(4番ピン)にLEDを接続する事を想定して書かれているので、それに合わせて次のような回路を組み立てます。

2014-01-13_1

LPC810のデータシートを確認するとPIO0_2とPIO0_3はIOHが最低20mAと他(4mA)に比べてドライブ能力が高いのでH出力でLEDが点灯するようにしても大丈夫です。LEDは何でもいいのですが、私はお手軽な抵抗内蔵LEDを使っています。

また電源電圧が最高3.6Vということにも注意が必要です。お手軽安定電源であるUSBの5Vをつなぐと壊れます。今回のテスト程度ならば、USB-シリアル変換モジュールの3.3V出力を使えるかもしれませんが、今後を考えると3.3Vの電源を確保しておくことが必要です。

Lチカを書き込む

作成したプログラムは、次の手順で書き込みます。

  1. ISPモードにするため、5番ピンをGNDに落とした状態でリセットします。
  2. 次のコマンドでプログラムを書き込みます。
    sudo lpc21isp blinky.hex -term /dev/ttyUSB0 115200 12000
    

    -termオプションでプログラム書き込み後にターミナルモードに移行し、LPC810で実行されるLチカプログラムの出力を待ちます。通信速度を変更しても書き込みに問題はありませんが、Lチカプログラムからの出力が文字化けします。

  3. ISPモードから抜けるために、5番ピンをオープンにしてリセットします。問題無ければプログラムが実行されてLEDが点滅して、ターミナルには「Hello, LPC810!」という文字列が次々に表示されます。
  4. ESCを押すとlcp21ispが終了します。

参照

USBメモリーからUbuntu Serverをインストール

サーバ向けUbuntuをUSBメモリーから新規インストールしようとしたら、途中でエラーが出てインストール出来なかった。原因は、ISOイメージをUSBメモリーに書き込むアプリ(Unetbootinなど)がサーバ向けUbuntuのISOイメージを正しく変換できないこと。サーバ向けUbuntuのISOイメージは、書き込みソフトを使わずにUSBメモリーにddコマンドなどでそのまま書き込むとインストールできる。

Ubuntu 12.10以降のデスクトップ版のISOイメージファイルのサイズがCDの最大容量を越えてしまい、イメージファイルはDVDに焼くかUSBメモリーに書き込んでインストールするようになりました。Ubuntuのサーバ版はまだCDに収まるサイズですが、デスクトップ版と同じくUSBメモリーに書き込んでインストールしてみました。

USBメモリーを使ったインストール方法

USBメモリーからのインストールは、CD-RにISOイメージを焼く代わりに変換ソフトを使ってUSBメモリーに書き込みます。その後は通常のインストール手順と全く同じです。

  1. 配布されているISOイメージファイルをダウンロードします。USBメモリーに書き込むソフトにダウンロード機能が付いている物もありますが、ネットワーク的に近いところからダウンロードしておいた方が時間の節約になります。
  2. ダウンロードしたISOイメージファイルをUnetbootinなどのソフトを使ってUSBメモリーから起動できるように変換してUSBメモリーに書き込みます。
  3. UbuntuをインストールしたいマシンにUSBメモリーを挿しこみ、このメモリーから起動させます。
  4. 指示に従ってUbuntuをインストールします。

サーバ版のUbuntuはUSBメモリーからインストールできない

デスクトップ版の場合はこれで問題なくインストールできるのですが、サーバ版のUbuntuをこの方法でインストールしようとすると最後のところで次のようなエラーが表示されてインストールに失敗してしまいました。

IMG_0280

ISOイメージが壊れているのかと思い何ヵ所かの違ったミラーサイトからダウンロードしてみましたが同じようにインストールに失敗しました。またOSのバージョンに問題があるのかと思いUbuntu 12.04 LTSではなく最新の13.04も試してみましたが、これも同じくインストールに失敗しました。

確認のためデスクトップ向けのUbuntuを試してみると、こちらはUbuntu 12.04 LTSと13.04の両方とも問題なくOSをインストールできました。

USBメモリーに書き込むソフトの問題かと思いUnetbootinからLinux Live USB Creatorに変えてみましたが、これも上と同じくデスクトップ向けのUbuntuはインストールできるがサーバ向けだとインストールに失敗しました。

これらの結果からサーバ版のUbuntuはISOイメージファイルをUSBメモリーに書き込むソフトが正しく変換できないためにインストールに失敗するのだと結論しました。

サーバ版のISOイメージはddコマンドでUSBメモリーに書き込む

ここでもう一度Googleで検索すると、まさにこの問題について書かれたページが見つかりました。そのページからUbuntuのバグ情報ページに進むと解決方法が書かれていました。

解決方法はシンプルで次のどちらかです。

  • USBメモリーを使わずCD(DVD)からインストールする。
  • ISOイメージファイルをべた書きツールを使ってUSBメモリーに書き込む。

そこでLinuxのべた書きコマンドddを使って次のようにサーバ向けのUbuntu 12.04 LTSをUSBメモリーに書き込んだところ、問題なくインストールに成功しました。

sudo dd if=ubuntu.iso of=/dev/sdb bs=4096

注意:ofに指定するデバイスファイル名は、環境・マシンにより異なります。この出力先ファイル名を間違えると悲惨な結果になります。

Windowsでddコマンド同じ働きをするアプリはDD for Windows(DDWin)で、これでも同じようにインストール出来る事を確かめています。

Windowsでの再利用にはUSBメモリーを完全フォーマットする

インストールに使用したUSBメモリーはISOファイルシステムになっています。そのため通常のUSBメモリーとしてWindowsで使用するには、クイックフォーマットではなく完全なフォーマットをしてWindowsのファイルシステムにする必要があります。

試した書き込みソフトとUbuntuのバージョン

ISOイメージファイルをUSBメモリーに書き込むには、次の3つを使用しました。

  • Windows版 unetbootin-585
  • Linux版 unetbootin
  • Windows版 Linux Live USB Creator(2.8.18)

ISOイメージファイルは、次の四種類を試しました。括弧内は、ISOイメージファイルを変換してUSBに書き込むソフトを使った場合のインストール結果です。

  • ubuntu-12.04.3-sever-amd64.iso(インストール失敗)
  • ubuntu-13.04-server-amd64.iso(インストール失敗)
  • ubuntu-13.10-server-amd64.iso(インストール失敗)
  • ubuntu-13.04-desktop-amd64.iso(インストール成功)

Xperia ray(ST18i)のroot奪取

Xperia ray(ST18i)のrootを取得して、中国語風の日本語フォント(中華フォント)を見慣れた日本語フォントに置き換えた記録です。

先日購入したXperia ray(ST18i)は、オリジナルのままでも日本語表示に対応しています。そのためロケーションを日本に設定してアクセスポイントを設定するだけで普通に使えます。

ただちょっと気になるのが日本語のフォントです。文字化けとかは無く日本語を表示するのですが、漢字の「今」や「空」の字形が見慣れた日本語のフォントとは違ってなんとなく中国語風(中華フォント)です。明らかな中国語のように省略されたような漢字では無いので、困るというほどではありませんが、やはり何ともしっくりきません。

そこで日本語フォントを見なれた字形のフォントに置き換えることにしました。フォントはシステムファイルで通常は変更できないので、rootを取得してフォントを置換しました。

root取得にはセキュリティホールが必要

ソフトウエアにはバグが付きもので、バグには危険なセキュリティホールが潜んでいることがあります。そのため発売後に発見されたバグは、ファームウエアの更新によってふさがれていきます。

起動する時の設定でrootを取得できる機種もあるようですが、今回はセキュリティホールを突いてrootを取得する方法を使います。ただし今回使いたいセキュリティホールはビルド番号4.0.2.A.42までにしかなく、それ以降のファームいエアではセキュリティホールが塞がれています。よってビルド番号4.0.2.A.0.6が導入されている私のXperia rayでは、一手間かけないとrootを取得できません。

ファームウエアのダウングレード

最新のファームウエアではrootを取得できないので、ファームウエアを古いバージョンにダウングレードします。

ファームウエアのダウングレードには、wotanserver.comを使用します。この春までははファームウエアのダウングレードは無料でしたが、最近有料になりました。有料と言っても1.99ユーロと安価です。

  1. 端末の種類を選びます。
  2. 「SONY ERICSSON XPERIA RAY FIRMWARE FLASHING」の代金をPayPalで支払います。
  3. USB Flash DriverとWotanClient 3をダウンロードしてパソコンにインストールします。
  4. WotanClientを起動して、説明に従ってボリュームを下げるボタンを押しながら電源を切ったXperia rayを接続します。
  5. Enable advanced settingをチェックします。
  6. Firmwareから4.0.2.A.42と、CDAから適当な国を選びます。香港で購入したXperai rayなのでHong Kongを私は選びました。
  7. 後はNextボタンをクリックして先に進みます。
  8. ファームウエアのダウングレートが完了するとXperia rayが再起動されます。この時ロゴが表示されたまま固まったようになりますが、再起動に時間がかかるので慌てずに気長に待ちます。
  9. ビルド番号が4.0.2.A.42になっていることを確認します。

Android SDKをインストール

rootの取得には、Android SDKに含まれるプログラムが必要です。そこでAndoroid DevelopersのページからAndroid SDK(installer_r18-windows.exe)をダウンロードしてインストールします。

電源が入った状態のXperia rayを接続して、コマンドプロンプトからadb devicesコマンドを実行します。これでXperia rayがリストに表示されればOKです。

C:Program FilesAndroidandroid-sdkplatform-tools>adb devices
List of devices attached
434235313156534E5352    device

初めて電源が入った状態のXperia rayをパソコンにつなぐとSony PC Companionをインストールするか聞かれます。インストールすると、より最新のファームウエアが利用できると言われますが無視します。

rootの取得

rootの取得には、XDA developersにある[04/Jan][ROOTING/UNROOTING] Xperia 2011 Easy Rooting Toolkit [v4.0](zergRush Exploit)を使います。

  1. Download LinksからDooMLoRD_v4_ROOT-zergRush-busybox-su.zipをダウンロードします。
  2. DooMLoRD_v4_ROOT-zergRush-busybox-su.zipを展開してrunme.batを起動します。
  3. Before u beginに書かれていることを確認・実行して先に進みます。

アプリ一覧にsuperuserというアプリが入っていれば、rootの取得成功です。さらにadb shellコマンドからsuでプロンプトが「$」から「#」になることを確認できればrootを取得できたことが確実です。

C:Program FilesAndroidandroid-sdkplatform-tools>adb shell
$ su
su
# exit
exit
$ exit
exit

ファームウエアのアップデート

rootを取得後はセキュリティーホールが不要ですので、安全のためにアップデートしておきます。

具体的には、設定の端末情報→ソフトウエア更新を選ぶと4.0.2.A.0.62が利用できると表示されるので、指示に従ってファームウエアをアップデートします。

日本語フォントの置換

日本語フォントにはいくつか種類があるようですが、最も標準的な「モトヤマルベリ」に置換しました。「ゆかりんフォント」というフォントも一部ユーザには人気のようです。

  1. android / platform_frameworks_baseからモトヤマルベリ(MTLmr3m.ttf)をダウンロードします。
  2. ダウンロードしたMTLmr3m.ttfをDroidSansJapanese.ttfにリネームします。
  3. adbコマンドでフォントファイルを書き込めるように準備します。
    C:Program FilesAndroidandroid-sdkplatform-tools>adb shell
    $ su
    # mount
    /dev/block/mtdblock0 /system yaffs2 ro,relatime 0 0
    # mount -o remount,rw /dev/block/mtdblock0 /system
    # mount
    /dev/block/mtdblock0 /system yaffs2 rw,relatime 0 0
    # chmod 777 /system/fonts
    # exit
    $ exit
  4. ファイルを書き込めるようになったら、リネームしておいたフォントを書き込みます。
    C:Program FilesAndroidandroid-sdkplatform-tools>adb push DroidSansJapanese.ttf /system/fonts
    2592 KB/s (2871020 bytes in 1.081s)
  5. (オプション)ディレクトリーのパーミッションを元に戻し、ファイルのパーミッションなどを他のフォントと合わせます。
    C:Program FilesAndroidandroid-sdkplatform-tools>adb shell
    $ su
    # chmod 755 /system/fonts
    # chown root /system/fonts/DroidSansJapanese.ttf
    # chgrp 0 /system/fonts/DroidSansJapanese.ttf
    # chmod 644 /system/fonts/DroidSansJapanese.ttf
    # ls -l /system/fonts
    ls -l /system/fonts
    -rw-r--r-- root     root      2871020 2012-03-31 15:34 DroidSansJapanese.ttf
    # exit
    $ exit
  6. 最後にXperia rayを再起動させます。再起動すると、インストールした日本語フォントで表示されるようになります。

置換しても日本語のフォントがおかしい時には、フォントファイルのファイル名が間違っていないかスペルを確認して下さい。

Amazon限定の上限500MBプラン、こんなMVNOサービスを待っていた

スマートフォンは便利ですが、パケット通信費定額オプションが必須で月々の維持費がかなりかかります。そこで維持費を安くするためにMVNOの回線を使う・使いたいユーザーが増え、MVNOサービスが増えてきた気がします。

通信に制限を付けることで割安に

MVNOの回線が安いのは、通信に色々な制限を付けるからです。この制限には、主に次の三種類あります。

  • 回線の通信速度を制限する。
  • 使用できる時間帯を制限する。
  • 通信量の上限を制限する。

この内スマートフォンと最も相性がいい制限、言い換えると制限されている気がしない制限は、「通信量の上限を制限する」プランです。このプランであれば通信量が上限に達するまでは、回線の最高速度で24時間いつでもネットに接続できます。そのため普段は制限があることに気が付きません。

通信量は月平均300から400MB

私は、朝夕やお昼にTwitterでツイートしたり・読んだり、Gmailでメールの読み書き、Google ReaderでブログやWebマガジンを読むのが主で、たまに地図を参照したり電車の乗り換え案内を調べたりする程度のライトユーザです。アプリをインストールしたり週末にガシガシ使うと一日で60MB位の通信量があることもありますが、一月の通信量はだいたい300MBから400MB位でした。

通信量制限プランは1GBで3000円が相場

これまでの通信量を制限するプランは、各社だいたい横並びで上限1GBで月額約3000円でした。現在IIJmioの「高速モバイル/D・ファミリーシェア1GBプラン」を使っていますが、一月に1GB以上使ったことが無いので全く制限があることを気にせず使えています。逆に言うと最大1GBに対して実際の使用量が半分以下なので、通信量の上限をもっと抑える代わりにさらに安いプランがあれば乗り換えたくらいです。

最大が300MB以下であれば、IIJmioの「高速モバイル/D」のままで節約が可能です。

IIJmioの「高速モバイル/D」には、「ファミリーシェア1GBプラン」の他に「ミニマムスタート128プラン」というのもあります。このプランは、基本は通信速度が128kbpsに制限されていますが、100MB分のクーポンを追加購入することで通信量の上限までLTEを含めた最高速度で使用できるプランです。

このプランを使うと、通信量が300MB以下であれば「ミニマムスタート128プラン」の基本使用料にクーポン300MB分を合わせても約2500円ですみ、「ファミリーシェア1GBプラン」よりもお得です。

しかし私は400MBは越えることはまずないのですが300MBはほぼ確実に超えるので、クーポンを追加購入する煩わしさを嫌って「ファミリーシェア1GBプラン」です。

Amazon限定プランは500MBで1980円

ここにちょうど欲しかった通信量の上限をこれまでの1GBから500MBに下げる代わりに料金も抑えたサービスをAmazonが始めました。正確にはMVNOの老舗b-mobile(日本通信)のAmazon限定プランです。

このプランは、一月の通信量が上限500MBに制限される代わりに通信費が1980円と安く設定されています。通信量の上限まではLTEを含め最高速度で使用出来るのはIIJmioの「高速モバイル/D」と同じですが、上限を超えると新しくクーポンを購入しない限り通信が出来なくなってしまいます。またクーポンの単位が500MB(1980円)となっているので、基本通信量の500MBを越えると「ファミリーシェア1GBプラン」よりも割高になってしまいます。

通信速度に不安が残るが気軽に試せる

もう一つAmazon限定プランで気になるのは、b-mobile(日本通信)の回線であることです。b-mobileはMVNOの老舗ですが、以前回線速度を比較した時はIIJmioの「高速モバイル/D」に比べて明らかに遅かったので、実際の通信速度に不安があります。

ただし嬉しいことにAmazon限定プランは長期契約の縛りがありません。そのため初期費用と一月分の通信費の合計約5000円で、通信速度を含めた使い心地を気軽に試してみることが可能です。

前回IIJmioの「高速モバイル/D」と通信速度を比較した時から時間が経っているので、今は通信速度が改善していることを期待して注文しました。

Xperia ray(ST18i)を海外から個人輸入

個人輸入というと大げさですが、手続きはアメリカのAmazonから本を買うのと大して違いはありませんでした。また到着までにかかる時間も注文から3日と非常にスピーディでした。

Xperia miniは、コンパクト過ぎた

オークションで購入したXperia mini(ST15i)は、カードサイズのスマートフォンとして便利に使っていました。大抵のことは問題ないのですが、「モバツイtouch」でツイート文の入力欄が隠れてしまってやはりちょっと使いにくいというのが正直な感想です。

そこでもう一回り大きなスマホとして目を付けたのが同じXperiaシリーズのXperia rayです。

Xperia rayを海外通販サイトで購入

スマホの中古ショップでの相場は、だいたい1万5千円から2万円を切る位でした。一方、海外の通販サイトを見ると送料を加えても日本円にして2万円を少し超える程度(3月下旬の価格)でした。そこで、新品でSIMフリーというプレミアムが付くので、多少のリスクはあっても海外の通販サイトから購入する事にしました。

スマホを扱う海外の通販サイトは、1shopmobile.comexpansysというサイトが実績も豊富で、まずまず信用できそうです。

expansysは、販売価格が円建てで分かりやすいのですが、1shopmobile.comよりも常に少し高い値段になっています。そこで1shopmobile.comか購入する事にしました。

1shopmobile.comで購入時の注意点

いくら利用実績があってまずまず信用できそうなサイトだとしても、やはりクレジットカードの情報を知らない会社に送るのは不安があります。しかし1shopmobile.comで購入する時には、この会社に直接カード情報を送るのではなく、もう少し信用できるGoogleのGoogle Walletというサービスを仲立ちとして支払います。これでだいぶ安心です。

Google Walletの使い方はPayPalを使った支払いとほとんど変わりません。ただし一つ注意する必要があるのは、住所の入力をローマ字で入力しないといけないということです。

住所をローマ字で入力するのは、海外のサイトだから当たり前と言われそうです。しかし県名の選択肢にローマ字表記と並んで漢字で東京都や大阪府というのもありました。そこで日本語で入力しても良いのかと思い入力したものの受け付けてもらえず「あれ?」としばらく悩んでしまいました。

注文完了からの流れ

注文を完了すると、確認のメールがGoogleから送られてきます。これ以降のステータス確認は、Google Walletのページで行います。

今回は、4月4日の夜に注文して、翌5日の夜に発送されていました。発送されると荷物の追跡番号がGoogle Walletのページに書かれます。

追跡番号が決まれば、今回はEMSを使っての発送ですので、日本郵便のサイトで荷物の追跡をすることができます。ただし日本に到着する前から日本郵便のサイトで追跡できるというのは何とも不思議です。全世界で共通のシステムなのでしょうか?

そうこうしている内にあっという間に日本に到着して、EMSは速達扱いなので税関を通過した当日の7日夜には配達されました。時間的には国内での通販とほとんど変わらないスピーディさです。

超コンパクト、カードサイズのスマートフォンXperia mini(ST15i a.k.a. S51SE)

スマートフォンを選ぶ基準はユーザ毎に異なるでしょうが、私が重視するのはコンパクトさ。そしてついに超コンパクトなスマートフォンXperia miniを見つけました。

スマートフォンは、この1年で急速に普及しました。ちょっと前まではiPhoneを使っている人を見ると「おっ!」と思っていましたが、最近では全く気にも留めないくらい普通な光景です。

スマートフォンの普及に伴い端末の選択肢も非常に豊富になりました。その結果、たくさん機種があり過ぎてどれを選ぶかかなり迷いました。私がスマートフォンに一番期待したのは、外に出ている時にふと思ったことをその場で検索できることです。そのためWebページが読みやすい大画面の端末を選びました。現在使っているGalaxy NEXUS(SC-04D)は、Webページなど文字がたくさん書かれている画面でも読むのが苦になりません。

大画面スマートフォンは、携帯に不便

大画面の端末は見やすくて便利な半面、携帯が不便でした。Galaxy NEXUSは、これまでのケータイに比べて2倍くらい大きいので、ポケットに入れておくには収まりが悪いし、首から下げておくのはブラブラして邪魔な気がします。大抵の女性のように常にバッグを持っていればその中に入れておくということも可能ですが、使いたい時にサッと出てこないのももどかしい気がします。

その結果、購入したスマートフォンは通勤鞄と常にペアとなって、これまでのケータイを手放せないでいました。

カードサイズの超小型スマートフォン

そこで画面が小さくなってもポケットに入れていても違和感のない小型のスマートフォンが無いかと中古のスマホ売り場にしばらく通っていました。

するとS51SEというSony Ericsson製の端末を見つけました。S51SEは、非常にコンパクトでクレジットカードと同じ大きさで、これまで使っていたケータイよりも小さい位です。Galaxy NEXUSに比べると、面積比で半分位です。

Xperia miniはカードサイズ

Xperia miniは、これまでのケータイより小型

ただしこのS51SEは、イーモバイル向けの端末です。一般的に日本で発売されている端末の多くは他社のSIMカードを入れても使えないようにSIMロックが掛けられていまが、調べてみると実はSIMフリーで実際にS51SEにDocomoのSIMを入れて使えたというようWebページも見つかりました。

そこで買う決意をしてお店に行くと、この端末は既に売れてしまっていました。

S51SEの国際版Xperia miniを入手

なんとなく諦めきれずにYahoo!オークションを見ていたらS51SEの国際版、正真正銘のSIMフリーなXperia mini(ST15i)を見つけました。これならばSIMロックの心配はありません。

もう迷う要素は無いのでエイヤッと入札札し、数日後には端末が手元に届きました。

国際版のXperia miniは、標準で日本語が使える

国際版のXperia mini(ST15i)とは言っても、標準で日本語が使えます。設定で日本語を選べば表示が日本語化され、POBoxが初めから入っているので日本語入力に不自由はありません。またXperia mini(ST15i)の画面は、480×320ドットとGalaxy NEXUS(1280×720ドット)に比べるとぐっと小さいが、使ってみてそれほど不便は感じませんでした。

Xperia miniの気になる点

ただちょっと気になる点が2ヶ所あります。

一つ目は、モバツイtouchでツイートを入力する時にソフトキーボードと変換候補が表示されると入力欄が完全に隠されてしまいます。Gmailだと問題ないので、入力欄を表示する場所のデザインによるのだと思います。

もう一つは、表示される日本語フォントが見慣れない書体だということです。だいたいの文字は違和感ないのですが、「今」や「空」の字形がパソコンやケータイなどで見かける字形と異なっています。慣れの問題と言えるのかもしれませんが、ちょっと気になります。

参考:イーモバが国内最小・最軽量アンドロイド『Sony Ericsson mini(S51SE)』発表(AriaやXperiaとの比較、触ってきたレポート追記)

IIJmioはDocomoと遜色ない ― MVNO回線(b-mobileとIIJmio)の実効速度比較

スマホの維持費を安くるるためにMVNO回線のIIJmio「高速モバイル/D」を導入しました。実効通信速度を測定してみたところ、docomoの回線と遜色ない速さである事を確認しました。しかし比較対象としたb-mobileの回線速度は、明らかにIIJmioやdocomoよりも遅いことが分かりました。

スマホを使うには、パケット通信料が定額になるオプション契約が必須です。でも、これまでの感覚からすると、月々5000円越えのパケット通信料は痛い出費です。そこで色々制限を加えることで月々のパケット通信料を安くあげるMVNO回線を導入する事にしました。

通信料を安くするには制限が必要

MVNO回線のプランには色々な制限がありますが、ほぼ共通しているのは通話が出来ないということです。通話に関しては、未だにケータイも持っているので私は無くても全く問題ありません。どうしても必要であれば、050PLUSのようなIP電話アプリを導入して通話する事も可能なようです。

料金がもっとも安くなるのは、通信速度を制限するプランです。この代表例は、イオンの980円プランです。速度を制限するプランは、最高速度を約100Kbpsに制限することで月々約1000円に抑えるのが一般的です。このプランを紹介するWebや雑誌の記事では、Twitterやメールなど文字中心のアプリであればそれほどストレスないという感想が書かれています。しかし、今回速度テストで実効速度約300kbpsの回線を使ってみましたが、常に通信完了を待つ感じでかなりストレスを感じました。

もっとも一般的なMVNO回線のプランは、通信速度は制限しないが月の通信量を1GBに制限する約3000円のプランです。ただし通信速度に制限は無いと言っても、それは3G通信での話でLTEサービスは使えないものがほとんどです。このプランには、Biglobe 3Gのデイタイムプランという使える時間帯も制限することでさらに安くできるプランもあります。

私の通信量は、だいたい月に200MBから300MB程度でした。動画をダウンロードして見ることはありませんが、アプリのダウンロードやアップデートなどを含め特に節約を意識しないで使ってもその程度です。よって月に1GBであれば不足する心配は全くありません。むしろもっと容量を制限して安くしてほしい位です。

通信速度の制限は耐えられないのでIIJmioの「高速モバイル/D」を導入

通信速度を制限するプランは、いくら安いと言ってもスマホの便利さ・楽しさの一部を我慢する必要があるので、速度は制限したくありません。そこで通信速度は制限しないが通信量が1GBまでというMVNO回線のもっとも一般的なプランから選ぶ事にしました。

夜はパソコンを使うことがほとんどなので、当初はBiglobeのデイタイムプランにしようと思ったのですが、人気すぎて新規受け付けが停止されていたので諦めました。そうしたところIIJmioの「高速モバイル/D」というプランの評判が良い事を知りました。

「高速モバイル/D」の特徴

速度制限無しを謳うプランでもユーザ数が多いと実効速度が遅くなってしまいますが、IIJmioは他の速度制限無しのプランよりも実効速度が速いということです。さらに速度制限のあるもっとも安いプランにしておいても、クーポンを購入することで100MB単位で速度制限を無くせる。また3Gでの通信だけでなくLTEでの通信にも対応し、こちらも速度制限を解除できる。またMVNO回線の契約でも2年間縛りがあったりしますが、IIJmioは契約した次の月末までという非常に緩い縛りなのも特徴です。

そこでIIJmioの「高速モバイル/D」のミニマムスタート128プランに追加クーポンを足すのが一番良さそうに思えました。ただし実際には、初めから1GBにクーポンが付いているファミリーシェア1GBプランを契約しました。ファミリーシェア1GBプランは、SIMカードを一契約で最大3枚発行してもらえるのも特徴です。

IIJmioに申し込みから4日でSIMカードが到着

IIJmioは、申し込みからSIMカードが届くまでに少し時間がかかります。私の場合は、4月1日(日曜日)の夜に配達日の指定無しで申し込んだところ、SIMカードは4月5日(木曜日)に届きました。配達日の指定をする場合は、申し込みの一週間後以降の日付を指定できるようです。例えば4月1日に申し込んだ私の場合は、配達日を指定すると最速で4月7日でした。またiPhoneなどに使われているmicroSIMカードを選択すると、配達が標準SIMカードより2,3日遅くなるという注意書きがありました。

SIMカードが届いたら送られてきたSIMカードをセットして説明に従ってアクセスポイントを変更するだけで、当たり前ですが普通に通信する事が出来ました。

ただし一部の端末では電波の強さを示すアンテナアイコンが表示されず、常に圏外と認識される問題があるとのことです。実際私のGalaxy NEXUS(SC-04D)でも常に圏外表示になっています。圏外表示になるのは気分的には良くありませんが、通信には問題ありません。この問題は、root化すると解消できますが、とりあえずは無視します。

「高速モバイル/D」の通信速度は?

MVNOサービスでもっとも気になるのは、通信速度です。親回線よりも遅くなるのは仕方が無いとしても、できるだけ速いに越したことはありません。実際にMVNO回線を使っての体感的には、IIJmimとdocomoで通信速度に差を感じることはありません。ただしMVNO回線を使ったサービスの老舗b-mobileの1GBプランを比較として試してみましたが、こちらはdocomo比べて遅いことがハッキリと体感できました。

実際の通信速度はどの程度なのか、実効通信速度を簡単に計測してみました。通信速度を測定するアプリもありますが、今回はBNRスピードテストを使用しました。BNRスピードテストで各回線の通信速度を三回ずつ最高速度を測定し、最高速度の平均を比較しました。

Docomo IIJmio b-mobile
月曜日 午後3時台
(Mbps)
1.15 1.36 0.27
金曜日 午後9時台
(Mbps)
0.39 0.33 0.13
土曜日 午前5時台
(Mbps)
2.35 2.07 1.62
土曜日 午前11時台
(Mbps)

0.41 0.90 0.23

IIJmioの「高速モバイル/D」は、Docomo回線と遜色なし

土曜日の早朝は、どのプランも1.6Mbps以上の速度が出ています。b-mobileが多少遅いもののdocomoとほぼ同じ速度であることから、IIJmioとb-mobileは宣伝通り通信速度を制限していないことが確かめられました。

また金曜日の午後9時台に測定した結果では、どの回線も最高速度が非常に遅くなっています。これはBiglobeのデイタイムプランの使えない時間帯であり、通信量が多い時間帯だと考えられます。docomoとIIJmioの通信速度にあまり差が無いことから、通信量が多い時間帯でもMVNO回線だからといって制限されることは無いことが分かります。

通信速度の測定結果をまとめると、IIJmioの実効通信速度はdocomoと遜色が無いことが分かりました。しかしb-mobileの実効通信速度は常にIIJmioやdocomoよりも明らかに遅いことが分かりました。この実効通信速度の差は、docomoから借りている回線に対するユーザ密度の差によるものと考えられます。このためIIJmioも今後のユーザ数増加に回線容量の増加が追いつかないと実効通信速度の低下が起こると考えられます。

現在の段階では、IIJmioはdocomo回線と遜色のない実効通信速度が出ており非常に満足しています。また今回は最初から1GB分のクーポンが付いたファミリーシェア1GBプランを選びましたが、月々の通信量が300MB未満ならばミニマムスタート128プランに追加クーポンを購入することで通信速度と値段の両面で他社よりもお得になると思います。

IIJmioの「高速モバイル/D」に欠点は無いの?

あまり褒めすぎると褒め殺しか宣伝目的と思われてしまうので、欠点も書いておきます。

ファミリーシェア1GBプランは、一契約で最大SIMカードを三枚発行できますが、組み合わせと枚数は契約時に固定されてしまいます。とりあえず必要なSIMカード数で契約して、合計が3枚以下でも追加でSIMカードを発行する事はできません。同様に標準SIMカードとmicroSIMカードを相互に変更することはできません。そのような時は一度解約して新たに契約が必要となります。

Ubuntu11.10でも自動ログインでGNOME Classicを使いたい

Ubuntu11.10(Oneiric Ocelot)でクラシック・デスクトップ環境(GNOME Classic)を使うには、gnome-session-fallbackをインストールする。ただし自動ログイン(オートログイン)にすると強制的にデスクトップ環境がUnityになってしまう。自動ログインでもクラシック環境を使うには、lightdm.confを修正する。

Ubuntuのユーザインタフェースは、11.04(Natty Narwhal)からGNOMEを使いながら独自のデスクトップ環境であるUnityが採用されました。しかし11.04では移行期間ということで、Unityだけでなく以前のデスクトップ環境(クラシック)も標準でインストールされていました。そのため新しいデスクトップ環境のUnityに馴染めないユーザは、ログイン画面でクラシック環境を選ぶだけで、これまでとほぼ同じクラシック環境を使うことができました。

しかしUbuntu11.10(Oneiric Ocelot)は、デスクトップ環境が全面的にUnityに移行ました。そのため標準でインストールされているデスクトップ環境がUnityのみとなり、クラシック環境はインストールされていません。

クラシック・デスクトップ環境をインストール

Ubuntu11.10でクラシック・デスクトップ環境を使用するには、そのためのパッケージ(gnome-session-fallback)をインストールする必要があります。

sudo apt-get install gnome-session-fallback

パッケージをインストールした後で一度ログアウトすると、歯車アイコンの選択できるデスクトップ環境にGNOME Classicが現れるようになります。これを選んでログインすると、これまでとほぼ同じクラシック・デスクトップ環境を使用できるようになります。

自動ログインにすると強制的にUnityになる

UbuntuなどLinuxは、複数のユーザが一台の機械を使用できるOSです。そのため使用する前には、自分が誰であるかをログインにより教えてあげる必要があります。さもないと一緒に使う他のユーザに悪意は無くてもファイルを変更されたり削除されてしまう可能性があります。

とは言ってもUbuntuのデスクトップ版は、そのマシンの所有者だけが使うことが多いと思います。そのため他の人に使われるリスクを受け入れれば、ログインを飛ばしてデスクトップが表示される自動ログインの機能があります(*1)。自動ログインを有効にするには、ユーザの設定で自動ログインボタンを「オン」にするだけです。

Ubuntu11.04までは、自動ログインにすると現在のデスクトップ環境が保存されていました。しかし11.10では、強制的にUnity環境になってしまいます。

*1 パソコン上のOSでは、パスワードはただのオマジナイです。ファイル自体を暗号化してお無い限り、CD-ROMなどから起動させてファイルの読み書きが自由にできてしまいます。

自動ログインでもクラシック環境を使うには

自動ログインでクラシック・デスクトップ環境を使用するには、設定ファイルの書き換えが必要となります。具体的にはlightdm.confファイルを修正します。

lightdm.confファイルを修正するには、2つの方法があります。一つ目は、単純にファイルをエディタで書き変える方法です。

sudo nano /etc/lightdm/lightdm.conf

user-session=ubuntuをuser-session=gnome-classicに書き変えます。

もう一つは、コマンドを使って書き変える方法です。

sudo /usr/lib/lightdm/lightdm-set-defaults -s gnome-classic

lightdm.confファイルを修正して再起動すると、自動ログインしてもクラシック・デスクトップ環境が現れます。

ちなみにuser-sessionの値をubuntu-2dにすると、Unityの2D版になります。

Unityを使うと決めた理由

Unityは使いにくいなと思っていたのでクラシック環境を使って来ました。しかし、これからはUnityにします。

クラシック環境からUnityに移行する主な理由は次の二点です。

クラシック・デスクトップ環境は、これまでのデスク環境とは言っても「ほぼ」で、全く同じではありません。特に違いで気になったの良は、画面下部の起動しているアプリケーションが表示されるバーです。これまでのバーには、自動的に隠す機能がありました。しかしUbuntu11.10のクラシック・デスクトップ環境では、バーが常に表示されたままです。そのためバーの分だけ画面が狭くなってしまいます。

Unityは、画面左にアプリケーションを起動させるボタンが表示されます。これは便利なのですが、既に起動しているアプリケーションのボタンをクリックしても複数は起動しません。この問題は、良く使うアプリケーションをキーボード・ショートカットに登録することで解決しました。これならば好きなだけ起動できる上に、いちいちボタンをクリックする手間も省けて一石二鳥です。

参考:How do I change the default session for LightDM when using auto-logins?