2025-01-01から1年間の記事一覧

alecthomas/kongでユーザー定義型(Custom decoder)を使う

github.com For more fine-grained control, if a field implements the MapperValue interface it will be used to decode arguments into the field. package main import ( "fmt" "os" "github.com/alecthomas/kong" ) type Foo struct { Value string } …

GolangでDNS権威サーバを書いてfly.ioで動かす

任意のプラベートIPを返すような動的なDNS権威サーバが欲しくなったので調べたところ github.com/miekg/dns というライブラリでサクッとかけそうだったので書いてみた。 net/http を模したライブラリで、DNSサーバを簡単に書くことができる。 github.com pac…

Pull Requestへのコメントでlambroll deployを実行する

AtlantisのようにPull Requestが作成されたタイミングでlambroll deploy --dry-runが実行され、/deployとコメントすることでlambroll deployが実行されるGitHub Actionsのワークフローを作ってみた。 デモ デプロイされたら自動でマージされる エラーになっ…

Fine Software Writings ( www.aoky.net ) にアクセスできなくなっている

11月くらいから Fine Software Writings にアクセスできなくなっている。 https://t.co/tOW2x14Dvo にアクセスできない???— Genki Sugawara (@sgwr_dts) 2025年11月12日 閉鎖したという話は聞いてないし、まったく騒がれていないので、自分の環境の問題か…

Pull Requestで最新のコメント以外は最小化するやつ

github.com デモを見るとやりたいことはわかると思う。 terraformのGitHub Actionsのドキュメントでは古いコメントを削除しているが、Atlantisでは --hide-prev-plan-comments オプションで古いコメントを最小化するようになっており、その開発体験がよかっ…

宣言的スキーマ管理のためのデータマイグレーション

宣言的スキーマ管理をする場合に「データマイグレーションをどうするか」という課題があって、Ridgepoleについては「データマイグレーションはほかのツールでやってほしい」というポリシーで開発してきた。 C社にいた頃はLiquibaseを使って「GitHubにSQLファ…

テストの時だけメソッドをはやす

main.go package main import "fmt" type Foo struct { I int J int } func (foo *Foo) Sum() int { return foo.I + foo.J } func main() { foo := &Foo{1, 2} fmt.Println(foo.Sum()) } helper_test.go package main import ( "fmt" ) func (foo *Foo) Dump…

terraform-provider-googlesheetsを作っていた

terraformからGoogleスプレッドシートの値を取得したいことがたま〜にあるので、少し前にスプレッドシート取得用のproviderを作った。 github.com サービスアカウントにスプレッドシートを共有して シート名とレンジを指定するとその範囲のデータをJSON文字…

pgx/v5でstring配列をやりとりする

github.com/jackc/pgx/v5 v5.7.6 での検証 pgx.Conn pgx.Connを使っている場合は、[]stringをそのまま使えるのであまり考える必要はない。 package main import ( "context" "fmt" "log" "github.com/jackc/pgx/v5" ) func main() { ctx := context.Backgrou…

Google Apps Scriptからのアクセスを雑に認証する

Google Apps ScriptからプライベートなサービスのAPIを呼び出す場合、何らかの認証が必要になるので、GASから取得したOAuth2アクセストークンを検証するプロキシサーバを作ってみた。 github.com 仕組み ScriptApp.getOAuthToken()を使うと有効なユーザーの …

cron(5 10 31W * ? 2027) はいつ実行されるか?

EventBrigeのcron式のパーサ cronplan に以下のようなバグ報告があった。 github.com 5 10 31W * ? 2027の出力が cronplan とEventBridgeのコンソールで異なるとのこと。 Wはmonth-of-dayの末尾につけると、指定した日付が平日ではない場合、近い平日に寄せ…

terraform-provider-lambdazipにJavaScript・Go・Python・Ruby・Rustのデプロイ例を追加した

TerraformでLambdaをデプロイするためのプロバイダ terraform-provider-lambdazip にJavaScript・Go・Python・Ruby・Rustの例を追加した。 github.com JavaScript https://github.com/winebarrel/terraform-provider-lambdazip/blob/main/lambdazip.tf.sampl…

TerraformでAWS Lambda(Python+C拡張)をデプロイする

terraform-provider-lambdazipを修正してPythonのデプロイにもある程度対応できるようになったのでメモ。 github.com ディレクトリ構成 pylambda/ ├── .gitignore ├── main.tf └── src/ ├── lambda_function.py ├── requirements.txt └── ruff.toml Pythonソ…

terraform-provider-firebaseremoteconfigを作った

一身上の都合により terraform-provider-firebaseremoteconfig を作った。 github.com こういう感じでFirebaseのRemote Configのパラメータを管理できる。 resource "firebaseremoteconfig_parameter" "foo" { key = "foo" value_type = "JSON" default_valu…

qube: Zstandard Seekable Format対応

自作のDB負荷テストツール qube を Zstandard Seekable Format に対応させた。 Zstandard Seekable Format is 何? github.com 名前の通りシーク可能なZstandardのフォーマット。 ファイル末尾にシークテーブルをつけて解凍しなくても任意のオフセットからデ…

terraform-provider-multireplaceを作った(が、すでにあった)

terraformのjsonencode()には<, >, &を \u003c, \u003e, \u0026 に変換するよく知られた仕様がある。 developer.hashicorp.com When encoding strings, this function escapes some characters using Unicode escape sequences: replacing <, >, &, U+2028, …

aws-sdk-go-v2を使ってDownloadCompleteLogFileをよぶ

gist758d768c2efb4b17b45ecb9d4e915c22 CLIも作った。 github.com 実はいにしえのgoamz(のフォーク?)が対応していて、それを使ったツールも作ったけど、SSOやAWS_PROFILEの対応が辛いので作り直した。リトライまわりは未対応

GitHub Actionsのmatrixのconclusionを後続のジョブで取得する

needs.job_id.result がいずれかのmatrixの結果しか返さない、っぽい。 GitHub ActionsのMatrix Jobsの結果を受け取るワークアラウンド Status check for a matrix jobs · community · Discussion #26822 Get status of parallel jobs into a single Webhook…

ssowrapというツールを作ったが特に必要なかった

ssowrapというaws2-wrapのGolang製シングルバイナリ版を作った。 github.com Golang版のaws2-wrapは頑張って探せばありそうだったけれど ぱっとみ、見つけられなかった 以前作ったSSOクレデンシャル出力ツールの再設計がしたかった ssowrapを含むDockerイメ…

縦型バッテリーアイコン

github.com