2007年12月6日木曜日

第2子 リリース

あまり個人的なことはここに書くつもりはなかったのですが、昨日5日に第2子が生まれました
4日にNetBeans 6.0、5日に我が子と連日のリリースラッシュで大変ですが、勢いに飲まれないようがんばりたいと思います
ということで、日本語化チェック中で〜す

2007年12月4日火曜日

NetBeans IDE 6.0 リリース

スケジュール通り、6.0正式リリースされました
機能の詳細などはコチラ
を参照下さい

で、6.0正式リリースなので、例の如くキャプチャ


続いて、スプラッシュ


RCはあまり扱えないままでしたので、落ち着いたら、早く使い倒したいです

2007年11月22日木曜日

NetBeans IDE 6.0 RC 2 リリース

NetBeans IDE 6.0 RC 2がリリースされました
スケジュールが変更となり、RC3のリリースがなくなりましたので、正式リリース前の最後のリリースとなります
ということで、また飽きもせず…

インストーラーもなんか変わった気がします


アイコンはこんな感じです


つづいて、スプラッシュです


MLのほうもより活発になって、いろいろバグが出てきています
最近、ちょっと時間が取れていませんが、連休はがんばりたいと思います

2007年11月20日火曜日

Mac OS X でNetBeansに日本語パックを適用する

NetBeans JaのMLにて大野さんに教えて頂いたOS X でNetBeansに日本語パックを適用する方法を書きます
(例ではRC1を使用しています)

まずは、NetBeans英語版、および日本語パックをダウンロードします
ダウンロード後、NetBeans英語版をインストールします

ターミナルを起動し、インストール先ディレクトリに移動します
$ cd /Applications/NetBeans/NetBeans\ 6.0\ RC1.app/Contents/Resources/NetBeans/

※1行で記述します

日本語パックのZIPファイルを解凍します
$ sudo unzip -q /tmp/nb60ja_rc1_mac.zip



これで日本語化完了です

GUIでインストールディレクトリにドラッグ&ドロップすると起動しなくなりますので、ご注意下さい
(それでMLに投稿したのですが…)

2007年11月16日金曜日

NetBeans IDE 6.0 RC 1 リリース

NetBeans IDE 6.0 RC 1がリリースされました
これから最終リリースまではリリースラッシュが続きます

ということで、飽きもせずアイコンを…
(Leopardになったので、ほかのアイコンも入ってます)


つづいてスプラッシュです


最終調整になっていますので、がんばってバグ出しです

2007年11月11日日曜日

Leopard 導入しました

Sun Tech Daysでいろんな人がSpacesグリグリやってプレゼンテーションやってたので、年内は様子見という禁を破って買っちゃいましたよ、Leopard
はたけ問題や日本語キーボードを英語キーボードに認識したりと不安定さはありますが、初物にしては結構まともな感じです
Java SE6が入っていないのは不満ですが、早いうちにアップデートが出て頂ければと思います

2007年11月7日水曜日

NetBeans Dayレポート

やはり即日は無理でしたが、この時間帯でご了承下さい

まずはオープニング、大渕さんからはじまります

(ピンぼけはすみません、掲載の了承を頂いていないのでという理由にさせて下さい(安物デジカメが悪いんです))

そのあとサプライズのJames Gosling登場です
登場前に出入り口ですれ違ったのですが、ホントでかかったです
(欧米人として初の中国拳法の最高位「海王」の称号を得た拳法家かと思うぐらいでした)

(これま(ry)

続いて、NetBeans 6.0の新機能等の紹介を片貝さんが説明しました

NB6.0、まだまだ知らない機能が山ほどあるなと痛感させられました
また、こんな感じでのリリーススケジュール(予定)も発表されました


つづいて、BrianとDavidのプレゼンテーションでした


Brianは「既存プロジェクトでのNetBeansの利用について」と「Ruby On Railsの企業利用について」という内容でした
Rubyの回では「initialize」のスペルが書けなくなるというハプニングもありました


Davidは「RIA開発の技術」と「Swing Application FrameworkとBeans Binding」でした
Flickrサンプルプログラムなど大変面白かったです
(今回一番参加したかったセッションでした)

休憩時間中にきしださん、NetBeansの会の小林さんや大野さん、片貝さんという面々でお話しました
すごい贅沢なメンツで緊張しました

その後のSOAは聞けずに、JJUGのクロスコミュニティ・ライトニングトークに参加しました



自分はダメダメでしたが、トリのきしださんにうまくまとめて頂いた形となり、さすがだなと思いました
(写真は(ry)

その後はJJUGクロスコミュニティの打ち上げに参加させて頂きました
著名な方々ばかりとお話できてすごく勉強になりました(やっぱり東京はすごいです)
また片貝さんとは音楽についてなど、Blogではなかなか聞けないお話ができてすごく有意義な時間でした
(Blogでも取り扱って下さい)
2次会にも続けて参加し、憧れの岡崎さんとお話できました
本当に盛りだくさんの1日でした

2007年11月6日火曜日

NetBeans Day

今日はSun Tech Days初日のCommunity Dayです
終日NetBeans Dayに参加します
即日は難しいと思いますが、レポートできるようがんばります

2007年10月23日火曜日

NetBeans IDE 6.0 Beta 2 リリース

NetBeans IDE 6.0 Beta 2がリリースされました
関係各位の皆様、お疲れさまでした
一通りの機能を試せたらと思っています
(モジュール開発ちょっと休止になりますが…)

またもやアイコンです

次にスプラッシュです

みなさん、ぜひお試しください

2007年10月16日火曜日

ロギングについて

NetBeans 6.0の情報、およびNetBeans API Listにもありますが、以前は例外発生時のロギングとして使っていたErrorManagerが非推奨(deprecated)となりました
代わりにJDK のロガーシステムを使用するようになります
実装方法はNetBeans API ListのErrorManagerに詳しくありますが、簡単には下記のようになります
//ErrorManagerを使用した以前の実装
try {
  foo.doSomething();
} catch (IOException e) {
  ErrorManager.getDefault().notify(e);
}
//JDK のロガーシステムを使用した今後の実装
try {
  foo.doSomething();
} catch (IOException e) {
  Logger.getLogger(YourClass.class.getName()).log(Level.CONFIG, "メッセージ", e);
}

すぐに廃止になるわけではありませんが、今後の開発では可能な限り切り替えて使用ください

2007年10月15日月曜日

Progress Barを表示する



プログレスバーを表示する方法です
今回はNetBeans Platform右下部に表示されるプログレスバーについてです
まずはライブラリに「Progress API」を追加して下さい

ProgressHandle handle =
  ProgressHandleFactory.createHandle("Sample Progress Bar");

ProgressHandleFactoryクラスを使い、ProgressHandleクラスを生成します
createHandle()メソッドの第1引数は表示文字列になります
プログレスバーを動作させるには別スレッドの生成が必要になりますので、実際には下記のようになります



RequestProcessor.getDefault().post(new Runnable() {
  public void run() {
    public void run() {
      ProgressHandle handle =
        ProgressHandleFactory.createHandle("Sample Progress Bar");
      try {
        handle.start();
        //以降に実際の処理を記述します
        for(int i = 1; int < 100; i++) {
          Thread.sleep(1000);
        }
      } catch (InterruptedException ex) {
        Exceptions.printStackTrace(ex);
      } finally {
        handle.finish();
      }
    }
  });

RequestProcessorクラスはスレッドを実行するクラスと考えて下さい
今回は特に処理を記述していないので、Threadクラスのsleep()メソッドで一時的にスレッドを停止しています
この処理時間が短いと表示されないように見えますので、その場合は上記のようにsleep()メソッドを使うなどして時間を調整して下さい
また、キャンセル用の「×」ボタンを表示するにはCancellableオブジェクトを引数に割り当てて下さい
実装した箇所のみを抜粋すると以下のようになります

ProgressHandle handle =
  ProgressHandleFactory.createHandle("Sample Progress Bar", public boolean cancel() {
      return true;
});


進捗率を表示することも可能です



方法はProgressHandleクラスのstart()メソッドに総工程数を設定し、次にprogress()メソッドの引数に消化工程数を設定します
上記「×」(キャンセルボタン)と進捗率を表示する実装は下記の通りです

RequestProcessor.getDefault().post(new Runnable() {
  public void run() {
    public void run() {
      ProgressHandle handle =
        ProgressHandleFactory.createHandle("Sample Progress Bar", public boolean cancel() {
      return true;
    }););
      try {
        handle.start();
        //以降に実際の処理を記述します
        Thread.sleep(5000);
      } catch (InterruptedException ex) {
        Exceptions.printStackTrace(ex);
      } finally {
        handle.finish();
      }
    }
  });

上記のようにNetBeansのAPI(Progress API)を追加するだけで簡単にProgress Barが作れます
ぜひお試しください

2007年10月14日日曜日

Library Wrapper Moduleについて(2)

引き続き、Library Wrapper Moduleについてです

先のDigesterですが、ルールの中で自パッケージ内のクラスをルールの中に書いているのにClassNotFoundが発生するということがあります
(DigesterというよりBeanUtilsの部分かと思いますが)
これはNetBeansプラットフォームがClassLoaderを独自に持っていることに起因します
そのため、下記のようにDigester側にClassLoaderを渡してあげる必要があります
Digester digester = new Digester();
digester.setClassLoader(Lookup.getDefault().lookup(ClassLoader.class));

これでClassNotFoundは発生しなくなるかと思います

2007年10月10日水曜日

Library Wrapper Moduleについて(1)



モジュール開発時に外部ライブラリを使うことがあると思います
XMLの設定ファイルを読み込むなんてときにはCommons Digesterを使ったりなどなど…
その際にはLibrary Wrapper Moduleプロジェクトを作成し、モジュールの中に含めます

ライブラリが依存する別ライブラリ(上記Digesterの場合はCommons BeanutilsやCollections、Loggerなど)に関しても別Library Wrapper Moduleとして作成するか、DigesterのLibrary Wrapper Module作成時に一緒にその中に含めるかになります
1つのLibrary Wrapper Moduleに含める場合は問題ないのですが、別々のLibrary Wrapper Moduleとして作成した場合、作成後依存性を持つモジュール(上記例ではDigester Library Wrapper Module)のModule Dependencies項目に依存するLibrary Wrapper Moduleを追加する必要があります(作成するモジュールのModule Dependencies項目に追加しても依存性は解決されません)

モジュール開発時、Library Wrapper Moduleを作成し、importしているが、実行時に"NoClassDefFoundError"が発生する場合は、再度各ライブラリ間の依存関係とModule Dependencies項目を確認してみてください

2007年10月7日日曜日

Projectディレクトリを選択する(JFileChooser)

ちょっとMavenを休んで、Module開発の簡単にメモ

private void ActionPerformed(java.awt.event.ActionEvent evt) {
  // JFileChooserをProject UI APIの
  // ProjrctChooser.projectChooser()メソッドを使用して取得
  JFileChooser chooser = ProjectChooser.projectChooser();
  // システムリンク間の移動を制限
  FileUtil.preventFileChooserSymlinkTraversal(chooser, null);

  // 選択後の処理
  if(JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) {
    File projectLocation =
    FileUtil.normalizeFile(chooser.getSelectedFile());
  }
}

特に説明する必要もないほどのことですが、ProjectChooser.projectChooser()メソッドから取得したJFileChooserは初期表示ディレクトリなどプロジェクト選択のための必要な情報が設定されています
選択前、選択後の処理が入っていないので、実装の際に追加してください

2007年10月3日水曜日

Mac OS XにMaven2をインストール

全然活用できていませんが、Maven2のインストールです

MavenはApache Maven Projectよりダウンロードできます
今回はMaven 2.0.7を使用し、説明したいと思います

ダウンロードしたファイルを解凍後、適当なディレクトリに移動します
$ tar xjvf maven-2.0.7-bin.tar.bz2
$ sudo mv maven-2.0.7 /usr/local

次にPATHを通します
$ vi ~/.bash_profile

追記する内容は下記の通りです
export MAVEN_HOME=/usr/local/maven-2.0.7
export PATH=$MAVEN_HOME/bin:$PATH

変更を反映し、PATHが通っているか確認します
$ source ~/.bash_profile
$ mvn --version
Maven version: 2.0.7
Java version: 1.5.0_07
OS name: "mac os x" version: "10.4.10" arch: "i386"

上記のように表示されれば、インストール完了です
NetBeansとの連携は次回にでも紹介できればと思います

2007年9月18日火曜日

NetBeans IDE 6.0 Beta 1 リリース

NetBeans IDE 6.0 Beta 1がリリースされました
関係各位の皆様、お疲れさまでした
早速、落としてみて、何か発見できたら、フィードバックしたいと思います
先日も掲載しましたが、アイコンはこんな感じになります


つづいて、スプラッシュはこんな感じに…
どちらもbetaと書かれています


glassfish v2もリリースされましたので、そちらも合わせて見れたらと思います

2007年9月16日日曜日

Subversionを使う

OSX(Tiger)とNetBeansでのSubversionの設定について

まずは、OSX用のパッケージを取得します
(むろん、ソースからビルドしても全く問題ありません)
パッケージについてはこのページを参照して下さい
インストール後、ターミナル上で設定を行います
まずは、PATHの設定を行います
$ vi ~/.bash_profile

内容は以下の通りです
export PATH=/usr/local/bin:/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
export LANG=ja_JP.UTF-8

次に設定を反映し、PATHが通ったかを確認します
$ source ~/.bash_profile
$ svn --version
svn, version 1.4.4 (r25188)
compiled Jun 14 2007, 14:23:02

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme

PATHが通っていることが確認できたら、リポジトリを作成します
場所、ディレクトリ名は任意ですが、例では/opt以下に作っています
# mkdir -p /opt/svn/repos
# svnadmin create /opt/svn/repos

設定ファイルを作成します
# vi /opt/svn/repos/conf/svnserve.conf

内容は以下の通りです
[general]
anon-access = none
auth-access = write
password-db = passwd

ユーザーとパスワードの設定ファイルを作成します
# vi /opt/svn/repos/conf/passwd

内容は以下の通りです
(例としてユーザー名:foo、パスワード:barにて作成しています)
[users]
foo = bar

SVNサーバーをデーモンとして起動します
# svnserve -d -r /opt/svn/repos

動作確認ができたら、サービスとして登録します
Tigerからはinetd/xinetdではなく、launchdが使われます
launchdにサービスを登録するにはGUIツールのLingonを使うのが楽なのですが、今回はCUIでの設定方法を書きます
まず、launchdではplistファイルが登録するサービスの設定ファイルとなりますので、まずそれを作成します
# vi /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist

内容は下記の通りです
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.tigris.subversion.svnserve</string>
<key>OnDemand</key>
<true/>
<key>Program</key>
<string>/usr/local/bin/svnserve</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/svnserve</string>
<string>-i</string>
<string>-r</string>
<string>/opt/svn/repos</string>
</array>
<key>ServiceDescription</key>
<string>SVN Version Control System</string>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<array>
<dict>
<key>SockFamily</key>
<string>IPv4</string>
<key>SockServiceName</key>
<string>svnserve</string>
<key>SockType</key>
<string>stream</string>
</dict>
<dict>
<key>SockFamily</key>
<string>IPv6</string>
<key>SockServiceName</key>
<string>svnserve</string>
<key>SockType</key>
<string>stream</string>
</dict>
</array>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>

設定ファイルを保存したら、下記コマンドでサービスを登録し、サービスを起動させます
# launchctl load /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist
# launchctl start org.tigris.subversion.svnserve

NetBeansから接続します
メニューの「Versioning > Subversion > Checkout...」を選択します

Checkoutウィンドウが開くので、先に設定したRepository URL、User、Passwordを設定します

「Next >」ボタンをクリックし、次画面に遷移します
次にcheckout先のフォルダの設定を行います

「Finish」ボタンでcheckoutを開始します

以上が接続までの簡単な設定です
セキュリティも含めた細かい設定は機会があれば書きたいと思います

2007年9月12日水曜日

NbPreferences

NetBeansでの設定値を保存する方法です

5.xまでははSystemOptionクラスを使って設定値を保持していました
6.0より代わりにNbPreferencesを使うよう変更、先のSystemOptionは非推奨(Deprecated)となり、近い将来廃止になると思われます
NbPreferencesで実装されているメソッドは2つ、root()とforModule()です
root()メソッドはroot preference nodeを、forModule()メソッドはuser preference nodeを返します
モジュール開発などではforModule()メソッドを使うのがいいでしょう

NbPreferencesを使っての値の設定は下記のようになります
// 値の設定
NbPreferences.forModule(Hoge.class).put("HOGE_KEY", "HOGE_VALUE");

値の取得は下記のようになります
// 値の取得
String hogeValue = NbPreferences.forModule(Hoge.class).get("HOGE_KEY", "");

その他についてはPreferencesの仕様を参照下さい

2007年9月8日土曜日

アイコンが変わった

機能には何ら関係ないですが、アイコンが変わりました



こちらが旧アイコン


こちらが新アイコン

画面中のフォルダなどのアイコンと統一したのか、角が丸い感じになってます
ちゃくちゃくと6.0リリースが進んでいるようで嬉しい限りです

2007年9月6日木曜日

Mac OS X で NetBeans 6.0 をビルドしてみる

katakaiさん追っかけ記事です
(katakaiさん、すみません)

まずは、何よりDeveloper Toolsをインストールします
Tiger(10.4)ではインストールDVD、またはADC(要ユーザー登録)から入手できます

JDK、CVSなど開発に必要なものは一通りそろいます
親切にantもインストールしてくれるのですが、バージョンが1.6.5とやや古いため、インストールしているNetBeansへPATHを通します
$ export PATH=/Applications/NetBeans\ 6.0\ 200709050000.app/Contents/Resources/NetBeans\ 6.0\ 200709050000/java1/ant/bin:$PATH

ちゃんとパスが通っているか、確認
$ java -version
java version "1.5.0_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-164)
Java HotSpot(TM) Client VM (build 1.5.0_07-87, mixed mode, sharing)

$ ant -version
Apache Ant version 1.7.0 compiled on December 13 2006

あとはkatakaiさんのページとほぼ同じなのですが、記録用にそのまま書きます
CVSROOTを設定します
$ export CVSROOT=:pserver:anoncvs@cvs.netbeans.org:/cvs

.cvsrc を編集してオプションを追加します
$ vi ~/.cvsrc

追加するオプションは以下の通りです
cvs -z3 -q
update -d -P
checkout -P
diff -u
rdiff -u
tag -c

ant のオプションを設定します
$ export ANT_OPTS="-Xmx196m"

ディレクトリを作成して nbbbuld だけチェックアウトします
$ mkdir nbsrc
$ cd nbsrc
$ cvs checkout nbbuild

nbbuild/user.build.properties にオプションを追加します
なお、checkout時にファイルがなければ、作成してください
$ vi nbbuild/user.build.properties

例のエディタの日本語入力問題を見たいので、同じくclusterリストの最後にjavaを指定します
build.compiler=extJavac
javac.compilerargs=-J-Xmx512m
nb.clusters.list=nb.cluster.nb,nb.cluster.platform,nb.cluster.ide,nb.cluster.java

チェックアウトします
$ ant -f nbbuild/build.xml checkout

ビルドします
$ ant -f nbbuild/build.xml

あとは正常にビルドできるのを祈るだけです

2007年9月4日火曜日

NetBeans エディタの日本語入力のバグ解消

長い間、問題にされていつつも、対応が先送りされていた日本語入力のバグについてですが、片貝さんとvstejskalさんのおかげで解消されたようです(片貝さんの解説はこちら)
Mac(Tiger)+ことえりで同様にテストを行ってみました


変換対象がちゃんと反転しています

変換候補も表示されます
残念ながら、片貝さんと同様の動的解析ON/OFFのキャプチャはとれませんでした(やり方が悪いのでしょうが)
片貝さん、Vitaさん、感謝です

Technorati Tags: , ,

2007年9月2日日曜日

Netbeansのバグ報告をする

初投稿でこの内容はどうかと思うけど、重要なことなのでがんばってやってみます
katakaiさんのページIssuezillaIssue Reporting Guidelinesを参考に投稿

英語での報告ですが、katakaiさん曰く、簡単な英語で構わないということなので、中学生レベルの英語力でまず下書きを作成
可能ならキャプチャを用意(投稿後の添付になります)

以下の手順で登録する

  1. ユーザー登録を行い、ログインをします
  2. 既知の課題でないか、Quick links または Query page で検索を行います
  3. 最新のバージョンで課題が再現するか確認します
  4. 適切な対象モジュールの問題を報告します(確かでなければ、ここから報告します)
  5. 使用しているバージョンを選択します
  6. コンポーネントを選択します
  7. プラットフォームOSを選択します
  8. 優先度を選択します(バグ優先度ガイドラインを参照下さい)
  9. summaryとdescriptionを書き、ルールに従います
  10. 誰かが質問するので、それに回答する
summaryを書き忘れやすいので、注意してください(alertメッセージがわかりにくいんですよね)
投稿後、用意していたキャプチャを添付する

今回はモジュール開発にてActionクラス作成Wizardでフォームがつぶれてしまうという課題を投稿しました
何か動きがあれば、報告します

Technorati Tags: ,