Overview 1. そのまま prorovalidate を書く 2. 外部の定義を利用する google/protobuf/timestamp.proto を利用する googleapis/googleapis/datetime.proto を利用する その他 google/protobuf は外部の定義を確認したいときに確認する カスタムエラーメッセ…
Overview ※ Firebase Go SDK のお話です。 Firebase を始め、GCP の公式の Go のライブラリは interceptor 等を公式で提供していないことが多く、local でテストをするときに GCP のライブラリそのものをモックするのが一般的なテスト方法かと思いますが、そ…
Overview なぜ protoc プラグインを自前で用意したくなったのか カスタムプラグインの作成 まとめ Overview protoc のプラグインを自分で書いてみたのでその備忘録です。 なぜ protoc プラグインを自前で用意したくなったのか ちょうど業務で RBAC 制御の実…
Overview buf.gen.yaml で local の protoc コマンドを hook して実行するときに go tool 経由で実行すると個人の環境差異にとらわれずに実行できて便利、という話です。 Motivation proto からコードを生成するときに、今では buf generate を利用するのが…
ソースコードレビューをしてて 他の人のコメントに引きづられて、コードをちゃんと自分事として見れない。 シンプルに他の人のコメントが自分がレビューするときに邪魔 と思ったことはありませんか? 自分は過去何度もあります。 他の人のコメントが見えなけ…
Cluade Code を体感して、"驚いてしまった" ことは前回のエントリに書いたのですが、このツールを触ってみたことでもの作り、特にソフトウェア開発における不可逆な変化を感じたので雑文として書き残しておきます。 ema-hiro.hatenablog.com なお、明日には…
Overview 巷で大流行の Claude Code ですが、6/5 のアップデートで MAX プランに加入せずとも Pro プランである程度(Opus は使えないけど)使えるようになったので試してみて、そして衝撃を受けました。 今まで Copilot だ! Cursor だ!モデルは何だ!など…
Overview www.apple.com WWDC 2025 で発表された apple/container を触ってみました。 github.com How to use 以下にすべて書いてますのでここに書いてある通りにして実際にコンテナを立ち上げることができました。 how to tutorial 再起動後に container sy…
昨日 5/26 日で 35 歳になった。 そして世間で言うアラフォーというやつについに足を突っ込んだ。 今月第二子が生まれていて、プライベートはものすごくてんやわんやしているので、自分がまた1つ歳を重ねたという実感は実はあまりない。 35歳になったらキャ…
Overview 背景 結論 そもそもなぜこんなに Obsidian と Cursor が流行っているのか Overview Obisidian と Cursor を組み合わせてインプットのワークフローを構築するのが最近流行っていて、気になっていたので自分なりにこのインプットワークフローを組んで…
GW 中の 5/2 に2人目が生まれ、2児の父になりました。 2年ぶりの新生児の育児ですが、1度経験してるにも関わらずやったことは全て忘れていて、かつ上の子はちょうどイヤイヤ期真っ最中なのもあってとにかくバタバタでカオスな毎日が続いています。 というわ…
Overview なぜ戻ったか? Cursor への不満と今後への不安 Overview タイトルの通りなのですが、AI Coding ツールとして Cursor を利用してきましたが最近 Copilot の利用に戻っています。 なぜ戻ったか? 最大の理由は VSCode との親和性と Copilot がものす…
サマリ Mastra に続いて簡単に MCP サーバーを立てることができる FastMCP を触ってみました。 github.com こちらも TypeScript で記述可能でした。 実装 書いたコードは以下に置いています。 github.com 今回は Gemini の API Key を使った Gemini wrapper …
サマリ Mastra とは 入門してみる Scaffold する 各種機能を使う MCP と連携する 使ってみての感想 ML や昨今の LLM のバックグラウンドに詳しくなくても実装できる Typescript で統一できる 総じて体験は良い サマリ Agent を作成する OSS のフレームワーク…
サマリ GitHub MCP Server とは 試してみた 使い所 サマリ GitHub - github/github-mcp-server: GitHub's official MCP Server が公開されたので試してみました。 一般的な GitHub で行いたい操作はだいたい自動化されています。 workflow (Github Actions) …
Overview Cursor Editor の @PR エイリアスを利用したコードレビュー セルフレビューの効用 タイポの軽減 プルリクの Description の出力負荷経験 レビュイーの負荷軽減 ケアレスミスを軽減できる価値 Overview Cursor Editor でプルリクエスト作成前に "セ…
Overview AI Coding との付き合い Cursor との出会い 開発パラダイムの変化と生産性への影響 プレーンテキストの価値 MCP に感じた未来 まとめ Overview 最近話題の AI Coding *1を先月末から始めてみました。実際に使ってみて得られた気づきや、個人的に「…
今日で現職6年目を迎えた。 (アルバイト期間を含めているので厳密には今月中旬が正式な6年目ではある) 5年目を迎えたときのブログを書いたが、あっという間に1年経ってしまった。 ema-hiro.hatenablog.com 現在進行系で最長在籍記録を更新中である。毎年思…
Overview Go 1.24 から encoding/json に入った IsZero のインターフェースについて実際に触ってみて挙動を調べてみました。 IsZero とは? When marshaling, a struct field with the new omitzero option in the struct field tag will be omitted if its …
もともと GitHub Actions で Go のバージョンを指定するときは matrix 構文を使って go のバージョンを渡していた*1が、今は actions/setup-go で指定できるようになっていたことを知らなかった。 zenn.dev Go は下位バージョンとの互換性を保っていてくれる…
Overview キャリアパスから組織を考える エンジニアの貢献を評価してもらうのは難しい。 報酬は経済が決めている 組織の中のお金の理屈 都度発注ではなく年間の概算で予算を立てる 削減する方向ではなく、伸びていく方向に目を向ける 維持する予算は新しく何…
Overview 年末年始に 『Read Write Own』 を読んだのでその読書録です。 この書籍は a16z のクリプト関連のトップなのでポジショントークは含まれていますが、LLM が世間を賑わせている昨今にあってブロックチェーンの話はあまり追っていなかったので、ブロ…
Overview 年末に話題になっていた『Tidy First?』を読み、その中の第3部で「整頓」をいつ行うべきか?という話が金融の世界の話と絡めて説明されており、この言語化が今の自分には非常に示唆に富む内容だったので、読書ノートとして記録します。 Tidy First?…
まえがき 育児編 忙殺 保育園の洗礼 子どもの成長 自分の体調管理に気を使うようになる 早起きになる 私生活編 筋トレ続ける プラモデルを始める 仕事編 ベンダーマネジメントの業務を始める テックリードに戻る 来年の話 まえがき 年の瀬なので今年1年を振…
Overview 買って良かったもの ガジェット M2 Mac mini AirPods4 Link Buds Open iPad mini7 生活用品 サンワサプライ 電源タップ SHARP プラズマクラスター ハイブリッド加湿器 ヒップシート Hugoo 書籍 エレガントパズル スタッフエンジニアの道 ―優れた技…
Overview ema-hiro.hatenablog.com 上記で書いた gRPC サーバーを local で立ち上げる方法を下に、local で起動したその gRPC サーバーを利用して pubsub の動作(今回は subscriber の動作)をエミュレートするテストを書いてみます。 local でテスト用の pu…
Overview タイトルのとおりです。 このエントリは local で簡単に gRPC サーバーを起動して GCP のライブラリの簡易的な動作検証環境を整えたときの備忘録になります。 モチベーションとしては、単体テストと書いてますが、主に GCP のライブラリの動作を lo…
Overview やったこと 事前準備 当日 結果 振り返り 良かった(と思ってる)こと 反省点 その他 (感想戦) Overview isucon 14 に参加した。 今年の目標は去年の点数を超えることと最終30位に入ることだった。 結果: 未達(惨敗) やったこと 事前準備 SRE のメ…
pkg.go.dev Go のファイルを text ファイルにアーカイブするコマンドが純正で用意されているということを教えてもらって初めて知りました。 以下のように使うと指定したディレクトリ配下の Go のファイルをすべて任意のファイル形式でにアーカイブ出力してく…
この記事がちょうど400記事目です。 300記事のときの振り返りはこちら。 ema-hiro.hatenablog.com 300記事から 400 記事まではだいたい 2年半くらい時間が空いていました。200 記事から 300 記事までは2年ちょっとくらいだったので、エントリを各頻度という…