タグ

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

  • HttpUnitを利用したWeb画面テストの自動化

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    HttpUnitを利用したWeb画面テストの自動化
  • Java開発者のためのYAML入門:XMLやJSONとの違い

    はじめに Ruby、Groovy、Pythonといった動的言語や、Ruby on Railsなどの関連フレームワークの話題が花ざかりの昨今ですが、この記事をお読みくださっているJava開発者の中には、普段の仕事では純粋なJavaしか使わず、今後も当分はその状況が続くという方も多いことでしょう。しかしそれでも、目新しい知識や技術を身に付けたり、自らの開発に役立てたりということは可能なはずです。 この記事では、YAMLというファイル形式について紹介します。YAMLとは「YAML Ain't Markup Language」の略で、Ruby on Railsフレームワークの設定ファイルに採用されたことで広く知られるようになりました。ここでは、YAMLの概要と、XMLやJSONとの違いについて見ていき、その利点と弱点を探っていきます。 スペースによるインデントとJSON風表記 YAMLでは、スペー

    Java開発者のためのYAML入門:XMLやJSONとの違い
  • ドキュメント作成に役立つ「日本語スタイルガイド」の紹介:CodeZine

    はじめに 大量のドキュメントの執筆作業を複数のメンバーで行うとき、各メンバーの文章表現にどうしても差が出ます。特に、直接ユーザーの目にとまるマニュアルなどは、用語、表現を統一することがとても重要です。 大量の翻訳マニュアルを作成するSun、Microsoftでは、翻訳作業の指針とする『日語スタイルガイド』を公開しています。稿では、それぞれの『日語スタイルガイド』関連情報を紹介します(ガイドラインの内容はそれぞれをダウンロードしてご覧ください)。Sunの日語翻訳ガイドライン Sunの翻訳ガイドラインについてまとめたページがあります。Sunの日語翻訳ガイドライン  スタイルガイドをダウンロードできます。スタイルガイドのダウンロード(PDF形式)  スタイルガイドは100ページにおよびますが、4ページにまとめたクイックリファレンスを、翻訳プロジェクトのReiko Saitoさんのブログ

  • 【YAPC::Asia 2008】モバゲータウンのフレームワーク「MobaSiF」公開:CodeZine

    Perlカンファレンス「YAPC::Asia」2日目は、「Introduction "MobaSiF"(Mobile Simple Framework)」と題されたセッションが行われ、株式会社DeNAの能登信晴氏、川崎修平氏が壇上にあがり、同社で使われているモバイルサイト向けフレームワーク「MobaSiF」を公開するとともに、その概要が解説された。 能登氏はまず、MobaSiFの特徴について「薄くてシンプルで非常に軽い。中身を見てもらえればわかるが、すぐに理解できるのでは」と、文字通りシンプルなフレームワークであると説明した。一方で「2004年よりモバオクで使われはじめて以来、ポケットアフィリエイトやモバゲータウンなど大規模サイトで運用されてきた」と、MobaSiFが実績を持っているフレームワークであることも強調した。 MobaSiFは、主に「3キャリア対応絵文字変換」「端末ID、キャリ

  • Swing再入門 マウスで選択可能なマルチフォントテキストの描画:CodeZine

    はじめに Swingという新しいコンポーネントがJavaに導入された際、同時にグラフィック・コンテキストも刷新されました。「Graphics2D」です。現在、多くの描画用メソッドで使われているGraphicsインスタンスが実はGraphics2Dであることは、Swingをかじっていればご存知でしょう。 今回は、このGraphics2Dのテクニックについて取り上げてみます。需要がありそうで意外と使われていない、「マルチフォント・テキストの描画」です。JavaのGraphicsによる描画では、マルチフォントによるテキスト描画が結構面倒です。結局、setFontをしながら、1つ1つのStringを描画してごまかしている人も多いのではないでしょうか。 テキストの描画というのは、意外に奥が深いものです。きちんと行おうとするとさまざまなところで壁にぶつかります。今回は、さまざまなテキストの描画について

  • データが1件の時だけ、JavaScriptの必須チェックが誤動作する:CodeZine

    上の画面は、ワークフロー機能でよくある承認画面です。チェックボックスで選択したデータは、[承認]ボタンをクリックすることで、状態を「承認待ち」から「承認済み」へ変更できます。入力チェックとして、「選択0件で承認ボタンをクリックしたときはエラー表示」という処理をJavaScriptで実装しています。 ところが、データが1件の時だけ、「選択しているのに『1件も選択されていません』というエラーが出る」というバグが発生しました。バグコード 入力チェックのコードは、次のようになっていました。 function check() { var sentakuChk = document.form1.sentakuChk; for (var i=0; i<sentakuChk.length; i++) { if (sentakuChk[i].checked) { return true; } }

  • ServerSocketを利用した簡易HTTPサーバーの自作:CodeZine

    はじめに 今回から数回に渡ってJavaを利用した簡単なHTTPサーバーの作り方を解説します。第1回目に当たる記事では、java.net.ServerSocketの使い方について説明します。 対象読者 記事は、Javaプログラミングの初級者から中級者を対象に、ネットワークプログラミングの基礎を解説します。また、記事の読者は、ソケットプログラミングの基礎的な用語(ソケット、ポート、アドレスなど)についての知識を持っていることを前提しています。 必要な環境 記事のソースをビルド/実行するには、J2SE 1.4 以上を利用してください。ソースファイルアーカイブは、直接NetBeans 4.1のプロジェクトとして開けるように構成してありますが、NetBeans 4.1を利用しなくてもコマンドラインからJDKおよびAntを利用してビルドできるようになっています。 なお、ソースファイ

  • 【YAPC::Asia 2008こぼれ話】携帯電話向けサービス開発にもオープンソースの波?:CodeZine

    5月15日から16日にかけて開催されたPerlのカンファレンス「YAPC::Asia 2008」では、ラリー・ウォール氏によるPerl 6での文法拡張に関する基調講演(基調講演としてはやや難度が高かったような気もしないではないが)から、Yappo氏によるおなじみのミサイルランチャー発射まで硬軟取り混ぜたさまざまなセッションが行われたが、今回のちょっとした新しい傾向として、モバイル開発に関連したセッションがいくつか集中して行われたことがある。 16日午前中には「OpenSource TypePad Mobile」と題されたセッションで、シックス・アパート株式会社が15日に公開した携帯電話向けコンテンツ表示モジュール「TypeCast」の詳細が紹介された。TypeCastは、ブログホスティングサービス「TypePad」のモバイル向けの表示処理(管理画面は含まれない)を行うモジュールで、各携帯

  • Webサービスの企画と開発~全自動百科事典『オートペディア(Auto☆pedia)』の場合:CodeZine

    はじめに 筆者は、ここ数ヶ月で「全自動4コマ」「全自動似顔絵」「全自動百科辞典『オートペディア(Auto☆pedia)』(以下、オートペディア)」といったライトユーザー層向けWebサービスを開発、リリースしてきました。ネットでの評判は上々で、中でもジョーク系Webサービスである「オートペディア」は特に好評を博し、最初にリリースした「全自動4コマ」を上回るアクセス数を得ることができました。 これに伴い、Webサービス自体についての問い合わせや質問を受けることも多くなってきたため、今回は同じようなジョーク系Webサービスを作る人の参考になるよう、Webサービスの企画・開発について触れてみたいと思います。 記事では特に「オートペディア」を題材にして、その企画で筆者が何を考え、どのような意図の下に開発を行ったかを紹介します。今回は「プログラミング」ではなく「企画」としてのジョーク系Webサービス

  • ブラウザごとのeventオブジェクトの違いを理解する:CodeZine

    はじめに ブラウザの種類やバージョン、おのおのブラウザ独自の実装の違いを考慮し、同じように動作するスクリプトを「クロスブラウザスクリプト」と言います。この連載では、クロスブラウザスクリプトを実現する方法について順を追って解説してきています。 クロスブラウザスクリプトを実現するためには、様々な方法があります。これまでの連載では、ブラウザの種類やバージョンを判断し、そのブラウザがサポートしているスクリプトを実行する方法を解説してきました。また、それ以外の方法として、実行するスクリプトをブラウザがサポートしているかどうか調べ、それに合わせて用意したスクリプトを実行する方法なども説明してきました。実際にクロスブラウザスクリプトを作成する時には、それらの方法を単独あるいは組み合わせて作っていくことになります。 来のJavaScriptの理想的な姿としては、JavaScriptをサポートしたブラウザ

  • 高可用性データ同期アーキテクチャ:CodeZine

    データベースのミラーリング 最近の傾向として、企業はデータや関連するアプリケーションが常に利用可能であることを求めるようになっています。それゆえ、企業のデータベース管理システムを24時間常に稼動させ、オンラインに保つことの重要性は増しています。データベースのミラーリングは、データベース管理システムの可用性と災害復旧性を高める技術であり、データとデータ同期を常時利用できるようにします。 データベースのミラーリングシステムは、それぞれ別のコンピュータ上で実行される2つあるいは3つのデータベースサーバから成り、これらのサーバの連携によってデータベースのコピーを保持します。データベースのミラーリングは、プライマリサーバ、ミラーサーバ、監視サーバという3種類のサーバによって行われます。プライマリサーバとミラーサーバはそれぞれがデータベースファイルのコピーを保持します。監視サーバはデータベースのコピー

  • 「Google Collections Library」でJavaのコレクションを補完する:CodeZine

    はじめに 何年も前のことですが、私が初めてJavaに興味を覚えた理由の1つは、Javaプラットフォームに標準でコレクションライブラリが組み込まれていたからでした。当時、C++の世界ではまだSTL(Standard Template Library)が定着しておらず、開発者たちは適当なコレクションライブラリを購入して利用するか(Rogue Waveが流行っていました)、自分の手でライブラリを書くしかありませんでした。正確な数は忘れましたが、私自身も、さまざまな目的でさまざまな種類のプリミティブやオブジェクトの連結リストを実装しました。さらに、もっと複雑なコレクションや平衡2分探索木、ハッシュテーブルなども自分で実装しました。そのようにしてソフトウェア工学の原理を絶えず意識することは決して無駄なことでありませんでしたが、生産性を考えるとそうとばかりも言えませんでした。 しかし、Javaによって

  • Excelマクロによる、seleniumテストケースの自動生成(1):CodeZine

    はじめに seleniumについての基的な内容は、以下を参照してください。 Selenium 0.7利用手順書(前編) Selenium 0.7利用手順書(後編) seleniumを利用するメリットとデメリット メリット seleniumを利用する最大のメリットは、「再テスト」が容易になることです。 不具合発生時 テスト担当者と修正担当者の伝達が容易 再テストが容易 仕様変更後 リグレッション(デグレード確認)テストが容易 筆者が特にメリットを感じるのは、テスト担当者と修正担当者の伝達が容易になる点です。テスト期間中は、テスト担当者も修正担当者も作業に追われています。通常、不具合発生時は、テスト実施担当者から修正担当者へ不具合内容を伝達するために、不具合管理ツールなどに、ケース番号や再現手順の詳細を記述、デバッグログの添付などを行い、修正担当者はそれを読み解く必要

  • 汎用XSLTプリプロセッサ「XmlTransform」:CodeZine

    はじめに この記事では、汎用のXMLトランスフォーマ/バリデータであるXmlTransformについて解説します。XmlTransformは、変換対象のファイルがどのような深さのディレクトリツリーに格納されていても問題なく機能します。出力時には複数レベルの索引を生成でき、必要に応じてナビゲーションリンクを追加することも可能です。 XmlTransformの検証機能はかなりシンプルにできていて、変換に使用したXMLファイル一式が妥当かどうかを指定のXMLスキーマに従って検証します。入力ファイルと(変換後の)出力ファイルの両方、あるいはどちらか一方を検証するよう選択できます。 より興味深いのは変換機能の方です。変換エンジンはよくプリプロセッサとして使用され、Webページを制作するときに大いに役立ちます。プリプロセッサとHTML 最新の技法を取り入れた整形式のHTMLは、XMLの名前を真似てXH

  • Railsの実践:NetBeansによる開発とLinuxへのデプロイ:CodeZine

    はじめに Rubyは簡潔な言語であり、この点は開発において重要な意味を持ちます。つまり、コード行が少なくなれば、開発にかかる時間やメンテナンスの費用が減少するということです。RailsRubyベースのWebアプリケーションフレームワークで、ほとんどの開発者にとって扱いやすいフレームワークですが、大規模なWebアプリケーションをデプロイする際にスケーリングの制限に直面することがあります。Railsアプリケーションを多数のサーバーに拡張して何千ものユーザーを同時に処理しようとすると確かに問題にぶつかる可能性がありますが、中小規模のRailsアプリケーションならば、適切なツールとテクニックを駆使すれば効果的にデプロイできます。 この記事では、そのための具体的な方法を説明します。以降では、私のお気に入りのRubyおよびRails開発IDEであるNetBeans 6.0と、オープンソースのサーバー

  • I18Nv2による日時と通貨・数値の表記国際化:CodeZine

    はじめに ネットサーフィンをしていると、海外のサイトにも関わらず、ページが日語で表示されることがあります。そのサイトが日語のページしか持っていないということは多分ありません。閲覧者が日人だと推測して、日語のページを返しているのです。 静的なWebページの場合には、日語のページと英語のページといった具合に、対応したい言語ごとに別々のページを用意して、何らかの方法で表示するページを切り替えます。 動的なページの場合に同じ方法を採るのは現実的ではありません。日語のWebアプリケーション(以下、Webアプリ)と、英語のWebアプリを別々に開発するのはとても面倒です。そこで、ロケール(言語や地域)に依存する部分だけを置き換えられるようにWebアプリを開発することになります。このことをWebアプリの「国際化」と言います。英語ではinternationalizationですが、長いのでI18

  • Javaでレゴロボットを動かしてみよう! 1-おためし編:CodeZine

    はじめに 皆さん、こんにちは! 突然ですが、組込み機器におけるソフトウェア開発(以下、組込みソフト開発)には、どんな開発言語を使用していると思いますか? そうです、一番多いのがC言語です。その他、C++やアセンブリ言語なども使用されています。 ところで、Javaでも組込みソフトの開発ができることをご存知でしょうか? Javaを搭載したデジタル機器・家電製品には、コピーやFAXなどの複合機、携帯電話、カーナビなどがあります。Javaの開発と言うとWebアプリケーションが多いですが、組込みソフトはどのように開発していくのでしょうか……。 ここではレゴロボット「教育用レゴ マインドストームRCX」を使って、組込みソフト開発の入り口を一緒に体験してみましょう!レゴロボットについて 今回はこのレゴロボットを使用します。 RCXには8ビットのマイコンが内蔵されています。メモリは16KbyteのROMと

    itengineer
    itengineer 2008/03/21
    おもしろそう!!
  • 突然ですがクイズです!-その2:CodeZine

    はじめに 前回のクイズには挑戦していただけましたか? コンピュータに向かわずにコードについて考える訓練は、プログラミングのための思考能力を高めるのにも役立ちます。さあ、今回も、Delphi、C++Java、C#、PHPRubyの6言語を取り上げ、同じような動作を記述していながら、結果が異なるケースを紹介し、言語ごとの挙動の違いを考察していきましょう。前回の記事突然ですがクイズです!-その1 最初のクイズ(割り算)問題 最初のクイズは割り算に関するものです。6つの言語を使って、きれいに割り切れない割り算「2007÷11÷21」を試してみました。しかし、1つだけ出力結果が違うものがあります。それは、どの言語でしょうか?

    itengineer
    itengineer 2008/03/21
    おもしろい
  • Java入門 (6) - テキストファイルアクセスと例外処理:CodeZine

    はじめに ある程度の規模のプログラムを作るようになると、「データの保管」について考えるようになります。必要なデータや演算した結果などのデータをファイルに保存したり読み込んだりできるようになれば、応用の範囲もぐっと広がります。まずは基である「テキストファイルのアクセス」から、その基的な使い方を説明していきましょう。対象読者Javaに興味はある、けれどプログラミング経験がない、という人。Javaに興味はある、けれど何から手をつければいいかわからない、という人。Javaに興味はない、でも何でもいいからプログラミングをしたい、という人。 これまでの記事Java入門 (1) - まずはここから始めようJava入門 (2) - 値と制御構文Java入門 (3) - クラスとインスタンスJava入門 (4) - Swingを使ったGUIプログラミングJava入門 (5) - Swingにおけるイベン

    itengineer
    itengineer 2008/03/19
    基礎大事。基礎大事。
  • XMLデータストリームの検証を動的プロセスにする:CodeZine

    はじめに XML Schemaのもともとの目的は、XMLの検証および定義をDTD(文書型定義)よりも優れた方法で行うためのレイヤを提供することでしたが、その根にあったいくつかの概念はいつのまにか変化しました。そうした概念の1つが、「属性は列挙(リスト)に設定できるが、その列挙はスキーマ自体の中に指定する必要がある」というものです。XMLが分散化するに従って、また、データ構造が複雑化して静的な定義だけでなく動的な定義にも依存するようになるに従って、開発者たちは、そうした動的な定義を自分自身でサポートするスキーマ言語を使う必要があると認識するようになりました。 ISO SchematronはXPath 2.0(特にdoc()やunparsed-text()のような関数)を利用できるようになったため、ビジネスコンテンツのためのクリティカルな「分散検証」言語であると考えていいかもしれません。Sc