R&D
ニュース
About Unicorn Research
ユニコーンリサーチ
Authors
ユニコーンリサーチ編集
ユニコーンリサーチ編集
ユニコーンリサーチ編集
ユニコーンリサーチ編集
開発・運用の実務知見にもとづく技術情報を発信。自社で使う生きた技術リファレンスをオープンに提供しています。
Official bluesky
Social media
WireGuardセットアップ
WireGuard はLinuxなどのホスト上で動作するVPN実装です。AndroidやiOSを含む各種OSのパッケージがあり、手軽にインストールできます。 既存VPNとの違い ルーターなどに実装す …
TektonPipelinesをコンテナ内から実行
Tekton Pipelines はkubernetesクラスタ上で動作するCI/CDツールです。 ダッシュボードやCLIを用いて操作する方法が一般的ですが、TektonのCRDの1つ …
Tekton step向けスタートアップスクリプト
bashはログイン時に~/.bashrcなどのスタートアップスクリプトを実行します。 tekton も$BASH_ENVを用いてステップ実行時にスタートアップスクリプトを実行できます。 …
Javascriptの条件つきコンパイル
TypescriptやJavascriptの言語仕様には条件つきコンパイルを含むマクロがありませんが、esbuildにはその機能があります。 if(DEBUG) { …
k8sのパケットフィルタリング機能
kubernetesの NetworkPolicy は、pod間のパケット転送を限定するリソースです。 内部pod間の接続トポロジーを限定できるほか、denyリストによるIP-banを実装できる場合も …
Selenium Python
SeleniumはWebアプリケーションをE2Eテストするフレームワークです。 ブラウザをスクリプト操作することで、実機の利用環境に近いテストを実装できます。Javascriptのみのインテグレーショ …
hugoのSectionと多言語化
記事カテゴリー分類の機能を提供するのが Section です。 デフォルトでは、contents/ディレクトリの直下にあるディレクトリをセクションと見なします。 素朴な使い方では、記事をフォルダ分類し …
LinuxからBD-R/M-DISCに書き込み
LinuxにもBlu-rayメディアを扱うユーティリティがあり、互換性のあるドライブと組み合わせると読み書きできます。 ツールはいくつかあるのですが、検証してみたところGUIツールは動作せず、コマンド …
Rustコレクションのasyncフロー
Rustの非同期処理はasync/awaitで記述できますが、非同期処理を含むクロージャでasync/awaitを適切に記述できないケースがあります。 たとえばコレクションの各要素に対して非同期処理を …
Tekton Pipelinesの制御フロー
TektonのPipelineは、Taskの集合体です。 spec.tasksにTaskの配列を定義するのですが、とくに指定しない限り並列に実行されます。 runAfter runAfterは先行タス …
PostgreSQLで重複レコードをINSERT
DBMSにはユニークインデックスがあり、重複レコードをINSERTしようとするとエラーで保護する機能があります。 そして最低限、主キーはユニークです。 テストなどの場合、主キーも含めて同じデータをセッ …
ストアドプロシージャ/ストアド関数
ストアドプロシージャ、ストアドファンクションは、DBに登録(stored)する関数で、PostgreSQLの標準機能を利用する場合、PL/pgSQLで書きます。 ストアドプロシージャの使いどころ スト …
RustのResult/Option処理フロー
Rustには異常な状態を取り扱うための、Result<T,E>型とOption<T>型があり、関数型プログラミングで一般的な処理フローを実装できます。 この2つの型は、似たような構造になっていますが、 …
マルチプロセス・コンテナのデザインパターン
原則として、kubernetesやdockerなどのコンテナは、単一プロセス構成で設計します。 「なるべくシンプルな方が良いから」という曖昧な理由ではなく、対障害の観点でベストプラクティスを検討すると …
kubectl execの使い方
Kubernetesのコンテナ上でコマンド実行するためにはkubectl execを使えます。 ## kubectl exec `ssh`不要でコンテナ操作可能 * コンテナ内でコマンドを実行できる …
docker exec を使いこなす
多くのdockerイメージは単体デーモンが起動する形式で作られているため、コンテナ内のコマンドを実行する手順が思いつかなくなりがちです。 このような場合、たいていはdocker execコマンドの理解 …