Windows 環境への Rust インストール

インストーラの入手 Visual Studio C++ Build tools の導入 Rustup のインストール 確認 インストーラの入手 Windows 環境に Rust をインストールするには WSL を使う方法もあるが、ここではネイティブなインストールを行います。 といっても、基本的にイン…

AWS Lake Formation で生成される Glue ジョブ

Lake Formation とは ブループリント Glue ワークフロー Glue クローラ事前ジョブ Glue クローラ事後ジョブ ETL ジョブ ETL 事後ジョブ まとめ Lake Formation とは AWS の提供するデータレイク構築のためのマネージドサービスです。 Glue のクローラを利用…

PuTTY で EC2 へ SSH 接続

はじめに PuTTYgen でプライベートキーの変換 接続 Tera Term の場合 はじめに PuTTY から EC2 接続は、いつも忘れてしまう。 PuTTYgen でプライベートキーの変換 PuTTY はプライベートキー形式をネイティブにサポートしていないため、EC2 接続用のプライベ…

h2database に見る Assertion スイッチによる初期化

h2database のソース見てたら以下のようなコードがあった Assertion (表明) Assertion スイッチによる初期化 h2database のソース見てたら以下のようなコードがあった private static final boolean ASSERT; static { boolean a = false; // Intentional sid…

Windows server 2016 の日本語化手順

簡易手順 画面キャプチャで見る Settings から Time & Language を選択 Region & Language から Add a language を選択 Add a language のメニューから 日本語 を選択 Set as default で最上部に移動させ、Options を選択 Download language pack でインスト…

JSF Bean Validation のエラー表示を Bootstrap で

はじめに 入力フォーム BeanValidation はじめに JSF における Bean Validation でのエラー表示についての小ネタです。。 入力フォーム 以下のようなテキスト入力を考えます。 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:jsf="http://xmlns.jcp.org/jsf"> ... <form jsf:id="form"> <div class="mb-3"> </div></form></html>

JSF HTML5-Friendly Markup における selectManyCheckbox の扱い方

はじめに selectManyCheckbox タグ selectBooleanCheckbox タグで代替する HTML5-Friendly Markup はじめに JSF の <h:selectManyCheckbox> タグは使わずに、<h:selectBooleanCheckbox> タグで代替しましょう という話です。 selectManyCheckbox タグ JSF の HTML BASIC タグである selectManyCheckbox のレ</h:selectbooleancheckbox></h:selectmanycheckbox>…

JSF Facelet タグライブラリのXMLネームスペースについて

はじめに XMLネームスペース 定義ファイルの所在 Facelet タグライブラリの定義 DOCTYPE の設定 はじめに JSF2.2 (JSR-344 2013年) から Facelet タグライブラリのXMLネームスペースが変更になりました。となりました。Sun 時代のネームスペースは下位互換の…

Logback でログが出力されなくなる時の対処法

結論 Logback の LogbackServletContainerInitializer 自動登録の無効化 ロガーの終了 結論 Logback は自動的に ServletContextListener を登録しており、サーブレットのシャットダウンやアンデプロイにより contextDestroyed() イベントでロガーを stop す…

JPA2.2 における persistence.xml の定義方法まとめ

はじめに persistence.xml persistence-unit provider jta-data-source non-jta-data-source mapping-file jar-file class exclude-unlisted-classes shared-cache-mode validation-mode properties タイムアウト系 property validation property schema-gen…

Gradle で始める Payara 5 〜 CDI・JPA 〜

はじめに データソースの登録 CDI の有効化 JPA の導入 Entity の作成 リポジトリの作成 サービスの作成 リソースの作成 アプリケーションの実行 まとめ はじめに 前回作成した、 blog1.mammb.com に続き、データベース処理を追加してみましょう。 データソ…

Gradle で始める Payara 5

はじめに プロジェクトの作成 Payara を組み込みモードで動かす JUL(Java Util Logger) から SLF4J への変更 buildSrc の追加 war モジュールの作成 Hello サーブレット アプリケーションのデプロイ Hello JAX-RS まとめ はじめに いまさら何故? という気は…

InaccessibleObjectException の発生原因とその対処方

リフレクションで発生する InaccessibleObjectException リフレクションを許可する リフレクションで発生する InaccessibleObjectException Java9 で導入された JavaPlatform Module System によりリフレクションを利用するフレームワークで以下のような Ina…

Kotlin製Webアプリケーションフレームワーク Ktor の使い方4 〜ExposedでDBアクセス〜

入力フォームを外部ファイルに抜き出す Exposed でデータベースアクセス データベース操作 データベース操作 実行 blog1.mammb.com の続きです。 入力フォームを外部ファイルに抜き出す 前回の続きから作業しますが、すこしゴチャゴチャしてきたので、入力フ…

Kotlin製Webアプリケーションフレームワーク Ktor の使い方3 〜リクエストパラメータとJSONレスポンス〜

リクエストパスとパラメータ 入力フォームを作成する POST リクエストを処理する JSON を返却する blog1.mammb.com の続きです。 リクエストパスとパラメータ 前回までの例では、Routing にて単純な GET リクエストを処理しました。 POST など他のメソッドを…

Kotlin製Webアプリケーションフレームワーク Ktor の使い方2 〜テンプレートエンジンとHTML DSL〜

FreeMarker で HTML を生成する 静的コンテンツを扱う HTML DSL blog1.mammb.com の続きです。 FreeMarker で HTML を生成する Ktor には、テンプレートエンジン Apache FreeMarker のサポートがあり、簡単に HTML ページを生成できます。 最初に、ktor-fr…

Kotlin製Webアプリケーションフレームワーク Ktor の使い方1 〜プロジェクト作成から Hello World 〜

Ktor とは プロジェクト作成 Hello World Application オブジェクト アプリケーション設定値の抽出 Ktor とは Ktor は、Kotlin の Web アプリケーションフレームワークです。 Kotlin の本山である JetBrains 社により開発が続けられており、2018年末の v1.0 …

macOS で発生する「開発元を検証できないため開けません。」

Gradle のツールチェーンサポートで古いJDKを指定したら実行できなかった。 Kotlin DSL だと以下のような指定。 java { toolchain { languageVersion.set(JavaLanguageVersion.of(9)) } } 「開発元を検証できないため開けません。」となり「キャンセル」しか…

Gradle Groovy DSL から Kotlin DSL への乗り換え方

はじめに スクリプトファイルの命名 Kotlin と Groovy の言語上の考慮事項 Gradle init によるプロジェクト生成 プラグインの適用 プラグインの設定 タスクの構成 タスクの作成 依存の指定 よくある設定 はじめに Gradle 5.0 よりGradle Kotlin DSL が提供さ…

Gradle 6.7 で追加された Toolchain サポート

JVM プロジェクトのツールチェーンサポート ツールチェーン の利用 ツールチェーンのカスタマイズ まとめ JVM プロジェクトのツールチェーンサポート Gradle 6.7 にて New JVM ecosystem features として JVM プロジェクトのツールチェーンサポートが追加さ…

Gradle 6.7 で変更になった gradle init タスクのプロジェクトレイアウトとその使い方

はじめに 旧来のプロジェクト構成 新しいプロジェクト構成 application and library projects buildSrc はじめに 組み込みのタスク gradle init を使うことで新しい Gradle プロジェクトを簡単に作成できます。 Gradle 6.7 では、新しい推奨構成でプロジェク…

Technology Radar Volume 23 要約

はじめに Techniques 1. dependency drift fitness function 2. Run cost as architecture fitness function 3. security policy as code 4. Tailored service templates Platforms Tools 42. Airflow 43. Bitrise 44. Dependabot 45. Helm 46. Trivy Langua…

Java で touch する

ファイルのタイムスタンプを変えるには Files.setLastModifiedTime() が使える。 public static void touch(final Path path) throws IOException { if (Files.exists(path)) { Files.setLastModifiedTime(path, FileTime.from(Instant.now())); } else { Fi…

Docker でRDB環境構築盛り合わせ

 はじめに PostgreSQL PostgreSQL への接続 ロールの作成 データベースの作成 テーブルの作成と操作 オブジェクトの削除 psql の代表的なメタコマンド MariaDB MariaDB への接続 ユーザの作成 データベースの作成 テーブルの作成と操作 オブジェクトの削除 …

Java によるネットワークプログラミングの基礎知識

 はじめに ソケット ソケットによるサーバ実装 スレッドプールを利用したサーバ実装 ブロッキングI/Oの課題 ノンブロッキングI/O I/O多重化(multiplexing) バッファ操作 I/O多重化を使ったサーバ実装 非同期チャネル NIO2 によるエコーサーバ まとめ はじめ…

実行時の Java バージョン取得方法

Java8 以前 システムプロパティから java.version のキーで取得できます。 String version = System.getProperty("java.version"); Java9からは表記が変わるので注意が必要です。 Java8 まで:1.6.0_23、1.7.0、1.7.0_80、1.8.0_211 Java9 から:9.0.1、11.0…

EditorConfig でエディタのスタイルを統一する

EditorConfig とは 対応IDE/エディタ .editorconfig の配置場所 .editorconfig の書式 .editorconfig による設定 EditorConfig とは .editorconfig というファイルにインデントのスタイルや改行コード、文字エンコーディングの指定を書いておくことで、各種I…

nginx のリバースプロキシ設定

はじめに upstream コンテキストによるバックエンドの指定 リクエストのバランシング タイムアウト リクエストヘッダの追加 バックエンドへの Keep-Alive 接続 はじめに nginx の利用用途として多いリバースプロキシの設定まとめです。 nginx の導入方法につ…

Docker による nginx の導入と基本設定

はじめに nginx のプロセス docker で nginx を導入する nginx の構成 nginx コマンド nginx の基本設定 location ディレクティブのマッチング アクセス制限を行う はじめに Docker による nginx の導入と、nginx の基本設定についての説明です。 nginx のプ…

Java でシンプルなインタプリタを実装する

はじめに プログラミング言語 インタプリタ 字句解析器 Lexer 抽象構文木を生成する Parser 評価機 Evaluator まとめ はじめに Writing An Interpreter In Go を元に、Java を使って 1,000行 以下でインタプリタを作ります。 Go言語でつくるインタプリタ作者…