#Web・インターネットについて
###『痛快!コンピュータ学』
東京大学教授の坂村健氏による著。1999年の書籍だが、名著に名を連ねているだけありとても読みやすく、コンピュータの誕生から発展までをインプットできる。
・なぜコンピュータは難しいのか
・19-20世紀はアインシュタイン率いる「世界を動かす原理が何かを物質とエネルギーという観点から解き明かす」物理学の時代であったが、情報は物理学を超えた存在である
・より多くの情報をいち早く手にし、正しい情報を取捨選択したものが勝つ。
・コンピュータは0と1という数字のみで莫大な情報を表せるようにコード化されているが、ツー・トンの2音だけで情報を伝達するモールス信号はコンピュータのコード化の手本。アルファベットの中でも使用頻度の高いEやTはより短い音で割り当てられているが、それに日本政府は気づかずにイロハを当てはめてしまったので非合理的な伝達手段となっている。
・戦争に勝つ為に莫大な予算を組んで優秀な研究者を集めたおかげでコンピュータが出来た。
・第二次世界大戦は暗号化技術が未発達だったせいで、ドイツ日本の戦略は諸外国に筒抜けだった。
・プロジェクト・グーテンベルク=書籍のデジタル化、デジタル図書館に関するプロジェクト
・あらゆる情報は全て0と1で表せるブール代数を発明した英数学者・ジョージ・ブール。アリストテレスの三段論法で論理学(人間が正しい判断を下す為の論理の立て方、推測の仕方を研究する学問)は哲学の一種と考えられていたが、それを数学に置き換えた。
・19世紀の産業革命時代、英国で超高性能機械式計算機を作ろうとしたケンブリッジ大学数学教授で銀行家子息のチャールズ・バベッジ。実用性とは程遠かったもののコンピュータの先駆けとなった
・今日のコンピュータ学の理論基礎を気づいた英国人アラン・チューリング。ナチスのエニグマ解読機もコンピュータの先駆けとなった。
・現在の実用化されたコンピュータの基礎を築いたENIAC創作者米・モークリー、エッカート、ノイマン=>フォン・ノイマン型のPCの普及
・ENIAC=世界初の実用型コンピュータ。真空管で論理回路が作られ、係員が長さ45m幅1m高さ3mの巨大機械の中を駆け回って、真空管を取り替えていた。
・コンピュータの三つの部品AND、OR、NOT。論理回路。
・巨大電卓とコンピュータの違いはプログラムが組めること。高級言語>アセンブリ>C#Javaというプログラミング言語の発展
・インタープリタ=通訳者。一語一語同時通訳する。プログラムに問題があれば逐次発覚しやすいのがメリット
・コンパイラ=翻訳者。プログラムの処理速度が早くプログラム自体もコンパクトなのがメリット。現在はこちらが主流。
・全米一稼ぐ男創業のIBM。アメリカの大恐慌にも関わらずIBMの会計用機械はどんどん売れた。NYの田舎出身のセールスマンから大富豪になったアメリカン・ドリームの申し子「トマス・ワトソン」。ただしモークリーとエッカートが作ったUNIVAC-Iを皮切りにコンピュータ制作の流行があったがIBMは電子式計算機を作っていた為乗り遅れた。またコンピュータの核であるCPUとOSを自社開発せず、パソコン市場の実権を握れなかった。
・真空管から半導体、トランジスタ、インテルのマイクロプロセッサの時代へ。
・コンピュータの使い勝手を決める「オペレーティング・ソフト(OS)」。現在のコンピュータではSpotifyで音楽を聴きながらGoogleを開いて、メモ帳にメモを書いて..という複数プログラミングを同時利用するのが当たり前だが、それができるのもアプリケーションの交通整理役をOSが担っているから。OSがなければアプリは我先にと自分を動かそうとし、PCは停止する。
・初期のOSはみんなCUIだったが、やがてユーザーが直感的に操作できるMacOSが市場を握る。
・日本発のOS「BTRON」は日本人が国際営業下手だった為にオジャンに。実績なしのTRONに成り代わられる。
###『プロになるためのWeb技術入門』
サラッとコンピュータ誕生の歴史を追った後はより実践的な開発の内容に移るが、対応OSがWindowsの為実践的な部分はサラッとしか読めなかった。
・IPO(Input、Process、Output)はMVCに該当する。ロジックをモデルが、デザインをビューが、それをつなぐのがコントローラ。IPOとの違いは、コントローラに文字通り全体の流れを制御する役割が与えられているところ。
Model=アプリケーションの処理(P)の部分とそれに関する情報の保持を担当する。
View=モデルによる処理結果の画面表示を担当(O)
Controller=画面からの入力とモデルの呼び出し、その結果に従ったビューの呼び出し。
・セッションスコープとリクエストスコープの違い
セッション = ステートレスなHTTPにおいて独立したりリクエストの間で情報を保持する為に考えられた仕組み。クライアントの異なるリクエストを関連した一連のリクエストだとわかるようにCookieなどを利用してアプリケーションが実現している。クライアント側から「この情報はもう所持しなくていい」とは言えないので、アプリケーション側のメモリ不足の懸念がある(ブラウザを閉じたら〜などアプリによって設定は可能)。それを解消する為の技術が「セッション・タイムアウト」。ある一定時間使用されないと自動削除される。
ユーザー情報の保持に向いており、ショッピングカートに何を入れていたかやログインしているかの確認などに使われる
リクエストスコープ = リクエストを受けてからレスポンスを返すまでしか有効ではないので、セッションと違いメモリ不足の懸念がない。
ページ遷移前後での情報保持に向いているらしいが、具体例がないのでいまいちわからなかった。
・ビジネスロジック
・モデルの実現方法 レイヤパターンによるデータアクセス層の分離
プレゼンテーション層(UI。ブラウザを通してシステム利用者の入力を受付けビジネスロジック層に渡す) => ビジネスロジック層(アプリが実現すべき処理の実行を担当するレイヤ) => データアクセス層(ビジネスロジック層とデータベースの橋渡しを行うレイヤ)
・フレームワークによるWebアプリ開発のメリットデメリット
メリット : 設計・開発工数の削減、品質向上、テスト工数削減
デメリット : 学習コスト増、設計における自由度低下、長期的な技術力低下
・『』
#AWSについて
・『Amazon Web Service 基礎からのネットワーク&サーバー構築』
紫のやつ。読みたい。けど読めてない
#Rubyを学ぶ
###『プロを目指す人のためのRuby入門 言語仕様からテスト駆動・デバック技法まで』
Qiitaでもたくさん参考になる記事を書いてらっしゃる@jnchitoさんの書籍。通称チェリー本。Ruby創始者のまつもとひろゆきさんからのメッセージも書かれている。
Rails開発に着手してから3〜4ヵ月、正直基礎のRubyの書き方の勉強を怠っていたので電子書籍にて購入した。
・FizzBuzzプログラム
・RGBと16進数カラーコード変換プログラム
・電車賃計算プログラム
・m<=>inch<=>ft長さ単位変換プログラム
・年齢別料金計算プログラム
・正規表現チェッカープログラム
など、テスト駆動開発ハンズオン形式で学ぶことができる。
#その他
###『OS自作入門』
めっちゃ分厚くて初心者お断りな雰囲気だが、読み手に語りかけるように書かれているハンズオン形式なのでとても読みやすい。
ただ時間がなくてサラッと冒頭だけ読んで終わった。
PHP, Ruby, Javaは全部CPUが直接理解できる機械語(0,1だけで構成される)の翻訳。
#コーディング
#アニメーション
・初心者からちゃんとしたプロになるJavaScript基礎入門
#デザイン
読みたい
・あるあるデザイン
・っぽくなるデザイン
・デザインの教室
・かわいい色の本 デザインと言葉の配色ブック
・きれいな色の本 デザインと言葉の配色ブック
・やさしいデザインの教科書
・やさしいレイアウトの教科書
・UIデザイン みんなで考え、カイゼンする。
・[買わせる]の心理学 消費者の心を動かすデザインの技法61
・沈黙のWebライティング
#その他
知の考古学
自由からの逃走
寝ながら学べる構造主義
ツァラトゥストラかく語りき
アリストテレスの弁論術
パスカルのパンセ
マルクスの資本論(一巻だけでもいい)
中村元の原始仏教
方法序説
論考
歎異抄
リグ・ヴェーダ
理科系の作文技術
日本人の英語
#Adobe
#ディレクション
・Webディレクションの新・標準ルール 改訂第2版
・Webディレクションの新・標準ルール システム開発編
ノンエンジニアでも失敗しないワークフローと開発プロセス