ちなみに

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

技術

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に表示され…

fishに移行しようとしている話

三行 zsh から fish に移行した ほとんど設定してないけどいい感じになった (設定) しばらく使ってみて様子をみたい 経緯 10年以上 zsh を使ってきて、以前はこだわりをもって設定を書いていたが、だんだん面倒くさくなってきた。 デフォルトでいい感じにし…

certbot renewした

前回のあらすじ blog.nishimu.land ふと気づくと更新期限が明日だったので証明書の更新をした。 これまでは、チェックアウトしたリポジトリで ./letsencrypt-auto renew していたけどそもそも certbot に名称変更しているし、権限の問題で実行できなくなって…

試行錯誤の過程

試行錯誤しながら作ってて、いろいろやった結果、何が良かったのか分からないけど解決してしまうことがある。 何が決め手でうまくいったのか、何が本当の原因だったのか。 記憶力がないので過程を覚えておけないので、適度な粒度で勝手にコミットされてたい…

Let's Encrypt で発行した証明書を更新した

sixeight.hatenablog.com 上記のエントリで無駄にHTTPS化していたのが、三ヶ月経って更新時期がやってきた。 完全に忘れていたのだけれど、以下のようなメールがやってきて教えてくれて助かった。親切。 Your certificate (or certificates) for the names l…

いま聴いている曲の iTunes Store での trackId を取得する旅

2016年3月30日に京都で開催された 関西モバイルアプリ研究会 #12 で、iOS 9.3 に追加された、Apple Music 関連のAPIについて紹介しました。 Apple Music は月額料金を払えば、ストリーミングで音楽を聴きまくれる最高のサービスなので、使ってない人はいます…

Let's Encrypt で個人サイトを HTTPS 化した

Universal Linkについて調べていて、HTTPSが必須っぽいし、今後いろいろ実験するのにもHTTPS化しておいて損はなさそうなので、静的なHTMLしか返してない自分の持っているサイトを無駄にHTTPS化した。 https://github.com/letsencrypt/letsencrypt 証明書買わ…

ご長寿

0.0.3の方のライフゲームに添付したシンメトリーのパターンをいじってたら、265生きるパターンを発見。 ダイハードより長い。(追記) 記録更新、370世代(追記) 記録更新、450世代 [ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,], [0, 0, 0…

Kanasan.JS prototype.js CodeReading#3 開催のお知らせ

「みんなに誤解され、そして現在ではみんなに愛される言語、それはJavaScript。 みんなでJavaScriptと戯れましょう。」WEB系のプログラマも、そうでないプログラマも、プログラマじゃ無い人(おすすめはしない)も。 みんなで、JavaScriptと戯れましょう。 …