ちなみに

火曜日の空は僕を押しつぶした。

技術

export VSCODE_INJECTION=0

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…

miseからprotoに移行した

moonrepo.dev 各種言語(とか)のバージョン管理に mise を使っていたけど、proto に移行した。 mise はバージョン管理だけでなく、 direnv のような環境管理や、make のようなタスク実行もサポートしていて、少し過剰に感じていた。(し、使ってなかった) 1つ…

Google検索をVimっぽく操作できるChrome拡張を作った

Google Search NavigatorというChrome拡張を作りました。 名前はすごい適当。 Googleの検索結果をVimっぽくキーボードで操作できるやつです。 github.com 元々、似たようなChrome拡張を使ってたんだけど、Chromeの最新の仕様変更に追従しなくなって動かなく…

VSCode (Cursor) のTerminalでもzellijを自動起動したい

zellij.dev 最近、zellij を使ったワークフローが手に馴染んできたので、VSCode (実際は Cursor 使ってる) の Terminal でも自動起動するようにした。 ドキュメント によると eval "$(zellij setup --generate-auto-start zsh)" って書いておけば自動起動で…

zimの初期化周りが変わっていたので追従した

blog.nishimu.land zsh に戻ってから引き続き zim を使っていますが、久しぶりに眺めたら初期化方法が変わっていたので追従した。 まずは zim のアンインストール手順を実施して、既存の設定などを全て削除した。 具体的には .zshrc の先頭に書いていた初期…

launchctlに環境変数を渡したい

colimaを使い始めてからmacOSを再起動するたびに設定などがまっさらになるという自体に頭を抱えていた。 これは XDG_CONFIG_HOME 以下じゃなくてホームディレクトリに新規で .colima ディレクトリが作成されてしまうからっぽい。 ホームディレクトリの設定が…

goplsのnoSemanticXXXの設定が非推奨になった

blog.nishimu.land この記事で紹介した noSemanticString / noSemanticNumber が v0.18.0 で非推奨になった。 代わりに semanticTokenTypes が使えるのでこれで設定すると良い。 "gopls": { "ui.semanticTokens": true, "ui.semanticTokenTypes": { "string"…

Docker Desktop から colima に移行した

github.com Docker Desktop を使い続けてきたけど、別にGUI要らんなとなっていたので colima に移行しました。 まずは Docker Desktop をアンインストールする。停止したあとバイナリを削除して、~/.docker をまるごと消しました。 最初、./docker を消して…

GhosttyでSSHした先でBackspaceなどが入力できない

仕事始めということで年末に移行した Ghostty からSSHしたら制御シーケンスが入力できなかった。 調べたら TERM に xterm-ghostty が設定されていて、これが接続先の terminfo に登録されていないことが問題だった。 ghostty.org 公式にドキュメントがあるの…

「Tidy First?」を読んだ

www.oreilly.com Kent Beck 御大による、ソフトウェア設計に関する書籍シリーズの第一弾である「Tidy First?」を読みました。 この本では開発中に散らかってしまうコードをいかに片付けて、読みやすい状態を保つかについて説明されます。 ソフトウェアの設計…

tigでfixupを簡単にする

2つ以上前のコミットを修正したいときに --fixup を使うのは近年ではよく知られている。 $ git commit --fixup <commit> $ git -i --autosquash <commit>~ # rebase.autosquash = true にしておけばオプションは不要 しかし、この方法だと毎回 $EDITOR が開いてしまいちょっ</commit></commit>…

zshの補完関数が適用されなくて困った

めっちゃしょうもない話だけれど、新しく追加した補完関数がどうしても適用されなくて困っていた。 fpathが通ってないのかと思ったけどそんなこともない。 $ echo $fpath | tr ' ' '\n' | grep '目的のファイル' うーんと唸ってChatGPT先生に聞いてみたらキ…

VSCode Neovim に移行した

きっかけ 産まれてからずっと Vim キーバインドで生きてきました。 エディタは Vim → Atom → Emacs → VSCode と渡ってきたけど、いつだって Vim キーバインドです。 もちろん VSCode でも VSCodeVim を使ってきました。 こいつはVimの動きを頑張ってエミュレ…

パターン認識

最近、意識が高まって LeetCode を一日一問ずつやっています。 正直、Easy でもだいぶ苦戦していて、基礎の出来てなさに凹む毎日です。 ところで、現代では ChatGPT というSFチックなサービスが存在します。何かを学ぶときに補助してもらうことで、知の高速…

Hyper Key べんり

最近、Hyper Key という概念を知った。 概要 masOS だと Control+Alt+Shift+Command 、Windows だとControl+Alt+Shift+Win を同時に押すことを言うようです。 現代では失われた物理的な Hyper Key に代替しようということだと思ったけど経緯はあんまり分かっ…

AppleScriptでSlackの特定チャネルに定型文を投稿する

Slackの特定のチャネルを開いて定型文を入力したい。具体的にはAPIでは発火できないスラッシュコマンドを実行したい。 特定のチャネルを開く簡単な方法は、Slackアプリに用意されている Deep Link を使うことです。 この場合は slack://channel を使うと目的…

GitHub Copilot Chat 舐めていた

marketplace.visualstudio.com GitHub Copilot と直接会話できる Copilot Chat 、皆さん使ってますか? 私は最近まともに使い始めました。 Copilot と言えば補完だけだと思っている人、以前ちょっとだけ触れて使えないと思った人(僕です)、いまのバージョン…

VSCodeでGoの文字列内のSQLをシンタックスハイライトしたい

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…

Gitの設定を見なおした

先日ホットエントリーに上がっていた以下の記事を読んでやる気を出して整理した。 jvns.ca 記事からは以下を取り入れて、あとは不要なものを消したりして回った。 branch.sort -committerdate ブランチをコミット時刻で並べる diff.algorithm histogram diff…

フィーチャフラグを扱うときのささやかなTIPS

この記事は クラスター Advent Calendar 2023 19日目の記事です。 昨日は ChameleonO2 さんの「何か」でした。公開楽しみですね。 クラスター株式会社でソフトウェアエンジニアとして働いている id:Sixeight です。 クラスターではトランクベース開発を実現…

Arcは良いぞ

arc.net 最近はメインのブラウザを The Browser Company の Arc にしている。(会社名の主語がでかくて好き) これまでのブラウザのように一時的なタブを開いて読んだら閉じるみたいな体験ではなくて、常に開きっぱなしのタブと、一時的なタブとを分けているの…

雑に書いてから綺麗にする

最初から綺麗なコードを書き下せる人もいると思うけど、自分の場合はそこまで優秀ではないので最初から綺麗なコードが書けない。 どちらかというと既存のコードを綺麗にしていく方が得意なので、ゼロから書くときもその特性を活かせるように意識している。 …

「スタッフエンジニア」を読んだ

スタッフエンジニア マネジメントを超えるリーダーシップ作者:Will Larson日経BPAmazon 前職でいちどマネージャになったが、現職ではソフトウェアエンジニアとして働いている。 マネージメントの経験はとても役に立っているが、やっぱりソフトウェアエンジニ…

Goで特定のパターンのリファクタリングをASTを弄って自動化した

これは日記です。技術記事ではないので読みやすくはないです。 仕事のコードで特定のパターンでちょっと泥臭く書き換える必要のあるリファクタリングが必要になっているのだけれど、単純計算で100ファイル、1000箇所以上の書き換えが必要になっている。 これ…

ARRAYFORMULAでMAXって書けないのでLAMBDA関数を覚えた

TL;DR BYROW と LAMBDA関数 を使いましょう。 本文 Google スプレッドシートを使っていて、なんかこういうデータがあったときに、各行の MAX を取りたくなったとする。 賢明なみなさんは =MAX($A1:$D1) って書いたあとに各行に適用していきたい気持ちをぐっ…

「macOS カーソル強制バインディングのすすめ」の最近の様子

qiita.com この記事を読んでから実践してきたのですが、今回新しいPCに変わって設定しなおそうとしたら karabiner-elements がアップデートされていてなんかかっこいい感じになっていて UI からは JSON のインポートが出来なさそうな感じになっていました。(…

Gitのおすすめエイリアス5選

motemen.hatenablog.com 触発されて自分も地味だけどよく使っているのを紹介します。 変更を無視してpullする (git st-pull) st-pull = "!git stash && git pull && git stash pop" 手元に変更があってまだコミット出来ないけど、最新の変更をpullして持って…

ひさしぶりにzshに戻りました

仕事用のマシンをM1 MacBook Proに交換してもらったので、開発環境を整え直しました。 2年ほど fish を使ってきたのだけれど、普段は良いのだけれど、ちょっと自動化したくなったときに、やはりPOSIX準拠じゃないシェルはなかなか難しかった。macOSの標準も …

N+1なの? 1+Nなの?

N+1 ってクエリを投げる回数とすると 1+N の方が自然な気がしてるんですが、自分の理解が間違ってますか。— 赤田首里殿内(沖縄県民謡) (@tomohi_ro) 2022年3月15日 合ってると思います! (人によって1+Nって言う派もある印象)— INA Lintaro (@oarat) 2022年3…

CircleCIの小手先による高速化手法

この記事は Money Forward Engineering Advent Calendar 2021 - Adventar の6日目の記事です。 昨日は TONY (id:galepilot) さんによる「チームで実践したKPTのボリュームを増やすコツ」でした。 ふりかえり、なんとなくやってしまうと惰性になるのでちゃん…