2021年4月29日木曜日

Let's Encrypt 更新スクリプト

 SSLを使うため、Let's Encryptを使っている。1年目は格安だったが、2年目からは1000円ちょっとほど管理料を請求されるようになった。

いったん、設定を削除してあらためて更新作業をするといいようだ。

delete.sh

sudo rm -rf /etc/letsencrypt/archive/$1

sudo rm -rf /etc/letsencrypt/live/$1

sudo rm /etc/letsencrypt/renewal/$1.conf


create.sh

sudo certbot certonly --webroot-path /var/www/html/ -d $1

複数ドメイン必要なら

sudo certbot certonly --webroot-path /var/www/html/ -d $1 -d abc.$1


途中 How would you like to authenticate with the ACME CA?と聞かれたら

2 Spin up a temporary websever (standalone)で試してみたらうまくいった。(ただし、証明取得時のみ、ルータの設定変更も必要。自分の場合は、IpマスカレードのWWW(80port)設定でひっかかるので、そちらを一時的に変更することにしている。)

sudo service apache2 restart  も必要

*2021.9.4 一度で、うまくいかないときもあった。2度実行したらなぜかうまくいった。

*2022.2.14  しばらく時間おくと いい?ようだ。apache2関連でエラーがでるが、気にせず、2のstandaloneで試していると、うまくいく。

*2022.7.18 How would you like to authenticate with the ACME CA?で、以前は3を選択していた。それでもいいかもしれない。

2021年4月24日土曜日

魚も意外と賢いらしい

  サイエンスゼロで、興味深い内容を放送していた。魚が自分という意識をもって、自分が置かれた状況に応じて、「思いやり」や「いじわる」など異なる行動を選択する理解力を持つらしい。ある程度の高等動物でないとできないだろうと思われていることが、魚でもできているということに驚いた。それだけ、人間の心というのは進化の初期の段階から引き継がれているのだということをあらためて知った。

 そういえば、毎日、メダカにえさをやっていると、その時間にはだいたい水面のあたりで待機するようになる。意外と賢いようだ。

スネルの窓

  理科で全反射を学びますが、そこで話題として、スネルの窓というのもおもしろいかもしれません。水中の魚が水面をみると、丸い窓から地上のすべてが、魚眼レンズのように見えて、それ以外は鏡になるという現象です。

 これと関連した話になりますが、恥ずかしながら以前は、全反射する光は、地上に届かないのだから、地上のある位置では、魚が見えないところがあるのでないかと勘違いしていました。(意外と勘違いしやすいところでないでしょうか)

 でも実際に風呂に入ったときに、お湯の下の手足はどんな角度からも見えます。(屈折で浅い位置になりますが)。スネルの窓では、水面すれすれの景色も歪んではいますが、見えます。光の道筋は、方向に関係なく同じ屈折の仕方をしますから、下から水面すれすれがみえるということは、水面すれすれから水中のものも見えるということです。

  ただし、魚から真横方向に近い光は水面上に出ていきませんので、真横方向に近い角度から見るような見え方にはならないと思いますが。

 サイト上で、どこで調べても、意外とこのことにふれているところがなかったので、自分なりに考えてみました。たぶん、これで間違いないとは思うのですが。。。どうでしょう?

 以下の動画も参考になります。

  https://www.youtube.com/watch?v=AGSqGRaCq4Y

2021年3月31日水曜日

オイラー関数

  久々に、群論の本をパラパラめくってみた。学生時代には、よくわからなかったところも、最近の本は証明の説明が丁寧なのでわかりやすい。

 nを素因数分解してn=p^e・q^f・r^gとすれば

 φ(n)=p^e-1・(p-1)・q^f-1・(q-1)・r^g-1・(r-1)

      1からnまでの数のうち、nと互いに素になる数の個数

       |(Z/nZ)|=φ(n):既約剰余類の元の個数


2021年3月29日月曜日

Rustが気になり少し入門してみた

 https://codeprep.jp/tracks/

Rustをオンラインで学習できるCodePrepというサイトがあったので利用してみた。実際に穴埋めして、学習していく内容なので、短時間で要点が把握できる。関数型を取り入れているので、プログラミングははかどりそう。ただ、新たにライフタイムとか所有権を理解する必要がある。エラーをなくすためには避けて通れないところのよう。

2021年3月27日土曜日

C#でdisplayswitchを操作

 C#でdisplayswitchを操作しようとしてもなぜかうまくいかない。64bitかどうかで、使用するツールの使い分けが必要ということがわかる。

 スリープからの復帰で、セカンドディスプレイがうまく復帰しなくなっていたので、イベントを感知して、自動で下記の動作をするようなアプリを作ってみたら、うまくいった。

 psi= new System.Diagnostics.ProcessStartInfo();
 if (!Environment.Is64BitProcess)
         psi.FileName ="C:\\Windows\\sysnative\\displayswitch.exe";
 else
         psi.FileName ="C:\\Windows\\system32\\displayswitch.exe";
  psi.Arguments = "/extend";
  psi.UseShellExecute = false;
  System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);

としたら、Ok。

セカンドディスプレイがスリープから復帰したときつかない現象

  Windows Updateが原因?かどうかわからないけど、ある日突然、セカンドディスプレイがつかなくなる。スリープからの復帰のとき、つかなくなる。

 ハイブリッドスリープをオフにする、Biosの設定の見直し(高速起動関連をオフ)、高速スタートアップの見直し等いろいろ試したがうまくいかず、結局 Win+Pキーで拡張を選択すると復帰することに気付く。バッチファイルで、「displayswitch.exe /extend」を作って使ってみたら、うまく復帰してくれた。左右の位置が、これまでと逆になってしまったので、それを修正して、いろいろやっているうちに、バッチファイルを使わずともうまく復帰してくれるようになった。対処療法的だけど、結果オーライということに。