As I Please

MTのいんすとーるの練習と、その他びぼうろく・・・

openvpn 2.6 から 古いserverへの接続

client側を最新のものにしたら 2.6まで上がったが、サーバー側が2.xで上げずにいたら、接続できなくなっていた。
エラーを見て、configに

data-ciphers AES-256-GCM:AES-128-GCM:AES-128-CBC:AES-256-CBC
を追加。
これまでは、'cipher AES-256-CBC' だったが、これはもうdeprecatedのようで、今は'data-ciphers'を使うらしい。

denyhosts から fail2ban に乗り換え

sshd へのアクセスが多すぎるので denyhosts を入れていたが、最近は sendmail に AUTH LOGIN, AUTH DIGEST-MD5,AUTH CRAM-MD5 でのちょっかいも多いので、両方一度に面倒をみてくれそうな fail2ban に入れ替えることに。

freebsd系なので、libwrap 込みでcompile されているバイナリが多いのでそちらに。
linux系は ipfw あたりのルールの追加などを動的に行うのがデフォルトのようだが、ちょっとそれも怖いかな。

ports で入れようとしたら、いろいんなバージョンの freebsdだと、0.22,1.0,1.1 といろんなバージョンが入って微妙に挙動が違いそうなので、もうこれは諦めて git で最新版を入れることにする。
pythonも3系の新しめ(3.8以降)が入っていれば良さそうなので、ありがたい。

opendkim in FreeBSD-9

Googleが メールについてDMARC対応を求めるという話があるようで、数は少ないとはいえ @gmail.com 宛のメールの配信が出来なくなるのは困るので、spf,dkimを入れることを考える。
と言っても、すでにspfは対応しているので、次は dkimということに。
まず opendkim のインストール。 ports はもうろくに使えないので、sourceから持ってきてインストールする。

sourceは opendkim のダウンロードサイトから。https://sourceforge.net/projects/opendkim/files/
または、githubのhttps://github.com/trusteddomainproject/OpenDKIMから。
最新のものが、2.10.3 、最終更新が 2015-05-12 ということでちょっと古すぎるので嫌な予感が。

単純に ./confugire では、やはりダメ。openssl まわりの headerファイルや libが不整合と言ってくる。
先日、openssl は 1.1.1を入れたのでこれらは想定していたが、patchがやはりあって、そのまんま
opendkim-2.10.3-openssl-1.1.1.patchがひっかかる。これを当てればいい、と思ったが、良く見ると同じディレクトリにopendkim-2.10.3-openssl-1.1.1.patch.r2がある。どうもこっちのほうが新しいので、こちらを patch -p1 で当てる。

これでも ./configure 一発とは行かず、
'./configure --disable-shared --with-openssl=/usr/local/openssl111'
で、やっと通った。
で、make と思ったら、これがまた、

WARNING: 'aclocal-1.13' is missing on your system.
のようなエラーが出た。aclocalは 1.15が入っているのに、なぜかこんなエラーが?
ここは googleに聞いてもすぐには出てこなかったが、いまどきなので claude.ai に聞いてみたら、aclocal をインストールして(これはやってるので飛ばして)、その先で、
その後、opendkimのソースディレクトリで以下を実行して設定ファイルを再生成してください:

aclocal
autoconf
automake --add-missing

これで設定ファイルが更新され、makefileが再生成されるはずです。

とのこと。何と、これで Makefileが再生成されて、その後は一発で make が通った。
最近は install 系の話は chatgpi よりも claude.ai の方が良い答えを返してくれると実感している。

amazonlinux2023への selenium のインストール

先に動いていた amazonlinux2023 上での selenium の環境も。

ubuntuベースで同じかと思っていたけれど、いろいろどうも違うらしい。

# rpm -q --queryformat '%{VERSION}' system-release
2023.1.20230825
venv python version: 3.11.2
selenium 4.13.0
ChromeDriver 117.0.5938.149
path: /usr/lib64/chromium-browser/chromedriver

で、次のテストプログラム。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
options.add_argument("/usr/lib64/chromium-browser/chromedriver")

driver = webdriver.Chrome(options=options)

selenium の ubuntu へのインストール

cloude3.1, chatgpt に聞いても、

apt install chromium-chromedirver
pip install selenium
あたりを言ってくるが、python から呼び出すと、
selenium.common.exceptions.WebDriverException: Message: unknown error: no chrome binary at /usr/bin/google-chrome
と、ちゃんとあるバイナリファイルが無いとばかり言われて、、、いくら見ても、ちゃんとバイナリはシンボリックリンク先も含めてあるし、単体では起動するので、、、原因はよく分からず。

普通に googleで聞くと、import chromedriver_binary と言ってくるので、こちらを install。

pip install chromedriver-binary
ところが、これだと、
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 121
Current browser version is 119.0.6045.159 with binary path /usr/bin/google-chrome
と、どうも version 121 を取ってきて、119よりも新しすぎてダメらしい。
ということで、バージョンを下げて、
pip install chromedriver-binary==119.0.6045.159
とやったが、これはどうも無いらしい。
もうちょっとだけ古い、
pip install chromedriver-binary==119.0.6045.105
としたら、これが venvの環境にインストールされて、無事動いた。

次の環境で:
Ubuntu 22.04.2 LTS
python(venv) : 3.10.12
selenium 4.13.0
chromedriver-binary 119.0.6045.105.0
/usr/bin/chromedriver --version: ChromeDriver 119.0.6045.159
/usr/bin/google-chrome --version: Google Chrome 119.0.6045.159

以下のサイトを参照。ありがとうございます。
https://note.com/yuu________/n/n48b3530b0fe6

IIJmio の3つのsimで容量シェアしたときに一番安い組み合わせ

いま3つのsim契約をしていて、データ容量シェアしている。使わなかった分は翌月に持ち越しできるので、容量オーバーにならないよう細かに契約料の変更をしていけば、わずかに(200円程度?)は無駄を無くせる。
で、1sim契約あたり、2,5,10,15,20 Gの契約ができて、どの組み合わせが最適(最安)か?というのを計算しておく。
3つの契約で5パターンのコンビネーションで、重複ありのケースは35通りあるようで、そのおのおののケースの契約総容量と金額を作って、金額の順にソートしていったもの。
〇が意味があるところで、×は他の契約パターンで金額が逆転してしまうので選択してはいけないケース。
パターンは、0=2G,1=5G,2=10G,3=15G,4=20G を意味している。
2023/09での金額は、2G=850,5G=990,10G=1500,15G=1800,20G=2000

家族での利用料を見ると月に 7Gから18G あたりをうろちょろしているので、
9G,12G,15G,17G,20Gあたりの契約をうろちょろすることになるか?
あんまり節約にもなってないかもですが、気持ちだけ。

パターン 総容量 契約額 1Gあたり単価(契約額/総容量)
〇 000 6 2550 425.0
〇 001 9 2690 298.8888888888889
〇 011 12 2830 235.83333333333334
〇 111 15 2970 198.0
× 002 14 3200 228.57142857142858
〇 012 17 3340 196.47058823529412
〇 112 20 3480 174.0
× 003 19 3500 184.21052631578948
〇 013 22 3640 165.45454545454547
〇 004 24 3700 154.16666666666666
〇 113 25 3780 151.2
〇 014 27 3840 142.22222222222223
× 022 22 3850 175.0
〇 114 30 3980 132.66666666666666
× 122 25 3990 159.6
× 023 27 4150 153.7037037037037
× 123 30 4290 143.0
〇 024 32 4350 135.9375
× 033 32 4450 139.0625
〇 124 35 4490 128.28571428571428
× 222 30 4500 150.0
× 133 35 4590 131.14285714285714
〇 034 37 4650 125.67567567567568
〇 134 40 4790 119.75
× 223 35 4800 137.14285714285714
〇 044 42 4850 115.47619047619048
〇 144 45 4990 110.88888888888889
× 224 40 5000 125.0
× 233 40 5100 127.5
× 234 45 5300 117.77777777777777
× 333 45 5400 120.0
〇 244 50 5500 110.0
× 334 50 5600 112.0
〇 344 55 5800 105.45454545454545
〇 444 60 6000 100.0

pythonで、組み合わせを一気につくれる関数が使えるので、それで。

comb = itertools.combinations_with_replacement('01234', 3)

ロバート・B・パーカーとヘニング・マンケル

2人が亡くなってしまって新作が読めなくなってしまい、同じような作風の作家がいればなぁとおもって、ふとchatGPTに聞いてみた。

ロバート・パーカーとヘニング・マンケルの作風に似た作家を挙げるとしたら、以下の作家が考えられます。

マイケル・コナリー(Michael Connelly)- コナリーの作品は、主人公が真実を求めて調査を進める様子が描かれ、社会問題にも取り組んでいます。また、人間ドラマが重視されている点もパーカーやマンケルと共通しています。代表作に「リンカーン弁護士」などがあります。

イアン・ランキン(Ian Rankin)- ランキンの作品は、主人公がスコットランド警察の刑事として、犯罪事件を追う様子が描かれます。彼の作品は、社会問題や人間ドラマがテーマとなることが多く、マンケルの作品と共通する要素が見られます。代表作に「リース・シリーズ」などがあります。

ジョン・サンフォード(John Sandford)- サンフォードの作品は、主人公がミネソタ州警察の刑事として、犯罪事件を解決する様子が描かれます。彼の作品は、社会問題に取り組んだり、主人公の内面を描写することが多く、パーカーやマンケルと共通する要素が見られます。代表作に「プリイ・プリー・プリィ」などがあります。

以上のように、これらの作家の作品には、パーカーやマンケルの作品と似た要素が見られます。ただし、それぞれの作家が独自のスタイルを持っており、個性的な作品を多く発表しています。

とのこと。備忘録として。
マイケル・コナリーは、DLifeでやっていた「キャッスル」にも本人役で出ていたということはたぶん見たことがあるはず。

ubuntu 22.04 on vmware でディスク容量を増やす

vmware側で増やしても自動的に ubuntu 側で増えるわけではない。
以下のサイトの通りにやってうまくいきました。

https://qiita.com/Eustace/items/9c31a9dc381f627feb64

・vmware上で当該ディスクの容量(sda)を増やす
・ubuntu上で /dev/sda の容量を rescanさせる
・parted コマンドで パーティションサイズを変更
・lvextend コマンドで 認識サイズも変更

本当は別ディスクを作成して、そちらを sdb などでattach したほうがよかったかも。

dovecot2.3 on macOSX Monterey 12.5.1

ちょっと各所にちらばっているメールについて、
macmini に ローカルに動く dovecotを動かし、imapサーバーを立ち上げて集約しようかと思い立ち、
インストールのメモ。

  1. dovecot のインストール。
    brew install dovecot
    


    これで 2.3.19.1 がインストールされた。/usr/local/Cellar/dovecot/2.3.19.1/ 以下に展開されてシンボリックリンクがいろいろ張られる。またダミーのユーザーとして、'_dovecot','_dovenull' が作成される。

  2. このまま起動しようとしたら、ちょこちょこエラーが出ていてうまくdaemonに落ちてくれない。
    https://ameblo.jp/naokitakisawa/entry-12663707247.htmlを見て confをいじる。

    % diff dovecot.conf dovecot.conf.org
    25d24
    < protocols = imap
    33d31
    <
    104,120d101
    < #
    < #
    < default_login_user = _dovenull
    < default_internal_user = _dovecot
    < #
    < default_internal_group = mail
    < #
    < # https://www.mail-archive.com/dovecot@dovecot.org/msg85160.html
    < default_vsz_limit = 0
    < #
    < # https://www.systemcodegeeks.com/mac-os/macos-dovecot-setgroups-failed/
    < last_valid_gid = 100
    < #
    < #
    % diff 10-mail.conf 10-mail.conf.org
    30,31c30
    < #mail_location =
    < mail_location = maildir:~/Maildir
    ---
    > #mail_location =
    % diff 10-master.conf 10-master.conf.org
    3d2
    < #default_client_limit = 100
    13d11
    < default_login_user = _dovenull
    18d15
    < default_internal_user = _dovecot
    23d19
    <     port = 20143
    37d32
    <   #process_min_avail = 60
    % diff 10-ssl.conf 10-ssl.conf.org
    7d6
    < ssl = no
    13,16c12,13
    < #ssl_cert =  ssl_cert =  ssl_key =    #args = dovecot
    

    anvilまわりでエラーが出ていたりしたのや、MTA,MTSを使う予定はないので、
    メールのデフォルトの置き場所を変えたり、SSL使わないような設定に。
  3. サービスをdaemonで動かすように設定。
    sudo brew services restart dovecot
    

switchbot 温湿度計2つ目 交換品

がamazonから送られてきたのでさっそくつ買ってみた。冷蔵庫の中に新しいものと古いものをほぼ同じ場所に置いて計測。(cactiから influxdb + grafana に移行中)

古いswitchbot温湿度計
switchbot_old_b.png

新しいswitchbot温湿度計
switchbot_new_b.png


データは5分に1回取得するように設定。一目瞭然で、新しい方はほぼデータを拾えているのに、古い方は1時間1回程度。
製品の性能にばらつきありすぎのような気もするけど、中華製ならこんなもんですか?
とりあえずこの新しいものを冷蔵庫に。
また、gatt でエラーが出る件についても、新しい方では解消しなかった。
charastaristicsは同じようだが。。。
ただ、公式githubには、同じことを言っている人がいる。2022/02/10 の投稿のようなのでやはり最近の話っぽい。公式のレスポンスは無いが、そろそろ何か書き込みあるかも。