gtkmmを使ってC++でGTK+アプリケーションを開発しています。ウィンドウの一部が透過している非矩形のウィンドウを作ろうとしたのですが、 Windowsではウィンドウの背景が透過するのにUbuntu(Linux)ではウィンドウの背景が黒く塗りつぶされてしまいずいぶんと悩みました。

GTK+で透過ウィンドウを作成するために試行錯誤したときの解決メモと非矩形ウィンドウのサンプルコードです。

アプリケーション開発にデバッガ―は欠かせません。ソースコードにブレークポイントを設定してステップ実行したり、実行中の変数の中身を確認したり。デバッガ―を使えるようになれば、バグを短時間で見つけて解決できるなどアプリケーションの品質向上に繋がります。

今回は、Jettyで実行しているWebアプリケーション(WARファイル)をEclipseからデバッグする方法を紹介します。

前回の記事ではEclipseでビルドしたWARファイルを手動でJettyにデプロイ(配備)する方法を説明しました。

実際の開発では動作確認のために何度もビルド→デプロイをすることになりますので、手動でWARファイルのコピーを繰り返していては疲れてしまいます。

今回は、JettyEclipseを連携させてビルドからデプロイまで自動化する方法を紹介します。

前回の記事で作成したRESTアプリケーションをJettyを動かします。JettyJerseyライブラリを追加する手順、作成したWARファイルをデプロイしてブラウザから動作確認するところまでをWindows環境を例に説明していきます。

JettyJersey… 名前が似ていて混乱してしまいそうですね。

  • Jetty はサーブレットを動かすことができるWebコンテナ(アプリケーション・サーバー)です。

  • Jersey はJavaでRESTを扱うためのAPIであるJAX-RSのリファレンス実装ライブラリです。

Web APIといえば以前はSOAPでしたが、HTML5/JavaScriptによるSPA(Single Page Application)が台頭するにつれ、JavaScriptで扱い易いRESTに注目が集まっています。

Jerseyは、JavaでRESTアプリケーションを開発するためのJAX-RS(Java API for RESTful Web Services)リファレンス実装です。

今回はJerseyを使ってRESTアプリケーションを開発する手順を解説していきます。

データベースプログラミングで「レコードが存在しなければINSERTする」という処理が必要になることありますよね。この処理、簡単なようで意外と難しいんです。今日は、この処理を安全に実装するための方法と注意点を解説したいと思います。

とある開発プロジェクトに参加したときに、こんなJavaのコーディング規約に遭遇しました。

インスタンス変数のアクセス修飾子は private とし setter/getter メソッドを実装すること。

この規約は良くないですね。

Java 9の新機能 Project Jigsaw (プロジェクト・ジグソー)でJavaに待望のモジュール機能が追加されました。

Jigsawによるモジュール化は自作アプリケーションやサードパーティー製ライブラリの依存関係の解決に役立つだけではありません。Javaの標準クラスライブラリも複数のモジュールに分割され、必要なモジュールのみで構成された小さなJava Runtime Environment(実行環境)を作成できるようになりました。

この小さなJREを作る機能はモジュール対応していない(Java 8以前の)アプリケーションでも利用することができます。

JREが小さくなればアプリケーションにバンドルするのも容易になりますね。Project Jigsawを使って小さなJREを作成する手順をまとめました。

C言語(Win32 API)を使ってWindowsアプリケーションを開発している時に、Unixエポック(1970年1月1日)からの経過時間を秒単位ではなくミリ秒単位で取得する必要に迫られました。

Unixエポックからの経過時間を秒単位で取得するのであればtime関数を使うだけで済むのですが、ミリ秒単位で取得する場合は少しコードを書く必要がありました。今回は、WindowsでUnixエポックからの経過時間をミリ秒単位で取得する方法を紹介します。