2014年11月27日木曜日

Ubuntu 14.04 からVNCでWindowsにアクセス

LinuxからWindowsをリモート操作するには、
LinuxにVNCクライアントを、WindowsにVNCサーバを導入します。
今回はWIndowsではUltraVNC ver1.2をインストールし、
Ubuntu 14.04で
# apt-get install vncviewer
でインストールし、
$ vncviewer
の実行後に出てくる[VNC server]と[Password]のダイアログボックスに
WindowsマシンのIPアドレスと設定したパスワードを入れると、
無事リモートデスクトップが表示されました、がトラブルが…
なんとクライアントからのマウスのクリックやキーボード入力がサーバに届きません。

UltraVNCは[Edit settings]アプリケーションで設定するのです。
これの[Security]タブに[VNC Password]と[View-Only Password]を
設定するようになっていたため、
きっと後者でログインしたために入力を受付てくれないのかと考え、
再設定などやってみますが改善が見られません。
しょうがないのでいろいろ見ていると[Input/FileTransfer]タブの
[Input]フレームに[Disable Viewers input]なる項目がありチェックされています。
なんてこったい。
それのチェックを外しWindowsをリブートすると
入力ができるようになりました。やれやれ。

気分がよくなったのもつかの間。
漢字を入力しようと[Alt]+[半角/全角]を押すと、
リモートのWindowsまで届かず、
Ubuntuのウィンドウの切り替え画面が出てきます…orz
[半角/全角]キー単体も無視されます。
Ubuntu側で何とかできればいいのですが今のところ方法が分かりません。

しかたがないのでWindows側で対応します。
つまり、他のキーの組み合わせでIMEのON/OFFが出きるようにします。
Windowsのタスクバー(近く)にある[IMEパッド]を右クリックし、[設定]を実行します。
[テキスト サービスと入力言語]ウィンドウが表示されるので、
使用しているIMEの[プロパティ]を開き、
[全般]タブの[編集操作]フレームの[変更]ボタンをクリックします。
[キー](または[*キー])フィールドの"Ctrl+SPACE"の行の"半角空白"にフォーカスを当て
[変更]ボタンをクリックし、"IMF-オン/オフ"に変更します。
これを横一列すべてで行います。
なお、これは私が先のウィンドウの[スペースの入力]を"常に半角"にしていて
[Ctrl]+[space]の組み合わせを実質使っていないので、これを転用しています。
キーコンビネーションは各自の事情に合わせて選んでください。
ちなみに以上はWindows7+Microsoft Office IME 2007での話で、
OSやIMEが違うと設定方法が異なるのでご注意を。

2014年11月26日水曜日

F1 2014シーズンが終わる

最終戦のアブダビGPでルイス・ハミルトンが優勝し、
同時に彼がワールドチャンピオンのタイトルを獲って、
2014年シーズンのF1が幕を降ろしました。

今シーズンはパワーユニットの変革によりレースがおもしろくなるかと思いきや、
メルセデスの2台がぶっちぎって、その2台にトラブルがあったときにだけ
他がおこぼれをもらうようなレースにしかなりませんでした。
あまりに面白くなかったので、
特に何も起きないレースについては録画してから1.5倍速で、ながら視聴していました。

さらに興ざめなのは来シーズンも同様になりそうなことです。
開発費抑制のためのパワーユニットのホモロゲーションルールが覆りそうもなく、
今年と変わらないパワーユニットを使わざるを得ないからです。

ということで注目するのは来シーズンからパワーユニットサプライヤとして
F1に再参戦するホンダの存在です。
今シーズンの様子を見た上でどういうパワーユニットにすれば勝てるのか
色々分かったはずなので、それらを設計に活かせれば、
メルセデスの独走は防げるかもしれません。
しかし、マクラーレン・ホンダが序盤で結果が残せないと、
本当に今年と同じになりそうで。
ホンダがこけたらF1もこけることになりかねません。

2015年シーズンは3月12日のオーストラリアGPで開幕です。
もう3ヶ月しか残されていません。
マクラーレン・ホンダ来季のドライバーラインナップはまだ発表がありませんが、
勝てるドライバー、勝てるマシンにできるドライバーに乗って欲しいものです。
そしてホンダには勝てるパワーユニットに仕上げてもらいたいですね。

2014年11月25日火曜日

京都の紅葉

第二種電気主任技術者試験の一次試験が、自己採点どおり予想外にも通過していました。
その話は不合格通知(?)が届いたときに改めてするとして、
今回書くのは試験日の翌日、3連休の最終日の話です。
実は二次試験の会場は大阪だったのですが、ちょっと足を伸ばして京都観光をしてきました。
以前から嵐山の紅葉を見に行きたかったんですよね。
が、後でこの選択を激しく後悔することに…

受験後大阪に一泊し、3連休の最終日となる翌日午前中の早いうちに嵐山に到着しました。
すでに結構な数の観光客がいましたが、普通に渡月橋を渡り、
ついでなのでモンキーパークまで登山しました。
そして下山してみると下界は大変なことに。すさまじい数の観光客です。
駅に帰るのに渡月橋を戻る必要があるのですが、
渡月橋を渡るのに長蛇の列ができています。
昼時ということもあって近辺の食べ物屋さんにも長蛇の列です。
駅までの道は歩道が狭く、人であふれかえっていました。

当日中に家まで帰る必要があるため、京都中心部から距離のある嵐山に
あまり長居するとろくなことがないと考え、とりあえず京都駅まで戻り、
時間が読める範囲でもう一ヶ所観光することにしました。
ターゲットは清水寺です。
清水寺には小学校の修学旅行を含め何度か訪れていますが、
紅葉の季節は初めてです。
京都駅の改札を出るとお誂え向きにバスが着ていて飛び乗りました。
が、市内の道路は大変な混雑で、ついでにバスの中も混雑で、
清水寺の最寄りバス停までが地獄でした。
そして、清水寺まで上がる坂もえらいことに。すごい人です。
さらに清水の舞台が落ちるんじゃないかと思えるほどの人人人です。
早々に引き上げようと坂を下りにかかると混雑はさらに増しています。

京都は国際的にも有名な観光地で、海外の方もたくさん訪れていますが、
完全にキャパシティーをオーバーしているように感じました。
もはやおもてなしとかいう次元を越えています。
もちろん3連休ということもあって日本人も押し寄せたということもあり、
かく言う私もその一人なのですが、
もう紅葉の時期に京都に来ることはないなと思うのでありました。

今回の教訓。
有名地の旬の観光は平日に限る。

撮った中から出来のいい写真を載せておきます。
私と同様に人混みが嫌いな方はこれでも見て我慢しましょう。

紅葉


嵐山

渡月橋

清水寺 紅葉と水面

清水寺 成就院

清水の舞台を見上げる

2014年11月24日月曜日

MacでWindowsを使う上での困り事

先日MacBook ProWindows7インストールしたのですが、
使う上で困ったことがいくつかあったので私の解決方法を書き残しておきます。

一番最初に気になるのが、タッチパッドの2本指スワイプで行うスクロールの方向が、
OS Xの標準と逆になっているという点です。
最近のOS Xでは上にスワイプすると下にスクロールし、
これはiPadを始めとするスマートデバイスと同様になっています。
対するWindowsは上にスワイプする上にスクロールします。
ホイール付きマウスの動作に準拠しています。
どちらが直感的かと言えば、どっちもどっちなのですが、
同じマシン上の違うOSで操作が違うのは非常に気持ち悪く、
もうスマートデバイスにすっかり慣れてしまったということでOS Xに合わせます。
つまり、Windows7をカスタマイズしてスクロールの方向を逆にしてしまいます。

最初に[デバイス マネージャー]を立ち上げ、
[ヒューマン インターフェイス デバイス]-[Apple Multitouch]の
[プロパティ]から[詳細]タブを開き、[ハードウェア ID]の内容をメモしておきます。
そして[レジストリエディタ(regedit.exe)]を立ち上げて
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\HID"のあたりを見ます。
すると、先にメモした内容と似たような名前で、
かつその下に"FlipFlopWheel"がある項目が見つかるはずです。
私の場合は
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\HID\VID_05AC&PID_0254&MI_01&Col01\9&826b34b&0&0000\Device Parameters
が該当します。
で、その中の"FlipFlopWheel"の値を"0"から"1"に変更します。
これで完了です。
スクロール向きが縦のみ逆になります。
横方向は変更できませんが仕方ありません。それでも実用には十分です。

2つ目の困り事はキーボードのキー配置です。
私がよく使うキーボードのショートカットと言えばコピーと貼り付けで、
Windowsでは[Ctrl]+[c]と[Ctrl]+[v]、
OS Xでは[Command]+[c]と[Command]+[v]となります。
これらはそれぞれPC用とMac用のキーボードを使っていると、
ほぼ同じ感覚でキーが押せるのですが、
MacでWindowsを使うと[Control]キーの位置の関係で押しにくくてしょうがありません。
過去[Ctrl]キーがMacと同じ位置にあったマシンを使っていたこともあるので、
慣れの問題と言ってしまえばそれまでですが、
同じマシン上の違うOSで操作が違うのは非常に気持ち悪いです。
Macのキーボードで[Control]キーと[Command]キーが入れ替われば
ちょうどいい感じになるんですが。

変更方法はあります。
[レジストリエディタ(regedit.exe)]を立ち上げて
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout"を開き、
そこに"Scancode Map"という名前のバイナリ値を新規に作成します。
そしてその中身を
00 00 00 00 00 00 00 00 03 00 00 00 5b e0 1d 00 1d 00 5b e0 00 00 00 00
とすれば完了です。
左の[Command]キーと[Control]キーの動作が入れ替わります。
一応設定した数列の内容を説明しておきます。
基本的に4バイトがリトルエンディアンで1ワードを構成しており、
1ワード目と2ワード目は0x00000000で固定(ヘッダ?)です。
3ワード目はそれ以降のデータ数(ワード数)で、
最後のワードは0x00000000で固定(NULL?)です。
何かの構造体っぽいですね。
で、4ワード目から最後の1つ前のワードまでは、
各ワードで1つのキーの定義をしており、
上位2バイトがキーの名前、下位2バイトがキーの役割を示しています。
0x001dは左の[Control]キー(Windowsでは[Ctrl]キー)で
0xe05bは左の[Command]キー(Windowsでは[Windows]キー)なので、
上記だとこれらを入れ替えることになります。

これでコピーが見た目上[Command]+[c]になって楽になるのですが、
変更によりThree Finger Saluteに副作用があります。
Three Finger Saluteとはいわゆる[ctrl]+[alt]+[del]のことです。
Windowsではログイン時やアプリケーションの強制終了に使ったりする例のやつです。
Macのキーボードでも[control]+[option(alt)]+[delete]で可能なのですが、
先の作業で[Control]キーと[Command]キーを入れ替えると使えなくなってしまいます。
しかし代替キーが用意されていて、
[command(contorolと入れ替えられている)]+[fn]+[option(alt)]+[delete]
でなら入れ替えていても可能です。
4キー同時押しとはなかなか厳しいですが仕方ありません。

最後に日本語の入力切り替えです。
Windowsでは([Alt]+)[半角/全角]キーで[半角英数]と[全角ひらがな]を切り替えますが、
Macのキーボードにそんなキーはありません。
OS Xではトグル操作ではなく、[英数]キーと[かな]キーで直接モードを切り替えるからです。
とりあえずはマウスで[言語バー]を操作することで切り替わりますが、
さすがにそれでは使い勝手が悪すぎます。
まあMacキーボードでWindows上の入力切り替えられるように設定できますのでご安心を。

[言語バー]の[設定]から開くウィンドウで[全般]タブを選び、
[Microsoft IME]を選択して[プロパティ]をクリックして新たなウィンドウを開きます。
[編集操作]タブのキー設定で[変更]をクリックし、[キー設定]タブの表を編集します。
[*キー]フィールドが"Ctrl+SPACE"の[入力/変換済み文字なし]フィールドで
[変更]をクリックし、"-"を"IMF-オン/オフ"に変更します。
これで[Control]+[Space]で[半角英数]と[全角ひらがな]が切り替えられるようになります。
まあ先ほど[Control]キーと[Command]キーを入れ替えたので、
キートップ的には[Command]+[Space]にはなりますが。

2014年11月20日木曜日

Ubuntu 14.04 で日本語入力

最近普通のPCとMacBook ProでUbuntu 14.04を入れました。
Ubuntu 14.04の文字入力時に日本語と英語を切り替えるには
[Super]+[Space]を押します。
ここで[Super]キーとはWindowsなら[Windows(スタート)]キーを、
Macなら[Command]キーのこととなります。
ですが、PCではなぜか2回押さないと全角ひらがなになりません。
その後1回押すだけで半角英数になるのに。
一方Macでは押してもモードが変わりません。

で、[システム設定]アプリケーションの[テキスト入力]メニューを見ると、
PCでは[日本語]、[英語(US)]、[日本語(Anthy)]の3つのモードが並んでいます。
1回押すたびに次のモードに移っているということだったんですね。
しかもよく見ると[英語(US)]モードではキーボードの配列がJISでなくASCIIになってます。
これでは記号の入力が辛いので[英語(US)]を[-]ボタンで削除してしまいました。
これで全角ひらがなと半角英数の切り替えが楽になります。
逆にMacでは[日本語(Anthy)]しかありません。
ということで[+]ボタンで[日本語]を追加です。

ここで[Super]+[Space]で切り替わるのは先の入力システムであり、
[日本語(Anthy)]モード内では[半角/全角]または[Ctrl]+[J]で
半角英数と全角ひらがなを切り替えられます。
このキー設定は[日本語(Anthy)]モード時にデスクトップ右上のIMFアイコンから
[設定-Anthy]をクリックして開くウインドウの[キー割り当て]で変更可能ですので、
Macや英語キーボードのように[半角/全角]キーがない場合は好きすればいいでしょう。
ちなみにこのウインドウの[入力タイプ]タグの[キーボードレイアウト]を"jp"にすれば、
JIS配列キーボードを正しく使えます。
私のMacBookProではデフォルトではASCII配列になっており、ここで調整しました。

また、あとで分かったのですが[英語(US)]モードでのキーボードの配列は
# dpkg-reconfigure keyboard-configuration
で対話式に変更可能です。
MacBookProでは[MacBook/MacBookPro(Intl)]、[日本語]、[日本語-日本語(OADG 109A)]
と順に選択する事でJIS配列にできました。

ところで、Windowsでなれてしまっているので、このIMEのモード切り替えの時
思わず[Alt]+[半角/全角]を押してしまいます。
そうするとウィンドウの切り替え画面が出てきて非常に鬱陶しいです。
# apt-get install compizconfig-settings-manager
# apt-get install compiz-plugins
でツールをインストールし、
$ ccsm
でカスタマイズツールを開いていろいろ見て回りますが、
[Alt]+[半角/全角]の無効方法は分かりません。あー困った。

ちなみに[Alt]+[Tab]は
[カテゴリ]の[デスクトップ]-[Ubuntu Unity Plugin]メニューの
[Switcher]タブで[Key to start the Switcher]
(と[Key to switch the previous window in the switcher])で無効にできます。

2014年11月19日水曜日

.NETの新展開

Microsoftが.NETをやり始めたのはいつだったでしょうか。
その当時は、どうせWindowsでしか使わないのに中間コードを吐くとか、
理念はともかく現実的でないなとか思ったものですが、
そのうちCPUやメモリがリッチになってオーバーヘッドがそう気にならなくなり、
仮想マシンは今ではスマートフォンでもサーバでも欠かせない技術になっています。
時代は変わりましたね。

時代が変わったと言えば、プロプライエタリが基本のMicrosoftが
オープンソースへの取り組みを色々するようになってきたことで、
先日ついに.NET関連の大きな発表がありました。
内容が多岐に渡るので詳しくは正式発表を見ていただくとして、
とりあえず私に関係あるところで Visual Studio Commnunity 2013 が
無料とのことでダウンロードしてみました。
MacBook ProWindows7入れたところですしお誂え向きです。
なおCommnunityエディションはExpressエディションのような機能制限は特にないようですが、
商用アプリの作成はライセンス的に問題があるみたいです。

Visual Studio Commnunity 2013のトップページからダウンロードページを開き、
[Commnunity 2013 with Update 4]をクリックします。
[Install now]を選択しても構いませんが、
私は[DVD5 ISO image]をクリックしてisoファイルをダウンロードし、
それをDVD+R DLに焼きました。
サイズが6.9GBと大きいため1層のDVDでは足りません。
そしてそのDVDからインストールします。
その後、先のダウンロードページの[Commnunity 2013 with Update 4]の項の
[Microsoft Visual Studio 2013 Language Pack - 日本語]の[今すぐインストール]をクリックして、
ダウンロードしたファイルを実行し、Visual Studioで日本語が使えるようにします。

が、完了後Visual Studio 2013 を起動すると英語モードになっています。
いろいろ探してみると[TOOLS]-[Options]メニューの[Internasional Settings]タブに
[Language]設定があり、これを"日本語"にすることで無事日本語モードに変更できました。
この手のものはエラーメッセージの日本語が意味不明など、
英語モードのまま使った方がいい場合もあるのですが、
そういう点Microsoftはわりと信頼をおいています。

とりあえず今のところ何か作る意欲はないのですが、
[ファイル]-[新規作成]-[プロジェクト]メニューのフレームワーク指定のところで
<その他のFramework>という選択肢があったので選んでみました。
するとウェブブラウザで.NET SDKs and Downloadsが開きます。
ここを眺めていると[Xamarin Tools for iOS and Android]の文字が。
話には聞いていたXamarinですが、折角なのでこれを入れてみることにしました。
が、激しく後悔。1.5GB分くらいのファイルをダウンロードし始めました。
止めるのも何なんでとりあえず完了まで続行です。
どうも、Android SDK/NDK、JDKなど必要な物をごっそり取ってくるようです。
まるっと環境を整備してくれるのは助かるんですけどね。
そしてセットアップ完了後、C#のAndroidアプリケーションプロジェクトを作って
ビルドしようとしたところ、ログインダイアログが…これ無料じゃないのねorz
もっとよく調べてからにするんでした。

2014年11月18日火曜日

Nexus7にAndroid 5.0が来た

LollipopことAndroid 5.0が私のNexus7(2013/WiFi)に降ってきました。
先週末には、先日紹介したダウンロードサイトから
5.0のファクトリーイメージが入手可能になっていましたが、
特に急いでもなかったのでOTAが来るまで待っていました。
そして思っていたよりも早く今朝届きました。

というわけで早速バージョンアップしました。
ダウンロードサイズは500MB程度です。
Androidバージョンは"5.0"、
ビルド番号が"LRX21P"、
カーネルバージョンが
3.4.0-gfa84206
android-build@vpbs1.mtv.corp.google.com #1
Web Oct 15 05:33:45:UTC 2014
になりました。

で、ちょっと使ってみた感想は…まあ別にどうってことないです。
デザインはiOSの進化と同様に、よりフラットかつボーダレスになっています。
画面上の要素変化時のエフェクトもよりぬるぬるです。
使いにくいのは、4.4で画面上端左を下にスワイプすると通知が、
上端右だと無線LANをはじめとした設定が引き出せていたのが、
画面上端どこでも通知が出て、設定関係はさらにスワイプして引き出す必要があることです。
あと[設定]アプリケーションのデザインが大幅に変わっています。
設定項目の分類は4.4から変わっていないようなので迷うことはないのですが、
Androidを使う上で肝となのに、[設定]アプリケーションはバージョンアップする度に
アイコンが変わったり分類が変わったりと忙しないですね。

他に変わったと言えばイースターエッグ(裏技)にゲームが加わったことです。
Droid君が障害物となるLollipopをジャンプ(スラスター出力)で避ける
バルーンファイル風のちょっとしたアクションゲームなのですが、激ムズです。
もう少しバランス調整してほしかった。
ちなにみイースターエッグは[設定]アプリケーションの
[タブレット情報]メニューの[Androidバージョン]をタップ連打することで出現します。
なお出し方は2.3のころから変わりません。
出てきたLollipopの文字あたりをロングタップするとゲームが始まります。

ところでAndroidでは4.3から4.4になる過程で、
画面上端のステイタスバーのアイコンが全て白一色に統一されました。
なぜ地味になる方向に変更となったのか疑問だったのですが、その理由が分かりました。
5.0ではステイタスバーの背景色がアプリケーション(アクティビティ)によって変わるんですね。
代表的なところで言うとGmailで赤、Google Playの[マイアプリ]で緑、Keepで黄色になります。
4.4での白化は背景色が何色でも識別性をよくするための5.0への布石だったんですね。

2014年11月17日月曜日

MacでLinux

先日MacBook Pro新しいHDD換装して
OS X YosemiteとWindows7デュアルブートにしましたが、
今度はLinuxとのトリプルブートにしてみました。
使うディストリビューションはもちろんUbuntu 14.04 LTSです。
最近はサーバ用途でなければ迷わずUbuntuを選択してしまいます。
またUbuntuはつい最近最新の14.10が出てはいますが、
LTS(長期間サポート)がないバージョンは使おうと思いません。
ところでUbuntu入れてなにするかって?
多分ディスクの肥やしになります。
Ubuntuでないと出来ないことって…Androidのファームウェアビルドぐらいかな。

作業の前に状況を説明しておきますと、
デュアルブート化時に余らせてとりあえずFATにしている、
400GBのHDDの第5パーティションをUbuntuの領地とします。
とにかくUbuntu 14.04(.1)のインストールDVDをMacの内蔵光学ドライブに挿入して
[option]キーを押しながら電源を入れます。
ブート選択メニューにDVDアイコンの[Windows]と[EFI boot]の2項目が現れますが、
[EFI boot]を起動することでgrubが立ち上がり、
そこで[Install Ubuntu]を選択する事でインストーラが立ち上がります。
この時点ではMacの無線LANは動作していないのですが、
インストールを進めて[Ubuntuのインストール準備]ページで
[サードパーティーのソフトウェアをインストールする]チェックボックスをチェックして
そのまま進めると、しばらくして無線LANが有効になり、
画面右上の扇型のアイコンをクリックして無線LANアクセスポイントを指定することで
ネットにつながるようになります。

次はトラブルの多いパーティションの設定です。
まず[インストールの種類]ページから[それ以外]を選択します。
先に説明した第5パーティションを[-]アイコンで解放し、
その空き領域で[+]アイコンを使って約400GBと約4GBの2つのパーティションを作ります。
これらはUbuntuのメイン領域とスワップ領域となります。
今後はこれらを/dev/sda5、/dev/sda6と称します。
なお、/dev/sda5は利用方法を[ext4ジャーナリングファイルシステム]にして
マウントポイントを"/"とし、/dev/sda6は[スワップ領域]とします。
ブートローダをインストールするデバイスを[/dev/sda5]にして[インストール]をクリックします。
次ページの[キーボードレイアウト]では[日本語-日本語(Macintosh)]を選択します。
あとは完了を待つだけなのですが…

悪夢はやってきます。
Ubuntuのインストールが完了したあとリブートし、
OS選択画面を見ても新しい項目は増えていません。
しかも、ここで[Windows]を選択すると"Missing operating system"とか出てきます。
多分UbuntuがWindowsをこわしたのです。
しかしPCをマルチOSにするのには慣れているので、
HDDのMBRを直せばいいだろうと考え、
Windows7のインストールDVDから起動して[コンピュータを修復する]を適当に進めて
[システム回復オプション]ウィンドウから[コマンドプロンプト]を立ち上げます。
そこで
bootrec /fixmbr
を実行して再起動するもHDDのWindowsは立ち上がりません。
"bootrec /scanos"すると一応Windowsのパーティションは認識してくれますが、
"bootrec /rebuildbcd"や"bootrec /fixboot"してもダメです。
もうWindowsは再インストールするしかないようです。
まだ入れたてで実質的に被害がないのが不幸中の幸いです。
ちなみにOS Xは無事です。ちゃんと立ち上がります。

で、Linuxを立ち上げるために思いついたのが、
PCに当然のごとくFDDが付いていた古の時代からお世話になっている
MBM(マルチ ブート マネージャ)をインストールしてみることです。
現在はサイトからブータブルCDイメージが落とせますが、
それが公開される前に自力で作成したブータブルCDを手元に置いているので、
Macにそれを入れてCDブートを試みましたが、
"Missing operating system"と出てあえなく撃沈です。

しょうがないのでネットで調べたところ、
どうもMacのブートローダーにはLinux(というかローダーのgrub)をブートする能力がないようです。
後で分かったことですが、grubはUbuntuインストール時に指定した/dev/sda5に入っているわけではなく、
EFIが自身のために使う領域/dev/sda1に実行可能ファイルとして置かれているおり、
単にこれを読みにいくフローがないみたいです。
まあ何にせよ、rEFitというオープンソースのローダーを入れればUbuntuも立ち上がるとのことです。
要はこれがPCのMBMやsystem commanderに当たるものなんですね。

さっそくrEFitのサイトを覗いてみると、
もうあまり活動してないらしく、forkされたrEFIndを使うよう記述があります。
で、rEFIndの説明をいろいろ読んだところ、
どうもMacのHDDの第1パーティション(OS Xのディスクユーティリティで見える物ではなく)に
rEFIndをインストールして、OS XではなくrEFIndをブートするようにし、
そこからOS Xを含めた各種OSを起動する流れになるようです。
まあやるべき作業はインストーラを実行するだけなので深く理解する必要もありません。
ダウンロードページから
[A binary zip file]をクリックして"refind-bin-0.8.3.zip"をダウンロード、
ダブルクリックで展開(解凍)し、以下を実行するだけ
(root権限取得のため途中パスワード入力が必要)です。
$ cd ~/Downloads/refind-bin-0.8.3
$ ./install.sh
Macを再起動すると見慣れないrEFIndのOS選択メニューが現れ、
Ubuntuアイコン(Boot EFI\ubuntu\grubx64.efi from EFI)を選択することで、
既に入っていてブート出来なかったUbuntuが立ち上がるようになります。
ここで"from"の後に書いてあるのはOS Xでつけたパーティション名です。
まあ直接立ち上がるのはgrubなので、そこからまた[Ubuntu]を選択することにはなりますが。
なお、ここからAppleアイコン(Boot Mac OS X from OS X)を選択すれば、
いつものOS Xが立ち上がります。

私はいろいろと試行錯誤していたもので、
この時点でWindowsのパーティションには何も入っていませんでした。
そこで新たにWIndows7をDVDからインストールすると、
ブートメニューにWindowsアイコン(Boot Windows from WINDOWS)が現れ、
ここからWindowsが起動するようになりました。
rEFIndのブートメニューだけでなく、標準のEFIのブートメニューからでもWindowsは起動します。
このあとさらにUbuntuを再インストールしたりしたのでタイミングは定かではないのですが、
Ubuntuを起動するときにgrubの選択画面が表示されなくなりました。
まあUbuntu自体は起動するので特にどうということなないのですが、ちょっと気にかかります。
Ubuntuを再インストールした後ももちろんWindowsもUbuntuもきちんと起動します。

一連の作業で注意すべきなのはパーティション操作です。
私はOS Xのディスクユーティリティ、Windowsのインストーラー、
Ubuntuのインストーラーで色々いじっていたのですが、
Windowsのインストール時にHDDがGPTでないからインストールできないというエラーが出たり、
OS Xのディスクユーティリティで新たにパーティションを作ろうとしたときに準備で永遠待たされたり、
OS Xの復旧パーティションがなくなったりしてしまいました。
どうやらOS Xの入っているパーティションの次のパーティションを
OS X以外から作り直したときにおかしくなったようです。
これはOS Xの再インストールしかないかと思ったのですが、
だめもとでいろいろやっていると何とか復旧出来ました。
私が行ったのは以下のとおりです。
OS XのディスクユーティリティでOS Xの入ったパーティションを
HDDいっぱいまで巨大化させてから元の大きさにリサイズし、
未使用領域を"Mac OS 拡張(ジャーナリング)"なパーティションとして作成し、
それをWindowsに必要なサイズにリサイズします。
このパーティションは後のWindows用となります。
残った未使用領域をFATパーティションにしてこれをUbuntu用とします。
このUbuntu用パーティションは上記で書いたように
最終的にUbuntuインストーラーで操作することになります。
最後にWindows用パーティションを一旦削除し、
その未使用領域をFATパーティションとして新規作成すれば、
Windowsのインストールが可能となります。
私は最終的にrEFIndからOS X Yosemite、Windows7 Home Premium 64bit、
Ubuntu 14.04.1 64bitが問題なく起動するよう仕上げることが出来ました。
ただし、OS Xの復旧パーティションは
それらしいサイズの未使用領域はできたものの復活しませんでした。

ところでDVD(USBメモリ)からのブートもrEFIndからはできるのですが、
EFIがそれらを認識するのに時間がかかり、かつブートメニュー画面は自動更新されないため、
適当に時間が経ってから[Esc]キーを押して画面更新する必要があります。
もちろん今までどおり[option]キーを押しながら電源を入れてブートデバイスを選択する事もできます。
で、ここにそれまで表示されていたHDDアイコンの[OS X]が
[Boot EFI]に名前が変わっていることに気づきます。
rEFIndが乗っ取ったということなんでしょうね。

最後になりますがUbuntuからはWindowsのNTFSは読み書き可能で、
OS XのHFS+は読み込みのみ可能ですが、
WindowsやOS XからUbuntuのext4はアクセス不能ですので、
UbuntuからOS Xにファイルを渡したいケースでは外部USBメモリでも使うか、
HDDにもう一つFAT32のパーティションを作って、
Ubuntuはそこにファイルを置くようにすればいいでしょう。
私は復旧できなかったOS Xの復旧パーティション跡地をUbuntuでFAT32にフォーマットして
それを利用することにしました。
そこはOS XとUbuntuからは読み書き可能なものの、
Windowsからは認識すらされないという変わったパーティションになっています。
これはWindowsでは5つ目以降のプライマリパーティションが認識出来ないのに、
パーティションの作成順の関係でそれが"/dev/sda6"(Ubuntuでの名称)になったからで、
もし"/dev/sda4"にできるようなタイミングで領域確保していれば、
Windowsからも読み書きできるようになるでしょう。
私はもう疲れたので現状でよしとします。

2014年11月13日木曜日

Ubuntu 14.04 から他のマシンをパワーオン

しばらく前からのPCにはネットワーク越しに起動命令を受けとることで
リモートでスイッチオンできるWOL(Wake on LAN)機能がついており、
OSが立ち上がってしまえばVNCなりSSHなりでリモートログインできます。
大昔にsunのラックマウントサーバで体験したような便利さが
身近でもできるようになりました。
ただしWOLは普通デフォルトで無効になっているので
BIOSで有効にする必要はあります。

Ubuntu 14.04から他のマシンを起動するには
# apt-get install wakeonlan
であらかじめツールをインストールしておき、
$ wakeonlan <起動対象マシンのMACアドレス(例 "00:01:02:a3:b4:c6")>
の実行するだけです。
MACアドレスをいちいち覚えるのは面倒なので、
#!/bin/bash
wakeonlan <起動対象マシンのMACアドレス>
のようなシェルスクリプトを書いて
$ chmod 755 <シェルスクリプト>
し、それを実行するようにするのがいいでしょう。

ちなみにWOLのマジックパケットを送るツールは
C言語でもPHPでも何でも簡単に作れます。
そういえば昔PHPで作って第3のマシンのウェブブラウザから
PCを起動させてたとこがありましたね。

2014年11月12日水曜日

AndroidのGmailアプリが新しくなった

Androidの純正Gmailアプリケーションがバージョンアップし、
outlook.com等のメールアカウントも扱えるようになりました。
といってもIMAP/POP/SMTPへの対応が追加されただけですが。
それでもこれで標準のメールアプリケーションの立場はなくなったと思われます。
ただこちらは使ったことがないので断言は出来ません。

ということで折角なのでアカウントを追加してみることにしました。
outlook.comのメールアカウントは持っていませんが、
古に取得したhotmail.comのアカウントについては
メールアドレスとパスワードの設定だけで利用可能となりました。
簡単です。

では、もう新規には受け付けていないoutlook.comでホスティングしている
独自ドメインのメールアドレスはどうかというと、残念ながら一手間かかります。
ということでここにやり方を書き残しておきます。

Gmailアプリケーションを立ち上げ、タブレットなら右にスワイプ、
スマートフォンなら画面左上のメニューボタン([三])をタップし、
カレントアカウントをタップして[アカウントを追加]をタップします。
次いで[個人(IMAPまたはPOP)]を選択してメールアドレスを入力し、
[個人(IMAP)]を選択してパスワードを入力します。
さらに[受信サーバの設定]アクティビティで[サーバー]を"IMAP-mail.outlook.com"、
[セキュリティの種類]を"SSL/TSL"、[ポート]を"993"に設定します。
続いて[送信サーバの設定]アクティビティで[SMTPサーバー]を" SMTP-mail.outlook.com"、
[セキュリティの種類]を"STARTTSL"、[ポート]を"587"に設定します。
あとは適当に設定すればメールの送受信ができるようになります。
受信はメール一覧が表示されるので確かめられますが、
送信テストは一度はしておくべきでしょう。

2014年11月11日火曜日

isaiにSMS対応SIMを

auの純正SIMカードを挿していると充電なしで2日使えるisaiは、
SIMロック解除してMVNOなdocomoのSIMカードを挿すと
1日しかバッテリーがもちません。
いわゆるセルスタンバイ問題との切り分けを図るため、
それを防げるSMS対応SIMに交換してみました。
利用したのは楽天ブロードバンドの[エントリープラスSMSプラン]です。

で、実験結果です。
無線LANやBluetoothをオフにし、LCDを消えたままにして普段どおり持ち歩いてみると…
やっぱり1日強しかもちません。
isaiのバッテリー持ちの悪さはSMS対応SIMカードであろうが
変わらないということが証明されました。
docomoなSIMカードな限りどうしようもなさそうです。
あとはauなMVNOであるmineoを試してみたいところですが、
最低利用期間が長すぎて…
今後も運用でカバーすることにします。

2014年11月10日月曜日

MacでWindows7

先日MacBook Pro新しいHDD換装して
OS X Yosemite(ver 10.10)をインストールしましたが、
デュアルブートでWindows7(Home Premium 64bit)が使えるようにしてみました。

通常なら[Finder]の[アプリケーション]-[ユーティリティ]から
[Boot Camp アシスタント]を起動して作業を進めればいいのですが、
自力でWindows用のパーティションを用意し、
手動でWindows用ドライバを入手するなら使う必要はありません。
実はYosemiteを新しい2TBのHDDに入れる際に、
あらかじめHDDのパーティションを分けており、
そういうことで手動で作業しました。

まず最初にドライバの用意です。
OS Xを立ち上げてBoot Camp サポートから
[ダウンロード]ページに飛びBoot Campをダウンロードします。
"Boot Camp Support Software 5.1.5640"が最新バージョンのようなので
これを落とそうとしたのですが、よくよく説明文を読むと
私の持っているMacBook Pro (13-inch, Mid 2012)では
バージョン"5.1.5621" を使うようにかかれているので、こちらをダウンロードします。
ダウンロードした圧縮ファイル“BootCamp5.1.5621.zip”をFinderからダブルクリックして展開します。
そして展開した中身すべてを通常のUSBメモリにコピーします。
容量は2GBあれば十分足ります。

HDDはあらかじめ800GB、800GB、400GBの3つのパーティションに分け、
Yosemiteは既に1番目に入れています。
2番目がWindows7用でNTFSにするためにほったらかしにしており、
3番目はOS XとWindowsのデータ交換用としてFATでフォーマットしていました。
しかし、色々やっているうちにこれではまずいことが分かりました。
HDDをいくつのパーティションに分けてもOS Xから認識できるのですが、
Windows7からはプライマリパーティションが4つまでしか認識できないのです。
しかもOS Xをインストールしている1つ目のパーティションは
なんと3つのプライマリパーティションからなっています。
通常起動用とか修復用とかに分割されています。
となるとWindows7(OSローダー)が認識できるプライマリパーティションはあと1つということになり、
この最後の1つをWIndows7の起動ディスクにするのはもちろんのこと、
計画していたデータ交換用パーティションはWindows7からアクセスできないことになります。
そんなわけで、OS XでHDDの2番目の800GBのパーティションをFATにしておきました。
3番目の400GBのパーティションは2番目とくっつけてWindows7で1.2TBで使うこともできますが、
今回はそのまま置いておくことにしました。
この状態ではOS Xからは2、3番目のパーティションはFATドライブとして利用可能です。

いよいよWindows7のインストールです。
Windows7のインストールDVDを光学ドライブに入れ、
[option]キーを押しながら電源を入れて、
[Windows]と名前の付いたDVDのアイコンを選んで起動します。
[EFI Boot]を選んでも起動できませんのでご注意を。
このあとは基本的に普通のPCにインストールするのと同じです。

Windwosのインストーラーが立ち上がるので[今すぐインストール]をクリックし、
[インストールの種類]は[新規インストール(カスタム)]を選択します。
注意が必要なのは[Windowsのインストール場所を選択してください]です。
私のケースではディスク0のパーティション1~3が
200MB、745.1GB、619MBに分けられているのですが、
これらはOS Xからは1つのパーティションにしか見えません。
どうも1つ目がEFIが利用する領域で、3番目はOS Xの復旧用のようです。
FATでフォーマットされたパーティション4がWindowsのインストール先になりますが、
Windows7はFATドライブにはインストールできません。
ということで、パーティション4を選択した状態で
[ドライブオプション(詳細)]をクリックして現れる[フォーマット]を実行します。
これでNTFSとなりWindowsがインストールできるようになります。
インストールを続けていくうちにリブートが発生しますが、
何もしないとOS Xが立ち上がってしまうので、
[option]キーを押しながら電源を入れて、
[Windows]と名前の付いたHDDのアイコンを選んで起動します。
これでインストールの続きが始まります。

インストール完了後に先に作成したドライバUSBを挿し、
"Boot Camp/setup.exe"を実行すれば関連するドライバがインストールされます。
各種設定は通常どおり[コントロールパネル]から可能ですが、
MacBookならではな項目についてはタスクトレイにある[Boot Camp]から
コンテキストメニューの[Boot Campコントロールパネル]から変更できます。

ちなみにOS Xから見えたHDDの第5パーティションはWindows7からは見えません。
ただし、OS XからはWindowsのNTFSドライブはリードオンリーで見れますし、
Windows7(+BootCamp)からはOS XのHFS+ドライブがリードオンリーで見れます。
ということでOS間のデータ交換は不自由ではありますが何も追加しなくても可能です。

2014年11月6日木曜日

Ubuntu 14.04でNICをブリッジ

歴史的経緯があって同じサブネットが物理的に2つのネットワークに分かれて、
それら2つが互いに中継もされず運用されているにも関わらず、
1つのPCから両方にアクセスしたいというような
わけの分からない要求があるとします。
PCにある2つのNICをそれぞれのネットワークにつなげても、
サブネットが同じなのでIPアドレスの系がかぶり、まともにルーティングできないのですが、
いろいろ制約があるもののUbuntu 14.04でブリッジを使い
実現できたので書き残しておきます。

最初に以下を実行してブリッジが使えるようにします。
# apt-get install bridge-utils
次いで設定ファイル"/etc/networks/interfaces"に以下の内容を追加します。
iface eth0 inet manual
iface eth1 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1
ここでは2つのNICであるeth0とeth1をまとめてブリッジbr0としています。
なお、双方のサブネットにDHCPサーバが存在すると、
どちらからIPアドレスをもらってくるか不定になってしまうため、
そういう場合は手動でIPアドレスを設定するのがよいでしょう。
iface br0 inet dhcp
の行を以下のように置き換えます。
IPアドレス等は環境に合わせ適宜読み替えてください。
iface br0 inet static
address 192.168.1.100
netmask 255.255.255.0
bridge_ports eth0 eth1
gateway 192.168.1.1
broadcast 192.168.1.255
network 192.168.1.0
さらにDSNサーバの設定のため"/etc/resolv.conf"も書き換えたいところですが、
Ubuntu14.04では起動時に自動生成されてされてしまうので、
"/etc/resolvconf/resolv.conf.d/base"に
nameserver <DSNサーバのIPアドレス>
の行を追加して、
# resolvconf -u
を実行するのが正しい解決法です。

さて、この状態だとこのUbuntu PCがeth0とeth1を中継して
理論的に1つの大きなネットワークになってしまいます。
それが嫌な場合は以下を実行します。
# ebtables -P FROWARD DROP
PC起動時からそうしたい場合は
設定スクリプトファイル"/etc/network/if-pre-up.d/bridge"の
if [ "$MODE" = "start" ] ; then
の行の直後に
ebtables -P FROWARD DROP
の行を追加しておけば実現できます。

もし両方に同じIPアドレスの機器が存在すると面倒なことになりますし、
他にも何か問題が発生するかもしれませんので、
TCP/IPについてよく理解してから試すことをお勧めします。

2014年11月5日水曜日

Lollipopが来る前に

LollipopことAndroid 5.0がいよいよ私のNexus7(2013/WiFi)にも届きそうです。
多分問題ないとは思いますが、
もしLollipopが気に入らなかった場合に備えて
バージョンダウンができることを確認してみました。

実は歴代のNexusのリリースされたファームウェアはすべて
Factory Images for Nexus Devicesからダウンロード可能で、
きちんと手順を踏むことで古いバージョンに書き戻すことが出来ます。
ただしユーザデータはすべて消えて初期化されてしまいますが。

私の手元にあるNexus7(2013/WiFi)用のファームウェアは
[Factory Images "razor" for Nexus 7 [2013] (Wi-Fi)]の項目に当たります。
最新のKItKatは[4.4.4 (KTU84P)]ではありますが、
今回は最古の[4.3 (JSS15Q)]に書き戻してみます。
"razor-jss15q-factory-4f77b811.tgz"をダウンロードして以下を実行します。
$ tar zxf razor-jss15q-factory-4f77b811.tgz
$ cd razor-jss15q
ここからはAndroid SDKに含まれるツールが必要になりますが、
それは既にインストールされていてその"platform-tools"ディレクトリに
パスが通してあることを前提とします。
環境をまだ整えていない方は私の過去の投稿等を参考に構築してください。
またNexus7でUSBデバッグが利用可能になっている必要があります。
こちらも私の投稿1投稿2あたりを参考にしてください。
で、以下を実行します。
$ adb reboot bootloader
$ fastboot oem unlock
これでNexus7に変わった画面が表示されているはずなので
[音量アップ]キーを1回押して[Yes]を選択し、[電源]キーを短く押して実行します。
その後
$ ./flash-all.sh
を実行してファームウェアを書き換えます。
結構時間がかかるので、タブレットは満充電した上でACアダプタを付けっぱなしにし、
書き込み中はタブレットにもPCにも触らない方が無難です。
書き込んだAndroidが立ち上がってきたら各種設定を行い、
USBデバッグを有効にしてから
$ adb reboot bootloader
$ fastboot oem lock
を実行すれば完了です。

戻せる保証があればこそ、安易にアップデートできるというものです。
なお古いファームウェアで使っていると、新しいのがありますと常に通知されるので、
それをキープしたいのなら間違ってアップデートしないように注意しておく必要があります。
簡単に元に戻せるとしても工場出荷状態には戻ってしまうわけですし。

2014年11月4日火曜日

Nexus7(2013)をもう一台買った

KitKatの懸賞でNexus7(2013)を2台当て、1台は家人に上げ、
1台を自分で使っている私でありますが、思うところあってもう1台購入しました。
アホかとか言われそうですが、そこには海より深い理由があるのです。

ここ最近、iPadやiPhone、Nexusの新製品が立て続けに登場しているのですが、
私の望む方向に進んでおらず、どうも今後もこの傾向が続きそうな気配がしています。
世の中ではiPhone6Plusが売れているらしく、
どうやら大方のユーザーは画面が大きい方が好みのようです。
そして画面サイズがiPhone6Plusより少しい大きい程度で
製品としてはかぶる部分も多い新しいiPad mini 3は、
前モデルのiPad mini 2と根本的には変わらず開発費をケチっています。
Appleとしては、近い将来iPad mini系列はフェイドアウトし、
iPhone Plus系に全面移行する計画なのが透けて見えます。
Appleにとってそれが都合がいいのは、
iPadよりiPhoneの方が総じて高価であるということです。

NexusについてもスマートフォンたるNexus5はモデルチェンジでNexus6へと大型化が図られ、
タブレットもNexus7からNexus9へと大型化します。
ついでに価格も高くなります。
私がAndroidにもっとも期待していることは安いことであり、
高価なAndroidを買うぐらいならiPhone/iPadにしておきます。

まとめると、今後のスマートフォン/タブレットは大きく高くなり、
小さくて安い製品が欲しい私が魅力的に思えるのがAndroid Oneぐらいしかないことです。
Android Oneにしたって性格からすれば日本で売ってくれるとは思えませんし。
ということで今のうちに小さくて安いタブレットNexus7を追加入手したわけです。
一応1台目が壊れたときの予備機として考えてはいますが、
よく居る2ヶ所に置いておけば持ち運びを最小限に減らせますし、
タブレットのカーナビソフトも十分使える品質になってきたので
自動車に常設していてもいいですし、2台あればあったで便利です。
そしてNexusなら新バージョンのAndroidだって長く供給してくれるはずです。

新しいモデルが出れば次々乗り換えるようなお金持ちのユーザにはおすすめしませんが、
まだタブレットを持っておらず、それなりの物を長く使う賢い節約上手(ケチで貧乏くさい?)な方には
まだ在庫がある今のうちにNexus7を手に入れておくことをおすすめしておきます。

2014年11月3日月曜日

gitのバイナリ差分

先日あるところからバイナリファイルの差分をもらいました。
差分ファイルの中身を見ると以下のような感じのデータが含まれています。
diff --git a/test1/test2/test.bin b/test1/test2/test.bin
new file mode 100644
index 0000000000000000000000000000000000000000..<ハッシュ値>
GIT binary patch
literal <数値>
<複数行のバイナリファイルのデータ>

literal 0
HcmV?d00001

バージョン管理にgitを使っていないのでどうしたものかと調べいき、
$ git apply < <差分ファイル>
をローカルで実行すればいいことに行き着きました。
今回はたまたま新規ファイルだったので、一行目を
diff --git a/test.bin b/test.bin
に変更して空のディレクトリで先のコマンドを実行すると
そのディレクトリに"test.bin"が現れました。
なお、差分ファイルは"HcmV?d00001"の次にある空行も意味があるみたいです。
ないと
error: corrupt binary patch at line <行数>: HcmV?d00001
とかいって怒られます。

ついでですが、パッチを作るには
$ git diff --binary p<元のファイル> <変更したファイル> > <差分ファイル>
とすればバージョン管理関係なく汎用ツールとして使えます。
"--binary"を外せば普通のdiffっぽく動きます。