なぜか Windows 環境で Ora2Pg を使わなければならなくなった場合の環境構築方法

はじめに ショート・バージョン Perl 環境の作成 Oracle instantclient Ora2Pg DBD::Oracle 起動用のバッチファイル作成 Ora2Pg の実行 はじめに Ora2Pg は Oracle から PostgreSQL へのデータベース移行を行うオープンなツールです。 Ora2Pg を使うには Per…

【Rust】 Default トレイト

blog1.mammb.com Default トレイト std::default::Default トレイトの実装により、型に応じた自明なデフォルト値を提供できる。 std::default::Default トレイトは以下のような定義となっている。 pub trait Default: Sized { fn default() -> Self; } 例え…

【Rust】Drop トレイト

blog1.mammb.com Drop トレイト 値がスコープから外れたなどで、値が不要になった場合、Rustはその値に対してデストラクタを実行する。 デストラクタにより、メモリ/ファイルディスクリプタ/ネットワークソケットなどのリソースが解放される(その値の持つ全…

【Rust】Copy マーカートレイト

blog1.mammb.com Rust では、型に対する代入操作は移動となり、資源の所有権が移動する。 Copy 型は、代入操作時にコピーが行われる型を表すマーカートレイト std::marker::Copy を実装する。 pub trait Copy: Clone { // Empty. } Copy トレイトは Clone ト…

【Rust】Clone トレイト

std::clone::Cloneトレイト clone() メソッド clone_from() メソッド blog1.mammb.com std::clone::Cloneトレイト std::clone::Clone トレイトを実装した値は、自身のクローンをメモリ上に新たに作ることができる。 以下のような定義となっている。 pub trai…

Maven Central Repository 公開時の認証をユーザートークンに変更する手順

はじめに ユーザートークンの発行 ユーザートークンの設定 publish 実行 はじめに 2024年6月に Sonatype における認証システムが変更され、ユーザートークンでの認証が必要になったようです。 従来のユーザ名とパスワードで Publish しようとした場合、以下…

Rust のユーティリティトレイトまとめ

名前 説明 Sized コンパイル時にサイズが定まる型に対するマーカトレイト(詳細) Copy 値の置かれたメモリをバイト単位でコピーすることでクローン可能であることを示す マーカトレイト(詳細) Drop 値がドロップされる直前に自動的に実行されるコードを定義(…

【Rust】遅延初期化を行う LazyCell と LazyLock

LazyCell LazyLock LazyCell と LazyLock は遅延初期化を提供する構造体で、Rust 1.80.0 で安定版となった。 LazyLock はスレッドセーフであり、static 変数を遅延初期化できる。 LazyCell LazyCell は初回アクセス時に指定された関数 F で値を初期化し、そ…

DDD モデルの型定義 - jmolecules -

はじめに 集約ルートの指定と型制約 リポジトリに対する制約 外部の集約ルート参照に対する制約 はじめに この記事は、以下の記事の補足説明です。 blog1.mammb.com 集約ルートの指定と型制約 エンティティが、別の集約ルートに属するエンティティとコンポジ…

外部集約ルート参照の関連を表現する Association オブジェクト

はじめに この記事は、以下の記事の補足説明です。 blog1.mammb.com 識別子による外部の集約の参照 集約ルートである以下のような Order がある。 @Entity public class Order { @Id private Long id; @OneToMany private List<LineItem> lineItems; @ManyToOne privat</lineitem>…

DDDの概念表現を提供する jmolecules

DDD コンセプト表現 アーキテクチャ コンセプト表現 CQRS・アーキテクチャ ヘキサゴナル・アーキテクチャ レイヤード・アーキテクチャ オニオン・アーキテクチャ オニオン・アーキテクチャ(ドメインモデルとサービスを分離しない) インターフェース型に基づ…

【Rust】Sized マーカートレイト

sized 型 std::marker::Sized トレイト sized 型 Rust のほとんどの型は、値のメモリ上におけるサイズが既知であり、このような型を sized型 と呼ぶ。 u64は 8 バイトであり、(f32, f32, f32)型のタプルは 12 バイトであり、sized型 である。 さらに、列挙型…

【Rust】OsStr と OsString

OsStr と OsString &OsStr の生成 OsString の生成 &OsStr と OsString の相互変換 OsStr と str の相互変換 OsString と String の相互変換 std::env::Args の例 std::fs::DirEntry の例 OsStr と OsString Rust の文字列は常に有効な Unicode であることが…

ByteBuffer.allocateDirect() はどの程度遅いのか

はじめに ベンチマーク環境 JMH Gradle プラグイン ByteBuffer.allocateDirect のスループット アロケートサイズによるベンチマーク はじめに Java NIO では、java.nio.ByteBuffer を介してチャネルとのデータの受け渡しを行います。 java.nio.ByteBuffer は…

Maven 依存関係の調査で良く使うコマンド

依存関係ツリーの表示 依存ライブラリを最新化する 依存関係の解析 依存関係ツリーの表示 プロジェクトの依存関係階層を表示するには dependency:tree を使う。 mvn dependency:tree 依存関係の階層は、ビルドプロセスが実際に使用する依存関係の解決された…

Windows 環境への Apache インストール手順

インストール Apache の起動 いまさらな Apache ですが、簡素にまとまったページが見つからなかったのでメモしておきます。 インストール 公式からは、Windows向けバイナリは提供されなくなっているので Apache Lounge などからダウンロード。 解凍すると以…

Gradle 7.4 で追加された バージョンカタログ

blog1.mammb.com はじめに 最近の Gradle では、gradle init タスクでプロジェクトを生成すると、以下のような依存定義が生成される。 dependencies { testImplementation(libs.junit.jupiter) testRuntimeOnly("org.junit.platform:junit-platform-launcher…

PowerShell で Excle オートメーションの足場

PowerShell で Excle 操作する場合の足場は以下のようになる。 Set-Location (Split-Path $MyInvocation.MyCommand.Path -parent) $book = $null $excel = $null try { $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.Di…

Javascript でクリップボードにコピーする

はじめに document.execCommand() による入力テキストのクリップボードコピー document.execCommand() によるノードコンテンツのクリップボードコピー document.execCommand() によるノードのクリップボードコピー navigator.clipboard によるクリップボード…

Gradle で Manifest に Main-Class 属性を追加する

blog1.mammb.com java -jar app.jar で実行できる実行可能 jar ファイル には、Manifest に Main-Class 属性を追加する。 application プラグインの mainClass を使って以下のように指定できる。 application { mainClass = "org.example.App" } tasks.named<Jar></jar>…

最小限のCSSフレームワーク pico css -コンポーネント-

アコーディオン カード ドロップダウン グループ ローディング モーダル ナビ パンくずリスト プログレスバー ツールチップ 前回の続きです。 blog1.mammb.com アコーディオン <details open> <summary>Accordion 1</summary> <p> Flamingos are known for their bright pink feathers and distin</p></details>…

最小限のCSSフレームワーク pico css -フォーム-

入力フォーム グリッド グループ ヘルパーテキスト 検索入力 ファイル入力 非活性・リードオンリー Valid・Invalid テキストエリア セレクト チェックボックス ラジオ スイッチ レンジ 前回の続きです。 blog1.mammb.com 入力フォーム <html lang="en" data-theme="light"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> </meta></meta></head></html>

最小限のCSSフレームワーク pico css -導入編-

pico とは バージョン カラースキーム コンテナ カラー グリッド 各種コンテンツ Heading group Blockquote Hr テキスト リンク ボタン テーブル pico とは シンプルで小さなCSS 2019年12月に v1 リリース 2024年02月に v2 リリース クラスレス版を使えば、…

Java 23 から Markdown で JavaDoc コメントが書けるようになります(JEP 467: Markdown Documentation Comments)

blog1.mammb.com Markdown Documentation Comments リンク テーブル JavaDoc tags シンタックスハイライト openjdk.org Markdown Documentation Comments JDK23 より、JavaDoc コメントを Markdown 形式で記載できるようになります。 Markdown 形式のコメン…

MacOS の起動音を消す方法

GUI から設定 「システム設定」-「サウンド」から変更 ターミナルから設定 Off にする場合 sudo nvram StartupMute=%01 On にする場合 sudo nvram StartupMute=%00 nvram は NVRAM の内容を操作するコマンド % nvram -h nvram: (usage: ) nvram [-x|-X] [-p]…

【Rust】パスワード付きExcelファイルの読み取り

office-crypto パスワード付きの MS Office ファイルを復号化できる。 復号化したExcelファイルは calamine で読み取り操作できる。 [dependencies] office-crypto = "0.1.0" calamine = "0.24.0" 以下のようにして、calamine で読み取り操作できる。 use st…

Java 23 でプレビュー公開される モジュールインポート宣言(JEP 476: Module Import Declarations)

blog1.mammb.com モジュールインポート宣言 曖昧なインポート プレビュー言語機能 openjdk.org モジュールインポート宣言 モジュールを指定した一括インポートが可能になります。 モジュールインポートはモジュール名を指定して以下のように宣言します。 imp…

【Rust】リリースチャネルとツールチェーン

リリースチャンネル ツールチェーンの指定 ツールチェーン オーバーライド省略記法 環境変数 RUSTUP_TOOLCHAIN ディレクトリオーバーライド rust-toolchain.toml リリースチャンネル リリースチャンネル 説明 nightly master ブランチから毎晩リリース beta …

Java Stream API を高みに導くStream Gatherer

はじめに Gatherer 組み込み Gatherer Gatherers.windowFixed Gatherers.windowSliding Gatherers.fold Gatherers.scan Gatherers.mapConcurrent Gatherer.ofSequential まとめ JDK 22 でプレビュー公開(https://openjdk.org/jeps/461)、JDK 23 でセカンドプ…

Java で JavaScript を実行するもう一つの方法

はじめに javet javet の導入 V8Runtime の利用 はじめに Java 上で JavaScript を実行するスクリプトエンジンは以下のように変遷してきました。 Java 6 Rhino Java 8 Nashorn Java 11 Nashorn 非推奨化(https://openjdk.org/jeps/335) Java 15 Nashorn 削除…