2024-01-01から1年間の記事一覧

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 削除…

Jakarta EE 11 の目玉機能 Jakarta Data 1.0 まとめ

はじめに リポジトリ Parameter based automatic query method Annotated query method Query by Method Name Jakarta Data Static Metamodel クエリ条件 クエリ結果 リソースへのアクセス はじめに Jakarta EE 11 の目玉機能である Jakarta data 1.0 の先取…

IP アドレス操作ライブラリ IPAddress

IPAddress は、IPv4 や IPv6 の IP アドレスに対する様々な操作が可能なライブラリ。 Java の実装と Go の実装が提供されている。 seancfoley.github.io 簡単に使用方法を見ておく。 導入 Gradle の場合は以下。 implementation("com.github.seancfoley:ipad…

最近追加された Gradle init タスクのオプション

小分けで追加されているのでここにまとめておきます。 Gradle 8.2 で Groovy DSL に代わり、Kotlin DSL がデフォルトに Gradle 8.5 で --java-version オプション追加 Gradle 8.6 で --use-defaults オプション追加 Gradle 8.7 で --no-comments オプション…

【Rust】winit と tiny-skia で低レベルなグラフィックス描画 〜テトリスを作る2〜

はじめに ウインドウの変更 キーイベントの捕捉 ゲームの描画 ゲームの実行 まとめ はじめに 前回は、テトリスのゲーム部分の実装を行いました。 blog1.mammb.com 今回は、winit と tiny-skia による描画をあわせて、ゲームを完成させましょう。 実装の全体…

【Rust】winit と tiny-skia で低レベルなグラフィックス描画 〜テトリスを作る1〜

はじめに テトロミノ ブロック 盤面と落下ブロック テトリス ブロックの移動と当たり判定 はじめに 前回は、winit と tiny-skia にて簡単なウインドウへの描画方法について説明しました。 blog1.mammb.com 今回は、もう少しだけ凝った例として、テトリスをゲ…

【Rust】winit と tiny-skia で低レベルなグラフィックス描画〜ことはじめ〜

はじめに Are we GUI Yet? にある通り、Rust で GUI を扱う場合のライブラリは、未だ決定打が無い状況にあります。 ディスクトップ・アプリケーション の構築には、WebView ベースの Tauri が、現時点での有力候補になるでしょうか。最近では、Atom の後継エ…

Java コンソール出力が文字化けする場合にやるべきこと

はじめに Java 18 からJEP 400: UTF-8 by Defaultにより、デフォルトのエンコーディングが UTF-8 に統一されたため、Windows 環境での文字化けが頻出する。 対策としては、全て UTF-8 に統一してやるのが良い。 ソースコードを UTF-8 とする システムプロパ…

Zig Lang の始め方 - 環境構築編 -

Zig Lang とは インストール WinGet Homebrew 手動インストール バージョン確認 VS Code Extension zig コマンド Hello World Zig Build System Zig Lang とは 2016年登場の新しい命令型静的型付けコンパイル言語 簡素で明確な言語仕様 GC無し(メモリはスタ…

Java の Character.isSpaceChar() / Character.isWhitespace() の違いと String.trim() / String.strip() の違いが良くわからなくなった時に見るメモ

はじめに スペースの定義の違い スペースっぽいもの全てを切り捨てる はじめに Character.isSpaceChar() と Character.isWhitespace() はいずれも引数の文字がスペースかどうかを判定する static メソッドだが、その違いは? 文字列の前後のスペースを削除す…

JDK23 で正式公開 文字列テンプレート(JEP 465: String Templates)

blog1.mammb.com はじめに 従来の文字列構築 文字列テンプレート 埋め込み式(Embedded expressions) マルチライン テンプレート式 テンプレートプロセッサ FMT テンプレートプロセッサ RAW テンプレートプロセッサ StringTemplate と Processor ユーザ定義の…

Gradle 8.6 における init タスクの変更点

gradle init タスクの対話入力省略 ソースパッケージの対話入力を削除 Kotlin DSL スクリプト マルチモジュールプロジェクトの convention plugins gradle init タスクの対話入力省略 gradle init タスクに --use-defaults オプションが追加された。 これを…

Gradle(Kotlin DSL) 依存Jarから特定ファイルを引っぺがす

blog1.mammb.com 遷移的に依存する Jar を除外するには、単に exclude を指定するだけで事足ります。 例えば以下は、org.hibernate:hibernate:3.1 が依存する対象を除外する例となります。 dependencies { implementation('org.hibernate:hibernate:3.1') { …

Java でニューラルネットOCR - Tess4Jの使い方 -

Tess4J とは Tess4J の使い方 OCR エンジンとデータファイル パラグラフ単位の結果取得 PDFファイルからのOCR読み取り Tess4J とは オープンソースのOCRエンジン Tesseract を Java から利用するラッパーライブラリです。 Tesseract は、1985年よりHPにより…

Beyond Jakarta EE 11

Jakarta EE 11 のその先へ 注目トピック 量子コンピューティング AI/ML Robotics Edge Computing Supersede EJB Modernize Messaging Modularity Spec support Industry specific API Patterns その他のアイデア Better defaults for Persistence Less XML i…

JEP 238: Multi-Release JAR Files

概要 ゴール 動機 ディスクリプション 詳細 互換性 Class loader resources モジュラー・マルチリリース Jar ファイル Classpath と modulepath マルチリリース Jar とブートローダ 概要 JARファイル・フォーマットを拡張し、複数バージョンのクラス・ファイ…

【Rust】Cargo.toml チートシート

package セクション name フィールド version フィールド edition フィールド rust-version フィールド authorsフィールド description フィールド documentation フィールド homepage フィールド repository フィールド readme フィールド license フィール…

【Rust】Cargo チートシート

バージョン確認 cargo new cargo init プロジェクトレイアウト cargo build cargo run cargo check cargo test cargo fix cargo doc cargo clean cargo search cargo add cargo update cargo tree cargo install / uninstall cargo publish Cargo は Rust の…

【Rust】画像ファイルのリサイズ

プロジェクト作成 cargo init resize_img cd resize_img image クレートを追加 cargo add image image クレートを使い、以下のようにリサイズ処理を実装できる。 use std::error::Error; use image::imageops::FilterType; fn main() -> Result<(), Box<dyn Error>> { l</dyn>…