build.gradle にライブラリ書く時

  • 投稿日:
  • by
  • カテゴリ:
  1. 「maven repos」でググる
  2. https://mvnrepository.com/ に辿り着いてライブラリ名で検索する
  3. 最新版のをコピペする

こんなん

// https://mvnrepository.com/artifact/org.projectlombok/lombok
provided group: 'org.projectlombok', name: 'lombok', version: '1.18.2'

spring の設定ファイルを環境ごとに分けてて指定したファイルを読み込ませたい時には SPRING_PROFILES_ACTIVE を指定するんだけど、 Intellij の設定で Run > Edit Configurations > Environment variables のところで指定する、はずなんだけど効かない時がある。

そんなときは Run を Intellij の左下の Run から実行するのではなく上部のツールバーの Run から実行すると効く。

なんか左下のは前の環境を引き継ぐような動作をする。

Intellij でファイルが表示されないとき

Intellij で存在するファイルが読み込めない、表示されない、または逆に消したのに表示されている、ってときはメニューの View から Toolbar で表示してリロードボタンを押すと再読み込みしてくれて解消される

Zenfone 3 の TPU ケースを買った

  • 投稿日:
  • by




TPU のケースは電源ボタン・ボリュームキーまで覆うものが多いが、そういうのを使うと自然とキーを押す力が強くなり、物理的な故障の原因となる。
以前1年以上 TPU ケースを使っていたが多分これが原因で電源ボタンが故障したことがあって TPU ケースは敬遠していたが、やっぱハードケースより衝撃に強いのと、大体のハードケースは滑りがよくてホールドしづらく、その点 TPU ケースは基本滑らなくてホールドしやすく、今使ってるスマホ Zenfone 3 はでかくて片手の操作が困難なこともあり TPU ケースを探していたらこれを見つけた。
電源ボタンもボリュームキーも覆わないタイプでその部分は穴が空いている。あとカメラの出っ張ってる部分も保護される。よい。

あとそもそもホームアプリの機能でソフトウェア的にロックするというものがあるので使うようにした。解除は指紋認証。ボリュームもソフトウェアで制御できるし、物理ボタンを押すことがなくなった。ので別に電源ボタンとボリュームキーの部分に穴が空いてなくてもよくなったんだけど、まあいいや。

@Validated と @Valid と @Inject と @Autowired

  • 投稿日:
  • by
  • カテゴリ:

org.springframework.validation.annotation.Validated は spring のライブラリで、 javax.validation.Valid は javax パッケージなので java のライブラリ。
というわけで spring で開発するなら @Validated を使っとけというのが作法とのこと。
同じく java には元から @Inject があるが spring では @Autowired を使う。とのこと。

例えば myapp ってプロジェクトの下に myapp-common と myapp-web と myapp-api とか作ったとして、 groupId を com.example.myapp ってしたとしても、それぞれのパッケージ名は com.example.myapp.[common|web|api] とか付けなくてよい、というか付けないのが java の作法だか流儀だか流行りだからしい。

というか付けると common の mapper とかを web の中で Autowired できなくなる。( MapperScan すればできるけどそもそもパッケージ名に余計なものをつけなければよいだけ)

gradle 2.11 以前でアレして provided したり、 gradle 2.12 以降で compileOnly してる場合、ちゃんとビルドも通ってコードも動くのに Intellij が lombok を cannot resolve symbol とか言うときがある。

compile にすると直るがそれはしたくない。

invalidate and restart してもビルドし直しても直らないし、lombok の補完は効かないし、コードは黒いし電球点くしで困るしキモい。

そんなときはここを押す。

intellij.png

親切な人に教えてもらった。

例えば以下のように書くとバックエンドにはアクセス元の ip が渡り、外部から /server-status は見られない。

builder {
    enable "ReverseProxy";
    enable "ServerStatus::Lite",
        path => '/server-status',
        allow => [ '127.0.0.1', '192.168.0.0/16' ],
        counter_file => '/tmp/counter_file',
        scoreboard => '/var/run/server';
    $app;
};

でも以下のように書くとバックエンドには(フロントの apache, nginx などからプロキシして)ローカル ip が渡り、 /server-status が丸見えになる。恥ずかしい。

builder {
    enable "ServerStatus::Lite",
        path => '/server-status',
        allow => [ '127.0.0.1', '192.168.0.0/16' ],
        counter_file => '/tmp/counter_file',
        scoreboard => '/var/run/server';
    enable "ReverseProxy";
    $app;
};

社員証には自分の顔、氏名、社名が載っている。それとは別に無地の入館カードがあって、これをピッてするとセキュリティゲートを通ってオフィスエリアに入ることができる。会社支給のケースにこの二枚を一緒に入れろと言う会社は多いと思う。

入館カード単体で紛失した場合、誰かに拾われてもどこで使えるカードなのかは分からない。しかし社員証とセットになっている状態で紛失した場合、それが分かる。下手したら社内に入ることもできる。

これら二枚をセットで持つべきではないと思う。

左側にファイルツリーとか右側に gradle のあれとか下にコンソールとか出てて、それの名前をツールウィンドウと言う。そしてこいつらはタブでまとまっている。引っ込めるとタブに収まってクリックするとまた出てくる。

たまにタブ自体が無くなる。そんなときは左下をクリックすると出てくる。

intellij_hidarisita.png

ウィンドウをリサイズしようとして間違って押したりすると戻し方が分からなくなる。各部位の名前も分からなくてググれなくなる。

ただこの事は初回起動時のチュートリアルに載っている。でも皆さっさと読まずに次へ次へ進むので誰も見ないし知らない。