とりあえず次亜塩素酸ナトリウムスプレーを準備しておいた。

中国はメンツの国だ。日本もそうだけど、メンツを潰される事を何よりも嫌う。

実際にchromiumのソースコードを覗いてみる。
github.com/chromium/chromium/b

> if (cert.tbs().validity_not_after < time)
> errors->AddError(cert_errors::kValidityFailedNotAfter);

なのでやはり1日を区切りにするなら00:00:00の方が正しいっぽい。notAfterが23:59:59だと1日の最後の1秒間は無効扱い。

というわけでRFC5280を確認すると、こういうのが出てくる。

> To indicate that a certificate has no well-defined expiration date,
> the notAfter SHOULD be assigned the GeneralizedTime value of
> 99991231235959Z.

これは指定できる最大値だから理解できる。

> The validity period for a certificate is the period of time from
> notBefore through notAfter, inclusive.

おそらく上の最大値の指定方法とinclusiveの意味が誤解を招いてるっぽい。

SSL証明書の有効期限で23:59:59みたいなのをよく見るんだけどめっちゃ気持ち悪い。00:00:00じゃないの。

ビットフィールドを反則とすると、C言語でもバイト単位しかサポートしてないよなと思った。

いやまぁモジュール使えって話なんだけど、区切りがbyteなのでバイナリ扱えるとは言い切れない。

つまりピュアPythonでbase64とか実装しようとするとかなり困ることになる。

Pythonでバイナリを扱ってて困ったのは、どうも最小単位がバイトまでしかないんだよね。structモジュールつかってもそう。だから2bitづつ小分けにしたいとかになると↓みたいなかなりpythonぽくないコードを書く羽目になる。
「Pythonでもバイナリデータを扱える」というより、「バイト列までなら扱える」といったほうが正しい。

def iter_2bit(bin):
for byte in binary:
yield (byte & 0b11000000) >> 6
yield (byte & 0b00110000) >> 4
yield (byte & 0b00001100) >> 2
yield (byte & 0b00000011)

だからたとえ話は好きじゃないんだ。上手いたとえ話というのは本当に難しい。

うどん県のうどんを禁止しろって記事がやたら回ってきて、まぁ理屈は分かるんだけど、そしたらパチンコや売春や薬物までカバーできてないと片手落ちかなと思う。

今からでも遅くない。「酒によってラジオに出てました」って言っとけ。

pypy2はpython2で動くpython2インタプリタ
pypy3はpython3で動くpython3インタプリタ
あかんな・・・

pypyって2to3のクロスコンパイル機能ないんだっけ?

そしてBitBucketもMercurialのサポートを切る方向に。隔世の感ある。

MercurialはまだPython2サポートしてるらしい。

Python2とPython3の両方で動くスクリプト作ってたの・・・そら規模大きかったら当然そうするしかないんだけど、死ぬわ

MercurialメンテナによるPython3移植の回顧録:
gregoryszorc.com/blog/2020/01/

コミュニティがPython3を受け入れるまでにまるまる10年かかった。ほとんど失敗の域。
すべてがUnicodeであると仮定するのは完全に間違っている。バージョン管理ツールのようなシステムレベルのソフトウェアに対する影響は計り知れない。
もし当時Rustが今の水準だったら、Python3への移植ではなくRustを選択していただろう。
Python3はMercurialにとって多くのトラブルをもたらし、恩恵はほとんど得られなかった。
当初Python3は互換性に対して本当に無頓着だった。Python3プロジェクトには猛省を求める。

Show more
モバ丼 - Portable Mastodon Instance

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!