2021-01-01から1年間の記事一覧

Handsontable CSV出力

無償版の Handsontable Ver6.2.2 を使ったとき、HandsontableからCSV出力 を簡単にできるものを探していた。https://github.com/juantascon/jquery-handsontable-csvを見つけた、MITライセンスである。 中身をよく見ると var csv = "sep=;\n" csv += headers…

ページ数、構成が大きい Flask Blueprint 使用方法

共通で使用するCSS、JS が存在しページ毎の CSS 、JS を構成しなければならず 複数ページを大量に構築する場合の、Flask Blueprintを使用する方法注意すべきは、 ・Flask で指定したテンプレートフォルダに、Blueprint でテンプレート走査するフォルダを 追…

Flask デフォルトの参照フォルダを変更する

Flask インスタンスを run 実行するスクリプトと同じ階層にあるフォルダ名 templates ・・・HTMLを置くフォルダ static ・・・CSS, JSを置くフォルダ デフォルトの構成 /root | +--- static | | | +--- common.css | +--- common.js | +--- templates | | …

PyCharm の起動画面

PyCharm の起動後の画面、プロジェクトを毎回選択させる画面にするには、 設定で、「起動時に前回のプロジェクトを開く」のチェックをはずす。 デフォルトは、チェックONになっている。 そうすれば、以下のように起動後はプロジェクト選択の画面になる

Python で telnet メモ

標準ライブラリ telnetlib telnetlib --- Telnet クライアント — Python 3.9.4 ドキュメントhttps://runebook.dev/ja/docs/python/library/telnetlib PythonのtelnetlibでNW機器(Cisco)にリモートログイン - Qiita stackoverflow.comtelnetlibのTelnetでコマ…

Jackson LocalTimeDeserializer の注意

Jackson で、JSR-310 対応の LocalTime をデシリアライズする設定で なぜか、次の方法で JavaTimeModule を設定しようすると、 メソッド addDeSerializer(Class, LocalTimeDeserializer) は型 SimpleModule で未定義です とコンパイルエラーになる。 JavaTim…

Java → Python 実行結果の文字コード

以前、Java から Python 実行した時の結果をPython標準出力で Java が受信する方法を投稿したが、 Javaからプロセス起動で実行するPython と文字列の受け渡し - Oboe吹きプログラマの黙示録Python 標準出力→Java受け取り - Oboe吹きプログラマの黙示録 …

Java Unicode文字列を通常の文字列(utf-8)に変換する(他の文字が混合しても変換する)

文字列書式、\uXXXX のままの String インスタンスなら、変換処理の必要性なくそのまま インスタンスを扱うのであるが、文字列として \uXXXX を 通常の文字列(utf-8)に変換する場合の問題です。 文字列書式、\uXXXX String str = "\u6f22\u5b57\uff1a\u6c0…

総称型のクラスを認識する

総称型のインスタンスを与える場合、当たり前だが総称型のクラスは認識できる。 public class Some<T> { private Class<T> genericClass; public Some(T t) { genericClass = t.getClass(); } このようにコンストラクタで T インスタンスを渡すのではなく、渡さず</t></t>…

ディレクトリ内のファイルリストを取得

ディレクトリ内のファイルリストは、最も安易な方法は、glob を使うことであるが、 再帰的に全てのファイルリストを得るには、recursive=True が必要である。 import glob files = glob.glob("/var/tmp/**", recursive=True) for f in files: print(f) 再帰…

Bean の lenient なコピー

親クラスを全て参照する方法を応用すれば、 以前書いた、yipuran-core で FieldUtil なるものを作り、 yipuran-core/FieldUtil.java at master · yipuran/yipuran-core · GitHub public static <R, T> R copy(T t, Supplier<R> s) public static <R, T> R copylenient(T t, </r,></r></r,>…

PyCharm の日本語化の方法

2020年版までの JetBrains PyCharm の日本語化は、 Pleiades日本語化プラグイン https://mergedoc.osdn.jp/ を使ってましたが、 JetBrains社の公式の言語パックで日本語化するのが正しい方法のようです。PyCharm をインストールして起動直後 Plugins で Japa…

メモ:Windows においての Python PATH

pip 実行の為のPATH C:\Users\Xxxxxxx\AppData\Local\Programs\Python\Python39\Scripts\python 実行の為のPATH C:\Users\Xxxxxxx\AppData\Local\Programs\Python\Python39\Xxxxxxx : Windows ユーザーーーー python-daemon · PyPI

親Class を全て参照する

package sample 配下に public class Foo extends FooBase{ } public class FooBase extends AppBase{ } public class AppBase{ } とあるとき、親Class 全てを求める方法 UnaryOperator<Class<?>> superFind = c->c.getSuperclass(); Class cl = Foo.class; while(!(c</class<?>…

Collector.of のサンプル(2)

フィールド名、及び getter / setter が同じ Java Bean のコピーも、Collector.of のサンプルとして 以下のように書ける。 public static<T,U> U fieldcopy(T t, U u){ UnaryOperator<String> topUpper = s->s.substring(0, 1).toUpperCase() + s.substring(1); return A</string></t,u>…

Collector.of のサンプル(1)

java.util.stream.Collector#of の簡単なサンプルCollectors.toSet() で済む話ではあるのだが、 static <T,A,R> Collector<T,A,R> of(Supplier<A> supplier, BiConsumer<A,T> accumulator, BinaryOperator<A> combiner, Function<A,R> finisher, Collector.Characteristics... characterist</a,r></a></a,t></a></t,a,r></t,a,r>…

Stream の Collector 見直し。。

去年、書いたStream の終端処理 Collector 以下は、 リストから重複要素を抽出する。 - Oboe吹きプログラマの黙示録 並行Stream実行ではNGであるのを反省して、以下のように修正すべきです。 static <T> Collector<T, Map<T, Integer>, List<T>> duplicatedList(){ return Collector</t></t,></t>…

Excel の操作、行列入れ替え

いつも、どうするんだっけ?と忘れているのでメモ 入れ替えたい範囲を選択してコピー、 貼り付けオプションで指定

SpringBoot で gson使用

Jackson も、Google gson も spring-boot-starter-json で利用するための構成があります。 SpringBoot で、gson だけに使用を絞りたい時はどうすればいいのでしょう。まずは、Gsonを使うための設定 for Gradle build.gradle dependencies { compile group: '…

Jackson 未定義フィールドのJSON読込み、JSONコメント

JSON にコメントを書く場合、いろいろあって よく紹介されてるのが、、 Hjson ( .hjson ) https://hjson.github.io/JSON5 ( .json5o ) https://json5.org/JSONC ( .jsonc ) https://github.com/microsoft/node-jsonc-parser Visual Studio Code 向け、ですが…

エポックミリ秒または秒数をJSONデシリアライズ

Jackson でJSONで表現されたエポックミリ秒またはエポック秒数を、 デシリアライズするには、次のカスタマイズ デシリアライザを用意して、 jackson-datatype-jsr310 の JavaTimeModule に登録して、 ObjectMapper にセットする。LocalDateTime として読込ま…

JSONとマップする任意クラスを定義しないでJSONの値を変更

Jackson あるいは、Google gson を使用して JSON → JavaクラスObject → 属性値の変更 → JavaクラスObject → JSON という流れを組むのがほとんどの方法であるが、 そうではなく! Jackson でJSONを読み込んだ結果の JsonNode を 変更して、toString() や、Obj…

JWT JSON読込み

JSON Web Tokens - jwt.io のJSON読込みについて、、、 デコードしたJWT の getClaims() が返す Mapが、Claimインスタンスのマップであるが、 この Claimインスタンスは、隠されたクラス com.auth0.jwt.impl.JsonNodeClaim である。 この JsonNodeClaim が値…

Jackson 2.12 から、PropertyNamingStrategy.SNAKE_CASE は、非奨励になってた。

JSON を解析、出力で使うJackson で、JSONのキー、 Property Name を Snake CASE にしたり Camel CASE にしたりする PropertyNamingStrategy.SNAKE_CASE PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES は、バージョン 2.12 から、@Depr…

Map の値にリストなどを持たせる場合の書きやすさと効率

リストなどコレクションを Map にする構造では、キー存在有無によってどうしても 初期リスト、コレクションを格納しなければならない。 Map<String, List<String>> map = new HashMap<>(); if (!map.containsKey("a")) { map.put("a", new ArrayList<String>()); } map.get("a").add("100"</string></string,>…

throwable な Function を使うケース

先日の Jackson 使用する JSON解析の方法では、 oboe2uran.hatenablog.comJSON構造の中階層のキーを任意クラス型に変換させる場合、 ObjectMapper から com.fasterxml.jackson.databind.ObjectReader を取得して、 readValue(JsonNode) メソッドを実行すれば…

Jackson JSON読込み、key-value 解析を柔軟にする

Jackson JSON読込みで、JSON key-value を BiConsumer はまたは、Stream 生成する方法を Jackson でJSON読込み key-value の BiConsumer を処理する - Oboe吹きプログラマの黙示録Jackson でJSON読込み key-value の Stream生成 - Oboe吹きプログラマの黙示…

Jackson でJSON読込み key-value の BiConsumer で、日付時刻も

oboe2uran.hatenablog.comoboe2uran.hatenablog.comを書いたが、日付時刻は、LocalDate LocalDateTime で読み取りたいという要求に応えるために 以下のようにする。 import java.io.IOException; import java.io.InputStream; import java.time.LocalDate; i…

Jackson の 日付時刻の読込み

JSR310 Date And Time API に従ったJacksonは、 jackson-datatype-jsr310 を使用する。 Maven 利用なら、pom.xml は、全部で <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> </dependency>

クラスと同じclasspath の場所に置いたファイルのIO(2)

先日書いた、 クラスと同じclasspath の場所に置いたファイルのIO - Oboe吹きプログラマの黙示録よくよく考えたら public File getCurrentPathFile(String path) throws IOException{ try{ return Optional.ofNullable( ClassLoader.getSystemClassLoader().…