タグ

ブックマーク / torutk.hatenablog.jp (21)

  • Javaコーディング規約追補 - torutkのブログ

    最近GoogleJavaコーディング規約を公開したとニュースで知り、目を通してみたメモを書きます。 また、以前Javaのコーディング規約について調べたメモを次のURLに書きましたが、それ以降に公開されたJavaコーディング規約を探してみました。 http://www.alles.or.jp/~torutk/oojava/codingStandard/ Googleが策定・公開したJavaコーディング規約 先月、InfoQの日語訳の記事で、Googleが最近Javaコーディング規約を公開したことを知りました。 InfoQの記事(日語訳)GoogleJavaコーディング規約 (Google)http://google-styleguide.googlecode.com/svn/trunk/javaguide.html さらっと目を通してみたメモを箇条書きで列挙します。 ファイルのエンコ

    Javaコーディング規約追補 - torutkのブログ
  • ソースコード管理ツールをSubversionからGitへ変更して感じたこと - torutkのブログ

    少人数チームでのソフトウェア開発でソースコードを管理するリポジトリにGitを適用して1,2ヶ月ほど経過しました。Gitを開発に使用するのは今回が始めてで、みなSubversionを使っていたメンバーです。 開発環境 OS Linux、たまにWindows 開発言語 Java プログラミングツール NetBeans 7.4 Gitクライアント NetBeans標準搭載のGit機能、たまにコマンドライン、WindowsではたまにTortoiseGit Gitサーバー apacheでgit-http-backend、Redmineと認証統合 現在の使用状況 Gitの共有リポジトリを、開発サーバー上にapache(HTTP)でホストしています。 共有リポジトリはmasterブランチで、各メンバーはローカルにcloneしたあとローカルのmasterで変更作業を実施し、適宜共有リポジトリのmast

    ソースコード管理ツールをSubversionからGitへ変更して感じたこと - torutkのブログ
    waman
    waman 2014/01/23
  • Windows APIをJavaから呼び出す(JNA) - torutkのブログ

    昨日の日記(id:torutk:20121019)で、nativeメソッドSystem.nanoTime()のWindowsでの実装を調べ、その実装で使用しているWindows API QueryPerformanceCounterをC/C++コードで動かすことで分解能(周波数)とAPIの処理時間を取得しました。 そのためには、Windows APIを呼び出せるC/C++開発環境*1をセットアップする必要があります。また、Javaにはネイティブコード(C/C++)を呼び出すためのJNIという仕組みが標準装備されていますが、これもC/C++開発環境が必要となります。 そこで、既存のCライブラリ(Windows APIなど)をJavaから直接呼び出すことができるJNAライブラリを使用してみました。JNAを使えば、JNIのようにC/C++コードを書かなくて済みます。 JNAライブラリの入手 JN

    Windows APIをJavaから呼び出す(JNA) - torutkのブログ
  • JBoss Bytemanを使ってAOP - torutkのブログ

    9月26日のJJUG主催ナイトセミナー JJUG ナイトセミナー - torutkの日記 で、「イマドキの現場で使えるJavaライブラリ事情」の紹介にあったBytemanをJUnitから使い、モック的に利用する流れを簡単に記述しました。 Bytemanの設定 Bytemanの公式ホームページ(次のURL)から[Downloads]を辿ってbyteman binary + docsをダウンロードします。日時点でバージョンは2.1.0です。 Byteman Homepage · JBoss Community ダウンロードしたファイルbyteman-download-2.1.0-bin.zipを展開します(例:C:\java\byteman-download-2.1.0)。 Java開発環境(NetBeans)の設定 NetBeans IDE 7.2の上でJUnitテストケースからBytem

    JBoss Bytemanを使ってAOP - torutkのブログ
  • Git for Windows (msysgit)のgitプロトコルハングアップ問題 - torutkのブログ

    Windows上msysgitからリモートのマシンにgitプロトコル(git://server/repo)でpushするとハングアップする問題があります。 Google Code Archive - Long-term storage for Google Code Project Hosting. 問題の分析について次のスレッドで詳しく議論されています。 Gmane Loom ソケットの送受信を複数のスレッド(子プロセス?)で行っていることに起因するデッドロックがWindows/MinGWで発生するためのようです。 今のところgitプロトコルを使わないという選択以外回避策はないようです。 この問題は随分前から存在して解決に至ってない根の深い問題(POSIXとWin32の違い?)のようです。 ということで、Windows同士でGitのリモートアクセスをするのが厳しいというのが現状です。

    Git for Windows (msysgit)のgitプロトコルハングアップ問題 - torutkのブログ
  • torutkの日記

    NetBeans 7.2で作成したJavaFXアプリケーション起動の謎 - torutkの日記の続きです。 NetBeansでJavaFXアプリケーションプロジェクトを用いて作成したプログラムのJARファイルは、JavaFX関連のクラスパスを指定せずとも実行可能でした。 これと同じことを、NetBeansではなくコマンドでコンパイルするときにどう実現するかを探ってみました。 JavaFX 2プログラムの作成 普通に作成します。JARファイル作成上、ソースファイルとクラスファイルは別なディレクトリに生成しておきます。 とりあえず、次のようなディレクトリを作成します。 work +-- classes +-- src +-- torutk +-- HelloFx.javaHelloFxは、とりあえずボタンが1個の単純なもので作成。 package torutk; import javafx.a

    torutkの日記
    waman
    waman 2012/09/02
  • JavaFX 2関係資料 - torutkのブログ

    JavaFX 2に関して、今年に入ってJavaOne Tokyoや勉強会などがあり、日語での情報が充実してきています。それらの情報へのリンク一覧があると便利だなと思い、集めてみました。 個人ブログページも多く書かれているようです。参考になったページを今後随時追記していく予定です。 ITPro連載「JavaFX 2で始めるGUI開発」 櫻庭祐一さんの連載記事です。 JavaFX 2で始めるGUI開発 第1回 JavaFX 2とは | 日経 xTECH(クロステック) JavaFX 2で始めるGUI開発 第2回 シーングラフとFXML | 日経 xTECH(クロステック) JavaFX 2で始めるGUI開発 第3回 コントロール その1 | 日経 xTECH(クロステック) JavaFX 2で始めるGUI開発 第4回 コントロール その2 | 日経 xTECH(クロステック) JavaFX

    JavaFX 2関係資料 - torutkのブログ
    waman
    waman 2012/09/01
  • Java SE Developtment Kit 7 u6をWindows 7へインストール - torutkのブログ

    (2012-08-31追記) JDK/JRE 7u6には深刻なセキュリティ脆弱性があるのでu7への更新を! Java SE Development Kit 7 u6(通称 JDK 7u6)で、JavaFXのインストール形態が変わっていたので、過去に書いた「Windows 7へJDK 7をインストール」記事を更新しました。 http://www.02.246.ne.jp/~torutk/java/install/jdk7onwindows7.html u5までは、JDKのインストール後、別途JavaFXのインストーラが実行され、また、デフォルトのインストール先もJDKとは異なる場所でした。アンインストールもJDKに加え、JavaFXも別途アンインストールする必要がありました。 u6では、JDKの一部に含まれる形で一緒にインストールされるようになりました。(あくまでインストールが一緒になっただ

    Java SE Developtment Kit 7 u6をWindows 7へインストール - torutkのブログ
    waman
    waman 2012/08/24
    『u6では、JDKの一部に含まれる形で一緒にインストールされるようになりました。(あくまでインストールが一緒になっただけです)』
  • ソフトウェア開発を考え直してみる - torutkのブログ

    火だるまプロジェクトの真っ最中では落ち着いて考えることができませんでしたが、2年がかりのプロジェクトがデリバリー(納入)を終え、カットオーバー(運用開始)となって四半期が過ぎ、いろいろとソフトウェア開発プロジェクトを振り返り考えるようになりました。 ソフトウェア開発を考え直すヒントを得る書籍 ちょうどプロジェクトが一段落したあとに読んだというタイミングもあるかもしれませんが*1、ソフトウェア開発を考えるヒントを与えてくれた2つのを紹介します。 ソフトウェア開発はなぜ難しいのか ~「人月の神話」を超えて (技評SE選書) 作者: 大槻繁出版社/メーカー: 技術評論社発売日: 2009/10/21メディア: 単行(ソフトカバー)購入: 1人 クリック: 59回この商品を含むブログ (12件) を見る ソフトウェア開発というのが、なぜ難しいかを正面から扱った稀有なです。プロジェクトマネージ

    ソフトウェア開発を考え直してみる - torutkのブログ
  • Project Jigsaw ことはじめ(その2) - torutkのブログ

    Project Jigsaw ことはじめ - torutkのブログ の続きです。 今日は、JDK8 Jigsawプレビューが更新された件、および、2つの依存関係のあるモジュールを作成し、ライブラリ化、実行する件を紹介します。 JDK8 Jigsawプレビューの更新 JDK8 Jigsawプレビューが1か月ちょっとぶりに更新されました(2012/6/22付でb36→b42ベースに)。 http://jdk8.java.net/jigsaw/ 展開しJavaのバージョンを表示させると次のとおりです。 $ java -version java version "1.8.0-ea" Java(TM) SE Runtime Environment (build 1.8.0-ea-jigsaw-nightly-h458-20120622-b42-b00) Java HotSpot(TM) 64-Bit

    Project Jigsaw ことはじめ(その2) - torutkのブログ
    waman
    waman 2012/06/25
  • C++用地図ライブラリMapnik - torutkのブログ

    C++で地図データの操作と地図描画を扱えるライブラリを探していたら見つけました。 http://mapnik.org C++で、クロスプラットフォーム(LinuxMacOS X、Windows、他)に対応する地図描画ライブラリです。 最新のLinuxディストリビューションには標準で含まれており、Fedora 17ではmapnik 2.0となっています。 アンチエイリアス処理によるきれいな地図描画、インテリジェントなラベル配置、SVGによるシンボル描画、ESRIシェープファイル、PostGIS、Tiffほかのデータ形式対応といったツールとなっています。 mapnik 2.0は、Boost 1.42を要求しているため、CentOS 6.2ではちょっと面倒なので、Fedora 17を入れてMapnikを試してみようと思います。

    C++用地図ライブラリMapnik - torutkのブログ
    waman
    waman 2012/06/11
  • 「Tuning JavaSE for Throughput and Latency」セミナー - torutkのブログ

    オラクル開催のセミナー「Tuning JavaSE for Throughput and Latency」を受講しました。 もともとはJavaOne Tokyo 2012のプログラムだったものが開催できず今日あらためて開催したとのことです。 スライドは、Charlie Hunt氏*1作成のもので、説明は日オラクルのサポートエンジニアの方からでした。(講師の方のブログ発見) http://d.hatena.ne.jp/ytoshima/20120606/1338992985 内容はHunt氏が著した次の書籍に基づくものとのことです。 Java Performance (Java Series) 作者: Charlie Hunt,Binu John出版社/メーカー: Prentice Hall発売日: 2011/10/04メディア: ペーパーバック購入: 1人 クリック: 49回この商品

    「Tuning JavaSE for Throughput and Latency」セミナー - torutkのブログ
    waman
    waman 2012/06/07
  • Project Jigsaw ことはじめ - torutkのブログ

    注)Jigsawは、Java SE 8には間に合わず、その後も仕様検討・開発が継続され、Java SE 9に導入されることになりました。すでに記事は完全に古い内容となっています。 Java SE 8で導入予定のモジュールシステムが、Project Jigsawです。JavaでJigsawという名称を聞くとw3cのHTTPサーバーを連想してしまう人もいるかと思いますが*1、それとは無関係のモジュール管理の仕組みです。ここでいうモジュールとはJARファイルの類です。 JavaOneなどでこのProject Jigsawの解説はされているのですが、目で見ているだけではピンと来なく、実際に手で動かしてみないとと思っていたら、先月にJigsawのプレビュー版が公開されました。 以下からJigsaw機能入りJDK8プレビュー版*2がダウンロードできます。 http://jdk8.java.net/j

    Project Jigsaw ことはじめ - torutkのブログ
    waman
    waman 2012/06/03
    『Project Jigsawの機能でモジュール化して実行する』
  • java.util.concurrent.Semaphoreはバイナリセマフォにはならない? - torutkのブログ

    同時に1つの処理だけが実行されるよう相互排他を実現したいが、処理の開始と終了が同じスレッドではない(処理終了は別スレッドでないと判定できない)ため、LockではなくSemaphoreを使うことにしました。 Java SE 6の日語版Javadocには、以下のような記述があります。 値を 1 に初期化されたセマフォーは、利用できるパーミットが最大で 1 個であるセマフォーとして使用されるため、相互排他ロックとして利用できます。 そこで、許可数を1でセマフォを作成しました。 Semaphore binarySemaphore = new Semaphore(1); デバッグのため、ログにこのセマフォをacquire/releaseするたびにavailablePermitsを出力していたところ、 binarySemaphore.release(); logger.trace("binarySe

    java.util.concurrent.Semaphoreはバイナリセマフォにはならない? - torutkのブログ
    waman
    waman 2012/02/28
  • printf様式の書式化で's'変換指示子を自前のクラスに指定し独自の書式化を実現する〜java.util.Formattableの実装 - torutkのブログ

    Java Advent Calendar 2011 : ATNDの一環で、第32日目のエントリです。 Javaには、C言語のprintf関数風に文字列書式化機能が備わっています。intやdoubleなどのプリミティブ型に関する書式化のほかに、オブジェクト型については、%s変換が用意されています。文字列と兼用の変換で、デフォルトではtoString()メソッドの戻り値文字列が表示されるだけという簡素なものです。 Javadoc APIから%sに関する説明を以下に抜粋します。 s、S 一般 引数 arg が null の場合、結果は null になります。arg が Formattable を実装する場合に、arg.formatTo が呼び出されます。そうでない場合、結果は arg.toString() の呼び出しで取得されます。 温度(Temperature)クラスを題材に、この%s変換の実

    printf様式の書式化で's'変換指示子を自前のクラスに指定し独自の書式化を実現する〜java.util.Formattableの実装 - torutkのブログ
    waman
    waman 2012/01/02
  • finalizeとJavaヒープメモリ - torutkのブログ

    JavaGUIアプリケーション(ネイティブライブラリ使用)をしばらく実行していると、だんだん重くなり、JavaヒープメモリをJDKのjconsoleツールで調べると、上限に張り付きFull GCが頻繁に発生してますが、グラフが下がらないという状況がありました。 同じくJDKのjvisualvmツールでヒープに占めるオブジェクトを調査すると(「サンプラ」タブの「メモリー」ボタンを押し、ヒープヒストグラムを表示)、あるクラスのインスタンスが100万個以上と同数のjava.lang.ref.Finalizerが存在しています。 ロジック的なメモリリークではなく、GCのファイナライズに関して問題が生じているようです。問題のクラスは、ネイティブライブラリを使用していおり、jconsoleでFinalizerスレッドのダンプを見ると、そのクラスのfinalizeでネイティブ呼び出しをしています。 参

    finalizeとJavaヒープメモリ - torutkのブログ
    waman
    waman 2011/12/17
  • JavaFX 2.0最初の一歩 - torutkのブログ

    最近ちょっと話題になっているJavaFX とは 非Web系Javaプログラマ(あるいはJava SEプログラマ)から見たJavaFX 2.0とは新たなGUIライブラリです。Java標準のAWTおよびSwing、Eclipseが使用しているSWTなどと並ぶもので、得意分野はアニメーション、サウンド、動画、HTMLレンダリング機能といったところでしょうか。 このJavaFX、次のバージョンのJava SE 8に標準搭載される予定とのことです。AWT/Swingとは別にまったく新たに作られたライブラリなので、Java SE 8プログラミングにおいてはどっちのGUIを使うか?という選択が発生することになりそうです。 JavaFXの情報源 JavaFXホームページ http://javafx.com OracleJavaFXに関するポータルページです。Oracleが強くJavaFXを押しているので

    JavaFX 2.0最初の一歩 - torutkのブログ
    waman
    waman 2011/11/20
  • JAXBでJavaクラスからXML schema生成 - torutkのブログ

    Java SE 標準APIのJAXBを使うと、Javaのインスタンスの内容をXML形式で出力したり、逆にXMLファイルからJavaのインスタンスを生成することができます。 JAXBは最初、XML Schema定義からJavaクラスを生成し、そのクラスを利用して実行時にJavaインスタンスとXML文書のマッピングをする機能が提供されました。その後のバージョンで、Javaクラス定義*1からJavaインスタンスとXML文書のマッピングをする機能が提供されました。そのためもあってか、解説記事は大半がXML Schema定義からJavaクラスを生成するものとなっています。 今回、Javaクラス定義からXML文書とマッピングするために必要な流れを、一歩一歩試しながら理解したいと思います。 なお、Javaクラス定義からXML文書とマッピングさせる場合、XML Schemaを生成する必要はありませんが、生

    JAXBでJavaクラスからXML schema生成 - torutkのブログ
    waman
    waman 2011/10/02
  • Java SE 7の新しいファイルI/O - torutkのブログ

    今まで、なかなかJava SE 7の新しいAPIに取り組めていなかったので、ちょっとしたツールを作成する機会に、コマンドライン引数で指定したファイルを読み込むという、よくありがちなシナリオで、Java SE 7の新しいファイルI/OのAPIを試してみました。 新しいAPIの解説記事はいろいろ出ていますが、意外とわかりづらかったので(解説指向で高度な内容を書かれているためと思われる)、ごく簡単なシナリオでどんなコードになるかをみてみました。 import java.io.BufferedReader; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; これが

    Java SE 7の新しいファイルI/O - torutkのブログ
    waman
    waman 2011/08/17
  • Windowsのディレクトリ構成ガイドライン - torutkのブログ

    Windows Vista/7 になって、ユーザーのディレクトリがC:\Users下になったり、C:\Users\<ユーザー名>\AddDataなるディレクトリが出来たり、C:\ProgramDataなるディレクトリが出来たり、といろいろな変化があります。 また、C:\Program Filesの下にインストールしたプログラムの設定ファイルを変更すると、C:\Users\<ユーザー名>\AppData\Local\VirtualStore\Program Files\foo\foo.ini などに書かれたりします。 そのような状況で、開発したプログラムをどこにインストールするように設定すればいいのか、Windowsの流儀が分からず、調べてみると、"Namespace Usage Guidelines for the Window Vista File System"という技術文書に行き当た

    Windowsのディレクトリ構成ガイドライン - torutkのブログ