きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

Java

Natural Logarithm

今日はNatural Logarithmを実装した。 これもWikipediaを見ての実装。 実は途中までしか見てなかったので、 まだ改良の余地があるみたい。 また明日直そう。 x ** y = e ** (y * ln(x)) = 10 ** (y * ln(x) / ln(10)) Natural Logarithmより前に編み出した独…

累乗計算のアルゴリズム

昨日ひらめいたー。 javaでついに作れたー。 けっこう極めてきた。 まずWikipediaにもあるアルゴリズムでnが整数のn乗根を実装した。 これで「小数の1/n乗(小数のn乗根)」が出来る。 ここがスタートライン。 XのY乗におけるYを1/nと考えるのが上記のn乗根だ…

JNIって難しい

さいきんこっちの日記を全然書いてなかった。 z/OSでも勉強するかーってところ。 その前にC/C++のコンパイラがあるっていうので、 それが発覚した日からものづくりに取り組んでるわけです。 初めてのC/C++。 しかもz/OS上で。 そんでもって初めてのJNI。 ま…

念願のリモートへのデプロイのやり方を把握した(wsInstallApp)

WebSphereにはいくつかAntタスクが用意されてる。 今回は、com.ibm.websphere.ant.tasks.InstallApplicationの使い方の注意点を書いてみる。 これはJavaDoc通りならば、Antタスク名「wsInstllApp」として使います。 Rational Application Developerとかなら…

リスナーポートとアクティベーションスペックの切り替えに失敗(バイディングのマージにご用心)

アプリケーションを「更新」で置き換えると発生するのだと思う。 ログメッセージには、ibm-ejb-jar-bnd.xmlのの箇所について変だと言ってくる。 resource-refだとかresource-env-refだとか3種類くらいのうちからなんか書けという感じ。 僕は確かにejb-jar.xm…

SQLJの壁を1つ乗り越えた(sqlj.runtime.Scrollable)

sqlj.runtime.Scrollableなイテレータ宣言の仕方。 DB2のマニュアルを信じていたのに、マニュアルではない書き方が必要。 sqljエディターの右クリックのコンテキストメニューより「SQLJアシスト」を使う。 まずこの時点でRational Appilcation Developerでも…

WebSphere7.0.0.7もしくは7.0.0.9にするために周りを説得する材料を用意していくか

僕に解決出来ていない問題が1つある。(もっとあるだろうけど) アプリケーションの再始動等のタイミング(と思われる)に、 メッセージ・エンドポイントがどうのこうのとMDBリスナーに関する活動化の部分で例外が起きることがある。 この事象は一体なん…

ZFileExceptionがNoClassDefFoundError

なんか知らんけど、これまで動いてたと思っていたものが、 サーバー上で全く動いた実績がなかったことが判明した。 半年くらい動いてなかったことに気付いてないことを恥としたい。 (だから言ってるだろう、コメントアウトでやり過ごすなって・・・) NoCla…

SQLJで壁にぶつかった

やりたいこと: sqlj.runtime.Scrollableを使って、ResultSetを作って、absoluteメソッドを叩きたい。 現状: rs.absolute(int)を叩くと例外が出る。 色々やっても全然解決しない。 ログはまずこんな感じで下知を飛ばした。 「TYPE_SCROLL_INSENSITIVEかTYPE…

コンパイラが怪しい

プロジェクト参照では動き、 Jar参照だとClassCastException。 インスタンス変数にList そこにセッターインジェクション。 public void setList(List list) インジェクションはされてるのだが、 リストの中身はHogeではない。 これ自体は今回問題にしてない…

java.io.FileとSecurityException

わさわざ試験をすべきなのか、 そんな気持ちはあるのだけれども、 起こりえる例外ではある。 起こるんだったらやれ的な雰囲気かな。 通常では決して起こらないことは分かっている。まあ、通常ってのは、作ってるもんにもよるので、アプレットとか作ってる人…

z/OSでも動いたPerformance Inspector

Webページ通りでは動かなかったのだが、WebSphere Applicaiton Server v7.0 for z/OSでもPerformance Inspectorは動作しました。 PATHとLIBPATHの通し方が分からなかったが、IBMに質問をしたらすぐに回答がきた。 素晴らしいじゃないか。 自分で設定作業をし…

Performance Inspectorというプロファイリングツールを使ってみた

日本語資料がほとんど見当たらないので、なんか書き残しておこう。 Performance Inspectorの情報は、この2つを把握しておけばいいでしょう。英語だよ。 http://perfinsp.sourceforge.net/ http://www.alphaworks.ibm.com/tech/pi Performance Inspectorはプ…

11月に注文した本をずらっと纏めてた。

全部読める自信は無い。 これ全部読んだらけっこうな勉強になると思うよ。 和書(Java本) プログラミング言語Java 第4版 (The Java Series) Java言語仕様 第3版 (The Java Series) Java仮想マシン仕様 第2版 (The Java series) Effective Java 第2版 (The J…

届いた本、注文した本、そして報告したSunのJavaDoc誤記

届いた本 プログラミング言語Java (The Java Series) 第4版 注文した本 Java並行処理プログラミング その「基盤」と「最新API」を究める Handbook of Floating-Point Arithmetic アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と…

Trac LightningにMavenとHudsonが入ってたので勉強用に入れてみた。

Trac Lightningはこちらから。 http://sourceforge.jp/projects/traclight/ 職場でもTrac + SVNは使っているが、MavenとHudsonは確か入ってません。 エンジニアとしてまだまだ勉強せねばならんことが多いです。 pom.xmlの書き方すら分からない。 Trac Lightn…

コンパイル警告と@SuppressWarningsの対応関係虱潰し!

どんなコードでコンパイル警告となるかは、以下のサイトが良くまとまってた。 http://eclipsewiki.net/eclipse/index.php?%A5%A8%A5%E9%A1%BC%A1%BF%B7%D9%B9%F0 勇気が沸いたらeclipsewikiにコントリビュートしよう。 ここ最近こつこつ調べてみていた内容で…

数字のキャッシュ

以前の日記をもう一度書いているようなもんなんだが…。 先に付加情報を書いておく。 -XX:AutoBoxCacheMax=というVMオプションが効くようだ。 たぶんこれもJava6.0 update 14からなんだろうが、 私が確認した環境はupdate 17です。 これを付けて、オートボク…

TestNG初体験記

職場で、「TestNG」というキーワードが、いまさら!!出てきたので、とりあえず使い心地を確かめてみた。 カバレッジはEclEmmaで取れる。 EclEmmaはJUnitでのカバレッジも、TestNGでのカバレッジも取れる。 わーい、coberturaよりも重宝しそうだよ、このプラ…

Javaプログラマーがjava.math.BigDecimalについて知るべきこと

2012/11/4追記 こっち見てもらった方がいいかも。 Javaプログラマーのためのjava.math.BigDecimalまとめ - きどたかのブログ 2012/11/4追記 終わり ざっくりと羅列してみた。 java.math.BigDecimalは、クラス説明にある通り任意精度のスケールなし整数と、32…

浮動小数点やBigDecimalに関して

意見が噛み合わない。 僕はきっと正しいはずだ。 1d/3dが完璧な値を保持してると寝言を言う人に負けるな自分。 小数点演算において、1÷3は無理数である。 無理数を有限数のbitで表現する術はない。 故に1d/3dは丸まっている。 ちなみに、1dは有理数、3dも有…

半分寝てても怯むことなく質問をするKYなオレ

今日のアレはなんだったんだろうか…。 事前に集めたであろう質問は、誰が質問したのか分からない状態で、 書いたであろう人が何か積極的に発言したことは1つのみ。 他人の質問を咀嚼して、なんかオイラが質問の問答をしてしまっていたような…。 単純に僕がK…

約10万円分の本を注文したよ。

冗談ではなく、己の不勉強を感じたので、がっつり注文してみた。 まあ全部読める気はしないなー、だって読書家じゃないもん。 Domain-Driven Design: Tackling Complexity in the Heart of Software プログラミング言語Java (The Java Series) Effective Jav…

コンパイル警告に過敏に反応してみたら・・・

我が家のソースは1つもコンパイル警告を出さなくなったw これは尋常ではない。 なんかあったら必ずコンパイル警告になる設定だからね。 あとはスペルチェックで間違いと言われてしまう赤い色が嫌だ。 日本人の名前は絶対に赤くなるでしょ…。 と思ったらecl…

Javaプログラマを名乗るなら、eclipseのSourceメニューを使いこなそう

自宅は英語版eclipse使ってるので、日本人向きじゃないかも…。 メニューのSourceから選ぶよりも、Alt + Shift + Sを使うようにしよう。 全然詳しくないから偉いこと言えないんだけどねー。 ●Toggle Comment Ctrl + 7でも出来る。 Ctrl + /でも出来る。 まあ…

クラスロードしてくれるな

前から気になってたことがまた気になり始めた。 WebSphereのデータソースおよびそのJDBCプロバイダで、どうしても変だなと思う事がある。 有効範囲がサーバーで、JDBCプロバイダとして、DB2 のUniversal Driverと、DB2のJCC Driverを定義してます。これらの…

コンパイル警告が嫌い

神経質なのかも知れないが、コンパイル警告が嫌い。 だから、出来るだけ警告されないように書くし、 警告されても揉み消してもいいならもみ消す。 @SuppressWarnings("unused") 未使用変数だったら出る警告。 →正直、要らないコードのケースが多い。「作りか…

後輩に呼び出しを食らった

ももいろスウィーティーの加藤先生似の人の電話経由で、 隣のビルに来いやー、と呼び出し。 えっ?ClassNotFoundException? そんなのそろそろ解決出来るようになってよ。 NullPointerExceptionと同レベルの稚拙な例外クラスだ。 なんて思いながら隣のビルに…

自分+ノートパソコン=?

初めてノートパソコンを買いました。 それは広島から帰ってきた月曜日のお昼のことです。 駅を降りてすぐヨドバシカメラによったのです、 初めはストロボを見てましたが、 知識不足で足がノートパソコンに向きました。 広島に居る間で、友達の披露宴と二次会…

SQLJに関する所感

人と違ったものを使うと余計な壁にぶちあたるものです。 最近SQLJを触っているので試行錯誤を書いてみます。 SQLJで開発するとき、sqlj.zipやdb2jcc.jarが必要になるでしょう。 JDBC4.0対応のものは、sqlj4.zip、db2jcc4.jarでしょう。 ただ、DB2 ExpressC v…

SQLJavaConfiguraitonなんてものを考えてみた

SpringのJavaConfigと似たイメージでとりあえず叩き台を書いてみた。 まあ構想だけで、実装は追いついてない。 iBATISばかり使っていた過去があるので、SQL文の表記方法は似たところがあるのだが、「ユーザー関数(java)を組み込める」という点が大きく違うは…

寝ぼけてたんだろうか、気が付いたらまたコンテナ作ってたorz

どういうこった。思い出してみよう。 家のパソコンで作ろうとしてたんだっけかな。 そしたら家のパソコンがプツゥって電源落ちて、 そこからスイッチオォ〜〜〜ン。 LANケーブルを会社のシンクライアントに指して、 会社に置いてあるPCを1つ踏み台にし…

知らなかった・・・、インナークラスってそういうものなんだ。

コンストラクターインジェクションでこけた。 どうもインナークラスを生成したかったらしい。 なんかクラスを起こすのが面倒だったのでインナークラスを書いて、 インジェクションの設定をしたらしいのだが・・・。 getConstructors()で出力してみたら、コン…

文句があるなら自分で作れ

人に言われたもんを作るのを 仕事にするのって嫌だな。 やっぱり人とやり取りするのが大嫌いだ。 口だけで作れないなら、そいつは偉くない。 論理的に作れると思ってるのと、 実際に作れる奴とでは雲泥の差がある。 結局、センスの問題じゃないかな。 センス…

数字のキャッシュ、続編。

とりあえず実装してみた。 BigIntegerCacheとBigDecimalCache。 Sunのクラスと、ほぼ同じ作りだが、BigDecimalCacheはBigIntegerCacheの依存させている。メソッドは基本的にvalueOfのみ。 キャッシュを考える時、それがヒープを抑えるためのキャッシュか、速…

数字のキャッシュ

Java6 update14からIntegerのキャッシュが調整出来るようになってることに気付いてるかい? いちおう、-128〜127が標準で、システムプロパティで、正の上限を増やせるようになってる。 数値は色々あるので、キャッシュについて軽くまとめてみよう。 Byteは-1…

spring javaconfig読んでるこの頃

インジェクション時の型が合うかどうかをコンパイル時に分かるのは大きく違う。 ただし、parentやrefは、ある意味ref localに限定されてしまってはいないだろうか? 階層を持つApplicationContextの、親で定義した設定をどのように参照すべきかな? extends…

java.sql.BigDecimalなんてないよ?

家のSun JDKは1.6.0_06と結構古いです。 昨年7月の引越しからネット回線引いてないのでそれから更新されてません。 java.sql.ResultSetのソースを見ていたら、 BigDecimal getBigDecimal(int columnIndex,int scale) throws SQLException のJavaDocに誤記を…

svnantの不思議な挙動

svnantが不思議な動きをした。 今回のはIBM JDKは関係するだろうかは分からない。 他の人は僕のより古い (つーか俺が新しいのを勝手に入れてる)ので、 JDKなのか、VMwareなのか切り分けてない。 antはRADに付いてる同じものを使ってる。 事象は簡単で、すぐ…

RADに翻弄される日々

runAntの使い方に苦戦。 buildfile xxx_build.xmlが通らないのは何でだ?? 潔く-buildfileを与えないで、デフォルトのbuild.xmlで行くことにした。 ejbExportやらがタスクが見つからずに動かないわけが分かった。 誰かがハマるといけないので書いておく。 …

build.xmlをごりごり作りすぎてテンヤワンヤ

飽きも来てしまってそろそろ帰ろうかと思う。 svnant-1.2.1、ant-contrib-0.6を使用。 リポジトリにのってるJavaプロジェクトをチェックアウトしてきて、 Jarに固めるだけの代物なんで大したことはやってない。 マニフェストファイルにSVNから取ったRevを埋…

JapaneseImperialCalendarはクズだ。

あんまり使うことの無いものを使ってみた。 とりあえず、明治の開始日が間違ってるからダメダメだよ。 そんで持って、加減算した場合じゃないと元号を正しく扱えないっぽい。 それはどういうことかと言うと、 Locale locale = new Locale("ja", "JP", "JP");…

IBM JDKのBigDecimalはバグってるっぽい。

職場で使ってるRAD7.5.2で使ってるjava -version。 ....\IBM\SDP\jdk\bin>java.exe -version - java version "1.6.0" Java(TM) SE Runtime Environment (build pwi3260sr4-20090219_01(SR4)) IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Windows XP x86-32…

JPAの学習中

こないだSunの研修「Java上でXML」とか言うのを受けてきた。 JAXPネタなんだけど、JAXBを知りたかった。 JAXBはたぶんWebサービスの研修になるんじゃないかな。 今週はEJBの研修を受けている。 いまはJPAを軽く触る程度。 僕はまだOneToManyとかは把握出来て…

RAD7.5とplugin拡張ロケーション

今日はganymedeやRAD7.5と戦っていた。 eclipse3.2で使用するプラグインを 拡張ロケーションに配備するexeがあって、 RAD7.5で出来たらラッキーだなと思ってたら、 不安は的中していくつか動かなかった。 findbugsが動かないのはナシだろ。 Eclipse IDE for …

Strutsのバージョンアップでの性能問題

金曜日の夕方に呼ばれて話を聞いて、 打ち合わせ後に電話するも職場には誰もいなくて土日対応もせず、 先方はかなり忙しくレスポンスも悪く、 知り得ている情報からの解析も頓挫。 たかが1秒未満の話でもなんとかせねばならないのが、 システムエンジニアの…

IOExceptionは解析に困る。

createTempFileで、 指定したパスが見つからないIOExceptionが出たらしく、 僕もいろいろ調べたけど進展なし。 バージョン違うから参考程度だけど、 またopenjdkでcのコードを読んださ。 WinNTFileSystemのとこ。 パスが見つからないというので、 たぶんFile…

AdminServiceでWorkManagerのThreadPoolの情報を取ってみた。

うーむ、いけてない。通常、アプリケーションはJNDI名でWorkManagerをlookupすることになるんだけど、 AdminServiceでWorkManagerを取得するには、 「WebSphere:name=WorkManager.DefaultWorkManager」って感じの書き方が必要になる。 AdminService自体がIBM…

wsadminでWorkManagerのスレッドプール統計を取得

問い合わせを受けたんで、試してみた。 同じことやりたい人がいたら、 参考程度に試してみてください。 ちょっとしか使ったことがないので、 Jythonに全然慣れてないから、 Jaclで勘弁してくださいな。 IBMは確かずいぶん前にJaclを非推奨に格下げしてたはず…

SpringframeworkのOracleLobHandler

OracleのCLOBを使いたいというところがあったので、 ちょっと調べてみた。 OracleLobHandlerに、nativeJdbcExtractorをセットする。 僕らはAPサーバはWebSphereなんで、 WebSphereのコネクションラッパーから、 Oracleのコネクションを取り出すためのクラス…