私の歴史と今

読んでて恥ずかしくなるのが私の歴史。だけどそのときは今現在のように真面目に書いていた訳でね。そんな私の今を書いていく。

java

xpcomでjava.exeのフルパスを取得する方法

Windows限定になるかも。また、XPで確認したのでVista以降は違うかも。 var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("SysD", Components.interfaces.nsIFile); file.ap…

OCRの負荷テスト

JMeterでOCRサービスの負荷テストを行った。サーバは、さくらVPS512で、Tomcat7。 大体、1ユーザあたり9秒に1回アクセスするから、90秒で10回アクセスする。 ということは、100ユーザのアクセスに耐えるためには、90秒で1000回のアクセスに耐えればイイ。と…

やっとGIF加工とOCRが終わった!

OCRサービスの提供について目処が立ってきた。 さくらVPSに入れたgoogle tesseractがGIFの読み込みでエラーになっていて途方に暮れていた。 GIF用のファンクションが入っていない? make前に設定する必要があった? というところまでは想像してみたが、どう…

Tomcat7をさくらVPSにインストールメモ

cd /tmp/ jdk-6u31-linux-x64-rpm.bin http://download.oracle.com/otn-pub/java/jdk/6u31-b04/jdk-6u31-linux-x64-rpm.bin chmod u+x jdk-6u26-linux-rpm.bin yes | ./jdk-6u26-linux-rpm.bin rm -f sun-javadb-*.rpm jdk-6u26-linux* cd /tmp/ wget -O apa…

iReport 3.7.1がリリース

月曜日にダウンロードしたっていうのに、次の日に3.7.1がリリースされるなんてタイミングが悪い。課長に再インストールしてもらわなくっちゃ。

jXLSはいい感じだ

fisshplateとjXLSとで迷ったけど、jXLSを採用することにした。決め手は、jXLSの次の機能。 複数シートに対応 テンプレートでSQL使用可能 →簡単な帳票ならこの機能だけで終わる テンプレートでPOIオブジェクト使用可能 →可能性が無限大に!? POI3.2に対応 ち…

iReportはExcel向きではない、と思うがどうか。

iReportで、Excelのヘッダー/フッターを設定する方法がわからん。というのは置いておいて、兎に角、不明点も多いが、iReportはExcel向きではない。PDF向けならOK。PDFとExcelの帳票デザインを同じ方法で実現しようとしている点が問題だと思う。Excelで微調…

Excel出力に振り回された一日だった

そもそもPOIを使う予定だったのだけど、行シフトがテンプレートに埋め込まれた計算式を更新してくれないので、あきらめてiReport/JasperReporsに手を出した。でもPOI最新版は機能改善されていたので、また戻ってきた。めまいがする。JasperReportsはJava帳票…

やっぱ工数管理のためには定期画面キャプチャが必要

昨日作ったJavaの定期キャプチャアプリを職場で使ってみたのだけど、非常に便利! 泣けてくる。 私はあとで工数入力することが多く「あの時何やってたっけ・・・」という状態に陥ることがデフォルトだった(基本はその都度入力だけど、いつもそういう訳には…

SAStrutsメモ(1)

しびれを切らしてSAStrutsを身に着けることにしたので、メモメモ。 DIするオブジェクトは変数名によって決まる(変数の型だと思ってた) Strutsではlogic taglibを使用していたが、JSTLのc taglibの方が断然便利。今日はc:forEachタグを使った。ELを使えるよ…

Javaでダウンキャストするとコンパイルエラーになる子クラスがある罠

アクセス修飾子に関すること。親クラス方の参照変数が子クラスのインスタンスを参照している場合、そのメンバへのアクセス可否は、親クラスと子クラスのどちらのアクセス修飾子が判断基準になるか? つまり、下記コードを見て下さい。 Sup sup = new Sub(); …

一週間続いたJava講師が終わった

講師をする前は「何でもこーい」と思っていた。それほど自信はあった。相手は新入社員。問題ない。そう思っていた。 がしかし、正しいことを教えるためには、根拠が必要。書籍を調べ、実記検証し、毎日の睡眠時間は2〜3時間くらいしか確保できなかった。帰…

Javaのインスタンス変数には多態性(多相性)がない罠

Javaには多態性(多相性、ポリモーフィズム)という便利な機能があるが、多態性があるのはインスタンスメソッドのみで、インスタンス変数には多態性はない。 実例として、下記3つのクラスを考えて見ます。Superクラスを親クラスとして、Sub1,Sub2クラスがそ…

クラス初期化子とインスタンス初期化子ってあまり見たことないなあ

来週のJava講習のために「明解Java」を読んでいるんだけど、クラス初期化子とインスタンス初期化子って実務であまり使ったことがない。JDBCドライバのロード時にクラス初期化子が使われているのは知ってるけど、インスタンス初期化子は見たことすらない。 イ…

Google App Engineを利用するまでのメモ(2)

前日のGoogle App Engineを利用するまでのメモ(1)に引き続き、翻訳しながら進めてみる。 Using Eclipse and the Google Plugin for Eclipse If you are using the Eclipse development environment, the easiest way to develop, test and upload App Eng…

Google App Engineを利用するまでのメモ(1)

世間で騒がれているので、便乗してみよう。 登録までは終わったので、アプリ作ってアップロードするまでがんばってみる。利用方法は下記URL(英語)に書いてあるみたい。 http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/introduction.h…

Google App Engineって何だ?

登録だけしてみた。Java対応って、warファイルをデプロイできたりする訳? DBはどうなってるの?JDOって書いてあったけど。今度ゆっくり調べてみよう。企業で使えたら面白いなあ。

Jad使用時の注意点

致命的な警告 すべてのクラスファイルをデコンパイルできる訳ではない。致命的な警告がでているソースのクラスファイルは、正常にデコンパイルできないことがある。そういう場合は標準エラー出力で確認する。例えば、finally句にreturnがある場合の警告。そ…

Javaのデコンパイルツール

って、何があるのかなー。私はJadしか使ってない。しかも記憶ではJDK1.3のクラスファイルまでしか対応してない。いずれ困るなー。システムの保守やってるとJadなしでは仕事にならない。 でもEclipseで同様のプラグインがあったような。よし検索。Jadclipseか…

Javaの配列リテラルは宣言時にしか使えないのか!

知らなかった。下記のコードはOKだと思ってた。 int[] i; i = {1,2,3}; // コンパイルエラー 正しくは無名配列を使う。 int[] i; i = new int[]{1,2,3}; SJC-Pの試験対策で配列の勉強をしていた時、説明に違和感を感じていたんだよなー。多分、このことに気…

Java講師

Java講師を引き受けることになった。4月の下旬5日間。テキストとして「明解Java入門編」を使用するらしく、読んで準備しているのだけど、オブジェクト指向の概念を細かく知っていない/理解していないことがわかってきた。講師をするってことは、1冊の本を書…

JavaとJavaScriptの違い

これまでJavaScriptの言語仕様について勉強してきたので、Javaとの相違点を整理しておきたい。 コンストラクタ これは似ている。 コンストラクタに対してnew演算子を使う点は同じ。Javaの場合は、クラス定義内のコンストラクタを呼び出す。それに対して、Jav…

JAVAFX

javafxcってコマンドがあるから調査してみたら、コンパイル必須なのね。コンパイル不要だと思ってたのに、ショックだー。 起動に時間がかかりすぎるという理由らしいけど、ハード性能が上がってもどうにかならんのかなー。「コンパイルしなおしー」とか、最…

クラスファイルのバージョン

javac -source -targetの動作を調べた。 普通のソースの場合 1.2 1.3 1.4 1.5 1.6 1.2 46.0 47.0 48.0 49.0 50.0 1.3 × 47.0 48.0 49.0 50.0 1.4 × × 48.0 49.0 50.0 1.5 × × × 49.0 50.0 1.6 × × × × 50.0 左がsourceで、上がtarget。 値は、クラスファイル…