torutkのブログ

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

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に詳しい開発者がいないとうことで、そのプロジェクトを(本業に差…

ソフトウェア開発環境が含む範囲

ソフトウェア開発環境が含む範囲 本記事は、製品としてソフトウェアを作る場合で、複数の開発者が共同して作業する、企業でのビジネスを想定しています。プログラミング言語は、コンパイラ型でオブジェクト指向プログラミング機能を想定しています。 逆に、…

JDK 9のjavac "--release"オプションについて

はじめに 2月1日開催の Java読書会「The Java Module Sysmem」を読む会(第4回)において、コラム枠にJDK 9で導入されたjavacコマンドのオプション--releaseの記載がありました。 --releaseオプションは、開発(コンパイル)に使用するJDKのバージョンよりも…

「The Java Module System」を読む会これまでのまとめ(その2) #javareading

Java読書会「The Java Module System」を読む会(第1~3回)のまとめ(その2) torutk.hatenablog.jp の続きです。 第2章 Anatomy of a modular application モジュール化したアプリケーションのディレクトリ構成の例 +- libs (サードパーティの依存物) …

「The Java Module System」を読む会これまでのまとめ(その1)

Java読書会「The Java Module System」を読む会(第1~3回)のまとめ(その1) #javareading Java読書会BOFでは、2019年11月から「The Java Module Systems」(洋書)を読み進めています。 The Java Module System作者:Nicolai Parlog出版社/メーカー: Mannin…

Githubのブランチ管理方針~Redmineプラグインの場合

Gitのブランチ管理方針~Redmineプラグインの場合 Redmineプラグインのコード管理の背景 RedmineのGlossary Pluginをフォークして細々とRedmineバージョンアップに対応しています。 https://github.com/torutk/redmine_glossary Redmineプラグインのコードを…

Redmineのテキスト編集をIE上で行う際Escキーで編集内容が消える問題の対処

はじめに 自宅PCや開発PCでは、Webブラウザとして主にFirefoxを使い、たまにChromeを、稀にEdgeを使います。 先月初めに、職場が移って(現職出向から帰任)新しいPCが配布されました。業務システムの対応Webブラウザの関係か、デフォルトがIE 11となってい…

WSLでCentOSが利用できたかも?(CentOS 7)

WSLで動くLinuxディストリビューション 現在、WSLの上で動くLinuxディストリビューション(WSLではLinuxカーネルは動かさないので実際にはユーザーランド)は、マイクロソフトストア上にUbuntu、OpenSUSE 他いくつか用意されていますが、CentOSはありません…

Windowsマシン上でのLinux環境は混沌と PC上に直接Linux OSをインストールして起動する(デュアルブート)環境は対象外とします。 Windows OSの動作を前提に設計されたノートPCでは、Linux OS向けドライバが存在しないデバイスが搭載されていることが多く、W…

RubyMineでRedmineプラグイン開発をする(Windows環境)

はじめに これまでは、Windowsマシン上でRedmineプラグイン開発環境を用意するのに、仮想マシン(Hyper-Vなど)にLinuxを入れてその上でLinuxベースの開発環境を整える方法を取っていました。ただしCUI環境が主です。Hyper-VでGUI環境を動かすとかなり動作が…

今月のJava読書会は「The Java Module System(洋書)」を読みます

Java読書会の新しい本 毎月1回川崎市でJavaに関する技術書籍の読書会を開催しているJava読書会BOFでは、 先月で「Java 11 and 12 - New Features」が読了し、新しい課題図書のWeb投票を実施ました。 その結果得票数4票(!)で第1位となったのがThe Java Mod…

ResultSetがStreamになったら嬉しいかも

はじめに JDBCでデータベース検索のプログラムを書いていると、テーブル毎に似たような、そしてちょっとずつ異なるコードを書くことになります。 異なる部分は、カラム名、データ型、そして取り出したバラバラの値をJavaのデータクラス(ドメインクラスであ…

グラフ表示アプリケーション作成時のトピック

はじめに 次の記事の続きです。 torutk.hatenablog.jp データベース利用グラフ表示アプリケーションを作成している過程で生じた問題解決のメモです。 RDBMSのスキーマにおいて、 外部キーでエンティティ間に関連を持たせる場合 自動採番するIDを主キーとする…

データベースを利用するアプリケーション(データベース接続)

はじめに 次の記事の続きです。 torutk.hatenablog.jp データベースの作成が終わったら、いよいよアプリケーションからデータベースへ接続してデータの読み書きをします。 JDBC API Java SEではRDBMSを利用する標準APIとしてJDBC(Java DataBase Connectivit…

データベースを利用するアプリケーション(データベース作成)

はじめに 続きです。 torutk.hatenablog.jp 今回は、データベースにテーブルを定義し、アプリケーションから利用できるようにします。 利用するデータベースは先の日記に記載のとおり、SQL Serverです。 データベースの作成ツール SQL Server Express Editio…

Microsoft SQL Server JDBCドライバーにmodule-info定義を追加してモジュール対応

はじめに Microsoft SQL Server JDBCドライバーのモジュール対応(module-info.classの組み込み)を試みました。経過をメモします。 経緯 SQL Server JDBCドライバーは、自動モジュール対応までしており、モジュールアプリケーションから利用できます。自動…

データベースを利用するアプリケーション(作成準備編)

動機 先月から折れ線グラフで表示するプログラムをJavaFXで作っています(自宅や出張中の宿で細々とです。出張先では通勤時間とか家事とかがないので捗りました)。 torutk.hatenablog.jp スペクトラム・アナライザのデータをファイルから読み込む機能を持た…

JavaFXでGUI全体のフォントをCSSで指定

はじめに 前回のブログの続きです。 torutk.hatenablog.jp 画面の国際化対応で日本語プロパティを追加してみました。その際使用される日本語のフォントはJavaのコードやCSSでコントロール毎に指定可能ですが、全体を変更することも可能です。 CSSのrootセレ…

JavaFXのグラフの凡例部分を操作可能にする

はじめに 先週書いた次のブログの続編です。 torutk.hatenablog.jp 一つのグラフ表示領域に、複数のグラフ(Series)を重畳表示した際に、簡単な操作でそれぞれのグラフを非表示にしたり表示したりとできると使い勝手が向上します。 グラフに凡例を表示した…

JavaFXで折れ線グラフを出そうとしてみた

はじめに(お題) 電気信号を時間領域から周波数領域に変換し、周波数に対するエネルギー量を解析できる測定器にスペクトラム・アナライザがあります。今回、このスペクトラム・アナライザで解析した結果をファイルに保存し、別な場所にあるPC上でその結果を…

インターネットとつながらないソフトウェア開発環境で使うツール

前提 ソフトウェア開発環境がインターネットと隔離されていることは、昨今のセキュリティ事情からよくあることと思います*1。ソフトウェアエンジニアの場合、事務作業で使うPC環境とは別にソフトウェア開発用のPC環境があり、それは事務作業で使うネットワー…

JavaFXアプリケーションでユーザーが編集可能なCSSファイルを置くには

問題 JavaFXアプリケーションを作成する際に、画面のレイアウトをFXMLで記述、色やフォントなどの見栄えをCSSファイルに記述し、FXMLのルートノードにCSSファイルを指定しました。模式的なソースファイル構成は次のようになります。 myapp +-- src +-- mypac…

gitのリリースタグをアプリケーションのバージョン表記に使う

はじめに JavaとJavaFXで小さなスタンドアロン・アプリケーション(ユーティリティ)を作成、使用するマシンに配置し、使い勝手を見ながら改善しています。使用しているJavaの種類は、JavaFXを内蔵しているAzul Systems社のOpenJDKであるZuluFX 11で、モジュ…

Java読書会BOF「Java 11 and 12 New Features」(洋書)を読む会を開催して

「Java 11 and 12 New Features」(洋書)を読む会を開催 昨日6月15日(土)に、Java読書会BOFは書籍「Java 11 and 12 - New Features」を読む会(第1回)を開催しました。あいにくの雨模様でしたが、10名を超える参加者が集まりました。Javaの最新技術、と…

JavaFXの入力部品でエラー時に色を変える

GUIでユーザーが入力した値が範囲外などのエラー時に、エラーとなった箇所が分かるよう色を変える方法を模索しました。今回はTextFieldを題材とします。 CSSの疑似クラスでエラーを定義 JavaFXで、CSSファイルを使って見栄えを定義している場合、CSSファイル…

Javaプログラムへの初期設定の与え方を悩む

Javaプログラムに初期設定を外部から渡す方法として、プログラム起動時のコマンドラインオプション、設定ファイル、システムプロパティ、リソースバンドル、プリファレンスAPI(java.util.pref)辺りが候補に挙がります。 今回、PCからシリアル通信でセンサ…

Java読書会BOFは6月から「Java 11 and 12 - New Features」を読み始めます

Java読書会BOFは、6月から新しい書籍「Java 11 and 12 - New Features」(洋書)を読み始めます。Java SE 9が2017年9月にリリース後、この2019年5月末時点までに、Java SE 10(2018年3月)、Java SE 11(2018年9月)、Java SE 12(2019年3月)とリリースされ…

Java読書会6月からの本の投票

Java読書会BOFの書籍選定 Java読書会BOFでは、月1回の読書会を開催しており、5月で「Effective Java第3版」をほぼ読了し、6月からは新しい本の読書会を開始します。現在読書会のWebサイトでWeb投票実施中(5月26日〆切)です。 Javaの技術動向は変化が大きく…