タグ

ブックマーク / codezine.jp (53)

  • 自己結合の使い方:CodeZine

    はじめに SQLが提供する結合演算には、その特徴に応じて内部結合、外部結合、クロス結合などさまざまな名前が与えられています。普通、これらの結合の多くは、異なるテーブルまたはビューを対象として行われます。しかし、SQLは結合が同一のテーブルまたはビューに適用されることを禁止していません。同一のテーブルを対象に行う結合を「自己結合(self join)」と呼びます。自己結合は、使いこなせば非常に便利な技術ですが、動作がイメージしにくいため敬遠されがちです。そこで稿では、この自己結合の便利さを例題を通して学び、その動作を分かりやすく解説します。 自己結合を理解することは、実務上のテクニックを身につける以外に、もう一つ利点があります。それは、集合指向(set-oriented)というSQLの重要な特徴を理解できることです。オブジェクト指向言語が世界をオブジェクトとして表現するように、SQLは世界

    uronim1
    uronim1 2006/08/24
  • CactusでWebアプリケーションをテストする:CodeZine

    Cactusの概要とアーキテクチャ CactusはJUnitだけではテストできない、Servlet、JSP、Filterなどをテストするためのテストフレームワークであり、Jakartaプロジェクトによって開発が進められています。Cactusの設定/利用方法の前に、まずは簡単に仕組みについて解説します。Cactusを利用せずにServletをテストするには、次のような手順で行うことが多いでしょう。Webアプリケーションをサーブレットコンテナ(Tomcatなど)にデプロイするクライアントのブラウザから、Webアプリケーションに対してリクエストを送信する指定されたServletが実行され、処理結果(レスポンス)をクライアントに返す処理結果(レスポンス)をブラウザで視認する  この2)、4)のブラウザからリクエストの送信&処理結果(レスポンス)を視認するというところが厄介で、大規模なWebアプリケ

  • CASE式のススメ(前編):CodeZine

    こんなとき、皆さんならどうしますか? 「地方コード」という列を持つビューを定義する、というのも一つの方法です。しかしそれだと、集計に使いたいコード体系の数だけ列を追加しなければなりませんし、動的な変更も困難です。 CASE式を使うと次のような一つのSQLで取出しが可能です。ここでは分かりやすくするために、コードの代わりに県名(pref_name)をGROUP BYのキーに使います。 SELECT SUM(population), CASE pref_name WHEN '徳島県' THEN '四国' WHEN '香川県' THEN '四国' WHEN '愛媛県' THEN '四国' WHEN '高知県' THEN '四国' WHEN '福岡県' THEN '九州' WHEN '佐賀県' THEN '九州' WHEN '長崎県' THEN '九州' ELSE 'その他' E

    uronim1
    uronim1 2006/08/08
  • タスクトレイにアイコンとバルーンを表示する(Java SWT編):CodeZine

    はじめに SWT(Standard Widget Toolkit)は、統合開発環境であるEclipseのGUIの根を担う重要なライブラリで、OS固有のルックアンドフィールを実現しながらもクロスプラットフォームで利用可能であるという優れた特徴を持ちます。 ここではSWTがサポートするようになった、タスクトレイアイコン(Eclipse Platform 3.0でサポート)、バルーンTips(先日リリースされたEclipse Platform 3.2でサポート)の表示方法を紹介します。対象読者 Javaプログラミングに興味のある方。必要な環境J2SE 5.0 Eclipse 3.2Visual Editor 1.2 Visual Editorについて EclipseプラグインであるVisual Editorはそのダウンロードページにも記載されているとおり、必要条件が指定されています。Visua

    uronim1
    uronim1 2006/08/08
    プラグイン開発 SWT
  • プログラミングと開発者のためのCodeZine:Selenium 0.7利用手順書(後編)(Selenium, Webアプリケーション, テスト)

    はじめに ドキュメントは、Webアプリケーション用のテストツールSelenium(セレニウム)を利用するための手順を解説するものです。 前回はSeleniumの機能概要について解説してきました。Seleniumを使用することで、ブラウザ操作を自動化して、Webアプリケーションの試験・検証を効率的に行うことができます。今回は、いよいよテストケースについての解説です。テストケースを実際に記述し、Seleniumでテストを実行してみます。読者対象 プロジェクトの試験担当者を想定しています。対象フェーズ ドキュメントではプロジェクトにおいて、作成したWebアプリケーションに対してブラウザを用いた試験(結合試験・総合試験)を実施するフェーズを対象としています。Webアプリケーションの製造、単体試験フェーズや、外部のアプリケーションに対する試験については対象外です。使用したソフトウェア・環境 Se

  • プログラミングと開発者のためのCodeZine:Eclipse GMFを利用した状態遷移図エディタの作成(Eclipse, GMF, モデリング, ツール)

    はじめに Eclipse 3.2のリリースに合わせて、Eclipse FoundationではEclpse GMF(Graphical Modeling Framework)というツールをリリースします。今回はこのGMFを使ってモデリングツールを作成する方法を紹介します。まだEclipse 3.2、GMF共にリリースされたばかりで実開発ではまだまだ利用されていない現状ではありますが、こんなツールもあるんだなと思っていただければ幸いです。対象読者 MDA(モデル駆動アーキテクチャ)、DSL(ドメイン特化言語)と言ったキーワードに関心のある方をターゲットにしています。また、そういった小難しい概念を知らずともモデリングツールを自作したいといった方にも有益な情報かと思います。必要な環境Eclipse 3.2Eclipse GMF 1.0 Graphical Modeling Framework 「

    uronim1
    uronim1 2006/08/01
    プラグイン開発 GMF
  • プログラミングと開発者のためのCodeZine:SeamでJavaプロジェクト開発を大幅に効率化する(Seam, JBoss, J2EE)

    連載では、Curlを利用したことのないJavaプログラマを対象にCurlを説明します。Javaで作られたサーバーサイドと、クライアントサイドであるCurlとの間で通信を行い、簡単なデータの受け渡しを行うまでの入門的な内容を連載の中で説明します。 Builderパターンは、Template Methodパターンによく似ています。Template Methodパターンとの大きな違いは、その目的がオブジェクトを生成することであり、アルゴリズムを実行することではないという点です。Builderパターンは、役割分担を明確にするだけでなく、インターフェイスと実装の分離を実現する代表的な事例であり、パターンを使用しない場合に起こりうる重複をかなりの程度防ぐことができます。

    uronim1
    uronim1 2006/07/29
  • Javaのクラスローディングを制御する:CodeZine

    連載では、Curlを利用したことのないJavaプログラマを対象にCurlを説明します。Javaで作られたサーバーサイドと、クライアントサイドであるCurlとの間で通信を行い、簡単なデータの受け渡しを行うまでの入門的な内容を連載の中で説明します。 Builderパターンは、Template Methodパターンによく似ています。Template Methodパターンとの大きな違いは、その目的がオブジェクトを生成することであり、アルゴリズムを実行することではないという点です。Builderパターンは、役割分担を明確にするだけでなく、インターフェイスと実装の分離を実現する代表的な事例であり、パターンを使用しない場合に起こりうる重複をかなりの程度防ぐことができます。

    uronim1
    uronim1 2006/07/26
  • Webサービスを利用したEclipseプラグインの作成(Eclipse, プラグイン, Web Services, Google)

    また、今回作成するプラグインはGoogle Web APIsを使用します。『Google SOAP Search API (beta)』にアクセスし、Google Web APIs Developer's Kitのダウンロードと、検索時に必要になるキーコードを取得しておいてください。このGoogle Web APIs Developer's KitにはGoogle Web APIsのライブラリとwsdlファイルが格納されています。作成するプラグインの概要 今回作成するGoogleプラグインの概要はおおむね下の通りです。Eclipseでコーディング中にエディタ上のテキストを選択して、エディタのポップアップメニューからGoogle Web APIsを呼び出し、Google検索をすることができます。検索結果一覧から、ダブルクリックやポップアップメニューでOSのWebブラウザを起動し、選択したサイ

    uronim1
    uronim1 2006/07/20
    プラグイン開発
  • Selenium 0.7利用手順書(前編):CodeZine

    はじめに 稿は、Webアプリケーション用のテストツールSelenium(セレニウム)を利用するための手順を解説するものです。これから2回に分けて、Seleniumの概要および、インストール手順、実際のテストケースの実行について解説していきます(後編はこちら。また、Tipsも公開しました)。 今回は、Seleniumの概要および、Seleniumのダウンロード、インストール手順について解説します。読者対象 プロジェクトの試験担当者を想定しています。対象フェーズ ドキュメントでは、プロジェクトにおいて作成したWebアプリケーションに対して、ブラウザを用いた試験(結合試験・総合試験)を実施するフェーズを対象としています。Webアプリケーションの製造、単体試験フェーズや、外部のアプリケーションに対する試験については対象外です。使用したソフトウェア・環境 Seleniumを動作させるにあたり、以

  • CodeZine:モジュール作成のためのNetBeans API入門 第一回 概要

    はじめに Javaの開発環境と言えばEclipseが主流ですが、最近は徐々にNetBeansの勢いも増しています。NetBeansはサン・マイクロシステムズが主に開発を進めているオープンソースの開発環境です。 Tomcatを含め必要な機能がすべてインストールされるので、Eclipseのようなインストールや設定の煩わしさはありません。また最近ではVMの改善でSwingの速度が向上してきたため、Eclipseと比べても速度の面で遜色はありません。 プラグインが少ないと言われていますが、あらかじめ必要な機能が揃っているので、追加のプラグインがあまり必要ないことも理由のひとつです。ただ、やはり大きい理由はNetBeans 4.1までプラグイン作成用のプロジェクトがなく資料も揃っていなかったために、プラグイン作成の敷居が高かったことでしょう。 NetBeans 5.0からはプラグイン用プロジェクト

  • EclipseユーザのためのNetBeans環境とプラグイン開発入門:CodeZine

    はじめに この記事は、Eclipseのプラグイン開発を行った経験のある人が、NetBeansでも同じようなプラグインを開発しようと思ったときに、一番最初に読んでもらえると良い内容を書いています。 NetBeansのPluginモジュールは、http://platform.netbeans.org/から入手可能です。 お勧めの読み方は、まずは、いろいろとPluginモジュールのサンプルソースコードのチュートリアルが用意されていますので、それらを読み進めていくことです。 しかし、Eclipseに慣れていると、NetBeansとのポリシーの違いから、つまずいてしまう箇所があると思うので、この記事の前半では、お互いのポリシーの違いを、まずはユーザーの立場に立って説明しています。 また、後半は、かなりコアなNetBeansPluginモジュールの開発のトピックについて、ソースコードと共に開発していま

  • CodeZine:JavaCCでスクリプト言語を作成する 第1回 ダウンロードとビルド

    はじめに 少し前まではプログラム言語と言えばJavaC++、VBという感じでしたが、Webの広まりと共にPerlが使われて、PHPが現れ、Rubyが注目されて、JavaScriptが熱をおび、いろいろな言語が活気付いてきました。そして最近は、手続き型以外の関数型言語や論理型言語などにも触手が伸びているようです。 こうなると、次はプログラム言語を実装したりオリジナルのプログラム言語を作ってみたい人も増えてくるかもしれません。そこで稿では、JavaCCを使ってプログラム言語を実装する手順を解説します。対象読者 Javaの基が分かっていてプログラム言語の作成に興味がある方。必要な環境 JavaCCは最新の4.0を利用します。ダウンロードしたファイルを任意のフォルダに展開しておいてください。 今回はJ2SE 5.0をベースにプログラムを記述します。JavaCC自体はJ2SE 5.0に依存する

    uronim1
    uronim1 2006/04/22
  • O/RマッピングをサポートするEclipseプラグイン「CROSSFIRE O/R」:CodeZine

    CROSSFIRE O/Rとは? CROSSFIRE O/Rは、名前の通りO/Rマッピングツールです。しかし、他のO/Rマッピングのフレームワークやツールと何が違うかというと、ソースコード自動生成型であるということです。 O/Rマッピングツールを使ってみたものの、なかなか難しかったり、思うように使えなかったりするケースは非常に多いのではないでしょうか? その点、CROSSFIRE O/Rはユーザーに対して非常にシンプルな構造になっていますので、Java初心者の方でも簡単に使えると筆者は感じています。CROSSFIRE O/Rの特徴 CROSSFIRE O/Rの具体的な特徴は、次のようになっています。SQLベースのシンプルな設計 O/Rマッピングのフレームワークやツールを使うに当たって、そのO/Rマッピングに関連した事項を勉強しなくてはならない場合には、かなり学習コストがかかります。 CRO

  • Apache GeronimoでWebサービス/アプリケーションを稼動させる:CodeZine

    はじめに アプリケーションフレームワーク、データベース、統合開発環境など様々な分野でオープンソースが注目を浴びて久しいですが、アプリケーションサーバの分野でもオープンソースの波は確実に押し寄せています。稿では、Apache発のJ2EE準拠アプリケーションサーバ「Geronimo」を稼動させ、「Apache Axis」を利用したWebサービスとWebアプリケーションをデプロイする方法について説明します。Apache Geronimoとは 「Apache Geronimo」はApache Software Foundationにて開発が行われているオープンソースのアプリケーションサーバです。Sun MicrosystemsのJ2EE互換テストをパスしており、その仕様はJ2EEに準拠しています。オープンソースのアプリケーションサーバには他にも「JBoss」などが挙げられますが、Geronimo

  • OSCacheのキャッシングでWebアプリケーションのパフォーマンスを向上する:CodeZine

    はじめに 多数のクライアントからのリクエストを処理しなければならないWEBシステムでは、パフォーマンスの問題が出てくることが珍しくありません。 パフォーマンスの問題を解決する技術の一つとして「キャッシング」技術があります。これは動的コンテンツの生成結果をメモリにキャッシュ(一定期間保存)し、その間に受けたリクエストに対してはキャッシュの値を返すことにより、生成の処理数を減らすことができるというものです。また静的コンテンツでも、PDFや画像ファイルなど比較的大きいファイルをHDDではなくメモリにキャッシュすることにより、ファイルロードを高速化することができます。 他のパフォーマンスの問題解決方法と比べて大きなメリットは、ビジネスロジックの修正を最小限に抑えることができ、デグレーションを防ぐことができるところです。ただし、キャッシュされている間は古い情報がレスポンスとして渡されることになり、常

  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」:CodeZine

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。rank(p, c)――T[0...p]中のcの出現回数を返すselect(i, c)――(i+1)番目のcの位置を返す  WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。対象読者 C++の利用

  • http://codezine.jp/skillup/article.aspx?aid=295

    uronim1
    uronim1 2006/01/20
  • mavenのプラグインを作成して独自のレポートを追加する:CodeZine

    はじめに ソフトウェアの開発手法は日々進化しており、ビルドツールやバージョン管理ツールなど、便利なものが出てきました。mavenはこれらの便利なツールを統合し、プロジェクト単位で管理できるようにするツールです。前回の記事『Mavenを利用してオールインワンのプロジェクト環境を構築する』では、単体テスト、ドキュメント作成、CVSの操作をmaven上から一貫して行う方法を見ました。稿では、前回扱ったドキュメント作成をカスタマイズし、独自のレポートを追加できるようにします。例えば、プロジェクトの要件定義書を追加したい、データベーステーブルの定義書を載せたいといった場合にはレポートの追加が必要になります。 稿では、前回の記事などにより、ドキュメントの作成方法やmavenの基的な知識、インストール方法、操作方法を知っていることを前提として、話を進めていきます。 mavenに独自のドキュメントを

  • 第1回チャンスをものにできる人、できない人 :CodeZine

    自分のキャリアで迷ったり、煮詰まったり、悩んだりと壁にぶつかっているなと感じたときは、もしかしたら自分の判断基準や価値観を、一度、疑ってみることが必要かもしれない。壁を乗り越えるとは、それまでの自分を乗り越えるということだから。日々の小さな自分レボリューションで明日をつくろう 会社員をしていると、予想外のことが降りかかってくることがある。キャリアに関していえば、異動。「やったぁ!」と喜べることもあれば、「どうして自分が」と希望にそぐわないこともある。両者を比べた場合、「やったぁ!」と思える異動をしたときのほうがモチベーション高く、バリバリ仕事をしていけそうな気がするが、うれしく感じる異動もそうでない異動もその後を決めるのは、腹の括り方なのではないだろうか。 なんとなく仕事にマンネリ感を覚えていたAさんは、ある部署に異動することになった。「今いる部署より面白そうだ」と内心わくわくしながら

    uronim1
    uronim1 2005/12/27