「星宝転生ジュエルセイバー」の素材を利用する場合について考えてみた

「星宝転生ジュエルセイバー」というスマートフォン向けのゲームがあって、そのサービス終了時に利用規約にあるような条件で、 二次利用ができることになっている。 とは言っても、jewel-s.jpというドメインは、既に元の所有者である株式会社ブリリアントサービスの所有ではないようだし、株式会社ブリリアントサービスは Cognizantに買収されて、現在はコグニザントジャパンというCognizantの日本法人になっているようで、brilliantservice.co.jpのドメインも他の人に取得されている。

二次利用できるコンテンツはjewel-s-free101j.zipというファイルに含まれている内容であり、利用規約を読む限りでは、このZIPファイルの再配布に制限はなさそうだ。 開発に関与した有川光太さんという方の「noteはじめました」という記事でも、このZIPファイルの再配布に制限は ないと書いているし、まあ普通に読めば再配布には問題ないと理解できる文章であると思って良いように思われる。 その中のreadme.txtにある内容は、項番4以外は簡単に満足させられる。 項番4は以下のようになっている。

4.事後の報告を欠いた利用
「フリーコンテンツ」を利用した作品の公開から4週間以内の報告が必要となります。専用報告フォーム (https://docs.google.com/a/brilliantservice.co.jp/forms/d/1N4xCA6lY_5d_pNC0TSLJMg-GqJyY2jDhmOvegN1QRjU/viewform)への事後報告をしてください。

簡単に満足させられないというのは、この「専用報告フォーム」が、2021年8月10日時点、既に存在しないという点である。

「星宝転生ジュエルセイバー」には公式Twitterアカウントがあって、当然、既に更新などされていないのだが、それを見てみると、 https://twitter.com/jewelsavior/status/636487745360162816というtweetがある。 これによると、@jewelsaviorにメンションして、ゲーム名とその運営者が分かるユーザー名を連絡すれば良いとの記述がある。 元々は、公開で利用の許諾を得ていることを宣言するためのものだったようだが、今はこれしかないので、これで報告するのが項番4を満足させる唯一の方法であるように思われる。 実際、結構な数のメンションがこのtweetに連なっている。

web.archive.orgでjewel-s.jpを見てみると、以下のようにQ&Aが書かれている。

どんな形で報告すれば良いでしょうか?
「書籍に利用」「ゲームアプリに利用」「イベントフライヤーに利用」などの簡素な報告で問題ありません。 ただし、作品が公に発表される類のものである場合は作品を確認するための情報を添えて下さい。 Web上に作品を紹介したり販売するためのページがある場合はURLを、Webでの確認が難しい場合は販売・発表の場所や販売元等の情報をお願いします(個人間やクローズドな組織内での利用等、公にはしない類のものであれば不要です)。

これに従ってメンションするので良いと考えて良さそうだ。 これで、どこかで発表する資料でこの素材を使うことはできそうだ。

本当は、コグニザントジャパンに問い合わせて項番4を取り消してもらえれば良いのだろうが…。

HTTP_PROXY環境変数に記号を含めたい場合

RubyのURI.parseでプロキシーサーバーを設定する際にパスワードとして使えない文字と言う記事で、 ユーザー認証付きのプロキシーサーバーの認証情報付きのURIをWindowsのHTTP_PROXY環境変数に指定する際の条件について書いていた。

いまいちescaped = % hex hexの場合がどうなるのか分からないが…。

と書いていたが、使えない文字(記号など)は普通にURLエンコードすればパスワードとして使用できるようだ。 元記事はJRubyの場合で、今はJRubyの環境ではチェックできなかったが、Go言語で書かれたプログラムでは、URLエンコードされたものは利用できた。

ただ、URLエンコードしない場合にGo言語で書かれたプログラムがどうなるかはチェックしなかった。その環境でチェックできるのはしばらく先になりそうだが、確認しておきたい。

NetBSD上のPuTTYでUnix domain socket経由でsshアクセスしてみる

PuTTY 0.75の変更点によると、 PuTTYのツールでUnix domain socketが接続先等に指定できるようになっている。

The Unix tools can now connect directly to a Unix-domain socket.

OpenSSHのsshコマンドはUnix domain socketに接続はできないようだし、sshdもUnix domain socketで接続を待ち受けることは できないようだが、sshコマンドでport forwardingでUnix domain socketを転送の元としても先としても利用できるようだ。

以下のようにすることで、remotehostホストで起動するsshdが22番portで待ち受ける接続を、 /tmp/test.sockからアクセス可能にする。 -o StreamLocalBindUnlink=yesは、/tmp/test.sockが既に接続済みである場合に上書きして作成するように指示している。

$ ssh -o StreamLocalBindUnlink=yes -NL /tmp/test.sock:remotehost:22 localhost

以下が接続した場合の例である。

$ plink -ssh /tmp/test.sock
WARNING - POTENTIAL SECURITY BREACH!
The server's host key does not match the one PuTTY has
cached. This means that either the server administrator
has changed the host key, or you have actually connected
to another computer pretending to be the server.
The new ssh-ed25519 key fingerprint is:
ssh-ed25519 255 SHA256:xxxx
If you were expecting this change and trust the new key,
enter "y" to update PuTTY's cache and continue connecting.
If you want to carry on connecting but without updating
the cache, enter "n".
If you want to abandon the connection completely, press
Return to cancel. Pressing Return is the ONLY guaranteed
safe choice.
Update cached key? (y/n, Return cancels connection, i for more info) y
Using username "username".
Access granted. Press Return to begin session.
Last login: Sat Jul 24 01:10:29 2021 from xxxx
NetBSD 9.1_STABLE (XEN3_DOMU) #2: Wed Jan  6 15:28:26 JST 2021

$

OpenSSHでsockなHTTPプロキシーサーバーを実現する

IPアドレスでアクセスして来た利用者の地理的な位置を認識するウェブサービスというのはいろいろとあって、 その制限を回避してまでそういうサービスを利用しようとは思わないのだが、明確に制限されているということが分からないような 表示になっている場合があって、そういう場合には他の地理的場所のIPアドレスからアクセスしたい場合がある。

これまでは、U.S.にあるVPSを借りているので、そこにsshでログインしてw3mでアクセスしていたが、 JavaScriptどころかCSSでさえもサポートされていないので、目的を達成できないことも多かった。

良く考えるとOpenSSHのport forwardingでSockサーバーくらい実現できるような気がしたので調べてみると、 UbuntuのページにあるDynamic Port Forwardingを 解説しているページを見つけた。

sshコマンドを実行するホストと同じホストでブラウザーを動かすのであれば、以下のように実行すれば良い。 この場合、sshはlocalhostからしか接続できない。

$ ssh -D 1080 -N remotehostnameinus

sshコマンドを実行するホストとは違うホストでブラウザーを動かしているのであれば、どのホストからもアクセスできるように、以下のように実行すれば良い。

$ ssh -g -D 1080 -N remotehostnameinus

これをFirefoxで、プロキシー設定のホスト欄にsshを実行しているホストのホスト名かIPアドレスを設定し、 ポート番号欄には1080を指定すれば良い。 FirefoxであればSOCK v5でもSOCK v4でもどちらでも良いようだ。

NetBSDでホスト名にアンダースコア(_)が入っていても不正なホスト名と認識されないようにする

Bloggerのpreviewは、アンダースコア(_)が入っているホスト名を利用している。 NetBSDは、かつてはアンダースコア入りのホスト名は許されていなくて、libc resolver library does not resolve host names with underscores ("_")でデフォルトで許容するようになっていた。 最近の議論を追えていないのだが、2021年4月30日に 戻されて、/etc/resolv.confno-check-namesオプションを指定しないと、アンダースコアが含まれているホスト名は許容されないようになっていた。 Bloggerで書いている以上、アンダースコアを含んだホスト名を許容しない訳にはいかないので、/etc/resolv.confno-check-namesオプションを含めておかなくてはいけない。 だが、/etc/resolv.confdhcpcd(8)を実行する度に内容が書き変わってしまうので、手で/etc/resolv.confで書き換えても永続化はできない。 /etc/resolvconf.confで設定して、/etc/resolv.confを再生成する度に、no-check-namesオプションを含めておくようにすれば良い。

$ cat /etc/resolvconf.conf
resolv_conf_options=no-check-names

こうしておくと、以下のようにoptions no-check-namesを含んだ/etc/resolv.confが生成される。

$ cat /etc/resolv.conf
# Generated by resolvconf
domain mylocalnetworkdomain
nameserver xxx.xxx.xxx.xxx
options no-check-names

JPEG形式の写真のEXIFデータを削除する

ディジタルカメラでJPEG形式で撮影した画像には、カメラや撮影条件の情報がEXIFデータとして含められている。 場合によっては、このEXIFデータを削除したい場合がある。 調べてみると、ImageMagick-stripオプションを付けたmogrifyコマンドで 簡単に削除できた。 以下のように実行すれば良い。

$ mogrify -strip *.JPG

Toshiba dynabook R731/16BでCloudReadyを使い、Chromium OSマシンとして使ってみる

東芝dynabook R731/16Bというラップトップを持っている。 Microsoft Windows 10も動くのだが、CPUはIntel Core i3-2310Mだし、メインメモリーも2GBなので、あまり快適ではない。 かといって、NetBSD/amd64をインストールしても、開発するには非力過ぎる。

最近はChromebookのシェアが伸びていると聞いて、そういえば何年か前はChromium OSを独自ビルドして配布している人がいたのを思い出して探してみた。 最近は放送大学のテレビ・ラジオの講義のインターネット配信がWidevine CDMを使っているので、これが視聴できれば便利である。 ちなみに、Chromebookとして販売されているラップトップでは、正常に視聴できると分かっている。

そこでChromium OSの独自ビルドを探してみると、2021年も熱心に安定版をビルドして配布している人はあまりいないようだ。 その中で、Googleに買収されたNeverwareという会社のCloudReadyの Homeエディションが無料で使えることが分かった。 ただ、安定版はChromium OS 89ベースだった。Chromium OS自体の最新安定版は91である。最新のDev channelとして提供されるのも90.1であるようだ。

インストールは、USBスティックにダウンロードしたイメージファイルを書き込んで、そこから起動させ、メニューのInstall OSから実行すれば、内蔵HDDにインストールできる。

当初の目的であったWidevine CDMを使ったビデオ配信は、問題なく視聴できた。 ちなみに、Androidアプリのインストールはサポートされていないし、サポートする予定もないとのことだ。 Linuxバイナリーの実行はメニューにはあったので有効化できそうだ。

How to use Zoom Video Conferencing with pkgsrc/www/firefox-88.0 under NetBSD/amd64 9.99.82

Zoom Video Conferencing supports Mozilla Firefox after 76.0 release The pkgsrc has Mozilla Firefox package as pkgsrc/www/firefox. And it is 88.0 as of 2021-04-26. You can install pkgsrc/www/firefox under NetBSD/amd64 9.99.82. The latest NetBSD/amd64-current (for example, 9.99.82) support XHCI isochronous transfer and you can use USB webcam with uviceo(4) device driver. And you can send and receive voices with pulseaudio option of pkgsrc/www/firefox. I will explain how to setup Zoom ready environment with pkgsrc/www/firefox-88.0 under NetBSD/amd64 9.99.82.

Update your NetBSD/amd64-current to the latest

uvideo(4) device driver for USB Video Class (UVC) webcams uses USB isochronous transfer. The latest NetBSD supports XHCI isochronous transfer and you should update your NetBSD/amd64-current environment to the latest. pkgsrc/www/firefox-88.0 should be built for NetBSD/evbarm64-current too. If your aarch64 machine has USB host controller that supports isochronous transfer, you can use the host controller to connect your UVC webcam.

If your machine has EHCI as host controller, you can connect UVC webcam to the ports that are controllerd by EHCI. As far as I understand correctly, NetBSD 9.1's ehci(4) device driver for USB EHCI supports isochronous transfer. If you use EHCI, it is not required to update your NetBSD to the latest current.

I tests UVC webcam on my Toshiba dynabook R63/PS laptop. Logitech Webcam C300 (VendorID/ProductID=0x056d/0x0805) and dynabook's internal UVC webcam (VendorID/ProductID=0x04f2/0xb3b2) work fine. The laptop has VendorID/ProductID=0x8086/0x9cb1 as XHCI and it works fine for USB isochronous transfer with uvideo(4) and uaudio(4). I have another laptop, Dell XPS 13 9300 and it has two XHCIs, VendorID/ProductID=0x8086/0x8a13 and 0x8086/0x34ed. The XHCIs do not work for uvideo(4) and works for uaudio(4). I do not figure out why NetBSD-current's XHCI USB isochronous support does not work for Dell XPS 13 9300 yet. If your UVC webcam displays camera image in very low frame-per-second (for example, 1/120 fps or lower), you encountered the same problem with my Dell XPS 13 9300.

Prepare pkgsrc packages

By default, pkgsrc/www/firefox-88.0 does not use PulseAudio audio backend and I cannot send my voice via WebRTC. pkgsrc/www/firefox under NetBSD uses Sun audio backend by default. I do not investigate deeper however I cannot send my voice with Sun audio backend. Of course I can receive and play the other's voice. I should identify why Sun audio backend does not work for audio capture, however I could not find a time.

Anyway, prebuit package (binary package) of pkgsrc/www/firefox does not have pulseaudio support and you must build and install pkgsrc/www/firefox from the source code tarball. If you have up-to-date pkgsrc tree in your /usr/pkgsrc, you can build and install pkgsrc/www/firefox as follows:

# cd /usr/pkgsrc/www/firefox
# make PKG_OPTIONS.firefox=pulseaudio install

After some hours, you can get PulseAudio ready Mozilla Firefox web browser for your NetBSD environment.

Set fake user-agent string for your Mozilla Firefox

The Firefox under NetBSD/amd64 has the following user-agent sting by default.

Mozilla/5.0 (X11; NetBSD amd64; rv:88.0) Gecko/20100101 Firefox/88.0 

Zoom Video Conferencing's web client checks the user-agent string and it rejects the web browser because my environment is not supported. Firefox add-on market has many user-agent switchers. I am usindg User-Agent Switcher by Linder to change my user-agent string to Linux. You must set your user-agent sting to Firefox under Linux. However its user-agent string indicates very old Firefox user-agent string (Firefox 31.0's). You must update your Firefox under Linux user-agent string as follows, for example:

Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/81.0

Of course this is strange and inconsistent, however Zoom does not check rv value (31.0) and you should update the last number to newer (81.0).

Start your video conferencing with Zoom web client

Follow Quick start guide for the Zoom web client instructions to connect to Zoom with the Firefox. I have no idea that Zoom video conferencing uses WebRTC. However video and audio captures use WebRTC interface at least. You can select video and audio sources in WebRTC source selection user interface of Firefox.

If your have problems to capture video, WebRTC samples getUserMedia: select resolution will help you to debug your situation. If you have problems in audio capture, WebRTC samples Audio stream volume is useful.

For audio capture, you should check your audio mixer settings with mixerctl(1) command. In my case, input source (laptop's internal microphone) is set as muted by default. I have the following /etc/mixerctl.conf file.

$ cat /etc/mixerctl.conf
inputs.reclvl.mute=off

Audible (www.audible.co.jp)のオーディオブックをNetBSD/amd64上のFirefox 87.0で再生する

AudibleというAmazonのやっているウェブサービスがあって、 当然のようにその音声データはWidevine CDMがないNetBSD/amd64上のFirefoxでは再生できないと思っていたのだが、 実際に試してみると再生できる。 その際、"The clearkey plugin has crashed."という警告メッセージが出るので、DRMを使おうとしているのだとは思うが、 使えなかった場合には、フォールバックする仕組みがあるのか、問題なく再生できる。

Spotifyで再生しようとした際にも、このclearkeyプラグインの警告は表示されていたはずで、Spotifyでは一切再生 できなかったように記憶している。

そもそもclearkey CDMを実際に利用しているサービスがあるような気が全くしないのだが、もし本当にAudibleが利用しようとしていて、 プラグインがクラッシュしているのであれば、pkgsrc/www/firefoxで直さないといけないように思う。

放送大学の「インターネット公開講座」

ずいぶんと長い間、放送大学の全科履修生(卒業して学士(教養)の学位をもらえる学生)をやっている。 最近では、放送授業のインターネット配信を自由に利用できるというのが、学生を継続している大きな理由であるように思う。 放送大学は、今はBSテレビとBSラジオで全国放送をするようになっている。 放送授業は、テレビはBS 232チャンネル、ラジオはBS 531チャンネルで放送されている。 この内容は基本的には学生向けのインターネット配信ウェブサイトで配信されていて、自分が受講している放送授業以外も自由に 視聴することができる。 BSテレビでは、生涯学習支援チャンネルであるBS 231チャンネルという放送もあって、スペシャル講義という区分の番組や、 放送大学アーカイブスという区分の過去の放送授業の再放送、日本語教育の講義、プログラミング教育の講義、データサイエンスの講義、情報セキュリティーの講義などが 放送されているはずである。 私はテレビ放送を見る習慣がないので、全くこれらの番組を視聴することができていなかった。

学生証の更新で、学習センターに行ったところ、広報誌ON AIRの紙版が置いてあって、そこで「放送大学インターネット公開講座」 と言うのが特集されていた。ウェブサイトを見てみると、下の方にリンクも存在する。 これまで存在に全く気付いていなかった。

ラインナップを見てみると、データサイエンスについての一部の講義と、プログラミング教育の講義以外は、無料で視聴できることが分かった。 逆に、データサイエンスについての講義の一部やプログラミング教育の講義は有料であり、受講するとテストがあり、合格するとOpen Badge v2仕様のデジタル認証バッジを取得できるらしい。

BS 231チャンネルで放送されている番組の全てがインターネット公開講座として存在している訳ではないし、BS 231チャンネルで視聴できてインターネット公開講座で有料のものもあるので、 完全に代替にはならないかもしれないが、チェックはしておきたい。

学生向けのインターネット配信は、どうやらWidevine CDMを使って配信されているようだ。 一方で、インターネット公開講座はVimeoベースのようで、DRMはない。NetBSD/amd64上のFirefoxでも視聴できる。

新しいリムネットのSMTPサーバーの認証方式を調べmsmtpで使う

リムネットの電子メールアドレスのみ目的として、ずいぶんと長い期間利用してきている。 2021年4月1日から、私のような電子メールアドレスだけ維持したい人にとっては、大幅値上げとなった。

値上げを機会にウェブサイトを見てみたところ、これまでのSMTP AUTHだけでなく、StartTLSもサポートされるSMTPサーバーが案内されていた。 しかし、いつものようにWindowsやmacOSのメールユーザーエージェントでの設定マニュアルしかなく、肝心な認証方式が明示されていない。 これまでであれば、telnetで接続して確認すれば良かった訳だが、StartTLSが必要なのでtelnetでは難しい。 OpenSSLのs_clientであればできたので、認証方式の確認方法を書いておく。

$ openssl s_client -connect mails.rim.or.jp:587 -starttls smtp
CONNECTED(00000006)
depth=2 C = JP, O = "SECOM Trust Systems CO.,LTD.", OU = Security Communication RootCA2
verify return:1
depth=1 C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4
verify return:1
depth=0 CN = mails.rim.or.jp
verify return:1
---
Certificate chain
 0 s:CN = mails.rim.or.jp
   i:C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4
 1 s:C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4
   i:C = JP, O = "SECOM Trust Systems CO.,LTD.", OU = Security Communication RootCA2
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGyjCCBbKgAwIBAgIQT532t4NDUWB7LXzNmQGlvDANBgkqhkiG9w0BAQsFADBp
MQswCQYDVQQGEwJKUDEqMCgGA1UEChMhSmFwYW4gUmVnaXN0cnkgU2VydmljZXMg
Q28uLCBMdGQuMS4wLAYDVQQDEyVKUFJTIERvbWFpbiBWYWxpZGF0aW9uIEF1dGhv
cml0eSAtIEc0MB4XDTIwMDkwMTAxMTY1NFoXDTIxMDkzMDE0NTk1OVowGjEYMBYG
A1UEAxMPbWFpbHMucmltLm9yLmpwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEArEKY/HOWHwsO+BZ9cOqUD9Pm3UoUQlL4wodhBiTmnpKl9bwZoNEQiKer
cINLVdvK1cFEXJdvR/DS91l1NRHNEuA++bdIFEjynLyZOsc13a9Ph2DAnC3JWVAD
n7PqgHL7eIqAg1encmoFTM++2hrGQ0ibHQ0YaJ6ksdJO4hiX4vBMVV+qDq0eRfeq
yexcTxVfzj0x13M77lQJs+6hwEX5+OuY+nTY9EfOHuWsCTpvtOWdKpq5jB83IwW9
KsAvNv7xpVMFevfFojYpVho4BuiAsyg0WYO1xnxcUIxO8eaiubIf7qKXXxFNK+sO
DR3JbEuEQ/ICK/D/vNVEChZr5ziWVwIDAQABo4IDuzCCA7cwHwYDVR0jBBgwFoAU
fCTODaQ4LcezY16neHqNHUwuxxUwgZAGCCsGAQUFBwEBBIGDMIGAME8GCCsGAQUF
BzAChkNodHRwOi8vcmVwby5wdWJjZXJ0LmpwcnMuanAvc3BwY2EvanBycy9kdmNh
X2c0L0pQUlNfRFZDQV9HNF9ERVIuY2VyMC0GCCsGAQUFBzABhiFodHRwOi8vZHYu
ZzQub2NzcC5wdWJjZXJ0LmpwcnMuanAwGgYDVR0RBBMwEYIPbWFpbHMucmltLm9y
LmpwMFkGA1UdIARSMFAwRAYLKwYBBAGDpEMBAQQwNTAzBggrBgEFBQcCARYnaHR0
cDovL2pwcnMuanAvcHViY2VydC9pbmZvL3JlcG9zaXRvcnkvMAgGBmeBDAECATAT
BgNVHSUEDDAKBggrBgEFBQcDATBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vcmVw
by5wdWJjZXJ0LmpwcnMuanAvc3BwY2EvanBycy9kdmNhX2c0L2Z1bGxjcmwuY3Js
MB0GA1UdDgQWBBSgR+YQ5YQATT7SK/uFkT60pIVUtzAOBgNVHQ8BAf8EBAMCBaAw
ggH3BgorBgEEAdZ5AgQCBIIB5wSCAeMB4QB2APZclC/RdzAiFFQYCDCUVo7jTRMZ
M7/fDC8gC8xO8WTjAAABdEdGLawAAAQDAEcwRQIhAIKqb8G+6QO/sGeA1na5J9Wl
XkUX3NmRKL0tZoxYV/NqAiAtR+b9EL6xwbp+cmWTWXVWStWyT+ZozCVdXcenKF+J
zwB3AH0+8viP/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABdEdGL50AAAQD
AEgwRgIhAIbErwl45/bM5zpLjLLdFkcuGJD3YcZnkmBl9l3QNoKNAiEA4lvcivQg
7/vdNP8A/Wt2UCNOgmgUCFm8Z3XHvZpARn0AdwBc3EOS/uarRUSxXprUVuYQN/vV
+kfcoXOUsl7m9scOygAAAXRHRjJ8AAAEAwBIMEYCIQC5Oy/GKwlsw8Pqdm52Z3sv
K4GvwT2wdt4jrnGMvAMr0QIhAJlkD+Pf0Bph5bPMAI79Y59G6/KxM9RbWz9roUe+
vsAcAHUARJRlLrDuzq/EQAfYqP4owNrmgr7YyzG1P9MzlrW2gagAAAF0R0Y0+QAA
BAMARjBEAiBODY+IO45a5lw9RSrpmTP0k4jHLZQEeGb+dskIqwj8RwIgBI+Bbfe9
L7DX/m3ZGPFHfNhmgCFqIKCOBT1t2CeaIcUwDQYJKoZIhvcNAQELBQADggEBAC0k
IxsaSU4+bZmedGHEi7Hi+1Qcn+NecMJKk2ZdraToO5C5bw7lOnNG1P3MHrmKVcFA
kGJrcVjsQ7Q88HWT2aFsCw816ASEaPV4ObRV9Ez7FGaOITf86q0HXDViYxSxglmR
+iXM4kS3fB18b4PgZaH94Lyd5O1IWMT74fd/gpHcl8UNmzXHHDTlVDd6pNjGgmog
SzDjXqTZ1EUkCw6uDbFAgrtCQjQ8MkcUDD8P8TGOfyVh7v7NPXBpOoO/gy15cJwT
uEuz98o0i2czkZ8oPEjLJTxbrRhWZaAwhMaLjMQYPCM4L5YgHH/XReniJYg1Zj9A
1RzTkI/+mfaZUFpLuJc=
-----END CERTIFICATE-----
subject=CN = mails.rim.or.jp

issuer=C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3831 bytes and written 476 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 35F0843AB35F26236A543CAF46B32CFA23939B0278B9980723C0B28A51CB3074
    Session-ID-ctx:
    Master-Key: D9F4A55EB36CC3BAA5EAEDFD8F0A7E21EE5C57EEFBF7507DD83D06F3FAEB3C8C453116CEB73D90CE8054B333E61D08C9
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1618408385
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
250 DSN
EHLO mail.rim.or.jp
250-access05.SiriusCloud.jp
250-PIPELINING
250-SIZE 57671680
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5と表示されているので、以前通りCRAM-MD5を継続利用できた。

と言うことで、~/.msmtprcは以下のようにすれば良い。

account rimnet
tls on
tls_certcheck off
tls_starttls on
host mails.rim.or.jp
port 587
protocol smtp
auth cram-md5
from username@xx.rim.or.jp
user username@xx.rim.or.jp
password "YOURPASSWORD"

比較のため、これまで利用していたSMTPサーバーの返答も記載しておく。

$ telnet mail.yk.rim.or.jp 587
Trying 219.118.67.45...
Connected to mail.yk.rim.or.jp.
Escape character is '^]'.
220 mail.yk.rim.or.jp ESMTP (submission cluster node 03)
EHLO mail.yk.rim.or.jp
250-access03.SiriusCloud.jp
250-PIPELINING
250-SIZE 57671680
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Dell XPS 13 9300を再度修理してもらった

購入直後に修理してもらったDell XPS 13 9300だが、 ファンが大きな異音を発生するようになってしまったので、訪問修理をしてもらった。

2021年4月5日11:48ごろ

修理受付のフリーダイヤルの電話番号へ電話し、ファンから大きな異音が発生している旨を伝えた。 自己診断機能を電話中に実施したがエラー表示はなく、既にBIOSも最新化してあったため、 訪問修理をしてもらうことになった。オペレーターにはすぐにつながり、約30分間の通話だった。 電話の最後に、電子メールアドレスの確認のため、電子メールのテスト送信がされた。 修理前後の部品の配送はヤマト運輸で行うとのことであった。

2021年4月5日16:36ころ

訪問修理のスケジュール調整をする電話があり、2021年4月8日16:00から17:00の間に来訪してもらい、 修理をしてもらうこととなった。

2021年4月6日12:00ころ

訪問修理の訪問先である自宅に交換部品が届いた。薄型ではあるがサイズは結構大きい荷物だった。 航空便という扱いの荷物であった。 サポートウェブページによると、ファン2つとヒートシンク、その他小物の部品が入っているらしい。

2021年4月8日16:30ころ

技術者が来訪し、免責のサインをiPhone上でした上で作業を開始した。

2021年4月8日16:54ころ

ファンを左右2つ交換し、動作確認を実施した。 ファン交換前は、envstat(8)コマンドで確認すると、すぐにCPU温度が95℃以上になっていたのだが、 pkgsrc/www/firefoxをmake buildしてみても、85℃くらいまでしか温度が上昇しないようになった。 ファンは右側が故障している可能性があるとのことだったが、念のため左右ともに交換されたとのことであった。 最後に修理完了とのことで、再度iPhone上でサインをした。

2021年4月10日

修理の満足度調査回答依頼の電子メールが来ていたので、ウェブページから回答した。

2021年4月12日14:45ころ

交換済みの部品や修理に使用しなかった部品の入っている荷物を、ヤマト運輸で料金着払いで回収してもらった。

無償のVMware ESXi 7.0を7.0bから7.0u1dにアップデートした

VMware-VMvisor-Installer-7.0b-16324942.x86_64.isoでインストールした7.0b を使っていた。 ESXi 7.0自体はアップデートされているのだが、 7.0bより先のISOイメージはダウンロード可能になっていない。

https://my.vmware.com/group/vmware/patch からダウンロードした VMware-ESXi-7.0U1d-17551050-depot.zipを使ってアップデートしてみた。

私の環境は、ネットワークインターフェイスカードとして、Intel PRO/1000 PT Server AdapterというGigabit Ethernet adapterを利用している。 これは、VID/PID=8086/107dというデバイスであり、 VMware ESXiのhardware compatibility list によると、ESXi 7.0ではサポート対象ではない。

しかし、 VMware-ESXi-7.0U1d-17551050-depot.zip 内の vmw-ESXi-7.0.1-metadata.zip に中にある vibs/ne1000-8399353616073568098.xml によると、8086107dという文字列があり、ne1000デバイスドライバーで動くはずである。 ちなみに、7.0bでは正常に動作している。

ダウンロードしたdepotファイルをESXi上に置き、以下を実行して、どのような プロファイルがあるのか確認する。

[root@bismuth:~] esxcli software sources profile list --depot=/vmfs/volumes/670u2/depot/VMware-ESXi-7.0U1d-17551050-depot.zip
Name                           Vendor        Acceptance Level  Creation Time        Modification Time
-----------------------------  ------------  ----------------  -------------------  -----------------
ESXi-7.0U1d-17551050-no-tools  VMware, Inc.  PartnerSupported  2021-02-01T18:29:08  2021-02-01T18:29:08
ESXi-7.0U1d-17551050-standard  VMware, Inc.  PartnerSupported  2021-02-01T18:29:07  2021-02-01T18:29:07

ESXi-7.0U1d-17551050-standardというプロファイルを使うことにして、 アップデートを実行する。

[root@bismuth:~] esxcli software profile update --depot=/vmfs/volumes/670u2/depot/VMware-ESXi-7.0U1d-17551050-depot.zip --profile=ESXi-7.0U1d-17551050-standard
 [HardwareError]
 Hardware precheck of profile ESXi-7.0U1d-17551050-standard failed with warnings: <UNSUPPORTED_DEVICES WARNING: This host has unsupported devices [<PciInfo ' [8086:107d 8086:1082]'>]>

 Apply --no-hardware-warning option to ignore the warnings and proceed with the transaction.
 Please refer to the log file for more details.

Intel PRO/1000 PT Server Adapterはサポートされたデバイスではないため、 エラーとなってそのままではインストールできない。 促されたように、--no-hardware-warningオプションを付けてアップデートをしてみる。

[root@bismuth:~] esxcli software profile update --depot=/vmfs/volumes/670u2/depo
t/VMware-ESXi-7.0U1d-17551050-depot.zip --profile=ESXi-7.0U1d-17551050-standard
--no-hardware-warning
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMW_bootbank_bnxtnet_216.0.50.0-16vmw.701.0.0.16850804, VMW_bootbank_bnxtroce_216.0.58.0-7vmw.701.0.0.16850804, VMW_bootbank_brcmfcoe_12.0.1500.0-1vmw.701.0.0.16850804, VMW_bootbank_brcmnvmefc_12.6.278.10-3vmw.701.0.0.16850804, VMW_bootbank_elxiscsi_12.0.1200.0-2vmw.701.0.0.16850804, VMW_bootbank_elxnet_12.0.1250.0-5vmw.701.0.0.16850804, VMW_bootbank_i40en_1.8.1.123-1vmw.701.0.0.16850804, VMW_bootbank_i40iwn_1.1.2.6-1vmw.701.0.0.16850804, VMW_bootbank_iavmd_2.0.0.1055-5vmw.701.0.0.16850804, VMW_bootbank_icen_1.0.0.9-1vmw.701.0.0.16850804, VMW_bootbank_igbn_0.1.1.0-7vmw.701.0.0.16850804, VMW_bootbank_iser_1.1.0.1-1vmw.701.0.0.16850804, VMW_bootbank_ixgben_1.7.1.28-1vmw.701.0.0.16850804, VMW_bootbank_lpfc_12.6.278.10-8vmw.701.0.0.16850804, VMW_bootbank_lpnic_11.4.62.0-1vmw.701.0.0.16850804, VMW_bootbank_lsi-mr3_7.712.51.00-1vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt2_20.00.06.00-3vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt35_13.00.13.00-2vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt3_17.00.10.00-2vmw.701.0.0.16850804, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.701.0.0.16850804, VMW_bootbank_ne1000_0.8.4-11vmw.701.0.0.16850804, VMW_bootbank_nenic_1.0.29.0-2vmw.701.0.0.16850804, VMW_bootbank_nfnic_4.0.0.44-2vmw.701.0.0.16850804, VMW_bootbank_nhpsa_70.0051.0.100-2vmw.701.0.25.17325551, VMW_bootbank_nmlx4-core_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx4-en_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx4-rdma_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx5-core_4.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx5-rdma_4.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_ntg3_4.1.5.0-0vmw.701.0.0.16850804, VMW_bootbank_nvme-pcie_1.2.3.9-2vmw.701.0.0.16850804, VMW_bootbank_nvmerdma_1.0.1.2-1vmw.701.0.20.17325020, VMW_bootbank_nvmxnet3-ens_2.0.0.22-1vmw.701.0.0.16850804, VMW_bootbank_nvmxnet3_2.0.0.30-1vmw.701.0.0.16850804, VMW_bootbank_pvscsi_0.1-2vmw.701.0.0.16850804, VMW_bootbank_qcnic_1.0.15.0-10vmw.701.0.0.16850804, VMW_bootbank_qedentv_3.40.3.0-12vmw.701.0.0.16850804, VMW_bootbank_qedrntv_3.40.4.0-12vmw.701.0.0.16850804, VMW_bootbank_qfle3_1.0.67.0-9vmw.701.0.0.16850804, VMW_bootbank_qfle3f_1.0.51.0-14vmw.701.0.0.16850804, VMW_bootbank_qfle3i_1.0.15.0-9vmw.701.0.0.16850804, VMW_bootbank_qflge_1.1.0.11-1vmw.701.0.0.16850804, VMW_bootbank_rste_2.0.2.0088-7vmw.701.0.0.16850804, VMW_bootbank_sfvmk_2.4.0.0010-15vmw.701.0.0.16850804, VMW_bootbank_smartpqi_70.4000.0.100-4vmw.701.0.25.17325551, VMW_bootbank_vmkata_0.1-1vmw.701.0.25.17325551, VMW_bootbank_vmkfcoe_1.0.0.2-1vmw.701.0.20.17325020, VMW_bootbank_vmkusb_0.1-1vmw.701.0.25.17325551, VMW_bootbank_vmw-ahci_2.0.5-2vmw.701.0.0.16850804, VMware_bootbank_cpu-microcode_7.0.1-0.30.17551050, VMware_bootbank_crx_7.0.1-0.30.17551050, VMware_bootbank_elx-esx-libelxima.so_12.0.1200.0-3vmw.701.0.0.16850804, VMware_bootbank_esx-base_7.0.1-0.30.17551050, VMware_bootbank_esx-dvfilter-generic-fastpath_7.0.1-0.30.17551050, VMware_bootbank_esx-ui_1.34.4-16668064, VMware_bootbank_esx-update_7.0.1-0.30.17551050, VMware_bootbank_esx-xserver_7.0.1-0.30.17551050, VMware_bootbank_gc_7.0.1-0.30.17551050, VMware_bootbank_loadesx_7.0.1-0.30.17551050, VMware_bootbank_lsuv2-hpv2-hpsa-plugin_1.0.0-3vmw.701.0.0.16850804, VMware_bootbank_lsuv2-intelv2-nvme-vmd-plugin_1.0.0-2vmw.701.0.0.16850804, VMware_bootbank_lsuv2-lsiv2-drivers-plugin_1.0.0-4vmw.701.0.0.16850804, VMware_bootbank_lsuv2-nvme-pcie-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-dell-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-hp-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-lenovo-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-smartpqiv2-plugin_1.0.0-4vmw.701.0.0.16850804, VMware_bootbank_native-misc-drivers_7.0.1-0.30.17551050, VMware_bootbank_qlnativefc_4.0.3.0-17vmw.701.0.0.16850804, VMware_bootbank_vdfs_7.0.1-0.30.17551050, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.38-1vmw.701.0.0.16850804, VMware_bootbank_vsan_7.0.1-0.30.17551050, VMware_bootbank_vsanhealth_7.0.1-0.30.17551050, VMware_locker_tools-light_11.1.1.16303738-16850804
   VIBs Removed: VMW_bootbank_bnxtnet_216.0.50.0-4vmw.700.1.0.15843807, VMW_bootbank_bnxtroce_216.0.58.0-1vmw.700.1.0.15843807, VMW_bootbank_brcmfcoe_12.0.1500.0-1vmw.700.1.0.15843807, VMW_bootbank_brcmnvmefc_12.4.293.2-3vmw.700.1.0.15843807, VMW_bootbank_elxiscsi_12.0.1200.0-1vmw.700.1.0.15843807, VMW_bootbank_elxnet_12.0.1250.0-5vmw.700.1.0.15843807, VMW_bootbank_i40en_1.8.1.16-1vmw.700.1.0.15843807, VMW_bootbank_i40iwn_1.1.2.5-1vmw.700.1.0.15843807, VMW_bootbank_iavmd_2.0.0.1055-3vmw.700.1.0.15843807, VMW_bootbank_igbn_0.1.1.0-6vmw.700.1.0.15843807, VMW_bootbank_iser_1.1.0.0-1vmw.700.1.0.15843807, VMW_bootbank_ixgben_1.7.1.26-1vmw.700.1.0.15843807, VMW_bootbank_lpfc_12.4.293.3-5vmw.700.1.0.15843807, VMW_bootbank_lpnic_11.4.62.0-1vmw.700.1.0.15843807, VMW_bootbank_lsi-mr3_7.712.50.00-1vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt2_20.00.06.00-2vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt35_13.00.12.00-1vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt3_17.00.10.00-1vmw.700.1.0.15843807, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.700.1.0.15843807, VMW_bootbank_ne1000_0.8.4-10vmw.700.1.0.15843807, VMW_bootbank_nenic_1.0.29.0-1vmw.700.1.0.15843807, VMW_bootbank_nfnic_4.0.0.44-1vmw.700.1.0.15843807, VMW_bootbank_nhpsa_2.0.50-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-core_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-en_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-rdma_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx5-core_4.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx5-rdma_4.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_ntg3_4.1.4.1-1vmw.700.1.0.15843807, VMW_bootbank_nvme-pcie_1.2.2.14-1vmw.700.1.25.16324942, VMW_bootbank_nvmerdma_1.0.0.0-1vmw.700.1.0.15843807, VMW_bootbank_nvmxnet3-ens_2.0.0.22-1vmw.700.1.0.15843807, VMW_bootbank_nvmxnet3_2.0.0.30-1vmw.700.1.0.15843807, VMW_bootbank_pvscsi_0.1-2vmw.700.1.0.15843807, VMW_bootbank_qcnic_1.0.15.0-8vmw.700.1.0.15843807, VMW_bootbank_qedentv_3.12.1.0-23vmw.700.1.0.15843807, VMW_bootbank_qedrntv_3.12.1.2-12vmw.700.1.0.15843807, VMW_bootbank_qfle3_1.0.66.0-5vmw.700.1.0.15843807, VMW_bootbank_qfle3f_1.0.51.0-12vmw.700.1.0.15843807, VMW_bootbank_qfle3i_1.0.15.0-6vmw.700.1.0.15843807, VMW_bootbank_qflge_1.1.0.11-1vmw.700.1.0.15843807, VMW_bootbank_rste_2.0.2.0088-7vmw.700.1.0.15843807, VMW_bootbank_sfvmk_2.0.0.1004-3vmw.700.1.0.15843807, VMW_bootbank_smartpqi_1.0.4.3011-1vmw.700.1.0.15843807, VMW_bootbank_vmkata_0.1-1vmw.700.1.0.15843807, VMW_bootbank_vmkfcoe_1.0.0.2-1vmw.700.1.0.15843807, VMW_bootbank_vmkusb_0.1-1vmw.700.1.25.16324942, VMW_bootbank_vmw-ahci_1.3.9-1vmw.700.1.0.15843807, VMware_bootbank_cpu-microcode_7.0.0-1.25.16324942, VMware_bootbank_crx_7.0.0-1.25.16324942, VMware_bootbank_elx-esx-libelxima.so_12.0.1200.0-2vmw.700.1.0.15843807, VMware_bootbank_esx-base_7.0.0-1.25.16324942, VMware_bootbank_esx-dvfilter-generic-fastpath_7.0.0-1.25.16324942, VMware_bootbank_esx-ui_1.34.0-15603211, VMware_bootbank_esx-update_7.0.0-1.25.16324942, VMware_bootbank_esx-xserver_7.0.0-1.25.16324942, VMware_bootbank_loadesx_7.0.0-1.25.16324942, VMware_bootbank_lsuv2-hpv2-hpsa-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-intelv2-nvme-vmd-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-lsiv2-drivers-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-nvme-pcie-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-dell-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-hp-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-lenovo-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-smartpqiv2-plugin_1.0.0-3vmw.700.1.0.15843807, VMware_bootbank_native-misc-drivers_7.0.0-1.25.16324942, VMware_bootbank_qlnativefc_4.0.1.0-3vmw.700.1.0.15843807, VMware_bootbank_vdfs_7.0.0-1.25.16324942, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.37-1vmw.700.1.0.15843807, VMware_bootbank_vsan_7.0.0-1.25.16324942, VMware_bootbank_vsanhealth_7.0.0-1.25.16324942, VMware_locker_tools-light_11.1.0.16036546-16321839
   VIBs Skipped:

インストール自体は正常に終了したので、ESXiを再起動させる。

[root@bismuth:~] reboot
[root@bismuth:~] Connection to bismuth closed by remote host.
Connection to bismuth closed.

再度ログインして、バージョンを確認し、アップデートできていることを確認した。

[root@bismuth:~] esxcli system version get
   Product: VMware ESXi
   Version: 7.0.1
   Build: Releasebuild-17551050
   Update: 1
   Patch: 30

GUI上では、7.0 Update 1になり、無償ライセンスも有効のままだった。 Intel PRO/1000 PT Server Adapterも正常に動作している。

JPEG 2000と特許とGhostscript

「標準化現場ノート(6) JPEG 2000」 小野 文孝, 映像情報メディア学会誌, 2010, 64 巻, 9 号, p. 1339-1343によると、 JPEG 2000の基本方式である Part 1においては、特許権を行使されないことが、 実務的には保証されているとのことである。 でも、後年どうなったのかは良く分からない。

私がこんなことを調べたのは、GhostscriptでJPEG 2000エンコードができない問題 について、 2017-08-23のIRCログ に、エンコーダーを実装するには特許の問題があるという記述があったからなのだが、 少なくとも今日調べてもエンコーダーの実装をするのに誰かの特許に抵触するような ウェブ上の情報は見付けられなかった。

問題ないのであれば、GhostscriptでJPEG 2000エンコーディングをサポートして欲しい。

Microsoft 365のMicrosoft Outlook 16.0.12527.20986で、古いアカウントの設定のウィザードを利用する

Microsoft Office 2010を長く使っていて、Microsoft Exchange Server 2013に対してオフラインキャッシュの無効になった接続をせざるを得ない。 そうすると、オフライン時には自分のプロファイルを全く開くことができず、自分の個人用フォルダーファイル(.pst)を参照することもできない。 そうなると困ってしまうので、.pstファイルのみを利用できるプロファイルを追加で作っておくことで、過去の電子メールを参照するしかない。

Microsoft 365のMicrosoft Offcie ProPlusのOutlook 16.0.12527.20986という古めのOutlookを使うことになったのだが、同様にオフラインキャッシュは無効になっていて、 .pstファイル用のプロファイルを作成するしかないということになった。 しかし、OUtlook 2010にあったアカウントの設定のウィザードはなくなっており、.pstファイルのみを利用できるような変わったプロファイルは作れなくなっていた。

調べてみると、古いアカウントの設定ウィザードはWindowsレジストリーで再び有効化することが可能だった。 以下のように実行すれば良い。

reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\setup /v DisableOffice365SimplifiedAccountCreation /t REG_DWORD /d 1 /f

Windows 10で利用するバージョンを固定する

Windows 10 1909を使わないといけない場合があり、実際に後日利用する場合にはActive Directoryドメインに参加させるので、 勝手に2004以降にアップデートされることはない訳だが、初期セットアップの中でWindows Updateを実行しておきたい。 そうすると、勝手に2004や20H2にアップデートされてしまうことがある。 私は単にWindows Update経由で配布されるデバイスドライバーを利用したいだけなのだが。

機能更新のブロックやスキップができそうな Windows Update for Business の新ポリシー(from 1803)(追記あり)にあるように、 Windows 10 1803以降では、以下のようにWindowsレジストリーに登録することで1909に固定しておくことができた。

REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v TargetReleaseVersion /t REG_DWORD /d 1 /f
REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v TargetReleaseVersionInfo /t REG_SZ /d 1909 /f

Active Directryドメインに参加したら、これらはWindowsレジストリーから削除しておく。

OCNでIPv4 over IPv6 (IPoE)が利用できるか調べる

OCNをISPとして、回線はフレッツで利用しているのだが、IPoEなIPv6は使えるようになっているのだが、IPv4 over IPv6は利用できていない。 自分の環境でIPv4 over IPv6が使えるかどうか良く分からなかったので、使えるかどうかの確認方法を書いておく。 ちなみに、私の環境ではホームゲートウェイ(HGW)では、まだ利用できなかった。

HGWのファームウェアアップデートを確認する

OCNバーチャルコネクトサービス(IPoE接続)対応端末のPDFファイルを見ると、私の利用しているPR-500MIもサポート対象のHGWであるように見える。 しかし、備考に以下のように書いてあるのが気になる。どういう意味だろうか?

左記のホームゲートウェイをご利用の場合であっても、フレッツ・ジョイントによるIPv4 over IPv6接続用ソフトウェア配信機能をご利用でない場合、IPv6接続のみのご提供になります。

これは、ホームゲートウェイ(HGW) v6Neo接続設定方法というウェブページによると、 http://ntt.setup:8888/t/でファームウェアの配信がされているか確認できるものであるらしい。「配信済事業者ソフトウェア一覧」という画面である。 ここでブロック数が0/10でなければ、配信されているようだ。 つまり、HGWにログインしてアップデートするファームウェアの更新では配信されて来ないものであるようだ。

私の環境では、0/10だった。

ここまで把握した上で、OCNのマイページを見てみると、記載する内容を理解することができた。

OCNのマイページの見方

IPoEインターネット接続機能ページのIPoEインターネット接続機能の提供状況 にOCNマイページの見方が書かれている。私の場合は、「IPoEは、提供中」で「IPoE(ホームゲートウェイ・無線LANルーター*1対応)は、未提供」であった。 これはつまり、HGWにファームウェアを配信していないということを示しているようだ。

なので、この「IPoE(ホームゲートウェイ・無線LANルーター*1対応)」を注視していれば良いようだ。ちなみに、「提供中」になる場合には、電子メールで連絡が来るらしい。

HGWを使わないようにしたいのだが、ひかり電話周りをちゃんと理解しないといけない。

ノートに保護フィルムを貼る

ノートの表紙を補強するために、保護フィルムを貼る必要があった。

エーワン A-one ラミネート UVカット透明カバーフィルム 空気が抜けるタイプ 6枚 A4 35045を使ってみたら、 確かに上から押さえるだけで、空気を抜いて貼り付けることができた。 厚さも光沢も問題なく利用できた。

エーワンブランドなのだが、中の保護フィルムの保護紙の表示も3Mだし、パッケージのメーカー表示もスリーエム ジャパンになっている。 調べてみると、2010年に3Mグループになっていた

VMware ESXiでのネイティブバーチャルコンソール

VMware ESXi 7.0bを使ってpkgsrcの検証環境を構築している。 VMware ESXiでは既にWindowsネイティブなコンソールは提供されず、ウェブユーザーインターフェイス内のコンソールしかないと思っていた。 これはNetBSD上のFirefoxでも利用できるなど便利な面はあるのだが、 入力できないショートカットキーがあるなど、GUI環境を検証する場合には必ずしも便利ではないように感じていた。

Haiku R1/beta2の環境をVMware ESXi上で構築しようとしたら、ウェブUIのコンソールではマウスの操作 がキャプチャされなかった。 これはEmulating Haiku In ESXiに解消する方法が解説されていた。 その内容は、VMware Remote Console (VMRC)というのを使えば解消するらしい。これはWindowsとLinux/x86_64向けに提供されているらしい。 Windows 10で試してみた。

実際にMy VMwareのウェブサイトにログインしてダウンロードしインストールしてみると、Firefox for WindowsでVMware ESXiのウェブインターフェイスを開く部分にある "Launch remote console"というのが動くようになる。 これを選択すると、Windowsネイティブなリモートコンソールウィンドウが開くようになる。 VMware ESXiのウェブユーザーインターフェイスがタイムアウトでログアウトされても継続してコンソールを利用できるという利点もある。 Haikuについて言えば、もちろんマウスも正常に利用できる。 Haiku以外でもGUI環境で作業する場合には便利そうだ。

pkgsrcでの取り組みの話を書くべきか

pkgsrcで自分の使うソフトウェアを最新の状態で使えるようにしているつもりで、その成果というのはpkgsrcのtreeに全て反映されている。 と言うことで、改めてその内容を日本語で書いておくことが有用な気がしていなかった。 だが、良く考えてみると、どうやってその問題に到達したのかとか、どういう補助的なツールを使ったのかといったことは、コミットログに 書かなかったとすると、記憶の中にしか残っていないことになる。 コミットログに書くのがベストではあると思うが、ここにその取り組みの内容を書いておくのも有用かもしれない。

と言うことで、pkgsrcのタグを用意したので、折を見てpkgsrcでコードにもコミットログにも表現できなかったことを書いておくようにしたい。

olsrd2の動作確認をする方法

メッシュWi-Fi的なものを自分でやってみようと思って、olsrd2を使ってみたのだが、ちゃんとneighborsを見付けて接続できたのかが分かりにくかった。 私は結局複数のWi-Fiアクセスポイントを運用するのは止めることにしたので、olsrd2を動作確認以上には利用していないのだが、 折角なので、neighborsを見付けて接続できたか確認する方法だけ書いておきたい。

olsrd2はtelnet経由で少なくとも状態を確認できるようになっている。しかし、デフォルトでは2009番ポートが割り当てられていてlocalhost以外からは接続できないようになっているようだ。 各アクセスポイントにログインして確認するのは面倒である。 まずは、localhost以外からもtelnetでログインできるようにする。

そのためには、設定ファイルを書くのが楽なように思われる。コマンドラインでも指定できるようだが、少なくともどのオプションが必要なのか見極めるためにいろいろ試している段階では、 設定ファイルを書いた方が記録が残るという意味でも良いように思われる。設定ファイルを指定してolsrd2を起動するには、設定ファイルのファイル名がolsrd2.confだとしたら、 olsrd2 --load olsrd2.confのように実行する。このように起動すると、自動的にデーモンにはならないので、何度も設定ファイルを書き変えて試行している段階では 操作しやすい。

$ cat olsrd2.conf
[telnet]
        acl     default_accept
        bindto  192.168.1.2
        port    2009

ここで、192.168.1.2は、そのWi-FiアクセスポイントのIPアドレスで、設定・確認作業をしている端末から見えるIPアドレスを指定する。

その設定・確認用の端末からは、telnet 192.168.1.2 2009のようにログインして操作しても良いのだが、readline的なものもないので操作性が悪い。 NetBSD 9.99.80であれば、ncコマンドがbaseに含まれているので、以下のようにすれば良い。ここで/を付けているのは、 表示後にtelnetのセッションを残しておきたくないためである。

$ echo /nhdpinfo json link | nc 192.168.1.2 2009

これで、空ではないJSONが表示されれば、neighborsが検出されている。 うまく行かない場合には、olsrd2.conf[interface=eth0]のように、neighborsと通信できるネットワークインターフェイスを指定しておくと良いだろう。

nginxだけで、HTTPSとsshを同時に443番ポートで待ち受ける

はじめに

どんなにひどいネットワーク環境であっても、 せめて22番ポートくらいは通るようにしておいて欲しいものだが、 そういう訳にもいかない。 通るのは80と443のみである。

sshでログインする先のサーバーが、httpdを実行していなければ、80番ポートでも443番ポート でも良いので、sshdが待ち受けるように設定してしまえば、そんな環境からでも sshでログインして作業できるのだが、httpdを実行しているサーバーにログイン したいニーズは存在する。 そのサーバーがHTTPとHTTPSで配信しているファイルを変更したいからsshでログイン したいのであって、httpdを止める訳にはいかないのである。

そのサーバーのhttpdには、nginx-1.19.6を利用している。 HTTPSとsshを同時に待ち受けさせるには、sslhを使うのが一般的な解ではないかと思う。 pkgsrcでも、net/sslhとして収録されている。

しかし、nginxほどの拡張性のあるウェブサーバーであれば、それ自身でそれくらいの 多重化はできるのではないかと考えた。 検索してみると、nginxの公式blogに、 Running SSL and Non-SSL Protocols over the Same Port with NGINX 1.15.2 という記事があるのに気付いた。 $ssl_preread_protocolと言うのを使うと、HTTPSとsshを同時に待ち受けて それぞれ適切な方にリダイレクトさせることが可能だという。

実際に試してみた。

nginxの再インストール

pkgsrcを使ってnginx-1.19.6をインストールしている。 これまでは、標準のビルドオプションに加えて、HTTP/2のサポートを有効化していた。 これに加えて、$ssl_preread_protocolを有効にするには、 まずは/etc/mk.confに以下のように書いておく。

# vi /etc/mk.conf
(snip)
PKG_OPTIONS.nginx=http2 stream-ssl-preread
(snip)

この上で、nginx-1.19.6をインストールし直す。 以下のように実行すれば良い。/usr/pkg/etc/nginxディレクトリー内の 設定ファイルの変更は維持される。

# cd /usr/pkgsrc/www/nginx-devel
# make update

これで、nginxバイナリーは準備できた。 次に設定ファイルを変更していく。 方針は以下のようである。

  1. 443番ポートでHTTPSとsshを待ち受ける。
  2. 443番ポートに接続されたログを取得する。

これを実現するために、/usr/pkg/etc/nginx/nginx.confは以下のように 設定した。コメントを入れつつnginx.conf全体を掲載しておく。

$ cat /usr/pkg/etc/nginx/nginx.conf
user   nginx  nginx;
worker_processes  1;

events {
    # After increasing this value You probably should increase limit
    # of file descriptors (for example in start_precmd in startup script)
    worker_connections  1024;
}

# Share 443 port with TLS and ssh
# https://www.nginx.com/blog/running-non-ssl-protocols-over-ssl-port-nginx-1-15-2/
stream {
	upstream ssh {
		server localhost:22; # sshdはlocalhostの22番ポートで待機しているので、それにリダイレクトする。
	}

	upstream webtls {
		server localhost:8443; # httpdはHTTPSをlocalhostの8443番ポートで待機しているので、それにリダイレクトする。
	}

	map $ssl_preread_protocol $upstream {
		default webtls; # nginx blogではHTTPS側でTLSのClientHelloを指定していたが、
				# どのようなClientHelloが来るか分からないので、既定値としてはHTTPSにしている。
		"" ssh; # ClientHelloがない場合にはsshとして扱う。
	}

	log_format stream_log  '$remote_addr - [$time_local] '
		'$status'; # 最小限の接続ログを出力する。
	access_log /var/log/nginx/access_stream.log stream_log; # ログの出力先を設定する。

	# 実際に443番ポートの多重化を設定している。
	server {
		listen 443;

		proxy_pass $upstream;
		ssl_preread on;
	}
}

http {
    include       /usr/pkg/etc/nginx/mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  www.example.org;

        #charset koi8-r;

        #access_log  /var/log/nginx/host.access.log  main;

        location / {
            root   /usr/htdocs;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   share/examples/nginx/html;
        }

	location ~ ^/~(.+?)(/.*)?$ {
		alias /home/$1/public_html$2;
	}

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        /usr/pkg/etc/nginx/fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   share/examples/nginx/html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    server {
        listen       8443 http2 ssl; # 8443番ポートで待機させる。
        server_name  www.example.org;

        ssl_certificate      www.example.org.cer;
        ssl_certificate_key  www.example.org.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   /usr/htdocs;
            index  index.html index.htm;
        }

	location /pub {
		alias /usr/htdocs/pub;
		autoindex on;
		location ~*.diff {
			add_header Content-Type text/plain;
		}
	}

	location ~ ^/~(.+?)(/.*)?$ {
		alias /home/$1/public_html$2;
	}
    }

}

以下のように443番ポート経由でsshログインできるか確認する。 同時にHTTPSでもページを表示できるか確認する。

# /etc/rc.d/nginx restart
$ ssh www.example.org -p 443
$ w3m https://www.example.org/

HP ProBook 450 G7のタッチパッドをMicrosoft WIndows 10 1909以前で利用する

HP ProBook 450 G7を購入したところ、Microsoft Windows 10 2004がインストールされていた。 これを都合があってMicrosoft WIndows 10 1903にダウングレードして利用しようとしたところ、 内蔵のSynaptics製のタッチパッド(ClickPad)が認識されず、利用できなかった。

HPのフォーラムでの投稿を参考にして、 デバイスドライバーの配布ページからダウンロードできる Intel Serial IO Driver - Comet Lake 30.100.2020.7 Rev.Aというデバイスドライバーをインストールすると、認識され使えるようになった。

このデバイスドライバーは、Microsoft Windows 10 1909でも必要だった。

ローカルで大容量・多数のファイルをバックアップしたい場合

ネットワーク経由ではなく、ローカルのハードディスクドライブ間で多数・大容量のファイルをバックアップしたい場合にも、私はrsyncを使っている。 途中経過を表示してくれるし、途中で止まってしまった場合にもリカバリーが簡単だろうという意図である。 幸運にも途中で止まったことはないのだが、2回目以降は-uオプションを付ければ良いはずと考えている。

$ rsync -av /share/a/data/ /share/c/data/

Amazon Fire TV Stick第1世代のOSバージョンアップ

しばらく電源を入れていなかったAmazon Fire TV Stick (第1世代)があるのだが、後々面倒になるといけないのでOSのバージョンアップを しておくことにした。気付いたことを書いておきたい。

アップデート方法

Fire TVのソフトウェアをアップデートするに あるように、設定→My Fire TV→バージョン情報→アップデートを確認の順で選択すれば、OSアップデートすることができる。

しかし、複数バージョンのアップデートがある場合、一気に最新のバージョンにアップデートすることはできず、1世代ずつ順々に適用していくこととなる。

最新のバージョン

Fire TV端末およびアクセサリのソフトウェアアップデートに 記載のあるようなバージョンが各Fire TVデバイスの最新のOSのバージョンである。 しかし、2021-01-02現在、私の持っているAmazon Fire TV STick第1世代と第2世代は、いずれもFire OS 5.2.7.7ではなく5.2.7.6までしかアップデートできなかった。 新しいバージョンを見つけられないようだった。

「星宝転生ジュエルセイバー」の素材を利用する場合について考えてみた

「星宝転生ジュエルセイバー」というスマートフォン向けのゲームがあって、そのサービス終了時に 利用規約 にあるような条件で、 二次利用ができることになっている。 とは言っても、 jewel-s.jp というドメインは、既に元の所有者である株式会社ブリリアントサービスの...