技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

kustomize

k8s

簡単に纏める。 k8s のマニフェスト管理ツール。k8s のマニフェストファイルを生成できる。 ベースとなるマニフェスト(base)と、ベースからの差分となるマニフェスト(overlays) とで管理される。 base となるマニフェストに対して、prod, staging, dev とい…

ArgoCD

k8s

最近勉強し始めたので簡単にまとめる。 ArgoCD は CD (継続的なデリバリー) を実現するためのツールで、k8s 上でコントローラとして動作する。 (k8sマニフェストが格納された) Git リポジトリと k8s クラスタの状態を監視(ポーリング)して、Git リポジトリの…

k8sのコンテナセキュリティ

以下の記事が分かりやすかった。 Kubernetesクラスタを不正に操作されないように、今すぐやるべきセキュリティ対策|CodeZine(コードジン) k8s 上に普通に Pod をデプロイするくらいでは気にしなくて良さそうだが、k8s 上で動く Operator を作る時などには…

k8sのCRBとRBの違い

k8s の CRB (ClusterRoleBinding) と RB (RoleBinding) の違いについて、chatgpt に聞いてみた。 Kubernetesにおいて、ClusterRoleBinding (CRB) と RoleBinding (RB) はどちらもRBAC (Role-Based Access Control) に関連するリソースで、権限をユーザーやサ…

k8sのサービスアカウント

k8s

k8s の「サービスアカウント」について調べていて、chatgpt に聞いたら、とても分かりやすい回答が返ってきたので、ここに残しておく。 サービスアカウントは、Kubernetes APIにアクセスする際に、Podや他の内部リソースがどのような権限を持つかを決定する…

Windows10にWSL2をインストールしたら画面がフラッシュ?するようになった。

手軽に動かせるLinux環境が欲しくて、Windows10にWSL2をインストールしたら、何故か画面が時々フラッシュ?するようになった。 いろいろ試したところ、グラフィックドライバ "AMD Radeon(TM) Graphics" との相性が悪いようで、このグラフィックドライバを無…

無線LANルータの入れ替え

先日、自宅の Buffalo の WSR-1166DHP3 を WSR-1800AX4P に入れ替えた。 Buffalo の「スマート引越し」を使って簡単に引越するつもりだったが、私の知識不足のせいかうまく行かなかったので、普通に WSR-1800AX4P を新規に導入した。この時の作業ログをここ…

特定のメッセージを含むコミットの修正量の情報を csv 形式で表示する。

主題のスクリプトを作成したくなって chatgpt に投げたら一瞬で作ってくれた。 メッセージにカンマが入っていると、csv のカラムが意図せず増えるが、使い捨てスクリプトなので細かいところは気にしない。 #!/bin/bash # 検索対象文字列 targetStr="test" # …

JavaのOptional

これまでどういう時に使うのか、いまいち分からなかったのだが、以下のサイト様の記事を読んで理解が深まった気がする。 【Optional入門】Javaでnullを扱うベストプラクティスのご紹介 Optional は null かもしれないオブジェクトを扱うためのもので、メソッ…

例外設計

以下の記事がとても参考になった。 凄腕エンジニアさんから学んだ例外の話 #error - Qiita 期待した挙動以外は全て「例外」として扱う。 全ての例外を処理(キャッチ)する必要はない。場合によってはログに出してスルー。 例外が起きた時の挙動を決めるのはプ…

AI時代のやりがい

AI時代になっても人間のやりがいが大事。 確かに、AIの生成物をただチェックするだけではつまらないか。いや、生成物の内容をちゃんと理解できれば、それになりに楽しいかもしれないが、それでは多くのソフトウェアエンジニアが不要になるか。。 codezine.jp

標準入力と引数

昔、Linux 上でのコマンドのワンライナーを勉強していた頃、パイプを使って後続のコマンドに標準入力からデータを渡すのと、引数でデータを渡すのとで、具体的に何が違うのかモヤっとして調べたことがあった。 今のところ、これらはデータが通る場所が違うと…

トランザクションの分離とロック

DB

昔、DBの勉強をしていた頃、トランザクションの分離とロックの関係性が分からず、いろいろ調べたことがあった。その時は、トランザクションを分離するためにロックが必要と理解した。ただ、それが明確に書かれたページがなく、確信が持てなかった。 今日、以…

SAMLとOIDC

SAML と OIDC (Open ID connect) の違いについて勉強した。 認証時の処理シーケンスは似ているが、SAML はサービスと idP 間で直接やり取りしないのに対して、OIDC ではサービスと idP 間での直接やり取りが発生するようだ。 SAML では直接やり取りはしない…

SAMLでのログイン情報はどこに保存されるのか?

SAML は SSO を実現するための仕組みなので、例えば、ユーザ(ブラウザ)が idP を経由して SP1 にログインしたら、SP2 にはログインなしでアクセスできる。 ネット上では、SP1 のログインまでの説明はたくさんあるのだが、その後の SP2 へのログインの説明が…

SAMLの概要

最近ちょっと勉強したので、簡単にまとめる。 SAML を使うには、まず、idP (id provider) と SP (service provider) との間で信頼関係を構築する必要がある。具体的には以下の作業を実施する。 idP のメタデータファイルをダウンロードする。 idP のメタデー…

分配器と分波器

テレビを買い替えてセッティングした際、本来は「分波器」を使うべきところに「分配器」を使って接続してしまったのだが、地デジも BS もちゃんと映ったので「なんで?」と思って調べたら以下の記事を見つけた。 どうしよう!分配器と分波器、間違えて買って…

k8s のストレージ関連

k8s

最近 k8s を扱うようになって、主題の件で PV だの PVC だの出てきて混乱したので、ここに簡単にまとめる。各関係の呼び出し関係は以下の通り。 Pod -> PVC -> PV -> NFS サーバなど Pod と NFS サーバの間に PVC と PV が挟まっているが、これは k8s 上のリ…

Java の enum

これまで、Java の enum の実体というかメモリ上でどうなっているかの理解が曖昧だったのだが、以下の記事を参考にさせて頂き、分かった気がする。 Javaの定数はEnumで! Enumの使い方から考え方までお伝えします enum の各項目 (フィールド) に対応するオブ…

k8s のリソースの包含関係

k8s

忘れてしまうことが多いので、ここにメモしておく。 Namespace > Deployment > ReplicaSet > Pod > Container 最近、k8s 環境でアプリを構築したのだが、上記のうち ReplicaSet と Container はあまり意識しなかった。 k8s の最小の管理単位は Pod なので、C…

git で MR (Merge Request) を出してコンフリクトした時

git

git で MR (Merge Request) を出してコンフリクトした時、feature branch にて master に対して rebase して、feature branch に master の変更を取り込んで、コンフリクトを解消するということを以前は良くやっていた。 しばらく、git を触らなくなって、ふ…

同じ文字でグルーピング

leetCode の以下の問題を解いた。 https://leetcode.com/problems/string-compression/文字列中の連続する同じ文字をグルーピングするという問題。 こういうのは、これまで、文字列を前から見て行って、同じ文字の連続が途切れたら、その1つ前までを1グル…

複数のファイルから複数の項目を grep するスクリプト

一度に grep したくなったので、主題のスクリプトを作成した。 こういうのは、やっぱり perl で書くと楽。 use strict; my $targets = [ # ファイル名、key1, key2, key3, ... ["fileA.txt", "test.keyA1", "test.keyA2"], ["fileB.txt", "test.keyB1", "tes…

Perl で REST API (Post) 実行

perl だと、だいぶ簡単に書ける。素晴らしい。 use strict; use HTTP::Request::Common; use LWP; use JSON; my $uri = "https://httpbin.org/post"; my $postData = {"key1" => "val1", "key2" => "val2"}; my $ua = LWP::UserAgent->new(); my $res = $ua-…

Java で REST API (Post) 実行

ネットの記事をいろいろ参考にしながら、Java 1.8 の標準 API だけで作ってみた。 import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; public class MainPost { public static void mai…

perl の glob vs opendir&readdir

久々に perl スクリプトを書く機会があり、その中で Windows のフォルダ内のファイル一覧を取得したくなった。その際、主題のように glob と opendir&readdir のどちらを使うか迷って、以前使ったことのある後者を選んだ。 以下の記事によると、Windows では…

JFSのFaceletsページとバッキングBeanとの同期のタイミング

JFS の Facelets ページの UI コンポと、その入力値を格納するバッキング Bean があった時、UI コンポへの入力値がいつバッキング Bean に反映されるのか分からなかったので、ちょっと調べてみた。 当初は、Facelets ページでのポストバック (メソッド呼び出…

ダイクストラ法

ダイクストラ法で leetCode の問題を解いたので、参考のためにコードをここに残しておく。 Path with Maximum Probability - LeetCodeポイントは、コード中のコメントに記した。 PriorityQueue(heap) を使っているのは、キューの中で最大確率の (確定できる)…

クローンOS

publickey の以下の記事が気になっている。 しかし今回、Red HatがクローンOSの存在をかなり明確に否定したことが明らかになりました。また、クローンOSベンダ側の対策は、少なくとも現時点で十分に具体的なものになっていない可能性も読み取れます。 www.pu…

メンバーのモチベーションを上げる

主題の件でよく悩むので、名著「人を動かす」(カーネギー)を読んでいる。 印象に残った内容をここにメモしておく。 人を動かしたいなら、その人の自尊心を満たすことを考える。 誰もが重要な人物であると扱われたいという欲求を持っている。だから、相手のそ…