VirtualBox上のWindows10をRetinaな解像度に変更する

RetinaなMacbookにVirtualBoxをインストールし、その上でWindows10を走らせていますが、Windows10側の解像度をRetina対応に変更するのに手間取ったので、その記録です。

デフォルトだとWindows10は低解像度のまま、スケールを上げて拡大表示することになりますが、当然のことながらこれでは文字がぼやけてしまうなど、表示が美しくありません。出来ればWindows10側もRetina表示の状態にしたいと思って調べました。

結論としては、VMをシャットダウンした上で、以下2つの作業を行う必要があります。(VirtualBox Ver. 5.2.12で検証しました)

①VMの設定で3Dアクセラレーションをオフにする。(バグ回避)

②以下の2つのコマンドを実行し、Windows10側に解像度の設定を追加する。

$ VBoxManage setextradata global GUI/MaxGuestResolution any
$ VBoxManage setextradata "Windows10" CustomVideoMode1 "2880x1800x32"

以上により、VMを起動すれば最初から高解像度で表示されるようになります。

いま最強?のプレゼン用リモコン

とある研究会で、僭越ながら研究やプレゼンに便利なツール類を紹介する役を仰せつかりました。プレゼンでは中身の充実が大事なのはもちろんですが、立ち振る舞いをスマートにするのもなかなか大切だと思います。

やや旧聞に属しますが、個人的にいま最強のプレゼン用リモコンはこの Logicool Spotlight だと思います。

理由は、

  • たった1分充電するだけで3時間使える。
  • 充電端子は旅先でも入手容易な USB Type-C。
  • Bluetoothでも付属のUSBドングルでもすぐ繋がる。
  • WindowsでもMacでもPowerpointでもKeynoteでも使える。
  • スポットライト機能で強調表示が出来る。
  • 残り時間にあわせてリモコンが振動してお知らせしてくれる。

このうち、スポットライト機能というのは、こんな感じです↓ レーザーポインタより見やすく、使いやすいです。特に大きな会場ではレーザーポインタは事実上役立たずですが、こちらなら大丈夫。

この製品は動作が大変安定していて、かつ細かいところまで実によく気が利いていて、安心してプレゼンに臨めます。お勧めです。

ちなみに以前使っていた以下商品は、電池がすぐ切れる、ボタン電池なので旅先での入手に不安がある(海外だと絶望的)、旅先で大事な操作用ボタンが取れた(涙)、気づいたらUSB端子が錆びてた、などちょっと残念な感じでした。

Logicool Spotlight は少々値段は張りますが、それに見合うしっかりした製品だと思います。

古いCanon CAPTプリンタをWindows/Mac/Linuxで使う

こんなことやってる暇ないんですが、必要に迫られて、かつかなり面倒だったので記録を兼ねてブログに残しておきます。ネット上にも英語、日本語を問わずほとんど情報が上がってないです。

Canon CAPTプリンタは以前にキャノンが販売していた、専用のドライバが必要なぶん、安価なレーザープリンタで、自分の身近にはLBP-1210とLBP-1120の2台があります。プリンタ自体はまだまだ元気に動くのですが、いかんせん、ドライバのアップデートがない。64bitのWindowsでは動かないし、最近のMacOS向けのドライバもない。特にWindowsの場合、仮想マシンにWindowsXPを入れて動くようにしたところで、結局、クライアントマシンにドライバが無いと使えない。まー、にっちもさっちもいかないわけです。

この手の古いプリンタの場合、WindowsXP環境に仮想Postscriptプリンタをインストール&共有して、他のマシンからはPostscriptで印刷しようというのが定番です。これはWindowsのGeneric Postscript Printer経由で普通に印刷したデータを、RedMonという仮想プリンタポートを使ってghostscriptにリダイレクトし、改めて古いプリンタに送るという処理になります。「Windows RedMon ghostscript」あたりで検索すれば、色々と出てきます。

ただこれだと、どうもpostscriptの処理が怪しくて、たぶん、フォントがビットマップで処理されてたりするのかな、印字品質が低いのです。しかもWindowsXPのライセンスを用意して、実機か、仮想マシンを用意しないといけない。いまどきWindowsXPを用意するとか、たいへん面倒くさいですね。

全てを無料で簡単に済ませるのにいちばんいいのは、仮想マシンにLinux環境を作り、それで印刷することです。幸い、CAPTはLinux用のドライバがあります。Mac + VirtualBox + Ubuntu 12.04LTS + CAPT Linux Driver の組み合わせで、あっさり、Macから印刷出来るようになりました。以下サイトからCUPSドライバを入手し、普通にインストールすればOKです。インストール後は、CUPS管理ページからプリンタの共有を有効にするだけです。あとはMacからプリンタを追加しようとすれば、Bonjourで自動的に発見できます。

Canon CAPT Linux Printer Driver

ところが同じことをWindowsベースでやろうとすると、Windows10 + VirtualBox + Ubuntu 12.04LTS + CAPT Linux Driver はぜんぜん上手くいかない。インストールは普通に出来るものの、印刷が不安定で、出てきたり、来なかったりします。確証はないですが、どうもVirtualBoxのUSB周りのバグが怪しいと、睨んでいます。Windows10 + VMWare Workstation Playerに変えたら上手くいきました。。

さらに困るのが、上記の方法で作ったLinux仮想マシンは、理屈の上ではどんなPostscriptファイルでも処理出来るはずなのに、Windows Generic Postscript Printer (例えば MS Publisher Imagesetter)から印刷しようとすると、上手くいかない。これがくせ者で、色々調べて見たら、Canonのpstocaptという、PostscriptをCAPTに変換するコマンドにバグがあって、Microsoft Generic Postscript Printerが作るpsが読めないという。。。こいつが”[CAPTFILTER] Input File Error”というエラーを吐き出して止まります。

ロシアのプログラマの方がこのバグを直したCAPTドライバを配布しているのですが、ソースコードでの配布なので、自分の能力では、コンパイル環境を整えることが出来なかった。。

GitHub – Magister/cndrvcups-capt: Canon CAPT driver

で、ようやくこの投稿のポイントなのですが。要するにWindowsからLinux上のCAPTプリンタへの印刷を考えるとき、Windows Generic Postscript Printerの書き出すpsファイルが、お行儀の良いファイルになればいいわけです。だったら、そのお行儀の悪いpsファイルを、ghostscriptで再処理すればいい。これで上手くいきました。

  1. Linux環境での設定は全て済ませ、CUPSで普通に印刷出来るようにしておく。これを仮にプリンタAとする。
  2. Linux環境にsambaをインストールし、プリンタAがWindowsから見えるようにしておく。

  3. Windows環境にRedMonをインストールし、印刷ポートのリダイレクトを使えるようにしておく。なおインストール時には管理者権限が必要で、プリンタのプロパティでRedMon関係の設定をするときも管理者権限のコマンドプロンプトから rundll32 printui.dll,PrintUIEntry /p /n\machine\printer でプロパティを開く必要があります。

  4. 同じくWindows環境にghostscriptをインストールしておく。

  5. WindowsからLinuxのCAPTプリンタに接続する。ドライバはMS Publisher Imagesetterを選択。このプリンタはWindowsマシンからLinuxマシンにデータを送るためのもの。これを仮にプリンタBとする。

  6. Windowsにもうひとつ、MS Publisher Imagesetterのプリンタをインストールし、印刷先ポートをRedMonにする。こちらは、印刷を実行するためのもの。これを仮にプリンタCとする。

  7. プリンタCのポートの設定でRedirect this port to the program欄には、gswin64c.exeを設定する。また、Arguments for this program are欄に「-q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=ps2write -sOutputFile=“%printer%\仮想マシン名\プリンタB” -」 とする。最後のスペースとダッシュを忘れないこと。ダッシュの後にはスペースも改行も残さないこと。Outputについては、今回ghostscriptに直接スプールにデータを書き出させているので、Program handles outputでOK。

以上の設定により、以下の流れで印刷が可能になる。

WindowsプログラムからプリンタCに印刷指示
→ プリンタCにてMS Publisher Imagesetterが出力したpsデータをRedMonが受信
→ RedMonがghostscriptでps形式をクリーンに変換してプリンタBに送る
→ プリンタBがLinux側のプリンタAにsamba経由でデータを転送
→ Linux側のプリンタAでCUPSで印刷される

6、7に相当する画面をキャプチャして貼っておきます。

わかってしまえば、それほどたいしたことはやってなく、Linux環境のセットアップから含めても全部で1時間もあれば出来るのだけど、不具合の原因を辿って解明するのが大変だった。どこかの誰かの役に立つかもしれないので、ここに書き残しておきます。

GPSロガーGT-740FLをMac/Linuxでも使えるGPSBabel

旅の記録にときどきGPSロガーを使っています。自分ひとりで歩き回っているぶんには自分で地図が頭に入るのでいいのですが、他の方に案内して頂くとそれはそれで楽しいのですが地図がさっぱり頭に入りません。そんなとき、GPSロガーはとても便利です。GPS機能がないカメラで撮った写真にジオタグを付けるのにも役立ちます。

短時間であればスマホアプリでも良いのですが、スマホでGPSを使い続けるとバッテリー消費が激しいので、丸一日ログを取るなら専用機の方が気が楽です。

GPSロガーはいくつも安価なものが発売されていますが、GT-730FL-SやGT-740FLなどが安くて使い勝手も良く、オススメです。4,000円前後で手に入ると思います。競合としてよく話題になるi-gotUシリーズはUSBケーブルが独自規格のため、旅先で無くしたり壊れたりしたらオシマイです。個人的に旅に持って行く道具に独自規格はありえません。HOLUX m-241は以前に使っていましたが、電池で使えるのは一見便利なようで、交換や充電が面倒くさいです。GT-740FLならば大容量モバイルバッテリーから充電しながら使えば超長時間記録が可能になります。

さてこのGT-430FLですが、付属ソフトウェアがWindowsにしか対応していません。どうにかMacで直接使う方法はないかと調べてみたところ、Mac用のドライバを入れた上で、GPSBabelというフリーソフトを用いればトラックデータのダウンロードが可能だと分かりました。

本製品はUSB-Serial接続で、採用されているチップはPL2303というものです。このチップのドライバは以下サイトから入手出来ます。これでMacからシリアルポートとして見えるようになります。

PL2303ドライバ

GPSBabelはフリーのGPSログデータダウンロード&変換ソフトウェアです。

GPSBabel: convert, upload, download data from GPS and Map programs

DeviceをSkyTraq Venus based loggers (download)、Device NameをUSB-Comポートとして、シリアルポートの速度だけ設定してやれば、オッケーです。出力はGPXにしておけばたいていのアプリが対応しています。

同様のやり方でLinuxでも使えるようになりそうです。

庭にみかんを置いてみた

ふと思い立って、庭にみかんを置いてみました。するとものの30分くらいでメジロが登場、なかなかの癒しキャラです。ヒヨドリも、メジロも、土鳩も、みんなつがいでやって来ます。場所は東京都練馬区でわりと普通に市街地ですが、みかんひとつ置くだけで庭が鳥だらけになるなんて全然知らなかった。