Go-MySQL-DriverでカスタムのDialをサポートしていたり圧縮プロトコルサポートのコードをレビューしていたりして、利用している Write() の実装が多様化してきたので、「Write(p)って Read(p)みたいに n が len(p) より小さい場合にループで続きを書き込まな…
github.com/go-sql-driver/mysql (a.k.a. Go-MySQL-Driver)のv1.8.0をリリースしました。 個人的に重要だと思う点を紹介していきます。 charset/collationの扱い ちょうどGREEさんのBlogで話題になっていた件です。 go-sql-driver/mysql も MySQL 8.0 もデフ…
オブザーバビリティ・エンジニアリング作者:Charity Majors,Liz Fong-Jones,George Mirandaオーム社Amazon オブザーバビリティ・エンジニアリングの5章のタイトルは「構造化イベントはオブザーバビリティの構成要素である」です。構造化イベントの定義は5.1…
みんなtai64nを使おう。と言いたいところだけれど、サポートしてるところが見当たらないのでナシだ。 個人的に好きなのはナノ秒単位のUnixタイムスタンプだ。 OpenTelemetryのOTLPでもナノ秒タイムスタンプを使っている。 "logRecords": [ { "timeUnixNano":…
構造化ログのプラクティスをあちこちで調べていたら、logfmtを推奨する記事を見つけたので調べてみました。 先に結論を言うと、JSON linesを使っておくのが良さそうです。 logfmt について logfmtとはスペース区切りで key=value を並べたフォーマットです。…
Goのライブラリのメンテナをしていると、再現コード付きのIssue報告をもらうことがあります。 さて、そのサンプルコードをどうやって動かせばいいでしょうか?ディレクトリを作って go mod init して、、、というのは面倒ですよね。 ライブラリのコードにデ…
Ryeを使っている状態で uv venv をすると、次のようなエラーになります。 $ uv venv × Querying Python at `/Users/inada-n/.rye/shims/rye` failed with status exit status: 2: │ --- stdout: │ --- stderr: │ error: unexpected argument found │ --- pyt…
uvにはまだ self update の機能がありません。 Homebrewにはすでにuvが追加されて頻繁にアップデートされているので、Homebrewユーザーは brew install uv がおすすめです。 Homebrewを使ってない環境でuvをインストールし手軽にアップデートするには 、rye …
先週にRuffを開発しているAstralがuvを発表しました。 astral.sh uvは現在のところはvenv, pip, pip-toolsの基本的な機能を提供していますが、将来は"Cargo for Python"になることを目標にしています。 一見すると乱立しているPythonのパッケージ管理ツール…
古いHDDをUSB外付けケースに入れてバックアップ用に利用しているのですが、rsyncを使ったバックアップやmacのTimeMachineが遅くなるので、最近はrestic を使っています。 resticを使っていて感じたメリットをいくつか紹介しておきます。 効率性 ファイルをそ…
時間がなくて議論を追っていなかったのですが、標準ライブラリ以外に依存したスクリプトを手軽に配布・実行するための提案である PEP 722 と PEP 723 がしばらく前から議論されていて、先月にPEP 723の方がAcceptされていました。 PEPのサンプルを引用してお…
2024/02/26 追記 2/24リリースから改善されたので、下記の対応は不要になりました。 Release 20240224 · indygreg/python-build-standalone · GitHub Rework of the terminfo database on Linux distributions. ncurses now looks for the terminfo database…
MySQLのInnovation Releaseは新機能の追加だったりdeprecatedなAPIの削除だったりがどんどん入ってきて、しかもバグ修正リリースは存在せずに次のInnovation Release待ちになる。古典的な言い方をすればアルファ版的な存在だ。 Homebrewユーザーは、 brew in…
年末年始からいくつかのヘッドセットを試しているのだけれども、結論として、ビデオ通話用のベースラインはマイク付きイヤホンだと再確認した。 無線(Bluetooth HFP)イヤホンよりは通話品質も安定性も圧倒的に良いし、圧倒的なハズレもない ノートPC内蔵スピ…
最近は複数のPythonバージョンを用意するのにpyenvを使うのをやめてryeを使っています。 プロジェクトもryeで管理すればいいのですが、OSSメンテしていると良くあるのがIssueの再現のためにスクリプト1つ動かすための環境を作るケースでは若干ryeは面倒です…
ふるさと納税でマイク音質が良さそうなヘッドセットを見つけたので購入してみた。1/22に寄付して1/26に届いたので、めちゃくちゃ早かった。 item.rakuten.co.jp マイクの音質は、今まで色々買ってきた6千円以下のヘッドセットやイヤホンの中で一番いい。外の…
Go 1.22 のリリースが近づいていますが、その中でdatabase/sqlにNull[T]を追加したので紹介しておきます。 database/sql パッケージにはNullByte,NullBool,NullFloat64,NullInt64などのNullableなカラムを扱うための型が用意されているのですが、NullUInt64…
go-mysql-driverに来たバグ報告を調べていたら、 database/sql.RawBytes の利用方法にハマるとデバッグの難しい落とし穴があったのを見つけたので、Go側のバグとは断言できないもののGo側で直すべきだと報告しました。他の人がハマらないように簡単に解説し…
実験用ミニPCを第8世代から第12世代のものに買い換えたんだけれども、 perf top が The cycles:P event is not supported. というエラーを吐いて動かなくなった。 ハイブリッドアーキテクチャーになって、複数の種類のコアのPMUを同時に扱えないようだ。 対…
methane.hatenablog.jp この記事で紹介したアイテムのうち、結局AGPtekのピンマイクに加えてタイトルの通りMSヘッドセットとFnaticのゲーミングヘッドセットを購入した。 ヘッドセット2つは同じような価格帯なので参考に比較してみた。 MicrosoftモダンUSB-C…
年末年始はこの本を読んでいた。 GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ作者:千田 和央翔泳社Amazon コピーコントロールがない電子書籍が買える場合はなるべくKin…
methane.hatenablog.jp 以前この記事で Sound Blaster Play! 4 のミュートボタンがGoogle MeetのMuteと連動できたことを紹介しましたが、マイクロソフト モダンUSB-Cヘッドセットを購入したので、Zoomと合わせて再検証してみました。 OSはmacOS 13.6.3です。…
冬休みにYouTubeで色々なヘッドセット紹介動画を見てました。 良さそうなものをいくつか見つけましたが、そんなに何個も買っても仕方ないので紹介記事を書いて物欲を昇華したいと思います。 紹介するのは主にAmazon初売りセールで1万円以下で買えるものです…
会社で会議ツールはGoogle Meetを使うことが多いのですが、このMeetに去年追加された「通話コントロール」という機能が気になっていました。要するに、Meet上のミュートボタンと、デバイス常にあるミュートボタン&LEDが連動する機能です。 Google Meet で通…
ryeの補完 ふと思い立って zsh を触ってみることにしました。 Oh-my-zsh はなんとなく大きすぎて嫌だったのですが、次の記事を見て grml-zsh-config を導入しました。 知ったらもう戻れない!? 便利すぎるZshの世界 - Mimir Yokohama rye をHomebrewではなく…
mysqlclientがAWS Lambda Pythonにインストールできないという報告があったので試してみた。 シェルを使う $ docker run -it --rm public.ecr.aws/lambda/python:3.11-arm64 bash 09 Nov 2023 04:46:42,532 [INFO] (rapid) exec '/var/runtime/bootstrap' (c…
何を当然のことを…と思われるかもしれないけれど、いままでずっとgitはVSCodeではなくターミナルからコマンドを使い、コミットメッセージは git commit -v からVimで書いてきていた。 diff をみながらコミットメッセージを書くことで、適切な要約を考えられ…
モニターキャンペーンに当選して、SOUNDPEATS Air4 Proをいただいたのでレビューします。ちなみに早期予約キャンペーン中で、今なら5000円台で買えます。 SOUNDPEATS Air4 Pro 早期予約キャンペーン – SOUNDPEATS JAPAN 他に利用中のイヤホンは、SOUNDPEATS …
Pixel Buds Proがアップデート、より自然な音声品質や会話検出、低遅延に対応 - ケータイ Watch Pixel Buds Proは、Pixel 8/8Proと組み合わせることでSuperWideBandに対応する。SuperWideBandでは音声の帯域が従来の2倍になり、音声がより自然でクリアに聞こ…
Python 3.11 までは、空文字でも64バイトのメモリを使用していました。(64bitプラットフォームの場合) Unicodeの内部表現のうち一番小さい PyASCIIObject 構造体が48バイトで、その構造体の後ろにASCII文字列が続きます。その文字列はNUL終端されているので…