Spring BootのGradleでのデバッグ実行方法


gradle bootRun --debug-jvm

というように、--debug-jvm オプションを付与すれば良いようです。 これで、デバッガ接続の待受状態で起動します。

BootRunJavaExec を継承していますが、この --debug-jvm は後者のリファレンスで言及されています。

Read more ⟶

So many UserDetailsService samples considered harmful for beginners


やっぱり一発目の Spring Security やってみたで UserDetailsService 使うのは止めようず。So many UserDetailsService samples considered harmful for beginners.

はじめに

ちょっと待って!その UserDetails、本当に必要ですか?で書いたことの繰り返しなんですけども。

Read more ⟶

List#contains(null)は使わないほうが良い


List(などのコレクション)が要素に null を含むかどうかの判定に、 contains(null) を利用すると NullPointerException が発生することがあります。

リファレンスには次のようにあります:

NullPointerException - 指定された要素が null で、このリストが null 要素を許可しない場合(オプション)

Read more ⟶

UserDetailsServiceは誤解されている


サンプルコード等だけを見ていると UserDetailsService を利用することがSpring Securityの唯一の認証処理実現方法だと誤解しがちですが、 UserDetailsService はむしろユーティリティライブラリくらいの立ち位置で、別に利用しなくても実現可能です。

Read more ⟶

Alpine Linuxでglibcじゃないことに起因する問題ってちょくちょくあるよね


…と少し思い返していました。といっても思い出せたのは次の2つなのですが。

Alpine特有の問題については、「取り敢えずglibc/GNU版コマンドをインストールしてみろ」ってのが最初に採ってみる方策としてアリなのかも。

Read more ⟶

CompletableFuture覚え書き


CompletableFuture の一連の非同期処理 ほげAsync は、デフォルトでは ForkJoinPool.commonPool() という ExecutorService で実行されます。

そしてこの ExecutorService のワーカスレッドはデーモンスレッドであるため、非デーモンスレッドが無くなると(≒ メインスレッドが終了すると)プール内の処理を完了させること無くプロセスが終了します。

Read more ⟶

Javaのソースファイルはpackageに対応したディレクトリ階層に置かなくても良い?


https://twitter.com/hishidama/status/1266176675768745984

packageの宣言と実際のディレクトリが一致していなくてもmvn compile(やjavac)が成功するんですが、そういうもんでしたっけ?

Read more ⟶

ミニマル `.vimrc`


kubernetesの試験を受けるに当たって、最小限の .vimrc を覚えておくためのメモ:

set autoindent
set expandtab
set tabstop=2
set shiftwidth=2
Read more ⟶

DockerfileのENTRYPOINTに対応するのはcommand, CMDに対応するのがargs


CMD と command が対応しているわけではないのでまぎらわしい…

Kubernetes リファレンス:

参考として Dockerfile リファレンス:

Read more ⟶

GKE(Goole Kubernetes Engine)の始め方


Kubernetes入門の書籍やドキュメントの中には、Kubernetes環境が既に手元にある前提で書かれているものも多いです。

そういう場合、どうやってKubernetes環境を調達して良いのかわからず、一つの手段として自前で環境を作る Kubernetes the hard way をやってみたのですが、一旦環境を作ってしまうとインスタンスを起動させ続けねばならず(作り直すの面倒だし)、財布に優しくないので断念しました。

Read more ⟶

Kubernetes the hard way を最新版の1.18.2でやってみた


要約

kube-apiserver の起動引数を --runtime-config=api/all=true に修正すれば v1.18.2 でも記述どおりで動作する。

本文

現時点で本家 Kubernetes The Hard Way は1.15.3をターゲットにして構築を行っていますが、せっかくなので最新版である v1.18.2 でやってみることにしました。

Read more ⟶

Kubernetes the hard wayを試すためのtmux基礎知識


Kubernetes the hard wayをやるのに`tmux`の操作を覚えておくのが良さそうだったので使いそうなものを記載しておくことにしました。

Ctrl キーと b キーの同時押しを ^b と表記しています。

Read more ⟶

redux-devtools-extension をTypeScriptで使う


https://github.com/zalmoxisus/redux-devtools-extension/blob/master/README.md#13-use-redux-devtools-extension-package-from-npm

というわけで型付けされているので

const store = createStore(rootReducer, undefined, devToolsEnhancer({}));

で良い。

何か Qiia の記事とかを見てるとこっちの方法でばっかり書いてあるが。


Electron から使う場合はElectron 公式からもredux-devtools-extension 公式からもリンクされている electron-devtools-installer が利用できた。

Read more ⟶