2025-01-01から1年間の記事一覧
WinSW とは ダウンロード 使い方 設定ファイル 基本設定 実行ファイル サービス設定 ログ・障害復旧 その他 WinSW とは 任意のプロセスを Windows サービスとして管理するための実行バイナリ。 Jenkins を Windows サービスから管理するために使われている。…
Tera とは デリミタ リテラル 変数 演算 四則演算 比較演算 論理演算 文字列連結 in checking フィルタ if for include macro extends row ブロック ビルトイン関数 Tera とは Tera は、Rust のテンプレートエンジン。 Rust 製の Static Site Generator であ…
GitHub の Markdown 拡張 - Alerts GitHub のアラートは、ブロッククォート構文に基づいた Markdown 拡張で、以下のように書くことができる。 > [!NOTE] > Highlights information that users should take into account, even when skimming. > [!TIP] > Opt…
blog1.mammb.com Into トレイト std::convert::Intoトレイトはある型の値を消費して別の型を返す変換を表す。 以下の定義となっている。 pub trait Into<T>: Sized { fn into(self) -> T; } std::convert::Intoトレイトは、std::convert::Fromトレイトと対を成</t>…
blog1.mammb.com From トレイト std::convert::Fromトレイトは、ある型から別の型のインスタンスを生成するための汎用のコンストラクタとして機能する。 pub trait From<T>: Sized { fn from(value: T) -> Self; } 引数の所有権を受け取り、自身の型に変換を行</t>…
はじめに Unified JVM Logging 旧来オプションとの相対 Xlog ヘルプ全文 はじめに 今更な話ですが、JDK 9 JEP 158: Unified JVM Logging にて Java の内部のロギングの仕組みが統一され、統合ログフレームワークが導入されました。 GC ログについても JEP 27…
はじめに プロジェクトの作成 Jlama の利用 LangChain4j インテグレーション はじめに Jlama は、Java で LLM を実行するためのライブラリです。 Jlama は JDK の Vector API により SIMD命令を使うことで高速な推論が可能となっています(Vector API はJDK25…
はじめに JDK16におけるエンコーディング関連システムプロパティ JDK17におけるエンコーディング関連システムプロパティ JDK18 UTF-8 by Default JDK19 におけるコンソールI/Oの文字コード まとめ はじめに JDK 18 の、JEP 400: UTF-8 by Default 前後で、エ…
TL;DR JAVA_TOOL_OPTIONS JDK_JAVA_OPTIONS TL;DR Java のツールが自動的に読み込む環境変数に JAVA_TOOL_OPTIONS と JDK_JAVA_OPTIONS があります。 これらの主な違いは、その提供範囲で、以下のようになります。 JAVA_TOOL_OPTIONS : java, javac, jar, ja…
Podman はインストール済みで起動している前提。 VS Code のインストール winget install -e --id Microsoft.VisualStudioCode 作業フォルダ作成して Dockerfile 作成して VS Code 起動(PowerShellターミナル上) mkdir swift cd swift echo "FROM swift:late…
Conventional Commits とは 追加の type Semantic Versioning との対応 Conventional Commits とは Conventional Commits は、コミットメッセージのための軽量の規約です。 規約に従うことで、各種ツールによる自動処理が可能になります(例えば JReleaser が…
Makepad とは サンプルの実行 簡単なアプリケーションの作成 イベント処理 まとめ Makepad とは Makepad は、Rust で書かれたクロスプラットフォーム(ネイティブおよびWeb)な UIフレームワークです。 2019年から開発が始まり、2025年5月15日に 1.0.0 版がリ…
jbang-jash とは jbang-jash の使い方 その他の使い方 jbang-jash とは Java でOSコマンドを実行するには、ProcessBuilder を使います(旧来はRuntime)。以下のような感じですね。 ProcessBuilder builder = new ProcessBuilder("java", "-version"); Process…
Stream Gatherers Gatherers4j とは シーケンス操作 結合操作 インデックス付与 並び替え 繰り返し スロットル フィルタリング/選択 debounce 重複削除 フィルタ Grouping と Windowing 算術操作 検証 Stream Gatherers JDK 24 で追加された JEP 485: Stream…
JDK 24 の JEP 483: Ahead-of-Time Class Loading & Linking JDK 25 の Ahead-of-Time Command-Line Ergonomics blog1.mammb.com JDK 24 の JEP 483: Ahead-of-Time Class Loading & Linking JDK 24 の JEP 483: Ahead-of-Time Class Loading & Linking によ…
はじめに コンパクト・オブジェクト・ヘッダの有効化 オブジェクト・ヘッダ 従来のオブジェクト・ヘッダレイアウト コンパクト・オブジェクト・ヘッダのレイアウト blog1.mammb.com はじめに JDK 24 にて実験的機能として公開されたコンパクト・オブジェクト…
はじめに ThreadLocal の問題点 Scoped Values blog1.mammb.com はじめに java.lang.ScopedValue は、java.lang.ThreadLocal と同様に、スレッド毎のローカル変数を提供します。 java.lang.ThreadLocal と異なり、この変数はイミュータブルで限定的な生存期…
はじめに JDK 25 前のコンストラクタ Flexible Constructor Bodies blog1.mammb.com はじめに JDK 25 では、コンストラクタ本体は明示的にせよ暗黙的にせよ、super(...) または this(...) で始まらなければならない、という構文ルールが削除されます。 以前…
はじめに JEP 512: コンパクト・ソース・ファイルとインスタンス・メイン・メソッド インスタンス・メイン・メソッド コンパクトソースファイル コンソール・インタラクション blog1.mammb.com はじめに 伝統的な Hello,World プログラムは public class Hel…
はじめに モジュールインポート まとめ blog1.mammb.com はじめに JDK 25 からインポート宣言にモジュール名を指定できるようになります。 import module java.base; 例えば以下のようなストリーム処理を行う単純なコードは、 String[] fruits = new String[…
インスタンスのクラッシュ レプリカの障害のテスト ディスクの障害 ディスクの輻輳 Aurora PostgreSQL ではフォールト・インジェクション・クエリを発行することで、インスタンスのクラッシュをシミュレートできる。以下のクエリが利用可能。 フォールト・イ…
はじめに Ahead-of-Time Class Loading & Linking に至る歴史 AOTキャッシュの作成 AOTキャッシュの制限 トレーニング・ランのヒント AOTキャッシュの効果 blog1.mammb.com はじめに JDK24 にて、クラス・データ共有(CDS)が拡張され、旧来からあるアプリケー…
はじめに java.io.Reader.of() まとめ blog1.mammb.com はじめに CharSequence は文字の並びを表すインターフェースで、その実装には String に加え StringBuffer, StringBuilder, CharBuffer などがあります。 CharSequence から Reader を得るには、以下の…
はじめに G1PeriodicGCInterval G1PeriodicGCSystemLoadThreshold G1PeriodicGCInvokesConcurrent まとめ blog1.mammb.com はじめに G1GC は、full GC か concurrent cycle で Java Heep を解放しますが、G1GC は full GC を回避するように試み、concurrent …
blog1.mammb.com はじめに Eclipse GlassFish 7.0.18 以降、glassfish-embedded の jar が実行可能 jar になったので、コマンドラインから war を渡すことで直接アプリケーションを実行できるようになりました。 blog1.mammb.com Gradle で war を実行 Gradl…
blog1.mammb.com Hibernate Hibernate の jpamodelgen の場合は単に以下のように依存を追加する dependencies { annotationProcessor("org.hibernate.orm:hibernate-jpamodelgen:6.6.7.Final") } Jakarta EE 11 から追加された Jakarta Data に対応したメタ…
改行エスケープ Windows コマンドの改行エスケープは毎度忘れて、調べてもなかなか検索ヒットしないので書いておく。 環境 改行エスケープ Windows コマンドプロンプト 末尾に ^ Windows Terminal(Power shell) 末尾に ` Linux シェル 末尾に \ cmd \ --opti…
jdk.charsets モジュールはjava.base にない Charset を提供します。 このモジュールには、2バイト文字とIBM文字セットなどが含まれます。 このモジュールは明示的に指定しないとランタイムイメージに含まれないので、例えば windows-31j などを扱った場合に…
Difftastic とは インストール Git での設定 エイリアス設定 difftool 登録 Difftastic とは Difftastic は、リッチな diff 表示を行うコマンドラインツールです。 行単位の変更差分ではなく、コードを解析(50超の言語に対応しています)することで、構文ツリ…
はじめに StringUtils の isAlpha 系メソッド Unicode Letter カテゴリ はじめに Commons lang の 以下のメソッドは見た目に反して true を返します。 StringUtils.isAlpha("あ") いつまでたっても間違いが減らないので、isAlpha 系メソッドは Deprecated に…