2019年6月4日火曜日

X-Plane11をGTX970からRTX2070へ換装したら速くなるのか

X-Plane11を非力なグラフィックボードであるGTX970で、しかもVRで飛んでいたのですが、最近、X-Planeがアップデートされたからか、飛行中にやたらなにか(たぶんシーナリー)をロードしているようで、VR画面を維持できなくなっていました。
そろそろ、次世代のVRHMDも考えたくなってきていますので、その前にグラフィックボードを強化しておくことにしました。あまり高いものは買えませんが、コストパフォーマンスのいいRTX2070をチョイスしました。

これで、フレームレートがヌルヌルになるか、少なくとも改善するだろうと思って、さっとくBoeing737-800のコックピットに乗り込んだところ、うーん、あんまり変わりない気が・・・変わらないことはないんですが、ヌルヌルとはいきません。
タスクマネージャーで確認したところ、GPUの負荷は余裕があるのですが、今度はCPUがボトルネックになっているようです。実はCPUはi7-2600という古いもので粘っていまして、典型的なSandy bridgeおじさんです。
X-Planeはシングルコアの性能による部分が大きいらしく、そういう点で、i7-2600は不利なのですが、しかし、特定のコアに偏っているわけではなく、全般的に負荷が高いです。シングルコア性能にせよ、マルチコア性能にせよ、いずれにせよ限界ということです。
ただ、それにしても、フレームレートがあまり上がらないのは、X-Planeの作りによるものではないかという疑いも感じ始めてきました。まるで上限フレームレートがあるかのようにも思えます。CPUの負荷が高いというのは何をやっているんでしょうか。シミュレーション計算をがんばっているのかもしれませんが、VRのことも考えると、シミュレーションは少しごまかしてでもフレームレートを上げてくれた方がいいような気もします。
新しいグラフィックAPIであるVulkanへの対応という話もあるようですが、CPU側が足を引っ張っていては意味がないかもしれません。

2019年5月29日水曜日

ウーバーイーツ(Uber Eats)配達のピンずれ対策、配達先探し

UberEatsの配達員が一番困るのが配達先が分からないことです。
UberEatsの配達員は配達員専用のアプリを使います。そこには地図が表示されていて、配達するときは地図上の配達先にピン(マーカー)が立ちます。配達員は、ただその場所を目指して移動すればいいので簡単に思われるかもしれませんが、ことはそう簡単にはいきません。
まず、最初に、ピンが立たないことがとても多いです。半分くらいの確率でピンが表示されません。これは単に配達員用アプリのバグではないかと思われます。Uber製のアプリは、配達員用のアプリに限らず、レストラン用アプリや注文用アプリにもバグが発生するのは珍しくありません。しかし、地図上に場所が示されないとなると地図上での位置特定は困難になります。そもそも、仮にピンがちゃんと表示されたとしても、その位置が正しいとは限りません。これもまたそれなりの確率でピンがずれています。その原因は注文者の住所入力の問題であったり、配達先を現在地として入力されたことで、GPSによる誤差でずれたところにピンが立つ場合があります。同じ番地の場所が複数あったり、情報が古かったり、原因はいろいろありえます。
地図上にピンが表示されないのなら、配達員はどのようにして配達先を特定するかというと、お客様が入力した住所という文字情報を頼りに探すことになります。と、いうより、はじめからピンをあてにせず、住所から場所を特定する方が手っ取り早いです。入力された住所やマンション等の建物名をGoogleマップ等のアプリに入力して、配達先を探します。それで特定できればいいのですが、それも不可能な場合は、Yahooマップやゼンリンの地図、ウェブで検索する等して、どうにかして探そうとします。お客様が入力した住所情報でさえ、配達員用のアプリにきちんと表示されないというバグがある可能性もあります。
最後まで分からない場合は、仕方ないので配達先に電話するかメッセージを送信して、場所を詳しく聞くことになります。

UberEatsで注文されたことがある方は、注文用アプリに配達員の位置がリアルタイムに表示されることをご存知だと思いますが、レストランでピックした直後の配達員は、レストラン付近でしばらく留まっていて、すぐには動き始めません。
なぜかというと、配達員は、レストランで商品を受け取って配達を開始したその瞬間まで配達先がどこなのか分からないからです(それは、おそらく配達員が配達先を選り好みして、配達業務をキャンセルできないようにするためだと思います。商品を受け取り、配達を開始した以上、よほどのことがなければキャンセルはできません。)。商品を受け取った配達員はレストランの前で、はじめて配達先を知り、配達場所の特定とルートを検討します。それには、よほど分かりきったところでない限りは、数十秒を要します。そこで配達先が特定できないと、調べるのにさらに時間がかかります。最悪の場合、住所が郵便マーク「〒」だけの時があり、お客様に電話で一から聞き出すことになります。

注文したお客様は、そのような配達員の事情を知る由もありませんから、なぜ場所が分からないのか、マンション名や部屋番号まで住所をきちんと入力したのに、なぜ、それが分からないのか、配達員は頭が悪いのかという疑問を持つことになります。

UberEatsの配達は、単にレストランで商品を受け取って、それをお客様のもとに届けるだけの簡単な仕事ですが、実際は、そう簡単にいかないこともあって、考えようによっては、そこがゲームのようであり、多少の困難があった方がかえって面白いのかもしれません。

配達開始時に、GoogleマップやYahooマップ等のアプリに住所を入力して検索するには、スマホの小さな画面で検索テキストボックスにちまちま入力しなければなりません。ウバーコンパニオンを使うと、そのような作業を効率よく行うことができます。レストランからピックしてからのスタートダッシュも短縮できますし、入力するストレスも軽減できます。

2019年4月13日土曜日

Uber Eatsの配達効率を上げる配達員向け必須Androidアプリ

Uber Eatsの配達効率を加速するAndroidアプリ、ウバーコンパニオンをご紹介します。

Uber Eatsの配達をしたことがある方ならご存知だと思いますが、最大の問題が配達先の特定と、そこへのルートを決めることです。注文者が入力した住所をもとにGoogleマップで検索をするのがもっとも効果的な解決策なのですが、それには住所を入力する手間がかかります。そうしてもたもたしている間にも、時計の針は進み、それだけお客様を待たせることになります。
ウバーコンパニオンは、その住所入力作業を強力にサポートします。Uber Driverアプリに表示された住所を、Googleマップに入力し、即座に検索することが可能です。マンション名に部屋番号が付加されていて検索に引っかからないような場合があっても、住所を手直しして検索することもできるという、実態に即した機能をも備えています。これだけでも相当な手間と時間の削減になります。

現金払いの場合は、おつりを計算する専用の計算機が表示されます。まず、何もしなくても標準的なおつりの金額は即座に計算されて表示されます。例えば、2140円の支払いの場合、10000円札を受け取った場合、5000円札の場合、3000円だった場合等、すべての組み合わせのおつりが一覧表示されます。仮に10140円というような変則的な金額を受け取った場合でも、画面に表示されたテンキーパッドに入力して、すぐに計算できます。おつりの間違いがあれば、お客様に迷惑がかかったり、配達員が損をしてしまうことがありますので、頭の中で計算するだけでなく、念のため画面に表示された数字を確認できるだけでも、間違いを防ぐことにつながります。

レストランやお客様が配達員向けにメモや注意事項を記載していることがあります。例えばマクドナルドで商品を受け取った後、配達を開始した際に、お客様からケチャップをもらっておいて欲しいといったような要望を見かけることがあります。その時、配達員はすでに配達を開始して、配達場所の確認作業に頭が移っていますから、そうしたメモはうっかり見落としてしまうことがあります。ウバーコンパニオンは、レストランやお客様からの連絡事項があると、そのことを音声で知らせてくれます。もう見落とすことはなくなります。

その他にも機能はありますが、使ってみるのが理解するのに一番早いと思います。

UberEats Driver's コンパニオンの使い方は非常に簡単で、起動してサービスを有効にしておくだけです。Uber Driverアプリの上に半透明のウィンドウとして表示されます。そして必要に応じて、その時に有用な情報と機能が自動的に表示されます。
何度か配達して試すと要領がつかめてきます。


初回起動時にオーバーレイ表示等のいくつかの許可設定が必要になりますが、一度設定すれば二回目からは表示されなくなります。

2018年8月6日月曜日

IEのアドレスバーで検索するとcse.google.comにリダイレクトされる

Internet Explorerのアドレス欄にキーワードを入れて検索すると、デフォルトとして設定しておいた検索サイトで検索した結果が表示されるはずが、あるときから突然「cse.google.com」から始まるアドレスのGoogleカスタム検索に変わってしまいました。Internet Explorerの設定をどのように触ってももとに戻ることはなく、Internet ExplorerだけでなくGoogle chromeでも同じようになってしまいます。
調べてみるとどうやらマルウェアに感染したようです。ウェブブラウザをジャックするタイプのマルウェアが存在するようです。
修復方法を紹介する海外のウェブサイトでは、ウェブブラウザの設定の他、レジストリ、hostsファイル、プロキシーサーバー、DNSの設定が書き換えられた可能性を指摘していましたが、それらの状態を見てみたところ、異常は見つかりませんでした。やはり、そう簡単には元に戻せないように仕組まれているようです。
このマルウェアは、おそらくインターネットからダウンロードしたなんらかのソフトに付属していたものでしょうが、記憶が定かではありません。

結局、Malwarebytesというマルウェアに強い対策ソフトを使い、元に戻すことができました。私は、その14日間の体験版を使いましたが、無料の機能限定版でも駆除することができるようです。

Malwarebytesによるスキャンの過程で、いくつかレジストリやファイルが削除されました。今回のマルウェア以外にもなにかおかしなものが含まれていたのかもしれません。
そのログの中で、一番怪しかったのが「C:\Program Files (x86)\Smart Application Controller」というものです。これが、ウェブブラウザをジャックした犯人かもしれません。

私のパソコンにはトレンドマイクロのウィルスバスターを入れてはいるのですが、それではこのマルウェアを検出できなかったようです。ウィルスバスターは人気がありますが、残念ながら性能はいまいちです。まだ一年以上ライセンスが残っていますので、もうしばらくは使いますが、次は他のものに乗り換えようかと思っています。

2018年7月31日火曜日

X-Planeで飛行時間を短縮するためのマクロを作成しました

以前にも取り上げていますが、X-Planeでは長距離飛行の巡航時間の短縮がやりにくいです。対地速度だけを2~16倍に上げる機能がありますが、あくまで対地速度を上げるだけであって、シミュレーション速度は変わりません。その結果、物理計算やオートパイロットは対地速度に対して相対的に遅くシミュレートされることになり、軌道修正の反応が遅くて、機体が大暴れを起こします。具体的には、ピッチがハンチングを起こしはじめ、次第に増幅し、数千フィート単位で高度が上下動します。放っておくと地上に激突したり宇宙空間に飛び出しそうな勢いです。シミュレーション速度の方も速くすることはできるのですが、CPUのパワーを使うようで、1.2倍程までしか上げることができません。

対地速度を上げる方法で巡航飛行の時間を短縮するには、対地速度を上げた後、ハンチングが大きくなって手が付けられなくなる前に、通常速度に戻してハンチングが収束するのを待ち、また対地速度を上げるということを繰り返す必要があります。短距離ならなんとか使えなくもないですが、長距離だと面倒で付き合っていられません。

もう一つの方法は地図のウィンドウを表示して、自機のマーカーをドラッグして移動させる方法があります。これであれば長距離を瞬間移動できます。しかし、FMSに入力したルートに沿って飛んでいる場合、そのルート上に目算でドラッグしなければなりませんし、マウスでドラッグするということは、どうしても、ある程度はFMSのルートからずれてしまいます。私の場合Pilot2ATCで飛んでいるため、ルートからはずれるとATCから怒られてしまいます。
最大の問題は、地図の縮小レベルに限界があって狭い範囲しか表示できないことです。長い距離を移動しようと思うと、少しずつ刻んで移動していくことになります。地図の下の方に表示された機体を地図の上の方にドラッグしてワープするのですが、その後ドラッグ先周辺の地図をロードするのに時間がかかり、そのロードが終わるまで地図がスクロールせず、次のドラッグができません。ロード時間は海のみのエリアであれば速いのですが、陸が含まれているとトイレに行って戻ってきても終わっていなさそうなほど時間がかかります。一回一回ワープするたびにそれですから、かなり手持ち無沙汰になります。現状は、そのようにして地図上を少しずつワープ移動することしかできません。

どちらの方法にせよ、X-Planeでの移動時間の短縮はストレスです。


どうにかならないものかといろいろ試行錯誤しているのですが、現状としては、FlyWithLuaのマクロを作って手間を軽減しています。

この自作マクロにより、2~512倍速く移動することができます。この倍速移動を開始するとX-Planeをポーズ状態にし、その瞬間の方位、速度、昇降率で移動し続けます。FMSにルートが入力されていても旋回しませんし、オートパイロットに入力されている高度も考慮しません。ただ開始した時の進行方向に高速移動し続けます。
一定の高度を巡航している場合でも、実際は微妙に上昇降下して高度を維持しており、ある瞬間の昇降率で移動しつづけると、ずっと先では高度が大きく変わってしまいます。そのため、開始時の高度を維持する機能はつけました。移動した分だけ時間も経過していることになりますから、その分の時間を加える機能も追加しました。

このマクロで、一定速度の上昇、下降時や、巡航時におけるウェイポイント間の飛行を短縮することができます。
ただし、速く移動しすぎると風景のロードが間に合わなくなりますので、その部分はどうしようもありません。また、移動した分の燃料は消費しません。高速移動中は、地図上での現在地が更新されないため、停止するタイミングが分かりにくいです。
いろいろ欠点は多く、巡航を短縮するための完全な解決はできませんが、省力化はできます。

このマクロを使用したい方がおられましたら、ここからダウンロードしてください。zip圧縮されています。
使うには、FlyWithLuaが必要です。何かのアドオンを使うためにすでにインストールされているかもしれません。

使い方は、FlyWithLuaのScriptフォルダにFastTravel.luaを放り込みます。そして、FastTravelの各機能をジョイスティックのボタンにアサインします。機能は以下の6種類あります。

1.Increase speed…速度を、2倍、4倍、8倍、16倍、32倍、64倍、128倍、256倍、512倍に上げていきます。
2.Increase speed(Maintain altitude)…速度を上げていきます。高度は開始時を維持します。
3.Inclesase speed(Time advance)…速度を上げていきます。その分、時間もすすめます。
4.FastTravel: Inclesase speed(Maintain altitude, Time advance)…速度を上げていきます。開始時の高度を維持し、時間をすすめます。
5.Declease speed…速度を一段階遅くします。
6.Reset speed…速度を1倍速にし、FastTravelを停止します。



実際に使うのは3.Inclesase speed(Time advance)、4.FastTravel: Inclesase speed(Maintain altitude, Time advance)、6.Reset speedの3つだけで十分だと思います。
高速移動中は画面下に、高度等の情報を表示していますので、参考にしてください。
ボタンにアサインするのでVRコントローラーやジョイスティックに設定して、VRでも使うことができます。


本当はこうした実用上必要な機能は標準で入っていてほしい気がします。そういえば、FSXでも8倍速や16倍速でオートパイロットを使うと、機体が暴れていました。フライトシミュレーターには、まじめにシミュレートしなくてもいいので、あくまで時間短縮の機能を用意しておいて欲しいです。
実際に何時間もかかるルートを、本当に何時間もかけて飛ばすのも悪くはありませんが、生きる時間にも限りがありますので、こうした部分こそシミュレーターである利点を活かしてほしいです。

2018年7月27日金曜日

タイマーや外出先から家電操作、RS-WFIREX3の良いところと不満点

私が住む部屋のエアコンは三菱製なのですが、これのタイマー機能がとても使いにくい仕様になっています。オンとオフのタイマーを今から何時間後に行うかという相対指定で行います。時計を内蔵していないので、具体的な時刻を指定してエアコンをオン/オフすることができません。しかも、オンとオフのタイマーを同時に使うこともできません。例えばエアコンをつけたまま寝て、1時間後にエアコンをオフにし、7時間後にオンにするというような使い方はできません。
使いにくいエアコンのリモコン

オール電化なので、深夜電力が安いプランで契約しています。午後11~午前7時までは電気代が大幅に安くなります。エアコンは、起動してから部屋の温度が下がるまでが一番電力を消費します。そこで、朝、エアコンをつけるタイミングを午前7時よし少し前にすれば電気代が得です。しかし、時計を内蔵していない三菱のエアコンでは、オンにする時刻をピンポイントで指定することはできません。寝る前にタイマー予約するにしても、30分単位なので、正確な時刻を指定するにはセットするタイミングを見計らう必要があります。現実にそんな面倒なことはやっていられません。

そんなことを考えていたとき、汎用リモコンという製品が存在するのを思い出しました。それであれば設定できるのではないかと思って、調べていたところ、もっと便利なスマート家電コントローラというものが存在しているのを見つけました。Amazon EchoやGoogle Homeで家電をコントロールする際に使うもののようですが、スマホから直接使うこともできます。スマホがリモコンになり、しかも外出先から遠隔操作することができます。タイマー機能もちゃんと持っています。エアコンに限らず、テレビ、シーリングライト、扇風機等、赤外線で操作するものはなんでもコントロールできます。
この手の製品はいくつかあるようですが、ラトックシステムのRS-WFIREX3という製品を選びました。Aamzonで6,872円と、少々値が張ります。
製品自体は手のひらサイズに小さくて軽いです。USBケーブルが付属していますが、電源は付いていません。なんらかのUSB電源が必要です。私は、その辺に転がっていたポケットWiFiの充電器を流用しました。それと2.5GHzのWiFiが必要になります。
ラトックシステムのRS-WFIREX3

設定は、説明書に沿ってやっていけば簡単です。一度設定すると、装置の中に設定情報が記録されるので、電源を抜いて他のコンセントへ移動することができます。と、言いたいところですが、なぜかできませんでした。他のコンセントに移動すると、赤色LEDが点滅してWiFiに再接続してくれません。しかたないのでリセットして再設定しなおしました。このあたり、製品としてちょっと不安定かもしれません。
WiFiにつながるようになったら、専用のスマホアプリにコントロールする家電製品を追加していきます。ある程度の家電はプリセットされていますが、存在しない場合は学習させる必要があります。一部、学習できなかった機能(NEC製シーリングライトの光色切替)がありましたが、普段使わない機能なので問題はありません。

RS-WFIREX3は温度、湿度、照度という3つのセンサーを内蔵しています。それらで外出先から部屋の状態を確認することができます。
例えば、部屋にペットを飼っている場合、外出先から部屋の温度を確認して、必要に応じてエアコンを遠隔操作することができます。温度が一定の値に達したら通知を受けるように設定することもできます。
部屋の温度、湿度、照度をどこからでも確認

アプリにはタイマー機能があり、分単位で家電をコントロールできます。一回だけでなく、毎日繰り返し実行するように設定することもできます。平日や土日等の曜日単位に指定することはできますが、祝祭日には対応していません。
タイマーを複数作成可能

マクロという機能があり、複数の操作を連続して一括で行うことができます。例えばエアコンと扇風機の電源を同時にオンにするようなことができます。しかし、マクロといっても単に連続実行するだけで、内蔵のセンサーの状態や日時等を条件にするようなことはできません。

「リモコンデータ受け渡し」を使うことで、設定データをXML形式でエクスポート/インポートすることができます。設定のバックアップをとったり、他のスマホへコピーすることができます。

アプリから家電を操作したときのレスポンスもは、スマホが同じWiFiネットワーク内にある時は安定しており、早いですが、外出先から操作すると、はじめに数秒かかることがあります。問題を感じるほどのタイムラグではありません。
赤外線という性質から、リモコンから家電までの間に光を妨げるものがあってはなりませんので、RS-WFIREX3の設置場所や家電、家具の配置に注意する必要があります。
エアコンのコントロール画面例

話は少し変わりますが、以前、スマートコンセントというのを別の製品を購入して、ルーターの電源コントロール用に使っています。ルーターですからめったに電源を操作することはなく、放置しており、それで問題ないのですが、ついでにそちらの状態を確認したところ、操作不能になっていました。スマートコンセントにあるボタンの操作も、スマホアプリからの操作もできません。いろいろ試行錯誤したのですが、原因が分からず、いったんは放置してみることにしました。
少し詳しい人であれば気が付くと思いますが、スマートコンセントにしても、赤外線の家電コントローラーにしても、どこか外部のサーバーに接続しているだろうことが想像つきます。それは、サーバーが止まるようなことがあれば、それらの装置を屋外から使うことができなくなることを意味します。
実際、スマートコンセントをしばらく放置していると、復活していましたので、やはりサーバーが原因の可能性が高いです。
こうした機器は外部のサーバーに依存しており、サーバーを維持するメーカーの信頼性が問題になります。そのあたりが盲点になりえるかもしれません。

2018年6月28日木曜日

WordPressのPolylangでヘッダー画像が表示されない

WordPressのPolylangで多言語化した際に、デフォルトの言語以外では、ヘッダー画像がランダムで変更されなくなりました。
調べたところ、「言語」→「設定」の中にある「メディア」の項目を無効化すると、デフォルトの言語以外でも、ヘッダー画像がランダムで表示されるようになりました。
言語ごとに画像を変更できるようにする機能だと思いますが、それが必要ないなら無効化しても問題ないと思います。