リモートワークにはマイク付きイヤホンを

年末年始からいくつかのヘッドセットを試しているのだけれども、結論として、ビデオ通話用のベースラインはマイク付きイヤホンだと再確認した。 無線(Bluetooth HFP)イヤホンよりは通話品質も安定性も圧倒的に良いし、圧倒的なハズレもない ノートPC内蔵スピ…

ryeをpyenvのように使う

最近は複数のPythonバージョンを用意するのにpyenvを使うのをやめてryeを使っています。 プロジェクトもryeで管理すればいいのですが、OSSメンテしていると良くあるのがIssueの再現のためにスクリプト1つ動かすための環境を作るケースでは若干ryeは面倒です…

アシダ音響 MT-669-CT と ST-90M-05-K

ふるさと納税でマイク音質が良さそうなヘッドセットを見つけたので購入してみた。1/22に寄付して1/26に届いたので、めちゃくちゃ早かった。 item.rakuten.co.jp マイクの音質は、今まで色々買ってきた6千円以下のヘッドセットやイヤホンの中で一番いい。外の…

sql.Null[T] をGo 1.22に追加しました

Go 1.22 のリリースが近づいていますが、その中でdatabase/sqlにNull[T]を追加したので紹介しておきます。 database/sql パッケージにはNullByte,NullBool,NullFloat64,NullInt64などのNullableなカラムを扱うための型が用意されているのですが、NullUInt64…

RawBytesは使い捨てよう

go-mysql-driverに来たバグ報告を調べていたら、 database/sql.RawBytes の利用方法にハマるとデバッグの難しい落とし穴があったのを見つけたので、Go側のバグとは断言できないもののGo側で直すべきだと報告しました。他の人がハマらないように簡単に解説し…

IntelのハイブリッドアーキテクチャCPUでperfを使う

実験用ミニPCを第8世代から第12世代のものに買い換えたんだけれども、 perf top が The cycles:P event is not supported. というエラーを吐いて動かなくなった。 ハイブリッドアーキテクチャーになって、複数の種類のコアのPMUを同時に扱えないようだ。 対…

Microsoft モダンUSB-Cヘッドセット vs Fnatic REACT

methane.hatenablog.jp この記事で紹介したアイテムのうち、結局AGPtekのピンマイクに加えてタイトルの通りMSヘッドセットとFnaticのゲーミングヘッドセットを購入した。 ヘッドセット2つは同じような価格帯なので参考に比較してみた。 MicrosoftモダンUSB-C…

PDFをタブレットで読む

年末年始はこの本を読んでいた。 GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ作者:千田 和央翔泳社Amazon コピーコントロールがない電子書籍が買える場合はなるべくKin…

USBヘッドセットのミュートボタンとビデオ通話のミュートの同期

methane.hatenablog.jp 以前この記事で Sound Blaster Play! 4 のミュートボタンがGoogle MeetのMuteと連動できたことを紹介しましたが、マイクロソフト モダンUSB-Cヘッドセットを購入したので、Zoomと合わせて再検証してみました。 OSはmacOS 13.6.3です。…

1万円以下のヘッドセット紹介

冬休みにYouTubeで色々なヘッドセット紹介動画を見てました。 良さそうなものをいくつか見つけましたが、そんなに何個も買っても仕方ないので紹介記事を書いて物欲を昇華したいと思います。 紹介するのは主にAmazon初売りセールで1万円以下で買えるものです…

Sound Blaster Play! 4でGoogle Meetの通話コントロールが使えた

会社で会議ツールはGoogle Meetを使うことが多いのですが、このMeetに去年追加された「通話コントロール」という機能が気になっていました。要するに、Meet上のミュートボタンと、デバイス常にあるミュートボタン&LEDが連動する機能です。 Google Meet で通…

grml-zsh-config で rye の補完を有効にする

ryeの補完 ふと思い立って zsh を触ってみることにしました。 Oh-my-zsh はなんとなく大きすぎて嫌だったのですが、次の記事を見て grml-zsh-config を導入しました。 知ったらもう戻れない!? 便利すぎるZshの世界 - Mimir Yokohama rye をHomebrewではなく…

/var/lang/bin/python: No module named amazon_linux_extras

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…

VSCodeでコミットメッセージを書く

何を当然のことを…と思われるかもしれないけれど、いままでずっとgitはVSCodeではなくターミナルからコマンドを使い、コミットメッセージは git commit -v からVimで書いてきていた。 diff をみながらコミットメッセージを書くことで、適切な要約を考えられ…

SOUNDPEATS Air4 Pro レビュー

PR

モニターキャンペーンに当選して、SOUNDPEATS Air4 Proをいただいたのでレビューします。ちなみに早期予約キャンペーン中で、今なら5000円台で買えます。 SOUNDPEATS Air4 Pro 早期予約キャンペーン – SOUNDPEATS JAPAN 他に利用中のイヤホンは、SOUNDPEATS …

Pixel Buds Pro が対応する高音質通話機能 Super Wide Band について

Pixel Buds Proがアップデート、より自然な音声品質や会話検出、低遅延に対応 - ケータイ Watch Pixel Buds Proは、Pixel 8/8Proと組み合わせることでSuperWideBandに対応する。SuperWideBandでは音声の帯域が従来の2倍になり、音声がより自然でクリアに聞こ…

Python 3.12 から Unicode のサイズが小さくなります

Python 3.11 までは、空文字でも64バイトのメモリを使用していました。(64bitプラットフォームの場合) Unicodeの内部表現のうち一番小さい PyASCIIObject 構造体が48バイトで、その構造体の後ろにASCII文字列が続きます。その文字列はNUL終端されているので…

Python 3.15からデフォルトのエンコーディングがUTF-8になります

Pythonがファイルを開くときなどに使われるエンコーディングはロケール(WindowsではANSIコードページ)依存でした。 Unixの世界ではどんどんUTF-8ロケールが一般的になっている一方、WindowsのANSIコードページはなかなかUTF-8になりません。 そのために、U…

Python 3.11のdictのメモリ消費削減

Pythonのdictのサイズをよりコンパクトにする改善をしました。今日リリースされたPython 3.11.0a6に含まれています。 bpo-46845: Reduce dict size when all keys are Unicode. by methane · Pull Request #31564 · python/cpython · GitHub Pythonのdictで…

Swisstable Hash に使われているビット演算の魔術

Googleが開発したSwisstableと呼ばれるハッシュテーブル実装がAbseilとして公開されて、Rustの標準のHashMap実装にもその移植であるhashbrownが採用されました。 Swisstable の面白いところは、8または16要素をグループ化して、グループ内の各要素のハッシュ…

Python 3.11 からデフォルトの文字列ハッシュアルゴリズムが SipHash13 になります

Pythonの文字列やバイト列に対するハッシュアルゴリズムは、HashDoS対策としてPython 3.4から SipHash24が使われていました。 その後、ラウンド数を減らしたSipHash13でも十分に安全だとして2015年にRustが、2016年にRubyが、SipHash24からSipHash13への切り…

`from __future__ import annotations` がPython 3.10でデフォルトにならなくなりました

PEP 563 は Python 3.10 でデフォルトになる予定で、実際に去年の10月から master ブランチでは有効になっていました。今までの Python 3.10 のアルファ版でも有効になっています。 www.python.org このPEPはアノテーションの実行時の利用に後方非互換性と大…

gzip, bz2, lzma の binary mode でのイテレーションを高速化しました。

次の2つのプログラムは、どちらも test.gz というファイルを開いて、片方はバイナリモードで、もう片方はテキストモードでイテレートします。Pythonの使用上ファイルをイテレートしたら行単位で内容を読み出せます。 $ cat dec_gzip.py import gzip with gzi…

staticmethod が callable になりました

github.com Pythonで定義した関数とCで定義した関数は型が異なり、振る舞いにも幾らかの違いがあります。これがPython実装とC実装の両方を提供する場合に、挙動の一貫性がないという問題になります。 今回問題になったのは、Cで定義した関数は勝手にメソッド…

PYTHONWARNDEFAULTENCODINGを使おう

methane.hatenablog.jp この記事で紹介した、 open() などでエンコーディングを指定せずに暗黙でデフォルトのエンコーディングが使われた時に EncodingWarning を発生させる機能のPEPが受理され、実装し、昨晩リリースされた Python 3.10a7 に入りました。 .…

パターンマッチングがAcceptされました

Mailman 3 [python-committers] Acceptance of Pattern Matching PEPs 634, 635, 636, Rejection of PEPs 640 and 642 - python-committers - python.org パターンマッチング構文が複数提案されていたのですが、 PEP 634, 635, 636 が Accept されました。順…

PythonのデフォルトエンコーディングをUTF-8にするために

Python がテキストファイルを開く時のデフォルトエンコーディングがUTF-8でないことは、多くのWindowsユーザー、特にプログラミング初心者にとって障害になっています。 UnicodeDecodeError で検索すると、多くのWindowsユーザーが問題に遭遇しているのがわ…

easy_install が消えた

ずっと前から deprecated になっていた easy_install コマンドが、setuptools53でとうとう消えました。 今後リリースされる Python にはこのバージョン以降の setuptools がバンドルされ、Python をインストールした時に bin/ ディレクトリに入るゴミが1つ減…

2050年再エネ100%はどれくらい難しいか(2) - 発電所の規模について

昨日は2050年の年間消費電力量が1300~1500TWhになること、現在より増える理由は、人口減や省エネで減る電力消費よりも電化で増える消費電力が多いからだということを紹介しました。 methane.hatenablog.jp 今回はこれだけの電力量を発電するのに、太陽光、陸…

2050年再エネ100%はどれくらい難しいか(1) - 日本の消費電力量について

今年に入ってから環境問題、主に再エネについて少しずつ本を読んだりして調べています。 10月以降、菅政権が2050年カーボンニュートラルを打ち出してから、一気にこの分野の話題が過熱してきました。河野太郎大臣などが再エネの最大限導入のためにあらゆる障…

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