torutkのブログ

ソフトウェア・エンジニアのブログ

Java読書会「マイクロサービスパターン」開始

Java読書会BOF 新しい課題図書「マイクロサービスパターン」を読む会を開始 本日8月29日より、Java読書会BOF主催の読書会「マイクロサービスパターン」を読む会が始まりました。 この本は、前回の課題図書投票で2位になっており、今回リベンジで課題図書とな…

Electron開発環境をWindows上で用意する

Electron開発環境をWindows上に用意する GUIアプリケーションをJavaで作った場合とElectronで作った場合の配布イメージサイズと展開後のサイズを比較するため、初めてのElectron開発環境を整えます。OSはWindowsです。 npmコマンドありきのインストール手順…

Rust事始め(続)

Rustのソースファイル構成 Rust では、標準のビルド&パッケージ管理システム Cargo を使いビルドを行います。 このビルドでは、ソースファイルのディレクトリ及びファイル名にかなり独特の制約があります。 単一のソースファイルから単一の実行ファイルを作…

Rust事始め

プログラミング言語 Rust を始めてみる 以前にRust言語が話題になっているのを目にして、どんな言語かと軽く情報収集をしました。 Rust 概要 C言語やC++言語のようにシステムプログラミングに使える、性能、メモリ安全と並行性のサポートを重視し、手続き型…

Javaプログラミングスキルの更新

最新のJavaプログラミングスキルへの追従 Javaは、1995年の登場から26年を経過し、その間に言語仕様、API、実行環境に様々な改善が加えられてきました。 また、今年9月にリリースされる予定のJava SE 17(OpenJDK 17)は、LTS版として長期間の利用を想定した…

Java Magazineオンライン版の日本語訳サイト

Java Magazine オンライン版(日本語訳) 米Oracleから提供されている Java Magazine Onlineの日本語訳は、2020年前半までは次のサイトで公開されています。 www.oracle.com このサイトには、2011年の創刊記念号から2019年5・6月号までの隔月発行されたJava …

オンライン勉強会2件の一部聴講メモ

redmine.tokyo勉強会とJJUG CCC 2021 Spring オンラインが開催 5月下旬の週末に、RedmineのオンラインイベントとJavaのオンラインイベントが続けて開催されました。 5月22日(土)redmine.tokyo 第20回勉強会 5月23日(日)JJUG CCC 2021 Spring (JJUG:Japa…

Gradle 7.0 とJavaモジュールシステム

Gradle 7.0 のリリース 2021年4月に Gradle 7.0 がリリースされました。 https://docs.gradle.org/7.0/release-notes.html この3月にリリースされたJDK 16に対応したほか、Javaモジュールシステム対応が正式機能に昇格しました。Javaモジュールシステム対応…

Scene Builder 16 リリースと日本語文字化け解消

JavaFX GUIデザインツール Scene Builder 16リリース JavaのモダンなGUIライブラリ JavaFX のデザインツール Scene Builder 16が3月末にリリースされました。 gluonhq.com Scene Builder は、JavaFX GUIライブラリの画面レイアウトを作成するツールです。ド…

jpackageで作る自己完結型アプリケーションの設定ファイル書式がJDK 14と15で変わっていた

JDK 14にてincubatorの位置づけで導入された jpackage(自己完結型アプリケーションパッケージを作成する等のツール)の設定ファイルが、JDK 15では認識されない事象が発生しました。 jpackageコマンドで自己完結型アプリケーションを作成すると、アプリケー…

Java読書会 会場とオンラインの併用を試みる(実施)

1月度のJava読書会は、会場での開催にオンライン参加を実現しました 昨日1月30日(土)に開催した Java読書会では、通常の会場での開催に、リモートからの参加を併用しました。 リモートからの参加にあたり、構成と準備作業は次に書きました。 torutk.hatena…

Java読書会 会場とオンラインの併用を試みる(準備)

今月のJava読書会で会場での開催にオンラインで参加できるようにしたい Java読書会BOF は、明日1月30日(土)に「データ指向アプリケーションデザイン」を読む会(第4回)を開催します。 今回は、コロナ禍の2回目の緊急事態宣言発令下での開催となり、会場の…

Java読書会 今月から読む本

はじめに 前回の本と台風とコロナ禍と Java読書会BOF 主催のJava読書会は、昨年2019年11月から毎月1回のペースで「The Java Module System」(洋書)を読む会を開催し、先月2020年9月に読了しました。 この本の読書会期間中には、台風直撃とコロナ禍と大きな…

Androidアプリで使用するロギング考

Androidアプリケーションから使用するロギングの種類と選択 プログラミングをしてデバッグをする際、ロギングは欠かせません。Androidアプリケーションも昨今は規模が大きくなってきており(なんせGUIからデータベースからネットワーク、そしてデバイスを扱…

Androidアプリケーションプログラミングを5年振りに

はじめに Androidアプリケーションのプログラミングは5年前に半年ちょっと程の期間取り組んで以来となります。 2015年初頭のAndroid開発環境は、最新OSがAndorid 4.4(KitKat)から 5.0(Lollipop)になった頃で、開発環境はそれまで主流のEclipseからAndroi…

jlinkのオプション指定でカスタムJREのサイズ削減

jlinkのオプション指定でカスタムJREのサイズ削減 はじめに 先週のJava読書会BOF主催「The Java Module System」を読む会(第10回)では、jlinkコマンドで実行イメージを生成する章を主に読みました。 そこには、生成する実行イメージのサイズを小さくする幾…

C++クラスにstd::string型静的メンバー文字列定数を定義する

C++

C++のstd::string型クラス静的メンバー変数に文字列定数を定義するいくつかの方法 はじめに 10年とちょっと前、C++(C++98/03規格)でプログラミングする際に文字列定数をどうやって表現しようかと考え、クラスの静的メンバ変数にconst修飾子を付けました。 …

JavaアプリケーションのJPMSモジュール化をGradleで

Javaアプリケーションをモジュール化し、Gradleでビルドするようにした 先日のブログの続きです。 torutk.hatenablog.jp いろいろな問題点に直面してしまいました。その後の紆余曲折を書いていきます。 使用するIDE Gradleプロジェクトとして作ったディレク…

Javaアプリケーションのモジュール化でGradleを使おうとしたら色々と

Javaアプリケーションをモジュール化する際の様々な障害 以前、JavaFXでちょっとしたデスクトップガジェットプログラムを作ってみました。 これは、ちょっとしたユーティリティライブラリ(次の日記)と、 torutk.hatenablog.jp それを使ったガジェット風ア…

WSL 2でCentOS 8

WSL 2でCentOS 8を利用する 以前、WSL(WSL 1)でCentOS 7を利用するブログを記載しました。 torutk.hatenablog.jp ブログで言及しているWSL向けCentOSの入手元には、Windows 10 2004 Update以降のWSL1/WSL2向けにCentOS 8.1 1911のPre-releaseが提供されて…

さくらVPSのOSをCentOS 8に更新、さらにRedmineを4.1に更新(続々々々)

さくらVPSのOSをCentOS 8に、Redmineを4.1に更新、の続き(5日目) 既に対処が終わっている内容ですが、以下の続きです。 torutk.hatenablog.jp MariaDBの文字コードを、utf8mb4に設定しました。これはUTF-8で1~4バイトの範囲を扱える設定です。一方、Maria…

IntelliJ IDEAでGradleを使ってJPMSプロジェクトの作成

IntelliJ IDEAでGradleを使ってJPMS(モジュールシステム)対応のプロジェクトを作成 JavaのビルドツールGradleが、まもなくリリースされるバージョン6.4で、Java SE 9で導入されたJava Platform Module System(略称JPMS)に対応します。Java SE 9がリリー…

さくらVPSのOSをCentOS 8に更新、さらにRedmineを4.1に更新(続々々)

さくらVPSのOSをCentOS 8に、Redmineを4.1に更新、の続き(4日目) 先日の続きです。 torutk.hatenablog.jp Redmineログのローテーション SELinux下でlogrotateを使ってRedmineのログ・ローテーションを実現するには設定がそれなりに手間なので、Railsの機能…

さくらVPSのOSをCentOS 8に更新、さらにRedmineを4.1に更新(続々)

さくらVPSのOSをCentOS 8に、Redmineを4.1に更新、の続きの続き 昨日の作業の続きです。 torutk.hatenablog.jp Let's Encrypt の証明書更新 証明書更新の処理確認(エラー対処) 証明書を更新するスクリプトの実行確認(dry-run)をします。 # certbot-auto …

さくらVPSのOSをCentOS 8に更新、さらにRedmineを4.1に更新(続)

さくらVPSのOSをCentOS 8に、Redmineを4.1に更新、の続き 昨日の作業の続きです。 torutk.hatenablog.jp Unicornのセットアップ Unicorn gemのインストール Unicornはrubyモジュール(gem)として提供されるので、bundlerでインストールします。 Redmineをイ…

さくらVPSのOSをCentOS 8に更新、さらにRedmineを4.1に更新

さくらVPSのOSをCentOS 8に、Redmineを4.1に更新 まとまった休みが取れたので、さくらVPSのサーバーのOSをCentOS 7から8に上げて、合わせてRedmineを3.4から4.1に上げる作業を実施しています。更新作業中はRedmineにコンテンツを挙げられないので、はてなに…

mavenリポジトリからjarファイルの取得

はじめに インターネットと常時接続が維持できない環境でプログラミングをする場合、ローカルにライブラリファイル等を保持し、ビルドスクリプトからはローカルのライブラリを参照すれば作業が可能になります。 NetBeans等のIDEでライブラリを利用して開発す…

Java SE 8の安定感

はじめに これからソフトウェア開発を始めるプロジェクトでプログラミング言語にJavaを使う場合に、Javaのバージョンをどうしようかと調べたことを書き付けます。 開発するソフトウェアは、5年から10年、場合によってはそれ以上使われることが想定されます*1…

Java Module Systemのmain classを持つJARファイル作成の落とし穴

発生した事象 IntelliJ IDEA で作成していたJavaFXアプリケーションがあります。ビルド成果物でJARを作成し、Main Classを指定すると、実行可能JARファイルが生成されます。 このアプリケーションのプロジェクトにmodule-info.javaを追加してJava Module Sys…

NetBeans 8.2のFindBugs Integrationプラグインインストールがエラーに

発生した事象 4,5年前に立ち上げ時期だけ参加していたプロジェクトがありました。そのプロジェクトはもうクローズしていますが、その資産を引き継ぎ新たに開始したプロジェクトがあり、Javaに詳しい開発者がいないとうことで、そのプロジェクトを(本業に差…