BigDecimal.valueOf(float) の罠 — 浮動小数点の誤差が切り捨てで表面化する話
ある数値計算で「本来2527になるはずの値が2526になる」というズレに遭遇した。原因は BigDecimal に float を渡していたことだった。float→double 昇格・BigDecimal.valueOf の挙動・切り捨てによる誤差の増幅を整理し、正しい書き方と、再発をバイトコードから検出する方法までまとめる。
42件
ある数値計算で「本来2527になるはずの値が2526になる」というズレに遭遇した。原因は BigDecimal に float を渡していたことだった。float→double 昇格・BigDecimal.valueOf の挙動・切り捨てによる誤差の増幅を整理し、正しい書き方と、再発をバイトコードから検出する方法までまとめる。
Astroで作っているこのブログに、Notion風のCallout(情報ボックス)をremark-directiveと自作のremarkプラグインで導入した。導入手順と、実際の表示パターンをまとめてみた。
GitHub ActionsからOIDCを使ってAWSを操作する方法を、TerraformとGitHub Actionsのサンプルコードとともにまとめてみた。あわせて、裏側でどのような認証フローが動いているのかも整理する。
OIDC(OpenID Connect)とはなにか?OAuth 2.0との関係、IDトークンの中身、認証フロー、よりセキュアに使うためのポイントについてまとめてみた。
OAuth 2.0とはなにか?何を解決する仕組みなのか、登場人物と基本のフロー、グラントタイプの使い分け、リフレッシュトークンの仕組みについてまとめてみた。
Push 型 CD の弱点を、ArgoCD による Pull 型 CD(GitOps)で解消します。reconciliation loop、auto-sync / self-heal / prune、deploy ブランチ方式による無限ループ防止、そして「リモートの Git こそが source of truth」という考え方を整理します。
GitHub Actions による Push 型 CD(OIDC 認証・イミュータブルなイメージタグ)、liveness/readiness Probe、Prometheus / Grafana による監視まで。admission webhook やヘルスチェックの副作用など、つまずきやすい地雷とあわせて整理します。
ローカルの kind から AWS EKS へ。Terraform での構築、IAM と Kubernetes RBAC の2層構造、IRSA、EBS CSI Driver、ALB Controller。そして Terraform の state を失う大きな落とし穴と、import による復旧まで扱います。
シンプルな Web アプリを題材に、Docker でのコンテナ化から kind でのローカル Kubernetes まで。Deployment / Service / ConfigMap / Ingress / Kustomize の「なぜ」を、実際に使ったコードと詰まったポイントとあわせて整理します。
Goのruneについて勉強したので、それについてまとめました。