2022-01-01から1年間の記事一覧
blog1.mammb.com Rust ライブラリは、動的リンクライブラリとしてビルドすることで、WebAssembly ライブラリを作成できます。 ここでは、WebAssembly ライブラリから、JavaScript 関数の呼び出し方法を説明します。 cargo でライブラリプロジェクトを作成し…
blog1.mammb.com Rust ライブラリは、動的リンクライブラリとしてビルドすることで、WebAssembly ライブラリを作成できます。 作成した WebAssembly ライブラリは、他の言語などからロードしてライブラリを利用できるようになります。 cargo でライブラリプ…
Diátaxisとは Tutorials How-to guides Reference Explanation Diátaxisとは Diátaxisとはテクニカルドキュメントの構造化フレームワークです。 ユーザーのニーズの体系的な説明と分析に基づいて文書構造を規定するスキームを提供し、多くのソフトウェアのテ…
blog1.mammb.com WebAssembly のテキスト表現 WAT とは WebAssembly には、バイナリー形式の WASM の他に、人間が読んだり編集したりできるテキスト表現である WAT が定義されています。 テキスト形式ではモジュールは 1 つの大きな S 式として表現されます…
blog1.mammb.com cargo-wasi とは cargo-wasi は Cargo のサブコマンドとして利用でき、Rust コードの WebAssembly コンパイルを簡単にします。 cargo-wasi を利用することで、以下に示すビルトインのデフォルト処理が行われます wasm32-wasi ターゲットの管…
ブランチ名の変更 $ git branch -m master main 変更したブランチの Push $ git push -u origin main HEAD参照の変更 $ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main Github 上でデフォルトブランチ変更 ブランチの設定からデフォル…
blog1.mammb.com WebAssemblyターゲットの追加 Rust には、ビルドターゲットとして WebAssembly のサポートがあります。 ビルド時の --target フラグでターゲットを指定することで、WASMへコンパイルすることができます。 WASMのビルドターゲットには以下が…
blog1.mammb.com Wasmtime command line tool のインストール手順です。 macOS へのインストール (brew) macOS で brew の場合は以下でインストールします。 $ brew install wasmtime $ wasmtime -V wasmtime 17.0.0 Linux / macOS へのインストール Linux …
Playwright とは インストール アップデート テストの実行 テストの宣言 テストフィクスチャ Locators アサーション テストコードの記録 まとめ Playwright とは Selenium ・ Selenide ・ Cypress などと同様な E2E テストツールで、MS により OSS として開…
適宜追記していきます。 WebAssembly ランタイム Wasmtime のインストール - A Memorandum Rust で WebAssembly へコンパイルするには - A Memorandum cargo-wasi で WebAssembly コンパイルするには - A Memorandum WebAssembly のテキスト表現 WAT を WASM…
blog1.mammb.com Gradle 6.7 以降で Java ツールチェーンを利用できるようになりました。Java ツールチェーンを使うことで、要件に合う JRE/JDK を自動検出し、見つからない場合には自動的にダウンロードしてビルドすることができます。 build.gradle.kts(bu…
随時更新の Gradle 逆引き辞典です。 Gradle 設定 Gradle をバージョンアップする バージョンカタログで依存バージョンを宣言する メッセージの不要なローカライズを無効化する Unable to find a usable idle daemon で応答しない場合の対処法 JCenter は202…
blog1.mammb.com Gradel プロジェクトのルートディレクトリで以下のコマンドを実行します。 $ ./gradlew wrapper --gradle-version=7.X.X 推奨はされていませんが gradle/wrapper/gradle-wrapper.properties の以下を希望のバージョンに書き換えることもでき…
はじめに Unified Platform(統一されたプラットフォーム) What? Why? コメント Add New Specifications(新しい仕様の導入) What? Why? コメント Leverage Latest Java(最新のJavaを活用) What? Why? コメント Enable Community Innovation(コミュニティ・イ…
はじめに プロジェクトの作成 アノテーションプロセッサの設定 アノテーションの作成 プロセッサの作成 要素からアクセサーを取得する アクセサーのtoString()を行うコードを生成 クラス生成 テストの実行 まとめ はじめに 以下では、Java アノテーションプ…
はじめに Pluggable Annotation Processing アノテーションプロセッサ アノテーションプロセッサの実行 ProcessingEnvironment と RoundEnvironment Element と TypeMirror Element TypeMirror AnnotationMirror Elements と Types Filer まとめ はじめに Ja…
JetBrains Fleet とは Fleet の導入 Toolbox App のインストール Fleet のインストール Fleet の起動 まとめ JetBrains Fleet とは 先日公開された JetBrains による新しいIDEです。機能としては以下のように紹介されています。 JetBrains 製の Visual Studi…
JSON Pointer とは JSON Pointer の構文 JSON Pointer のエスケープ JSON 配列の指定 Relative JSON Pointer JSON Pointer とは JSON Pointer は、Jsonドキュメント内の特定の値へのパスを定義する文字列構文です。 www.rfc-editor.org 大まかに言えば、ルー…
はじめに Vite によるプロジェクト作成 todo-list コンポーネントの作成 ToDo アイテムの追加 ToDo アイテムのトグル ToDo アイテムの消込 まとめ はじめに Web components ベースのフロントエンドUIフレームワーク Lit の入門記事です。 前回は Lit コンポ…
はじめに Lit コンポーネント HTMLElementTagNameMap リアクティブプロパティ プロパティオブジェクトの更新 内部リアクティブステート(Internal reactive state) レンダリング Lit テンプレート 式 ブール属性 プロパティ式 イベントリスナ テンプレートの…
はじめに 公式スタータキット Vite スタータプロジェクト Vite プロジェクトの構成 まとめ はじめに Web components ベースのフロントエンドUIフレームワーク Lit の入門記事です。 前回は Lit の概要について説明しました。 blog1.mammb.com 今回は、実際の…
Lit とは Web Components Lit による最小限の Web Components Lit プロジェクトの準備 my-element コンポーネントの作成 ビルドと実行 宣言型イベントリスナー まとめ Lit とは Google の Chrome チームにより始まった Polymer -> LitElement -> Lit と変遷…
テキストエディタのデータ構造 Gap method Piece Table method Piece Table の構造 Piece Table の実装 Piece Table のメソッド まとめ テキストエディタのデータ構造 テキストエディタで採用されているデータ構造にはいろいろあります。 こちらの論文 Data …
はじめに SOLID 原則 CUPID とは Composable(組み立て易い) Small surface area(小さな表面積) Intention-revealing(意図を明確に) Minimal dependencies(依存は最小限に) Unix philosophy(Unix哲学) A simple, consistent model(シンプルで一貫性のあるモデ…
はじめに プロジェクト作成 プロジェクト構成 コンポーネント レイアウト ページ ビルド Blog テンプレート Portfolio テンプレート Documentation テンプレート まとめ はじめに 先日1.0リリースとなった、静的サイトジェネレータのAstroの紹介です。 JSで…
はじめに Platform Logging API System.Logger System.LoggerFinder SLF4JSystemLoggerFinder Log4jSystemLoggerFinder まとめ はじめに Java9 の JPMS(Java Platform Module System) に合わせて導入された、JEP 264: Platform Logging API and Service です…
はじめに コマンドライン実行 HelloServlet.java build.gradle.kts 実行 MicroPiranhaBuilder からの実行 はじめに 前回は、Piranha Embedded を使った Hello World であった。 blog1.mammb.com 今回は、Piranha micro を使った Hello World。 Piranha micro…
build.gradle.kts HelloWorldServlet.java App.java 実行 AppTest.java build.gradle.kts piranha-embedded は組み込み用のランタイム。 piranha-embedded はHTTPサーバを含まないため、piranha-http-impl でサーバ実装 DefaultHttpServer を使う。 plugins …
StringTokenizer String.split() org.apache.commons.lang3.StringUtils.split() org.apache.commons.lang3.StringUtils.splitPreserveAllTokens() com.google.common.base.Splitter org.apache.commons.text.StringTokenizer まとめ StringTokenizer String…
はじめに Jakarta Contexts and Dependency Injection 3.0 -> 4.0 Jakarta Persistence 3.0 -> 3.1 Jakarta Annotations 2.0 -> 2.1 Jakarta Expression Language 4.0 -> 5.0 Jakarta Faces 3.0 -> 4.0 Jakarta JSON Binding 2.0 -> 3.0 Jakarta JSON Proces…