2024-05-01から1ヶ月間の記事一覧

Goのデータベースドライバが壊れた接続を消す方法

database/sql が壊れた接続をコネクションプールから削除するための、昔からある流れは、Query()やExec()が driver.ErrBadConn を返すと、database/sqlはその接続を閉じてリトライするというものです。 ErrBadConnには接続が壊れたことを示す役割とリトライ…

xor_bytesの高速化

websocketのフレームのマスク処理や暗号化処理などでバイナリデータ同士のxorが必要になることがあります。 Pythonのbytes型はxorを提供していないので自分で実装しないといけないのですが、この時 bytes([x ^ y for (x,y) in zip(data, mask)]) のような内…

pipのキャッシュの管理

MySQL 8.4がリリースされて、定番の「mysqlclient をインストールしたんだけど動かない」という報告が来た。これはpipが以前にビルドしたバイナリをキャッシュして再利用しているためで、前のバージョンのlibmysqlclientにリンクしたバイナリなのでバージョ…

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。