Wicket stateless なページ

Wicket の基本は、ステートフルである。それでもステートレスのページが必要なケースも要件によっては発生するのが Webアプリ開発の世界。Form → StatelessForm Link → StatelessLink か、 BookmarkablePageLink に置き換えるで済ませられれば良いが、Page …

ZIP 圧縮と展開

先日、tar and gzip 圧縮・展開を書いたので、ZIP圧縮・展開です。これは Apache commons-compress を必要とすることなく 標準ライブラリと、Throwable な Consumerがあれば綺麗に書けます。→ ラムダ式の例外処理を綺麗にする - Oboe吹きプログラマの黙示録…

Java9 module-info 未対応 JAR の Maven 解決方法

先日、初めてJava9 Jigsaw に触れて四苦八苦したが、、、 Java9 Jigsaw モジュール参照側は結局すべてモジュールを引っ張れないとならない?! - Oboe吹きプログラマの黙示録 Java9 Jigsaw モジュール使用プログラムの実行 - Oboe吹きプログラマの黙示録 Jav…

QRコード生成&読込で良く使われてるもの。

Javaでなくても、C++ 、C# でも Zxing を使えば QRコード生成&読込は、事足りる。github.com 変なものを見つけた。JavaScript で QRコードをデコードするもの。。。 GitHub - colkito/qrcode-decoder-js: Javascript QR code decoderどうして JavaScript で…

tar and gzip 圧縮・展開を補強

Tar GZIP 圧縮を先日書いた oboe2uran.hatenablog.comこれに、圧縮する時に対象を制限したり展開せずにエントリを抽出するものを追加した。 長いけど以下のとおり。ただし、→ FileCollection - Oboe吹きプログラマの黙示録 が必要 import java.io.BufferedIn…

Webページ入力フィールド制限、ToolTip

今まで過去から何度も書いたものをまとめる。 過去。。。 入力フィールドでよく使いそうな jQuery 処理のメモ - Oboe吹きプログラマの黙示録 input タグ type="number" のスピンボタンを非表示 - Oboe吹きプログラマの黙示録 chromeで0以上の整数入力に限定…

Java9 の HttpClient を試す

Java9 HttpClient インキュベーターなので、この先どうなるか判らないが、 Apatch HTTPClient を使わなくて済むようになるのか? とりあえず試してみる。 モジュール使用宣言を用意する必要があり、module-info..java を次のように用意する。 module sample{…

Java9 でまとめる方向が見えてきた非同期ストリーム

community.oracle.com 有志が日本語に訳してくれて助かります。 https://orablogs-jp.blogspot.jp/2016/10/reactive-programming-with-jdk-9-flow-api.html

Java9 Jigsaw モジュール参照側は結局すべてモジュールを引っ張れないとならない?!

Java9 Jigsaw モジュール使用プログラムの実行 - Oboe吹きプログラマの黙示録 に書いたが、Elipse Maven で、WTP 書いてコンパイルができないのは、 依存する JAR が export を宣言した module-info を用意したJAR を使ってないからだ。 でも、開発するWebア…

マップの比較、MapDiff

1年近く前に、リストの比較を書いた。 リストの比較、ListDiff - Oboe吹きプログラマの黙示録それなら2つのマップの比較も普遍的なものが書けるであろう。 import java.util.Map; import java.util.function.BiFunction; import java.util.function.Consum…

Java9 Jigsaw モジュール使用プログラムの実行

モジュール参照のJavaプログラムを実行するにはモジュール exportしている JARの置かれたパスを指定して 読み込めるように指定オプションと参照側のクラスを指定しないとならない。 java -m {モジュール検索先PATH} -p {実行するモジュール名}/クラス名{モジ…

Java9 待望の Optionalのメソッド

(1)Java8 まで、Optional の、肯定と否定を、以前書いたように実行していたが、 Optional のifPresent の否定形 - Oboe吹きプログラマの黙示録ifPresentOrElse で書けるようになった。さほど文が短くなるわけではないけど、型を書かなくてもいい。 Option…

Java9 Jigsaw と Maven

Java9 も一般公開リリースされて日数も経ったが、まだ仕事の現場で使用されたというのは聞こえてこない。 Jigsaw モジュール定義で公開したいものだけを module-info.java に書いて、参照側でモジュール定義名を参照限定する機能、 ソース管理と伴に隠蔽化し…

Wicket が自動的に組み込む jQuery のバージョンを変更

Wicket が自動的に組み込む jQuery のバージョンを変更したい時は、 WebApplocation の init() メソッドで以下のように実行する。 getJavaScriptLibrarySettings() .setJQueryReference(new UrlResourceReference(Url.parse("js/jquery-2.1.4.min.js")));こ…

ByteArrayInputStream を使って文字列 String を作る

未知の byte配列のデータ、制御文字が入っているかもしれない byte配列のデータ、 ただし制御文字以外は ASCIIコードだけであるとします。これをそのまま文字列として print してしまうと制御文字が含まれてしまうので制御文字を取り除いた String を求めた…

Handsontable で 安易なテストツールを作る。

Handsontable で、任意にキーと値(value)を入力して、それをJSONテキストにするのと、任意の入力URLに送信するもの。用意するもの。Handsontable は、コミュニティ版で充分、https://handsontable.com/JSON の jQueryプラグイン GitHub - Krinkle/jquer…

Handsontable コンテキストメニューで削除の丁寧な補助は書かなくてもよい

久々に Handsontable に触れる。 3年程前、2014 年のバージョンの Handsontable のコンテキストメニューは、行削除、列削除を組み込んだ時、 最後の1行、1列は、削除できないように、以下のように disabled キーの関数コーディングをする必要があった。 $…

mybatis logbackが出なくなった場合の対処

mybatis 、logback を使っていて、logback のバージョン上げたのか何かのきっかけ、 依存関係かなにか?指定しているアペンダ悪い?で mybatis のデバッグレベルのログが出なくなってしまった。 実行するSQL文が見れてデバッグに便利だったlogaback.xml …

フェードイン、フェードアウトするメッセージ(改編)

昔、フェードイン、フェードアウトするメッセージの jQuery を書いた。 見直すと中央寄せが中途半端でできていない。書き直す。CSSソース @CHARSET "UTF-8"; /** * fadeinmsg.css */ div#fadeMessageModal{ display: none; position: fixed; width: 100%;…

Optional の filter を連結して使う

Webアプリでのフォーム入力に限らす、Javaでは変数への入力実行の後の妥当性チェックを記述していると どうしてもコードが長くなる。 コードが長いと、タイプミスの確率も上がるし、なにしろ読むのが辛い。長くても何回も if文を書きたくない。java.util.Opt…

時刻正規表現

24時間制、0~23時のHH:mm:ss の正規表現 ^(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[0-5][0-9]):(0[0-9]|[0-5][0-9])$

Model.orElseGet(SerializableSupplier<? extends T> other) は使えるかも

Wicket で、IModel インスタンスを書く時 、コーディングの癖で、 new 演算子による new Model<>() を書くことが多い。 Model.of があるのは知ってはいたけど、なぜかあまり書かなかった。https://issues.apache.org/jira/browse/WICKET-6412Model.orElse を…

ストアドファンクション生成 Error Code: 1419

SQL

他人が構築したDBを引き継ぐのは、嫌なもので状況を把握しないまま、 MySQL ストアドファンクションを追加したら、 Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bi…

グルーピング&ソートの続き

先日のグルーピング&ソートに続いて、、、 グルーピングした時にソートもする。 - Oboe吹きプログラマの黙示録同じく Foo なるクラスオブジェクトのリストで、グルーピングして並べた時に、先頭だけキーをそのままで 他をキーが表示されないように置き換え…

グルーピングした時にソートもする。

グルーピングしながら、ソートした結果リストを求めることを いざコーディングしようとすると、即時、思いつかないのが残念でメモ。Collectors.collectingAndThen を使うのが重要サンプル、以下、文字列の key と value があるクラスオブジェクト public cla…

chromeブラウザ左下に出るURL表示を出ないようにする

方法があった。 stackoverflow で見つけました。 $(function(){ $("body").on('mouseover', 'a', function(e){ var $link = $(this), href = $link.attr('href') || $link.data("href"); $link.off('click.chrome'); $link.on('click.chrome', function(){ w…

DropDownChoice の IChoiceRenderer

2年近く前、Wicket6 → 7 になった時、DropDownChoice の為の IChoiceRenderer が、 public T getObject(String id, IModel> choices) が増えて、choices のgetModelObject() で取ってくるものをこのメソッドで返さなくてはならなくなり、 当時、以下のよう…

実行中のクラス名やメソッド名の取得

Thread.currentThread() を参照することで、スレッド名 → Thread.currentThread().getName() クラス名 → Thread.currentThread().getStackTrace()[1].getClassName() メソッド名 → Thread.currentThread().getStackTrace()[1].getMethodName()で取得できるの…

Pattern to Stream

前から常に思っていたのですが、Java8 には、java.util.regex.Pattern に、splitAsStream があるのに、 matchAsStream に相当するマッチしたものをストリームで返すメソッドが提供されてないんだと不満でした。 Java9 なら、Matcher に、 Stream を取得でき…

Stream でListの中で特定要素があるインデックスを求める

完璧=普遍的とは言えないが、、 例) List<String> list = Arrays.asList("a", "b", "c", "d", "e"); int findIndex = IntStream.range(0, list.size()).map(i->list.get(i).equals("c") ? i : -1).max().orElse(-1);;でも、2つ以上マッチする場合は、最後のインデ</string>…