torutkのブログ

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

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

Java読書会「Java Concurrency In Practice」

Java読書会BOFによる「Java Concurrency In Practiceを読む会」の第3回が本日実施されました。Java Concurrency in Practice作者: Brian Goetz,Tim Peierls,Joshua Bloch,Joseph Bowbeer,David Holmes,Doug Lea出版社/メーカー: Addison-Wesley Professional…

JavaでSNMPマネージャ機能を作るには

JMXにあるかと思いきや、どうもSNMPエージェントの振りをするラッパーが提供されているだけのようです。SNMPの有償製品ならいくつか出ていますが、勉強レベルで個人で買う気がしないので、フリーなものを探してみました。 SNMP4J http://www.snmp4j.org/ SNM…

Javaプログラム中からCPU使用率を取る

前世紀からの課題の一つ。JNIを使ってネイティブメソッドを作るのが当初の解決策でした。SNMPを使って取得するという案もあるかなぁと思って数年が経過していました。その後、JMXでSunのJava実行系では、プロセスのCPU使用率が取れるようになっています(jco…

JDK 6 (Mustang)のリリース予定が変更

http://blogs.sun.com/mr/entry/java_se_6_schedule_update 10月リリース予定のJDK 6(開発コード:Mustang)は、8月18日のb96をもってコードフリーズして品質試験にはいってリリースに向かう予定でしたが、致命的なバグがまだ残っており、9月1日のb98をもっ…

ACE+TAOビルドとOpenSSL

C++

ACE+TAOでは、VC++のプロジェクトとしてssleay32.libをリンクします。しかし、 http://www.slproweb.com/products/Win32OpenSSL.html で公開されているOpenSSLのWindows用バイナリでは、VC++のリンクオプションであるMD,MT,MDd,MTdに合わせたssleay32MD.lib,…

NetBeans 5.5のGUIレイアウトで生成したコードをJDK 6(Mustang)へ移行するには

NetBeans 5.0からは、とても使いやすいGUIレイアウトツールが付いています。これは、org.jdesktop.layoutパッケージのGroupLayoutクラスを使ってレイアウトを制御するコードを生成しています。このGroupLayoutは、JDK 6 (Mustang)から標準搭載されるようにな…

テストしやすいメソッド設計

メソッドの中で、System.currentTimeMillis()のような実行タイミングに依存する結果をもたらす処理が入っていると、テストケースが書きずらいものになります。 public static long getCurrentNtpTime() { long currentUnixTime = System.currentTimeMillis()…

NTPタイムスタンプフォーマット

昨日のRFC 4193の一意なID生成ロジックにてNTPタイムスタンプフォーマットを生成する必要があります。調べてみるとNTPタイムスタンプは1900年1月1日0時0分0秒を基点とする64bit固定小数点形式で、上位32bitが秒を示します(LSBが1/2^32)。2036年で桁溢れが…

整数データとバイト配列の変換

RFC 4193「一意なローカルIPv6アドレス」では、IPv4のプライベートアドレスのような使い方をするアドレスについて規定しています。家で数台のPCでIPv6の実験(勉強)するときは、この一意なローカルIPv6アドレスを使用するのがよいです。http://www5d.biglobe.…

Javaの暗号化プログラミングの学び方

Javaでは、標準ライブラリとしてJCEが搭載されていますが、この使い方をマスターするのが難しい。まずは共通鍵暗号化から入っていますが、鍵の生成から難しく理解が進みません。これは何としたことか・・・。 KeyGeneratorとKeyFactoryと2つの鍵作成クラス…

Javaマルチスレッドプログラミングの学び方

Java読書会BOFでは、今「Java Concurrency In Practice」を読んでいます。普通マルチスレッドというと、Threadクラス、Runnableクラス、synchronized、それからwait、notifyといった仕組みの話が続いていると思っていました。 しかし、この本は、いかに同期…

プロジェクトjdk-api-ja

https://jdk-api-ja.dev.java.net/ja/index.html Java.netの中に、JavaDoc日本語翻訳プロジェクトが設けられています。 ひとまず登録し、メーリングリスト購読を行ってみます。このプロジェクト内容については、日本Sunの開発者向けのニュースレターSun Ente…

PlanetJDKからの情報

JDK 7でのセキュリティ関連機能の要望を募集中 http://weblogs.java.net/blog/mullan/archive/2006/08/security_featur.html 新しい機能でも、使い勝手でも、気軽に要望を知らせてくださいとのことです。ちょうどJCEで暗号化のプログラミングを実験してみよ…

Threadクラスのyield()メソッドの実装は?

Java読書会BOFの宿題事項です。 おっと、いきなりnativeメソッドです。 public static native void yield();ここから先は、JDKのソースを持っていないと追えません。JDK 6 (Mustang) b96でこの先を追いかけてみます。 まず、java.lang.Threadクラスに対応す…

JDK 6 (Mustang) b96で、GUIのOpenGLレンダリング時のクラッシュ回避

b96でシステムプロパティ-Dsun.java2d.opengl=trueを指定してOpenGLレンダリングを有効にすると、コンテンツ領域には何も表示されません。NVIDIA GeForce 7600を使用しています。調べるとBug ID: JDK-6458746 OGL: mustang b94 doesn't work correctly with …

Java JCEの利用方法

情報収集です。JavaにはJava Cryptography Extension(JCE)と呼ばれるライブラリが標準で搭載されています。 書籍、雑誌 Java Press Vol.39 特集記事 JCEによる暗号化と複合(稲田龍 著) Java 2 セキュリティプログラミング 基礎概念から実装の詳細まで(ジ…

IBM developerWorksの記事より、JDK6(Mustang)の同期最適化

"IBM dw:Java theory and practice: Synchronization optimizations in Mustang" http://www-128.ibm.com/developerworks/java/library/j-jtp10185/ Javaの理論と実践シリーズは多くが日本語訳されていますが、この記事は英語のみです。 概要 複数スレッドで…

明日のJava読書会

明日はJava読書会BOFの読書会の日です。今回は洋書なのとお盆時期なのか参加予定人数は10人と少ないです。Java Concurrency in Practice作者: Brian Goetz,Tim Peierls,Joshua Bloch,Joseph Bowbeer,David Holmes,Doug Lea出版社/メーカー: Addison-Wesley P…

Solaris 10 x86 6/06 NVIDIAビデオドライバ&SiS963Lネットワークドライバ

GeForce6600だと、OSインストール後ブートするとき、Xのログイン画面が正常に表示されない(ぐちゃぐちゃ)という問題があります。先日調べたとおりであるので、NVIDIAのドライバーをインストールすることにしました。しかし、このマシン、標準ではネットワ…

Solaris 10 6/06のインストール

マシンを新規に作ったので、今までのメインマシンをSolarisに転用することにしました。 CPU:AMD Athlon XP 2500+ M/B:MSI 746F Ultra-L VGA:GeForce 6600 CDからブートしていくと、グラフィックスのテストで画面が異常となります。どうやらVGAカードのドライ…

Java SE 6(Mustang) b95ビルド

b94はビルドエラーだったのですが、b95が出たので新しいマシンでビルド実施。1時間42分でビルド完了。早くなりました。デュアルコアだとビルド中も他のアプリケーションが負荷なく動きます。マシン:Athlon 64x2 4200+

Java 2 SE 5.0 Tiger情報

Update8がリリースされました。 HotSpot、ガベージコレクタのパフォーマンス改善ほか広範にバグが修正されています。 http://java.sun.com/j2se/1.5.0/ja/ReleaseNotes.html#150_08

PCパーツお買い物(続々々)

12cmFANもいろいろ種類がありますが、前面FANはHDDに空気を流し込めればよいので、低回転、低騒音のものを選定します。12cmFANだと2000rpm、20〜30dBのものが多い中、ScytheのS-FLEX SFF21Dが800rmp、10dB以下と格段に静かなものとなっています。これを本命…

PCパーツお買い物(続々)

ケースに電源を組み込み、マザーボードを載せ、電源ケーブル、フロントコネクタの各種制御線を接続し、ディスク関係を接続し起動確認までは時間はかかったものの順調に進みました。このPCケースは、背面に12cmのケースFANが標準で付いています。前のPCケース…

PCパーツお買い物(続)

昨日買ったパーツを開いて、今のPCの中を開けて移行確認をしていたら、はたと気付きました。 マザーボードの電源が24ピンになっている。今の電源は20ピンだ。ネットのBlog等を見ると、20ピンを挿す(つまり4ピンは浮かす)でもいけるようだが、先行き不安あ…

PCパーツお買い物

前回は2003年のG.W.に組み立てたAMD Athlon XP 2500+マシンでした。3年ちょっと経過なので、まあ時期的にはよい頃です。 事前選定 8/5に発売開始予定IntelのCore 2 Duoをターゲットにしていましたが、会社の夏季連休とちょっと合わないこと、値段が高め(E66…

NetBeans 5.5 Beta2

「Jackpotでリファクタリングを超えた新しい開発スタイルへ」 http://sdc.sun.co.jp/java/series/jackpot/index.html を読んで、NetBeansを試そうと、最新版の5.5(beta2)を入れてみました。JavaEE 5、JAX-WS 2.0などに対応しています。日本語化もかなり進…

iTextでのPDF文書操作

PDF文書から指定ページを取り除くことをしたかったので、Javaから利用できるPDF操作ライブラリを探してみた。以前から何回かPDFライブラリを調べていたが、今回は、iTextを使ってみることにした。 入手 http://www.lowagie.com/iText/ コマンドラインツール …

Java SE 6 (Mustang)b92ビルド

7月21日リリースのb92のビルド(Windows版)も下記手順で順調に完了。 http://www.02.246.ne.jp/~torutk/jvm/buildjvm.html b92での更新内容で興味を引くのが GC周りの改善(Concurrent Mark & Sweep, Parallel Old GC) OpenGLパイプライン性能改善 あたりで…

Solaris10でsubversionサーバをデーモン起動

Solaris 10 SMF管理でsubversionをデーモン起動する設定を/lib/svc/method/subversionファイルに記述しました。 コマンド環境でdisable/enableしても問題ないのですが、毎回システム起動後はsubversionが起動せず、保守状態となってしまっています。おそらく…