2005年 3月 31日 木曜日 |
NeoOffice/J 1.1 Release Candidate English Translation: (Yahoo!) / (Google) Mac用のオフィススイートNeoOffice/JがついにRelease Candidateになりました。
ネイティブアプリケーションとのドラッグ&ドロップなどOpenOffice.org 1.1.4のすべての機能が利用可能になっているとのことです。
国民の休日 English Translation: (Yahoo!) / (Google) 「みどりの日」が、「昭和の日」にかわる見通しだそうです。
http://headlines.yahoo.co.jp/hl?a=20050330-00000100-mai-pol
なんだかんだ言って国民の休日ってしょっちゅうかわりますよね・・・。 春分の日や秋分の日も厳密には官報をみないと正確にはわからないとのことなので、 政府機関のどこかからウェブサービスで国民の休日が取得できるようにしてほしい。 (もうあるのかな・・?) 個人的にはあまりカレンダーを使わないので結構、海の日とか敬老の日に ハッピーマンデーが適用されていたのも直前に知りました。 今日のツール: JalopyとNetBeansでコードを見やすく English Translation: (Yahoo!) / (Google) 先日NetBeans 4.1向けのJalopyプラグインが利用可能になりました。Jalopyは様々なカスタマイズができるコード整形ツールで、BSD Licenseで配布されています。
このJalopyのNetBeansプラグインが先日公開されました。
de-hunsicker-jalopy-plugin-netbeans.nbmをNetBeans 4.1にインストールするだけで使用できるお手軽さ、かなり細かい設定ができるところが魅力です。
たとえばこのようにぐちゃぐちゃのソースコード。 ファイルウインドウから整形したいファイルを選んで「Format」を選ぶか、 フォルダを選んで「Format All」を選ぶとJalopyによる整形を行うことができます。 これでばっちり整形されています。 まだあまり使い込んでいませんが、ホワイトスペースやインデントはもちろんのこと、 メソッドやメンバーのソートができたり、不足しているjavadocの補完をしてくれたりと かなりよくできている印象があります。 簡単に試した程度ですが日本語を含むソースコードでも問題ありませんでした。 この先10年、エンジニアに必要なスキルって? English Translation: (Yahoo!) / (Google) さいきん書店で、大人のための〜〜ドリルとか、□□力をつける。といったような
タイトルの本がたくさんあるなあと思って、
少しずつ立ち読みするもののまだ買ったことはありません(笑)。
ここまで□□力というキーワードが増えてくるとそろそろお腹いっぱいで、どうも流行についていけません。
Edgar H.Scheinによると学習を したいというきっかけは不安感からだそうです。エンジニアのような技術職では不安感を感じることはよくあります。 たとえば、ムーアの法則「24ヶ月で性能が2倍になる」というような業界の流れからめまぐるしさを感じ、 中国やインドから多くの技術者がやってくるというようなニュースを聞くと今後起こりそうな変化に不安を感じます。 そういう背景からか、エンジニアの知り合いはそれ以外の職種の知り合いに比べて「学習」という テーマに対して敏感です。飲み屋での話題もどういうスキルを身につけるべきかとか、 □□力が重要だ、というような話題が多いように感じます。 私もエンジニアの一人としてエンジニアとして生きていくにあたってどういったスキルが重要なのか気になりますが、 5年ごとか10年後を想像したときに、話題に上っている□□力をぜんぶ身につけられているかと考えると とても現実的とは思えません。無理なダイエットが続かないのと同じように、無理な学習も続けられないからです。 10年後のIT業界の姿や、そのときにホットな技術をいまから想像することは私にはできませんが、 もし、Jonathan Schwartzが 言うようにIT業界のコモディティ化が進むのであれば、現在よりももう少し不安感が和らいでいるかもしれません。 ではこの先10年で必要にな□□力は?と考えると、それまでに無理な学習でぼろぼろになってしまわないよう 不安感に打ち勝つ忍耐力なのかもしれませんね :-) 今日のツール: StarSuite 8(Beta)とOpenOffice.org 2.0 (Beta) English Translation: (Yahoo!) / (Google) 先日、StarSuite 8とOpenOffice.org 2.0のベータ版が相次いでリリースされました。
StarSuiteは6.0Betaから使用し始めましたが、ついにここまで来たかというような完成度で
正式リリースが待ち遠しくなってきます。StarSuite 8/OpenOffice.org 2.0の見た目は次の
画面のようにかなりMicrosoft Officeを意識したつくりになっています。
使い勝手も細かい部分で多くの改良が加えられており、オフィススイートとしては成熟の域に 達してきたように感じます。StarSuite 8/OpenOffice 2.0は以前のバージョンと同様にPDFへの エクスポート機能のようにMicrosoft Officeには無い機能もあり、使い始めるとMicrosoft Officeにはもう戻れません! まだまだベータ段階ですが、この快適なオフィス環境をぜひともお試しください。 今日のコーディング: PMDルールに学ぶ、ワンステップ上のコーディング #1 English Translation: (Yahoo!) / (Google) 以前紹介したPMDですが、今回は
PMDで定義されているルールを学びワンステップ上のコーディング能力を身につけましょう。
BooleanInstantiationこのルールは java.lang.Booleanオブジェクトをインスタンス化してはいけないというルールです。 java.lang.BooleanにはTRUE、FALSEそれぞれのインスタンスがあらかじめ作成されているため、 これを使用するほうが効率的であるということに基づくルールです。 ためしに次のようなプログラムで簡単なベンチマークを行いました。
public class A {
private int count;
/** Creates a new instance of A */
public A(int c) {
this.count = c;
}
public void b1() {
Boolean[] b1 = new Boolean[count];
for (int i = 0; i < count; i++) {
b1[i] = new Boolean("true");
}
}
public void b2() {
Boolean[] b2 = new Boolean[count];
for (int i = 0; i < count; i++) {
b2[i] = Boolean.TRUE;
}
}
public static void main(String[] args) {
A a = new A(10000);
a.b1();
a.b2();
}
}
このプログラムをNetBeans Profilerで計測したところ
次のような結果になりました。(NetBeans Profilerについては別の機会に詳しくご紹介いたします)
今日のツール: Sun Java Studio/NetBeans ~テンプレートをマスターする~ English Translation: (Yahoo!) / (Google) Sun Java Studio/NetBeansで開発したプログラムをJava Web Startで配信したいと 思いましたが、知る限り標準ではJNLP記述を作るような機能が無いようです。 しかし、この程度であればテンプレート機能を使えば簡単に実現することができます。 以下にその方法をご紹介します。 準備
テンプレートを追加
テンプレートを使ってJNLPを作成
今日のツール: NeoOffice/J 〜Macにもオフィス環境を〜 English Translation: (Yahoo!) / (Google) Sun社内ではほとんどのドキュメントがStarSuite/OpenOffice.org形式の ファイルで流通しているためこれらのファイルがMacで扱えないのは 個人的に不便に感じていました。 オープンソースのオフィスプロジェクトであるOpenOffice.orgの Mac版のひとつとしてNeoOffice/Jというプロジェクトがあります。 Mac版OpenOffice.orgはX11を必要としたり、日本語入力環境を 整える敷居が高かったりしてなかなか使わなかったのですが、 NeoOffice/JはAquaで動作して日本語も特別な設定なしに使う ことができます。 NeoOffice/Jもバージョン0.1の頃から使用していますが、いまでは OpenOffice.org 1.1.3をベースとした NeoOffice/J 1.1Betaが 出ていて安定性、動作速度も格段に良くなってきました。
今日のツール: NetBeansとPMDでスキルアップ English Translation: (Yahoo!) / (Google) NetBeansはオープンソースのJavaプログラミング環境として、 特に最近バージョン4.0が出てからはかなり使いやすくなってきました。 最近バージョン4.1のBeta版ではEclipseのプロジェクトをインポート することが出来るようになったりと相互運用もますます簡単になってきました。 PMDはオープンソースの 静的ソースコードチェックツールで、最近では開発プロジェクトで使用される ことも多くなってきました。PMDはコーディングに対していろいろなルールを もとにルールに反した部分を指摘してくれます。(ルールの詳細はまた別の機会に 紹介します。) こうしたルールに従いながらプログラミングをすることで、品質の高いコードを 書けるようになるだけでなく、自分自身のスキルも向上することにつながります。 今日はNetBeansにPMDを組み込むことでリアルタイムにコーディングの フィードバックを得る方法をご紹介します。 インストール方法
(クリックで拡大)
今日のAPI: Java Advanced Imaging 〜画像を縮小する〜 English Translation: (Yahoo!) / (Google) Java Advanced Imagingというと最近オープンソース化された話題のAPIです。
Java 2Dよりも対応画像フォーマットが充実していたり、画像に対する専門的な
操作ができるのがこのAPIです。
今日はデジカメでとった写真をWeb素材として使うために縮小(または拡大)するためにJava
Advanced Imagingを使いました。特に今回実現したかったのは、画像の幅や
高さを指定した縮小ではなく、画像の面積に応じた縮小です。面積に応じて変換することで
パノラマ写真やトリミングした写真をサムネイルとして並べたときの印象を合わせることが出来ます。
Java Advanced Imagingの準備
--- プログラム(Resize.java) ----
import java.awt.image.renderable.ParameterBlock;
import java.io.File;
import java.io.IOException;
import javax.media.jai.Interpolation;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
public class Resize {
/**
* 画像のリサイズ。
* @param pixelCount ドット数
* @param inputName 入力ファイル名
* @param outputName 出力ファイル名
* @param imageType 画像フォーマット。たとえば"JPEG"
* @throws IOException 入出力処理時の例外
*/
public static void resize(long pixelCount, String inputName, String outputName, String imageType) throws IOException {
// 画像ファイルの読み込み
FileSeekableStream stream = new FileSeekableStream(inputName);
RenderedOp image1 = JAI.create("stream", stream);
// 画像の縮小
Interpolation interp = Interpolation.getInstance(Interpolation.INTERP_BICUBIC_2);
// 画像面積および縮小比率の計算
int width = image1.getWidth();
int height = image1.getHeight();
long actualPixelCount = width * height;
double scale = Math.sqrt((double)pixelCount / (double)actualPixelCount);
ParameterBlock params = new ParameterBlock();
params.addSource(image1);
params.add((float)scale);
params.add((float)scale);
params.add(0.0F);
params.add(0.0F);
params.add(interp);
// 画像の縮小
RenderedOp image2 = JAI.create("scale", params);
// 画像の書き出し
JAI.create("filestore", image2, outputName, imageType, null);
File inputFile = new File(inputName);
File outputFile = new File(outputName);
// タイムスタンプをそろえる
outputFile.setLastModified(inputFile.lastModified());
}
}
Blogはじめました English Translation: (Yahoo!) / (Google) 昔調べたけど覚えていない、どこかに資料があったけどどこだっけ・・。
というような時に思いだせるように少しずつここにのせていくつもりです。
|
Today's Page Hits: 711 |