CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
![HttpUnitを利用したWeb画面テストの自動化](https://cdn-ak-scissors.b.st-hatena.com/image/square/25166c03fc32d05cf2ba5c3f89dc70d052cf89b6/height=288;version=1;width=512/https%3A%2F%2Fcodezine.jp%2Fstatic%2Fimages%2Farticle%2F618%2F618_arena.png)
はじめに Ruby、Groovy、Pythonといった動的言語や、Ruby on Railsなどの関連フレームワークの話題が花ざかりの昨今ですが、この記事をお読みくださっているJava開発者の中には、普段の仕事では純粋なJavaしか使わず、今後も当分はその状況が続くという方も多いことでしょう。しかしそれでも、目新しい知識や技術を身に付けたり、自らの開発に役立てたりということは可能なはずです。 この記事では、YAMLというファイル形式について紹介します。YAMLとは「YAML Ain't Markup Language」の略で、Ruby on Railsフレームワークの設定ファイルに採用されたことで広く知られるようになりました。ここでは、YAMLの概要と、XMLやJSONとの違いについて見ていき、その利点と弱点を探っていきます。 スペースによるインデントとJSON風表記 YAMLでは、スペー
はじめに 大量のドキュメントの執筆作業を複数のメンバーで行うとき、各メンバーの文章表現にどうしても差が出ます。特に、直接ユーザーの目にとまるマニュアルなどは、用語、表現を統一することがとても重要です。 大量の翻訳マニュアルを作成するSun、Microsoftでは、翻訳作業の指針とする『日本語スタイルガイド』を公開しています。本稿では、それぞれの『日本語スタイルガイド』関連情報を紹介します(ガイドラインの内容はそれぞれをダウンロードしてご覧ください)。Sunの日本語翻訳ガイドライン Sunの翻訳ガイドラインについてまとめたページがあります。Sunの日本語翻訳ガイドライン スタイルガイドをダウンロードできます。スタイルガイドのダウンロード(PDF形式) スタイルガイドは100ページにおよびますが、4ページにまとめたクイックリファレンスを、翻訳プロジェクトのReiko Saitoさんのブログ
Perlカンファレンス「YAPC::Asia」2日目は、「Introduction "MobaSiF"(Mobile Simple Framework)」と題されたセッションが行われ、株式会社DeNAの能登信晴氏、川崎修平氏が壇上にあがり、同社で使われているモバイルサイト向けフレームワーク「MobaSiF」を公開するとともに、その概要が解説された。 能登氏はまず、MobaSiFの特徴について「薄くてシンプルで非常に軽い。中身を見てもらえればわかるが、すぐに理解できるのでは」と、文字通りシンプルなフレームワークであると説明した。一方で「2004年よりモバオクで使われはじめて以来、ポケットアフィリエイトやモバゲータウンなど大規模サイトで運用されてきた」と、MobaSiFが実績を持っているフレームワークであることも強調した。 MobaSiFは、主に「3キャリア対応絵文字変換」「端末ID、キャリ
はじめに Swingという新しいコンポーネントがJavaに導入された際、同時にグラフィック・コンテキストも刷新されました。「Graphics2D」です。現在、多くの描画用メソッドで使われているGraphicsインスタンスが実はGraphics2Dであることは、Swingをかじっていればご存知でしょう。 今回は、このGraphics2Dのテクニックについて取り上げてみます。需要がありそうで意外と使われていない、「マルチフォント・テキストの描画」です。JavaのGraphicsによる描画では、マルチフォントによるテキスト描画が結構面倒です。結局、setFontをしながら、1つ1つのStringを描画してごまかしている人も多いのではないでしょうか。 テキストの描画というのは、意外に奥が深いものです。きちんと行おうとするとさまざまなところで壁にぶつかります。今回は、さまざまなテキストの描画について
上の画面は、ワークフロー機能でよくある承認画面です。チェックボックスで選択したデータは、[承認]ボタンをクリックすることで、状態を「承認待ち」から「承認済み」へ変更できます。入力チェックとして、「選択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; } }
はじめに 今回から数回に渡ってJavaを利用した簡単なHTTPサーバーの作り方を解説します。第1回目に当たる本記事では、java.net.ServerSocketの使い方について説明します。 対象読者 本記事は、Javaプログラミングの初級者から中級者を対象に、ネットワークプログラミングの基礎を解説します。また、本記事の読者は、ソケットプログラミングの基礎的な用語(ソケット、ポート、アドレスなど)についての知識を持っていることを前提しています。 必要な環境 本記事のソースをビルド/実行するには、J2SE 1.4 以上を利用してください。ソースファイルアーカイブは、直接NetBeans 4.1のプロジェクトとして開けるように構成してありますが、NetBeans 4.1を利用しなくてもコマンドラインからJDKおよびAntを利用してビルドできるようになっています。 なお、ソースファイ
5月15日から16日にかけて開催されたPerlのカンファレンス「YAPC::Asia 2008」では、ラリー・ウォール氏によるPerl 6での文法拡張に関する基調講演(基調講演としてはやや難度が高かったような気もしないではないが)から、Yappo氏によるおなじみのミサイルランチャー発射まで硬軟取り混ぜたさまざまなセッションが行われたが、今回のちょっとした新しい傾向として、モバイル開発に関連したセッションがいくつか集中して行われたことがある。 16日午前中には「OpenSource TypePad Mobile」と題されたセッションで、シックス・アパート株式会社が15日に公開した携帯電話向けコンテンツ表示モジュール「TypeCast」の詳細が紹介された。TypeCastは、ブログホスティングサービス「TypePad」のモバイル向けの表示処理(管理画面は含まれない)を行うモジュールで、各携帯
はじめに 筆者は、ここ数ヶ月で「全自動4コマ」「全自動似顔絵」「全自動百科辞典『オートペディア(Auto☆pedia)』(以下、オートペディア)」といったライトユーザー層向けWebサービスを開発、リリースしてきました。ネットでの評判は上々で、中でもジョーク系Webサービスである「オートペディア」は特に好評を博し、最初にリリースした「全自動4コマ」を上回るアクセス数を得ることができました。 これに伴い、Webサービス自体についての問い合わせや質問を受けることも多くなってきたため、今回は同じようなジョーク系Webサービスを作る人の参考になるよう、Webサービスの企画・開発について触れてみたいと思います。 本記事では特に「オートペディア」を題材にして、その企画で筆者が何を考え、どのような意図の下に開発を行ったかを紹介します。今回は「プログラミング」ではなく「企画」としてのジョーク系Webサービス
はじめに ブラウザの種類やバージョン、おのおのブラウザ独自の実装の違いを考慮し、同じように動作するスクリプトを「クロスブラウザスクリプト」と言います。この連載では、クロスブラウザスクリプトを実現する方法について順を追って解説してきています。 クロスブラウザスクリプトを実現するためには、様々な方法があります。これまでの連載では、ブラウザの種類やバージョンを判断し、そのブラウザがサポートしているスクリプトを実行する方法を解説してきました。また、それ以外の方法として、実行するスクリプトをブラウザがサポートしているかどうか調べ、それに合わせて用意したスクリプトを実行する方法なども説明してきました。実際にクロスブラウザスクリプトを作成する時には、それらの方法を単独あるいは組み合わせて作っていくことになります。 本来のJavaScriptの理想的な姿としては、JavaScriptをサポートしたブラウザ
データベースのミラーリング 最近の傾向として、企業はデータや関連するアプリケーションが常に利用可能であることを求めるようになっています。それゆえ、企業のデータベース管理システムを24時間常に稼動させ、オンラインに保つことの重要性は増しています。データベースのミラーリングは、データベース管理システムの可用性と災害復旧性を高める技術であり、データとデータ同期を常時利用できるようにします。 データベースのミラーリングシステムは、それぞれ別のコンピュータ上で実行される2つあるいは3つのデータベースサーバから成り、これらのサーバの連携によってデータベースのコピーを保持します。データベースのミラーリングは、プライマリサーバ、ミラーサーバ、監視サーバという3種類のサーバによって行われます。プライマリサーバとミラーサーバはそれぞれがデータベースファイルのコピーを保持します。監視サーバはデータベースのコピー
はじめに 何年も前のことですが、私が初めてJavaに興味を覚えた理由の1つは、Javaプラットフォームに標準でコレクションライブラリが組み込まれていたからでした。当時、C++の世界ではまだSTL(Standard Template Library)が定着しておらず、開発者たちは適当なコレクションライブラリを購入して利用するか(Rogue Waveが流行っていました)、自分の手でライブラリを書くしかありませんでした。正確な数は忘れましたが、私自身も、さまざまな目的でさまざまな種類のプリミティブやオブジェクトの連結リストを実装しました。さらに、もっと複雑なコレクションや平衡2分探索木、ハッシュテーブルなども自分で実装しました。そのようにしてソフトウェア工学の原理を絶えず意識することは決して無駄なことでありませんでしたが、生産性を考えるとそうとばかりも言えませんでした。 しかし、Javaによって
はじめに seleniumについての基本的な内容は、以下を参照してください。 Selenium 0.7利用手順書(前編) Selenium 0.7利用手順書(後編) seleniumを利用するメリットとデメリット メリット seleniumを利用する最大のメリットは、「再テスト」が容易になることです。 不具合発生時 テスト担当者と修正担当者の伝達が容易 再テストが容易 仕様変更後 リグレッション(デグレード確認)テストが容易 筆者が特にメリットを感じるのは、テスト担当者と修正担当者の伝達が容易になる点です。テスト期間中は、テスト担当者も修正担当者も作業に追われています。通常、不具合発生時は、テスト実施担当者から修正担当者へ不具合内容を伝達するために、不具合管理ツールなどに、ケース番号や再現手順の詳細を記述、デバッグログの添付などを行い、修正担当者はそれを読み解く必要
はじめに この記事では、汎用のXMLトランスフォーマ/バリデータであるXmlTransformについて解説します。XmlTransformは、変換対象のファイルがどのような深さのディレクトリツリーに格納されていても問題なく機能します。出力時には複数レベルの索引を生成でき、必要に応じてナビゲーションリンクを追加することも可能です。 XmlTransformの検証機能はかなりシンプルにできていて、変換に使用したXMLファイル一式が妥当かどうかを指定のXMLスキーマに従って検証します。入力ファイルと(変換後の)出力ファイルの両方、あるいはどちらか一方を検証するよう選択できます。 より興味深いのは変換機能の方です。変換エンジンはよくプリプロセッサとして使用され、Webページを制作するときに大いに役立ちます。プリプロセッサとHTML 最新の技法を取り入れた整形式のHTMLは、XMLの名前を真似てXH
はじめに Rubyは簡潔な言語であり、この点は開発において重要な意味を持ちます。つまり、コード行が少なくなれば、開発にかかる時間やメンテナンスの費用が減少するということです。RailsはRubyベースのWebアプリケーションフレームワークで、ほとんどの開発者にとって扱いやすいフレームワークですが、大規模なWebアプリケーションをデプロイする際にスケーリングの制限に直面することがあります。Railsアプリケーションを多数のサーバーに拡張して何千ものユーザーを同時に処理しようとすると確かに問題にぶつかる可能性がありますが、中小規模のRailsアプリケーションならば、適切なツールとテクニックを駆使すれば効果的にデプロイできます。 この記事では、そのための具体的な方法を説明します。以降では、私のお気に入りのRubyおよびRails開発IDEであるNetBeans 6.0と、オープンソースのサーバー
はじめに ネットサーフィンをしていると、海外のサイトにも関わらず、ページが日本語で表示されることがあります。そのサイトが日本語のページしか持っていないということは多分ありません。閲覧者が日本人だと推測して、日本語のページを返しているのです。 静的なWebページの場合には、日本語のページと英語のページといった具合に、対応したい言語ごとに別々のページを用意して、何らかの方法で表示するページを切り替えます。 動的なページの場合に同じ方法を採るのは現実的ではありません。日本語のWebアプリケーション(以下、Webアプリ)と、英語のWebアプリを別々に開発するのはとても面倒です。そこで、ロケール(言語や地域)に依存する部分だけを置き換えられるようにWebアプリを開発することになります。このことをWebアプリの「国際化」と言います。英語ではinternationalizationですが、長いのでI18
はじめに 皆さん、こんにちは! 突然ですが、組込み機器におけるソフトウェア開発(以下、組込みソフト開発)には、どんな開発言語を使用していると思いますか? そうです、一番多いのがC言語です。その他、C++やアセンブリ言語なども使用されています。 ところで、Javaでも組込みソフトの開発ができることをご存知でしょうか? Javaを搭載したデジタル機器・家電製品には、コピーやFAXなどの複合機、携帯電話、カーナビなどがあります。Javaの開発と言うとWebアプリケーションが多いですが、組込みソフトはどのように開発していくのでしょうか……。 ここではレゴロボット「教育用レゴ マインドストームRCX」を使って、組込みソフト開発の入り口を一緒に体験してみましょう!レゴロボットについて 今回はこのレゴロボットを使用します。 RCXには8ビットのマイコンが内蔵されています。メモリは16KbyteのROMと
はじめに 前回のクイズには挑戦していただけましたか? コンピュータに向かわずにコードについて考える訓練は、プログラミングのための思考能力を高めるのにも役立ちます。さあ、今回も、Delphi、C++、Java、C#、PHP、Rubyの6言語を取り上げ、同じような動作を記述していながら、結果が異なるケースを紹介し、言語ごとの挙動の違いを考察していきましょう。前回の記事突然ですがクイズです!-その1 最初のクイズ(割り算)問題 最初のクイズは割り算に関するものです。6つの言語を使って、きれいに割り切れない割り算「2007÷11÷21」を試してみました。しかし、1つだけ出力結果が違うものがあります。それは、どの言語でしょうか?
はじめに ある程度の規模のプログラムを作るようになると、「データの保管」について考えるようになります。必要なデータや演算した結果などのデータをファイルに保存したり読み込んだりできるようになれば、応用の範囲もぐっと広がります。まずは基本である「テキストファイルのアクセス」から、その基本的な使い方を説明していきましょう。対象読者Javaに興味はある、けれどプログラミング経験がない、という人。Javaに興味はある、けれど何から手をつければいいかわからない、という人。Javaに興味はない、でも何でもいいからプログラミングをしたい、という人。 これまでの記事Java入門 (1) - まずはここから始めようJava入門 (2) - 値と制御構文Java入門 (3) - クラスとインスタンスJava入門 (4) - Swingを使ったGUIプログラミングJava入門 (5) - Swingにおけるイベン
はじめに XML Schemaのもともとの目的は、XMLの検証および定義をDTD(文書型定義)よりも優れた方法で行うためのレイヤを提供することでしたが、その根本にあったいくつかの概念はいつのまにか変化しました。そうした概念の1つが、「属性は列挙(リスト)に設定できるが、その列挙はスキーマ自体の中に指定する必要がある」というものです。XMLが分散化するに従って、また、データ構造が複雑化して静的な定義だけでなく動的な定義にも依存するようになるに従って、開発者たちは、そうした動的な定義を自分自身でサポートするスキーマ言語を使う必要があると認識するようになりました。 ISO SchematronはXPath 2.0(特にdoc()やunparsed-text()のような関数)を利用できるようになったため、ビジネスコンテンツのためのクリティカルな「分散検証」言語であると考えていいかもしれません。Sc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く