getResourceAsStream

いつも混乱しているのでメモ。


Class#getResourceAsStream()は、"/"から始めた場合はクラスパスからの絶対パスとなり、そうでない場合はそのクラスからの相対パスとなる。
ClassLoader#getResourceAsStream()は常にクラスパスからの絶対パスだが、"/"から始めるとリソースが読めなくなる(どうなっているのかは不明)。
複数のjarやディレクトリに同じ名前のリソースがある場合、クラスパスで先に指定した方が使用される(クラスローダによるが)。

Docker + OpenAMのメモ

Dockerfileはこちらを参考にする。
https://github.com/vaultsystems/docker-openam


以下上記Dockerfileに関するメモ。

  • pkcs12は秘密鍵と証明書をセットにしたフォーマット。
  • 証明書に含まれる主要な情報
    • サーバーの情報
    • サーバーの公開鍵
    • 認証局の情報
    • 上記の内容をハッシュ化して認証局秘密鍵で暗号化したもの
  • keytoolはJDKについてくる鍵と証明書の管理ツールで、JavaでSSLSocket通信をするのに使用する。
  • OpenAMは/root/openamを設定ディレクトリとして使用するため、dockerのボリュームオプションを使用してコンテナ停止時に消えないようにする必要がある。
  • サーバー用途の場合(dockerの場合特に、ということ?)、/dev/randomはエントロピープール(乱数プール)が枯渇する可能性があるため、/dev/randomを使用するよう変更しておく。
    • /dev/randomはキーボード入力などから発生する環境ノイズを乱数の元とするが、サーバー用途の場合このような環境ノイズの発生が少なく、乱数が枯渇することがある。
    • /dev/urandomはソフトウェア的に生成する擬似乱数であるため、このような問題は発生しない。

Vue.jsでcomputed propertyに引数を与えたい

色々試したけど、どうやら無理の模様。


computed propertyはgetter/setterに変換されており、getterは引数付きで呼ぼうとすると「それfunctionじゃないから無理」と怒られている模様。
filterには引数を与えることができるので、代わりにfilterを使用したらうまく行った。


値の加工はfiliterに任せて、computed propertyは複数のデータとバインディングするために使用するのが良いのかなと思った。

webpackでModule not found ?

webpackコマンド実行時に下記エラー発生。

Module not found: Error: Cannot resolve 'file' or 'directory' ./index.js in 〜

index.jsがないわけはない。実際ある。
どうやら原因はpackage.jsonにうっかり文法エラーがあったことのようだ。
文法エラーを解消したら出なくなった。

error-pageに指定したページが表示されない

原因

に"/*"を指定して全部アプリケーションのサーブレットマッピングしていた。

解決法

アプリケーションのパスを変更してをそれに合わせて"/rest/*"などに修正した。

Swiftでのクラス指定

UIPopoverPresentationControllerのpopoverBackgroundViewClassにSwiftでクラスオブジェクトを指定する方法がわからなくて悩んだ。
Objective-Cならclassメソッドでクラスオブジェクトが指定できるのに…。
その結果、以下の方法でできた。

popPreCon.popoverBackgroundViewClass = MyBackgroundView.self

何でクラス指定なの…教えてジョブズさん