torutkのブログ

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

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

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

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

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…