技術
AIに否定的な人と話していると、むしろその人たちの方がAIを万能だと思っているような気がする。 万能幻想と失望 万能だと思っているから、一度試して思い通りにならないと「やっぱ使えない」で終わってしまう。でもそれは、とても優秀な新メンバーに何の説…
Zen of AI Coding という記事を読んだ。コーディングエージェントを1年使い込んだ人が、AI時代の開発原則を16個にまとめたもの。Zen of Pythonのオマージュだ。 出発点はシンプルで、「コードを書くコストがほぼゼロになった。そこから全部変わる」という話…
ジェダイはライトセーバーを自分で作る。フォースの力を借りて。 ソフトウェアエンジニアが自分のためのツールを作るのは昔から当たり前のことだ。ただ最近、AIの力を借りてそのコストがめちゃくちゃ下がった。 最近Rustで自分専用のCLIツールをいくつか作っ…
Claude Codeに--permission-mode=autoが追加されてだいぶ安心感は増したけど、結局LLMが判断しているので完璧ではない。Agent SafehouseはmacOSのsandbox-execを使って、カーネルレベルでエージェントのファイルアクセスを制限してくれるやつ。LLMの判断に関…
EchoというiOS向けのSSHクライアントが出たので、iPhoneからMacBookにSSH接続して開発できるようにした。接続にはTailscaleを使っている。 EchoはGhosttyのターミナルエンジンを使っていて、TUIの表示がめちゃくちゃ綺麗。$2.99の買い切りでサブスクじゃない…
zerobrew はRust製のHomebrew代替。uv がpipを置き換えたのと同じノリでHomebrewを高速化しようというプロジェクトで、ウォームキャッシュなら7.6倍速いらしい。Homebrewも最近は速くなっていたけど、新しいものが気になって試してみた。結果的にめちゃくち…
長いこと Catppuccinを使っていたけど、飽きてきたのでkanagawaに乗り換えた。ターミナルからエディタまで全部変えた。 kanagawaの落ち着いた和風のトーンがめちゃくちゃ良い。Catppuccinとは全然方向性が違うけど、こっちのほうが今の気分に合っている。 た…
去年の3月から zellij をターミナルマルチプレクサとして使っていたけど、約11ヶ月で結局 tmux に戻した。 zellijはRust製で設定がKDLで書けて、UIもモダンでめちゃくちゃ良かった。locked modeをデフォルトにして Ctrl+g でモード切替するスタイルが気に入…
git worktreeの管理ツールが色々出てきている。git-wtはtmux統合やfzfベースのインタラクティブ選択が便利だし、他にもworktreeの管理をいい感じにするツールはいくつかある。 ただ、こういったツールの紹介を見ていると「worktreeへの移動をどう楽にするか…
VSCode系のIDEのターミナルを開くと以下のような警告が出て気になっていた。 warning: completion was already initialized before completion module. Will call compinit again. See https://github.com/zimfw/zimfw/wiki/Troubleshooting#completion-is-n…
moonrepo.dev 各種言語(とか)のバージョン管理に mise を使っていたけど、proto に移行した。 mise はバージョン管理だけでなく、 direnv のような環境管理や、make のようなタスク実行もサポートしていて、少し過剰に感じていた。(し、使ってなかった) 1つ…
Google Search NavigatorというChrome拡張を作りました。 名前はすごい適当。 Googleの検索結果をVimっぽくキーボードで操作できるやつです。 github.com 元々、似たようなChrome拡張を使ってたんだけど、Chromeの最新の仕様変更に追従しなくなって動かなく…
zellij.dev 最近、zellij を使ったワークフローが手に馴染んできたので、VSCode (実際は Cursor 使ってる) の Terminal でも自動起動するようにした。 ドキュメント によると eval "$(zellij setup --generate-auto-start zsh)" って書いておけば自動起動で…
blog.nishimu.land zsh に戻ってから引き続き zim を使っていますが、久しぶりに眺めたら初期化方法が変わっていたので追従した。 まずは zim のアンインストール手順を実施して、既存の設定などを全て削除した。 具体的には .zshrc の先頭に書いていた初期…
colimaを使い始めてからmacOSを再起動するたびに設定などがまっさらになるという自体に頭を抱えていた。 これは XDG_CONFIG_HOME 以下じゃなくてホームディレクトリに新規で .colima ディレクトリが作成されてしまうからっぽい。 ホームディレクトリの設定が…
blog.nishimu.land この記事で紹介した noSemanticString / noSemanticNumber が v0.18.0 で非推奨になった。 代わりに semanticTokenTypes が使えるのでこれで設定すると良い。 "gopls": { "ui.semanticTokens": true, "ui.semanticTokenTypes": { "string"…
github.com Docker Desktop を使い続けてきたけど、別にGUI要らんなとなっていたので colima に移行しました。 まずは Docker Desktop をアンインストールする。停止したあとバイナリを削除して、~/.docker をまるごと消しました。 最初、./docker を消して…
仕事始めということで年末に移行した Ghostty からSSHしたら制御シーケンスが入力できなかった。 調べたら TERM に xterm-ghostty が設定されていて、これが接続先の terminfo に登録されていないことが問題だった。 ghostty.org 公式にドキュメントがあるの…
www.oreilly.com Kent Beck 御大による、ソフトウェア設計に関する書籍シリーズの第一弾である「Tidy First?」を読みました。 この本では開発中に散らかってしまうコードをいかに片付けて、読みやすい状態を保つかについて説明されます。 ソフトウェアの設計…
2つ以上前のコミットを修正したいときに --fixup を使うのは近年ではよく知られている。 $ git commit --fixup <commit> $ git -i --autosquash <commit>~ # rebase.autosquash = true にしておけばオプションは不要 しかし、この方法だと毎回 $EDITOR が開いてしまいちょっ</commit></commit>…
めっちゃしょうもない話だけれど、新しく追加した補完関数がどうしても適用されなくて困っていた。 fpathが通ってないのかと思ったけどそんなこともない。 $ echo $fpath | tr ' ' '\n' | grep '目的のファイル' うーんと唸ってChatGPT先生に聞いてみたらキ…
きっかけ 産まれてからずっと Vim キーバインドで生きてきました。 エディタは Vim → Atom → Emacs → VSCode と渡ってきたけど、いつだって Vim キーバインドです。 もちろん VSCode でも VSCodeVim を使ってきました。 こいつはVimの動きを頑張ってエミュレ…
最近、意識が高まって LeetCode を一日一問ずつやっています。 正直、Easy でもだいぶ苦戦していて、基礎の出来てなさに凹む毎日です。 ところで、現代では ChatGPT というSFチックなサービスが存在します。何かを学ぶときに補助してもらうことで、知の高速…
最近、Hyper Key という概念を知った。 概要 masOS だと Control+Alt+Shift+Command 、Windows だとControl+Alt+Shift+Win を同時に押すことを言うようです。 現代では失われた物理的な Hyper Key に代替しようということだと思ったけど経緯はあんまり分かっ…
Slackの特定のチャネルを開いて定型文を入力したい。具体的にはAPIでは発火できないスラッシュコマンドを実行したい。 特定のチャネルを開く簡単な方法は、Slackアプリに用意されている Deep Link を使うことです。 この場合は slack://channel を使うと目的…
marketplace.visualstudio.com GitHub Copilot と直接会話できる Copilot Chat 、皆さん使ってますか? 私は最近まともに使い始めました。 Copilot と言えば補完だけだと思っている人、以前ちょっとだけ触れて使えないと思った人(僕です)、いまのバージョン…
TL;DR 適当な Grammer 拡張を入れて以下の設定を書いておきましょう。 "gopls": { "ui.semanticTokens": true, // you can optionally turn on these features for more colors // see https://go.dev/issue/45753 and https://go.dev/issue/45792 "ui.noSem…
先日ホットエントリーに上がっていた以下の記事を読んでやる気を出して整理した。 jvns.ca 記事からは以下を取り入れて、あとは不要なものを消したりして回った。 branch.sort -committerdate ブランチをコミット時刻で並べる diff.algorithm histogram diff…
この記事は クラスター Advent Calendar 2023 19日目の記事です。 昨日は ChameleonO2 さんの「何か」でした。公開楽しみですね。 クラスター株式会社でソフトウェアエンジニアとして働いている id:Sixeight です。 クラスターではトランクベース開発を実現…
arc.net 最近はメインのブラウザを The Browser Company の Arc にしている。(会社名の主語がでかくて好き) これまでのブラウザのように一時的なタブを開いて読んだら閉じるみたいな体験ではなくて、常に開きっぱなしのタブと、一時的なタブとを分けているの…