商用環境向けPayara サーバで行うべき設定

はじめに Production Ready Domain payaradomain と domain1 の違い その他の変更/追加すべき設定 ヒープサイズ Server header と X-Powered-By header の削除 docroot 設定 と エラーページ 各種ログ設定 タイムアウト設定 JVM の固定 まとめ はじめに Paya…

Quarkus CLI による Panache CRUD アプリケーションの作り方

はじめに プロジェクトの作成 開発モードの起動 Entity を作成する JAX-RS リソースを作成する Continuous Testing CRUD メソッドの追加 OpenAPI と Swagger UI まとめ はじめに 今回は、Quarkus CLI を使ったアプリケーション作成の流れについて説明します…

Quarkus 2.2.0 で変更された RESTEasy Reactive のスレッド割当ルール

RESTEasy Reactive とは RESTEasy Reactive は Quarkus 1.11 で追加された拡張です。RESTEasyReactive では、 JAX-RS API を利用したまま、リクエストをイベントループ(Quarkus ではこれを I/Oスレッドと呼びます)で処理することでスループットを大幅に向上…

開発を加速する Quarkus 2.0 で追加された Quarkus CLI

はじめに Quarkus CLI のインストール Windows 環境での Quarkus CLI のインストール Quarkus CLI コマンド プロジェクトの作成 Extension の追加 開発モードで起動 プロジェクトビルド コンテナイメージの作成 まとめ はじめに Quarkus 2.0 で追加された Qu…

JPA の EntityGraph は、@MappedSuperclass が考慮されていない

EntityGraph とは @MappedSuperclass のフィールドは指定できない EntityGraph の API バグと回避法 EntityGraph とは JPA 2.1 で標準化された、Entity のフェッチ戦略として EAGER / LAZY を個別に設定できる EntityGraph。 EntityGraph<Employee> graph = em.createE</employee>…

ディープラーニングを Deeplearning4j でカジュアルに始める(その3)

はじめに Deeplearning4j のプロジェクトを準備する MNIST データベース データセットの定義 ネットワークモデル モデルの保存と復元 サーバの実装 アプリケーションの起動 まとめ はじめに 本稿では Deeplearning4j を使った、ディープラーニングについて説…

Quarkus 関連記事の一覧

リリースノート Quarkus リリースノート一覧 導入編 Quarkus による初めてのアプリケーション作成(Quarkus 0.23) Quarkus を Gradleではじめる(Quarkus 1.0) Quarkus CLI の使い方(Quarkus 2.2) 活用編 Quarkus によるJPAアプリケーション作成(Quarkus 0.23)…

ディープラーニングを Deeplearning4j でカジュアルに始める(その2)

はじめに 損失関数 損失関数の勾配と誤差伝搬法 勾配消失 重みの初期値 過学習と正規化 手書き数字の画像認識の実装 はじめに 本稿では Deeplearning4j を使った、ディープラーニングについて説明します。厳密な定義や数式には立ち入らず、意味合いと利用方…

ディープラーニングを Deeplearning4j でカジュアルに始める(その1)

はじめに Deeplearning4j とは Deeplearning4j によるニューラル・ネットワーク構築の流れ ディープラーニングとニューラル・ネットワーク 活性関数(Activation function) ニューラル・ネットワークのパラメータ MNIST画像データ 訓練用データセット ニュー…

CSS フレームワーク Bulma チートシート

CSS

Bulma とは Bulma の導入 Container Columns カラムサイズ カラムグリッド 固定幅カラム ブレークポイント Button カラー指定 サイズ指定 スタイル グループ フォームコントロール Form group Horizontal form Table Box Panel Card Modal Media Object Noti…

RDS for Oracle で Data Pump によるエクスポート/インポート

AWS

はじめに RDS 上の DATA_PUMP_DIR の操作 Data Pump によるエクスポート テーブル単位でのエクスポート バージョン指定 Data Pump によるインポート テーブル単位でのインポート 統計情報を除いたインポート 既存テーブルの更新/追加 スキーマのリマップ Dat…

JDK 16 : stream.toList() に見るAPI設計の難しさ

はじめに JDK 16 で導入された stream.toList() Collectors.toList() の API と実装 stream.toList() の API と実装 stream.toList() には安易に切り替えられない はじめに JDK 16 で追加された stream.toList()。 タイプ量が減るのは良いのですが、API 設計…

【Modern Java】Java16で正式リリースとなった instanceof パターンマッチング (JEP 394: Pattern Matching for instanceof)

JEP 394: Pattern Matching for instanceof パターン変数のスコープ パターン変数によるシャドーイング まとめ blog1.mammb.com JEP 394: Pattern Matching for instanceof インスタンスの型を判断して処理を行う instanceof-and-cast イディオム以下のよう…

【Modern Java】Java16で正式リリースとなった Records (JEP 395: Records)

JEP 395: Records レコードクラス宣言 レコードクラスのルール レコードクラスで出来ないこと レコードクラスでできること カノニカル・コンストラクタにパラメータ検証を追加する ローカルレコードクラス アノテーションの扱い Reflection API blog1.mammb.…

Java で .tar.gz の圧縮・解凍

はじめに 対象ディレクトリ配下を .tar.gz .tar.gz を解凍 はじめに 成熟した Commons Compress を使うのがベスト。 dependencies { implementation 'org.apache.commons:commons-compress:1.20' } <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.20</version> </dependency> 対象ディレク…

WebSocket によるサーバサイドレンダリングなテトリスの作り方(その3)

はじめに テトロミノ ゲーム盤面上のブロック ゲームの実装 WebSocket エンドポイント WebSocket クライアント ゲームの実行 まとめ はじめに 前回からの続きです。 blog1.mammb.com 前回は Java API for WebSocket について見てきました。 今回は、前回の内…

WebSocket によるサーバサイドレンダリングなテトリスの作り方(その2)

はじめに エンドポイントの構成 ライフサイクルアノテーション @OnOpen @OnMessage @OnClose @OnError Session コネクションのクローズ User Properties すべての Session へ通知 RemoteEndpoint Encoder と Decoder サーバから定期的にPushするエンドポイン…

WebSocket によるサーバサイドレンダリングなテトリスの作り方(その1)

はじめに WebSocket とは Java API for WebSocket エンドポイント Tyrus サーバ WebSocket クライアント サーバの実装 まとめ はじめに WebSocket の利用方法について説明します。 サーバ側には JSR 356 Java API for WebSocket を使い、クライアント側には …

JOL で Java オブジェクトのメモリ情報を取得する

はじめに Java Object Layout (JOL)とは JOL の導入 JOL の使い方 GraphLayout ClassLayout VM まとめ はじめに Java にはオブジェクトが使用するメモリ容量を得る演算子がありません。 例えば、C や C++ における sizeof であったり、Rust における std::me…

Rust の非同期Webアプリケーションフレームワーク Tide

はじめに Tide とは プロジェクトの作成 Hello World パスパラメータを受け取る JSON を返す クエリパラメータを受け取る POSTパラメータを受け取る はじめに Rust の Web アプリケーションフレームワークとしては actix-web rocket がメジャーで、 tide war…

Payara(Glassfish)のライブラリフォルダとクラスローダの関係

要約 各クラスローダの役割 Bootstrap class loader Extension class loader Public API class loader Common class loader Connector class loader LifeCycleModule class loader Applib class loader Archive class loader add-library Logback 利用時の注…

JCenter は2022年2月で終了するので Gradle プロジェクトは早めの対応を!

JCenter の終了 JFrog の以下の発表によると、JCenter は 2022年2月1日 で利用できなくなるとのことです。 jfrog.com 当初は 2021年5月1日 で終了でしたが、2022年2月1日 まで延期されました。 Gradle プロジェクトでは、Init プラグインによりデフォルトで …

Rust の簡単な CLI用テンプレート

シンプルなケース StructOpt 利用 シンプルなケース 標準ライブラリのみのシンプルなケース。 use std::env; use std::process; use std::error::Error; use std::path::PathBuf; fn main() { let opt = Opt::from_args().unwrap_or_else(|err| { eprintln!(…

POI による大きなExcelファイルの扱い

Usermodel 低メモリフットプリントなAPI Event API Streaming Usermodel API SAX Event API Usermodel Usermodel はPOIが提供する一般的で高レベルなAPIです。 以下のようにスプレッドシートのメンタルモデルとマッチした操作が可能です。 Workbook workbook…

Windows 環境への Rust インストール

インストーラの入手 Visual Studio C++ Build tools の導入 Rustup のインストール 確認 インストーラの入手 Windows 環境に Rust をインストールするには WSL を使う方法もあるが、ここではネイティブなインストールを行います。 といっても、基本的にイン…

AWS Lake Formation で生成される Glue ジョブ

AWS

Lake Formation とは ブループリント Glue ワークフロー Glue クローラ事前ジョブ Glue クローラ事後ジョブ ETL ジョブ ETL 事後ジョブ まとめ Lake Formation とは AWS の提供するデータレイク構築のためのマネージドサービスです。 Glue のクローラを利用…

PuTTY で EC2 へ SSH 接続

AWS

はじめに PuTTYgen でプライベートキーの変換 接続 Tera Term の場合 はじめに PuTTY から EC2 接続は、いつも忘れてしまう。 PuTTYgen でプライベートキーの変換 PuTTY はプライベートキー形式をネイティブにサポートしていないため、EC2 接続用のプライベ…

h2database に見る Assertion スイッチによる初期化

h2database のソース見てたら以下のようなコードがあった Assertion (表明) Assertion スイッチによる初期化 h2database のソース見てたら以下のようなコードがあった private static final boolean ASSERT; static { boolean a = false; // Intentional sid…

Windows server 2016 の日本語化手順

簡易手順 画面キャプチャで見る Settings から Time & Language を選択 Region & Language から Add a language を選択 Add a language のメニューから 日本語 を選択 Set as default で最上部に移動させ、Options を選択 Download language pack でインスト…

JSF Bean Validation のエラー表示を Bootstrap で

はじめに 入力フォーム BeanValidation はじめに JSF における Bean Validation でのエラー表示についての小ネタです。。 入力フォーム 以下のようなテキスト入力を考えます。 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:jsf="http://xmlns.jcp.org/jsf"> ... <form jsf:id="form"> <div class="mb-3"> </div></form></html>