Claude Codeに読まれたくないディレクトリがあって、うっかり読み込まれたらいやなのでディレクトリ単位で暗号化できないか…ということをClaudeに相談したら「暗号化イメージを使うとよいのではないか」と提案されたのでやってみた。 まずディスクユーティリ…
メモ。 デプロイ デプロイ自体はlambroll deploy --region us-east-1を実行すればOK。 CloudFrontの更新 Lambda@Edgeでは$LATESTやAliasを使えないので、current Aliasからバージョンを探してCloudFrontを明示的に更新する。 export AWS_REGION=us-east-1 FU…
Ridgepole上でdiffyの処理に時間がかかっているという話があったので、Claude CodeにPure Rubyのdiffライブラリを作ってもらって、差し替えてみました。 github.com github.com Claude Code曰く とのこと。 3.2.0.betaとしてリリースしました。 悲鳴が上がら…
terraformのコードが以下の通り。 terraform ##################################################################### # API Gateway ##################################################################### resource "aws_apigatewayv2_api" "apigw2sfn"…
psqlのpagerをteeにしておけば直前のクエリの結果がファイルに記録されるので、それをClaude Codeに食わせられるな…ということでやってみた。 $ psql -h localhost -U postgres postgres=# \setenv PSQL_PAGER 'tee query.log'; postgres=# \pset pager alwa…
CodeBuildで同時ビルド数を一つに制限したいことがあって、そういうときはConcurrent build limitを1に設定して運用するようにしていた。 [Concurrent build limit] (同時ビルド制限) で、このジョブで許可される同時実行の最大数を設定します。 しかしConcu…
はてなブックマークは好きだけどあまり目にしたくないエントリもあるので、iPhone/iPadのSafari用NGフィルタ機能拡張を作った。 はてブフィルターGenki Sugawaraユーティリティ無料apps.apple.com github.com *1 ChromeやFirefoxの拡張はすでにいくつか存在…
アプリケーションからDBを使うときに読み込み専用のノードを作ってトランザクションの不要なクエリや重いクエリを読み込み専用のノードに投げるようにすることがよくある。 アプリケーションの全体の情報を保持する構造体があるとして、Writerノード・Reader…
先日、json2goというツールを作ったが、構造体のフィールドの順番がJSONと同じにならないのがいやで、なんとかならないかと調べてみた。 ObjectのanyへのUnmarshalがmap[string]anyに決め打ちされているのが原因で、ルートのObjectの型をなんとかすることは…
元旦の手隙な時間にjson2goというJSONをGoの構造体に変換するツールを書いた。 github.com $ echo '{"foo":"bar","zoo":[1,2,3],"baz":[{"hoge":10},{"fuga":20}]}' | json2go struct { Baz []struct { Fuga int `json:"fuga"` Hoge int `json:"hoge"` } `js…
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 } …
任意のプラベートIPを返すような動的なDNS権威サーバが欲しくなったので調べたところ github.com/miekg/dns というライブラリでサクッとかけそうだったので書いてみた。 net/http を模したライブラリで、DNSサーバを簡単に書くことができる。 github.com pac…
AtlantisのようにPull Requestが作成されたタイミングでlambroll deploy --dry-runが実行され、/deployとコメントすることでlambroll deployが実行されるGitHub Actionsのワークフローを作ってみた。 デモ デプロイされたら自動でマージされる エラーになっ…
11月くらいから Fine Software Writings にアクセスできなくなっている。 https://t.co/tOW2x14Dvo にアクセスできない???— Genki Sugawara (@sgwr_dts) 2025年11月12日 閉鎖したという話は聞いてないし、まったく騒がれていないので、自分の環境の問題か…
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からGoogleスプレッドシートの値を取得したいことがたま〜にあるので、少し前にスプレッドシート取得用のproviderを作った。 github.com サービスアカウントにスプレッドシートを共有して シート名とレンジを指定するとその範囲のデータをJSON文字…
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からプライベートなサービスのAPIを呼び出す場合、何らかの認証が必要になるので、GASから取得したOAuth2アクセストークンを検証するプロキシサーバを作ってみた。 github.com 仕組み ScriptApp.getOAuthToken()を使うと有効なユーザーの …
EventBrigeのcron式のパーサ cronplan に以下のようなバグ報告があった。 github.com 5 10 31W * ? 2027の出力が cronplan とEventBridgeのコンソールで異なるとのこと。 Wはmonth-of-dayの末尾につけると、指定した日付が平日ではない場合、近い平日に寄せ…
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-provider-lambdazipを修正してPythonのデプロイにもある程度対応できるようになったのでメモ。 github.com ディレクトリ構成 pylambda/ ├── .gitignore ├── main.tf └── src/ ├── lambda_function.py ├── requirements.txt └── ruff.toml Pythonソ…
一身上の都合により terraform-provider-firebaseremoteconfig を作った。 github.com こういう感じでFirebaseのRemote Configのパラメータを管理できる。 resource "firebaseremoteconfig_parameter" "foo" { key = "foo" value_type = "JSON" default_valu…
自作のDB負荷テストツール qube を Zstandard Seekable Format に対応させた。 Zstandard Seekable Format is 何? github.com 名前の通りシーク可能なZstandardのフォーマット。 ファイル末尾にシークテーブルをつけて解凍しなくても任意のオフセットからデ…
terraformのjsonencode()には<, >, &を \u003c, \u003e, \u0026 に変換するよく知られた仕様がある。 developer.hashicorp.com When encoding strings, this function escapes some characters using Unicode escape sequences: replacing <, >, &, U+2028, …
gist758d768c2efb4b17b45ecb9d4e915c22 CLIも作った。 github.com 実はいにしえのgoamz(のフォーク?)が対応していて、それを使ったツールも作ったけど、SSOやAWS_PROFILEの対応が辛いので作り直した。リトライまわりは未対応
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というaws2-wrapのGolang製シングルバイナリ版を作った。 github.com Golang版のaws2-wrapは頑張って探せばありそうだったけれど ぱっとみ、見つけられなかった 以前作ったSSOクレデンシャル出力ツールの再設計がしたかった ssowrapを含むDockerイメ…
github.com