Rego入門
2025年7月31日目次 第1章: Regoとは何か 第2章: 基本構文とデータ構造 第3章: ルールの種類と書き方 第4章: 制御構造と演算子 第5章: 内包表記とデータ操作 第6章: 組み込み関数 第7章: テストとデバッグ 第1章: Regoとは何か 1.1 Regoの思想・特徴 Regoは宣言型のポリシー記述言語である。「どのように処理するか」ではなく、「何を満たすべきか」を記述する。 命令型 vs 宣言...
目次 第1章: Regoとは何か 第2章: 基本構文とデータ構造 第3章: ルールの種類と書き方 第4章: 制御構造と演算子 第5章: 内包表記とデータ操作 第6章: 組み込み関数 第7章: テストとデバッグ 第1章: Regoとは何か 1.1 Regoの思想・特徴 Regoは宣言型のポリシー記述言語である。「どのように処理するか」ではなく、「何を満たすべきか」を記述する。 命令型 vs 宣言...
はじめに 最近、Goのx/termパッケージを使ってターミナルベースのタイピングゲームを作ってみた。この記事では、x/termパッケージの特徴や、TUIアプリケーション開発で気づいたことを共有していく。 x/termを使った実践的なTUIアプリケーションとして、ggcというgitのクライアントツールを開発しているので、よければStarを押してほしい。 x/termパッケージとは x/termは、G...
はじめに 以前、Githubでレジュメを管理するようにしたという記事を書いた。 レジュメ管理のリポジトリをテンプレートとして用意して、誰でも利用できるようにしてみた。 bmf-san/resume-manager 昨今AIの力でレジュメ管理も大幅に楽になったので、レジュメを管理・定期的に更新していない人にぜひおすすめしたい。 主な特徴 1. Markdownでの一元管理 すべての資料をMarkdo...
概要 Open Policy Agent(OPA)は、ポリシーによるアクセス制御を疎結合な形で実現できる強力な仕組みである。Regoという宣言的言語でルールを記述し、アプリケーション側からはシンプルな形式でポリシー評価を利用できる。 本記事では、OPAを利用したアクセス制御の代表的なパターンを整理し、それぞれの特徴や適した用途、実装負荷などを比較する。 以下に、あなたが挙げた4つのアクセス制御アプ...
概要 Rubyの並行モデルやGVLの役割、Pumaサーバのスレッド・プロセス設計、IO/CPUバウンドの捉え方、計測手法によるボトルネック把握、Rails/Pumaデフォルト設定変更背景などを整理し、適切なチューニング方針を提示する。 Rubyの並行モデルとGlobal VM Lock(GVL) GVLの存在意義 Ruby(MRI/CRuby)にはGlobal VM Lock(GVL)があり、同一...
概要 Go言語は、軽量なgoroutineとランタイム機構により並行処理(concurrency)を強力にサポートし、Go 1.5以降はデフォルトでGOMAXPROCSが利用可能CPUコア数に設定されるため、適切に設定することでマルチコアを活かした並列実行(parallelism)も可能とする。本記事では、goroutineのスケジューリングやCPUバウンド処理でのマルチコア活用の仕組み、OSプロ...
OPA の基本と課題背景 OPA(Open Policy Agent)は Rego 言語で記述されたポリシーを用いて、入力(input)や外部データ(data)に基づいて評価を行い、許可/拒否などの判定を行うエンジンである。 実装例については、AWS Prescriptive Guidance のマルチテナント API 認可制御ガイドが参考になる。OPA を活用した SaaS におけるマルチテナン...
概要 個人の資産形成を考えるためのツールとして、資産推移シミュレーターを開発したので、それについて紹介したい。 asset-trend-simulator 背景 私はMoney Forwardを使って資産管理をしているが、将来の資産推移のシュミレーションにはSpreadsheetを使ったものを利用していた。 Spreadsheetでもそれなりの精度(実際の資産推移のズレが数十万程度に済むような正確...
Open Policy Agentについて詳しく知りたかったので、公式ドキュメントを参照して調べてみた。 Open Policy Agentとは Open Policy Agent(OPA、「オーパ」と発音。)とは、ポリシー適用のためのOSSの汎用ポリシーエンジン。 宣言型言語(Rego、「レイゴ」と発音。)を用いてポリシーをコードとして記述することができる。 Styraによって開発されており、現...