調査中:VMware Fusion で仮想マシンのマウス位置がずれる
以前からmacOS上のVMware Fusionで仮想マシンのマウス位置がずれる問題が出ていて、未だに解決できずにいます。
症状
マウスが表示される位置でクリックやドラッグが操作できず、表示位置より右下の箇所が操作対象になる。
類似の事例をあまり見つけられていないのですが、こちらの記事の内容は、私の環境で起きている状況と同じだと思います。
ずれる条件
自分の環境でMacbook pro の RetinaディスプレイでVMware Fusionを表示すると必ずズレる。
これも前述の記事と同じ。
とりあえずの回避策
QuickResでRetinaディスプレイの解像度をHiDPIではなくStandardから選択するとズレが解消する。要するにRetinaディスプレイでRetinaの表示をさせなければよい、という解決策です。
たとえばこんなふうに操作します。
ただし、これは根本的な解決策ではないので、正しく問題解決させたいのだけど、方法が全くわからない。
あるいは、QuickResを使わずに画面解像度をStandardにできる方法、特にコマンドラインから変更する方法があればよいのですが、それもちょっとよくわからない。
秒数を 時:分:秒 のフォーマットに変換するbashスクリプト
とある処理プログラムの所要時間が秒単位で出力されるように実装されていて、しかしその処理時間は数十分に及ぶこともあるため、実際の処理時間が直感的に分かりづらいという状況がありました。そこで秒数を入力したら時:分:秒 のフォーマットで出力するスクリプトを用意することにしました。
といっても、ゼロから書くのは面倒なので、こちらのスクリプトを参考にしつつ、echo で出力している箇所を printf に置き換えてみました。もとのスクリプトは時、分、秒の数値をそのまま出力していますので、0:1:3 のように一桁の数値が交じると見づらかったのですが、printf で %02d にフォーマットすることで見やすくなりました。
#!/bin/bash # # original from https://qiita.com/hryshtk/items/fc46b2e2d8c13016e0d4 # if [ $# -eq 2 ]; then start_time=$1 end_time=$2 elif [ $# -eq 1 ]; then start_time=0 end_time=$1 fi diff=$((end_time - start_time)) let day="$diff / 86400" let diff="$diff % 86400" let hour="$diff / 3600" let diff="$diff % 3600" let minute="$diff / 60" let second="$diff % 60" printf "%dday %02d:%02d:%02d\n" ${day} ${hour} ${minute} ${second}
NHKプラスに関連するサーバを軽く探る
NHKプラスの試験配信が今日から始まったので、関係しそうなサーバをかるく探ってみます。
ちなみに、NHKプラスへの申し込み後に送付されるメールが届くまでの遅延時間は、3/1 18時の時点では、およそ40分くらいありました。そのうち短くなると思いますが、すぐにはメールが届かないものと思ってのんびり構えているのが良い様です。
NHKプラス公式サイト
https://plus.nhk.jp/plus.nhk.jp
nslookup してみると、IPアドレスはAkamaiでした。いまどきの大規模サービスがCDNを使うのは普通のことですから、特に違和感なし。
$ nslookup plus.nhk.jp Server: 192.168.1.128 Address: 192.168.1.128#53 Non-authoritative answer: plus.nhk.jp canonical name = plus.nhk.jp.edgekey.net. plus.nhk.jp.edgekey.net canonical name = e____.dsca.akamaiedge.net. Name: e____.dsca.akamaiedge.net Address: 23.___.___.___
NHKプラスログインページ
NHKプラスのログイン処理はこちらのサーバで行われている様です。 https://login.auth.nhkid.jp:login.auth.nhkid.jp:
こちらもAkamaiかなあと思って調べてみましたが、IPアドレスが全く違う。
$ nslookup login.auth.nhkid.jp Server: 192.168.1.128 Address: 192.168.1.128#53 Non-authoritative answer: Name: login.auth.nhkid.jp Address: 202.247.104.97
IPアドレスでwhoisを引いてみたら、NECのIBARAKI-DCという情報が返されるけど、本当に茨城にあるかどうかはアテににならない。とりあえずNECに割り当てられたIPアドレスで運用していることだけはわかります。
ちなみに、NHKプラスの申し込み後に送信されるメールのメールサーバのIPアドレスも、こちらのレンジに含まれていました。
$ whois 202.247.104.97 % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object refer: whois.apnic.net inetnum: 202.0.0.0 - 202.255.255.255 organisation: APNIC status: ALLOCATED (略) inetnum: 202.247.104.0 - 202.247.104.255 netname: IBARAKI-DC descr: NEC / Service Deliverly Division country: JP admin-c: JP00020390 tech-c: JP00020390 remarks: This information has been partially mirrored by APNIC from remarks: JPNIC. To obtain more specific information, please use the remarks: JPNIC WHOIS Gateway at remarks: http://www.nic.ad.jp/en/db/whois/en-gateway.html or remarks: whois.nic.ad.jp for WHOIS client. (The WHOIS client remarks: defaults to Japanese output, use the /e switch for English remarks: output) last-modified: 2017-10-27T23:38:06Z source: JPNIC % This query was served by the APNIC Whois Service version 1.88.15-47 (WHOIS-JP3)
ビデオストリームの配信サーバ
ビデオ再生中は live-cdn1-origin1.hsk.nhk.jp というサーバと通信していました。こちらはnslookupするとIIJのエッジサーバへのCNAMEが設定されているようでした。
$ nslookup live-cdn1-origin1.hsk.nhk.jp Server: 192.168.1.128 Address: 192.168.1.128#53 Non-authoritative answer: live-cdn1-origin1.hsk.nhk.jp canonical name = nhk-edge00.kedge.iijcdn.jp. Name: nhk-edge00.kedge.iijcdn.jp Address: 202.232.224.7 Name: nhk-edge00.kedge.iijcdn.jp Address: 202.232.224.1
OpenWRT 19.07.1 にアップデートする
OpenWRT 19.07.1 が2020/1/30にリリースされていたのに気づいていなかったのでアップデートすることにします。
時期的に krook 対応のアップデートは含まれていないと思うので、コレについては今後のアップデート待ち。
ここから自分のデバイス向けのsysupgradeイメージを入手して、Web UIなどからアップデートするだけです。 openwrt.org
アップデート後はパッケージ構成がデフォルトの状態に戻ってしまうので、最低限、日本語UIにするためにluci-i18n-base-jaを追加します。
opkg install luci-i18n-base-ja
また、opkg list-upgradable
でリストアップされたパッケージを必要に応じてopkg upgrade [パッケージ名]
でアップグレードすればアップデートは完了。
タッチパネル不良のiPad Proを修理に出した件のその後の話
先日、タッチパネル不良のiPad Proを修理に出そうとしたら、修理対応はできず、交換用製品との交換になるという話を書いた。
その件のその後の話があるのでまとめておく。
2020/2/19 交換用の製品が店舗に入荷との連絡あり
単なる連絡なので特にコメントすることはないけれど、1週間以内に店舗を再訪する必要がありました。 1週間以内に店舗訪問できない場合は訪問可能な日を連絡する必要があるそうです。
2020/2/22 店舗で交換用製品を受け取る
故障機は店舗での交換に先立ってバックアップと初期化を実施しておきました。 また店舗での交換時には、あらためてその場で初期化を実施し、完全に綺麗な状態であることがわかるようにしました。
店舗での受け取り時には交換用製品の動作を簡単にテストして問題がないことを確認しました。(タッチパネルが正しく反応することや、Apple Pencilで描けること)
iPad ProはCellularモデルだったので、Apple Storeのスタッフが故障機からSIMカードを外してくれましたが、ただそれだけ。 紛失するのがいやなので交換用製品に自分で装着しようとしたところで、スタッフが代わりにそれを行なってくれましたが、硬い机の上で中途半端に保護用の布を広げて作業されていて、せっかくの綺麗な状態の交換用製品に傷が入りそうな感じがして、ちょっとだけ嫌な感じ。これは正直、スタッフの当たり外れの問題なのだけど、もうちょっとちゃんとしてほしい気がした。
2020/2/22 バックアップから復元して様子をみる
バックアップデータが原因でタッチパネル不良の問題が再発することが懸念されますが、いったんバックアップから復元して様子を見ることにしました。
ちなみに交換用製品にバックアップを戻す前に、OSを13.3.1にアップデートする必要がありました。 故障した本体はiPadOS 13.3.1にアップデート済みでしたが、交換用製品はiPadOS 13.3でした。
2020/2/22 SIMロック解除の手続きを行う
交換前のiPad ProはSIMロック解除を実施していたので、交換後のiPad Proも同様にSIMロック解除しておくことにします。
ブラウザ上で選択した文字列をSalesforceで検索するブックマークレット
先日、こういう設定をChromeに行いまして、その場でキーワードを入力して検索する分にはこれで十分に役に立っているのですが、たとえば Gmailで表示中のメールに含まれる顧客情報をSalesforceで検索するのに、いちいちコピーして検索するのが面倒だなあと思い始めました。
そこで、ブラウザで選択した文字列を検索できるプックマークレットを作ろうと考えました。
しかしゼロからフルスクラッチで作るのも微妙に面倒なので、似たようなブックマークレットを探して改変することにします。
似たようなものとして既にありそうな事例は、選択した文字列でGoogle検索する、という方法だと思いまして調べてみると、それなりに実装例が見つかります。それを参考にしながら以下のように実装したら目的通りに動いたので、これをブックマークに登録して使うことにします。
javascript:(function(){ var q = window.getSelection ? window.getSelection().toString() : document.selection.createRange().text; if ( q.length > 0 ) { var g = '[Salesforceの検索リンク]' + q; window.open(g); } })();
動作確認はChromeだけで行ってます。IEその他での動作は確認していません。
参考にしたコードはこちら。
ブラウザを起動時からプライベートモードで利用する設定
Webアプリケーションの挙動をテストするときに、コンテンツのキャッシュやCookieがないキレイな状態から始めたい場合があります。しかしブラウザを起動時からプライベートモードやシークレットモードで動かす方法はブラウザごとに違うので整理してみました。
ブラウザ | 設定方法 |
---|---|
Firefox | privatebrowsing.autostastをtrueに設定する |
Chrome | 起動時オプションに --incognito を指定する |
Safari | 環境設定の"一般"より"Safariの起動時"の設定を"新規プライベートウィンドウ"に設定する |
Internet Explorer | コマンドラインパラメータに -privateをつけて起動する |
Edge (EdgeHTML) | コマンドラインパラメータに -private をつけて起動する |
Edge (Chronium) | コマンドラインパラメータに--inprivateをつけて起動する |
こうしてみると、Firefoxの設定を変えてテスト専用のブラウザとして運用するのが自分には向いているように思いました。マルチプラットフォームで利用できるし、デフォルトでプライベートモードで起動する設定が作れる点がよいと思います。
ただ、Chrome、Internet Explorer, Edgeもコマンドラインパラメータに足すだけなので、プライベートモード用のショートカットを作っておけば使い分けは難しくありません。