torutkのブログ

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

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

IPv6 ソケットプログラミング(マルチキャスト)

CentOS 5.1(カーネル 2.6.18-53.el5)にて、IPv6 UDPマルチキャストの受信処理を記述する際、マルチキャストアドレスをbindすると、リンクローカルの場合にエラーとなりました。(Invalid Argument)UDPマルチキャスト受信では、当初アドレスは0でポート番…

watchコマンド

上記記事を見ていたときに知ったwatchコマンド。--intervalで指定した時間ごとにコンソール出力を更新するもので、コンソール環境でコマンド実行結果を定期的に見るのに適しています。コマンド実行結果をフルスクリーンで更新するので、変化したところだけ変…

VMware上でLinux時の時刻ずれ(bootパラメータのdivider)

Windows XP上のVMware上でLinuxをゲストOSとして動かしているときに、Linux 2.6系カーネルではタイマー割り込み(tick)が1000Hzになったことに起因して時刻がずれるという現象があります。VMwareが1000Hzのタイマー割り込みを再現できないことが原因のようで…

JDK 6のアップデート(JDK 6 Update6とUpdate10 Beta)

しばらくC++モードなので、自宅ノートPCにVMwareでLinuxを動かすセットアップをしてEclipse CDTを動かすためのJDKを入れようとしたら、JDK 6のUpdate6がリリースされているのに気付きました。Sunのダウンロードページを見ると、JDK 6 Update10 Betaもダウン…

Eclipseの更新サイトを閉じたLANで使用するには

不幸にも外界から遮断されたネットワーク環境でのソフトウェア開発を余儀なくされるという、開発効率よりも情報保護が優先されるのが昨今の日本の状況です。一方開発ツールはオンライン前提だったりします。Eclipseを閉じたLANで使用し、かつ定期的に更新を…

Subversion(svnserve)が異常に遅い問題の解決(ident)

自宅のLinuxPC上に稼動しているSubversionサーバ(svnserve)が異常に応答が遅い問題がありましたが、そう毎日使うものでもないので放置していました。今日、TortoiseSVNのバージョンアップ(Ver 1.4.8)とEclipseにSubclipseを組み込んで使い勝手を調べたので…

Mercurialで外部diffツールを指定する

バージョン管理ツール Mercurial は、コマンドラインツールとして提供されており、差分の表示もコマンド環境です。特にWindows上ではコマンド環境は貧弱なので、できれば差分表示はGUIの差分ツールを使用したいところです。 設定方法 Mercurialの設定ファイ…

java.util.loggingの記事を見直し更新

2001年に書いた記事サービス提供終了のお知らせ の内容を見直していたら、JDK 1.4 Beta2のAPIでもう存在しないものを使っていたりとかなりひどい内容だったので、見直しをしました。今となってはWeb上には他に詳しい解説をしている記事がたくさんあるので、…

日付時刻の文字列化

今までは、日時を文字列化したいときには、java.text.SimpleDateFormatterを使っていました。しかし、Stringクラスのformatメソッドに日時を文字列化する変換が揃っているので、後者を使う方がコードは簡単になります。 Date today = new Date(); // 2008/03…

Linux GNOME上でJDK 6だとSwingアプリが動かない件の対処

仕事で隣のプロジェクトがLinux上のEclipse(CDT)で開発を行っているので、検証がてら自分のPC(Windows XP)に、VMware上でLinuxを動かし、JDK 6u4を入れてEclipseを動かしてみたら、GTKLookAndFeelのNullPointerExceptionが発生しました。以下のBug IDで登…

18回Jolt賞が昨日発表

昨日、第18回Jolt賞が発表されました。 http://www.joltawards.com/press/030608.htm早速詳しく日記id:thata:20080307で内容を紹介している方もおります。賞を取った"Beautiful Code"は近々オライリーから日本語訳が出版されるそうです。

今年のJolt賞は3/5発表のようです

http://www.joltawards.com/

Javaちょっと調べたメモ(ファイルのMD5、ソケットのinterrupt)

JDK6 Update10 Beta12(AMD64用)をインストールしたらインストーラが途中でエラーとなりました。ダウンロードしたファイルが完全ではないかと疑い、ハッシュ値(MD5)を確認しようと思い、JavaでファイルのMD5ハッシュ値を取る方法を調べました。また、別件…

ACE+TAO 5.6.3とLinuxとEclipse

C++

不本意ながらちょっとC++モード。 ACE+TAO 5.6.3をCentOS 5上にインストール CentOS 5上でACEとビルドツールMPCの確認をしたいが、ソースからビルドするのは手間なので、rpmパッケージを探してみたところ、以下サイトでバイナリおよびソースパッケージを配布…

Java関係ちょっと調べたメモ(mkdirs、IPv4/IPv6 socket)

java.io.File ディレクトリを作成するmkdirおよびmkdirsメソッドがあります。 File path = new File("log/20080214"); path.mkdir(); // (1) path.mkdirs(); // (2) logディレクトリが既に存在していれば、その下に20080214というディレクトリを作成しますが…

IDEの利用でコーディング規約が左右されてしまう

クラスの定義内で、フィールドとメソッドの記述順番を、先にメソッドとして後にフィールドとするスタイルを取っていました。NetBeansのJavaエディタで編集していると、記述途中の構文がエラー扱いとなり、それ以降の記述がすべてエラーとなってしまいます。…

テストパッケージ以下のファイルのコンパイル

NetBeans 6.0.1 nightlyビルド(日本語)で、プロジェクトのテストパッケージ配下に作成したソースは、[構築]メニューの[主プロジェクトを構築]や、プロジェクトツリーでプロジェクトを右クリックして表われるポップアップメニューの[構築]ではコンパイルさ…

NIOパッケージのServerSocketChannelはWindows上ではIPv6をlistenしない

Windows OSでNIOパッケージを使ってTCPサーバを記述したときにIPv6が使えないという問題にあたりました。BugIDにも登録されてますが、解決のめどはないようです。 Bug ID: JDK-6230761 (so) NIO channels with IPv6 on Windows java.io.ServerSocketでTCPサ…

RXTXライブラリのWindowsネイティブライブラリのパスが・・・

Javaのシリアル通信用ライブラリRXTXのバイナリ版rxtx-2.1-7-bins-r2を展開すると、Windows OS用のネイティブ・ライブラリが置かれているディレクトリが rxtx-2.1-7-bins-r2\Windows\i368-mingw32 となっています。「i386」でなく「i368」というのがミソです…

NetBeans 6のDesktop ApplicationでBindingを使うと

NetBeans 6では、プロジェクトの種類でJava Desktop Applicationを選択すると、Swingのほかに、Swing Application Framework(JSR-296)とBeans Binding(JSR-295)の2つの拡張フレームワークを使ったプログラム作成ができます。 Swing Application Framewo…

Windowsでシステムヘッダーファイルのインクルード順番

C++

Windowsでネットワーク周りのプログラムを作っていてたまに直面するのが fd_setの二重定義コンパイルエラーです。とをどちらに先にインクルードしているかで発生したりしなかったりとちょっと厄介な問題です。現象から、より先にをインクルードしないと発生…

Java読書会次回の課題本が決まる

Java読書会BOFでは、来月からの新しい課題図書の投票を行ってまいりましたが、本日締め切りの結果、以下に決まりました。Javaネットワークプログラミングの真髄作者: エズモンド・ピット,岩谷宏出版社/メーカー: ソフトバンク クリエイティブ発売日: 2007/04…

BeansBindingでDate型のプロパティとString型のプロパティを結びつける

NetBeans 6で搭載されたBeansBinding(JSR-295)を使って、Date型のプロパティを画面上のJLabel部品等で表示するString型にバインドする方法を調べてみました。JLabelを選択し右クリック[バインド]→[text]で、textプロパティをバインドでXBeansのDate型プロ…

バウンドプロパティのGUIへの通知

Beansクラスからプロパティの更新をGUI側に通知する場合、AWT EDT(Event Dispatch Thread)でない場合には注意が必要です。以下のクラスを使ってバウンドプロパティを実装すれば、非EDTから通知しようとしたときに、EDTに載せ替えて通知してくれます。 javax…

Beansでプロパティの変更通知失敗コーディング

原因が分かってしまえば他愛もないコーディングミスなのですが、数時間はまってしまいました。 Beansのバウンドプロパティを実装し、プロパティ"level"が更新されたら通知するものです。 class MyBean extends AbstractBean implements Runnable { : public …

JDKのフォントをメイリオに

Windows VistaでJava(Swing)のフォントをClearType効かせることを追求してみました。まずは、日経BP ITProに掲載されている櫻庭氏の記事を参照しました。 「Java SE 6完全攻略」第17回 文字に対するアンチエイリアス | 日経 xTECH(クロステック) 記事に…

JDKのフォントをMeyryoに

Nimbus Look and Feel

Nimubs Look and Feelを使うと、プログラム側で制御している背景色の設定が反映されないものがあります。 だめな例:JTextFieldのbackground、JButtonのbackground いける例:JLabelのbackground XMLベースのSynthを使っているとの話しですが、そのためなの…

NetBeans 6 設定メモ

Windows環境でのNetBeans 6 設定に関するメモです。NetBeansを起動するJavaVMは、JDK 6を使用しています。 起動に関する設定 フォント描画でClearTypeを有効にする ※skrbさんコメントを頂き修正Windowsの設定でClearTypeを有効にしていれば、JDK 6では、デフ…

JComboBoxとenum型は相性がよい

JComboBoxは比較的少数の選択肢から1つを選ぶときに活躍する割と使い出のあるGUI部品ですが、プログラミングは少々面倒なところがあります。JTreeやJListのように本格的なデータ構造を扱うときは、本腰を入れてデータ側を作りますが、JComboBoxは軽いデータ…