Enj0Y PerI Programming モジュールを活用はう 最近書き込んだページを一覧にして表示す が処理をしています。 る機能で , 「最新」というリンクで表現され 考え方 ている部分のことです。 更新ページの一覧は , 各ページにタイム スクリプト中では do ゴ ecent という関数 スタンプを持たせてそれをソートして・・・ のようには実装しませんでした。なぜなら , そのようにしてしまうと毎回全ページのタ イムスタンプをチェックする必要が生じて しまうからです。 まず , RecentChanges という専用ページ を用意します。そして , ページへの書き込 みが do ー write によって行われるたびに , そ の RecentChanges の内容を書き換えます。 つまり , Wiki の 1 つのページを更新情報の 記録用として使うのです。 混乱が起きないように RecentChangesvx ージの編集機能は OFF にしておくことと , あまりにもたくさんのページが記録されて しまったら古いページの情報は捨てること に注意してください。 この方法はオリジナルの Wiki でも使っ ていた方法です。 動的なページスタイルの変更機能 動的なページスタイルの変更機能という のは , 前節の動作テストで 1 , 2 , 3 のスタ イルを切り替えたように , CGI を止めるこ となくスタイルを変更する機能です。 考え方 スタイルごとに別のテンプレートファイ ル群を用意し , それぞれを別のディレクト リに人れておきます。ディレクトリは違っ ていても , ファイル名は合わせておくのが コツです。 そして「現在のスタイル」を表す数字を U RL 中に常に含め , その数字に従ってテン プレートファイルを読みにいくディレクト リを変えるのです。 更新情報の日 SS 形式での出力機能 更新情報の RSS 形式での出力機能という のは , 「最新」で表示される内容と同じもの 機能を順番に解説していきます。 更新ページー覧の表示機能 更新ページー覧の表示機能というのは , Fig. 13 YukiWikiMini/Template の画面の遷移 index. html スタイル選択ページ ykwkt. cgi mycmd=read mypage=RecentChanges 更新情報表示 ykwkt. cgi mycmd= 「 ead mypage=FrontPage トップページ ykwkt. cgi mycmd=index 一覧表示 ykwkt. cgi mycmd=read mypage= 指定 ページ表示 ykwkt. cgi mycmd=edit mypage= 指定 ページ編集 ykwkt. xml 日 SS 形式の更新情報 ykwkt. cgi mycmd=write mypage= 指定 ページ書き込み * 上図では省略しているが , 任意の画面から「トップページ」に戻れる。 * また , 「トップページ」から「ページ編集」へも行ける。 Enjoy perl Programming モジュールを活用しよう 1 1 1
Enjoy Perl Programming モジュレを活用はう YukiWikiMini/TempIate の改良 結城浩 前回に引き続き , 不思議な掲示板システム Wiki を取り上げます。 前回作成した CGI に動的にページのスタイルを変更する機能や 更新情報を RSS 形式で出力する方法を実験してみます。 こんにちは , 結城浩です。今回は , 前回 作成した YukiW1kiMini/TempIate を改良し てみます。今回は次のような改良を行いま す。 ( 1 ) 最近更新されたページの一覧を表示 今回は「 YukiWikiMini/TempIa te の改良」 する機能 してくれるモジュール」です。詳しくは前 プログラムが持っている変数の内容に置換 れている貧 MP ー VAR > のような擬似タグを , 言でいえば「テンプレートファイルに含ま ML 文書を作成するためのものです。ひと モジュールで , テンプレートを使って HT ar く sam@tregar.com/ 氏によって作られた HTML::Template モジュールは Sam Treg HTML. :Template モジュール しておきます。 今回の内容に関連した Web ページを紹介 読み進む前に 回扱うモジュールを Table1 に示します。 ジュール Yuki : : RSS を作成してみます。今 とくに ( 3 ) に関しては , 自作の小さなモ ( 3 ) 更新情報を RSS 形式で出力する機能 機能 ( 2 ) 動的にページのスタイルを変更する 回の本連載記事および以下のページをご覧 ください。 ・ HTML::TempIate のページ http://sourceforge.net/projects/ html-template/ ・ HTML: Template の CVS サーバ(S0u℃ eForge http://sourceforge.net/cvs/ ?group_id=1075 ・ HTML::TempIate モジュールの解説 (Hi PP02000 さんの翻訳 ) http://member.nifty.ne jp/hipp02000/ perltips/html/template. htm Wiki, YukiWiki, YukiWikiMini など Wiki( ウイキイ ) というシステムは , 世界 中の誰でも , すべてのページを自由に変史 TabIe 1 今回扱うモジュール 名前 することができる CGI です。オリジナルの Wiki システムは Ward Cunningham 氏が作 ったもので , そのコンセプトを生かして独 自に実装された CGI が無数に存在します。 それを W1ki クローンといいます YukiW1ki は筆者が作成した Wiki クローン です。 YukiWikiMini は Wiki クローンの一種 で , 機能を最小限にしばったものです。 詳しくは以下のページを参考にしてくだ さい。 ・ Wiki のページ http://c2.com/cgi/wiki?WikiWikiWeb ・ YukiWiki のページ http://www hyuki.com/yukiwiki/ ・ YukiWikiMini のページ http://www.hyuki.com/yukiwiki/ ykwkmini. html 解説 HTML::Template HTML のテンプレートを取り扱うモジュール Yuki::RSS RSS 1 .0 形式の XML を出力するモジュール ( 今回自作 ) Table 2 YukiWikiMini/ffempIate で使うテンプレートファイル一覧 名前 dO 「 ead. tmpl do_index. tmpl do_edit. tmpl do—write. tmpl dO e 「「 0 「 . tm head. tmpl fOOt. tmpl 解説 通常のページを表示するとき 一覧ページを表示するとき 編集ページを表示するとき 書き込み直後のページを表示するとき 工ラーを表示するとき すべてのページの共通ヘッダ ( 直接 CGI からは呼ばれず , do_xxxx. tmp17 アイルから TMPL 」 NCLUDE される ) すべてのページの共通フッタ ( 同上 ) Enjoy PerI Programming モシュールを活用しよう 107
を RSS 形式で出力する機能のことです 考え方 RecentChanges の場合と同じように 数 do write でページが更新されるタイ、 ミン グで ykwkt. xml ファイルを作ります。 関 その代わり Yuki : : RSS はとても小さなモ できません。 きるのですが , Yuki::RSS は書くことしか XML::RSS は RSS ファイルを読み書きで RSS という別モジュールを作りました。 す。そこで , 今回は RSSI. 0 を作成する Yuki : : ンストールするのは難しい場合がありま ラリ (expat) が関係しており , サーバにイ しかし , XML::RSS は XML 関連のライプ す。 うは XML::RSS というモジュールを使いま RSS 形式のファイルを作る場合は , ふつ Yuki::RSS とは何か Yuki::RSS モジュール ジュールになっています。 厳密な値のチェックを行いたい場合には , X RSS のもっと豊富な機能を使いたかったり , とんど行っていないのでご注意ください。 また , 指定された値のチェックなどはほ ています。 ールであり , 汎用に使うには機能が不足し Yuki::RSS は List 2 のように小さいモジュ は XML::RSS のサプセットです。 ble 4 に示すメソッドを持っています。これ のファイルを作成するためのものです。 Ta Yuki::RSS は PerI のモジュールで , RSS 1.0 トを List 3 (sample. (l) に示します。 Yuki : : RSS を利用するサンプルスクリプ Yuki::RSS のサンプル search?dist=XML-RSS http://search.cpan.org/ ・ XML::RSS ML::RSS をお使いください。 このス クリプトを動作させるときには , 配列@IN C に格納されているディレクトリー覧の中 に , Yuki ディレクトリの親ディレクトリが 含まれていなければなりません。さもない と , Perl 処理系が Yuki/RSS. pm というファ イルを探すことができないからです。 情報メモ RSS 現在 , ュースサイトの多くでは RSS を TabIe 3 YukiWikiMini/Template で使う擬似タグ (ー部 ) 名前 <TMPL VAR autho 「 link> <TMPL VAR content> <TMPL VAR edit link> VAR error_message> <TMPL VAR f 「 ontpage 」 ink> <TMPL VAR home link> <TMPL VAR index link> く TMPL VAR mymsg> <TMPL VAR mystyle> <TMPL VAR page 」 ink> <TMPL VAR page_title> <TMPL VAR 「 ecent link> <TMPL VAR rss 」 ink> <TMPL VAR style 」 ink> <TMPL VAR this url> く TMPL VAR title> <TMPL LOOP index 」 ist> <TMPL deleted> <TMPL can edit> <TMPL 作者のページへのリンク ( このほか , % config で指定したものはすべて利用できる ) そのページが編集可能かどうかの判断 そのページが削除されたかどうかの判断 ( do ー w 「 ite. tmpl) 一覧ページのループ (do_index. tmpl) このシステムの名前 ( ykwkt. cgi 内で設定 ) CGI の URL (ykwkt. cgi 内で設定 ) スタイル一覧のリンク RSS へのリンク RecentChanges ページへのリンク そのページのタイトル 一覧ページの各ページへのリンク ()O 」 ndex. tmpl) 現在のスタイル番号 そのページの内ß(do_edit. tmpl) 一覧ページへのリンク あなたのページへのリンク (ykwkt. cgi 内で設定 ) トップページ ( F 「 ontPage ) へのリンク 工ラーメッセージ ( do ー e 「「 0 「 . tmpl) そのページを編集するためのリンク そのページの内容 ( do ゴ ead. tmpl, do_write. tmpl) TabIe 4 Yuki::RSS のメソッドー ・通常はこの内容を XML ファイルとして出力する ・日 SS の文書を文字列として返す as_string ・戻り値は item の集合を表現するリストのリファレンス ・ $link は item のリンク ( 通常はサイト内のページの U 日 L ) を表す ・ $title は item のタイトル ( 通常はサイト内のページの題名 ) を表す ・日 SS の item 要素の値を設定する add 」 tem (title = > $title, link = > $link) ・戻り値は channe 表現するハッシュのリファレンス ・ $desc はサイトの解説文を表す ・ $ ⅱ nk はリンク ( 通常はサイトの U 日 L ) を表す ・ $title は channel のタイトル ( 通常はサイトの名前 ) を表す ・日 SS の channel 要素の値を設定する channel(title = > $title, link = > $link, description = > $desc) ・ $encoding は XMl-æ言の encoding 属性の値として使われるだけで , 文字コードの変換は行われない ・ $encoding は XML のエンコーディングを表す ・ $ ve 「 sion は日 SS のバージョンで , 1 ℃でなければならない ・ Yuki::RSS オブジェクトを返す ・ Yuki::RSS のコンストラクタ new (version = > $version, encoding = > $encoding) 1 1 2 C MAGAZINE 2002 3
Enjoy PerI Programmmg モジュレを活用はう Fig. 3 内容が何もないトップページ 同ロ、 ボタンを押すと , このページ (FrontPage) が書き換えられます ( Fig. 5 ) 。 ( 5 ) 存在しないページへのリンクには ? が付く さて , Fig. 5 をよく見ると , MyPage とい う文字列の後に疑問符「 ? 」が表示されて , リンクになっています。この疑問符をクリ ックすると , MyPage という新しいページ が作られます ( Fig. 6 ) 。 FrontPage や MyPage , あるいは LongerN ameLikeThis のように , 「大文字 + 小文字列」 Fig. 2 YukiWikiMini[Template の index. html Y rkiM 刊 / T 印叩ー M 朝 030 " 1 E ファイルの編集仮 ) 表示お知こ入りツール 言同ロ ヘルプ ( 印 印刷サイズ を移助 ファイル 0 編第 ( 印表示 ( ) お気に入リ内ツール (D アドしス 0 h ノ / “。 m / 印月 4 / レを襾 frontPage 巨四置」集ー = 第一ホ : ムー引農新 ヘルプ凹 サイズエンコード 中止 ホーム アドレス切 h ゆノ / に h ッ 1 c 。印 / 14 / を x YukiWikiMini/Template 3 Y 味物まノ T ・ mp ・ 02 1 目 ! ー [ ヱ ~ 言同ロ スタイし乙 Fig. 4 Fig. 6 編集モード ファイルの編集 ) 表示お知こ入りツール (I) ヘルプ旧 ) F 国れ e ー M ロ 030 に日宿 E ル新 一 , 籍ホ 2 ム】」・当 : ド摶 同ロ ヘルブ FrontPage 自分のページを MyP e として作ってみます。 色処埋 0 」ニ上ーエニム」新」量新 書き込み 新しい MyPage ができた MyPage ー M に 230 t 印 0 Explorer Fig. 5 書き込んだ直後 ファイル ( 日編集 ( 日表示お気に入り (A) ツール FrontPage - Microsoft lnternet Explorer 進む 巨。 n 引編ーニ覧ーホームー匯旦ー最鈑 自分のページを M age 北して作ってみます。 FrontPage アドレス 0 http://www.hyukicom/ep/14/ykvütcgi Y リ k 解幻 Mru / T ・を 02001 日を 2 必 ! ユヒ ! スタイルし之竃 言同ロ ページが表示されました Fig. 7 MyPage を編集し・ MyPage - M ロ 030 れい " ー Explcrer YukiWkiM in i/Te mplate 0 2001 b た日止皇 b. ! - Y リ スタイル : L 朝インターネット 国同ロ ファイル編集表示お知こ入りツールヘルプ 建を 中止 ホーム印刷サイズエンコード アドレス 0 / / ” ,. h 求。 m / 印 / 14 / 練な gi 鯑 yc ⅲ d : 叫 p ~ p e & 1 ファイル編集 ( 印表示お知こ入りツールヘルプ ( 印 ホム印島サイズエンコー アドレス 0 鼬 p : / / hy 冰 om / 印 / 14 / p,k cepmycmd=edit&mypage=wpaee&l MyPage 書き込み」 FrQDtPge I=-E ー主ニム」ー最新 . べージが表不さオはした Yuk1WkiMin 1/Template 0 2001 旦 ! 寸リ」ヒ ! スタイル : もこ 砂イ、一ネッ MYPage F 「。 ntP “ e へ戻うにはどうするかな。 巨引ニ覧ー丕ニム」」星新 書き込み ージカ示さオは YukWkiMini/Template 02001 日を旦助 - ! 」リ幻 スタイルし乙 Enjoy PerI Programming モシュールを活用しよう 109
が複数個連続した文字列のことを WikiNam クをたどると , Fig. 12 のように RecentC 新規機能の解説 e と呼びます。これは , Wiki クローンでは hanges の内容が RSS で表示されます。 Yuki 自動的にサイト内のほかのページへのリン WikiMini/Template の画面の遷移の様子は クとみなされます。ページがまだ存在しな Fig. 13 のようになります。 ければ「 ? 」というリンクが表示されます。 Fig. 8 MyPage へ書き込む そのリンクをたどると編集モードに入りま す。 ( 6 ) 存在するべージ MyPage を作ると FrontPage の「 ? 」は消える MyPage の編集画面で FrontPage という 文字列を含むテキストを人力し , 匿ぎ込み ボタンを押します (Fig. 7 ) 。すると , Front Page の部分がリンクになっているのがわか ります (Fig. 8 ) 。 このように WikiName で表されるページ が存在していれば , WikiName 全体がリン クとなります。 ( 7 ) 最近の編集ページ 「最新」というリンクをたどると , Fig. 9 のように , 最近編集したページの一覧 ( Rec entChanges) が表示されます。 スタイルの変更 画面の右下に「スタイル : 1 , 2 , 3 」という Fig. 12 日 SS の出力 リンクがあります。これはこの CGI が 3 種 類のスタイルをサポートしていることを表 ファイル ( E ) 集 ( 印表示おこ入り ( ツール (I) ヘルプ ( 印 しています。同じ内容のコンテンツを 3 種 追む 類のスタイルで表示することができます アドレス 0 引 h ゆノ / Www}-.y歓 / 叩 / 14 / 川„紅 x (Fig. 10 , 11 ) 。 く ?xml version = い 1.0 ” encoding= ” Shift_JlS" ? > ・ - <rdf:RDF x 「司 ns : rdf = " h は p : / / www.w3.0 / 19 り 9 / 02 / 22 ィ df - syn い x - ns # " x n 三 = " h は p : / / p リ日 .0 / 門 5 / 1.0 / い > RSS の出力 - く ch nn 引 rdf:about= ・ http://www.hyuki.com/ep/14/ykwkt.cgi" <title> YukiWikiMini/Template</titIe> く link>http://v•ww.hyuki.com/ep/14/ykwkt.cgiく.tlink> <deSCflPt10n>YukiWikiMini/TempIate</description> サイトの情報を提供する化文書として , - く ltems> ー・ <rdf:Seq> く rdf:li rdf:resource="http://www.hyuki.com/ep/14/ykwkt. C0レ RSS (RDF Site Summary) という形式があり MyPage <rdf:li 「 df : 田 50u 代 e = http://www.hyuki.com/ep/14/ykwkt.cgi? ます。 FrontPage / > く /rdf : Seq> く /ltems> 今回作成した CGI では , RSS の 1.0 に対応 </channel> ー <ite 「 n rdf:about—"http://www.hyuki.com/ep/14/ykwkt.cgi?MyPage した出力を行うことができます。 く tItle>MyPaqe く /tltle> く link>http://www.hyuki.com/ep/14/ykwkt.cgi?MyPage く /link> く / em > 通常は RSS の出力は人間ではなくプログ ー <ltemrdf:about— http://www.hyuki.com/ep/14/ykwkt.cgi?FrontPage く t1tle>Frontpaqe</title> ラムが見るものですが , XML に対応した く link>http://www.hyuki.com/ep/14/ykwkt.cgi?Frontpage</Iink> く / ltem > プラウザなら直接表示させることも可能で </rdf:RDF> す。 CGI の画面左下にある「 RSS 」というリン 以降では , 前回の CGI に新しく追加した Fig. 10 表を使ったスタイル 2 ファイル 0 表示叨おこ入り⑧ツールヘルブ ネーム ~ 印新サイズ 工ンっード アドレス 0 淋 / / - 血 / ep. 4 / ) tc 町一 p 22 同ロ 言同ロ。 ファイル編累 ) 表示 ( お知こ入りツールヘルプせ ホム印サイズ 工ンコード アドレス 0 / / 司贏 00 印ハ 4 / , “ i MyPage FrontPage ー自分のべージを当りとして作ってみます。 阯迂 0 ェへ農るにはどうするかなを Yuk れ M i/Te 愴 02001 旦を豆 : 」リ辷 スタイル : し気 0 Y を物れノ T を mpla 02001 とえ 2 せ」」 」冫 Fig. 9 最近編集したページの一覧 ファイル 0 編表示お知こ入り内ツールヘルプ 木ーム , 印サイズ ード アドレス (Q) ″物い物 h 31V 印 / 1 4 / yk 朝甲 Ch ”引 RecentChanges Fig. 11 テキストを中心にしたスタイル 3 ファイルの集 0 表示おこ入り住 ) ン一ルヘルプせ 中止 ホム印サイズ 工ンコード アドレス 0 h p ノ / 物物員い石 co 宿ノ中 / 1 4 / 外純 ? p 興物 & 3 第 Fron ー % 自分の - ぐージを当むとして作ってみます。 Vi'ikiMini/Tælate ・ 2001 山き」」ユ 国同ロ 料同ロ - い賴い 50 しにドを ) 0 い , を 0 ド 0 トを : . にれ ! き′を・コ 010 い一 ! ~ 行 0 に一当 - 200 トに・ 25 ・もゼ ~ ムま - 200 ト - 25 ・シ望「受 E 型」ⅸニ覧ーまニムーー量鉱 れ k M のノ Tempia 0 2001 旦ーり & スタイル : もえミ ・津い / / 響 hyukl.com/ep/14/ykwktxml - は 0SOft lnternet Explorer 言同ロ ページが表示されま 1 10 C MAGAZINE 2 2 3
YukiWikiMini/TempIate の 設置 細かい内容の解説の前に 変更部分 ( 抜粋 ) List 今回紹介する YukiW1kiMini/Template の設置方法をお話 しましよう。 なお , 以下の U 糺で実際に動作している CGI を試すことができます。 # ↓ ( 要修正 ) あなたの web ページのアドレス home-url = > 'http://www.hyuki.com/' # ↓ ( 要修正 ) この CGI のアドレス this—url => 'http:/ん驩幇.hyuki.com/ep/14/ykwkt.cgi Fig. 1 YukiWikiMini/Template ファイル一覧 今回作成した YukiWikiMini/Template のページ http://www.hyuki.com/ep/14/index. html YukiWikiMini/TempIate の設置 YukiWikiMini/Template は , 以下の手順 で設置・動作テストします。 ( 1 )URL の変更 CGI ファイル ykwkt. cgi の中の , home_url と this ー url というキーに対する値を変史し (Fig. 4 ) 。 こで文章を人力して書 : ぎ込国 そのページを編集するモードになります 画面左下の「編集」のリンクをたどると , ( 4 ) ページの編集 Page) です。 これは内容が何もないトップページ ( Front すると , Fig. 3 のような画面になります。 を表しています。はじめは ( 1 ) を選びます。 「・スタイル ( 1 ) ~ ( 3 ) 」は , 表示スタイル ります。 スします。すると Fig. 2 のような画面にな 設置後 , index. html へプラウザでアクセ ( 3 ) スタイルの選択 もサイズ 0 で作っておきます ( 書き込み可 ァイルとして , ykwkt. xml というファイル でしよう ( 書き込み可能 ) 。また , RSS のフ うファイルをサイズ 0 で作っておくとよい ます。 ykwkt. db, ykwkt. pag, ykwkt. dir とい 作成されるデータベースファイルは異なり PerI の動作するプラットホームによって , てテキストモードで転送します。 ミッションを設定します。ファイルはすべ サーバ上に作り , 右側に書いたようなパー Fig. 1 のようなディレクトリ階層を Web ( 2 ) ファイルの転送 GI のアドレスを設定します。 ページのアドレスを設定し , this_url には C ます (List 1 ) 。 home_url にはあなたの Web 108 index. html ykwkt. cgi jcode.pl tmpll d0 「 ead. tmpl dO index. tmpl do—edit. tmpl dO_w 「 ite. tmpl dO ー e 「「 0 「 . tm head. tmpl fOOt. tmpl tmp12 dO—「 ead. tmpl dO 」 ndex. tmpl do—edit. tmpl do—write. tmpl dO e 「「 0 「 . tm head. tmpl fOOt. tmpl tmp13 do—read. tmpl do—index. tmpl do—edit. tmpl do—write. tmpl dO ー e 「「 0 「 . tm head. tmpl fOOt. tmpl HTML TempIate. pm Yuki RSS. pm ykwkt. db ykwkt. pag ykwkt. dir ykwkt. xml C MAGAZINE 2g2 3 644 「 w ィ - ィ - - 755 rwx 「 -xr-x 644 「 w ィ - ィ - ー 755 「 wxr-xr-x 644 「 w ィー 644 「 w ィ - 644 「 w ィ - ィ -- 644 「 w ィ - 644 「 w ィ 644 「 w ィ 644 「 w ィ - 755 rwxr-xr-x 644 「 w ィ - 644 「 w ィ - 644 「 w ィ 644 「 w ィ - 644 「 w ィ 644 「 w ィ - 644 「 w ィ - ィ -- ィー 755 「 wx 「 -xr-x 644 「 w ィ - 644 「 w ィ - ィ -- 644 「 w ィ 644 「 w ィ 644 「 w ィ - 644 「 w ィ - 644 「 w ィ - ィー 666 「 w-rw-rw- 666 rw ィ w-rw- 666 rw-rw-rw- 666 rw-rw-rw- 644 「 w ィ - ィ - ー 755 rwxr-xr-x 644 「 w - 「 - ィー - 755 rwxr-xr-x スタイルを選んで CGI を起動するべージ CGI* 体 漢字コード変換用ライブラリ テンプレートファイル群 3 ( テキスト風のデザイン ) テンプレートファイル群 2 ( 表形式風のデザイン ) テンプレートファイル群 1 ( 普通のデザイン ) * 空ファイルを作っておく * 空ファイルを作っておく * 空ファイルを作っておく * 空ファイルを作っておく
平成 1 4 年度舂期情報処理試験は、ソフトバンクでキマリ ! ! △ 4 合格 HELPER 合格 HELPER が雑誌になりました weekly テストであなたをサポート ・合格レベルに一気に近づく ! 物・シスアド・基本物第・ソフト開発を攻第してキャリアアップ ! 屋 鋼第第第麕試 http://www.ghelpe 「 . jp/ ー「頻出テーマの重要征服」 HELPER ロ社ⅡⅡⅡⅡⅡⅡ il れⅡⅡⅡ ii ⅡⅡⅡ上 0 金物権 [ のイージによこそーはⅡⅡ缸収 0 ⅡⅡれⅡ ii ⅡⅱⅡⅡⅡ 9 日 ・充実した「基礎講座」 0 ーア ) ントメ・ル http://www・ 9h可P0碕P 初級シスアド受験者必読 ! レ ・午前対策講座 鋼第第第鋼・置験 ル「合格ライン到達チェック理解度 TESTJ 点東第テスト 気 ・付属 CD - 日 OM 0 倉・覆 [ 費の・版 第場・予約受竹中当 0 本第は . 4 舞試強合物 当弱点克服テスト / 午後問題徹底征服 を目物して実力を・成 します ! 合格ライン刻建チェッ ニューアルしました一 「理解度 TEST 」忖き 第をンスアト齪物合・を目・す人のためにはしまった一合物 ーを一疑町です . このたび . 第本第報・ . ンフトウェア第 ・・になる ・を目第す人への物ツラストを - することになりました . お サあ ー基本一第マスタ 隔月発売 ( VoI.3 は 3 / 8 発売 ) 産しみに一 和点得する ! ? 初級シスアド , 基本情報 , 電車の使し防 充実した基礎講 ソフトウェア開発受験者に対応 ! 本そくり 物第シスアト ・・カイタンス 午前 0 午後 模擬試験 物 泉田洋一ほか . 著 泉田洋一ほか : 著 付き ! 韓 B5 判 B5 判 304 ページ 248 ページ 本体価格 1 , 200 本体価格 1 , 200 受験案内・願書付き 本試験そり模擬試験 チそ 工つ は ッ模 チ擬 好評 好評 発売中 ! ! 発売中 ! ! 完全予想と総整理 盟短期集中ゼミシリーズ 1 こ年度 平成 14 年明 平 14 年春 平成 1 4 年度 平成 1 4 年度春期ー いウ籌ラ単発ソフトウェア開発」初級アド 短期集中ゼ 短期集中ゼミー短第中物ミ 町第市をお 短期集中ゼミー 好評駅 ー・発売中 ! 嚼 午後対策 も充実 午鬢対策 事直ー 4 第を・ 願書 É%HELPER 11 月 8 日第刊 当こメこを物 1 、 7 、 CO 0 5 500 第 トラユヘージ W ーや k ッテストについて うンまング オンライン第第を タウン 0 ード 第第いわを 本体価格 952 円 ( 税込ー′ 000 円 ) 平成 14 年度春期 直前 ! 基本情報 技術者試験 W 叱 00 物 ZDNet ー 工ンシニアの方へ 平成年度を 平成 14 年度春期 直前 直前 ! 初級 シスアド試験 春期 平歳年度 題テーマの 豊富なオリジナル問題と解説で合格への実力をつける 受験参考書の決定版 ! 合格のための実践力を十分に養えます ! 平成 14 年度春期 初級シスアドー 短期集中ゼミー ー・発売中 ! ! ー 日本ユニンス情理システム教育研究会 / ・ この冊 ( 0- に M 付 x 合格を : 電子種■ナスト ) 物ストい編 目指 強向に沿って 第本知第を置第し、 ・ 250 問をこ大る オリジナルを題で 日本ユニシス情報理 システム教宿研究会 / 第 この 1 合格を 目指す 震ヒー第向に沿っ ( 第本知■を習宿し、 ・ 2 咲ー■をこえる オリジナれ橋題で 第 0 する おメこ第 0 - 滝まる 日本ユニシス報第理 システム教麗研興金 / ・ 合格を ・に過って 第本知画を置し、 ・ 300 問をこえる オリジナル■第で 0 " 。 0 ・代 0 N•TREX ( 第子・第スト ) この冊 目指す 日本ユ三シス情報処理 日本ゴシス情報処理 日本ユニシス情報処理 システム教育研会 : - 著 システム教育研究会・著 システム教育研究会著 A5 半 0 A5 判 A5 判 512 ペー。 528 ページ 536 ペ。 本体価格 2 : 000 円一 本体価格 2 , 000 円 本体価格 2 : 000 円 を旧 BN4-7973-183 ト 7 ー・・一旧 BN4-7973-1829 」 5 当 旧 BN4 ワ 973 : 1830 も ・お近くの書店にてお求め・ご注文下さい。 ( 表示価格は税別 ) ソフトバンクバブリッシング株式 = 社 ・お近くにお取扱店がない場合、左記ホームページから、もしくはお電話にてご注文下さい。 ・小社お問い合わせ TEL : 03-5549-1201 ※土・日・祝日を除く 10 : 00 ~ 12 : 00 13 : 00 ~ 17 : 00 publishing http://books.softbank. CO.JP/ ・ E - メール : 午箜対策 も充実 も充実
あつばれ ご意見番 フィンロ = 5 ) ダの 第 7 ロ 思ったとおりに書こう ロードバンド 昨年プレイクしたものは多数あるのだろ うが , 自分の中でもっともインパクトがあ ったのは , 家庭からの高速インターネット 接続環境ではないかと思う。とくに ADSL の急激な普及が予想外で , Web の世界に意 外な影響を与えつつあるようだ。 正月に 1 週間ほど CATV 接続の環境を使う 機会があったのだが , ふだん使っているフ レツツ ISDN の常時接続 64Kbps と , CATV の数 Mbps という環境の差は , 数値では表 現できないものがあった。単に速度が上が ったというよりは , まったく別のものを使 っているような感じがしたのだ。 相手サイトの性能にもよるのだが , 大ざ つばに考えれば , 数百 K バイトのサイズの データは , ADSL なら 1 秒程度で全部持って くることができる。実際にそういうサイズ のページがあるのかというと , たとえば , たいていのニュース系のサイトのトップペ ージは , バナー広告まで全部含めてその程 度になるのではないかと思う。 すると , 64Kbps だと数秒 ~ 10 秒以上か かってやっと表示完了するトップページ が , 高速環境だと一瞬で表示される , つま り , まさに新聞を読む程度のストレスで読 めるわけだ。 これが実はあたりまえの世界なのかもし れないが , 実際に体験してみるとカルチャ ーショックを受ける。 新聞の 1 面を見るときにペーパーメディ アなら一瞬で済むが , 感覚的に「一瞬」とい うのはどの程度なのだろうか ? 1 / 100 秒 C MAGAZINE 2002 3 とか , 1 / 10 秒というのは当然そうだとして , 1 秒とか 3 秒を一瞬とみなしてよいかどうか。 3 秒というのは短いようだが , 実際 , 無意 識的な操作の途中ではかなりの長時間であ る。「すべてのページが 1 秒以内に表示でき る」というのが 1 つの目安だろうかと思う。 派 とあるサイト [ 注 1 ] にこういうネタがあった。 「 ListI に対して , List2 のように書いてはい けないのか ? 」という話である。 そのココロは , この場合に goto を使うこ との是非を問題にしているのである。それ を承知で言いがかりに近いことを 1 つだけ 書かせていただくと , あまりよくないと思 う。ただし , List 3 ならばよい。 論理的には「 1 , 2 , 5 以外なら実行する」 と「 1 か 2 か 5 なら実行しない」は同値である。 しかし , 思考的には別物だ。というのがポ イント。これが後々とんでもないバグの原 因になったりする。もしこのプログラムを 書いた人か , またはその仕様を設計した人 が頭の中で「 x が 1 , 2 , 5 以外で実行」と考え ていたのであれば , それに対する論理的に 同値なバリエーションが多種あったとして も , ここはやはり「 x ! = 1 & & x ! = 2 & & x ! = 5 」と書くべきなのである。 とはいっても , 「 1 , 2 , 5 以外ならば」と いう条件設定そのものがすでにややこしい。 「理解しやすい条件で判断する」というのは List if (x ! = 1 & & x ! = 2 & & x ! = 引 { / / x が 1 , 2 , 5 以外で実行 1 , 2 , 5 以外で実行 重要で , 細かいひっかかりが積もり積もれ ば全体の readabili 呼に響いてしまう。「 1 , 2 , 5 以外ならば」よりも「 1 か 2 か 5 なら」のほ うが条件としては圧倒的に明快だ。という 意味で , ここは List 1 のコメントにある発 想をまず捨てて「 1 か 2 か 5 なら実行しない」 という考え方をすべきだと思う。で , その 前提で考え直すと , たぶん , 私の好みとし てはこう書きたいというのが List 4 である。 ちなみに , そのページの著者はこのあた りの話はすべて把握しているようで , 全体的 にも説得力のある内容でおもしろい。参照 してみるといいと思う。そのページの作者 日く , List 2 のように書くメリットとして , ( 1 ) 処理の行数が多い場合 L 2 の書き方 が見通しがいい ( 2 ) 字下げの必要がない ( 3 ) 条件部分が読みやすい の 3 点をあげている。 ( 3 ) に関しては List 2 も List 4 も同じだから ィープンのはず。たぶん , もっとも大きな 差は ( 2 ) だろう。つまり , インデントだ。 「またか」って感じでしようか。 考えてみれば C にしろ C + + にしろ , 字下 げの必要がない言語なのだ。単にインデン トが違うだけなら , コードの実行時の性能 とか動作にはたぶん影響しないはず。 { } で 囲ったら字下げするという , コンパイラに は関係ないルールを勝手に人間が実践して いるだけの話なのだ。 List goto の利用 Exit : go セ 0 Exit; if (x = 1 Ⅱ x ー 160
『入門 XML 』 りにも少なすぎではないだろうか XML の意味 本書に限ったことではないが , 訳書を読 XML が , 技術として注目されるように んでいて常々思うことだが , 日本語への翻 なってからもうずいぶんと時間がたったよ 訳を行う以上 , 日本人を対象とした情報を 補遺してほしいと思う本書は訳注なども うに思う。 だが , 実際に化がどう「すばらしい」技 少なく , 本当に単なる訳書になってしまっ 術なのか把握しているだろうか。そして , ているのは残念だ そもそも本当に「すばらしい」技術なのかど 技術者の理解のために うかを判断できるだろうか。 実際 , 筆者は数年前知人に「ルって何 ? XML は , ある意味では簡単に使え , そし どういうもの ? どう便利なの ? 」と聞かれ てある意味ではとても使うのが難しい技術 て返答に窮した記憶がある。 だろう。 XML に未来があるのはどうやら間違いな XML を理解する いようだし , ビジネスの世界では徐々に使 Erik T. Ray 著 / 山本和彦 , 中原晃司 , 梶浦正規 , 本書『入門 XML 』は , その名のとおり XM われつつあるようだ。たとえば , Microso 豊田公児訳 384 ページ , 3 , 400 円 L の入門書だ。少なくとも , 本書を読むこ れでは , かなりの勢いで XML をベースとし オライリー・シャパン / オーム社 とで XML とは何かということははっき た技術が採用されている。 旧 BN4-87311-051-3 将来性のある技術を , 把握するのが難し りわかる。 もちろん , XML そのものだけでなく , X いからといって知らないままにしておくと ML を取り巻くさまざまな技術 , たとえば いうのは , やはり技術者にとっては致命的 て最後に XML プログラミングなど , XML を利用するうえで考えられるひととおりの だといっていい。残念ながら , 本書にも CSS や XSL などのスタイルシートや , XLin 利用環境が網羅されている。 「 XML とは何か」という問いに対する簡潔な k や XPointer などのリンクを扱うための技 付録 B の各種仕様の標準に関する情報や , 答えは載っていない。だが , 少なくとも正 術に関しても触れられている。もちろん , 巻末の用語集は , さりげないがかなり大切 確でそれなりにわかりやすい答えは載って HTML の XML 版ともいえる XHTML の話題 も取り上げられている。 な情報になっているように思う。とくに用 いる。もちろん , 本書の中にはいくつもの 重要な点は , 本書が技術的な側面から X 語集は , XML に関する情報を理解するの 答えがあり断定することはできないが , 1 ML を語った書籍だということだろう。と つだけあげるとすれば , それは「情報の格 に大きく役に立つだろう。 納と管理のためのプロトコル」だというも いうのは , XML にはビジネス的な価値と 本書が発売されて少し時間がたってから いう側面もあるように思うからだ。実際 , の書評だという理由もあるが , XML に関す のだ。 役に立つものから眉唾なものまで含めて , る情報は多少古いと感じる部分がある。と 本書を読むことで , XML というモヤモヤ ビジネス書としての XML 書籍はそれなりに くに [L は今が旬ともいえる技術なので , としたとらえづらい概念を把握することが 出ているようだ。そんな中で , あたりまえ これから本書を購入する場合は , 最新の情 できる。技術的側面から見た XML に関する のアプローチではあるが , 技術的側面から 報に関しては自力で追加調査する必要があ 入門書として , 本書は十分に適した書籍と 把握することのできる XML の入門書籍とい ると思う。 いえるだろう。 うのは欠かすことのできないものだろう。 なお , 残念ながら XML 上の Unicode に関 少なくとも , 筆者は今「 XML とは何か」と XML の基礎をはじめ , マークアップとは して , 日本語を利用するうえで注意すべき 問われても , それなりの返事はできるよう 何かといったことから , リンク , 表示 / プ 情報などはほとんどない。本書の国際化の になった。 ページは , 全ページ中たった 11 ページしか レゼンテーション , DTD による文書のモデ ル化 , XSLT などによる文書の変換 , そし ないのだ。国際的な技術のわりには , あま ・お問い合わせ ( 株 ) オライリー・ジャパン TEL 03-3356-5227 http://www.oreilly.co.jp/ ( 株 ) オーム社 TEL 03-3233-0641 ( 代 ) http://www.ohmsha.co.jp/ (. れⅧ朝響な、いツみ剏 g 一地気 入門 XML 0 0 一三 お朝 07 : Ⅳ 山本和彦、中見司 梶浦『規、物川公 O'R 日 LLY オライリー・リパン ( 恣岡梢 ) CMAGA Bookends 155
入門から実践まで DeIphi はじめての CGI&PerI はじめての JavaScript D 引 phi ゲームプロク ラミンクの工ッセンス Java Script PerI 本格派スクリプト言語とし ての JavaScript を基礎から 学んで、その魅力を最大限 -- ーに活用するための一冊 Ja a JavaScript のメソッド、プ ロバティなどをリファレン スとして参照でき、初心者 にもやさしく学べる解説書。 クラフィックの扱いから迷 。路の作成まで , ゲーム製作 のヒントになるような工ッ センスを網羅。あとはアイ テア次第で魅力的なゲーム を作り上げよう。付録 C D - ROM には , サンプルプログ ラムに加えて De ゆ hi6 Pers on Edition を収録 Cö-ROM 付 ・本体価格 : 3 , 400 円 •ISBN : 4-7973-1883- X 初心者でもわかりやすいス クリプトの実例を本文と C CGI&PerI D - ROM で豊富に紹介。全サ ンプルおよび、 Web サーバ の「 Apache 」と実行環境の 「 ActivePerIJ も CD-ROM に 収録。 はしめての uDel hi はしめての ・ゲム . プログラミンクの 工ッセンス ・日島電画 ー第をしを c ま日 OM イ、 ・本体価格 : 2 , 400 円 •ISBN : 4-7973-1859-7 ) ン 徹黝へ 高変 2 者型数 著判頁 一本体価格 : 2 , 400 円 •ISBN : 4-7973-1898-8 著者 : 升屋正人 判型 : B5 変判 : 304 ペーシ ・著者 : 根本高志 ・判型 : B5 変判 ・頁数 : 320 ペーシ = 増補改訂 オプシェクト指向から 工ーシェント指向へ DeIphi DB&Web プログラミンク 新 J ava 言語入門 ビキナー編 新 語 va 言語 J ava 読み物 Java の概念や全体像を手短 に理解するための一冊 の本だけで Java の基本的な 用法を知ることができ、実 際にプログラムを作成でき る。 Java の高度な機能の解 門第物 兇は避け、入門者が少ない 負担で Java を理解できるよ うに配慮されている。 ・著者 : 松浦健一郎 ・著者 : 林晴比古 ・頁数 : 408 ページ ・頁数 : 228 ページ ・判型 : B5 変判 ・本体価格 : 3 , 200 円 ・本体価格 : 1 , 600 円 司ゆき ・判型 : B5 変判 ・頁数 : 352 ペーシ •ISBN : 4-7973-1860-0 ASBN : 4-7973-1838-4 , 4 点すべて大増刷 ! ! ソフトウェアの世界の 2 大 パラダイムを第一人者がや 饗さしく解説。身近なたとえ と豊富なイラストで楽しく 読み進むうちに、重要キー ワードも自然にマスター ! ビギナーだけでなく再入門 したい中級者にもおすすめ の 1 冊 ! Delphi によるオフシェクト 曻 指向プロクラミンクの手法 から、 Object PascaI の言語 仕様、コンポーネントリファ レンス、テータベースアプ リケーションならびに Web サーバアプリケーションの 構築まで、実践的なプログ ラミンクテクニックを解説。 c 可日 0 付 オ◆ DeIphi 物 ~ ' DB Ⅵプログラ、ン ソフトウェアのこれからを知る人門書 ビギナー編 橋浦健一郎司ゆき 0 替聞比占 一三ロ ■著者 : 本位田真一 大須賀昭彦 ■判型 : 四六判 ■本体価格 : 2 , 400 円 •ISBN : 4-7973-1857-0 ソフトバンクバブリッシング株式会社 : お近くの書店にてお求め・ご注文下さい。 ( 表示価格は税別 ) お近くにお取扱店がない場合、左記ホームページから、もしくはお電話にてご注文下さい。 ・小社お問い合わせ TEL : 03-5549-1201 ※土・日・祝日を除く 10 : 00 ~ 12 : 00 13 : 00 ~ 17 : 00 http://books.softbank. CO. jp/ ・ E - メール : magazine@softbank.co.jp SOFT BANK Publishing