Elasticsearchのデータ操作をサーバ上で行いたい場合に、curlでアクセすれば良いが、ちょっと複雑なことをやろうとするとシェルスクリプトでは面倒だったりする。
で、こういうちょっとしたスクリプトを実装するのはSpringではやはり難しいだろうか?と調べてみたら Spring Boot CLI がちょうど良さそうだったので試してみた。
今回は jq を使うことで結局シェルスクリプトでも何とかなるレベルのものにとどまってしまったが、あれこれ試した結果をまとめておく。
Elasticsearchのデータ操作をサーバ上で行いたい場合に、curlでアクセすれば良いが、ちょっと複雑なことをやろうとするとシェルスクリプトでは面倒だったりする。
で、こういうちょっとしたスクリプトを実装するのはSpringではやはり難しいだろうか?と調べてみたら Spring Boot CLI がちょうど良さそうだったので試してみた。
今回は jq を使うことで結局シェルスクリプトでも何とかなるレベルのものにとどまってしまったが、あれこれ試した結果をまとめておく。
「部署」と「社員」という親子関係のあるテーブルがあったとして
という部署一覧を表示したい。適当に社員を結合してしまうと
という社員一覧っぽいものになってしまうが作りたいのはあくまで部署一覧なのでNG。
これをSpring Boot + Spring Data JPA + Querydslで解決する。
GitLabを使っていると、モニタを用意できない場所で打ち合わせや作業をするときに、MarkdownのドキュメントやIssueなどの内容を印刷したいシーンがある。
しかしGitLabのレイアウトは印刷用には作られていないので、印刷しようとすると余白や不要な部品だらけになってしまう。そのため、レイアウト調整をする gitlab-print というChrome Extensionを作った。
以下のイメージの左側のように余白がかなり入ってしまうのだが、
これを除去して(右側)きれいに印刷できるようにする。

Spring Bootで静的コンテンツにフィンガープリントをつける,
Spring BootでJavaScript/CSSライブラリにフィンガープリントをつけるの続き。
前回の内容だと、外部ライブラリに対してGitコミットハッシュを固定のバージョンとして付与できるが、これだと例えば/lib/というリソースに対して/バージョン/lib/というパスが生成される。
この場合、/lib/**は認証対象外、というようなSpring Securityの設定をしているケースではバージョン付与後のパスが認証対象となってしまい、ログイン画面でリソースが読み込めない状態になってしまう。
このエントリでは、これに対処する方法について説明する。
もう1年近く経ってしまうが、Spring Bootで静的コンテンツにフィンガープリントをつける の続き。
以前は、プロジェクト内で書いたCSSやJavaScriptに対して、コンテンツを基にしたハッシュ値によるバージョニングについて確認したが、Bowerなどのライブラリに対してバージョニングする部分は
これはこれでいいが、バージョンの更新を忘れそう。
Gitのコミットハッシュ値を自動的につけられるなら利用したいが…これはまた別の機会に考えてみる。
としたままだった。
このままだと、ライブラリをアップデートしてもクライアント側のキャッシュが更新されず、更新が適用されない、というような問題が生じる。
しかしこれは今になってチャレンジしてみると意外に簡単にできた。
滅多に使わないかもしれないマニアックな話題。
Gradle+IntelliJ IDEAで開発している時、
idea.module.excludeDirsプロパティにディレクトリのfileオブジェクト
のリストを設定すると、そのディレクトリはスキャンの対象から
外され、内容が変化してもIntelliJの動作がもたつくことがなくなる。
参考:IntelliJのインデックス対象から除外する方法
このとき、excludeDirsはただのリストなので、
a, b, c, というディレクトリの下にあるbuild/というディレクトリを
まとめて無視したいと思っても、a/build, b/build, c/build をそれぞれ
設定する必要がある。
これをbuildという名前で一括する方法の話。
新年最初のエントリ、大したことのない内容ですが・・
Gitの操作ではコマンドとSourceTreeを併用しているのだが
最近SourceTreeが異常に重たかった。
下記にあるように、内臓GitではなくシステムGitを使うように設定することで改善した。
Source tree painfully slow on mac
以前は日本語でこの問題をGoogle検索していて見つからなかったのだが、英語で検索したらあっさり見つかった。
・・ということで、改めて言うことでもないが、教訓。
問題にぶつかったら英語で検索すること。
当たり前だが、日本語と英語では情報量が違いすぎる。