2023-01-01から1年間の記事一覧
WebUI とは 簡単な実例 Go からフロントエンドの呼び出し JavaScript から Go 関数の呼び出し 結局 WebUI とはなにものなのか WebUI とは Cで書かれたクライアントアプリケーション構築用のライブラリです(バックエンドとのブリッジ部分は TypeScriptで書か…
blog1.mammb.com クラスパスと依存ライブラリの確認 クラスパス内容の表示 依存ライブラリの確認 クラスパスと依存ライブラリの確認 -d オプション付きでビルドを行い、 $ ./gradlew clean $ ./gradlew -d build NormalizingJavaCompiler のログでコンパイラ…
はじめに Java Platform Module System (JPMS) の振り返り クラスパスとモジュールパス モジュラーJAR モジュール 自動モジュールのモジュール名 明示/自動/無名モジュールの参照範囲 Gradleにおけるモジュールシステムの扱い Gradleのモジュールの扱い具体…
blog1.mammb.com はじめに JEP 458 Launch Multi-File Source-Code Programs Using pre-compiled classes How the launcher finds source files Launch-time operation Differences between compilation at compile time versus launch time はじめに Java11…
OpenRewrite とは OpenRewrite プラグイン設定 OpenRewrite プラグインの実行 ライセンスヘッダの追加 その他整形 OpenRewrite とは ソースコードの書き換えツール ソースコードを Lossless Semantic Tree (LST) と呼ばれるツリー表現で解釈して検索と変換を…
blog1.mammb.com Java レコードのサポート 検索オプション FindOption の追加 @EntityResult でロックモードを指定可能に order-by 式での nulls first と nulls last サポート スタティックメタモデルに EntityType を追加 スタティックメタモデルに名前付…
PowerShell での操作 パスの一覧 パスの設定 環境変数への保存 コマンドプロンプトでの操作 パスの一覧 パスの設定 環境変数への保存 毎度混乱する Path 設定。 PowerShell での操作 パスの一覧 PS> $ENV:Path 以下のようにすると、見やすい。 PS> $ENV:Path…
Jakarta EE 11 における変更の概要 Jakarta Annotations 2.1 -> 3.0 Jakarta Authentication 3.0 -> 3.1 Jakarta Authorization 2.1 -> 3.0 Jakarta Concurrency 3.0 -> 3.1 Jakarta Contexts and Dependency Injection 4.0 -> 4.1 Jakarta Config 1.0 Jakar…
ハイラムの法則 とは ハイラムの法則 の意味するところ ハイラムの法則 による教訓 具体例 ハイラムの法則 とは Software Engineering at Googleでも紹介されたソフトウェア工学についての考察で、以下のように要約されます。 With a sufficient number of u…
Vineflower とは コマンドラインでの実行 コマンドラインオプション Vineflower とは レコードクラスやシールドクラス、スイッチ式などの新しい文法に対応(Java 20+)した JVM 言語用のデコンパイラです(Quiltflower 1.9.0 が、Vineflower 1.9.1 と名称変更さ…
blog1.mammb.com はじめに Unnamed variables (無名変数) ブロック内のローカル変数宣言文 try-with-resources文のリソース指定 基本的な for ループのヘッダー 拡張 for ループのヘッダー キャッチブロックの例外パラメータ ラムダ式の正規パラメータ Unnam…
blog1.mammb.com はじめに FFM API Arena MemoryLayout 外部関数のルックアップ 外部関数の呼び出し 外部関数からJavaコード呼び出し jextract によるグルーコード生成 はじめに JEP 454 Foreign Function & Memory API 通称 FFM API では、JVM外部のコード…
はじめに FileObject StorageStoreEntity S3StorageStoreEntityListener まとめ はじめに アップロードされたファイルなどのバイナリデータを、JPA の上で、透過的に S3 に永続化する実装例です。 JPA でバイナリデータを扱う場合、@Lob で BLOB として扱う…
blog1.mammb.com JEP 外の JDK 21 における変更点を、開発時に覚えておきたいものに絞りまとめておきます。 Math.clamp() メソッドの追加 範囲指定可能な String.indexOf() 区切り文字を含めて分割する String.splitWithDelimiters() StringBuilder.repeat U…
Armeria とは Armeria の始め方 サービス Route デコレータ DecoratingHttpServiceFunction SimpleDecoratingHttpService DecoratingService クライアント クライアント デコレータ gRPC サービス まとめ Armeria とは マイクロサービス用のネットワーク・ラ…
はじめに S3 SDK 利用の流れ クレデンシャル S3クライアントの作成 オブジェクトのアップロード オブジェクトの取得 オブジェクトの一覧 オブジェクトの削除 S3 Transfer Manager S3 Transfer Manager によるアップロード S3 Transfer Manager によるダウン…
はじめに Jakarta Data 1.0 により提供されるもの Repository クエリ定義 @Query アノテーション メソッド名によるクエリ定義 パラメータによるクエリ定義 ページング キーセット・ページネーション @StaticMetamodel まとめ はじめに 2024年3月末にリリース…
encoding_rs クレートを利用。 バイトバッファ経由での処理となるが、Shift-JISは1〜2バイト、UTF-8は1〜4バイトで、変換後のバイト数が読めないので意外と面倒。 use std::process; use std::error::Error; use std::io::Write; use std::io::Read; use std…
はじめに JUnit 5 における一時ディレクトリサポート @TempDir の使い方 一時ディレクトリのクリーンアップ 一時ディレクトリ生成のカスタマイズ まとめ はじめに ファイルを利用したテストを行う際に、ファイルのクリーンアップを行うのは面倒な作業です。 …
JDK21 の Emoji サポート Emoji Character Properties Emoji_Presentation Emoji_Modifier と Emoji_Modifier_Base Emoji_Component emoji keycap sequence emoji flag sequence emoji tag sequence (ETS) emoji ZWJ sequence まとめ JDK21 の Emoji サポー…
はじめに Hello World アプリの準備 Hello World アプリのコンパイルと実行 jlink でカスタムJREを生成する モジュールイメージ ランチャーを生成 Gradle からイメージを作成 jlink-gradle プラグイン まとめ はじめに Java Platform Module System (JPMS) …
blog1.mammb.com アプリケーションプラグインの run タスクをデバッグ実行するには以下のようにJVM引数を渡します。 application { applicationDefaultJvmArgs = listOf("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005") } デバッグ…
はじめに Visual Studio Build Tools の準備 プロジェクトの準備 単純なアプリをネイティブイメージ化 リフレクションを利用したアプリをネイティブイメージ化 まとめ はじめに GraalVM 公式のGradleネイティブイメージプラグインの使い方です。 Gradleネイ…
はじめに Gradle のツールチェーンでプロビジョニングした GraalVM はシンボリックリンクが壊れている Native Image Plugin(0.9.25)は、Gradle 8.3 では動かない Native Image Plugin のトレースエージェントは GRAALVM_HOME / JAVA_HOME が必須 はじめに ma…
はじめに サンプル JavaFx アプリケーションの準備 Visual Studio Build Tools の準備 GraalVM の準備 ネイティブイメージの作成(フォールバックイメージ) リフレクション構成ファイルとネイティブイメージの生成 ネイティブイメージ実行時のコマンドプロン…
例えば、sRGB の10進定数をフィールドに持つ Item があったとして、 public static int RED = Integer.parseInt("FF0000", 16); public static int GREEN = Integer.parseInt("00FF00", 16); public static int BLUE = Integer.parseInt("0000FF", 16); priv…
はじめに Node クラス階層 javafx.scene.Node javafx.scene.Parent javafx.scene.layout.Region javafx.scene.layout.Pane javafx.scene.control.Control javafx.scene.Group javafx.scene.shape.Shape はじめに JavaFx では javafx.scene.Node で表される木…
はじめに Transformation と effect Plain Transformation effect まとめ はじめに JavaFx のさわり始めに、必ず混乱する 3つの矩形境界 LayoutBounds, BoundsInLocal, BoundsInParent について説明します。 Transformation と effect テキスト Text を作成…
はじめに 基本的な作業の流れ Ora2Pg 設定ファイルの準備 Oracle への接続確認 テーブル定義のエクスポート シーケンスのエクスポート 各種エクスポートオプション テーブル名のリマップ カラム名のリマップ boolean型への変換 データのエクスポート テーブ…
はじめに Oracle 23c コンテナの起動 カスタム・スクリプト コンテナ内から sqlplus で接続 コンテナ外から sqlplus で接続 Pod 化 はじめに Oracle 23c から Docker コンテナイメージが提供されるようになりました。 旧来の Oracle express edition では、…