Diary

Diary

日々学んだことをアウトプットする場として初めてみました

uv run --with の使い方:単発の Python スクリプトに依存を追加する

PDF を扱う短い Python スクリプトを動かしたとき、ModuleNotFoundError: No module named 'pypdf' で止まりました。

そのときに使ったのが uv run --with です。実行時に必要なライブラリを指定できるので、PDF のページ数を調べるような単発の処理で使っています。

続きを読む

Claude Code 運用改善メモ[2026/7-8]

2026 年 7〜8 月に手を入れた Claude Code まわりの設定と hook のメモ。同時期の shell / WezTerm 側は「開発環境改善メモ[2026/7-8]」に分けて書いています。

目次

現在の環境

  • PC: macOS / m4 Mac mini
  • AI 開発支援: Claude Code, Codex
  • 設定管理: dotfiles リポジトリの dot_claude/~/.claude/ へ symlink / 反映
続きを読む

開発環境改善メモ[2026/7-8]

2026 年 7〜8 月に改善した開発環境のメモ。今回は shell と WezTerm まわりが中心です。

目次

現在の環境

  • PC: macOS / m4 Mac mini
  • Terminal: WezTerm
  • Shell: zsh
  • Shell 周辺: sheldon / starship / zsh-abbr / fzf-tab / zoxide
  • Editor: VSCode / Windsurf, Zed, Neovim
  • 環境管理: nix-darwin, home-manager, mise, Homebrew
  • AI 開発支援: Claude Code, Codex
続きを読む

CLAUDE.md の「お願い」を ESLint カスタムルールに落とす

AI エージェント(Claude Code など)に守らせたいコード規約を CLAUDE.md への「お願い」で終わらせず、静的に検査できるものは linter に落とし込む、という考え方と実際にやってみた話です。

目次

環境

本記事のコードは ESLint v9 系の flat config(eslint.config.mjs)を前提としています。

続きを読む

開発環境改善メモ[2026/6]

2026 年 6 月に改善した開発環境のメモ。

目次

続きを読む

2025 の活動振り返り

2024 年に引き続き、2025 年も色々なことがありました。
技術的な取り組み・環境の整備等について、備忘録として残しておきます。

目次

トピック

4 月に会社を始めて、プロダクト面で新しい挑戦を色々としてきました。

また、今まで hatena blog を中心に書いていましたが、今年から zenn での発信もはじめてみました。

開発面では AI ツールのキャッチアップやそれを使いこなすための仕組み作りは頑張りました。
一方で、今までの開発時に感じていた『物事のより本質的な部分が理解できることによる喜び』がなくなってしまったと思っており、これは来年以降の課題として関わり方を考えたいと思っています。

開発環境周り

今年はいくつか新しいツールを導入し、開発環境を見直しました。
(基本 Mac 前提です)

新規導入したツール

AltTab
Window の切り替え時に、Windows と同じ挙動を実現してくれるツールです。
Mac 購入時からずっと欲しいなあと思っていた機能をついに見つけたため導入し、少額ながらスポンサーしてみました

tailscale
出先で自宅の Mac mini を操作するために導入しました。

CleanShot X
スクリーンショット時に Gif が標準で取れるということで使ってみました。
(Raycast で頑張ればできた気もしてます)

WezTerm
ターミナルは iTerm から WezTerm に乗り換えてみました。
特にこだわりがあるわけではないのですが、全部 text で管理する前提なのが気に入っています。

Neovim
メインでは VSCode (とその fork) ですが、Neovim のセットアップもある程度してみました

(chrome 拡張): Environment Marker
Web アプリ等で、閲覧している環境の区別を容易にするよう導入しました。

引き続き使っているツール

  • Docker
    • OrbStack
  • DB GUI Client
    • DBeaver
  • Launcher
    • Raycast
      • もっと使いこなしたい

デスクトップ周り

今年は作業環境の改善のため、いくつかハードウェアを購入しました。

今年買ったもの

マウス: MX Ergo S
MX Ergo から MX Ergo S に買い替えました。
充電が Type-C になり静音性向上したという絶妙な変化ですが、それだけのために買い換える価値はあったと思っています。

キーボード: Magic Keyboard
HHKB が調子悪くなった時に代用品として買ったのですが、TouchID の操作性が気に入ってそのまま使っています。

モニター: モバイルモニター(14 インチ)
外で作業する機会がたまに増えたため購入しました。
充電ケーブルと接続用のケーブルを分けないといけなかったのが誤算でしたが、サイズ感や画質などは気に入っています。

モニター: LG 24U631A-B
24 インチのモニターで、アームでツラ下げるために買いました。

マイク: FIFINE AmpliGame AM8T
今まではカメラ付属のマイクを使っていましたが、音声入力に力を入れるために買いました。

イヤホン: OpenRun Pro 2
Shokz の出してる OpenRun Pro 2 をランニング用に買いました。
初の骨伝導イヤホンだったのですが、特にランニング時の耳への負担が少なくずれることもなく気に入っています。
騒がしいところを走ると音声が聞こえないところは若干気になってますが、コースを選べばそこまで問題にはならないと思ってます。

イヤホン: WF-1000XM5
Pixel Buds Pro が壊れた時に代用品として買ったものです。
ノイズキャンセリング性能・音質等 Pixel Buds Pro より気に入ってますが、謎に接続が切れるタイミングが多くあまり使用してません。

引き続き使っているもの

  • 業務用アルコール(無水エタノール)
    • 霧吹きに入れて机周りの掃除に使っています

技術

新規で触れた技術

Supabase
認証と rdb や storage を低コストで使うのに使いました。

Vercel
ちょっとしたアプリは基本 Nextjs で作っていたのですが、そのホスト先として基本 Vercel を使っていました。

Rust
2024 も若干触れていたのですが、2025 は追加で勉強しつつ TUI の作成もしてみました。 考えが浸透するまで触れておきたいと考えてます。

Zig
少しずつ勉強しはじめました。凝ったところまでできなかったので、来年も勉強を重ねたいです。

Electron
デスクトップアプリを作る機会があったので少し触りました。
デバッグが難しかった記憶があり、なるべく避けたいなと思っています。

引き続き触っている技術

以下の技術・サービスは 2024 年に引き続き使っています。

  • languate/framework
  • infra

AI 周り

今年は AI ツールを積極的に活用するようになりました。

  • 2 月末~
    • Windsurf
    • 今も Codemap を書かせたり、コードの理解に使ってます。
  • 7 月~
    • Claude Code
  • 11 月~
    • Codex

タスク管理では vibe-kanban を使いはじめました。

コードレビューツールとしては Greptile をメインで使っており、Coderrabit を CLI とかでちょっとだけ使っています。

来年やりたいこと

お金を稼ぐ

今年は金銭的な余裕がなかったため、来年はここをしっかりと改善していきたいです。

本を読む

今年はサービスを作るのに時間を使いすぎていました。
(それが悪いってわけじゃないんですが、いずれ詰みそうな気がしている)
来年は技術書 2 冊・ビジネス書 1 冊/month のペースで読みたいと考えています。

技術的なところ

  • haskell
  • nix
  • NAS
    • Docker で Dify を立てるなどできるっぽいので試してみたい
  • タイル側ウィンドウマネージャー

久々に Python を触ったら型周りが進化してた

すごい久々にちゃんと Python の知識を update しようとしてるのですが、見える世界が全く変わっていたのでその感動をメモしておきます。
(当時から自分の知識が増えたことも大きいです。)

以下 mypy などの型チェッカーと使うことを前提にしています。

$ python --version
Python 3.13.1

[目次]

  • typing.NamedTuple
    • typing.TypedDict との違い
  • Literal の Union
  • typing.Protocol
  • typing.ReadOnly
  • おわりに
続きを読む