ちなみに

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

技術

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のボリュームを増やすコツ」でした。 ふりかえり、なんとなくやってしまうと惰性になるのでちゃん…

細かくリリースする

半年分のブランチをビックバンリリースするのですが、二度とこんな悲劇を繰り返してはいけないという気持ちです。— pitter, patter (@tomohi_ro) 2021年10月28日 合計すると7ヶ月分くらいのブランチをビッグバンリリースするという経験をしました。 サービス…

Internet Explorer のサポートを切ると何が嬉しいのか

社内勉強会向けにまとめた資料から社内特有なところを削除したものです。 ゴール JavaScript と Web API の違いが分かる Internet Explorer のサポート終了によって何が変わるのかが分かる Internet Explorerとは マイクロソフトのブラウザ Windows 95向けの…

jqで簡易テンプレート

たとえばSlackの Incoming Webhook でメッセージを送るときに、メッセージ部分だけを置き換えてJSONを組み立てたいことがあります。 プログラミング言語が使えるなら簡単なんですが、ちょっと大げさな気もするので jq だけでJSONを組み立てられるとべんりそ…

久しぶりに Gem を作った

github.com リハビリも兼ねてちょっと欲しかった Gem を作ってみました。 作り始める前に調べていたつもりだったのだけれど モロかぶりしているGem がすでに存在して名前もまったく一緒だったので諦めて simple みたいな無意味な名前になってしまった。 やり…

新しいdocker composeで特定サービスのコンテナIDを得る

docker-composeで特定サービスのコンテナIDを得たいことがある。例えば docker attach したいときとか。 これまでなら以下のように書くと web サービスだけのIDが取得できた。 $ docker-compose ps -q web しかし、新しい Docker Compose CLI では ps サブコ…

git open

いま見ているリポジトリのブランチをGitHub上で見たいときがあります。 最近だと GitHub CLI を使うのが便利なので使っているのですが、毎回 gh repo view -w みたいに書くのも面倒なので以下のような alias を設定して使っています。 open = !gh repo view …

zshのキーバインディング

社内でVSCodeのターミナルで ^A^A^A みたいになって困るみたいな話があって気になったので調べてみた。 In addition to these names, either ‘emacs’ or ‘viins’ is also linked to the name ‘main’. If one of the VISUAL or EDITOR environment variables …

Organizationのリポジトリをまとめてcloneする

生きているとGitHubのOrganizationのリポジトリをまとめてcloneしたくなることってありますよね。僕はあります。 1つずつちまちまcloneするのは大変だし、数が多いと物理的に難しい場合もあります。 しかし、近年では ghqや gh のような便利なツールが揃って…

iTerm2で最後に実行したコマンドの出力結果をコピーする

iTerm2のこれ、顧客が求めていたものって感じがする。 pic.twitter.com/Q3Y4qsl379— CHANCE feat. 中村佳穂 (@tomohi_ro) 2021年1月23日 iTerm2 の Shell Integration ってやつをやってみたところ、便利な機能がいろいろ使えるようになったのだけれど、Selec…

Visual Studio Code で編集中のテストコードを実行する (RSpec編)

百番煎じくらいだと思うけど Visual Studio Code の Tasks で開いているファイルに対して RSpec を実行出来るようにした。 .vscode/tasks.json に以下を書いておくと、Tasks: Run Test Task コマンドから実行できます。 失敗したテストは Problemsに表示され…