[書評]IT全史を読んでみた

IT全史とは?

腕木通信、電信、電話、ラジオ、テレビ、そしてインターネット、AI に至るまでの250年の情報技術の歴史を描いた本です。

IT全史  情報技術の250年を読む

IT全史 情報技術の250年を読む

エンジニアをやっているが、ITの歴史に関しては疎かったので読んでみました。

ITの歴史の流れをざっくりと

腕木通信

電信

電話

無線

ラジオ

テレビ

コンピュータ

インターネット

IoT, ビッグデータ, AI

シンギュラリティ?

技術遷移の共通点

前段階の資産を継承しつつ漸近的に推移していき、またそれぞれの遷移には技術的に断絶があるらしい。

例えば腕木通信 から 電信への遷移や電信から電話への遷移は前段階の資産を継承しつつ、技術的には別物(断絶)があるとのこと。

なので、今後社会を大きく変える技術も今あるインターネットとコンピュータでの資産は使いつつもそれまでの技術とは違ったものになるのではないか。と書かれています。

腕木通信

腕木通信(うでぎつうしん、semaphore )とは、18世紀末から19世紀半ばにかけて主にフランスで使用されていた視覚による通信機、およびその通信機を用いた通信網である。望遠鏡を用い、腕木のあらわす文字コードや制御コードを読み取ってバケツリレー式に情報を伝達した。 https://ja.wikipedia.org/wiki/%E8%85%95%E6%9C%A8%E9%80%9A%E4%BF%A1

ざっくりいうと腕木通信機という3本の腕木からなる装置を利用した通信のこと。腕木を曲げて様々なパターンを作ることができ、パターンに応じて意味が与えられた。

腕木通信は1794年7月フランスのパリ ~ リール間の約200kmで最初に開通した。 リールは当時敵国であるイギリス、プロイセンオーストリアに地理的に近くパリとの間に情報のやりとりを迅速に行いたいという背景があった。

近代の通信の特徴として情報そのものを手紙のように手で持つことができないことがあげられ、腕木通信が近代的である理由もこの情報の伝達に手紙のような手に持てる媒体を使用しなくなったという点で近代の通信と言える。

電信

電信以降はまとめるのが難しかったので続きは本を読んでください!

読んでみての感想

エンジニアと名乗りつつ今使っている技術がどういった歴史的経緯や変遷を受けて今使っている(使われている)のか知らなかったので今を知る上で、さらにはこの先を知る上でも有用なんじゃないかと思いました。

Scala入門にはドワンゴのScala研修テキストがとても良いと思う

ドワンゴScala研修テキストがすごく充実してる

Scalaをやってみたいと思い、いろいろな入門書をWebや本屋さんで探していたところ、ドワンゴScala研修テキストがとても充実していて、継続的にアップデートもされているのでScala入門には最適なんじゃないかと思う。 ちょっと古い本を買うと環境構築周りが全然違ったり、同じ手順じゃできなかったりするので、継続的なアップデートがあるのはとてもありがたい。

Scalaとは · Scala研修テキスト

作成されたのはドワンゴの水島さんという方で、もともとドワンゴの社内でScalaエンジニアとして育成するために作られたよう。

www.slideshare.net

githubのページからHTML版、PDF版、EPUB版がダウンロードできるので通勤とかで重い本を持たなくて良いのが個人的に一番嬉しいです。

github.com

こんな充実したテキストがタダで利用できるなんて、本当に感謝です。

ちなみに

ちなみに知り合いのScalaエンジニア曰く、本格的に勉強する時は Scalaスケーラブルプログラミング(通称コップ本)をみんな使っているとのこと。

Scalaスケーラブルプログラミング第3版

Scalaスケーラブルプログラミング第3版

いまさら聞けないネットワークの基礎・基本 その1

この記事は?

勉強しても忘れてしまいがちなので、ネットワーク周りの基礎・基本知識をまとめてみました。 間違いなどあれば指摘していただけると嬉しいです。

ネットワークって?

複数のコンピューターを接続して、相互に通信できるようにした状態。 https://kotobank.jp/word/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-7058

コンピュータ同士をつなげて情報のやりとりができるようになった状態をネットワークあるいはコンピュータネットワークと言います。

家庭内や社内など近くにあるコンピュータをつなげたネットワークをLAN(Local Area Network)といい、遠くにあるコンピュータをつなげたネットワークをWAN(Wide Area Network)と言います。

またケータイやスマホをつなげるネットワークはモバイルネットワークと呼ばれます。

インターネットって?

ネットワークの中でももっとも規模が大きいものがインターネットです。 世界中の企業のネットワーク、大学のネットワーク、家庭のネットワークなどをつないで自由に情報をやりとりすることができます。

ネットワーク間の通信の仕組み

コンピュータネットワークでは情報の交換を「パケット」と呼ばれる小さな単位に分割してやりとりしています。 「パケット」には送信元と受信先のアドレス情報がついており、この情報を元に届けられます。 パケットに分割してやりとりしている理由として、データを少しずつ送ることで回線の占有を避け、複数の相手と並行して柔軟に通信するためというものがあげられます。

アナログ電話やケータイの3G回線などでは「パケット交換方式」とは違い「回線交換方式」という通信経路を占有する方式が取られています。

コンピュータネットワークの階層モデル

ネットワーク通信を実現するためには様々なプログラムや機器が協力しながら動く必要がありますが、それらの役割を明確にしたものが「階層モデル」です。 階層モデルには「OSI参照モデル」と「TCP/IP 4階層モデル」がありますが、ここでは「TCP/IP 4階層モデル」を紹介します。

TCP/IP 4階層モデルとは?

階層名 役割 関連するキーワード
アプリケーション層 Webサービス、電子メールなどのサービスをユーザに提供します HTTP, SMTP, POP3, FTP, SSHなど
トランスポート層 アプリケーション層とインターネット層を仲介し、データを正しく届けるための働きをします TCP, UDP
インターネット層 宛先のIPアドレスを元にコンピューターへデータを届けられるようにします。 IPアドレスIPv4, IPv6, ICMP, ルーティング
ネットワークインターフェース層 ネットワークアダプタなどの通信用ハードウェアを制御して実際にデータを転送します。 イーサネット, 無線LAN, MACアドレス, PPP など

上記のうち、アプリケーション層がサービスを提供し、それ以外の3つが通信機能を担当しています。

プロトコルとは?

各階層の役割を知る前に知っておくべき大切なキーワードがあります。それが「プロトコル」です。

コンピュータ・ネットワークでコンピュータどうしが情報を交換するための通信規約。 https://kotobank.jp/word/%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB-8535#E6.97.A5.E6.9C.AC.E5.A4.A7.E7.99.BE.E7.A7.91.E5.85.A8.E6.9B.B8.28.E3.83.8B.E3.83.83.E3.83.9D.E3.83.8B.E3.82.AB.29

人間同士のやりとりでも状況によってやりとりに大まかなルールがあります。例えば、ビジネスの場だったら、「名刺交換 -> ちょっとした雑談 -> 本題」、友達と居酒屋にいるシチュエーションだったら「注文 -> 乾杯 -> 近況報告」など。 人間の場合、暗黙的なルールがありますが、コンピュータには厳密なルールが必要です。 このようなやりとりのルールが「プロトコル」です。 ネットワーク間の通信ではこのプロトコルが様々な場面で使用されています。

代表的なプロトコル

プロトコル 働き
アプリケーション層 HTTP Webページのデータをやりとりする
HTTPS Webページのデータをセキュリティに対応した通信でやりとりする
POP3 サーバーに保管された受信メールを取り出す
SMTP メールを送信する
FTP ファイルを転送する
Telnet コンピュータを遠隔操作する
SSH セキュリティに対応した通信でコンピュータを遠隔操作する
DHCP コンピュータにプライベートIPアドレスを割りあてる
DNS URLとIPアドレスを相互変換する
SSL セキュリティに対応した通信を行う
トランスポート層 TCP 確実さを優先してアプリケーションのデータを送受信する
UDP 速度を優先してアプリケーションのデータを送受信する
インターネット層 IP パケットを目的地まで届ける
ICMP IPでの通信エラーなどを通知する
IPsec パケットを暗号化して届ける
ARP ネットワーク機器のMACアドレスを調べる
ネットワークインターフェース層 イーサネット メタルケーブルや光ファイバーケーブルでデータを伝送する
PPP ユーザを認証して遠隔地の機器と通信する

続き

各階層については後の記事にて紹介します。 随時アップデートしていきます。

参考資料

スラスラわかるネットワーク&TCP/IPのきほん こちらの本をほとんど参考にして記事を書いています。絵や図が多いので初心者にとてもオススメです。

リラックスしたい時に聞きたいCity Popソングをまとめてみました

City Popが流行ってます

City Popという音楽のジャンルが最近流行っており、自分もだいぶはまっています。 ただ同じCity Pop系というカテゴリーにまとめられてたアーティストでもダンス系、ファンク系など各アーティストごとに色があるようです。 ここでは最近お気に入りの癒し系City Popソングを紹介します。 (アーティスト本人は癒し系と称されるのは不服かもしれません。その時はすいません!)

Lucky Tapes

ボーカルの甘い声とグルーヴィーなリズムが特徴的なLucky Tapesさん。 メンバーの出身地が近いということもあり前から一押しのアーティストさんです。


LUCKY TAPES - パレード (Official Music Video)


LUCKY TAPES - Gun (Official Music Video)

Special Favorite Music

9人構成という大所帯のバンドさん。ヴァイオリン、トランペット、サックスがレギュラーメンバーとしているバンドはなかなか珍しいと思います。


Special Favorite Music / Dribble (Official Video)


Special Favorite Music - Magic Hour(Official Video)

Mime

とあるクラブイベントにてライブを見てすっかりファンになってしまったアーティストさん。 上二つのアーティストと比べて知名度は低いですが、これからどんどん有名になっていってほしいアーティストさんです。


“Lights” Mime

mime0201.bandcamp.com

エンジニアにおすすめ?の非技術本

エンジニアにおすすめの非技術本

年間100冊以上いろいろなジャンルの本を読んできて、ためになった非技術本を備忘録をかねて紹介します。 エンジニアじゃなくても役に立ったら嬉しい。

ビジネス・経営学

ビジョナリー・カンパニー2 飛躍の法則 ジム コリンズ (著), 山岡 洋一 (翻訳) 

同じような業種で飛躍した会社と飛躍しなかった会社を調査し、そこにある共通点を明らかにした1冊。経営学の本では特に有名なうちの1冊です。 会社をテーマとしていますが、個人が飛躍するためのヒントも十分に得られるはずです。


ドリルを売るには穴を売れ 佐藤 義典

マーケティングを知りたい人にぜひオススメの1冊。 ストーリーパートと解説パートで分かりやすく読みやすい構成です。


クリエイティブ・マインドセット 想像力・好奇心・勇気が目覚める驚異の思考法 デイヴィッド・ケリー (著), トム・ケリー (著), 千葉 敏生 (翻訳)

近年話題となっているデザイン思考の本です。 「自分はクリエイティブではないから・・・」とチャレンジを避けている人にぜひ読んでもらいたい1冊。


プロフェッショナルの条件――いかに成果をあげ、成長するか P・F. ドラッカー (著), 上田 惇生 (翻訳)

言わずとしれたドラッカーの本。ドラッカー本はもしドラで取り上げられたマネジメントが有名ですが、個人の働きかたにフォーカスしたこの本はエンジニアとしての働き方を考えさせられる1冊でした。


ドラッカー 時代を超える言葉―洞察力を鍛える160の英知 上田 惇生

こちらもドラッカー本。ドラッカー本は数が多く、全て読むのは骨が折れますが、この本はドラッカーの考えを広く紹介してくれるので、まずこれを読んでみて気になった本を読んでみるというのが良いと思います。


LIFE SHIFT リンダ グラットン (著), アンドリュー スコット (著), 池村 千秋 (翻訳)

これから平均寿命が伸びていくことによって、個人の生き方に変化が訪れることを書いた本。 自分の人生設計に大きく影響を与えている本です。


超一流になるのは才能か努力か? アンダース エリクソン (著), ロバート プール (著), 土方 奈美 (翻訳)

超一流になるのは才能か努力か?という疑問に対して、研究を元に超一流と一流の人の違いを明らかにした本です。


ゼロ-トゥ-ワン-君はゼロから何を生み出せるか ピーター・ティール (著), ブレイク・マスターズ (著), 瀧本 哲史 (その他), 関 美和 (翻訳)

ペイパルマフィアとして有名なピーター・ティールが書いた起業に関する本。 競争を避けるなど、一般的に知られている経営戦略とは違った視点で書かれており、考え方を変えさせてくれた1冊です。 スタートアップに勤めている人には特にオススメ。


スタンフォード大学で一番人気の経済学入門 ミクロ編

スタンフォード大学で一番人気の経済学入門 マクロ編

ティモシー・テイラー (著), 池上 彰 (監訳), 高橋 璃子 (翻訳)

経済学の基礎を知りたい人にオススメの本です。 経済学の基礎を広くカバーしているためこの2冊で基礎はほとんどカバーできると思います。

仕事術・読書術

マンガでわかる! 幼稚園児でもできた!! タスク管理超入門 岡野 純

数あるタスク管理本の中で一番分かりやすく、ためになった1冊。 マンガ形式なので本が苦手な人にもオススメです。


レバレッジ・リーディング 本田 直之

本を読むのが嫌いな人や時間がかかってしまう人に読んでもらいたい1冊です。 本は頭から読まず読みたいところだけ読むという著者の主張のおかげで読書が進むようになりました。


自己啓発

7つの習慣ティーンズ ショーン・コヴィー (著), フランクリン・コヴィー・ジャパン (編集, 翻訳)

自己啓発本の中では1、2を争うレベルで有名な7つの習慣ですが、かなりのページ数のために全て読むに時間がどうしてもかかってしまいます。 このティーンズ版は10代後半の青少年を対象にした本ですが、7つの習慣の大切な部分をしっかりと押さえているため個人的にはこちらの方がオススメです。


人生計画の立て方 本多 静六

自分の人生計画というものをしっかり考えるきっかけとなった1冊。 自己啓発本にありがちな、単なる考え方の本ではなく、職業の道楽化、4分1貯金など実践的な内容も言及しています。


自助論 サミュエル スマイルズ (著), 竹内 均 (翻訳)

自分自身の努力で人生を切り開いていくことの大切さを説いた本です。 古い本ですが、数多くの偉人に影響を与えた本でもあります。


白いネコは何をくれた? 佐藤 義典

ドリルを売るには穴を売れの著者が書いた、マーケティングを人生戦略にどう活かしていくかを書いた本。 こちらもストーリー仕立てになっているのでとても読みやすいです。

哲学・思想

史上最強の哲学入門

史上最強の哲学入門 東洋の哲人たち 飲茶

哲学の入門書の中で一番わかりやすい本だと個人的には思っています。 世界の哲学者たちが考えてきたことを分かりやすく知りたい、理解したいという人にオススメです。


14歳からの哲学 考えるための教科書 池田 晶子 史上最強の哲学入門が哲学者の考えフォーカスした本だとしたら、こちらは自分で考えることにフォーカスを当てた本です。 考えるって実はとても深く難しいというのを認識させられた本です。


自由に生きる: よき縁となし、よき縁となる。抜苦与楽の実践哲学 プラユキ・ナラテボー

この本は仏教に関する本なので、哲学というカテゴリーとは違うかもしれませんが、漠然とした哲学より今自分が抱えている苦しみにどのように向き合っていくかということにフォーカスされた本です。 悩み事がある人、悩みを抱えがちな人にぜひ読んでもらいたいです。

心理学

幸福優位の7つの法則 ショーン・エイカー (著), 高橋由紀子 (翻訳)

ポジティブ心理学という分野の本です。内容的に自己啓発っぽいですが、大学での研究を元に人が幸福になるためにはどうすれば良いかということを明らかにしています。 読んだ後元気が出る本です。

投資・蓄財

となりの億万長者 トマス・J・スタンリー (著), ウィリアム・D・ダンコ (著), 斎藤 聖美 (翻訳)

億万長者というイメージを覆す1冊です。 億万長者というとプライベートジェットを持って、高級外車を乗回すイメージでしたが、実は地味?な億万長者の実態と蓄財方法が分かります。


私の財産告白 本多 静六

「人生計画の立て方」でも紹介した本多静六氏によるお金の貯め方の本です。 本多静六氏がどのようにしていち大学教授から日本を代表する資産家となるまでの経緯とその考え方が全て書かれています。


アメリカの高校生が読んでいる投資の教科書 山岡 道男;淺野 忠克 (著)

教科書と書かれているだけあり、投資というもの全般について分かりやすく解説してくれている本です。


臆病者のための株入門 橘 玲

株にフォーカスを当てた1冊。短期トレーディング、長期のファンダメンタルズだと投資方法はいろいろありますがその長所短所を著者の毒が混じった文章で表現しています。

※投資に関しては自己責任でお願いします。

健康(肉体・メンタル)

反応しない練習 草薙龍瞬

本来なら思想カテゴリーに入れるべきなのですが、自分自身がこの1冊でメンタル的な不調から脱することができたのでここで紹介しています。 悩みを抱えている方、うつ気味な方にぜひ読んでもらいたい一冊です。


シリコンバレー式 自分を変える最強の食事 デイヴ・アスプリー (著), 栗原 百代 (翻訳)

ちょっと前にバズったバターコーヒーダイエットの本です。実践するまでは眉唾な内容でしたが、実際やってみて10キロほど痩せることができました。

歴史

ニュースのなぜ?は世界史に学べ 日本人が知らない100の疑問 茂木 誠

IS問題、核問題、ブレクジットなどニュースでよく見かけるけど説明しろと言われるとわからないことって結構あると思います。 そういったニュースのなぜを歴史的経緯を元に分かりやすく解説してくれている本です。


IT全史 情報技術の250年を読む 中野明

IT業界に身を置いていても実はITの歴史を知らない人は少なくないのではないでしょうか? 腕木通信と呼ばれる通信から始まり電信、電話、インターネットと続く現代までの通信の歴史を書いた本です。

その他

孤独なバッタが群れるとき―サバクトビバッタの相変異と大発生 前野 ウルド浩太郎

「子どもの頃に、バッタの大群に女性が襲われ、緑色の服が食べられたという記事を読んで、自分もバッタに包まれてみたいと思っていたんです。」という変態研究者のバッタへの情熱が詰まった本です。バッタに興味がなくても人生をかけている筆者の情熱を感じて欲しいです。

参考にさせていただいたリンク

http://qiita.com/Hoshi_7/items/50eba98d4915c2ad4e60 タイトルをリンクにするというやり方を参考にさせていただきました。

Rails Tutorialを2周やってみての感想とこれからやる人へ

ざっくり内容

  • Rails Tutorialのバージョン5.0を1周、Rails Tutorial 解説セミナー(こっちは5.1)を1回受けてみての感想を書いていきます。
  • 1周目ですべてを理解するのはほぼ無理。
  • 1周目は割と写経で精一杯。
  • 2周目でなんとなく分かってくる。
  • 解説セミナーは特に分かりにくいところをしっかり説明してくれるので、1周目でわからないところがある人や挫折した人にオススメ。
  • これからやる人はまず1周やってみて、わからなかったところやつまずいたとこをメモしておき、2周目で理解に徹したほうが良い。
  • もし作りたいアプリがある人は、作りたいものをどうやって実現させるかを念頭に入れてチュートリアルを進めると理解が進む。

Rails Tutorialって?

無料で公開されているRailsチュートリアル railstutorial.jp

とりあえずものすごいボリュームがあります。 全部やりきるには2週間 ~ 1ヶ月くらいかかるはずです。

無料でここまでボリュームがある、かつ継続的にアップデートされているものは他のフレームワークやテック系のチュートリアルでもないんじゃなかろうか。

Railsを触ってみたい、Railsでアプリを作りたいという人はまずやってみることをオススメします。

(注)あくまでRails初心者を対象としているのでプログラミング初心者には難しい内容になってます。プログラミング自体が初めてな人はまずProgateとかでプログラミングの基礎を習得することをオススメします。

prog-8.com

チュートリアルをやってた期間

1周目(Rails5.0): 2017年7月中旬(20日くらい) ~ 8/11くらいまで

2周目(Rails5.1): 2017/8/11 ~ 8/13 , 8/19 ~ 8/20(計5日)

1周目の感想

もともとJavaでサーバーサイドの開発やGitの経験はあったが、今までの経験がほぼ生かせず、とにかく理解に苦労した。 やっていることややりたいことは分かるが、どういう仕組みで動いているのか説明せよと言われるととてもじゃないができなかった。

1周目はほぼ写経して動かすだけ。しっかり理解しようとするとRailsのみならず、Ruby, HTML, CSS, REST, MVC, ActiveRecordなども理解しなければならず心が折れそうになるので、とにかく動くものを作ることにフォーカスを当てた。

1周目は本当に「Railsってこんな感じなんだー」くらいRailsの表面をさらっと舐めるくらいまでしかできなかった。

2周目の感想

2周目は1回全てやっていたのに加え、解説セミナーだったのでチュートリアルで躓きやすい箇所をしっかり説明してもらい、1周目で理解できなかった部分はほとんど解決(理解)することができた。

特にログイン(セッション)周り、メール周り、多対多の紐付けなどは1周目で理解できなかった箇所が大量にあったが、その辺りを詳しく説明してもらったのでしっかり理解することができた。 おそらく解説セミナーに参加せず、2周目も自力でやっていたら理解できなかったと思う。

ただ2周目が終わってもあくまで基本の基本が分かっただけなので、継続して学習しないともっとRailsを深めることはできなさそう。

これからRailsチュートリアルをやる人へ

公式のRailsチュートリアルにも書いてありますが、1周目で大半を理解しようとすると辛くなります。2、3回やるつもりで最初は動くアプリを作ってみるくらい気楽に進めたほうが結果的に長続きすると思います。

ただもう作りたいアプリがある人はチュートリアルをやる際に創りたいアプリを実現するにはどうすればよいかということを考えながら進めると理解も深まるし、疑問点もたくさん浮かんでくると思います。そういった疑問点を周りの詳しい人に聞いたり、Railsコミュニティに参加し聞いてみるとより学びが深まると思います。

短期間で集中してやりきりたい人や、もっと理解を深めたい人、一周目で挫折してしまった人には解説セミナーがおすすめです。決して安くは無いですが得られるものも多いはずです。

Rubyの前提知識はなくても大丈夫と公式ページには書いてありますが、絶対にRubyの知識はあったほうが良いです。 とくにJavaなどの他の言語経験者はRubyの文法に混乱すると思うので(自分がそうでした)ドットインストールや書籍などでRubyの基礎知識をいれておくことをオススメします。

結論

Railsは難しい。でも楽しい。