文化庁の自由利用マークというのがあって、ITmediaの記事「文化庁、CCライセンスを支援へ 独自ライセンス構築は断念」によると、2013年の時点で普及はあきらめているらしい。 文化庁のウェブページを見ても、そもそも「コピーOK」「障害者OK」「学校教育OK」という区分も良いとは思えないし、どんな側面でも日本の法律に直結してしまっているのも、利用できる範囲が狭いのも、発展性がないような気がする。 しかし利用されてしまうと、説明のウェブページを維持しないといけないので、こういうのは失敗できない難しいことであるような気がする。
Android用のWikipedia appを使ってみた
Wikipediaをログインしないで使っていて、WikipediaのAndroid appがあるという通知が表示された。 これまでWikipedia appがあるとは知らなかったので、インストールしてログインしてみた。
これまでの編集や編集後の閲覧数をActivityとして閲覧できるのはおもしろいのだが、Firefox for AndroidでWikipediaのウェブページを開くと、appで開くか聞かれるのは煩雑かつ私には意味がない。
Firefoxでapp単位でこの機能を無効化できたか記憶がない。 また、外部サイトはあくまで外部のウェブブラウザーで開くことになるので、便利でもない。 どんなウェブページも開けるように作るのはセキュリティー的な面も考慮すると避けたいのかもしれないが…。 でもWikipediaほどのウェブサイトを表示できるのであれば、外部サイトをapp内で開いても大差ないような気もする。
いずれにしても、そこまで便利ではないと言うか不便になる方の影響が大きいのでアンインストールすることにした。
YubiKeyを使えないウェブサービスでYubiKeyを無理やり使う
PassKeysは明らかに私にとってのSingle Point Of Failureなので、なぜこんなものが流行しているのか、いまいち分からない。 技術的にはパスワードを入力してやりとりするより安全なのは間違いなさそうだが、もっと良い方法はないのだろうか。 いずれにしてもPassKeysを設定しないといけないサービスにFirefox for NetBSDからログインしたいので、選択肢はない。
Firefox for NetBSDを常用していてPassKeysを使おうとすると、ハードウェアセキュリティーキーを使う以外に方法はない。 私はYubiKey 5 NFCを買って使っている。 古いもの(ファームウェアバージョン5.4.3)はFIDO2の保管上限数が25であり、すぐにいっぱいになってしまう。しかも、脆弱性がある。 新しいもの(ファームウェアバージョン5.7.4)は100まで保存できる。しかし100しかないとも言える。 software FIDO2 authenticatorとでも呼ぶべきプログラムは存在するのだが、それをNetBSDで動くようにするのは、面倒な気がする。 やってみたらそうでもない可能性もあるので、勝手な印象ではあるが。 では、スマートフォンでQRコードを読み取る方式はどうかと言うと、これはBluetoothサポートが必要なので、到底実現できるとは思えない。
同じようなことを考える人はいるもので、Passkey DictatorというFirefox addonを作っている人がいる。 Mozilla Firefoxのaddon storeでも公開されている。 こういうソフトウェアを無条件に信頼してインストールするのは危険であるのは確かなので、良く吟味してから使わないといけない。
これを使うと、READMEに書いてあるようにPixivには問題なくPassKeysの登録もログインもできるようになる。Firefox for NetBSDでもWindowsでも同様に問題ない。user agent stringも変更する必要はない。
私の問題としているもう1つはdアカウントなのだが、これはFirefox for NetBSDでid.smt.docomo.ne.jpへ送るuser agent stringをGoogle Chromeにすると、PassKeysの登録もログインも両方が問題なくできる。 しかしFirefox for Windowsでは、PassKeysの登録はできるのだが、ログインの際にはQRコードのパターンにしかならない。 幸運なことにdアカウントには複数のPassKeysを登録できるので、YubiKeyとAndroidのGoogle Password Managerの2つのPassKeysを登録しておくことにすれば、最終的には問題にはならなかった。 dアカウントでのログインは、PassKeysが必要なサービスとそうでないサービスがあるので、面倒である。
もう少し勉強すれば、Firefox for Windowsでdアカウントにログインできるようにできるのかもしれない。
mixed mode CDのデータトラックをマウントする
以前に「古いmixed mode CDをバックアップする」と題してバックアップ方法を書いたが、実際のmixed mode CDのディスクについてはあまり触らなかった。 気になっていたのは、データトラックがNetBSDでマウントできるかを確認していなかったし、データトラックをマウントした状態ではCDDAのクラックは再生できないだろうが、それも実際には確認していなかった。 そもそも、CDDAの実際のディスクを再生する簡単な方法も分かっていなかった。pkgsrc/multimdia/vlcで/dev/cd0を再生すれば間違いはないのだが、mplayerやmpvではどうすべきか分かっていなかった。
まず、データトラックをマウントしてみる。 これは簡単で、普通にマウントすれば良い。
# mount_cd9660 /dev/cd0 /mnt/cdrom
予想通り、マウントしている最中にはCDDAのトラックは再生できなかった。
後はmixed mode CDを作る方法を調べてやってみれば、mixed mode CDに関する疑問は解消できそうだ。
2週間ごとにリリースされるようになるFirefoxの移植に取り組むべきタイミングを調べる
Firefoxが1カ月ごとではなく、2週間ごとにリリースをするようになるということなので、どの時点でpkgsrc/www/firefoxの更新作業をし始めるべきなのか確認してみた。
これまでは、b6までがbeta版ということになっていて、b6とb7の間ではビルドされるコードが違う。具体的には、#ifdefを使って違いが出るようになっていた。 Firefoix 155.0が2026年9月1日にリリースされるのはhttps://whattrainisitnow.com/calendar/を見ると分かるが、そのRelease dayの項目をクリックするとhttps://whattrainisitnow.com/release/?version=155のページへ移動することができる。 ここで、Beta 5の項目を見ると、Last beta uploftsと書かれていて8月26日にリリースされる予定になっている。
この後がb6になるのか、RCになるのかは分からないが、b5の次になったらpkgsrc/www/firefox-155に取り組み始めるスケジュールが良さそうだ。 ただ、これまでであれば、1週間前にはb9程度までは進んでいて時間はまだ足りないものの、どうにかできなかった訳ではないと思うが、リリースまで1週間を切ってから作業を始めないといけないのは大変かもしれない。
P.S. (2026-09-19)
155と156がリリースされたが、いずれでもb5の次がrc1のようなので、rc1が例えば156.0であればhttps://ftp.mozilla.org/pub/firefox/candidates/156.0-candidates/build1/に現れたら作業を開始するので良さそうだ。 でも、こうなると作業できる時間は短い。
古いmixed mode CDをバックアップする
CD EXTRAができる前にはmixed mode CDというのがあったはずで、私の持っているCDの中にはこのmixed mode CDの仕様に従っているものがある。 例えばWindows 11では、オーディオCDとして再生もできるし、写真の含まれたCD-ROMとしても同時に認識される。 これをNetBSDで再生したいのだが、全てを同時に満足するような方法は見付けられなかった。 だが、結果としてcdrdaoでバックアップしておけば、バックアップしたことになるようだ。
cdrdaoでバックアップする
cdrdaoでバックアップする方法は前回説明した通りで良い。 ただ、第1トラックはオーディオではなくデータが入っている。 cdrdaoコマンドを実行した時の表示で、それを見ることができる。
$ cdrdao read-cd --datafile file.bin --driver generic-mmc:0x20000 --device /dev/cd0 --read-raw file.toc Cdrdao version 1.2.4 - (C) Andreas Mueller <andreas@daneb.de> /dev/cd0: PIONEER BD-RW BDR-XD08 Rev: 1.02 Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x20000) Reading toc and track data... Track Mode Flags Start Length ------------------------------------------------------------ 1 DATA 4 00:00:00( 0) 02:36:34( 11734) 2 AUDIO 0 02:36:34( 11734) 02:42:02( 12152) 3 AUDIO 0 05:18:36( 23886) 04:31:63( 20388) 4 AUDIO 0 09:50:24( 44274) 04:04:02( 18302) 5 AUDIO 0 13:54:26( 62576) 04:38:10( 20860) 6 AUDIO 0 18:32:36( 83436) 06:09:15( 27690) 7 AUDIO 0 24:41:51(111126) 04:32:10( 20410) 8 AUDIO 0 29:13:61(131536) 06:06:04( 27454) 9 AUDIO 0 35:19:65(158990) 03:51:03( 17328) 10 AUDIO 0 39:10:68(176318) 03:56:04( 17704) 11 AUDIO 0 43:06:72(194022) 06:12:16( 27916) 12 AUDIO 0 49:19:13(221938) 00:06:04( 454) Leadout AUDIO 0 49:25:17(222392) PQ sub-channel reading (data track) is supported, data format is BCD. Raw P-W sub-channel reading (data track) is supported. PQ sub-channel reading (audio track) is supported, data format is BCD. Raw P-W sub-channel reading (audio track) is supported. Copying data track 1 (MODE1_RAW): start 00:00:00, length 02:34:34 to "file.bin"...
データトラックを抽出する
これをmplayerで再生すると、第1トラックはホワイトノイズのような内容になってしまう。 それは避けようがないとして、第1トラックを抽出したい。 bchunkコマンドを使えば良いようだ。 まず、以下のようにインストールする。
# /usr/pkgsrc/sysutils/bchunk # make install
これで、各トラックをファイルとして抽出する。 これにより、tracl01.isoと第2トラックからのtrack02.cdrといったファイルが生成される。
$ bchunk file.bin file.cue track
この第1トラックの分のISOファイルは、以下のようにマウントすれば良い。
# vndconfig vnd0 ./track01.iso # mount_cd9660 /dev/vnd0a /mnt/cdrom
一方で、オーディオトラックの分のcdrファイルは以下のように再生できる。
$ mplayer -demuxer rawaudio -rawaudio rate=44100:channels=2:samplesize=2:format=0x10001 track02.cdr
オーディオCDをバックアップして再生する
私は何かをしながら音楽をきくと全く音楽を無視してしまうので、音楽を聞く習慣がなく、オーディオCDもほとんど持っていない。 だが、持っているものはあって、それらは20世紀のものなので、いつ劣化して再生できなってもおかしくない気がする。 と言うことで、バックアップしたいと思う。 全く知識がないのだが、binまたはimgというイメージファイルと、tocまたはcueファイルを組み合わせるのが一般的なようだ。 ウェブを調べても新しい情報はあまりないが、もうオーディオCDを扱いたいという人がいなくなって来ているのかもしれない。
pkgsrc/sysutils/cdrdaoでbin+cueを作る
cdrdaoコマンドを使えばbinファイルとtocファイルを作ることができ、toc2cueコマンドを使えばtocファイルをcueファイルに変換できるようだ。 と言うことで、cdrdaoパッケージをインストールする。
# cd /usr/pkgsrc/sysutils/cdrdao # make install
以下のように実行すれば、binファイルを作ることができる。
ここで、--driver generic-mmc:0x20000を付けたのは、このbinファイルをそのままでmplayerで再生できるようにするためだ。
続けてtocファイルをcueファイルに変換する。
$ cdrdao read-cd --datafile file.bin --driver generic-mmc:0x20000 --device /dev/cd0 --read-raw file.toc $ toc2cue file.toc file.cue
これをmplayerで再生するとする。 まずはmplayerをインストールする。
# cd /usr/pkgsrc/multimedia/mplayer # make install
cueファイルに合わせてmplayerで各トラックを再生するのは、以下のようにすれば良い。 以下では、現在のディレクトリーにあるcueファイルを使ってbinファイルの2トラック目を再生する。
$ mplayer -demuxer rawaudio cue://file.cue:2
トラックに関係なく再生するのであれば、以下のようでも良い。
$ mplayer -demuxer rawaudio file.bin
binファイルを再生するのは、mplayerでは可能なのだが、手元にあるqmmp-1.7.11ではできなかった。 しかし、cueファイル自体はflacファイルに対しても利用できるようなので、以下のようにflacコマンドをインストールしてflacファイルに変換した。
# cd /usr/pkgsrc/audio/flac # make install $ flac --best --force-raw-format --endian=little --channels=2 --bps=16 --sample-rate=44100 --sign=signed --cuesheet=./file.cue --output-name=./file.flac ./file.bin
更に、cueファイル中のファイル名を更新しておく必要がある。
--- file.cue 2026-08-22 19:12:27.532711497 +0900
+++ file-flac.cue 2026-08-22 19:12:38.416281352 +0900
@@ -1,4 +1,4 @@
-FILE "file.bin" BINARY
+FILE "file.flac" BINARY
TRACK 01 MODE1/2352
INDEX 01 00:00:00
TRACK 02 AUDIO
これであれば、qmmpでcueファイルを指定して再生することができる。
HP ProLiant ML110 G7のiLO3のリモートコンソールに、Windows 11 25H2からアクセスする
HP ProLiant ML110 G7のiLO3は、既にサポートが切れているので、リモートコンソールをウェブブラウザーから使うには、ActiveXかJava Web Startのいずれかが必要になる。
Windows 11では既にスタンドアローンのInternet Explorer 11は利用できないし、Microsoft EdgeでIEモードを有効化するのも、エンタープライズでなければ維持するのも面倒だ。もちろん、以下のようにVBScriptで書いておけばInternet Explorer 11を起動させることはできる。
> type ie.vbs
Dim ieLauncher
Set ieLauncher = WScript.CreateObject("InternetExplorer.Application")
ieLauncher.Visible = True
ieLauncher.Navigate "https://10.0.0.2/"
ここで、https://10.0.0.2/が、iLO3のウェブユーザーインターフェイスのURIである。リモートコンソール以外の設定をするには、このウェブユーザーインターフェイスは役に立つので、このVBScriptのスクリプトを用意しておく価値はある。
HPは、iLO3に接続するためのスタンドアローンのクライアントソフトウェアであるHPE Lights-Out Standalone Remote Console for Windowsを提供している。電源ボタン類の操作や、仮想ドライブも利用できる。
NetBSD上のLibreOffice CalcでVisual Basic for Application互換のスクリプティングを試してみる
以前に、「LibreOfficeでVBAプログラミング入門」藤井敏則著という本を電子書籍で読んだことがあって、その要点は、StarBasicの後継であるLibreOffice BasicをLibreOfficeのスプレッドシートであるCalcで使う場合にOption VBAsupport 1を最初に書いておけば、Visual Basic for Application (VBA)互換の文法が許容されるようになると言うことであった。LibreOfficeであれば、Windows用であればPythonインタープリターも付属していて自動的にインストールされるので、LibreOffice Basicを選ぶのが良いのかは分からないが、VBA互換というのは多くの人には良いものかもしれない。
しかし、この書籍には、この機能を使うにはJDKを利用できるようにしておかないといけないという記述があった。手元のNetBSD/amd64 11.99.7上のLibreOffice 26.2.5.2では、JDKを設定しておかなくてもVBA互換機能を利用することができた。この書籍は6.4.1.2の時点で書かれているので、もしかしたら変わったのかもしれないが、それなりの期間LibreOfficeを使って、pkgsrcパッケージを保守している感覚では、6.4.1.2より後にJDKが必要なくなったと考えるのは違うような直感もある。
いずれにしても、NetBSD上のLibreOfficeでもVBA互換機能は利用できるのが分かったので、何かの時には役立てられるかもしれない。
Firefoxのcontainer tabsを有効にする
最近のFirefoxは他のタブとcookie等と共有しないcontainer tabsという機能がある。
だが、私の使っているFirefoxでは有効になっていなかった。
NetBSDだけでなくWindowsでも同様である。
いずれにしても、利用したい機能ではあるので、about:configで以下の2つを設定して、有効化した。
privacy.userContext.enabled privacy.userContext.ui.enabled
リモートのサーバーのバックアップを、ローカルネットワーク内のマシンに取得する
とあるVPSサービスを使ったサーバーがあるのだが、これはディスクの残容量が非常に少ない。 なので、そのVPSのディスクにtarballを作って、それを手元にコピーして来るということができない。 しかも、sshでログインできないユーザーだけが読み込みできるディレクトリーやファイルも存在する (rootが所有者で、パーミッションが700なディレクトリーや600なファイルがあると思えば良い)。 ryoonというユーザーがsshでログインできるユーザーであり、 rootユーザーがsshでログインできないユーザーである。
ここで、バックアップ元のVPSのホスト名をremoteserverとし、バックアップ先のサーバーのホスト名をlocalnetserverとしよう。
remoteserverはグローバルIPアドレスを持ち世界中のどこからもアクセスできるが、localnetserverは自宅のローカルネットワーク内にあるサーバーで外部からはアクセスできない。
つまり、localnetserverからremoteserverへsshで接続できるが、逆は不可能である。
以下のようにremoteserverで設定した上で、localnetserverで操作すれば、rootユーザーとしてtarballを作って手元にパイプ経由で取得できる。
以前はssh portforwardingを使って複雑な操作をしていたのだが、そのようなことは不要にできる。
remoteserver$ cat /home/ryoon/sudo-askpass #!/bin/sh echo "sudoコマンドへ渡すryoonユーザーのログインパスワード" remoteserver$ chmod 700 /home/ryoon/sudo-askpass
このsudo-askpassコマンドを使って、sudoコマンドにryoonユーザーのログインパスワードを渡すようにして(つまりsudoコマンドに-Aオプションを与えて)、tarコマンドを実行させる。
また、remoteserverにはUTF-8なファイル名を持つファイルがあり、BSD tarコマンドはこれに対して警告メッセージを表示する。
これがlocalnetserverにパイプ経由で送られて来るtarballに含まれていると不正なtarballになってしまうので、標準エラー出力は/dev/nullに捨てる。
/path/to/parent/directoryというディレクトリー内にあるbackuptargetdirectoryというディレクトリーをバックアップするとすれば、以下のようにlocalnetserverで実行すれば良い。
localnetserver$ ssh ryoon@remoteserver "SUDO_ASKPASS=/home/ryoon/sudo-askpass sudo -A tar cfp - -C /path/to/parent/directory backuptargetdirectory" > backup.tar
私はremoteserverもlocalnetserverも非力なマシンを利用していて、転送量へは課金されない環境なので、圧縮せずtarアーカイブのまま扱っている。
CPUもストレージもパワフルなマシンに移動させた後にxz -T 0 -9で圧縮することになる。
第11世代のIntel Core i7-1180G7というCPUを搭載したPC上のWindows 11で、Intel QSVを使ってFFmpeg 8.1.1でH.264からH.265にトランスコードする
NetBSD-currentでは、IntelのIntegrated GPUはKabyLake Refreshの世代までしかサポートされていないはずである。 もちろん、KabyLake Refresh以前の世代でもFFmpegでH.265にエンコードできる。 だが、思ったより速く処理できない。 NetBSD上だと、VA-API経由なのがいけないのかもしれないし、他の要因なのかもしれない。 Fedora Linuxでも変わったようには見えなかったので、そもそも思ったより速く処理はできるのかもしれない。
と言うことで、手元にある最新のIntel CPUで試してみることにした。 だが、そのCPUを搭載したマシンは他の仕事もあるので、Windows 11 Pro 25H2がインストールされている。 この環境のままで、FFmpegでH.264のビデオファイルをH.265にトランスコードすることにした。
具体的には、CODEX FFMPEGからFFmpeg 8.1.1 (ffmpeg-8.1.1-full_build.7z)をダウンロードして展開し、 以下のようなコマンドでトランスコードすれば良い。 どうやら、-sharedの方の配布物ではちゃんと動かないようだった。
/path/to/ffmpeg-8.1.1/bin/ffmpeg.exe \
-hwaccel qsv \
-hwaccel_output_format qsv \
-i input.mp4 \
-c:a copy \
-c:v hevc_qsv \
-tag:v hvc1 \
-preset veryfast \
-vf vpp_qsv=deinterlace=2 \
-global_quality 30 \
output.mp4
H.264形式のファイルであるinput.mp4は、インターレースなファイルなのだが、そうであっては不便なので、
-vf vpp_qsv=deinterlace=2を指定して、Intel QSVのデインターレースフィルターを使って解消している。
ちなみに、これだと実時間の5から7倍の速度でトランスコードできる。 また、ディスプレイがオフになると、場合によってはエラーが発生する。 ディスプレイを常時オンにする設定をしておけば、エラーは発生しない。
Firefoxで、ユーザー認証付きHTTPプロキシーサーバーへ自動的にログインする
about:configで、signon.autologin.proxy=trueと設定すると、ユーザー認証付きHTTPプロキシーサーバーへのログイン情報を保存している場合に、自動的にHTTPプロキシーサーバーにログインするようにできる。
つまり、ユーザーIDとパスワードを入力する画面(ログイン情報を保存しているので、いずれも入力済み)が表示され、ログインを明示的にする必要がなくなる。
DigitalOceanのSpaces Object Storageに、ソフトウェアをインストールせずにWindowsからアクセスする
はじめに
DigitalOceanのオブジェクトストレージであるSpacesにWindows 11からアクセスしたい。 だが、そのためのソフトウェアを、インストーラーでWindows 11にインストールのは避けたい。 単にアーカイブファイルを展開しただけで使いたい。 かつ、そのWindows 11マシンはユーザー認証付きHTTPプロキシーサーバーを経由しないとDigitalOceanにはアクセスできない。
このような条件で使えるものを探すと、Rcloneが条件を満足するものだった。
まず、Downloadページから、Intel/AMD - 64 BitのWINDOWS用のバイナリーをダウンロードする。 現在のバージョンは、1.74.3なので、rclone-v1.74.3-windows-amd64.zipをダウンロードすれば良い。 これの中にはrclone-v1.74.3-windows-amd64というサブディレクトリーがあるので、それを適当な場所に配置してPATH環境変数に設定しておく。
設定ファイルを作る
Rcloneにはインタラクティブに設定ファイルを生成する仕組みがあるが面倒である
C:\Users\(ユーザーID)\AppData\Roaming\rcloneディレクトリーにあるrclone.confに以下のように記載すれば良い。
シンガポールリージョンを使うので、以下ように設定した。
[sg] type = s3 provider = DigitalOcean access_key_id = XXXXXXXXXXXXXXXXXXXX secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY region = sgp1 endpoint = sgp1.digitaloceanspaces.com acl = private
ここで、DigitalOcean SpacesのコンソールでBucketのAccess Keysを生成した際に表示される「Access Key ID」の値をaccess_key_idに設定し、secret keyの値をsecret_access_keyに設定する。
endpointには、Bucketの「Origin Endpoint」がhttps://BUCKETNAME.sgp1.digitaloceanspaces.comであれば、sgp1.digitaloceanspaces.comを設定する。
同様にregionはsgp1を設定する。
ユーザー認証付きHTTPプロキシーサーバーの情報を設定する
rcloneは、https://のURIへのアクセスには、HTTP_PROXY環境変数が使われないようである。
HTTPS_PROXY環境変数を定義しておく必要がある。
以下のように定義しておく。
HTTPS_PROXY=http://(ユーザーID):(パスワード)@10.11.12.13:8080
rcloneを使ってみる
ファイルをアップロードするには、以下のように実行すれば良い。
> rclone copy FILETOUPLOAD.txt sg:BUCKETNAME
Bucketにあるファイルを一覧する。
> rclone lsl sg:BUCKETNAME
71 2026-06-25 13:44:06.694000000 FILETOUPLOAD.txt
3255961 2026-06-05 15:23:56.000000000 rclone.1
ファイルをダウンロードする。
> rclone copy sg:BUCKETNAME/FILETOUPLOAD.txt .
Mosquittoに、Python Paho MQTT libraryを使ってアクセスする
あらかじめ起動しておいたMosquittoにPython Paho MQTT library (pkgsrc/net/py-paho-mqtt 2.1.0)を使って、Mosquittoの受信したデータを、InfluxDB 1 (pkgsrc/databases/influxdb)に保存する。 なぜInfluxDBに保存するのかと言うと、最終的にMosquittoで受信したデータをGrafana (pkgsrc/www/grafana)で表示するためである。
乱数をMosquittoに送信し、それを購読して、InfluxDBに保存する。
#!/usr/pkg/bin/python3.14
#
# Subscribe mosquitto MQTT server and store data into InfluxDB 1
#
import time
import random
import ssl
from paho.mqtt.enums import MQTTProtocolVersion
import paho.mqtt.client as mqtt
from influxdb import InfluxDBClient
# Connection information for InfluxDB 1.x
INFLUXDB_HOSTNAME = 'localhost'
INFLUXDB_PORT = 8086
INFLUXDB_DATABASE = 'mqtt001'
INFLUXDB_USERID = 'admin'
INFLUXDB_PASSWORD = 'ADMIN_PASSWORD'
# Connection information of MQTT
MQTT_BROKER = 'MYHOSTNAME'
MQTT_PORT = 8883
MQTT_TOPIC = 'topic/0001'
# Instantiate InfluxDB
influx_client = InfluxDBClient (
host=INFLUXDB_HOSTNAME,
port=INFLUXDB_PORT,
username=INFLUXDB_USERID,
password=INFLUXDB_PASSWORD,
database=INFLUXDB_DATABASE
)
# Create database at first at once
influx_client.create_database(INFLUXDB_DATABASE)
# Callback function for MQTT subscription
def on_message (client, userdata, message):
payload = message.payload.decode('utf-8')
timestamp = int(time.time() * 1000000000) # in ns
# debug print
print (f'Received: {payload}')
json_body = [
{
"measurement": "sensor_data",
"tags": {
"device": "dev001_reg700"
},
"fields": {
"value": float(payload)
},
"time": timestamp
}
]
# Write data to InfluxDB
influx_client.write_points(json_body)
# Create MQTT client
mqtt_client = mqtt.Client(
callback_api_version=mqtt.CallbackAPIVersion.VERSION2,
protocol=MQTTProtocolVersion.MQTTv5
)
# Assign callback function on receiving
mqtt_client.on_message = on_message
# Setup TLS connection
tls_context = ssl.create_default_context()
tls_context.verify_mode = ssl.CERT_REQUIRED
mqtt_client.tls_set_context(tls_context)
# Use user ID and password auth
PUBSUB_ID = 'user001'
PUBSUB_PW = 'password001'
mqtt_client.username_pw_set(
username=PUBSUB_ID,
password=PUBSUB_PW
)
# Connect to broker
mqtt_client.connect(
host=MQTT_BROKER,
port=MQTT_PORT,
keepalive=60
)
# Start to subscribe
mqtt_client.subscribe(topic=MQTT_TOPIC)
## debug print
print (f'Subscribe topic: {MQTT_TOPIC}')
# main loop in another thread
mqtt_client.loop_start()
# Testing publishing
while True:
value = round(random.uniform(10, 30), 2)
mqtt_client.publish(MQTT_TOPIC, str(value))
print(f'Published: {value}')
time.sleep(1)
Mosquittoを安全に利用する
はじめに
pkgsrc/net/mosquitto-2.1.2nb1を使う機会があったのだが、なるべく安全な方法で利用したいと思っていた。 TLS証明書を利用して暗号化された経路で通信し、接続にはユーザーIDとパスワードによるユーザー認証を利用し、ユーザー毎にアクセス制限を設定したい。 また、受信した情報はファイルに保存しておきたい。
設定は/usr/pkg/etc/mosquitto.confに書けば良い。
TLS証明書を利用する
Let's Encryptで取得したTLS証明書が使える。 以下のように設定すれば良い。 これは、pkgsrc/security/acmeshを使って取得したものだが、どのような方法で取得しても良い。
certfile /var/db/mosquitto/.acme.sh/MYHOSTNAME.net_ecc/fullchain.cer keyfile /var/db/mosquitto/.acme.sh/MYHOSTNAME_ecc/app4.ryoon.net.key cafile /var/db/mosquitto/.acme.sh/MYHOSTNAME_ecc/ca.cer
接続にユーザーIDとパスワードによるユーザー認証を利用する
ユーザー毎にアクセス制限を設定するためにも、ユーザーIDとパスワードによりユーザー認証をした上で接続する必要がある。 これは、以下のように設定すれば良い。
password_file /var/db/mosquitto/mosquitto.passwd
この中身は、mosquitto_passwd(1)で生成すれば良い。
以下のようにユーザーIDとパスワードをmosquitto.passwdとして用意しておき、mosquitto_passwdコマンドでパスワードをハッシュ化したファイルに変換すれば良い。
ハッシュアルゴリズムも選択できるようだ。
$ cat mosquitto.passwd user001:password001 user002:password002 $ mosquitto_passwd -U mosquitto.passwd $ cat mosquitto.passwd user001:$7$1000$qmp3mSmMucnEwhH3vLWRLquFBPYVQFdALWJwvihS7UI6d2cTKSma77hbTeYFSoJ+M/WTowwzUg7klW+7ClbNng==$YxIm/PFeBoiCN9xBvV9XR1XWK6VqIJrwE432iX7b5ygnoyKKMRSHf9rk/9Lw02Gp9FWfhwnPU8ugzPJUIDzImA== user002:$7$1000$x8FPjLROciMpi7q7OIkV+cdzEf+Eo02kGMuPaWALcoS9Vt7G9J/um376TaGuSDOj76HSvL8HIla8HHQx7DkJGQ==$3V1pN+4ApuSBPtnyzxfSWSnUb01Q0EjQ6LmkAQb+VetHuxCkcJkzEhQyG2Y6F7MWgG1DqfyrJIWCF7pYqHuquQ==
ユーザー毎にアクセス制限を設定する
まず、アクセス制限の内容を読み込むように/usr/pkg/etc/mosquitto.confに以下のように設定する。
acl_file /var/db/mosquitto/mosquitto.acl
その上で、/var/db/mosquitto/mosquitto.aclを以下のように設定する。
user001は全てのトピックに読み書きでき、user002は全てのトピックに書き込みだけできるようにする。
データと投入するクライアントはuser002でアクセスして来ることを想定し、user001で接続することを想定している。
user001は書き込みはできなくても良いのだが。
$ cat /var/db/mosquitto/mosquitto.acl user user001 topic readwrite # user user002 topic write #
受信したデータをファイルに保存する
/var/db/mosquitto/mosquitto.dbに保存するように設定する。
autosave_interval 60 autosave_on_changes true persistence true persistence_file mosquitto.db persistence_location /var/db/mosquitto
その他
他にも設定してある内容は以下のようだ。
# mosquitto daemonを動かすユーザー user mosquitto # 待ち受けるポート istener 8883 # ログとしてsyslogに出力するレベル log_type debug
NetBSDでPostgreSQLサーバーを動かす
NetBSDでPostgreSQLサーバーを動かすのだが、受け付ける接続数を多くしたい。
具体的には/usr/pkg/pgsql/data/postgresql.confでmax_connectionsに100を設定したい。
そうするには、kern.ipc.semmniとkern.ipc.semmnsの数を増加させる必要があるようだ。
# vi /etc/sysctl.conf kern.ipc.semmni=100 kern.ipc.semmns=512
この位に増やせば、以下のように設定できるようだ。
# vi /usr/pkg/pgsql/data/postgresql.conf max_connections = 100
man pageによると、以下のように説明されている。
$ man 7 sysctl
kern.ipc.semmni
Max number of number of semaphore identifiers.
kern.ipc.semmns
Max number of number of semaphores in system.
Microsoftのoutlook.comで作ることのできる電子メールアドレスのドメイン
hotmail.comにアカウントを作ったのはFreeBSDベースのサーバーが使われていると聞いた頃だったような気がする。既にMicrosoftのサービスになっていたような気がするが、まだ20世紀だった気もする。 ローカルパートが4文字で電子メールアドレスを取得できたので、それなりに早い時期に作ったのだろう。 それから、live.comやlive.jp、msn.comといったドメインで電子メールアドレスが作れるようになり、hotmail.co.jpというドメインでも作れるようになった気がする。
今は、hotmail.comに加えて、outlook.comとoutlook.jpというドメインが利用できるようになっている。 だが、それはウェブブラウザーのHTTPのAccespt-Languageヘッダーによることは分かっていた。 Firefoxの各言語設定で、どういうドメインで電子メールアドレスを作れるのか調べてみた。 どれも日本のIPアドレスから調べているので、純粋にAccespt-Languageヘッダーの最初の言語による違いを表にしている。
ちゃんと取得完了できるかというのは、言語をfrに設定して、outlook.frドメインの電子メールアドレスを取得できたので、他もできそうに思う。
| 言語 | ドメイン | ||
| en-us | outlook.com | hotmail.com | |
| en | outlook.com | hotmail.com | |
| ja | outlook.jp | outlook.com | hotmail.com |
| ab | outlook.com | hotmail.com | |
| ach | outlook.com | hotmail.com | |
| aa | outlook.com | hotmail.com | |
| af | outlook.com | hotmail.com | |
| ak | outlook.com | hotmail.com | |
| tw | outlook.com | hotmail.com | |
| sq | outlook.com | hotmail.com | |
| am | outlook.com | hotmail.com | |
| ar-dz | outlook.sa | outlook.com | hotmail.com |
| ar-bh | outlook.sa | outlook.com | hotmail.com |
| ar-eg | outlook.sa | outlook.com | hotmail.com |
| ar-iq | outlook.sa | outlook.com | hotmail.com |
| ar-jo | outlook.sa | outlook.com | hotmail.com |
| ar-kw | outlook.sa | outlook.com | hotmail.com |
| ar-lb | outlook.sa | outlook.com | hotmail.com |
| ar-ly | outlook.sa | outlook.com | hotmail.com |
| ar-ma | outlook.sa | outlook.com | hotmail.com |
| ar-om | outlook.sa | outlook.com | hotmail.com |
| ar-qa | outlook.sa | outlook.com | hotmail.com |
| ar-sa | outlook.sa | outlook.com | hotmail.com |
| ar-sy | outlook.sa | outlook.com | hotmail.com |
| ar-tn | outlook.sa | outlook.com | hotmail.com |
| ar-ae | outlook.sa | outlook.com | hotmail.com |
| ar-ye | outlook.sa | outlook.com | hotmail.com |
| ar | outlook.sa | outlook.com | hotmail.com |
| an | outlook.com | hotmail.com | |
| hy | outlook.com | hotmail.com | |
| as | outlook.com | hotmail.com | |
| ast | outlook.com | hotmail.com | |
| av | outlook.com | hotmail.com | |
| ae | outlook.com | hotmail.com | |
| ay | outlook.com | hotmail.com | |
| az | outlook.com | hotmail.com | |
| bm | outlook.com | hotmail.com | |
| ba | outlook.com | hotmail.com | |
| eu | outlook.es | outlook.com | hotmail.com |
| be | outlook.com | hotmail.com | |
| bn | outlook.com | hotmail.com | |
| bi | outlook.com | hotmail.com | |
| bs | outlook.com | hotmail.com | |
| br | outlook.com | hotmail.com | |
| bg | outlook.com | hotmail.com | |
| my | outlook.com | hotmail.com | |
| ca-valencia | outlook.com | hotmail.com | |
| ca | outlook.es | outlook.com | hotmail.com |
| ch | outlook.com | hotmail.com | |
| ce | outlook.com | hotmail.com | |
| ny | outlook.com | hotmail.com | |
| zh-cn | outlook.com | hotmail.com | |
| zh-hk | outlook.com | hotmail.com | |
| zh-sg | outlook.com | hotmail.com | |
| zh-tw | outlook.com | hotmail.com | |
| zh | outlook.com | hotmail.com | |
| cu | outlook.com | hotmail.com | |
| cv | outlook.com | hotmail.com | |
| kw | outlook.com | hotmail.com | |
| co | outlook.com | hotmail.com | |
| cr | outlook.com | hotmail.com | |
| crh | outlook.com | hotmail.com | |
| hr | outlook.com | hotmail.com | |
| cs | outlook.cz | outlook.com | hotmail.com |
| da | outlook.dk | outlook.com | hotmail.com |
| dv | outlook.com | hotmail.com | |
| nl-be | outlook.be | outlook.com | hotmail.com |
| nl | outlook.com | hotmail.com | |
| dz | outlook.com | hotmail.com | |
| en-au | outlook.com | outlook.com.au | hotmail.com |
| en-bz | outlook.com | hotmail.com | |
| en-ca | outlook.com | hotmail.com | |
| en-ie | outlook.ie | outlook.com | hotmail.com |
| en-jm | outlook.com | hotmail.com | |
| en-nz | outlook.co.nz | outlook.com | hotmail.com |
| en-ph | outlook.ph | outlook.com | hotmail.com |
| en-za | outlook.com | hotmail.com | |
| en-tt | outlook.com | hotmail.com | |
| en-gb | outlook.com | hotmail.com | |
| en-zw | outlook.com | hotmail.com | |
| eo | outlook.com | hotmail.com | |
| et | outlook.com | hotmail.com | |
| ee | outlook.com | hotmail.com | |
| fo | outlook.com | hotmail.com | |
| fj | outlook.com | hotmail.com | |
| tl | outlook.com | hotmail.com | |
| fi | outlook.com | hotmail.com | |
| fr-be | outlook.be | outlook.com | hotmail.com |
| fr-ca | outlook.com | hotmail.com | |
| fr-fr | outlook.fr | outlook.com | hotmail.com |
| fr-lu | outlook.com | hotmail.com | |
| fr-mc | outlook.fr | outlook.com | hotmail.com |
| fr-ch | outlook.com | hotmail.com | |
| fr | outlook.fr | outlook.com | hotmail.com |
| fy | outlook.com | hotmail.com | |
| fur | outlook.com | hotmail.com | |
| ff | outlook.com | hotmail.com | |
| gl | outlook.com | hotmail.com | |
| lg | outlook.com | hotmail.com | |
| ka | outlook.com | hotmail.com | |
| de-at | outlook.com | outlook.at | hotmail.com |
| de-de | outlook.de | outlook.com | hotmail.com |
| de-li | outlook.de | outlook.com | hotmail.com |
| de-lu | outlook.de | outlook.com | hotmail.com |
| de-ch | outlook.com | hotmail.com | |
| de | outlook.de | outlook.com | hotmail.com |
| el | outlook.com.gr | outlook.com | hotmail.com |
| kl | outlook.com | hotmail.com | |
| gn | outlook.com | hotmail.com | |
| gu | outlook.com | outlook.in | hotmail.com |
| ht | outlook.com | hotmail.com | |
| ha | outlook.com | hotmail.com | |
| haw | outlook.com | hotmail.com | |
| he | outlook.co.il | outlook.com | hotmail.com |
| hz | outlook.com | hotmail.com | |
| hil | outlook.com | hotmail.com | |
| hi | outlook.com | outlook.in | hotmail.com |
| ho | outlook.com | hotmail.com | |
| hu | outlook.hu | outlook.com | hotmail.com |
| is | outlook.com | hotmail.com | |
| io | outlook.com | hotmail.com | |
| ig | outlook.com | hotmail.com | |
| id | outlook.co.id | outlook.com | hotmail.com |
| ia | outlook.com | hotmail.com | |
| ie | outlook.com | hotmail.com | |
| iu | outlook.com | hotmail.com | |
| ik | outlook.com | hotmail.com | |
| ga | outlook.com | hotmail.com | |
| it-ch | outlook.it | outlook.com | hotmail.com |
| it | outlook.it | outlook.com | hotmail.com |
| jv | outlook.com | hotmail.com | |
| kab | outlook.com | hotmail.com | |
| kn | outlook.com | outlook.in | hotmail.com |
| kr | outlook.com | hotmail.com | |
| cak | outlook.com | hotmail.com | |
| ks | outlook.com | hotmail.com | |
| csb | outlook.com | hotmail.com | |
| kk | outlook.com | hotmail.com | |
| km | outlook.com | hotmail.com | |
| ki | outlook.com | hotmail.com | |
| rw | outlook.com | hotmail.com | |
| ky | outlook.com | hotmail.com | |
| rn | outlook.com | hotmail.com | |
| tlh | outlook.com | hotmail.com | |
| kv | outlook.com | hotmail.com | |
| kg | outlook.com | hotmail.com | |
| kok | outlook.com | hotmail.com | |
| ko-kp | outlook.com | hotmail.com | |
| ko-kr | outlook.kr | outlook.com | hotmail.com |
| ko | outlook.kr | outlook.com | hotmail.com |
| ku | outlook.com | hotmail.com | |
| lo | outlook.com | hotmail.com | |
| ltg | outlook.com | hotmail.com | |
| la | outlook.com | hotmail.com | |
| lv | outlook.lv | outlook.com | hotmail.com |
| lij | outlook.com | hotmail.com | |
| li | outlook.com | hotmail.com | |
| ln | outlook.com | hotmail.com | |
| lt | outlook.com | hotmail.com | |
| dsb | outlook.com | hotmail.com | |
| lu | outlook.com | hotmail.com | |
| lb | outlook.com | hotmail.com | |
| mk-mk | outlook.com | hotmail.com | |
| mk | outlook.com | hotmail.com | |
| mai | outlook.com | hotmail.com | |
| mg | outlook.com | hotmail.com | |
| ms | outlook.my | outlook.com | hotmail.com |
| ml | outlook.com | outlook.in | hotmail.com |
| mt | outlook.com | hotmail.com | |
| gv | outlook.com | hotmail.com | |
| mi | outlook.com | hotmail.com | |
| mr | outlook.com | outlook.in | hotmail.com |
| mh | outlook.com | hotmail.com | |
| zam | outlook.com | hotmail.com | |
| mix | outlook.com | hotmail.com | |
| mn | outlook.com | hotmail.com | |
| na | outlook.com | hotmail.com | |
| nv | outlook.com | hotmail.com | |
| nd | outlook.com | hotmail.com | |
| nr | outlook.com | hotmail.com | |
| ng | outlook.com | hotmail.com | |
| ne | outlook.com | hotmail.com | |
| no | outlook.com | hotmail.com | |
| nb | outlook.com | hotmail.com | |
| nn | outlook.com | hotmail.com | |
| oc | outlook.com | hotmail.com | |
| or | outlook.com | hotmail.com | |
| oj | outlook.com | hotmail.com | |
| om | outlook.com | hotmail.com | |
| os | outlook.com | hotmail.com | |
| pi | outlook.com | hotmail.com | |
| ps | outlook.com | hotmail.com | |
| fa-ir | outlook.com | hotmail.com | |
| fa | outlook.com | hotmail.com | |
| pl | outlook.com | hotmail.com | |
| pt-br | outlook.com | outlook.com.br | hotmail.com |
| pt-pt | outlook.pt | outlook.com | hotmail.com |
| pt | outlook.pt | outlook.com | hotmail.com |
| pa-in | outlook.com | outlook.in | hotmail.com |
| pa-pk | outlook.com | hotmail.com | |
| pa | outlook.com | hotmail.com | |
| qu | outlook.com | hotmail.com | |
| rm | outlook.com | hotmail.com | |
| ro-md | outlook.com | hotmail.com | |
| ro-ro | outlook.com | hotmail.com | |
| ro | outlook.com | hotmail.com | |
| ru-md | outlook.com | hotmail.com | |
| ru | outlook.com | hotmail.com | |
| sm | outlook.com | hotmail.com | |
| sg | outlook.com | hotmail.com | |
| sa | outlook.com | hotmail.com | |
| sat | outlook.com | hotmail.com | |
| skr | outlook.com | hotmail.com | |
| sc | outlook.com | hotmail.com | |
| sco | outlook.com | hotmail.com | |
| gd | outlook.com | hotmail.com | |
| sr | outlook.com | hotmail.com | |
| ii | outlook.com | hotmail.com | |
| szl | outlook.com | hotmail.com | |
| sd | outlook.com | hotmail.com | |
| si | outlook.com | hotmail.com | |
| ss | outlook.com | hotmail.com | |
| sk | outlook.sk | outlook.com | hotmail.com |
| sl | outlook.com | hotmail.com | |
| so | outlook.com | hotmail.com | |
| son-ml | outlook.com | hotmail.com | |
| son | outlook.com | hotmail.com | |
| nso | outlook.com | hotmail.com | |
| st | outlook.com | hotmail.com | |
| meh | outlook.com | hotmail.com | |
| es-ar | outlook.com.ar | outlook.com | hotmail.com |
| es-bo | outlook.com | hotmail.com | |
| es-cl | outlook.cl | outlook.com | hotmail.com |
| es-co | outlook.com | hotmail.com | |
| es-cr | outlook.com | hotmail.com | |
| es-do | outlook.com | hotmail.com | |
| es-ec | outlook.com | hotmail.com | |
| es-sv | outlook.com | hotmail.com | |
| es-gt | outlook.com | hotmail.com | |
| es-hn | outlook.com | hotmail.com | |
| es-mx | outlook.com | hotmail.com | |
| es-ni | outlook.com | hotmail.com | |
| es-pa | outlook.com | hotmail.com | |
| es-py | outlook.com | hotmail.com | |
| es-pe | outlook.com | hotmail.com | |
| es-pr | outlook.com | hotmail.com | |
| es-es | outlook.es | outlook.com | hotmail.com |
| es-uy | outlook.com | hotmail.com | |
| es-ve | outlook.com | hotmail.com | |
| es | outlook.es | outlook.com | hotmail.com |
| su | outlook.com | hotmail.com | |
| sw | outlook.com | hotmail.com | |
| sv-fi | outlook.com | hotmail.com | |
| sv-se | outlook.com | hotmail.com | |
| sv | outlook.com | hotmail.com | |
| ty | outlook.com | hotmail.com | |
| tg | outlook.com | hotmail.com | |
| ta | outlook.com | outlook.in | hotmail.com |
| tt | outlook.com | hotmail.com | |
| te | outlook.com | outlook.in | hotmail.com |
| th | outlook.co.th | outlook.com | hotmail.com |
| bo | outlook.com | hotmail.com | |
| tig | outlook.com | hotmail.com | |
| ti | outlook.com | hotmail.com | |
| to | outlook.com | hotmail.com | |
| trs | outlook.com | hotmail.com | |
| ts | outlook.com | hotmail.com | |
| tn | outlook.com | hotmail.com | |
| tr | outlook.com | outlook.com.tr | hotmail.com |
| tk | outlook.com | hotmail.com | |
| ug | outlook.com | hotmail.com | |
| uk | outlook.com | hotmail.com | |
| hsb | outlook.com | hotmail.com | |
| ur | outlook.com | hotmail.com | |
| uz | outlook.com | hotmail.com | |
| ve | outlook.com | hotmail.com | |
| vi | outlook.com.vn | outlook.com | hotmail.com |
| vo | outlook.com | hotmail.com | |
| wa | outlook.com | hotmail.com | |
| cy | outlook.com | hotmail.com | |
| wo | outlook.com | hotmail.com | |
| xh | outlook.com | hotmail.com | |
| yi | outlook.com | hotmail.com | |
| yo | outlook.com | hotmail.com | |
| za | outlook.com | hotmail.com | |
| zu | outlook.com | hotmail.com |
mu4eを日本語の電子メールに対して使ってみる
以前、mu4eを使おうとしたことがあるのだが、日本語の電子メールを検索できないだけでなく、正常に表示もできなかったので、あきらめてしまっていた。 結局、Notmuchで試したら何も問題なく動いたので、Notmuchを使い始めて、今に至っている。
いつの間にか、mu4eもpkgsrc/mail/muとしてpkgsrcにも収録されるようになっているので、mu-1.14.1nb1を使ってみた。
いろいろ試してみると、以下のようにすれば日本語の電子メールも正しく扱えるようにデータベースを構築できた。
--support-ngrams trueを追加しておけば、XAPIAN_CJK_NGRAM環境変数を定義しておく必要はないようだ。
$ mu init --maildir ~/.maildir --personal-address my-first@example.com --personal-address my-second@example.org --personal-address my-third@example.jp --personal-address my-fourth@example.net --support-ngrams true $ mu index
Emacsの設定は、特に特別なものである必要はないようだった。 ただ、私にはmu4eのキーバインディングは合わないので、やはりNotmuchを使うことにした。
Adobe Acrobat Readerのオフラインインストーラーを入手する
Adobe Acrobat Readerのオフラインインストーラーを入手したくて、https://get.adobe.com/jp/reader/enterprise/からダウンロードしようとすると、言語をAll Languages (MUI)に設定しないと、Windows 11用の64ビット版はダウンロードできない。
2026年5月18日時点では、以下のURIからダウンロードされるようだ。
以前は、その他のバージョンのダウンロードからオフラインインストーラーを入手できたのだが、今はスタブインストーラーしか入手できないようだ。
ftp.adobe.comの現状
かつては、ftp://ftp.adobe.comにアクセスして、いろいろなものがダウンロードできたのだが、ftp.adobe.comは既にftpではログインできなくなっている。
$ ftp ftp.adobe.com Connected to ftpgen.wip4.adobe.com. 500 OOPS: failed to open xferlog log file:/apps/log/ftp/ftp.adobe.com/xferlog ftp>
のようになるので、ftpdは動いているのだろうが、ちゃんと設定されていないということのようだ。
http://ftp.adobe.com/を開くと、http://download.adobe.com/にリダイレクトされる。
*.adobe.comに有効なDigiCert発行のTLS証明書が設定されているのでhttpsなアクセスもできる。だが、その表示はRed Hat Enterprise Linux Test Pageである。httpdはヘッダーを見る限りApache httpdのようだ。
Google AdSenseに出稿している観察が必要なように思えるウェブサイト
はじめに
このウェブサイトはGoogle Bloggerを使っており、Google AdSenseが簡単に組み込めるので利用している。 ただ、ほとんど収入はない。
Google AdSenseは、様々な人が出稿できるのも、様々な人がウェブサイトに掲載できるのも非常に良いと思っているのだが、詐欺を働くウェブサイトも多数出稿しているのは問題である。 amplifyapp.comやondigitalocean.appのサブドメインでホストされているものは、Windowsでセキュリティー警告が出ているかのような、でもあまり出来の良くないウェブページを表示するようになることがほとんどであるように思う。 初期のGoogleの審査時は無題なウェブサイトで、時間が経ったら詐欺のウェブサイトに自動的に遷移するように変えられているように見える。 以下が例である。 ただ残念なことに、NetBSD上のFirefoxは、OpenGLがハードウェアでサポートされていないと全画面表示をしようとするとクラッシュしてしまう問題があり、時折勝手に全画面表示しようとしてFirefoxをクラッシュさせてしまうのだけが問題である。
こういうものはGoogle AdSenseのコンソールからblockあるいはblock and report adをすれば良いし、自分のウェブサイト以外で見付けたらreportしても良い。 でも非常に手間はかかる。 こんな手間を掛けて、ほぼ存在しない収入しかもたらさないGoogle AdSenseをウェブサイトに掲載しておきたいかと言うと、そんな気持ちは全くしない。 だが、こういう状況を把握できるのは、広告を掲載しているからでもあるので、難しい。
今回話題にしたいのは、そういうものではなく、独自のドメインを持っていて、明らかに存在しない会社をよそおっているウェブサイトである。
こういうウェブサイトは、短命なものもあれば、長い期間存続しているものもあるようである。 明確に意図も分からないが、問い合わせしてしまった人に害をなすのかもしれない。 いくつか記載しておき、後で再確認できるようにしよう。 他にも多数あるが、全てを書くのは面倒だ。
観察すべきウェブサイト
いずれにしてもドメインがおかしいというのはあるのだが、それは前提なので、特別な理由がなければ改めては記載しない。
https://calendarmethodi.com/というウェブサイトは「清流ドレインサービス」という会社のウェブサイトとされていて、住所は〒542-0081 大阪府大阪市中央区 南船場4-4-10で、電話番号は06-6123-9087と記載されている。
2005年に法人化したと書いてあるので、国税庁の法人番号公表サイトに掲載されているはずであるが、当然のように掲載されていない。
そもそも日本のこういう企業が、ITベンチャー企業のような構成のウェブサイトを持っているはずもなさそうだが。
https://dussh-eremino.by/というウェブサイトは、会社名は掲載されていない。スポーツと教育の価値を伝えるビデオ撮影・ビデオ編集という表題である。
掲載されている住所は〒150-0001 東京都渋谷区神宮前6-23-4で、電話番号は+81 3-6427-8891である。
少なくとも日本で国内向けの仕事をしている企業は+81-3のような電話番号の表示をすることはないように思う。
https://gravescarefulpa.com/というウェブサイトは、「快床フロアリング」という会社のウェブサイトとされていて、住所は〒220-0012 神奈川県横浜市西区みなとみらい3-5-1 横浜ランドマークタワー 13階、電話番号は045-221-6678と記載されている。
2004年に設立されたと記載されているので、国税庁の法人番号公表サイトに掲載されているはずだが、当然のように掲載されていない。
これもITベンチャー企業のような構成のウェブサイトで、不自然な感じがする。
https://iqspace.by/というウェブサイトは、「株式会社東京ビデオプロダクション」という会社のウェブサイトとされていて、住所は〒160-0023 東京都新宿区西新宿6-12-7で、電話番号は03-4589-2471と記載されている。
東京ビデオプロダクションという会社はあるようだが、このウェブサイトとは別なようである。https://tokyo-videoproduction.com/なのだが、これはこれで実態が分からない。
いずれにしても、国税庁の法人番号公表サイトに掲載されていない。
そもそも.byドメインであり、これはベラルーシのドメインであり、ちょっと普通に選択肢になる国とは思えないが、人により感覚は異なるかもしれない。
https://neon-route.fun/は、ここまでとは違って英語のウェブサイトである。
もしかしたら私がウェブブラウザーのロケールをen-usにしているからしれないが。
会社名は見付けることができなかったが、事業としては日本国中での荷物の配送のようである。
住所は3-5-7 Shibuya, Shibuya City, Tokyo 150-0002, Japanで、電話番号は+81-3-6824-3322と記載されている。
会社名がない以外にはあやしくないかもしれないが、日本は簡単に日本国内を網羅するような運送業を簡単に始めたり維持したりできるような恵まれた国ではないはずな気もする。
https://pluperfectttyvo.com/は日本語のウェブサイトで「緑峰インフラ建設」という会社のウェブサイトとされている。
これもITベンチャー企業のような構成で、不自然な気がする。
これ限らないが、式会社等の法人格の記載もなく、日本の会社のウェブサイトとしては不自然な気もする。
1992年設立とのことだが、国税庁の法人番号公表サイトに掲載もない。
住所は〒460-0003 愛知県名古屋市中区錦3-15-20 名古屋三越栄店 本館 10階と記載があるが、デパートの10階に道路工事専門の建設会社が入居しているとは思えない。
電話番号は052-956-4488と記載されている。
Googleで社名を検索すると、大阪で40年歴史があるというウェブサイトや、名古屋の会社であるがURIの違うウェブサイトも検索結果に表示される。
ただ、そのURIに接続はできなかったが。
https://rhythmmovebeat.com/は英語のウェブサイトで「Mado Hikari」という会社のウェブサイトとされている。
住所は9-2-7 Akasaka, Minato-ku Tokyo 107-0052であり、電話番号は+81 3 3586-9127と記載されている。
そもそも英語だというのが不自然だが、私のウェブブラウザーのロケールの問題かもしれない。
https://seatescapechill.com/は英語のウェブサイトで「Yasuragi Seiso」という会社のウェブサイトとされている。
住所は2-9-15 Komagome, Toshima-ku, Tokyo 170-0003であり、電話番号は+81 3 3917-5841と記載されている。
英語だとこういう雰囲気でも良いのかなと思ってしまわない訳ではないが、おそらく本当のウェブサイトではない気がする。
https://shillultramoder.com/は日本語のウェブサイトで「シル・ウルトラモーダン・ドレインソリューションズ」という会社のウェブサイトとされており、住所は東京都江東区有明2-1-1 有明ガーデンズオフィスタワー 8階、電話番号は03-5634-8890と記載されている。
ただウェブサイトのタイトルは「スーズ」となっている。
ドメインは社名と合っているが、「客服マネージャー」という用語があり、まあ普通の日本の企業とは感じられない。
おわりに
しばらくしたら再度見てみるようにしよう。
Lightning to USB Type-CなLightningヘッドホンアダプターを使ってみる
手元に、いくつもLightning接続のイヤホンを持っている。これは、iPhone 14以前用のイヤホンであり、Lightning接続のEarpodsということである。 昔のiPhoneにはEarpodsが付属していたし、サードパーティーのイヤホンを買ったこともあったようだ。
iPhoneに限らずAndroidスマートフォンでもφ3.5mmイヤホン端子がなくなってしまい、φ3.5mmイヤホン端子をUSB Type-Cに変換するDAC内蔵の変換器を使っていたのだが、イヤホンというのは消耗品なので、φ3.5mmイヤホン端子のイヤホンが手元になくなって来てしまった。 なので、結果的に手元に多数残っているLightning接続のイヤホンをUSB Type-C端子に接続して利用したくなった。
ウェブで検索しても、どういう変換デバイスを利用すれば良いのかは明確ではないように感じた。 Apple製の汎用のLightningからUSB Type-Cへの変換器 (USB-C - Lightningアダプタ)は間違いなく利用できるはずだ。ただし、外部ディスプレイアダプターとは組み合わせることができないらしい。 サードパーティーの製品は、様々な機能の組み合わせがある。充電の可否、オーディオサポートの可否(今回気にしているのはこれだ)、データ通信の可否、CarPlayサポートの可否、USB OTGサポートの可否、マイクサポートの有無などである。
だが、どこにもどういうUSBデバイスとしてLightning Earpodsが見えるかは明確に書かれていないようだった。 また、オーディオサポートをしているサードパーティーのデバイスでもDAC搭載と書いているものも書いていないものもあり、実際にどういう仕様のデバイスが存在して使えるのかは分からない。
まず、サードパーティーの変換器について、私が理解した内容を書いておきたい。 ただし、私はCarPlayは利用していないし、マイクサポートのないサードパーティー変換器も試していないので、それについては分からないので、書いていない。
- オーディオサポートがある変換器だけがLightning Earpodsをイヤホンとして利用するのに利用できる
- USB OTG対応でないと、USB接続のヘッドホンのようなUSBデバイスを接続するのには利用できない。
- 充電が可能なものだけが、USB Type-C接続での充電に利用できる。
- データ通信が可能なものだけが、PCに接続してiPhone内の写真を取り出したり、WindowsのiTunes appを使ってiOSのアップデートやバックアップの取得をするのに利用できる。
Apple純正の変換器は、説明文に記載があるように、充電もデータ通信もマイクサポートを含んだオーディオサポートもある。 サードパーティーではこの組み合わせの商品はないように見えた。 ただし、USB OTGサポートはない。 エラーが発生するので、Ligtning Earpodsが接続されていることを前提に動作しているのかもしれない。
どのように認識されるか
どのように認識されるかと言うと、NetBSDのdmesgを示すのが私には一番分かりやすい。
Apple純正の変換器にあらかじめLightning Earpodsを挿した上で、PCに接続すると、以下のようになる。
uaudio0 at uhub8 port 4 configuration 1 interface 0 uaudio0: Generic (0x0020) CtoL Audio (0x0b21), rev 2.00/1.00, addr 4 uaudio0: audio rev 1.00 audio2 at uaudio0: playback, capture, full duplex, independent audio2: slinear_le:16 2ch 48000Hz, blk 11520 bytes (60ms) for playback audio2: slinear_le:16 1ch 48000Hz, blk 15360 bytes (160ms) for recording spkr3 at audio2: PC Speaker (synthesized) wsbell at spkr3 not configured uhidev3 at uhub8 port 4 configuration 1 interface 3 uhidev3: Generic (0x0020) CtoL Audio (0x0b21), rev 2.00/1.00, addr 4, iclass 3/0 uhid11 at uhidev3: input=2, output=0, feature=0
Apple純正の変換器にあらかじめLightning Earpodsを挿さずに、PCに接続すると、以下のようになる。
uhub8: device problem, disabling port 4
サードパーティーの変換器をPCに接続すると、以下のようになる。 この場合には、あらかじめLightning Earpodsを挿してあっても挿してなくても変化はない。
uaudio0 at uhub8 port 4 configuration 1 interface 0 uaudio0: Generic (0x0020) AB13X USB Audio (0x0b21), rev 2.00/1.00, addr 4 uaudio0: audio rev 1.00 audio2 at uaudio0: playback, capture, full duplex, independent audio2: slinear_le:16 2ch 48000Hz, blk 11520 bytes (60ms) for playback audio2: slinear_le:16 1ch 48000Hz, blk 12480 bytes (130ms) for recording spkr3 at audio2: PC Speaker (synthesized) wsbell at spkr3 not configured uhidev3 at uhub8 port 4 configuration 1 interface 3 uhidev3: Generic (0x0020) AB13X USB Audio (0x0b21), rev 2.00/1.00, addr 4, iclass 3/0 uhidev3: 1 report ids uhid11 at uhidev3 reportid 1: input=2, output=0, feature=0
いくぶんか違いはあるが、基本的にはVID/PID=0x0020/0x0b21というUSB 2.0なUSB Audio 1.0デバイスとして認識されるようだ。 また、サードパーティーのイヤホンを接続しても特に違いはない。
このサードパーティーの変換器はDAC搭載と書かれているが、おそらく書いていなくてもDACは搭載されていると考えて良いような気がする。
記名式Suicaに定期券を割り当てられなくなった
通勤定期券を記名式Suicaのカードで利用している。 その通勤定期券を継続購入しようとしたのだが、券売機に挿入してもどうやっても認識してもらえなかった。 既存の通勤定期券は問題なく利用できるし、チャージ残高を確認もできるので、NFCチップが破損している訳ではないのは分かった。
多機能券売機では、定期券の継続購入を画面上で選んで、指示通りSuicaをを挿入すると、利用できないSuicaであると画面上に表示される。 指定席券売機では、定期券の購入を画面上で選んで、定期券として利用中のSuicaを挿入すると継続購入の画面へ遷移できるはずなのだが、Suicaを挿入すると、硬貨の投入口が閉じるのでSuicaが挿入されたことは認識されるのだが、Suicaを投入するようにという画面から先には進めない。
どうにも分からなかったので、みどりの窓口に行ったところ、カード裏面上部にある、2箇所の幅広の黒いバーが消えかけているために、認識されないとのことだった。 NFCとしての機能には全く問題がないとのことだった。
みどりの窓口で新しいSuicaへ無料で移行してもらったのだが、みどりの窓口の機器もその2箇所の黒いバーがないと認識しないようで、黒色の油性ペンでバーを描いてから処理していた。
裏面下部のSuicaの番号が消えてしまって交換になったことがあったので、番号の部分が消えないような財布に入れていたのだが、それでは不十分だったらしい。 区間の情報が見えるのが好きではないので、裏側が目に入るように財布にSuicaを入れていたのだが、それは良くないと言うことなのだろう。 区間の印字された表面が見えるように財布に入れるようにしよう。
mltermで、TERM=xterm-256colorを自動的に設定させる
いまだにterminal emulatorとして何を使えば良いのか良く分からないでいる。 別に英語と日本語が表示できれば良いし、贅沢を言えばヨーロッパの言語にあるアクセント記号が付いたラテンアルファベットが表示されれば、ほぼ十分だ。 キリル文字で書かれたロシア語を読みたい時はあるが、Firefoxで表示されれば良く、terminal emulatorで表示できなくて困ったことはない。
さすがに今になってktermというのも気が引けるし(UTF-8にも対応しているバージョンがあるので、悪い選択肢ではないはずではある)、xtermは何だか使いにくい気がしてしまう。 かと言って、vteベースのgnome-terminalを使って快適な感じもしない。 と言うことで、消去法的ではあるのだが、mltermを使っている。
mltermで1つ不満だったのは、256色表示ができるはずなのに、それを有効化できていないということだった。
Changelogを眺めてみると、~/.mlterm/mainに、termtype=xterm-256colorという行を追加すれけば良かった。
これによって、mltermでecho $TERMを実行すると、xterm-256colorと表示されるようになり、256色表示もできるようになる。
無料でキリスト教の聖書を読む
残念ながら生粋の無神論者なので、宗教を信じていないし、神に祈らないし、宗教の儀式にも付き合い以上の関与もしないのだが、宗教がどういうものなのかには興味がある。 岩波講座 宗教を斜め読みする程度の興味しかないのだが。
とは言っても、いくつか聖典的なものは読んでおきたいと言う気持ちは持っていた。 と言うことで調べてみると、旧約聖書と新約聖書はYouVersionというAndroid appで無料で読むことができるらしいと分かった。
実際にインストールして、ログインしてみると、以下のような日本語訳の聖書を読むことができた。英語以外にもネパール語やビルマ語、ペルシア語、スワヒリ語などでも聖書を読むことができるようだ。
- 新共同訳 (聖書 新共同訳)
- 口語訳 (聖書 口語訳)
- 口語訳 (japnese: 聖書 口語訳)
- JA1955
- JCB (リビングバイブル)
- ERV訳 (ERV訳 --読みやすい聖書--)
- NJB (新改訳)
口語訳が2つあるのは良く分からない。創世記の最初の部分だけ見ると同じな気がするが、ちゃんと比較はしていない。
とりあえず新共同訳を読むのが良いように見えたので、これを読んでみることにしよう。 ダウンロードしてみると、「聖書 新共同訳 旧約聖書続編付き」と書かれているので、旧約聖書の外典も含まれているのであろう。 少なくとも新共同訳は朗読機能もあって、text to speech機能ではなく人間が朗読しているようだった。 これで聞いてみるのも良いかもしれない。
旧約聖書とは言ってもユダヤ教的視点で日本語訳されているのではないような気がするので、あくまでキリスト教の聖書一式が読めるのだというのが現時点での理解である。
w3mでウェブを検索する
GoogleやBingがJavaScriptが使えないと検索できなくなって久しい。 w3mでウェブを検索するのが難しくなってしまった。
DuckDuckGoはJavaScriptなしでも検索できる。 以下のように実行すれば、検索画面を開くことができる。
$ w3m https://duckduckgo.com/
pkgsrc/print/py-pdfを使って、PDFファイル中のハイパーリンクを抽出する
とある自治体が法令に基づいて公開しているPDFファイル一式を入手したかったのだが、そのPDFファイルへのリンク先が1つのPDFファイル中のハイパーリンクという形でしか提供されていなかった。 と言うことで、pkgsrc/textproc/py-pdfからpy314-pdf-6.7.0をインストールして抽出することにした。
と言うことで、以下のようなスクリプトを書いてみた。
$ cat extract-hyperlinks.py
#!/usr/pkg/bin/python3.14
#
# Usage:
# $ cd /usr/pkgsrc/textproc/py-pdf
# $ make install
# $ ./extract-hyperlinks.py target.pdf > links.txt
# $ wget -i links.txt
import sys
from pypdf import PdfReader
pdfpath = sys.argv[1]
reader = PdfReader(pdfpath)
for page in reader.pages:
if '/Annots' in page:
for annot in page['/Annots']:
annotation = annot.get_object()
if "/A" in annotation and "/URI" in annotation["/A"]:
uri = annotation["/A"]["/URI"]
print(f"{uri}")
以下のように利用すれば良い。
$ python3.14 extract-hyperlinks.py ../hyperlinks.pdf > links.txt
Metabaseでlog4jを使ってログを出力する
pkgsrc/www/metabaseを最新にアップデートするのは怠けているのだが、手元ではほぼ常に最新版を使っている。
pkgsrc/www/metabaseのインストールするrcスクリプトには、log4jによりログを出力する設定が含まれている。
また、そのrcスクリプトが利用するlog4j2.xmlという設定ファイルの雛形も含まれている。
なので、pkgsrcからMetabaseをインストールすれば、/var/log/metabase/metabase.logに、設定されたようにログが出力される。
log4jによりログを出力するのは、私の用途では重要なのだが、少なくとも私がMetabaseを使い始めた時にはあまり情報がなかったように思う。 もうずいぶんと前の話なので、今は十分に説明するウェブページが世間にはあるようだ。
Grafanaには、BASIC認証を設定できない
Grafanaを簡単にどういうものか説明できるほど良く理解していないが、私の使い方で言えば、時系列データを保存しているデータベースがあって、その内容を折れ線グラフでプロットして、その値によってアラートを出すように設定できるダッシュボードのウェブページである。 ビジネス・インテリジェンス・システムのようなものであるような気もする。
私は、少し古いがpkgsrc/www/grafanaから11.0.0をインストールし、データベースは、pkgsrc/databases/influxdbを手元でアップデートしてInfluxDB 1.8.10をインストールして使っている。 ウェブサーバーがないと使えない訳ではないと思うが、Apache httpdをリバースプロキシーとして利用している。
Grafanaには、もちろんログイン機能があって、ログインしなければダッシュボードを見ることはできない。 そもそもやりたかったのは、そもそもGrafanaのログイン画面へ行くこともできないようにすることだった。 そうだとすると、一番簡単なのは、BASIC認証を設定することであるように思えた。
しかし、BASIC認証は使えない。 と言うのは、ユーザー追加をする際に、Grafana自体が自身のAPIを利用する場合にBASIC認証を利用しているからであるようである。 Apache httpdでBASIC認証した上で、ユーザー追加をすると、追加したユーザーでしかログインできなくなるばかりか、そのユーザーからログアウトすることもできなくなってしまう。
おとなしく、Grafana備え付けのログイン画面を使っておくのが一番良さそうである。
Windows 11でwgetを使ってhttpsなウェブサイトから情報を取得する
Windows 11でhttpsなウェブサイトから情報を取得したいのだが、ウェブ上にある多くの古いwgetのWindows用のバイナリーは、TLS 1.2以降に対応しておらず私の接続先には利用できなかった。 また、このwgetを動かす環境は、ユーザー認証付きのHTTPプロキシーサーバーを経由しないとイントラネット外のウェブサイトへ接続することはできない。 このような状況でWindows 11のマシンでwgetを利用する方法を書いておく。
wgetのバイナリーを入手する
Windows binaries of GNU Wgetで公開されているwgetバイナリーは、新しいTLSのバージョンにも対応していた。 他にもおそらく使えるバイナリーを配布している所はあるかもしれないが、具体的には確認していない。
具体的には、バージョン1.21.4のバイナリーをダウンロードして利用した。
設定値をファイルに格納する
ユーザー認証付きHTTPプロキシーサーバーを利用する必要があり、これらを毎回コマンドライン引数として入力するのは煩雑になる。 また、パスワードをコマンドライン引数として与えるのも、パスワードが画面上に表示されてしまい、うれしくない。
ということで、設定値はwgetrc.txtというテキストファイルに予め記入しておくことにした。
その内容は以下のようにした。
> type wgetrc.txt use_proxy=on http_proxy=http://10.1.1.1:8080/ https_proxy=http://10.1.1.1:8080/ proxy_user=(YOUR USERID) proxy_password=(YOUR PASSWORD) check_certificate=off
ここで、check_certificate=offはTLS証明書のチェックを省略している。
これは良い習慣ではない。
実行例
このwgetrc.txtファイルを使いつつ、ウェブサイトから情報を取得するには、以下のようにすれば良い。
> wget.exe --config=wgetrc.txt -nc -r https://www.ryoon.net/
MetabaseをOracle databaseへクエリーするAPIサーバーとして利用する
Oracle databaseに各クライアントPC上のMicrosoft Excel VBAからアクセスしようとすると、Oracle Instant Clientのインストールが必要になる。
ODBC経由だとデータソースの設定が必要になり、皿に初期設定は手間がかかるが、Excel VBAからアクセスする程度であれば、ADO DB経由でも問題ない。
この場合には、tnsnames.oraに接続先を設定する必要はなく、接続文字列に直接接続先を記載すれば良いので、とりあえずOracle Instant Clientをインストールさえして置けば良い。
ただ、Oracle社の用意しているOracle Instant Clientのインストーラーは冗長かつ何をしているか分かりにく、インストールに失敗するとインストーラーはまた別のディレクトリーにインストールしてしまうので、同じ緩急を作るのも面倒だ。
これについては、必要なファイルと処理のみを解析して抜き出したWindowsバッチファイルを用意しているので、個人的には解決はしているが…。
とは言っても、あくまでWindowsバッチファイルであり、環境変数の設定は手作業でするようになってもいるので、インストールには手間がかかる。 そもそもOracle Instant Clientをインストールしない方法を探していた。
過去にはJRubyからJDBCを使ってOracle databaseにアクセスし、結果を返すサーバーを書いてもいたのだが、利用者の認証や権限設定も欠けており、起動させておくのも面倒なので、実用できてはいなかった。
metabaseのドキュメントを読んでいたら、アクセストークンを発行して、それによりREST APIでMetabaseに登録されたデータベースにクエリーを投げて、その結果をJSONやCSV形式で返してくれる仕組みがあった。 今回は本来は使うべきであるセッションIDは使わないのだが、curlコマンドで試した内容を書いておく。
アクセスする例
最初に、前提となる情報を書いておく。
- 今回使うユーザーグループ権限のAPIキー
- mb_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
- MetabaseサーバーのURI (都合上HTTPでしかアクセスできない)
- http://mbserv.example.com/
- アクセスするデータベースの番号 (JDBC経由で接続できるようにウェブUIで設定されている)
- 2
このMetabaseサーバーが設置され、クライアントのWindows PCが接続されているイントラネットは、イントラネット外の80版ポートに接続するにはHTTPプロキシサーバーを経由する必要がある。 だが、イントラネット内にあるMetabaseサーバーにはHTTPプロキシサーバー経由ではアクセスできないので、HTTPプロキシサーバーを掴ない設定も重要である。
グループの一覧を取得する。 これはOracle databaseには無関係なMetabaseの機能に対する問い合わせである。
$ curl --noproxy mbserv.example.com -H 'x-api-key: mb_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=' -X GET 'http://mbserv.example.com/api/permissions/group'
MBQL JSON形式でSQLのクエリーの結果を取得する。 結果はMBQLのJSON形式であり、前半にデータが、後半にコラム情報が収録されており、Excel VBAであればVBA-FastDictionaryとVBA-FastJSONを使えば解析しデータを利用するのが幹太になる。
$ curl --noproxy mbserv.example.com -H 'x-api-key: mb_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=' -H 'Content-Type: application/json' -X POST 'http://mbserv.example.com/api/dataset' -d '{ "database": 2, "native": { "query": "select * from myschema.MYTABLE1" }, "type": "native"}'
CSV形式でSQLのクエリーの結果を取得する。
$ curl --noproxy mbserv.example.com -H 'x-api-key: mb_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=' -H 'Content-Type: application/x-www-form-urlencoded' -X POST 'http://mbserv.example.com/api/dataset/csv' -d 'query={ "database": 2, "native": { "query": "select * from myschema.MYTABLE1" }, "type": "native"}'
これで、Oracle Instant Clientをインストールせずに、クライアントWindows PCからOracle databseの内容を参照できるようになった。
MetabaseでActive Directory認証する際に、ユーザーIDでも電子メールアドレスでも、ログインユーザーIDとして使えるようにする
MetabaseでActive Directory認証するで書いておいたような設定でMetabaseを運用して来たのだが、Metabaseのログイン画面にはログインユーザーID欄に「ユーザーネームまたはメールアドレス」と書かれているためか、電子メールアドレスを入力してログインできないという苦情を言う人が多いという問題があった。 駄目だったらユーザーIDでログインできるか試せば良いと私などは思うが、そんな発想にならない人ばかりに囲まれている。 そもそもなぜそういう発想をすることができるかということも説明しても理解してもらえないので、ユーザーIDでも電子メールアドレスでもログインするしかないだろう。
と言うことで、Active Directoryの項目を調べてみると、以下のような項目が使えそうであった。
- ユーザーIDは
sAMAccountNameという項目であり、既に利用している。 - ユーザー認証に利用できる電子メールアドレスは、
userPrincipalNameという項目になっているらしい。 - 電子メールアドレスは
mailという項目にも格納されているらしい。
と言うことで、これら3つのいずれかをloginに使えば良さそうだ。
以下のように設定していたので、変更しよう。
(&(sAMAccountName={login}))
変更後は以下のようにした。
(&(|(sAMAccountName={login})(mail={login})(userPrincipalName={login}))(objectClass=user))
これで、電子メールアドレスでもユーザーIDでもいずれでもログインIDとして与えてもログインできるようになった。
文化庁の自由利用マーク
文化庁の自由利用マーク というのがあって、 ITmediaの記事「文化庁、CCライセンスを支援へ 独自ライセンス構築は断念」 によると、2013年の時点で普及はあきらめているらしい。 文化庁のウェブページを見ても、そもそも「コピーOK」「障害者OK」「学校教育OK」とい...
-
Arvel USBシリアルケーブルSRC06-USBをWindows 10 x86_64で使う で、Arvel (現バッファロー) のSRC06-USBというFTDIのチップを使ったUSB to Rs-232CアダプターをWindows 10で使う話を書いたが、同じSRC...
-
※ Windows 11でも使える記事 を書いた。 Arvel SRC06-USB USBシリアルケーブルというUSBシリアル変換器を持っている。 これにはFDTI製のUSBシリアル変換チップをい利用していて、USB VendorID/ProductID=0x...
-
This post will be irrelevant for Google Workspace after 2022-10-04 because OAuth out-of-band (OBB) flow will be deprecated. See my newe...









