Latest

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu

イケイケなWinスクショアプリを作りました

パソコンのスクショってなんというか、地味というか、撮ってそのままだと何とものっぺりしていますよね。 特にWindowsだとMacっぽい丸っこい感じとかもなく、無骨だなあと。 ということで、それっぽくおしゃれな背景や角丸を付けておしゃれに撮影をしてくれるスクショアプリを作りました。 GitHubで公開しています。 GitHub - P4suta/Snaply: Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10)Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10) - P4suta/SnaplyGitHubP4suta ウィンドウ・領域選択・スクリーンのキャプチャができます。 タッチスクリーンなどにも対応しているはずです。 撮影をすると、クリップボードにコピーされ、フォルダーへの保存もされます。

By Sakashita Yasunobu
Find My Files

Find My Files

Windowsにおける爆速ファイル検索アプリの定番といえば、Everythingです。 voidtoolswebhost2 その高速さの理由は、NTFSの仕組みをうまく活用していることにあります。Windowsで一般的に使われているNTFSには、ファイル情報を管理するマスターファイルテーブル(MFT)と、ファイルシステムの変更履歴を記録するUSN Journalがあります。Everythingはこれらを利用することで、初回に高速にファイル一覧を構築し、その後はUSN Journalを監視してリアルタイムにインデックスを更新しています。そのため、数百万ファイル規模の環境でも非常に高速な検索を実現しています。 もちろん、単純にファイル名やパスを保持するだけでは、大量のメモリを消費してしまいます。また、数百万件ものファイルから一瞬で目的のものを見つけるためには、メモリ効率の高いデータ構造や高速な検索アルゴリズムなど、さまざまな工夫が必要になります。 このように、Everythingは見た目こそシンプルですが、中身はかなり高度なことをやっているソフトウェアです。 なお、Everyth

By Sakashita Yasunobu
Rust libfprint?

Rust libfprint?

指紋認証は便利で快適です。 iPhoneはFaceIDを使うので別次元の快適さですが、PCでは指紋認証が現役です。 Windows/Macはいざ知らずいざ知らず、Linuxで指紋認証デバイスを使おうと思ってもPlug-and-Playというわけにはいきません。 それどころか、Linuxでの指紋認証サポートは限定的です。 Linuxではfprint projectが主体となって(事実上のデファクトとして)指紋認証デバイスのサポートを行っていますが、指紋認証デバイスの仕様をメーカーが公開していない以上、指紋認証デバイスAを持つユーザーが自分でドライバAを書くほかありません。 メンテナーによる骨の折れる作業と血のにじむ努力によって多数のデバイスがLinuxでサクッと動くようになり、Linux Mintなどの一部ディストロではGUIから気楽に使えるようになったので、対応デバイスをお持ちの方にとってはとてもいい時代になりました。 しかし、まあ、内部実装が歴史的につらい事情などなど、現代的に作り直すことで歴史から解き放ちつつも、共存の道を模索するプロジェクトとしてfprintdというプ

By Sakashita Yasunobu
Claude Code: API Error: Unable to connect to API (ConnectionRefused)

Claude Code: API Error: Unable to connect to API (ConnectionRefused)

先日Claude Codeをイジイジしていたら、前触れもなくAPI Error: Unable to connect to API (ConnectionRefused)とかいう謎のエラーをはいてうんともすんとも言わなくなった。 イヤー困った。 Unable to connect to API (ConnectionRefused) by u/Pristine_Ad9316 in ClaudeCode curlでAnthropicのAPIエンドポイントをたたくと確かにDNS周りでなんだか不穏な様子。 /etc/resolv.confを書き換えろと言われるが、なんとも強引すぎやしないかと思い、そっ閉じ。 ダメもとでsudo shutdown -h nowでお茶を濁したところなんと解決しましたとさ。

By Sakashita Yasunobu
Pure Rust Webp Implementation

Pure Rust Webp Implementation

webpをPure Rustで実装しました。 GitHub - P4suta/webpkit: Pure-Rust WebP codec (VP8L lossless + VP8, encoder & decoder, no_std, forbid-unsafe)Pure-Rust WebP codec (VP8L lossless + VP8, encoder & decoder, no_std, forbid-unsafe) - P4suta/webpkitGitHubP4suta https://crates.io/crates/webpkit libwebpよりも使いやすく、モダンな作りになっています。 no_stdなど、汎用的に使えると思います。 Rustで実装をする以上、unsafeがあると意味が薄れてしまいますので、本実装ではunsafeはありません。 また、ちょっとしたことですし、

By Sakashita Yasunobu

1Passwordを閉じるボタンが……ねえ!

1Passwordを使っていたら、いつの間にかウィンドウの 閉じる/最小化/最大化ボタンが消えていた。Ctrl+Wでウィンドウ自体は閉じられるので長らく放置していたけれど、調べてみたら原因がしょうもなかったので共有しておく。 💡結論 F11を押してみよう 症状 * ウィンドウ右上の最小化・最大化・閉じるボタンが表示されない * タイトルバーも消えている * Ctrl+W では普通に閉じられる * PC再起動、1Passwordの終了・再起動、アンインストール → 再インストール、いずれも変化なし 原因 ただフルスクリーンモードに入っていただけ。 1Passwordコミュニティの投稿「Lost window minimize buttons top rhc.」で全く同じ症状が報告されていて、コミュニティマネージャーの回答が「F11でフルスクリーンを切り替えてみて」だった。 解決手順 1. 1Passwordのウィンドウをクリックしてフォーカスを当てる 2. F11 を押す これでタイトルバーとボタン類が戻ってくる。ダメな場合は Win + ↓(ウィン

By Sakashita Yasunobu

外字と訓点を compile-time hash で解く

aozora は青空文庫の外字参照 (※[#「魚+師」、第3水準1-94-37] のような形) を約 14,000 件のテーブルで解決する。このテーブルを runtime の HashMap ではなく phf (perfect hash function) で持ち、コンパイル時に static 配列に焼き込んでいる。この記事はその選択の根拠と、JIS X 0213 → Unicode フォールバックの設計をまとめたもの。 handbook の対応章: Shift_JIS + 外字 resolver。 外字テーブルの形 外字エントリには 3 種類の解決結果があり、それぞれに対応する variant を GaijiEntry に持たせている。 static GAIJI_TABLE: phf:

By Sakashita Yasunobu