なるスラ ブログ
http://blog.narusura.com/


スライドの極意などを教えてくれる
10進数
 0から9までの10種類の数字を使って、9の次が1つ桁上がりする

2進数
 0と1の2種類の数字を使って、1の次が1つ桁上がりする
 コンピュータ内部では2進数が使われているが、2進数は桁数が非常に長くなるため、人が考えるときは、2進数と簡単に変換できる、8進数や16進数がよく使われる。

8進数
 0から7までの8種類の数字を使って、7の次が1つ桁上がりする

16進数
 0から9までの数字とA,B,C,D,E,Fの英字をを使って、Fの次が1つ桁上がりする


10進数 2進数 8進数 16進数
  0   0   0   0
  1   1   1   1
  2   10   2   2
  3   11   3   3
  4  100   4   4
  5  101   5   5
  6  110   6   6
  7  111   7   7
  8  1000   10   8
  9  1001   11   9
  10  1010   12   A
  11  1011   13   B
  12  1100   14   C
  13  1101   15   D
  14  1110   16   E
  15  1111   17   F
  16 10000  20    10


基数
 基本となる数
 例えば、10進数123.45は、

1×102+2×101+3×100+4×10-1+5×10-2
 100  10   1  1/10  1/100

と、表すことができる。
このように、各桁の重み付けに基本となる数を基数という。
10進数の基数は10
2進数の基数は2
8進数の基数は8
16進数の基数は16

N進数の各桁の重みは、小数点を基準に左へN0, N1, N2…と増えていき、小数点を基準に右へN-1, N-2…と減っていく。

【N進数の重み】
 … N2 N1 N0 .  N-1 N-2 …

【10進数の重み】
 … 102 101 100 .  10-1 10-2 …

【2進数の重み】
 … 22 21 20 .  2-1 2-2 …



基礎変換
 ある数を別の進数で表し直すこと
 例えば、2進数101.101を10進数で表すと、5.625になる。

N進数から10進数への基数変換
2進数の値を10進数で表すには、各桁に2進数の重みを掛けて足す。

[2進数]     1  0  1  .  1  0  1
         ×  ×  ×     ×  ×  ×
[2進数の重み]  4  2  1  .  1/2 1/4 1/8
         ↓   ↓   ↓        ↓   ↓   ↓
[掛けて足す]   4+  2+  1+   .  0.5+ 0+ 0.125 = 5.625

一般的に、N進数の値を10進数で表すには、各桁にN進数の重みを掛けて足す。

10進数からN進数への基数変換
*重み対応表を使う方法
10進数5.625を2進数で表すと、101.101となる。
2進数の重み対応表を活用して、大きい重みから1を入れるべきかを考えていく。
まず、4<5.625なので重みは4は1、4+2=6>5.625なので、重み2は0…という要領。

[2進数]     1  0  1  .  1  0  1
         ×  ×  ×     ×  ×  ×
[2進数の重み]  4  2  1  .  1/2 1/4 1/8
         ↓   ↓   ↓        ↓   ↓   ↓
[掛けて足す]   4+  2+  1+   .  0.5+ 0+ 0.125 = 5.625

一般的に、10進数からN進数で変換する場合は、N進数の重み対応表を活用する。

*割り算と掛け算を使う方法
10進数6.375を2進数で表すと、2進数110.011になる。
この場合。10進数6.375を整数部"6"と少数部"0.375"に分けて考える。

10進数の値の整数部を2進数で表すには、2で割って余りを下から並べる。

6 ÷ 2 = 3…0 ↑
      
3 ÷ 2 = 1…1 ↑
      
1 ÷ 2 = 0…1 ↑ 余りを下から並べて"110"となる

次のような計算方法もある

2)
2) 3 …0
2) 1 …1
  0 …1  余りを下から並べて"110"となる

10進数の値の少数部を2進数で表すには、2で掛けて整数部を順に並べる。

0.375 × 2 = 0.75 ↓ 少数部のみ引き継いでいく
      
0.75 ÷ 2 = 1.5 ↓
      
0.5 ÷ 2 = 1.0 ↓ 整数部を上から並べて"011"となる

最後に、整数部と少数部を合わせると、"110.011"になる。

このように、10進数の値をN進数で表すには、整数部はNで割って余りを下から並べ、少数部はNを掛けて整数部の順に並べて求めることもできる。


2進数と8進数・16進数の関係
 2進数を8進数、16進数の変換はもっと簡単に行える。

2進数の3桁は、8進数の1桁に対応している(23=8)。
2進数の値を8進数で表すには、小数点を基準に、3桁ずつ区切って、それぞれ8進数で表す。
3桁にならない場合は、0を補う。

2進数1100.01を8進数で表すと、14.2になる。

[2進数]             1  1  0  0  .  0  1
         0を補う
[3桁ずつ区切る] 0  0  1  1  0  0  .  0  1  0
         ×  ×  ×  ×  ×  ×     ×  ×  ×
[2進数の重み]  4  2  1  4  2  1  .  4  2  1    
         ↓   ↓   ↓   ↓   ↓   ↓        ↓   ↓   ↓
[掛けて足す]   0+  0+  1+   4+  0+  0+  .  0+  2+  0
             ↓           ↓                ↓    
[8進数]        1        4      .     2   


同じイメージで16進数も変換できる。
2進数の4桁は、16進数の1桁に対応している(24=16)。
2進数の値を16進数で表すには、小数点を基準に、4桁ずつ区切って、それぞれ16進数で表す。
4桁にならない場合は、0を補う。
2進数1100.01を16進数で表すと、C.4になる。

[2進数]     1  1  0  0  .  0  1
                           0を補う
[4桁ずつ区切る] 1  1  0  0  .  0  1  0  0
         ×  ×  ×  ×     ×  ×  ×  ×
[2進数の重み]  8  4  2  1  .  8  4  2  1    
         ↓   ↓   ↓   ↓        ↓   ↓   ↓   ↓
[掛けて足す]    8+  4+  0+  0+  .  0+  4+  0+  0
            ↓            ↓    
[掛けて足す]        C      .      4   

16進数なので、12ではなくCになることに注意。


8進数から2進数に変換するときは8進数1桁を2進数3桁に、
16進数から2進数に変換するときは16進数を1桁を2進数4桁に、
2進数の重み対応表を活用して今の逆を考える。
1950年
Webの生みの親 誕生

Webの生みの親はイギリス人のティム・バーナーズ=リー博士。
インターネットの中でももっとも重要なシステムであるWWW(World Wide Web)を発明した。
2012年のロンドン五輪で開会式の大トリとして登場したことが記憶にあたらしい。

http://www.mimoenishikawa.com など URLによく使われている 「www」の部分は、もちろんティムの考えた WWW に由来する。
ティムはどうしてそのシステムに WWW という名前をつけたのか。


1991年
WWWの由来

ティムはCERN(セルン)という世界的に有名なスイスにある研究機関に在籍していた。
CERNは、日本語では欧州原子核研究機構と言われていて、素粒子に関する物理学的な研究を中心に行っているところ。
とても長い時間のかかる研究をしている機関なので、数千人、数万人の研究者が入れ替わり立ち替わりで研究を進めている。

CERNでは、こういった研究者の情報やデータ閲覧をスムーズにするシステムを開発できないかという話が持ち上がり、その実現に動いたのが、当時コンピュータ技術者としてCERNに在籍していたティム・バーナーズ=リーだった。
ティムは、研究に関係のある文献やデータをとにかく1つのコンピュータに集めていった。
さらにその文書同士を「リンク」させる仕組みを計画し、それを実現した。
これが、今でも私たちが使っているWorld Wide Web、いわゆるWebの始まり。

ティムは、このシステムを発表する時にどんな名前にするかとても悩んでいた。
たとえば「The Information Mine」という、「情報鉱山」という候補があった。
これは頭文字を取ると「TIM(ティム)」になる。
さすがにそれは自分本位すぎる!と思って止めたんだ、と後に本人のWebサイトで語られている。

他には「文書同士が繋がる情報網」ということで「編み目」を意味する「Mesh(メッシュ)」という名前も候補にあがったが、これは「混乱」を意味する「Mess(メス)」という言葉に聞き間違えるということで止めた。
「World Wide Mesh」=「世界規模の混乱」はむしろ避けたい。
悩みに悩んで、世界中に広がる情報網が「クモの巣」のように見えるという理由で、「世界中に広がるクモの巣」=「World Wide Web(WWW)」と名付けた。
私たちが当たり前のように使っているWebサイトという言葉のWebの部分はティムのそういうひらめきから誕生した言葉。


Webサイトの誕生

1991年8月6日、ティムは世界で最初のWebサイトを公開した。
一般的にはこの日をWebの誕生日とすることが多い。
ティムがWebを発表した時の目玉となったのが、「Hyper Text(ハイパーテキスト)」と呼ばれる文書同士を繋げる仕組み。
ハイパーテキストとは、その名前の通り「すごい文字」ということ。
今では当たり前になっていることだが、文字をクリックすると他のWebページに移動するいわゆる「リンク」という機能がある。
その機能を持っている文書のことを「ハイパーテキスト」と呼んだ。
ティムがWeb(サイト)を考案したそもそもの目的が、研究員のデータや文献を相互に繋げることだった。
ティムは、それらのWebサイトをつくるための約束事を「HyperText Markup Language(ハイパーテキスト・マークアップ・ランゲージ)の頭文字をとってHTMLと名付けた。
ティムってほんとうにネーミングのセンスも抜群。

ティムはこのWebサイトを公開するのと同時に「WWWクライアント」という名前のソフトウェアも発表した。
Webサイトを見るための「Webブラウザー」というもの。
現在では、たとえば「Internet Explorer」、「Google Chrome」、「Firefox」、iPhoneやiPadでも使われている「Safari」などが有名。
ティムはこの「WWWクライアント」というソフトを無料で世界に公開した。
しかもただソフトを公開したのではなく、ソフトがどのように作られているかという、裏側の仕組みそのものを無料で公開した。
特許も一切取らずに。
これにより、Webは誰のものでもなく、みんなが自由に使えるものとなり、おかげで現在のような発展をすることができた。


1994年~
ブラウザー戦争の勃発

誰もが自由に使えるようになったWebというのはビジネス的に見ても大チャンス。
これに目をつけて、続々と新しいWebブラウザーが誕生していく。
始めに、アメリカの国立スーパーコンピュータ応用研究所(NCSA)がMosaic(モザイク)というブラウザを作った。
Mosaicは画像の表示できるWebブラウザーということでたちまち大人気となった。

その後、NetscapeやInternet ExplorerといったWebブラウザーが1995年前後にリリースされ、この2つが数年間は2大ブラウザーとして切磋琢磨していく。
1995年というのは「Windows 95」が発売された年で一般家庭に徐々にパソコンが広がりはじめた頃。

一方で、複数のWebブラウザーの存在というのはメリットばかりではないという事実もあった。
競争が生まれ、Webブラウザーごとにオリジナルの派手な機能を追加しようとして、それぞれに独自のルールを作ってしまった。
「ブラウザー戦争」が勃発。
これが、Webサイトを開発するWebデザイナーやWebエンジニアにとっては大変な混乱を招くことになってしまった。
まったく同じWebサイトを表示させたいだけなのにNetscapeとInternet Explorerのそれぞれのルールで2つのWebサイトを作らなければいけないという状況になってしまった。

そこで、HTMLのルール化(標準化)が必要だということで、ティムはWorld Wide Web Consortium(W3C)を設立した。


W3C設立

Webを発明した当初からティムが所属していたCERNでは、本来の物理粒子学の研究に力を注ぎたいという意向があった。
そんなときにティムにとって大きな力になったのがマサチューセッツ工科大学(MIT)の教授であるマイケル・ダートウゾス博士。
マイケルは元々、コンピュータ科学の研究者としてMITで活躍をしていてWebの可能性に、強く興味を示していた。

CERNや、インターネットのベースとなる技術を作ったアメリカ国防省のサポートを得て、1994年に、マイケルが所長を務めているMITのコンピュータ科学研究所(LCS、現在のCSAIL)にW3Cを設立し、同時にティムもMITに所属することになった。
意外にもWebはヨーロッパ生まれ、アメリカ育ち。

現在のW3Cは、アメリカのMITと日本の慶應義塾大学、フランスの欧州情報処理数学研究コンソーシアム、そして中国の北京航空大学の4つのホスト機関を中心に世界で約400社のW3Cメンバー企業との共同運営で進められてる。
日本も23のITを牽引する企業(2013年2月時点)がメンバーとして所属している。


2013年
HTML5の誕生

グーグル、アマゾン、フェイスブック、iPhoneなど数えきれないほどのサービスやビジネスが誕生してきた。
2014年は、W3CがHTMLのルールを作り始めてちょうど20年の節目を迎える。
この年にW3Cが満を持して「HTML5」という次世代HTMLを正式にリリースする予定になっている。
HTML5は、これまでのWebサイトを作るための技術としての役割だけでなく、アプリの制作を前提とすることなど大幅な進化を遂げる。
Windowsだろうと、Macであろうと、iPhoneでも、Androidでも、どんな環境でも同じようにアプリを動かすことができる。

もっと言うと、パソコンやスマートフォンだけではない。
HTML5が動く場所は、ブラウザーさえあれば、どこだって良い。
分かり易いところで言うと、テレビ、カーナビ、駅の電子看板など。
最近は、エアコン、冷蔵庫、洗濯機などモニタを備えているものなら、どこにでもブラウザーを載せて、Webと繋げる動きが毎日のようにニュースになってきている。
一つの事例を紹介。
2013年9月にNHKが開始したばかりの「Hybridcast(ハイブリッドキャスト)」というサービスがある。
テレビ放送とインターネット通信を融合させて、テレビ番組に合わせた情報をテレビ画面に表示したり、視聴者のスマホやタブレット端末とリアルタイムに通信を行ったりするような新しいテレビの形を作るサービス。

たとえば、クイズ番組をお父さん、お母さん、娘の3人で見ているとする。
テレビ放送の中で司会者が問題を出すと、3人のスマートフォンに解答の選択肢が表示され、それぞれが答えを選択する。
司会者が、テレビの中の回答席にいる芸能人に向けて「一斉にフリップオープン」と合図を出すと、画面上には3人が選んだ回答も一緒に表示され、まるで一緒にクイズ番組に参加しているような、そんな新しいクイズ番組を作ることも可能になる。

NHKは、このようなコンテンツをHTML5で作ることにしている。
世界で標準化を進めている技術であり、かつ無料で使えるWebだからこそ、コンテンツを制作する技術者の育成/確保もしやすいし、Webブラウザーさえ搭載していればテレビメーカーがどこであろうと同じように動作させることができる。
近い将来、Webデザイナーをテレビ局や制作会社が大量にスカウトするという現象が起きるかもしれない。

テレビ業界の一例を紹介したが、同じような動きが、家電業界、広告業界、自動車業界、出版業界など、ここでは挙げきれないほどたくさんの業界で起きている。
一方でIT業界を常にリードする米国ですら、2020年には140万人の求人に対して、100万人ものIT人材不足が予想されている。
HTML5とHTML5スキルを持つ人材の活躍は、どこまで広がっていくのか、業界の誰もが注目をしているところである。