聞こえないJavaエンジニアが適当に書き連ねていく

つらつらとメモしたり日頃の溜まっている想いを吐き出す場所です。

GradleのJavadocタスクを動かす時に含める/除外するパッケージを指定する

これは何

ググって出てきた内容をコピーしたらうまく動かなくて諦めてたらTwitterで教えてもらったのでメモする。

教えてもらったツィート

書き方

指定したものだけを対象にしたいとき

javadoc {
    include 'hoge/xxx/yyy/**'
    include 'hoge/xxx/zzz/*Logic.java'
}

指定したものを除外したいとき

javadoc {
    exclude 'hoge/xxx/yyy/**'
}

メモ

*一つだけだと直下のみが対象になるので、下位のパッケージも指定したいときは ** と書く。

自分用メモ

文字コードUTF-8に設定する。

javadoc {
    options.charSet = 'UTF-8'
    options.encoding = 'UTF-8'
    include 'hoge/xxx/yyy/**'
    include 'hoge/xxx/zzz/*Logic.java'
}

eclipse用のSQLエディタ【SQL Editor】

これは何

eclipseのどこかのバージョンからインストール手順が面倒になったEclipseでのSQLビューアーの代替になるかもしれないプラグインをメモっておく。

背景

今やっているプロジェクトではDBアクセス周りでDoma2を使っているので、SQLはいっぱい書く。

困ること

最新版eclipseだとSQLビューアーがインストールされていなくて、インストール手順もjarファイルをダウンロードしてプラグインフォルダに放り込むしかなさそうとのこと。 個人的に、プラグインはちゃんとeclipseで管理させたい。

何もしないと、SQLファイルをダブルクリックするとWindowsで関連付けされているテキストエディタeclipseの外で開いてしまう。

そこでこのプラグイン

github.com

プラグインを入れるとSQLファイルに自動で関連付けしてくれるので、eclipse上でSQLファイルの編集が出来る。 色付けも基本的なものはサポートしてくれているようなので、簡単なSQLを書くのに支障は無さそう。 アウトライン機能も搭載されているようなので、複数のSQLが書かれているSQLファイルも読みやすそう。

コード支援は無いけど、そもそも複雑なSQLを書かないといけなくなったときは別のSQL開発ツールをeclipseの外で立ち上げて書くかなー。

a5m2.mmatsubara.com

とか。

Javaでファイルサイズを適切な単位付きの文字列に変換する方法

これは何

abachibi.hatenablog.com このサイトのJavaバージョンでかなりシンプルに書けて目から鱗だったので。

ソース

Javaのバージョンは関係ないと思うけど、一応Java11で動かしてます。

本体

public static String convertToFileSize(final long fileSize) {

    double tempFileSize = fileSize;

    String[] units = {" B", " KB", " MB", " GB", " TB"};
    int counter = 0;
    for (; tempFileSize > 1024; counter++) {
        tempFileSize = tempFileSize / 1024;
    }

    BigDecimal bd = new BigDecimal(tempFileSize);
    BigDecimal bd2 = bd.setScale(2, RoundingMode.HALF_UP);

    return bd2.stripTrailingZeros() + units[counter];
}

一応テストコード

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class FileUtilsTest {

    @Test
    void testB() {
        String a = FileUtils.convertToFileSize(1024L);
        assertEquals("1024 B", a);
    }

    @Test
    void testKb() {
        String a = FileUtils.convertToFileSize(1000000L);
        assertEquals("976.56 KB", a);
    }

    @Test
    void testMb() {
        String a = FileUtils.convertToFileSize(2197152L);
        assertEquals("2.1 MB", a);
    }

}

Spring boot 2.1.5に上げるとバリデーションメッセージの仕様が変わっている??

これは何

件名のことで困ったので…

再現プログラム

github.com

  1. clone
  2. 起動
  3. localhost:8080/test にアクセス
  4. 出てくる画面で何も入れないでボタンを押す

困っていること

Spring boot 2.1.4 までは、エラーメッセージを上書きして、かつ、{0} を入れれば自動でエラーだった項目をメッセージに埋め込んでくれた。 Spring boot 2.1.5だと、{0}にエラーだった項目を自動で入れてくれなくなっている(ように見える)。

これはSpringの仕様変更によるものなのか、それとも不具合なのかがわからないので、仕様変更であればその情報を知りたい。 リリースノートをななめ読みしたところでは、それらしき仕様変更は見当たらなかった。

spring.io

Githubのイシューにもそれらしきのがないように見える。 github.com

2019/5/22 12:30頃追記

とりあえず勇気を出してイシューを書いてみた。

github.com

タイトルを書いてたらサジェストでこれが出てきた…

github.com

バージョンが 2.0.4.RELEASE なので修正はされたけどcloseしていないだけ、っぽい。 でも、バグを埋め込みやすい処理なのかもなー…

JJUG CCC 2019 Spring で20分話したよ #jjug_ccc #ccc_m5b

今日、2019/05/18にベルサール新宿グランドコンファレンスセンターで行われた、JJUG CCC 2019 Spring で20分話してきた。

f:id:su_zu_ki_1010:20190520080612j:image

www.java-users.jp

 

セッション詳細はこれ。

www.java-users.jp

 

「スキマ分野で生き残るための戦略」のスライドはこちら。

docs.google.com

 

なんでこのテーマで応募したのか?の理由は、Javaを勉強して、業務で設計書に従ってプログラムを組むところまでは誰でもいけると思うけど、そこから先を考えた時に、行き詰まってしまう人が多そうだなと思ったから。

もちろん、プログラミングを離れて、設計する側に回ってもいいんだけど、プログラミングから離れたくない人がどう生きていくか、を考えた時に、自分はこうやって道を見つけたよ、というのを紹介したかったというのがある。

 

今日話した方法が全てではないし、現場によって状況はまちまちだと思うので、現場で誰もやらないことを積極的にやっていくことで自分なりの生き方が見つかるんじゃないかなー。

 

ちょっと前にそーだいさんが似たことをインタビュー記事でも仰ってた。

ten-navi.com

 

3年くらい前に話した時の2倍は人がいてビビったけど、ところどころで笑ってくれたし、頷いてくれる人もいたので大幅に間違っていなかったんだなと安心したー。

 

子供のイベントもあって難しいけど、また機会があれば初心者向け枠でCfP出してみるぞー。

 

 

Oracle Code Tokyo 2019 #codetokyo19 に参加してきた

Oracle Code Tokyo 2019 に今年も参加してきたので忘れないように感想をメモっておく。

f:id:su_zu_ki_1010:20190520080527j:image

https://www.oracle.co.jp/events/code/2019/

Keynote1 Javaの未来

Javaのリリーススケジュールの変更や、現時点で取り組んでいる課題(という表現でいいのかな)についての紹介が主だった。

大体のことはTwitter経由で見聞きしたことがある内容で、新しい情報はなかったけどさくらばさん、よしださんのデモがわかりやすかったー。

 

Keynote2 トップエンジニア対談 〜テクノロジーで創る未来〜

内容が内容なので仕方ないんだけど、フリートークなのでTwitterの実況を追うしか無かった。

あ、でも自動運転のデモビデオは面白かった。Javaでやってるんだよね、あれ?

技術の進歩は凄いなーと感心させられた。

 

過去を知り、未来に備える - 技術選定の審美眼2019

和田さんのお話を聞くのは初めてだったんだけど、スライドの説明がわかりやすかった。

技術の変化については、差分とそれを可能とした技術の背景を把握すること。

生き残っている技術にはそれなりの理由があること、と仰ってて、確かに…!と思った。

失敗例からも学んで、今の自分の仕事にあった技術を取り入れられる視点を持てるよう今後も鍛錬していかねばと感じた。

 

最適なOpenJDKディストリビューションの選び方

日頃からTwitterで色々発信されていたので、見てる人は来なくて大丈夫!と仰ってたけど全然そんなことはなかった。参加して、纏めた情報量の多さに圧倒されてしまった…これを趣味で纏めた山田さんは凄い。

選び方のポイントは好き嫌いではなくて、使う環境だと仰っててその通りだよなと。

 

Why Oracle Database ~Oracle Database以外を検討して気づいたこと~

〜以外とあるから色々検討したのかなと思ったらPostgreSQLを検討された時の話だった。

でも、OracleからPostgreSQLへ移行する際の注意点が色々あって、聞いててこれは自分でも絶対ハマるやつだということの連続だった。

新人の頃にOracleからDB2への移植をやったことがあるけど、その時も実は色々と調べてたんだなと今になって気付かさせられた。

 

感想

去年までのJavaDayTokyoからOracleCodeTokyoに名称が変更になって、Java色がかなり激減したし、ブースも無くなってたのは寂しい思いもあったけど、なんだかんだで楽しかったー。

 

 

 

OpenJDKに関連するベンダーが出しているガイドっぽいものまとめ

IBM

IBMJava 活用ガイド_rev2 https://www.ibm.com/downloads/cas/AB4W8VOZ

Red Hat

access.redhat.com

Amazon

aws.amazon.com

Azul Systems

※英語だけど、一覧表がわかりやすかったので。

jp.azul.com