NetBeans の main/contrib をビルドするには? その 3 [IC]
NetBeans の main/contrib をビルドするには? その 2 の続き。
ビルドを続けたところ、やっと binary のダウンロードが修了し、Java コードのコンパイルに入った。が、
BUILD FAILED
N:\tmp\main\nbbuild\build.xml:726: The following error occurred while executing this line:
N:\tmp\main\nbbuild\build.xml:721: The following error occurred while executing this line:
N:\tmp\main\nbbuild\build.xml:756: The following error occurred while executing this line:
N:\tmp\main\nbbuild\build.xml:739: The following error occurred while executing this line:
N:\tmp\main\nbbuild\build.xml:721: The following error occurred while executing this line:
N:\tmp\main\nbbuild\build.xml:767: The following error occurred while executing this line:
N:\tmp\main\nbbuild\templates\projectized.xml:65: You are attempting to build NetBeans using JDK 6 (or higher).
This is forbidden as it may lead to accidental usage of JDK 6+ APIs.
Either run Ant with JDK 5, or set nbjdk.home=<JDK 5 home> in N:\tmp\main\nbbuild\user.build.properties
(can be set from IDE by opening a module project's Properties dialog and picking the right Java Platform in Libraries).
You can alternatively set this property in C:\Documents and Settings\administrator\.nbbuild.properties to affect all checkouts on this machine.
If you are sure you want to build with JDK 6+ anyway, use: -Dpermit.jdk6.builds=true
Total time: 57 minutes 33 seconds
N:\tmp\main\nbbuild><a href="http://nbbuild.netbeans.org/ant-quick.html">nbbuild: netbeans.org : nbbuild : Ant : Quick Start</a>
と出力されてビルドが停止した。エラーを見るとどうやら NetBeans は JDK 5 でビルドして欲しいらしい。これは、JDK 6 以降に仕様が変更されたり追加されたりした API による不具合を避けるため。
それでも JDK 6 以降でビルドしたいなら -Dpermit.jdk6.builds=true を使えと書いてある。これはどこに使うのかな?Ant につけて実行したところ、ビルドされるようになった。
でもこれって、FAQ だろうなと思って調べてみると案の定 NetBeans Wiki: DevFaqGeneralWhereIsPlatformHowToBuild を見つけた。そこには次のように書いてある。
If you're using Java 6, you'll need to add an extra property:
ant -Dcluster.config=platform build-platform -Dpermit.jdk6.builds=true
何?-Dcluster.config=platform build-platform も必要?時既に遅し。実行してしまったよ。NetBeans の Full Build はソースコードが多いから時間がかかるんだよ。今更やり直すのもなーということで、-Dcluster.config=platform build-platform は無視して実行中。
NetBeans の main/contrib をビルドするには? その 4 に続く。
水の電気分解による水素の発生とその燃焼による暖房 [NT]
どうでも良い話。
電気ストーブはエアコンに比べると効率が悪い。電気を元に安価な効率の良い暖房器具は作れないものだろうか。
ふと、水を電気分解して水素を発生させ、その水素を燃焼させて暖房に使用したらどうかなと思った。しかし、それはそれで効率が悪そうだとも思った。
せっかくだから計算してみる。
12.夢の「水素エネルギー」開発今どこまで? によると
もっともクリーンな水素生成法はいうまでもなく水の電気分解なのであるが、電力自体のコストが天然ガスの4~5倍もする上に、エネルギー変換効率もよくはなく、アルカリ水電解法でも1N立方メートルの水素を製造するのに約4kWhの電力を消費する。
だそうだ。従って、水を電気分解して得た水素で暖房するためには、水素の燃焼による熱量が 4kWh に相当する熱量以上でなければならない。
発熱量について によると
例えば水素が酸素と化学反応(燃焼)した時に生じる熱量は28600【kcal/kg】(キロカロリー・パー・キログラムと読む。)です。
とのこと。では、水素1N立方メートルの発熱量はどれくらいだろうか。
環境用語集によると
1N立方メートルとは、標準状態(0℃、1気圧)に換算した1立方メートルのガス量を表します。
だそうだ。ということでここでは標準状態に限定して考える。
水素1N立方メートルを質量に直す。 1 mol = 22.4L、1立方メートル = 1000L だから、1立方メートルあたり 44.64 mol。水素分子の分子量は 2 だから 1 mol で 2g。44.64 mol だと 89.28g。水素の熱量は 28600 kcal/kg だったから、水素1立方メートルの発熱量は 2553.408 kcal。
資料 熱計算 日本ヒーター株式会社 によると
1 cal(カロリー)=1.163×10-6 kWh =4.186 Jとある。従って、4kWh の電力量の熱量 = 3439380.911435941530525 cal ≒ 3439.38 kcal。
となり、水を電気分解して水素を発生させ、それを燃焼するよりも電気で電熱線などを用いて熱を得た方が効率が良いということがわかる。
そんなのは熱力学の法則から当たり前だろという声が聞こえないでもないが。
なお、数式による計算は http://keisan.casio.jp/has10/Free.cgi を使うと便利である。
ところで、水素を燃やすと水しか発生しないというのは事実だが、条件によっては窒素酸化物も生じる場合があるそうだ。
仮に、水素をタンクなどで外から運びそれを燃料としてストーブ代わりに使用したとしよう。また、窒素酸化物も発生しなかったとする。しかし、水しか発生しないからといって締め切った部屋で使用し続けることは出来ない。なぜなら、燃焼により酸素を消費するから。
水素を燃やしても炭素が含まれていないから一酸化炭素は生じない。したがって、石油ストーブのときによく聞く一酸化炭素中毒にはならない。しかし、酸素欠乏症にはなり得る。結局、換気が必要になる。
換気をしたくないなら素直にエアコンか電気ストーブか床暖房、または排気を屋外に出すストーブを使いましょう。
NetBeans の main/contrib をビルドするには? その 2 [IC]
NetBeans の main/contrib をビルドするには? の続き。
Mercurial binary packages for Windows and Mac OS X から Windows 版の Mercurial をダウンロードしてインストール。 NetBeans の main/contrib をビルドするには?で示したコマンドをコマンドプロンプトから実行して、リポジトリを取得。
N:\tmp>hg clone http://hg.netbeans.org/main
destination directory: main
requesting all changes
adding changesets
adding manifests
adding file changes
added 114338 changesets with 466180 changes to 103980 files
updating working directory
90338 files updated, 0 files merged, 0 files removed, 0 files unresolved
N:\tmp>cd main
N:\tmp\main>hg clone http://hg.netbeans.org/main/contrib
destination directory: contrib
requesting all changes
adding changesets
adding manifests
adding file changes
added 14765 changesets with 73502 changes to 22611 files
updating working directory
15877 files updated, 0 files merged, 0 files removed, 0 files unresolved
ここまで来るのに 3~4 時間。サーバーが混んでいた模様。他の人の blog をみると数時間はかかっているのでそんなものか。
NetBeans は Apache Ant でビルドできるので、 Apache Ant - Binary Distributions からダウンロード。これは単なる Zip ファイルなのでそのまま展開。nbbuild: netbeans.org : nbbuild : Ant : Quick Start を見ながら環境変数などを設定。%JAVA_HOME% は既に設定済なので省略。
N:\tmp\main>set ANT_HOME=E:\Java\apache-ant-1.7.1
N:\tmp\main>set PATH=%PATH%;%ANT_HOME%\bin
N:\tmp\main>set ANT_OPTS=-Xmx256m
N:\tmp\main>cd N:\tmp\main\nbbuild
N:\tmp\main\nbbuild>ant
するとコマンドプロンプトに色々と表示されるが、しばらくは依存している *.jar のダウンロードが実行される。
[downloadbinaries] Creating N:\tmp\main\antlr\external\antlr-2.7.2.jar
[downloadbinaries] Downloading: http://hg.netbeans.org/binaries/716F9FB05DFA63BFBF025705EFCF5EE9DE898464-antlr-2.7.2.jar
(以下略)
ということで、以降は次の記事で書く。ちなみに、日本語環境向けにビルドする設定はしていない。なぜなら、NetBeans の main/contrib をビルドするには?からずーっと続いてる NetBeans のビルドの意図は「Jetty のプラグインをビルドする」ために行っている。Jetty のプラグインはそもそも日本語化されていないから、日本語環境向けに設定しても無意味だからである。
閑話休題。
長々と書いたが次の blog
- NetBeans 5.0 開発版 (日本語UI付き) をビルドしよう - Masaki Katakai's Weblog
- NetBeans で NetBeans 5.0 をビルドしよう - Masaki Katakai's Weblog
- NetBeans で NetBeans 5.0 をビルドしよう (2) - Masaki Katakai's Weblog
を読むと、NetBeans で nbbuild を開けばビルド出来そうだ。なので行ってみたが必要なライブラリが無いと怒られた。どうも *.jar のダウンロードが行われないような気がする。私の環境の設定の問題かもしれないが調べていない。
NetBeans の main/contrib をビルドするには? その 3 に続く。
秀丸の便利な使い方 [NT]
- 空行の削除
正規表現を有効にして 検索:^\n 置換:(何も入力しない) - 全角空白、半角空白、タブ文字、のいずれかからなる行の削除
正規表現を有効にして 検索:^[ \t]*\n 置換:(何も入力しない) - 全角数字、半角空白、全角空白のいずれか
正規表現を有効にして 検索:^[0-9 ]+ 置換:(何も入力しない) - 全角数字のみ
正規表現を有効にして 検索:^[0-9]+ 置換:(何も入力しない)
NetBeans GUI Editor(Matisse) のバグ [IC]
NetBeans の GUI Editor (Matisse) は優れたエディタであるが、ちょっと困ったバグがある。
コンポーネントを貼り付けるとドラッグ&ドロップすると自動的に位置や大きさが調整される機能がある。この機能を無効に出来ないのだ。ALT キーを押しながらドラッグ&ドロップするとこの機能が無効になったように見えるのだが、キーを離すと結局、調整されてしまう。
すなわち、微妙な位置調整が出来ないのだ。これはどうもバグのようで BTS にも登録されている(#136425)。BTS に現象を説明した動画が添付されているので、これを見ると使いにくいことがよくわかる。 Vote 数は 4 なので、このバグを修正して欲しいという要望は少ないようだ。この不具合は致命的のように見えるのだが、Vote が少ないということは、困っている人が少ないということかもしれない。
Java(Swing) で GUI を 作ることはあまりないのであろう。Java の需要はサーバーと iアプリがやはり高いのだろうか。
しかし、そもそも Java のレイアウト管理は GridBagLayout、FlowLayout、BorderLayout などを用いて作るようになっていて、細かな調整はあまりしなかった気がする。pading や inset を調整すればできるがめんどくさかったような。レイアウトマネージャーを使わずに絶対座標で指定すればどうとでもなるが。
NetBeans の GUI Editor の生成するコードをみると GroupLayout を使って頑張っているようだ。
JavaScript の文法を学ぶには? [NT]
JavaScript の文法を学ぶときに役に立つ Web と書籍。ブックマーク代わり。
書籍としては次の 2 冊がお勧め。どちらも 第5版が良い(ブラウザの進歩が速すぎて古い版は余り役に立たない)。
- 作者: David Flanagan
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/08/14
- メディア: 大型本
閑話休題。
C/C++/Java では目にしないが JavaScript ではお目にかかるクロージャ。下記のの文献ではクロージャについての説明もある。一部を引用する。
クロージャとは、「関数自身が定義された環境を、ローカル変数も含めて持ち運ぶことのできる仕組み (またはそうした関数自体) 」の事をいいます。 JavaScriptクロージャを完全理解!スコープチェインを知る(後編) - page2 - builder by ZDNet Japan
「ローカル変数を参照している関数内関数」 第3回 変数の宣言とスコープ - @IT
クロージャは関数とその関数が作られた環境という 2 つのものが一体となった特殊なオブジェクトです。この環境は、クロージャが作られた時点でスコープ内部にあったあらゆる変数によって構成されています。Working with Closures - MDC
JavScript の関数は、実行するコードと、コードを実行するスコープを組み合わせたものです。コードとスコープが対になったものを、コンピュータサイエンスの分野ではクロージャ(closure)と呼んでいます。 JavaScript 第5版
一言で言えば上記のようになるようだ。誰かに聞かれた場合、適当な例と上記のように答えておけば良さそうだ。
英語検定試験のスケジュール [NT]
英語検定試験の受験費用 という記事を書いたので、もう少し調べて試験日についてもまとめておく。
- TOEIC
公式ページ によると TOEIC 公開テストは最大で年 8 回実施される。受験地によっては 8 回実施されないこともある。例えば、2009 年は、受験地が東京の場合は 8 回実施されるが、足利 は 3 回しか実施されない。テストは 1・3・5・6・7・9・10・11月に実施される。 - TOEIC Speaking and Writing
公式ページ によると TOEIC Speaking and Writing 公開テストは、年24回、土曜または日曜の午前・午後に1回ずつ実施しますとある。1年は52週であるから年24回ということは 2~3週間に 1回試験が行われるとみなせるだろう。 - TOEIC LPI
公式ページ によると TOEIC LPI 公開テストは土曜日または日曜日に東京と大阪で実施される。しかし、必ずしも両方の会場で実施されるとは限らない。例えば、第142回は東京のみ実施される。年に何回実施されるかは、ホームページ上には記載されているのを見つけられなかった。2009 年は 1・3・5 月に実施されることは決まっている。 - TOEFL
公式ページ によると年間30~40回、主に土・日曜日にテスト日が設定される。ただし、他の日も追加される可能性はあるそうだ。また、全会場で全日程のテストが実施されるとは限らない。 - 英検
公式ページ によると年に 3 回実施される。2009年度は 6・10・1 月に実施される。 - IELTS
公式ページ によると受験会場によって異なるが、例えば東京であれば毎月実施されている。またこの試験には、アカデミック・モジュールとジェネラル・トレーニングモジュールの2種類があり、受験日程によってはどちらか一方の試験しか実施されないことがある。
※受験費用に関しては 英語検定試験の受験費用 を参照。
※本記事に記載されている事項は鵜呑みにせず各受験機関のサイトなどで確認して下さい。