経験は何よりも饒舌

10年後に真価を発揮するかもしれないブログ 

Go

etcdのgRPCコードリーディング

Do'er Advent Calendar 2022の22日目です。etcdとは「a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines」であり、KubernetesやR…

mackerel-agent configtest によるチェック強化の実装について

Mackerel Advent Calendar 2022 15日目です。mackerel-agent configtestによるチェック機能を強化したので実装を軽く紹介します。 github.com mackerel.io 何が変わったのか 次のようなmackerel-agent-sample.confを作成し、mackerel-agent configtestを実行…

『Go言語で作るインタプリタ』をTypeScriptで実装する(後編)

前編を書いたのが約1年前なので1年間かかってしまった。wafuwafu13.hatenadiary.comgithub.com ずっとやってたわけではなく、前回は2章までできたらいいかって感じで終わらせて、1年越しに再開してみた。 Commits · wafuwafu13/Interpreter-made-in-TypeScri…

Go の main goroutine が exit する場所

Go

ascii.jp を進めているメモ。 package main import "fmt" func main() { fmt.Println("Hello World!") } をVSCodeでデバッグして最後にexitするのはここ。go/src/runtime/proc.go#L277 go/proc.go at 912f0750472dd4f674b69ca1616bfaf377af1805 · golang/go …

mackerel-plugin-accesslogを中心にMackerelのコードを読んだ

グラフのラベル名をいい感じにする簡単なPRを投げた時のメモ。[plugin-aws-cloudfront]Replace label name of graph by wafuwafu13 · Pull Request #766 · mackerelio/mackerel-agent-plugins · GitHub 公式ブログを読めばなんとなく機能的な部分はわかった…

Go の Short variable declarations と Named return values

Go

go-mp4という、mp4ファイルをパースしてくれるGoで書かれたライブラリがあった。 Goに慣れるため、golintのカバレッジを上げるPRを出してみた。github.com自分の書いたコードで、:=ではno new variables on left side of :=というエラーが出たけれど、代わり…

自分のPRを見て思う、TableDrivenTestsの良さ

jdという、commandline utility and Go library for diffing and patching JSON valuesなライブラリにTableDrivenTestsを導入したので、その良さを主観的にまとめておこうと思う。github.comgithub.com まずは、実際にdiffの一部を見てみる。 https://github…

GoでPythonのrandom.shuffle()を実装し、カイ二乗検定を用いたユニットテストをする

背景 Goでコントリビュートできそうなレポジトリを探していると、goshというレポジトリがあった。 これは、JavaScriptやPythonでの構文をGoで書く、というものだった。 面白そうだったので、Pythonのshuffleを実装し、PRを出そうと思った。 Pythonのshuffle…

『Go言語で作るインタプリタ』をTypeScriptで実装する(前編)

後編はこちら wafuwafu13.hatenadiary.com O'Reilly Japan - Go言語でつくるインタプリタ を2章までTypeScriptで実装しました。この本を手にした動機は、 Goの文法を学習したついでに低レイヤーにも手を出したかった 分量的に手が出やすそうだった TypeScrip…