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...
概要 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によって開発されており、現...
FuelPHPの2023年3月現在の現況という記事を書いた。 最近の近況はどうだろうと思って、ChatGPTのdeep research機能を使って調査してみた。(去年からPHPから離れてしまったので、あまり時間をかけて調査するモチベーションはなかった..) 結論だけいうと、前回の調査からあまり大きな変化がないといえそう。 あと引用が自分の記事ばかりになっている...w 以下はChatGPTの出力...
脳に収まるコードの書き方 ―複雑さを避け持続可能にするための経験則とテクニックを読んだ。 タイトルからプログラマ脳を彷彿して認知科学的な話が交えられているかなと思ったが、そうではなかった。 この本は脳内メモリに収まるコードを書くための実践的なプラクティスが語られている。 全体的に自分の経験則から共感を得る部分が多かった。著者はコンピューターサイエンスの学部ではない出身でソフトウェアエンジニアのキャ...