初心者のためのホームページ作り:第40号

                   毎週金曜日配信 What's New 2003/2/21
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
           初心者のためのホームページ作り
           http://www.scollabo.com/banban/
                <第40号>

             banban@scollabo.com

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

 当講座は、初心者や中級者が正しい文法と作法を身につけて、 プロ級の本格的
な Webページ作成に役立つことを目的に配信されております。

 当講座ではHTML4.01及び XHTML1.1 を中心とした文法が主体となっています。
なお、このマガジンは等幅フォントで快適に読めるようになります。

 今週の課題 ■ JavaScript講座 第6回
             ■ Webサービス --- Microsoftの.NET構想

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆JavaScript講座 --- JavaScriptの言語仕様

 今までのJavaScript講座ではオブジェクトを主体に取り上げてきました。今回
は、スクリプトの設計に関わるJavaScript言語仕様について解説します。
 従来より一部重複する部分もありますが、より詳細な部分まで説明を加えてい
きます。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆JavaScriptの基礎知識 --- 言語仕様

■予約語
 予約語とは、JavaScriptの初期値として持っている処理系側で、既に使用され
 ている「名前」のことを指し、スクリプトで利用する変数名や関数名として使
 うことができないキーワードです。
  例えば forというキーワードは、JavaScriptの制御文のキーワードとして使
 われているので、同じ名前の変数名に割り当てることができません。

  ●JavaScript予約語一覧
  abstract、boolean、break、byte、case、catch、char、class、const、
  continue、default、do、double、else、extends、false、final、finally、
  float、for、function、goto、if、implements、import、in、instanceof、
  int、interface、long、native、new、null、package、private、protected、
  public、return、short、static、super、switch、synchronized、this、
  throw、throws、transient、true、try、var、void、while、with、

■文の区切り
 通常、1行に1つの実行文を記述します。実行文の区切りはセミコロン「;」
 を用いています。
  実行文は、場合によっては1行に2つ以上の実行文を記述する場合もありま
 すが、セミコロンで明確に区切る必要があります。なお、1行だけの実行文で
 はセミコロンを省略することも可能です。

 1行で複数の実行文のサンプル
  a = 1; b = 2; c = a + b;

■ブロック
 JavaScriptには様々な制御文が用意されています。例えば、a が10かどうかを
 判定し、もし真(条件が成り立つ)なら、a に1を加え、偽(条件が成り立た
 ない)の場合は、a から1を引く処理を考えてみると、ブロックという概念が
 必要になります。                  ̄ ̄ ̄ ̄

  if (a == 10) {
       a = a + 1;
      }
      else {
           a = a - 1;
      }

 { と } で囲まれた部分は、1つの実行文の「かたまり」として扱われます。
 これが、1つのブロックです。上記のような制御文や関数の実行文なども、こ
 うしたブロックを用いて記述します。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆オブジェクト、メソッド、プロパティ
JavaScriptでは、必ずというくらい利用されるオブジェクトですが、オブジェク
トとは日本語に直訳すると「もの」という意味があります。JavaScriptでは多く
のオブジェクトが定義されています。
 オブジェクトを利用することで、複雑なプログラムを組むことなく、ページの
変化やある種の動作などの効果を得ることができます。

■オブジェクト
 JavaScriptでは、ウィンドウ、ドキュメント、フォーム、文字列など、ぺ一ジ
 の表示に関わるさまざまなモノ(Object)を制御します。これらのモノはすべ
 て「オブジェクト」と呼ばれます。それぞれのオブジェクトには、状態を変更
 するための「プロパティ」や、命令を実行するための「メソッド」が多数用意
 されています。 

■メソッド
	メソッドとはあらかじめ用意されている命令です。JavaScriptには、オブジェ
 クトごとにさまざまなメソッドがあります。たとえば、文字列オブジェクトに
 は文字列の色やサイズを変更したり、文字列の検索や分割を行ったりするメソ
 ッドがあります。メソッドを使用する際には、必要に応じてカッコ内に引数を
 指定します。

■プロパティ
 プロパティとはオブジェクトの属性です。たとえば、document(ドキュメント)
 オブジェクトにはドキュメントの背景色や文字色、ドキュメントの URL、タイト
 ル、ドメインなどの属牲があります。これらをスクリプトを使って参照または設
 定することによって、ページの背景色を変えたり、別のページに移動させるなど
  の動作を実現できます。 

 各オブジェクトが持つメソッドやプロパティに関しては、紙面の関係から割愛
させていただきます。なお、詳しくは下記ページを参照ください。

  オブジェクトリファレンス
  http://www.scollabo.com/banban/java/ref.html

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆JavaScriptで扱うことができるデータ型

■データ型
 JavaScriptでは、大きく分けて次に示す3つのデータ型と null が扱えます。

 1.数値型  数値を扱うためのタイプ
 2.論理型  真(true)と、偽(false)のいずれかを取るタイプ
 3.文字列型 "Hello" などの文字列を扱うタイプ
 4、null   無効な値を示す特殊な値(ヌルコードと呼ぶ)

 これら以外にもオブジェクトで定義することにより、日付型などのような特殊
 な形式を扱うことも可能です。
  また、この他にも特殊文字や色を表す定数などもあります。

■定数
 プログラムの中で実行時に変化させる必要が無く、任意の値を指定するために
 使用するものを「定数」と呼びます。
  例えば、a = 12; や b = "value"; などのような使われ方をした場合、12や
 value は定数と呼ばれます。
  定数には、以下のような形式があります。

 ●整数型定数
  先頭の数値が 0以外の数字または、+、- の符号で始まる数は 10進数の整数
    として扱われます。(例:123、+5、-24)

 ●浮動小数点型定数
  次のような形式の数は、浮動小数点として扱われます。
  [ ] で囲まれたパラメータはオプションですので、必ずしも必要ではありま
  せん。<>で囲まれた数値は小数点以下の数値です。

  1.[符号(+/-)][数値].<数値> 例:1.414、.12、-0.5
  2.[符号(+/-)][数値].[数値]E<符号(+/-)><数値> 例:0.27e+1、15.2e+1

  2)の例は、浮動小数点特有の書き方ですが、e の後ろの数字は、小数点を
  どのようにずらすかを示しています。例えば、0.27e-2 は 0.0027 を示し、
  15.2e+1 は 152.0 を示します。

 ●8進数、16進数
 コンピューターの基本的な数値は 0 と 1 の2進数であらわしています。
  8進数や16進数とは、2進数を人間が見やすい形にするためで、2進数の3
 桁を一区切りにすると、8進数、4桁を一区切りにすると16進数に直すことが
 できます。JavaScriptでは、8進数および16進数を扱うことができます。

 8進数
 8進数は、0 から 7 までの数を利用して表現し、7の次は桁上がりして10とな
 ります。すなわち、8進数の25は、10進数では 8*2+5 で 21ということになり
 ます。
  JavaScriptでは、8進数を10進数と区別するために、値の前に 0を付けて表
 現します。
   例:8進数  05  021
     10進数     5     17

 16進数
  16進数では、0から 9までの数字と、Aから Fまでのアルファベットを使用し、
 10進数でいう 0から15までの数を表します。
  すなわち、16進数の 1A は、10進数の 25 ということになります。
 JavaScriptでは、値の先頭に 0x を付け、16進数では次のように記述します。
   例: 0x1F1A

 ●論理型定数
 論理型とは、「真」または「偽」の2つの値をとる型です。条件式を判断した
 場合に成り立つ時に「真:true」を、成り立たない時には 「偽:false」を返
 します。
  変数にこれらの値を直接代入する際には、真、偽はそれぞれ true、falseと
 いう名前で以下のように代入します。
   例: a = true;
            b = false;

  また、次のような使われ方もします。

   例: while (true) {
              :
             if ( a == x ) break;
                :
              }

  ここでは while文の評価で常に値が「真」に返るようにして、ブロックの途
 中で条件式( a は x と等しいか?)を満たした場合にのみ、このブロックを
 抜けるような動作をします。

 ●文字型定数
 文字型の定数は、ダブルコート( " )またはシングルコート( ' )で囲まれ
 た文字としてあらわします。
   例: a = "hello JavaScript";

  なお、ダブルコートとシングルコートの対応は、間違えやすいので気をつけ
 てください。

■特殊文字
 改行コード等の文字として表せない文字は、一般的に特殊文字と呼ばれていま
 す。JavaScriptでは、以下のような形で表記します。

   \b  ---  バックスペース
   \f  ---  form のフィールド
      \n  ---  改行
   \r  ---  キャリッジ・リターン
   \t  ---  タブ

■色(Color Name)
 JavaScriptで扱える色名は、全136色、138種の色名があります。中には、非常
 にロマンチックな名前もあます。実際の色の表示にはユーザ環境に依存するも
 のが圧倒的に多く、必ずしも望む色に表示するとは限りません。
   なお、紙面では実際の色が表現できませんので、以下のページに掲載してい
 ますので、参考までにご覧ください。

  JavaScriptで扱う色名 カラーパレット
  http://www.scollabo.com/banban/java/colorchart.html

■変数
 変数とは、プログラムの中でデータを汎用的に扱う際に使用します。データの
 入れ物とお考えください。
  例えば、次のようなプログラムを書くことにより、a には 20 という数字が
 入ります。これを「代入」と呼びます。代入させる値は = の後に記述します。

    a = 20;

  そして、次のように書くことにより、a の中身が1つ加えられ a は 21にな
 ります。

      a = 20;
   a = a + 1;

 ●変数名の規則
 基本的に変数名は任意ですので、自由に名前をつけることができますが、最低
 限の規則があります。

  1.変数名の先頭はアルファベット「a〜z」、「A〜Z」、アンダーバーのい
    ずれかの文字で始めなければならない。

  2.変数名の名前は、アルファベット「a〜z」、「A〜Z」、「0〜9」、アン
    ダーバーの文字しか使用してはいけない。ハイフン(-)などは使えない。

  3.大文字と小文字は厳密に区別されるため a と A は違うものとして判断
    される。(bgColorと bgcolorもまったく違うものとして判断される)

  4.あらかじめ設定されている予約語を変数名として使用することができな
    いため、、myとかアンダーバーなどを付けて記述するようにします。
     例: Date → myDate、_Date

  ●グローバル宣言
 変数名を宣言し、任意の値で初期化するためには varを使用します。一時的に
 使用する変数では、必ずしも必要ありませんが、この宣言を用いることで、有
 効ブロック内で変数としてきちんと扱われますので、宣言することが推奨され
 ています。
  構文としては次のような形になります。なお、[ ] で囲まれたパラメータは
 オプションですので、必ずしも必要ありません。

   var 変数名[ = 初期値]

  変数の有効ブロックは、関数内で宣言した場合は、関数の範囲内であり、関
 数の外で宣言した場合はグローバル関数(プログラム中のどこからでも、操作
 や参照が可能な変数)として扱われます。
  なお、グローバル関数名として使用されているものと、関数内で使用される
 ローカル関数名が同じである場合などには、必ず宣言が必要となります。また
 var は、定数などの特定の値に名前をつけて参照したい場合などにも、便利に
 使用することができます。

 ●型変換
 JavaScriptでは、データの型に関して厳密なチェックは行われず、必要に応じ
 て変化し適用されます。
  例えば次のように変数banに数値を代入したとします。

   var ban = 123;

    この状態では、banは数値型の変数として扱われますが、

   ban = "数値は" + 123;

    として代入した場合、数値型である 123は文字列の "123"として扱われ、結
  果として、banは「数値は123」という値が代入されて、文字型変数として扱
  われるようになります。
   曖昧といえば曖昧ですが、場面によっては便利な機能です。

■配列の作り方、使い方
 配列とは、配列の名前および添字(インデックス)を組み合わせて示すことが
 できるセットのことです。インデックスの中身(配列された値)を要素とも呼
 びます。
  JavaScriptは明確な配列データ型をもちませんが、配列およびオブジェクト
 のプロパティの格納形式を利用することで、簡単に配列を作ることができます。
  例えば、次に示すような関数で、配列オブジェクト型を定義することができ
 ます。

     function MakeArray(n) {
           this.length = n;
           for ( var i =1; i <= n; i ++ ) {
              this[i] = 0
           return this
          }
      }

 この関数は、最初のプロパティのように配列を定義し、
 その長さを length(index が 0の配列要素の中にこれが入る)として持たせ、
 それに続いて配列を作成し、それらの値を 0に初期化します。
  配列を作成する際には、この関数 newで配列名を添えて呼びます。

   myArray = new MakeArray(10);

  これは、10個の要素(配列の値=インデックス)を持つ myArrayと呼ばれた
 配列を作り、その中身を 0に初期化します。この配列の要素は、次のように通
 常の変数と同じように使用することが可能です。

   myArray[1] = 1
      myArray[2] = 3.14
      myArray[3] = "hello"

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆式、演算子
JavaScriptでは、他のプログラム言語同様に様々な演算子を持ち、そのオペレー
タ(演算子の記号)を用いて、式を作成します。ただし、式の中には数学的には
意味不明のものがありますが、あくまでもプログラム中に利用する形として覚え
てください。

 ■評価
 例えば、= オペレータ(演算子)は、右辺を評価し、その結果を左辺に代入す
 るという意味を持ちます。
  次の式では、右辺を評価した後に、その結果を左辺の変数に代入します。

   a = 10;

  また、次の式では右辺を評価し、変数に入っている数値に1を足して左辺に
 代入する意味を持ちます。このような書き方は数学的には間違いですが、プロ
 グラムでは数学的な意味とは異なった解釈で使用されています。

   a = 10;
   a = a + 1;

  つまり、初期値として a に 10を代入し、10という数値を持った aに 1を加
 え、結果として a は 11という数値を持った変数に代入されることをこの式は
 意味しています。

 ■条件演算子
 条件演算子とは、状態に基づいて2つのうちの片方の値を取る式です。
  構文としては以下の通りです。

   (状態)? 値1 : 値2

  この式は「状態」が真(true)であれば値1を、それ以外であれば値2を評
 価の結果として返します。
  例として年齢を表す変数に18歳未満の値が入っていれば「未成年」、それ以
 外であれば「成年」という文字列を代入するような式は、以下の通りです。

   status = (age >= 18) ? "成年" : "未成年"

 ■JavaScriptで使用可能な演算子
 下記にある表は、優先順位の低いものから並べたJavaScriptで使用可能な演算
 子です。JavaScriptのプログラム内では、この優先順位に従って式が評価され
 ます。
  例えば、

   a = x + y * z;
    この場合は、「*」が「+」よりも優先順位が高いため、y * z が実行された
 後に、その結果に x が加算されて a に代入します。

 代入演算子     =、+=、-=、*=、/=、&=、<<=、>>=、>>>=、&=、|=、^=
 条件演算子     ?、:
 論理和       ||
 論理積       &&
  ビット論理和    |
  ビット排他的論理和 ^
 ビット論理積    &
 比較演算子(等価) ==、!=
 比較演算子     <、<=、>、>=
 シフト演算子    <<、>>、>>>
 加算/減算      +、-
 乗算/除算/剰余   +、/、%
 反転/インクリメント !、~、-、++,--
 関数呼び出し    ()
 配列インデックス  []

 それぞれの詳しい演算子の解説は「今週のおさらい」に掲載しましたので、参
 照してください。
  JavaScript演算子
  http://www.scollabo.com/banban/magazine/review_040.html#operator

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆Webサービス --- Microsoftの.NET(ドットネット)構想(後編)

  ■Webサービスとは?
 単なるソフトウェアを構成する要素にとどまらず Webサービス自身の機能を記
  述し、他の Webサービスを探し出し、ダイナミックに相互作用することができ
 ます。
  例えば、テレビコマーシャルなどにも使われましたが、実際にメルセデス社
 でも同じ構想を持って提供することを策定しています。

  自動車を運転する際、ナビゲーション情報から目的地の天気や駐車場の案内
 また、到着時間や休憩時間を算出します。車に異常があれば、即座に運転者に
 その情報が伝えられ、危険と判断するとエンジンを止め、メンテナンスを要求
 します。

  万が一、自動車を運転中に事故に遭遇した場合、自動車が運転者や同乗者か
 らの応答がないとき、即座に救急車と警察に通報します。それと同時に契約し
 ている保険会社に連絡し、あわせて家族、勤務先にもメール発信します。もち
 ろん、運転者や同乗者からのリクエストにも音声によって応えます。

  それだけではありません。通常、救急病院を探すのは救急隊員の役目ですが
  Webサービスは最寄の救急病院を片っ端から連絡し予約を取り、救急隊員に伝
 え病院のたらいまわしを防止し、一刻も早い治療が受けられるようにします。
  また、最寄の自動車ディーラーにも連絡し、壊れた車の回収と修理を依頼し
 ます。自動車を運転するユーザの切実なニーズが満たされる例でしょう。

  これらは、自動車と Webサーバがつながって初めて実現します。サーバはあ
 らゆる情報を持つ各サーバやデータベースともリンクし、必要と思える自動車
 に関するサービスをユーザに提供します。

  これはひとつの Webサービスの例に過ぎません。

  Webサービスを実現するための垣根は、プラットフォームや機械の違いを乗り
 越えなければなりません。また、そのためのインフラの整備も欠かせません。

  マイクロソフト社の.NET構想は、顧客のニーズに応じて個別に提供する Web
 サービスに軸をおいて開発されています。
  ネットワークが情報の発信や閲覧のために利用されるだけでなく、個別の生
 活環境に応じた個別の要求に答えるサービスの提供へ転換するために、.NETの
 構想があると言えるでしょう。

  ただし、.NET構想はマイクロソフト社だけで実現するものではありません。
 その構想に則った多くの企業側の統一したハードやソフトの環境が必要になっ
 てきます。
  また、こうした Webサービスは他社でも同じ構想を持って開発されており、
 マイクロソフト社だけで囲い込むのは無理があるでしょう。

 ■.NETに対抗する「Java」
 サン・マイクロシステムズ社の「Java」は、プラットフォームに依存しない有
 名な開発言語で、多くの技術者から賞賛され愛用されています。
  その人気は「開発者の間で.NETとJavaの人気がほぼ二分されている」といわ
 れるほどで、Webサービスのプラットフォームの開発の63%を占めています。
  現在の Webサービスアプリの開発を巡るプラットフォームの競争は激しくな
 っており、優劣がつかない状態ですが、今後の課題としてセキュリティ問題な
 どが挙げられています。

   XMLがそのベースとなって、インターネットは今、大きな変革期を迎えてい
 ることは間違いない事実です。

 ■まとめ
 10年前には考えられないネットワークの技術が、私たちの生活の中に深く入り
 込んでします。インターネットとユーザのタスクがよりシームレスに連携し、
 ネットワークを意識することなく作業できる環境に近づくことになります。

  ユーザのデータはすべてネットワーク上に置かれ、ユーザはどのコンピュー
 タを使っても認証(ID、パスワードあるいは指紋や音声認識など)することに
 よって自分のネットワークにログインし、自分のデスクトップを呼び寄せるこ
 とができるユピキタス(いつでもどこでもどらえもん)コンピューティング環
 境を実現します。

  インターネットをブラウザで閲覧するといった現在の利用法が、根底から変
 わってしまうことになることでしょう。
  .COM(ドットコム)から.NET(ドットネット)への時代の変化は劇的です。

                                                              (つづく)

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

今回はここまで、ではでは・・
今週のおさらいは Webページにも掲載しましたので、是非見ておいてください。
Webページでは HTML文の実行結果のサンプルもあり、より分かりやすく説明して
います。あわせて過去の記事のおさらいも掲載しています。

(今週のおさらい)JavaScript言語仕様の補足説明を掲載しました。
http://www.scollabo.com/banban/magazine/backnm_040.html

 次回は、XHTML1.1モジュールについて詳しく解説します。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

質問・ご意見ははこちらまで→ banban@scollabo.com
なお、ご質問の際には、お使いのOS、通常使っているブラウザ、使っているテキ
ストエディタなど、なるべく分かりやすく制作環境を明記していただけると回答
しやすくなると思います。
 ただし、平日の昼間は会社勤めなので、返事が遅れることがあります。ご了承
ください。

発行者 ばんばん
協 力 スズキ・コラボレーション http://www.scollabo.com/
配信エンジン まぐまぐ http://www.mag2.com/  (ID 0000090196)

誤字・脱字・変換ミス・表現欠乏などには平にご容赦願います。なお、マガジン
のすべての記述に誤りや重大なスペルミスがある場合、叱咤と罵声と共に私まで
突きつけていただくと幸いに思います。

バックナンバー こちらで公開しています。
プレーンテキスト  http://www.scollabo.com/banban/magazine/magazine.html
各号のおさらい  http://www.scollabo.com/banban/magazine/
アーカイブ    http://www.scollabo.com/banban/daf/archive.html
講座教材     http://www.scollabo.com/banban/daf/material.html
まぐまぐの過去記事 http://backno.mag2.com/reader/Back?id=0000090196

配信の変更・中止はこちらです。
個別の手続きは受け付けていませんので、ご面倒でも各自でお願いできれば助か
ります。
当サイトにて http://www.scollabo.com/banban/magazine/top.html
まぐまぐにて http://www.mag2.com/m/0000090196.htm

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

<えでぃた〜ず・るーむ>
おとといの夜、私のメインパソコンのハードディスクがいきなりクラッシュし、
2度と立ち上げることができなくなりました。
 いろいろなツールを用いて回復を図りましたが、結局ハードディスクの表面不
良を発生していたため、修復できませんでした。数日前からカリカリとディスク
から異音を発していたのはそのせいだったのかと、後になって知ることができま
した。要するに、予兆はあったわけです。

 過去にもハードディスクのトラブルは何回も経験していたので、データのバッ
クアップだけは毎日欠かさず行っていたのが、不幸中の幸いです。作業途中だっ
たメールマガジンの原稿が消失したのは残念でしたが・・

 その後、別のハードディスクに交換して、OSの再インストールを始めたのです
が、今度はCD-ROMエラーが発生してしまいました。「泣き面にハチ」とはまさに
こうしたことでしょう。本当に泣きたくなりました。
 OSインストール用のCD-ROMをよくよく見るとキズがあったために、読み取りエ
ラーが発生してしまったので、最後の手段と思って、CDディスクの表面を柔らか
い布に練り歯磨きを少量つけてこすってみました。見事CD-ROMディスクが復活し
インストールすることができました。

 結局、OSがインストールできたのは午前3時前だったので、その後の作業は翌
日に廻したのですが、翌日、つまり昨日の帰宅が遠方に出かけたために遅くなっ
てしまい、とりあえずソフトウェアのインストールだけを済ませ、つい先ほどす
べてのデータのインストールと各種の設定が終わったばかりです。
 (2月20日午前0:20現在)このマガジンの原稿だけは、他のパソコンで作成し
て配信処理を行いました。

 この間、読者からの質問などに回答する時間がなくて、失礼してしまいました。
メールは、他のパソコンでも受信することは可能でしたが、冷静な気持ちになっ
て返事を出すという状況ではなかったことをご理解ください。

 ある意味では、トラブルもまた楽しいもので、こんなことを繰り返しながら、
少しずつスキルアップするものなのでしょう。その気になれば、多少のトラブル
は、「気合」と「経験」と少しの「勇気」で何とかなるものです、ホント。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

◆著作権について
個人がご自分のPCに保存して利用する以外の記事の転載、引用は基本的に応じ
ておりません。記事中の内容について、無断で使用することを固く禁じます。
 なお、記事中のスタイルシート、HTMLをご自分のページ作成に自由に使ってい
ただいても差し支えありません。

            Copyright(C) 2002-2003  www.scollabo.com/banban/
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓



Copyright(C) 2002-3003 banban@scollabo.com