emahiro/b.log

Drastically Repeat Yourself !!!!

Alfred -> Raycast に移行した

Overview タイトルのとおりですが、PC のランチャーアプリを長年愛用していた Alfred を一旦辞めて流行りの Raycast に移行してみました。 www.raycast.com 特にこれ!というものはなかったのですが、流行りに乗ってみようという単純な動機です。 便利なとこ…

Prezto をやめて sheldon に移行して zsh の起動速度を改善してみた

これはなに? zsh のプラグインマネージャーとして Prezito を使っていましたがこれをやめて sheldon に移行したログです。 sheldon とは? Rust 製のシェルのプラグインマネージャー。 Rust 製だけあってそもそも高速です。 brew でインストールできますが …

社会人10年目が終わった

社会人 10 年目が終わって、11年目になった。 2014年から社会に出たときには、先のことなんか何も考えられてなかったけど気づいたら10年が過ぎてしまった。 10年目まではちゃんと数えておくか、と思っていたのもあり、来年以降は「社会人N年目」みたいなカウ…

VSCode で delve を使った Debugger の環境を整える

go

Overview Go + Delve の利用環境を VSCode について記載します。 動機 普段の開発ではずっと古き良き? print debug を使って動作確認を行ってきていました。 もちろん手元の開発だけでなく remote での動作確認等では今でもこれよりシンプルで一般的な手法…

Amazon Pinpoint で S3 上のファイルからセグメントを作成する

Overview 用語の整理 実装方法 利用する API ファイル形式 ハマったところ Pinpoint -> S3 に触る role を設定する 余談 Overview Amazon Pinpoint という AWS が提供してるマネージドCRM ツールを使ってセグメント(配信対象)を S3 上のファイルから作成す…

cloud.google.com/go/bigquery.Query の結果を go test の中で mock する

Overview やること Query Operation の場合 ハマったところ BigQuery のライブラリでどの API を Call しているのかわからなかった。 BigQuery の API のレスポンスを生成する Overview BigQuery を使った実装をしているときに、API リクエストを mock した…

現職で5年目を迎えた

3/1 で現職に努めて 4年を終え、今年から 5 年目に入る。 今までのキャリアで3年以上同じ会社に努めたことはないので、現在進行系で最長在籍記録を更新中でもある。 3年もいると色々飽きてくるタイプではあるけど、毎年少しずつ違ったことにチャレンジさせて…

VSCode のターミナルで間違ったコマンドを叩くと beep 音が鳴る

気づいたら突如 VSCode に integrate されている terminal で間違ったコマンドを実行したりすると beep 音が鳴るようになっていたのがうるさいので off にします。 これ、a11y のサポートが入って音が鳴るらしいのですが、なんでこの設定が強制的に on にな…

actions/setup-go で Go のバージョンを指定する

actions/setup-go は Go のバージョンを指定しないとデフォルトで Go1.20 が使われているっぽい挙動に出くわしたので Go のバージョンを指定する方法のメモ。 github.com 気づいたきっかけは local で使用してる Go のバージョンと CI (GitHub Actions 上)…

BigQuery のクライアントを Go で実装する

Overview Go で BigQuery のクライアントを実装する BigQuery のライブラリは 2種類ある BigQuery の型はそれぞれ Go で対応する形が決まっている カラム名とフィールド名は一致させる必要がある 余談: ValueLoader を実装すると独自型を BigQuery の型を pa…

git コマンドが重たくなったら git gc コマンドを使ってみる

git

Overview git gc が便利という話です。 git push が重たい ここ1年くらい git コマンドがものすごく重たい事象に直面しており、特に git push したときに 10秒くらい待たないと push が完了しないという事象が発生してました。 github も頻繁にアプデ繰り返…

子供と過ごす初めての冬休み

まえがき 子供過ごす初めての年末年始だった その他 年末年始のテレビ番組は結構面白い 年末年始は断捨離が捗る 年賀状を書く まえがき 人生で初めて子供と年末年始を共に過ごしたので思ったことを備忘録として書いておく。 子供過ごす初めての年末年始だっ…

2023 年の振り返り

まえがき 子供が生まれた & 育休を取った 筋トレの頻度が増えた 自分の作ったプロダクトが TVCM で放映された 数年ぶりに個人開発した ブログ継続した 来年の話 2023年の買って良かったもの HHKB Studio 大きな本棚 オーブンレンジ SIXPAD パワーガン iPhone…

go-cmp/cmpopts を使って map の特定の key のみをフィルタする

go

Overview cmpopts.IgnoreMapEntries を利用する Ref Overview go-cmp を使って実際取得した値と期待値を比較するときに go-cmp/cmpopts を使って、二値の比較のオプションを設定することが出来ますが、この二値が map のときに map の中の特定の key に紐づ…

育休から復帰してみて変わったこと

はじめに About Me 週末の過ごし方が変わった 出かける先が変わった 通勤が嫌いじゃなくなる スキルアップのスタンスが変わる 一日のやることを極限まで絞る その他 政治に興味を持つようになった 良い父親像みたいな理想を捨てる おわりに はじめに これは…

AWS Go SDK でのエラーハンドリングについて

AWS の Go SDK はその本体のコードを読もうとすると実装がものすごく抽象化されていて、慣れていないと実際のコードを追いかけることも結構難しい。 Go の実装でエラーの中身(型)を見て処理を変えたいケースやそもそもどういうエラーを返すのかを知りたい…

配列形式のクエリパラメータを受け取る実装について考えてみる

go

Overview Motivation 実装パターンについて GET /user?id=1,2,3 のパターン GET /user?id=1&id=2&id=3&id=... のパターン GET /user?id[]=1&id[]=2&id[]=3&... のパターン RFC 3986 を見る まとめ Overview ID=1, ID=2,... のようにクエリパラメータで指定し…

VSCode で CUE を書く

Overview VSCode で CUE を書くときの設定です。 手順 CUE の Install cuelang.org 上記の公式ドキュメントに書かれてる通りに進めればよいです。 僕個人は go コマンドでインストールするのが好みです。 CUE を入れたら cueimports を使うために PATH を通…

『STAFF ENGINEER』を読んで自分のこれからについて少し考えた

Overview 読書メモ キャリアの方向性について スナッキングを避けること インパクトのある仕事をすること 肩書の重要性 結局のところ Overview 『スタッフエンジニア マネジメントを超えるリーダーシップ』を読んで、この本に書かれていた内容が自分自身の「…

OpenAPI3 で外部ファイルの定義を参照する

Overview 業務で利用してる OpenAPI3 に置いて、Endpoint の定義間(api と admin みたいな)で共有したいコンポーネントがあり、それを外部ファイルに定義したときに、各定義で参照する方法を調べたので備忘録として記載します。 やり方 $ref にファイルパ…

gonew コマンドを試してみた

go

Overview gonew とは? gonew を使う まとめ See Also Overview gonew コマンドを触ってみたので備忘録です。 go.dev gonew とは? 既存の Go のプロジェクトからコピペで作らずに、そのプロジェクトをテンプレートとして新規の Go プロジェクトを始める事が…

cockroachdb/errors でスタックトレースを取得するのが良さそうだった

go

Overview Go でエラーハンドリングするときにどこでエラーが発生したのかわかるように StackTrace を取得して、エラーメッセージと一緒に出力したいケースがあると思いますが、Go でStackTrace を取得するのはひと手間かかります。 「Go スタックトレース」…

遠出の練習をしてきた

Overview 週末にジャスコに行くお父さんムーブの実績をとりあえず今日解除した(ただ疲れた)— Ema (@ema_hiro) 2023年8月13日 娘の月齢がもうすぐ3ヶ月を超えるので、遠出の練習に越ヶ谷レイクタウンまで行ってきました。 首もだいぶ安定して体もがっしりし…

育休から復帰しました

Overview 育休について 育児について 買って良かったもの ~育児編~ Amazon Echo 調乳ポッド バウンサー ベビーモニター リンサークリーナー 番外編1 - あって良かったもの 車 ドラム式洗濯乾燥機 家 番外編2 - 使ってるアプリ・サービスなど ぴよログ みてね…

Cloud Functions で ImageMagick 使って OGP 画像を生成・表示する

Overview 自前で OGP を生成する 何を使って画像を生成するか Next.js で用意されてる OGP 向けの機能を利用する Puppeteer を利用してキャプチャする ImageMagick を利用する 準備 ImageMagick での実装 補足 生成した画像の保存先 ビルド時に CloudFunctio…

GitHub Actions で CloudRun にデプロイする

Overview 準備 Cloud Run のデプロイ方法 環境変数を追加する 権限について 権限付与手順 サービスアカウントの作成と借用権限の設定 権限の追加 GitHub Actions の設定ファイル source からデプロイする場合 Docker Image からデプロイする場合 See Also Ov…

http.Request をコピーする

go

Overview どういうケースか? 結論: Clone してから Body に詰め直す まとめ Overview Go の http.Request を二度読み込みしたいケースでハマったのでその備忘録です。 どういうケースか? API を書いていると認証・認可等のAPI全体に関わる共通の前処理を m…

ポートフォリオサイトを Nuxt3 から Next に乗り換えた

Overview なぜ変えようと思ったか 移行手順 Memo Font を変更する スタイルをあてる Static page を生成する。 Static export を設定してる状態では Image をそのまま使うには最適化モードを false にする。 favicon を設定する 雑感 Overview 自分のポート…

Nuxt3 での static page の生成には nuxi generate を使う

Overview Firebase とのかみ合わせの問題 とはいえ Overview タイトルの通りですが、Nuxt3 で静的ページの機能しか使っていないケースにおいては nuxi build じゃなくて nuxi generate を使おうね、という話です。 Firebase とのかみ合わせの問題 Firebase H…

Firebase Deploy で Failed to get details for project というエラーが出たのでその調査

Overview 対応 See Also Overview 自分のポートフォリオサイトをメンテナンスしたときに Firebase 周りの設定も最新の状況に合わせて色々更新したところ、Deploy 時にエラーが発生するようになっていたので、その調査と修正の備忘録です。 主に必要だった内…