Wicket 9.0.0 - M1 が公開されてる。

Wicket が、Javaのバージョン 11 を最低条件に、Wicket 9.0.0 - M1 をリリースいずれ、、Wicket 9 が登場するということで、JavaのバージョンUPと伴に、Wicket バージョンUPも 加速してきた。。。 wicket.apache.org

flex による均等な3分割レイアウト

CSS

他にも応用がきくので、コピペの為にメモ。 <div class="container-parent"> <div class="container">A</div> <div class="container">B</div> <div class="container">C</div> </div> <ul class="container-parent"> <li class="container">A</li> <li class="container">B</li> <li class="container">C</li> </ul> calc で計算して width を指定する。(レ…

jsTreeノード選択イベントのdata引数

以前、 oboe2uran.hatenablog.comを書きましたが、 この時、選択配下のノードツリーを配列JSONで取得する処理 on メソッドで、select_node.jstree でイベントと結合して $('#tree').jstree({ 'core':{ data':{ "url":"./tree.json", "dataType":"json" }, })…

pdfkit ページヘッダを付ける

Python pdfkit で、ページ番号などページヘッダを付ける方法のメモ wkhtmltopdf のオプション説明 Help を読めばいいのですが、 → https://wkhtmltopdf.org/usage/wkhtmltopdf.txtオプションに、header-left で、ヘッダ左端に付与する文字列、 header-right …

Wicket 8.4.0 がリリース

Wicket 8.4.0 がリリースされた。やっと修正されたバグ [WICKET-6639] - PageStoreManager$SessionEntry.clear produces NullPointerExceptionhttps://issues.apache.org/jira/projects/WICKET/issues/WICKET-6639?filter=allissues監視プロセスからの PageS…

Java→Python Pdfkit実行→PDF受け取る

Wicket で、Python Pdfkit実行してPDFダウンロードさせる方法を考えました。 このメリットは、 ・作成するPDFが、PdfkitがHTMLからPDFへの変換であることから WicketでブラウザにWeb Page 表示してPDF作成イメージを確認できること。 ・HTMLでPD…

pdfkit の from_url

pdfkit.from_file( HTMLファイルPATH , 出力PDFファイルPATH , options=options) pdfkit の from_file だけでなく憶えときたいもの。。pdfkit.from_url( url , 出力PDFファイルPATH , options=options)変数に出力 : False を付ける pdf = pdfkit.from_url( …

pdfkit Python で作成するPDFのサイズ

データーベースなどから読み込んだデータをPDF帳票出力する時に、表組出力~罫線等で囲んで 連続した出力をする場合、 Jasperreports on Java 詳細で複雑な表でも可能だが、XMLテンプレート作成がとても面倒で労力が必要 ReportLab on Python テンプレート作…

Google gson MalformedJsonException のパターン

Google gson で JSON読込みした時に発生する MalformedJsonException のパターンとは、以下の表にまとめることができる。 エラーのパターンは、これ以外あるかもしれないが、だいたいこんなところ。 例外のメッセージ エラーの意味 JSONエラーの例 Untermina…

Chart.js Time グラフの為のデータJSONを作成するクラス

Chart.js https://www.chartjs.org/ X軸=時刻 の線グラフを描画するためのJSONデータ作成する Java クラスを作成して、AJAX通信によるJSONデータ → Chart.js グラフ描画をデザインを除いた 可変の JSONデータ生成だけでも汎用的にならないかと考えました。…

java.lang.reflect.Type インスタンスを生成する方法

総称型orクラスを知りたい時、知らせたい時に java.lang.reflect.Type を伝える為の Type インスタンスを生成する方法 Google guice を使用している前提で2通りある。com.google.common.reflect.TypeToken import com.google.common.reflect.TypeToken; Typ…

Wicket Bootstrap navbar と pagenation

Wicket で、Bootstrap を採用して navbar と Wicket の DataView で描画するページング を Bootstrap の Pagenation にするようにした時、 デザイン作業中は問題ないのですが、 z-index の指定をしないと、 navbar のドロップメニューが Pagenation の下に隠…

MalformedException の捕捉処理を書き易くする。

Google gson の fromJson や JsonParser で発生する JSON書式エラー、MalformedException の捕捉を するとして、try~ctach 文の中に書いてもいいのですが、 1つのロジックで何回もJSON読込みの必要な処理があって、毎回 catch文の中で MalformedException …

JSONの書式チェック

Google gson の fromJson や JsonParser 生成は、次のようなJSONであると { "A": "12", } com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 3 column 2 path $.A と例外を発生してくれます。JSO…

配列型に対するmybatis の TypeHandler よく使いそうなものを作った

先日書いた int[] → ArrayTypeHandler - Oboe吹きプログラマの黙示録 に刺激されて、String[ ] , LocalDate[ ] , LocalDateTime[ ] , double[ ] とのマッピング もあるべきと思い、 GitHub - yipuran/yipuran-mybatis: mybatis used application の方で公開…

int[] → ArrayTypeHandler

SQLクエリの結果から、int [ ]で受け取るための mybatis ArrayTypeHandler先日、PostgreSQL 再帰クエリの結果から、INTEGER型 配列を Integer[] で取得するものを 書きました。 oboe2uran.hatenablog.comInteger [ ] ではなくて、やはり、int [ ] で取得した…

ヘッダ有りCSV をPython で読む時(メモ)

読出し → 行 row[1:] スライスを for ~ in で処理する。例) name, point A, 3 B, 2 C, 1import csv import codecs with codecs.open('sampledata.csv', 'r', 'utf-8') as fp: reader = csv.reader(fp) row = [row for row in reader] for row in row[1:]: p…

PostgreSQL の再帰SQL→Array → mybatis で取得

先日の例、 PostgreSQL の再帰SQL で要素の連結結果を求める。 - Oboe吹きプログラマの黙示録 テーブル名:division id parent_id name 1 null A 2 1 B 3 2 C 4 2 D ここから、連結文字列の結果、id と name "1" "1,2" "1,2,3" "1,2,4""A" "A,B" "A,B,C" "A,…

Java祝日計算を修正、2019年対応

かなり昔に作って、何年もメンテしている 「Java祝日計算」 Java祝日計算 プロジェクト日本語トップページ - OSDNJava版の方で、2019年天皇即位など対応した static メソッドが、内部の enum を破壊するという とても恥ずかしいバグがあったので、修正し…

openpyxl で書く Excel セルの入力規則

最も簡単なサンプル~書き方を示すもの。 from openpyxl.worksheet.datavalidation import DataValidationdv = DataValidation(type="list", formula1='"A,B,C"') # 適用するセルの指定 dv.add(sheet.cell(1, 1)) # シートに入力規則を登録 sheet.add_data_v…

Python での Excel 読み書き

xlrd :読込みのみ。 xlwt:書込みのみ。しかも、*.xlsx は書けない。*.xls しか書けない。 1つのExcelに対して、読込み書込み両方の場合は、openpyxl を使うpip install openpyxl でインストールセル (cell) の行(row), 列(cols) の数え方は、1始まりであ…

Generic JsonDeserializer

先日、Gsonデシリアライザ ラムダで。 - Oboe吹きプログラマの黙示録 や、 Gsonデシリアライザ、汎用化? - Oboe吹きプログラマの黙示録 を書きましたが、 再考して、以下に至りました。 JsonDeserializer実装生成で目標のインスタンスの Supplier と JsonDe…

テスト用に作ったファイル読み込み

Java テスト用に作ったファイル読込み 以下のような static メソッドを書いて使い回してました。 public static String readText(String path) throws IOException{ try(InputStream in = new FileInputStream(path); ByteArrayOutputStream out = new ByteA…

PBKDF2ではなくSHA256で CryptoJS のAES暗合復号

Java と JavaScript 間の AES暗合 - Oboe吹きプログラマの黙示録 に書いたように、PBKDF2WithHmacSHA1 で実行する AES暗合も一計ですが、 単純に、SHA-256 ハッシュ&初期ベクトルを単純にハッシュ値から持ってくる方法も、 CryptoJS で書こうと思えば書けま…

Java と JavaScript 間の AES暗合

Java と JavaScript 言語間の暗合文や鍵の渡し方はいろんな方法あるので ここでは書きません。 相互での暗合復号の実際の実行を書いてます。 CBCモードで、PBKDF2WithHmacSHA1 です。 Java側JavaScript は、crypto-js を使います。 https://code.google.com/…

Java と Python の AES暗合復号

実運用を考えて、書き直しました。 AES のモードは、CBC ,パディングは、PKCS5Padding Java側 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Arrays; import …

Base64 の正規表現

Base64 の正規表現 ってこれでチェックと、4で割り切れることかな。 ^[a-z0-9A-Z/\+]+={1,2}$

Gsonデシリアライザ ラムダで。

Gson のデシリアライザ、以下を用意すれば何でもリストをデシリアライズできる import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.function.Function; import com.google.gs…

Python JSON整形

Python で JSON を読みやすく整形 json パッケージの dumps を使えばインデント指定で整形してくれる。 import json sample = '{"a":1,"set":{"type":"A","items":["apple","lemon","orange"]},"price":1200}' data = json.loads(sample) text = json.dumps(…

Python ModuleNotFoundError

Python datetime クラスのメソッド strptime や strftime を利用するのに、 from datetime import datetime と書いて、datetime.strptime ( 文字列, 書式 ) を書くのが長くて嫌です。 Python 分単位で時刻の範囲を展開 - Oboe吹きプログラマの黙示録 これを…