はじめに プレビュー版からの変更点 Pattern Matching for switch による機能拡張 switch ラベルによるパターンマッチ case ラベルの guard 条件指定 null と switch enum 定数 ラベルの改善 case ラベルの Dominance(優位性) 型の網羅性(Exhaustiveness) パ…
はじめに レコードパターン ネストされたレコードパターン var による型推論でのマッチング generic レコードのマッチング マッチングが失敗するパターン exhaustive switch blog1.mammb.com はじめに Java16 で導入されたレコードクラス(JEP 395: Records)…
blog1.mammb.com add-exports / add-opens によるパッケージ公開 Gradle Kotlin DSL でコマンドライン引数を指定する オプションをまとめて定義する MANIFEST での Add-Exports 指定 add-exports / add-opens によるパッケージ公開 Java モジュールシステム…
blog1.mammb.com グローバルに無効化 プロジェクト毎に無効化 グローバルに無効化 Gradle のタスク実行時のメッセージがローカライズされて鬱陶しかったり、メッセージが文字化けしたりする場合は、ホームディレクトリ配下の .gradle/gradle.properties でロ…
blog1.mammb.com TL;DR プロジェクト作成 コマンドライン引数でバージョン指定 バージョンプロパティを指定する Jar アーカイブ名を直接指定する プロジェクト自体を変更する Base Plugin の archivesName を指定する TL;DR gradle init タスクで作成したプ…
blog1.mammb.com Java プレビュー言語機能 Gradle Kotlin DSL でプレビュー機能を有効化する Gradle Groovy DSL でプレビュー機能を有効化する Java プレビュー言語機能 Java でプレビュー言語機能を使用するには、コンパイラとランタイム・システムで明示的…
はじめに エラーコード エラーの原因 WSUS の接続先 WSUS とは はじめに Windows Update で「更新サービスに接続できませんでした」エラー がいつまでたっても直らず。 対処方法として、DNS や Proxy などの設定見直しが多く挙げられているが、問題はそこで…
はじめに 文字列テンプレート StringTemplate FMT テンプレートプロセッサ テンプレートプロセッサの自作 まとめ blog1.mammb.com はじめに JEP 430 String Templates がプレビュー公開されました。 ようやく Java でも文字列補完(string interpolation)が使…
はじめに テーブルのカラム定義一覧 ビューのカラム定義一覧 まとめ はじめに テーブルのカラム定義は ALL_TAB_COLUMNS や USER_TAB_COLUMNS を見ます。 しかし、データタイプ毎にデータ長の捉え方が異なるため、きれいに一覧にするのは結構シンドイです。 …
はじめに いろいろと注意点の多い BigDecimal は、使おうとすると、注意点があるということ以外忘れてる。 インスタンス生成は文字列から行うこと 比較は equals() でなく compareTo() を使うこと Java8 より前は stripTrailingZeros() のバグに注意すること…
Spin とは 2023年03月に 1.0 版がリリースされた WebAssembly でマイクロサービスアプリケーションを作るためのフレームワークです。 フレームワークとなっていますが、WIT(Wasm Interface Type) を生成し、WebAssembly Component Model として動作させるた…
はじめに Unnamed variables Unused patterns Unnamed pattern variables まとめ blog1.mammb.com はじめに Java21あたりで入るかもしれない Unnamed Patterns and Variables(JEP 443) の先取りです。 Unnamed Patterns and Variables では、他の言語で良く…
forward 前のリクエストURI取得 Forwarded Request Parameters パスの取得 forward 前のリクエストURI取得 HttpServletRequest.getAttribute() から取得できる。 HttpServletRequest request = //... String uri = (String) request.getAttribute("javax.ser…
はじめに TL; DR png2icons 実行時のセキュリティ設定 png2icons のオプション icns ファイル ico ファイル はじめに ドローツールではなく、単画像ファイルから Windows 向けの ico ファイル、mac 向けの icns ファイルの作成手順です。 TL; DR png2icons …
はじめに 動機 Sequenced* の追加 SequencedCollection SequencedSet SequencedMap Collections.unmodifiableSequenced* blog1.mammb.com はじめに Java21 でコレクションフレームワークに順序付き要素のシーケンスを表すインターフェースが追加されます。 J…
はじめに Obsidian のインストール Obsidian の設定 Obsidian の基本操作 プラグイン Excalidraw プラグイン Advanced Tables プラグイン Remotely Save プラグイン まとめ はじめに Notion からの乗り換え先として、Obsidian を紹介します(Obsidian はその…
JPAstreamer とは JPAstreamer の始め方 JPA の利用準備 クエリの実行 Stream API と SQL の対応 Join 処理 CDI 統合 まとめ JPAstreamer とは Speedment 社が提供している ORM ツールキットに speedment があります。 speedment は、データベース操作を Jav…
はじめに Java Persistence API 2.2 (Jakarta Persistence 2.2) Jakarta Persistence 3.x Hibernate 6.x まとめ はじめに Hibernate 5系と6系と、JPAの名前空間の変更(javax.persistence -> jakarta.persistence)対応がややこしいので、と言うか経緯知らない…
はじめに Windows macOS(cocoa) winit まとめ はじめに Rust で native な Window を作成する3種です。 Windows microsoft が提供している windows クレートを利用することで、伝統的な Windows API の作法でプログラミングできます。 [dependencies.windows…
はじめに デジタル・ガバメント推進標準ガイドライン群 実践ガイドブックの全体像 切り抜き 導入部 丸投げ禁止!! 目標設定、それって本当に大丈夫? お役所だからと言って よく見る認識齟齬 はじめに NIPPON EXPRESS ホールディングスのシステム開発頓挫に…
Test Double とは Test Double のタイプ ダミー(Dummy) スタブ(Stub) スパイ(Spy) モック(Mock) フェイク(Fake) Test Double のタイプの比較 Test Double とは 映画などで、危険なシーンや高度なスタントに使用されるスタントパフォーマーを「スタントダブル…
TL;DR ツールチェーン と ツールチェーンリポジトリ Gradle 8.0 からのツールチェーンリポジトリ blog1.mammb.com TL;DR Gradle 8.0 で以下のようなワーニングや $ ./gradlew build --warning-mode all Using a toolchain installed via auto-provisioning, …
Scoop とは インストール Scoop の更新 Scoop のアンインストール アプリケーションのインストール インストール済みアプリケーションの確認 アプリケーションのバージョン切り替え マルチコネクションによるダウンロードの高速化 バケット Scoop とは Windo…
UTF-8 の体系 UTF-8 エンコード UTF-8 のバイト判定 UTF-8 の体系 UTF-8では、Unicode文字を 1~4 バイトの可変長で表現する符号化方式です。 U+0000 から U+007f つまり、0-127 の範囲は US-ASCII と互換性があります。 各Unicode範囲において以下のような…
はじめに QRコードの生成 エンコードヒントの指定 QRコードのバージョンと誤り訂正レベル バージョン1(21x21) バージョン2(25x25) バージョン3(29x29) バージョン4(33x33) バージョン5(37x37) バージョン6(41x41) はじめに Java で手っ取り早くQRコードを生…
Trie(prefix tree) とは 単純な Trie の実装 Trie へのデータ登録処理 Trie での検索処理 Trie の動作 Trie の改良 Trie によるサジェスト 辞書の削除 まとめ Trie(prefix tree) とは ある文字列が辞書に含まれるかどうかを高速に検索できるのが、Trie です…
Java 内部の文字エンコードは UTF-16 Unicode Supplementary Character Java 5 の Unicode サポート Unicode の各エンコード UTF-8 エンコード UTF-16 エンコード Java 9 の Compact Strings 補助文字の扱い 文字の長さ コードポイント値の取得 コードポイン…
準備 ワークブック(Workbook) ワークブックの新規生成 ワークブックを開く ワークブックを保存する シート(Sheet) シート名を指定してシートを取得する シート番号を指定してシートを取得する アクティブなシートを取得する 全てのシート名を取得する 新規シ…
はじめに タスク登録 タスク一覧 タスク削除 はじめに タスクスケジューラ 操作用の schtasks コマンドのチートシートです。 Windows で定期的な処理を行う場合には、タスクスケジューラを利用すると思います。 Windows10 からは at コマンドが廃止されまし…
blog1.mammb.com Rust ライブラリは、動的リンクライブラリとしてビルドすることで、WebAssembly ライブラリを作成できます。 ここでは、WebAssembly ライブラリから、JavaScript 関数の呼び出し方法を説明します。 cargo でライブラリプロジェクトを作成し…