 |
 |
 |
 |
 |
 |
点描画とピクセル化との出会い この記事では Paul Reiners が、Java 2D API とセル・オートマトンを使って、画像を思いもかけぬ芸術的なアニメーションにする方法を説明します。その説明のなかでは、Java コードによる画像処理プログラムの実装と、2 次元セル・オートマトンの一種である巡回空間 (cyclic space) について説明します。この記事で説明する概念を応用すると、独自の画像処理によって芸術的な結果を生成するプログラムを Java 技術を使って作成することができます。 |
|
|
|
2008/11/18 |
|
| |
Java EE 技術を使用するための長期的戦略を立てる 技術の変更は当然のことであり、また必要なものですが、変更によって既存のアプリケーションの動作が影響される場合もあります。このような変更の必然性を考えると、Java EE などの仕様の変更に左右される技術に頼るのは危険だと思えるかもしれません。しかし、どの技術を使用するのが適しているかを判断するときに十分な根拠に基づいて技術を選択し、周到な計画を立てることによって、互換性のない変更による影響を最小限に抑えることは可能です。この記事では、読者が根拠に基づいた選択を行えるように情報を提供するとともに、変更による組織への影響を最小限に抑えるための IBM の取り組みについて説明します。 |
|
|
|
2008/05/14 |
|
| |
Javaの理論と実践: Generics のワイルドカードを使いこなす、第 1 回 Java 言語における Generics で最も複雑な部分の 1 つはワイルドカードであり、なかでもワイルドカードのキャプチャーの扱い、そしてワイルドカードのキャプチャーに関するわかりにくいエラー・メッセージは特に厄介です。「Java の理論と実践」シリーズの今回は、ベテランの Java 開発者である Brian Goetz が、javac から出力される奇妙なエラー・メッセージのいくつかを解読し、さらに Generics の使い方を単純化するための手法と回避策をいくつか提供します。 |
|
|
|
2008/05/06 |
|
| |
Jenabean: JavaBeans を RDF に難なくバインドする RDF (Resource Description Framework) は、W3C (World Wide Web Consortium) が提唱する Web 上でのデータのリンクおよび表現に関する標準です。セマンティック Web アプリケーションを開発する Java 開発者は、RDF プロパティーを Java 型に、あるいは Java 型を RDF プロパティーに変換しなければなりません。Jenabean は Jena のセマンティック Web フレームワークの柔軟な RDF/OWL API を使用して JavaBeans を存続させることで、セマンティック Web アプリケーションの作成を Java 開発者にとって簡単かつ馴染みのある作業にします。 |
|
|
|
2008/04/29 |
|
| |
Javaの理論と実践: フォークを活用する、第 2 回 Java 7 で登場する java.util.concurrent パッケージに追加されているものの 1 つが、フォーク/ジョインのスタイルによる並列分割のライブラリーです。このシリーズの第 1 回で著者の Brian Goetz が紹介したのは、さまざまなアルゴリズムを分解し、ハードウェアによる並列処理を効果的に活用するための機構を、フォーク/ジョインで提供する方法です。この第 2 回の記事では ParallelArray クラスについて説明します。ParallelArray クラスを利用すると、メモリー内のデータ構造に対する並列ソートや並列検索の操作を単純化することができます。 |
|
|
|
2008/03/04 |
|
| |
JavaFX Script で作るリッチ・アプリケーション 昨年春にデビューした JavaFX Script は、Java SE (Java Platform, Standard Edition 6) 上で動作し、高度なユーザー・インターフェースを簡単にコーティングできるようにするスクリプト言語です。この記事を読んで、JavaFX スクリプト言語の基本事項を学ぶとともに、サンプル・アプリケーションの作成を通して基本的な UI コンポーネントについて理解してください。 |
|
|
|
2008/01/15 |
|
| |
javax.tools を使って動的アプリケーションを作成する 最近のアプリケーションの多くには、アプリケーションの静的機能を拡張した難解な計算をユーザーが提供できるといった、動的機能が必要になってきていますが、このような目標を達成するとっておきの手段となるのが、Java SE (Java Platfo rm, Standard Edition) 6 に Java ソースのコンパイル用標準 API として追加されたパッケージ、javax.tools です。この記事では、このパッケージに含まれる主要なクラスについて概説します。さらに、これらのクラスを使用してファイルではなく Java String から Java ソースをコンパイルするためのファサードを作成し、このファサードを使って対話型のグラフ描画アプリケーションをビルドする方法を実演します。 |
|
|
|
2007/12/11 |
|
| |
Java の診断を IBM スタイルで、第 1 回: IBM Dump Analyzer for Java の紹介 Java アプリケーションがますます複雑になった今、Java アプリケーションの問題を診断するのは容易なことではありません。場合によっては外部サービス組織との広範な作業も必要になってきます。そんななか、診断を正しい方向に導く指針があれば時間と経費の両面での節約になります。IBM Dump Analyzer for Java は、フォーマット済みシステム・ダンプで基本的な分析を行い、簡潔なレポートを生成して次に取るべき措置を示すツールです。 |
|
|
|
2007/10/02 |
|
| |
Java SE 6 でのパフォーマンスの監視と診断 パフォーマンスに重点を置いた Java SE (Java Platform, Standard Edition) バージョン 6 では、アプリケーションの管理、監視用ツール、そして一般的な問題を診断するためのツールが拡張されています。この記事では Java SE プラットフォームにおける監視および管理の基礎を概説するとともに、それに関連する Java SE 6 での機能強化について詳しく説明します。 |
|
|
|
2007/09/25 |
|
| |
動的言語を動的に呼び出す、第 2 回: 実行時にスクリプトを発見し、実行し、そして変更する Java SE 6 に追加された Java スクリプト API、そして Java SE 5 との後方互換性によって、非常にさまざまな種類のスクリプト言語を、実行中の Java アプリケーションから単純で統一された方法で呼び出すことができます。この 2 回シリーズの記事の『第 1 回』では、この API の基本的な機能を紹介しています。第 2 回では、この API の強力さを、さらに詳しく紹介します。Ruby と Groovy、そして JavaScript で記述された外部スクリプトをプログラムの実行時に実行でき、また変更できることを説明し、それによってアプリケーションを停止して再起動せずにビジネス・ロジックを変更できることを示します。 |
|
|
|
2007/09/11 |
|
| |
動的言語を動的に呼び出す、第 1 回: Java スクリプト API 入門 動的言語を Java アプリケーションで使用するために Java バイトコードにコンパイルする必要はありません。Java コードからは、非常にさまざまな種類のスクリプト言語を、単純で統一された方法で実行時に呼び出すことができます。そのためには、Java SE (Java Platform, Standard Edition 6) に追加され、Java SE 5 と後方互換性がある、スクリプト・パッケージを使います。2 回シリーズの第 1 回である今回は、Java スクリプト API の機能について紹介します。この記事では単純な Hello World アプリケーションを使いながら、Java コードがスクリプト・コードをどのように実行するか、また逆にスクリプトはどのように Java コードを実行するかについて説明します。第 2 回では Java スクリプト API の実力を掘り下げて解説します。 |
|
|
|
2007/09/04 |
|
| |
Java Web サービス: 第 3 回 Axis2 でのデータ・バインディング Apache Axis2 Web サービス・フレームワークは、当初から複数の XML データ・バインディング手法をサポートするように設計されています。現行のリリースで完全にサポートしているのは、XMLBeans および JiBX データ・バインディング、そして Axis2 専用に開発されたカスタム ADB (Axis Data Binding) の手法です。この記事では、Axis2 でこれらの異なるデータ・バインディングを使用する方法を紹介するとともに、アプリケーションに応じてデータ・バインディングを使い分ける理由を説明します。 |
|
|
|
2007/07/26 |
|
| |
JavaOne 2007: Sun が再びクライアントに力を入れ始めています 作成されたコード、討議された言語拡張、そしてダンスするロボットに、大量消費されたビール。どれを取っても今年の JavaOne 開発者のカンファレンスは成功でした。Elliotte Rusty Harold が振り返ってみると、カンファレンス最大のニュースだったのは JavaFX Script を初めとするクライアント・サイドのイニシアチブです。Sun がクライアントに再び力を入れていることが、この先 1 年、Java ベースのリッチ・インターネット・アプリケーション開発でどんな意味を持つのか、この記事で読んでください。 |
|
|
|
2007/06/05 |
|
| |
Javaの理論と実践: Java 5 の言語機能を以前の JDK で使う Java 5 には、Generics や列挙、アノテーション、Autoboxing、そして拡張 for ループなど、いくつかの強力な言語機能が追加されています。しかし多くの職場では相変わらず JDK 1.4 やそれ以前のバージョンが使われており、今後もしばらく、それが続くかもしれません。しかしそうした職場の開発者も、Java 5 以前の JVM へのデプロイを続けながら、こうした強力な言語機能を利用できるのです。今回の「Java の理論と実践」では、久しぶりに戻ってきた Brian Goetz が、そのための方法を解説します。 |
|
|
|
2007/02/27 |
|
| |
2007 年の Java: この 1 年を占う 2007 年は、Sun Microsystems が Java プラットフォームのコントロールをあきらめ、オープンソース・ライセンスの下で Java 開発者コミュニティーに解放した年として歴史に残ろうとしています。この記事では、Java 開発者である Elliotte Rusty Harold が、Java プラットフォームの新しい方向について、スクリプト言語からバグ修正、新しい構文まで、さまざまな面から予測します。 |
|
|
|
2007/02/06 |
|
| |
IBM WebSphere 開発者向け技術ジャーナル: スタンドアロン Java アプリケーションを WebSphere MQ V6.0 で実行する IBM WebSphere MQ V6.0 でメッセージを送受信する J2SE アプリケーションの開発方法を学んでください。この方法で開発するアプリケーションは J2EE の標準 JMS と JNDI API を使用しますが、J2EE アプリケーション・サーバーでのデプロイメントは必要ありません。 |
|
|
|
2006/10/25 |
|
| |
NumberFormat の構文解析問題の解決 Java SE (Standard Edition) API の NumberFormat クラスでは、数値を表す定形式テキストをプログラムで構文解析できます。追加設定なしですぐにローカライズを行える Java SE API は、すべての Java プログラマーにとって便利なツールですが、残念ながら、基礎となる DecimalFormat クラスによって予告もなしに符号やデータを損失する場合があります。この記事では、Joe Sam Shirah がこの問題を説明し、問題を正しく処理するためのコードを紹介します。 |
|
|
|
2006/10/17 |
|
| |
Javaの理論と実践: JMX を使ったアプリのインスツルメンテーション デバッガーやプロファイラーはアプリケーションの動作の実態を教えてくれますが、私たちがこのようなツールを持ち出してくるのは通常、重大な問題が発生したときだけです。モニター・フックをアプリケーションに組み込めば、デバッガーを使用しなくてもプログラムが何を行っているか簡単に理解できるようになります。JMX (Java Management Extensions) が Java SE プラットフォームに統合され、jconsole ビューアーが汎用モニター GUI を提供するようになった今、これまで以上に簡単、効率的に JMX でアプリケーションにウィンドウを組み込めます。 |
|
|
|
2006/09/19 |
|
| |
Java技術、IBMスタイル: モニタリングと問題判別
この記事は、Java技術のIBM実装の最新バージョンで実装されている機能の中の主な3つ、トレース・エンジンとダンプ・エンジン、そしてDTFJツールAPIについて解説します。これらはどれも、Java開発者が問題シナリオの根本原因を判別する上で役立つものです。
|
|
|
|
2006/06/13 |
|
| |
Javaの理論と実践: 割り込み例外の処理 Thread.sleep() やObject.wait() など、JavaTM言語のメソッドの多くは割り込み例外をスローします。これはチェックされる例外なので無視することはできませんが、どう処理すればいいでしょうか。今月の「Javaの理論と実践」では、並行アルゴリズムの専門家であるBrian Goetzが割り込み例外とは何か、なぜスローされるのか、キャッチしたらどうすべきかについて説明します。 |
|
|
|
2006/05/23 |
|
| |
Swingによる動的インターフェース設計 Swing UIツールキットは、常に簡単ではありませんが、イベントまたはユーザー・アクションに応じてユーザー・インターフェースを動的に更新することを可能にします。この記事では、動的に更新するUIを構築するための一般的な方法と、その過程で遭遇する可能性のあるいくつかの落とし穴を解説します。また、正しい手法が何であるかを判断するための原則について解説します。 |
|
|
|
2006/04/25 |
|
| |
境界を越える: Javaモデルを超える型定義戦略 この、『境界を越える』シリーズでは、著者であるBruce Tateが、「今日のJavaプログラマーは、他の手法や言語を学ぶことから多くを得ることができる」という概念を押し進めます。皆さんが書くPython(あるいはRubyやSmalltalk、その他何であれ)コードによって、皆さんのJavaコーディングに対する取り組みも変わる可能性があるのです。 |
|
|
|
2006/03/25 |
|
| |
Javaの理論と実践: 疑似typedefアンチパターン Java 言語にジェネリックスが追加されたことによって、型システムが複雑になり、また多くの場合、変数やメソッド宣言の冗長性が増しています。型に短縮名を定義するための「typedef」機能が用意されていないため、開発者によっては「溺れる者がつかむ藁」としてエクステンションに頼ろうとし、望ましくない結果に終わっているようです。今回の『Javaの理論と実践』では、JavaのエキスパートであるBrian Goetzが、この「アンチパターン(antipattern)」の限界について説明します。 |
|
|
|
2006/02/21 |
|
| |
カブロボ・コンテスト : カブロボコンテストへのご招待・その3 さて、これまでのコラムでは、カブロボコンテストに参加するための基本情報をお伝えしてきました。しかしながら、参加するからにはちゃんと意味のある売買をしなければいけません。というわけで、最終回である今回は、より実践的な、「テクニカル分析」「カブロボの基本戦略」についてお伝えしていきたいと思います。 |
|
|
|
2006/01/25 |
|
| |
カブロボ・コンテスト : カブロボコンテストへのご招待・その2 前回のコラムでは、カブロボコンテストの概要と、サンプルロボットの作り方、および最も簡単なカブロボの作成方法をお伝えしました。今回はカブロボを作る上での基本技術である、情報取得方法、売買注文の方法および、コンテストへのロボットの登録方法についてお伝えしていきます。 |
|
|
|
2006/01/13 |
|
| |
Javaの理論と実践: パフォーマンスに関する都市伝説を再検証する 掲示板やニュースグループでJavaのパフォーマンスに関する話題を見ると、JVMの実際の動作に関して、非常に大きな誤解があるようです。JVMではアロケーションが遅いという、繰り返し伝えられているパフォーマンスの迷信に対して、Brian Goetzが風穴を開けます。 |
|
|
|
2005/09/27 |
|
| |
クラスワーキング・ツールキット: 注釈とコンフィギュレーション・ファイル このコラムでは、Javaの標準プロセスやオープンソース・プロジェクトの多くが、メタデータに対して注釈ベースの手法に切り換えられつつある現実を、開発者としてどう見るべきかについても説明するつもりです。 |
|
|
|
2005/08/02 |
|
| |
クラスワーキング・ツールキット: 古いJVMでJ2SE 5.0の機能を使う この記事では、Retroweaverを扱うための基本を解説します。5.0以前のJDKで動作するように、Retroweaverを使ってJDK 5.0コンパイラーの制限を回避する方法を解説します。 |
|
|
|
2005/07/06 |
|
| |
Java共有クラス この記事では、JVMにおける共有クラスの背景にある概念、また共有クラスがどのように動作するのか、ユーザーはどのようにこの技術を利用できるのかについて説明します。 |
|
|
|
2004/05/08 |
|
| |