torutkのブログ

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

2015-01-01から1年間の記事一覧

JavaFXで作ったアナログ時計にタッチパネル操作を追加してみた際のメモ

この記事は、JavaFX Advent Calendar 2015 の二日目の記事です。一日目のJavaFXで流れるHello world - Qiitaも実は私が書いています。三日目は@btnrougeさんのMSI/EXE インストーラ版 Scene Builder を HiDPI 対応させるには - notepadです。 今年の春、JJUG…

実行可能JARファイルをバッチファイルまたはシェルスクリプトに結合して実行する

Javaのプログラムを実行可能JAR形式で作成すると、プログラムを配布するのがJARファイル1つで済みます*1。実行可能JAR形式ファイルを実行するには、Windows OS上にOracle JRE(Java Runtime Environment)がインストールされていれば、ファイルをエクスプロ…

CentOS 7.1にgitサーバーをapacheで立ててRedmine認証しようとして嵌ったこと

CentOS 6にapache経由でhttpでアクセスできるgitサーバーを立てて、Redmine認証をする方法は以前に確立していました。 http://d.hatena.ne.jp/torutk/20130117/p1今回、CentOS 7に同じ構成でgitサーバーを立ててRedmine認証をさせようとしたところ、大いには…

[Java][JavaFX]Javaプログラムを多数動かす場合のチューニング

JavaFXでデスクトップに表示するアナログ時計プログラムを作成しています。 JavaFXとアナログ時計このプログラムを、Windows 10を入れたノートPC上で多数(試しに24個)起動してみたところ、CPUとメモリがいっぱいいっぱいな状況になってしまいました。 CPU …

JavaFXのアニメーションで繰り返しを無制限にするとメモリリークの兆候が…(続)

昨日JavaFXのアニメーションで繰り返しを無制限にするとメモリリークの兆候が… - torutkのブログの続きです。アナログ時計の実現方法として、RotateTransitionを作成し、cycleCountを無限に設定してplay()を呼ぶことで、時計の針を回転させるアニメーション…

JavaFXのアニメーションで繰り返しを無制限にするとメモリリークの兆候が…

今年の4月にJJUG CCC 2015 Springで講演させていただいたJavaFXでアニメーションの題材であるアナログ時計を少しリファインしています(タッチパネル操作を主に)。JavaFXとアナログ時計 - ソフトウェアエンジニアリング - Torutkその際ヒープ使用量を計測し…

Java読書会BOF「Javaパフォーマンス」を読む会(第5回)を開催して #javareading

昨日は、Java読書会BOF主催の「Javaパフォーマンス」を読む会(第5回)を開催しました。 http://www.javareading.com/bof/今日は内容に関してのメモです。 弱い参照(WeakReference) オブザーバーパターンを使って通知先リスト(オブザーバーのリスト)を管…

AndibleでRedmineを構築する例を詳しくみてみる

1日ほどAnsibleとたわむれて(RedmineサーバーをAnsibleで構築に向けて) - torutkのブログ で言及した、Redmine.jpでおなじみの前田さんがGitHubで公開しているAnsibleでCentOS 7にRedmine 3.1を構築する設定を詳しく調べてみます。 https://github.com/far…

1日ほどAnsibleとたわむれて(RedmineサーバーをAnsibleで構築に向けて)

仮想化環境で多数のLinuxサーバーの設定をするようになり、また、並列計算機環境で同様に多数のLinuxサーバーを設定することもあり、これまでの手作業では面倒なことが増えてきました。以前から、そのようなサーバー構築作業にはChefがよさそうと思っていま…

書籍「Effective Modern C++」の訳本が出てました

C++

Effective Modern C++ ―C++11/14プログラムを進化させる42項目作者: Scott Meyers,千住治郎出版社/メーカー: オライリージャパン発売日: 2015/09/18メディア: 大型本この商品を含むブログ (7件) を見るあの「Effective C++」の著者スコット・メイヤーズ氏に…

Apache PDFBoxライブラリを使ってPDF文書の表示(着手編)

ときおり、PDF文書から任意のページを切り出したいということがあります。PDF文書を扱うのはAcrobat(≠Acrobat Reader)を購入するのが一番でしょうし、フリーのツールも多々存在しますが、ここはJavaでツールを作成してみたいと思います。まず、第一歩とし…

Java読書会BOF「Javaパフォーマンス」を読む会(第4回)を開催して #javareading

通算198回目のJava読書会を本日開催しました。再来月は200回記念です。 川崎市の団体登録更新 Java読書会BOFは、主に川崎市の公共施設の会議室を借りて開催しています。川崎市の会議室を借りるには、川崎市の「ふれあいネット」と呼ばれるシステムに利用者登…

JavaFXのSwingNodeがJavaFXのイベントをSwingのイベントに変換しているあたり(続々々)

JavaFXのSwingNodeがJavaFXのイベントをSwingのイベントに変換しているあたり(続々) - torutkのブログ の続きです。タッチパネル操作を認識する*1プログラムと、タッチパネル操作を認識しない*2プログラムに対するWindows OSからプログラムへ発行される入…

JavaFXのSwingNodeがJavaFXのイベントをSwingのイベントに変換しているあたり(続々)

昨日の日記(JavaFXのSwingNodeがJavaFXのイベントをSwingのイベントに変換しているあたり(続) - torutkのブログ)で、Windows OS上ではタッチパネル操作を扱うアプリケーションはRegisterTouchWindow APIを呼ぶこと、Javaでは、JavaFXのネイティブコード…

JavaFXのSwingNodeがJavaFXのイベントをSwingのイベントに変換しているあたり(続)

昨日の日記(id:torutk:20150918)の続きです。マウスのホイール操作で拡大・縮小するSwingの画像表示コンポーネントをSwingの画面上に貼って動かしたときは、タッチパネルのピンチ操作で拡大・縮小しています。Swingはタッチパネル入力には対応していないの…

JavaFXのSwingNodeがJavaFXのイベントをSwingのイベントに変換しているあたり

JavaFXの画面にSwingで作ったコンポーネントを乗せることが可能です。そのときは、JavaFXのSwingNodeを置いて、その上にSwingのコンポーネントを乗せます。(参考)OracleのJavaFXドキュメント「相互運用性 7. JavaFXアプリケーションへのSwingコンテンツの…

[Redmine]Redmine 2.6.1から3.1.0へのバージョンアップ

CentOS 6.7上で稼動しているRedmine 2.6.1を、Redmine 3.1.0へバージョンアップします。また、rubyのバージョンも最新の2.2系にアップすることにします。RackサーバーはUnicornを、WebサーバーはNginxを使っています。 現状とバージョンアップ後の整理 項目 …

NetBeans 8.0.2からのScene Builder 8.0.0起動

本日記の確認環境 OS Windows 7 64bit版 JDK Oracle JDK 8u60 64bit版 Scene Builder Scene Builder 8.0.0 x64版 NetBeans NetBeans 8.0.2(更新非適用) NetBeans 8.0.2からScene Builder 8.0.0を起動する JavaFX Scene Builderは、現在Gluon社からビルド済…

JNRを使ってJavaからネイティブアクセス

先日のJJUGナイトセミナー(JJUGナイトセミナー JVM特集に参加して #JJUG - torutkのブログ に参加メモ)で紹介のあったJNR(Java Native Runtime)を実際に使ってみようと試行錯誤した内容を書きます。環境は、Windows 7 64bit版、JDK 8u60です。 JNRライブ…

JJUGナイトセミナー JVM特集に参加して #JJUG

本日は、日本Javaユーザーグループ(JJUG)主催のナイトセミナー「JVM特集」に参加してきました。今晩のセッションは次の2つでした。 JNR: ネイティブコードをコールするのに、まだJNI使っているの?(by 櫻庭さん) HotSpot のロック: A Peek Under the Hood…

JUnitプラグインなどをオフラインでインストール

インターネットに接続できない環境でNetBeans IDE 8.0をインストールすると、JavaのユニットテストライブラリJUnitのプラグインがインストールされません。 また、NetBeansの認定プラグインサイトを調べてJUnitプラグインのファイル(.nbm)をダウンロードし…

8/22(土)は「Javaパフォーマンス」を読む会(第3回)です。#javareading

Java読書会BOF主催の「Javaパフォーマンス」を読む会(第3回)は、今週末の8/22(土)に開催されます。開催案内・申込はJava読書会BOFサイト(次のURL)をご参照ください。 http://www.javareading.com/bof/今回は、ガベージコレクタ祭りです。Javaのガベー…

Windows Location APIをJavaから利用する

Windows Sensor and Location APIでGPSデバイスから座標を取得 - torutkの日記 の続きです。 Javaから、Windows Sensor and Location APIを利用する方法を探ります。 Javaからネイティブのライブラリを呼び出す方法 まずは、Java SE Development Kit(JDK)…

Windows Sensor and Location APIでGPSデバイスから座標を取得

Windows 7から、Sensor and Location APIが導入され、これに対応したGPSデバイスを使うと標準APIを使って位置などを取得することが可能になります。MSDNの以下記事(日本語訳)参照。 Introduction to the Sensor and Location Platform in Windows | Micros…

EasyPMD 9.0/9.1はNetBeansにエラーを起こさせる模様

ソースコード検証ツールPMDのNetBeans用プラグインであるEasyPMDがここのところ活発にアップデートされています。 最新のEasyPMD 9.1をインストールしたところ、NetBeansの新規プロジェクト作成ウィザードが正常終了しなくなってしまいました。[通知]を見る…

GluonのScene BuilderをNetBeansが認識

JavaFX Scene Builderのバイナリ入手先 - torutkの日記 で、Scene Builderの新しいバージョン(Java 8u40で追加されたJavaFXのダイアログなどの機能)のバイナリがGluon社のサイトで公開されていますが、NetBeansからは認識できないという件を書きました。最…

イベントバスとリアクティブプログラミングの違いについて

GUIを持つアプリケーションの設計では、ソフトウェアアーキテクチャパターン*1としてMVCパターンを使用し、MVCパターンを実現する上で、Modelの変更をViewやControllerへ通知する仕組みにデザインパターン*2としてObserverパターンを使用するのが古典的定番…

Android Studio 1.3がリリースされていた

Android Studio 1.2.2を起動すると、1.3へのアップデートがあると通知があり、アップデートしてみました。 GradleのJVMオプションはプロジェクト毎に設定する IDEとして共通設定する機能が削除されています。 SDK ManagerがAndroid Studioの設定機能の一部に…

redmine_glossary(用語集)プラグインのRedmine 3.0(3.1)対応

用語集プラグイン(glossary)をRedmine 3.0で動くようにしてみる - torutkの日記 で、用語集プラグインをRedmine 3.0対応させる試みをしました。GitHubでフォークした後、feature/redmine-3ブランチを作ってそこに修正を加え、何となく動いたところまで達し…

複数JDKバージョンのインストール(Windows OS編)

Javaでプログラミングをしていると、複数のJDKバージョンを扱うことが必要になることがあります。そこで、アップデートの度に古いバージョンをアンインストールせずに新しいバージョンを入れていくとこんな感じになります。 インストール先のディレクトリは…