すべての記事
-
GOAP: search for an action sequence, then validate its execution
Represent goals and actions explicitly, keep hypothetical effects separate from the live world, and replan when a valid sequence becomes impossible.
-
Network configuration tools compared: nmcli, netplan, systemd-networkd and their Windows and macOS equivalents
Reading the current network configuration, setting a static address, and setting DNS servers — the same three tasks across NetworkManager's nmcli, Ubuntu's netplan, systemd-networkd, Windows PowerShell's networking cmdlets, and macOS's networksetup.
-
Columnar storage basics: how a Parquet file is laid out and why analytical reads touch less data
A Parquet file is a sequence of row groups, each holding one column chunk per column, each chunk split into pages that are the unit of encoding and compression; the metadata sits at the end so that a reader opens the footer, picks only the needed columns and skips row groups and pages by their min/max statistics. Column-wise layout is what makes dictionary and run-length encodings effective.
-
返されたリビジョンを使って書き込み後の読み取りを検証する
安定した識別子とリビジョンで書き込みを確認し、並行して行われた新しい更新を、自分が送信した内容そのものと取り違えないようにする。
-
MSAA and Alpha-to-Coverage: Distinguish Coverage From Shading and Opacity
Use multisample coverage for geometric and cutout edges while avoiding accidental double attenuation and unsupported assumptions about sample masks.
-
データベース接続プールとその限界
PostgreSQL の接続は一つずつがメモリを消費するプロセスです。実際の並行処理数に合わせた小さなプールを維持し、接続取得のタイムアウトを設定して、リクエストハンドラーによる場当たり的な接続作成を防ぎます。
-
Screen-Space Ambient Occlusion: Interpret GTAO as a Visibility Estimate
Integrate ambient occlusion into the intended lighting term and distinguish sampling noise from errors caused by incomplete depth geometry.
-
Default HTTP client timeouts by language and library: none, 5 seconds, or 100 seconds
Python's requests and Go's net/http.Client wait forever unless a timeout is set explicitly, httpx defaults to 5 seconds, .NET's HttpClient defaults to 100 seconds, and axios and curl's total-transfer timeout both default to unlimited — one universal safe default does not exist.
-
Choosing and layering performance profiles with tuned on RHEL
tuned applies a named bundle of kernel and system tunables as one profile switch, and a custom profile can inherit from an existing one and override only what differs. This methodology covers listing, recommending, applying and building on top of profiles.
-
Problem Details による一貫した API エラーレスポンス
RFC 9457 は HTTP エラーレスポンスの JSON 構造(type、title、status、detail、instance)を定義し、クライアントがエラーを統一的に扱えるようにする。安定した機械可読コードを持つ一貫した共通形式でも、同じ目的を達成できる。
-
グラフ探索で依存順序を求める:BFS、DFS、トポロジカルソート
依存関係を有向グラフとして表し、幅優先または深さ優先探索で変更の影響範囲を求めます。Kahn のアルゴリズムや DFS の帰りがけ順で、循環を隠さず報告するビルド・移行順序を作ります。graphlib と tsort がこのソートを実装しています。
-
Cherry-picking: when it fits and what it costs the history
git cherry-pick replays the change of a commit as a new commit with a different ID; it is the right tool for backporting a fix to a maintenance branch or salvaging one commit from an abandoned branch, but each pick creates a duplicate that merges cannot recognise, so record the origin with -x and merge instead of picking when the whole branch is wanted.
-
Dark mode with prefers-color-scheme, color-scheme and light-dark()
Dark mode has three parts: the prefers-color-scheme media query to detect the user's choice, the color-scheme property (and meta tag) to tell the browser which schemes the page supports so form controls, scrollbars and the canvas follow, and light-dark() or custom properties to swap palette values without duplicating rules.
-
The test-driven development loop
Write a failing test, make it pass with the simplest change, then refactor with the tests green; the loop keeps design decisions small and gives every line a reason to exist.
-
SSHで自分を締め出さずにfirewalldのゾーンとルールを管理する
firewalldは実行中の設定と永続設定を分離しており、通常のfirewall-cmdによる変更は永続化しない限り次の再読み込みで失われる。この手順はゾーン、実行時と永続設定の違い、リッチルール、そしてリモートSSHセッションから復旧できなくなる前の変更テストを扱う。
-
Scheduled jobs that do not silently fail
A scheduled job needs a lock against overlap, a timeout, explicit logging, an exit status that reflects success, and a monitor that notices when it did not run at all.
-
Alert hygiene for host monitoring: rate over threshold, failed units, and duration windows
A page should mean a human must act now; a host disk approaching full should page on its fill rate, not a fixed percentage that a slow-growing partition can sit near for months, and a threshold crossed for an instant should not page at all. Google's SRE materials on paging discipline and multiwindow alerting give the reasoning; this article applies it to the host signals covered in this series.
-
MCP-Werkzeuge gestalten, die Agenten sicher benutzen können
Werkzeuge nach dem Model Context Protocol brauchen einen engen Zweck, typisierte Eingabe- und Ausgabeschemata, wahrheitsgemässe Annotationen (nur lesend, destruktiv), begrenzte Ergebnisse und Fehler, die die Ursache nennen; Beschreibungen gehören in den Code, nicht in Inhalte, die Nutzende bearbeiten können. Die Spezifikation verlangt zudem, dass Clients Annotationen als nicht vertrauenswürdig behandeln und ein Mensch Aufrufe ablehnen kann.
-
一度の作業セッションで STRIDE を使い機能の脅威をモデル化する
機能を信頼境界付きのデータフロー図にし、各要素を STRIDE の六つのカテゴリーで確認します。脅威ごとに緩和、排除、移転、受容を決め、結果をテスト可能な要件として記録します。Threat Modeling Manifesto の四つの問いが議題になります。
-
Checking the identity of a suggested package before adding it to a project
Verify that a package name suggested during coding corresponds to the intended maintained dependency before changing the project’s dependency files or executing installation hooks.
機械可読: JSON