Python ログ、標準の logging

以前、 Python ログ出力 logging iniファイルを使用しない - Oboe吹きプログラマの黙示録 を書いたが、隣接のサブディレクトリから使用する場合、呼出し側をきちんとインポートしないと、 ValueError: attempted relative import beyond top-level package …

Java で JWT の利用

JSON Web Tokens - jwt.io を Java で利用する。 利用環境、pom.xml Maven <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.11.0</version> </dependency> JWTの生成 // 有効期間 3分 int minutes = 3; // 秘密鍵 String secret = "123abc"; // 期間設定の為の計算 LocalDateTime nowtime = LocalDateTime.no…

日付のリスト

timedelta を使って作成する日付リスト from datetime import datetime, timedelta # 指定日から7日間のリスト dlist = [datetime.strptime('2020-10-28', '%Y-%m-%d') + timedelta(days=i) for i in range(7)] # 検証 list = [d.strftime('%Y-%m-%d') for …

re の flags

Python の標準正規表現操作 re で、 先頭:^ 末尾:$ を想定どおりに働かせる場合は、フラグ MULTILINE を指定する。 flags=re.MULTILINE例えば、末尾に、カンマ文字 ',' と数字、カンマと数字の間に空白がある可能性があるものを 除去したい時は、 res = re…

Python でCSVを読む時の注意

Python では、CSVを読む時、カンマ区切りの後に空白があると読込んだ後に列がズレたり、 (最終列の前のカンマの後に空白が存在して最終列がダブルクォートで括って改行が含まれていると、 次の行と一緒に列の認識が崩れる!) 想定しない障害になります…

subprocess.Popen で Java System.in にデータ渡す。

subprocess.Popen の communicate に文字列をセットして実行する Java Class の System.in に入力させてみる。 Java のクラス(実験用なので simple) package org.talking; import java.util.Arrays; import java.util.Scanner; import java.util.concurren…

JWT ペイロードを解析(JavaScript)

JavaScript で、JWT のペイロードだけを Base64 で解析 以下のようなメソッドで充分 function parseJwt (token) { var base64Url = token.split('.')[1]; var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); var jsonPayload = decodeURICompon…

YAML から特定パスを指定した値の抽出

Spring や SpringBoot を使わない環境で、YAML からパスを指定した値の抽出です。 非Spring、非SpringBoot 環境で、YAMLを読む - Oboe吹きプログラマの黙示録 の応用です。 snakeyaml を使用します。 ・パスは "." 区切りで並べます。 ・配列の一部を抽出す…

snakeyaml で出力する先頭の !! について

snakeyaml で、オブジェクトからYAMLを作る - Oboe吹きプログラマの黙示録 で書いたとおり、snakeyaml がダンプする YAML は、 "!!" + 変換対象クラス名か、"!!yaml" が先頭についてしまいます。YAML書式ではコメントは、'#' で始めてコメント行にするはずで…

snakeyaml で、オブジェクトからYAMLを作る

非Spring、非SpringBoot 環境で、YAMLを読む - Oboe吹きプログラマの黙示録 を書いたので、今度はJava オブジェクトから、YAML テキストを snakeyaml で出力します。 Yaml yaml = new Yaml(); 基本、Yamlインスタンス作って、dumpメソッドで出力するのですが…

非Spring、非SpringBoot 環境で、YAMLを読む

Spring や SpringBoot を使わない環境で YAML を読込むのにどうしようという課題で、 snakeyaml を使うのが簡単です。 ( SpringBoot も結局は、snakeyaml を使っているので、Speing起動時のあの重たい起動の一部で、YAML読込みで使用されているので 安心し…

JSON と YAML の変換をしてくれるところ

ちょっと JSON を書いていて、あるいは、 YAML 形式で書いていて、変換が必要なとき、 以下のサイトが便利www.json2yaml.com

リストからユニーク要素を抽出する

リストから重複要素を抽出する。 - Oboe吹きプログラマの黙示録 を書いたので、 自然に次は、リストからユニークな要素=重複していない要素を抽出したリストを Collector として生成するのは、以下になります。 public static <T> Collector<T, ?, List<T>> uniquedList(){ M</t,></t>…

リストから重複要素を抽出する。

リスト、またはストリームから重複した要素だけを抽出してリストにしたい場合、 equals 、hashCode が正しく実装されていることが前提だが、 直感的かもしれないが、以下のように Collectors.groupingBy で取得できる。リストでもStreamを取得できるので、St…

equals メソッドと hashCode メソッドが override されたかを調べる。

あるクラスが、java.lang.Object の equals メソッドと hashCode メソッドを override して定義しているかを調べる。equals を override しているかを調べるメソッド public static boolean isEqualsOverride(Class cls){ try{ Method equalsMethod = cls.ge…

gradle の copy タスク活用

MyBatis を使用した開発プロジェクトで、gradle を使用した時にマッパーXMLを配置するのに、 不都合なことがある。Java の interface クラスを置いたJavaソースと同じ場所に、XMLを置いてビルドした時、 classpath にXMLも配置して欲しいのである。 例え…

SpringBoot HikariCP の コンフィグレーション

以下を書いたが、、 oboe2uran.hatenablog.comHikariCP を意識すると、、 import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import com.zaxxer.hikari.HikariDataSource; im…

SpringBoot mybatis の コンフィグレーション

今更、ではあるがメモ。 SpringBoot Ver 2.3.1 mybatis-spring-boot-starter は、Ver 2.1.3コードの読みやすさの為に、lombok を使うことにして、 build.gradle の設定は、、 dependencies { implementation 'org.springframework.boot:spring-boot-starter-…

重複存在すれば true を返すCollectors

以前、リストの重複チェックとして、 oboe2uran.hatenablog.com を書きました。ここに書いたのは、全てユニークだったら true であり Booleam#logicalAnd を利用したものでした。では、重複だったら true を返すCollectors にしたい場合は、、 logicalXor を…

カナ・かな正規表現

昔、書いておいたが、 カナ正規表現 - Oboe吹きプログラマの黙示録 Unicode で書く正規表現全角カナ: ^[ァ-ー]+$ 全角かな: ^[ぁ-ゟー]+$ 全角かな(長音含めない): ^[ぁ-ゟ]+$ 半角カナ: ^[。-゚+]+$全角カナ: ^[\u30A1-\u30FE]+$ 全角かな: ^[\u3041-…

gradle の build 実行時にテストが実行されないようにする

build.gradle に、次の記述を追加する。 test { exclude '**/*' }

System.out を close したと騙して再利用する。

try-with-resources 文で、PrintWriter pw = new PrintWriter(System.out) を書いて、 try-with-resources文の finally を実行した後ろで、System.out.print を実行しても 既に close しているのだから、print / println は機能しない。でも、再度、System.o…

Gsonで未整形JSON を人が見やすいように整形する。

Google gson の JsonWriter の setIndent の方法ではなく、gson インスタンスを生成する前の GsonBuilder で、setPrettyPrinting を実行する方法、既に存在するJSON 文字列から、整形する場合。文字列→整形した文字列 String json = "{\"a\":\"A\",\"b\":[10…

JSON path 指定して部分的にプリントする。

yipuran-gsonhelper/JSonValue.java at master · yipuran/yipuran-gsonhelper · GitHubを使用して、プリントする import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.yipuran.gsonhelper.JSonValue; try(InputStream in = new Fi…

JsonPattern バリデーションチェックの強化

https://json-schema.org/ が示す JSOMスキーマによるバリデーションチェックは、 わざわざ、スキーマ記述ルールで書いたスキーマのJSONを用意して、 バリデーションチェックを実行する。→ 記述ルールを憶えるのが面倒くさい。書式サンプルなるJS…

Arctic Code Vault Contributor

自分が書いたプログラムコードを置いた Git-hub で、Arctic Code Vault Contributorなる、星形のマークがついている。北極点の保管庫送りだと!、馬鹿にしてるのか讃えてるのか、わけわからん。。。archiveprogram.github.com

Generate a JSON schema using Jython !?

JSON schema の Draft 7 JSON Schema Draft-07 Release Notes | JSON Schema に沿ったバリデータを探していて、 JSON schema を生成するのに、Python でというのは、よくあるアーキテクトと思うが、、 今更、Jython ?。。。天下のOracle のページで目にした…

YAML 配列を読込む場合のルール

昨日書いた YAML に追加で、、、 https://oboe2uran.hatenablog.com/entry/2020/07/24/124904 以下のように、clist キーに配列がある場合、 address: group: info1: A info2: 120 clist: - 21 - 22 - 23 aaa: bbb: ABC この clist を読むための List を、@Va…

JUnit で、YAML を読む処理をテストする時、@EnableAutoConfiguration を忘れずに!

YAML を読む処理を JUnit テストする時、( Spring Batch での話 ) @ContextConfiguration で、イニシャライザ指定 initializers = ConfigFileApplicationContextInitializer.class を付けるだけでなく、 @EnableAutoConfiguration が必要 例) application…

mybatis + HikariCP

コネクションPOOL に HikariCP を使用した mybatis の接続 【再興】mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録 のパターンで書いてみる。HikariCP 3.4.5 <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.5</version> </dependency> mysql-connector-java 8.0.21 <dependency> <groupId>mysql</groupId> </dependency>