Slide 1

Slide 1 text

CSのすべての分野に 精通していると 何が嬉しいか 2019/07/05 たいぷらいたー コンピュータサイエンス

Slide 2

Slide 2 text

たいぷらいたー @no_clock すき: 京都(訪ねた寺社: 70以上) 百合(昨年読んだ漫画: 80冊) (あとC#, Ruby, Vimとか) 2

Slide 3

Slide 3 text

お手柔らかに 3 この分野は素人 なのですが

Slide 4

Slide 4 text

▷語源 ▷CSとはなにか ▷何が嬉しいか ▷たのしいCS CSのすべての分野に 精通していると何が嬉しいか

Slide 5

Slide 5 text

語源: Job – Preferred Networks https://www.preferred-networks.jp/ja/job (2017/9/16時点, Internet Archive Wayback Machineによる復元) 5

Slide 6

Slide 6 text

語源: Job – Preferred Networks https://www.preferred-networks.jp/ja/job (2017/9/16時点, Internet Archive Wayback Machineによる復元) 6 「コンピュータサイエンスのすべての  分野、またはハードウェアや制御の  すべての分野に精通していること」

Slide 7

Slide 7 text

7 https://research.preferred.jp/2018/02/27nishikawa/

Slide 8

Slide 8 text

語源: Job – Preferred Networks 8 https://www.preferred-networks.jp/ja/jobs/researcher

Slide 9

Slide 9 text

▷語源 ▷CSとはなにか ▷何が嬉しいか ▷たのしいCS CSのすべての分野に 精通していると何が嬉しいか

Slide 10

Slide 10 text

10 コードに深みが出る! 味のあるコードが書ける! CS知ってると 何が嬉しいんですか? ???????? ????????

Slide 11

Slide 11 text

11 ネットワークとか計算量と かグラフ理論とか…色々? (大丈夫かコイツ…) そもそもCSって      なんですか? ???????? ????????

Slide 12

Slide 12 text

12 【株の知識ゼロ】バカが考えた株の漫画 Produced by バーグハンバーグバーグ

Slide 13

Slide 13 text

▷語源 ▷CSとはなにか ▷何が嬉しいか ▷たのしいCS CSのすべての分野に 精通していると何が嬉しいか

Slide 14

Slide 14 text

14 プログラマだったら当然知ってるよね?という知識一覧 | anopara https://anopara.net/2019/05/11/basics-for-programmers/ データ構造、計算量、アルゴリズム、 数値計算、グラフ理論、理論計算機、 セキュリティ・暗号化、CPU、OS、 ソフトウェア工学、ネットワーク … CSとはなにか

Slide 15

Slide 15 text

15 CSとはなにか

Slide 16

Slide 16 text

16 【株の知識ゼロ】バカが考えた株の漫画 Produced by バーグハンバーグバーグ

Slide 17

Slide 17 text

▷語源 ▷CSとはなにか ▷何が嬉しいか ▷たのしいCS CSのすべての分野に 精通していると何が嬉しいか

Slide 18

Slide 18 text

“The Law of Leaky Abstractions 漏れのある抽象化の法則 - Joel Spolsky (Joel on Software著者) 18

Slide 19

Slide 19 text

The Law of Leaky Abstractions (漏れのある抽象化の法則) All non-trivial abstractions, to some degree, are leaky. 自明でない抽象化は、 ある程度漏れがある 19 The Law of Leaky Abstractions – Joel on Software https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/

Slide 20

Slide 20 text

▪ TCP - 信頼性の高い通信の実現 ▫ 信頼性のない伝送路上で実装 ▫ 遅かったり、途切れたりする →下位レイヤを気にする  (ping、ケーブル抜き差し…) 20 The Law of Leaky Abstractions – Joel on Software https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ The Law of Leaky Abstractions

Slide 21

Slide 21 text

▪ SQL/ORM - DB問合せの抽象化 ▫ User.where(type: 'admin'). order(:last_login_date) →「インデックス効いてる?」 →「nullのソート順はDBMS次第」 21 The Law of Leaky Abstractions

Slide 22

Slide 22 text

22 理想の抽象化 Gordon Wrigley (CC BY 2.0)

Slide 23

Slide 23 text

23 現実の抽象化 Gordon Wrigley (CC BY 2.0)

Slide 24

Slide 24 text

24 現実の抽象化 Gordon Wrigley (CC BY 2.0) 深淵に潜むコンピュータサイエンス

Slide 25

Slide 25 text

25 コンピュータサイエンスは 「抽象化の漏れ」への備え

Slide 26

Slide 26 text

26 Vue.js + Firebase 抽象化された深淵 PHP/Perl MySQL Apache Linux (物理マシン) 今昔抽象化物語 すこしむかし  いま

Slide 27

Slide 27 text

「現代の優れたツールは  信じられないほどの速さで  多くの作業をこなせるが、  ある日突然抽象化が漏れ出して、  その解決に2週間を費やす」 27 The Law of Leaky Abstractions – Joel on Software https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ The Law of Leaky Abstractions

Slide 28

Slide 28 text

28 「抽象化の漏れ」への備えに コンピュータサイエンスは必要不可欠

Slide 29

Slide 29 text

▷語源 ▷CSとはなにか ▷何が嬉しいか ▷たのしいCS CSのすべての分野に 精通していると何が嬉しいか ネットワーク編

Slide 30

Slide 30 text

$ netstat -s してみる(Windows可) 30 たのしいCS: 通信データは壊れている

Slide 31

Slide 31 text

無線LANで他機器と干渉しないために →送信前にランダム時間待つ  (干渉したら2倍待つ) 「適当に待っとればいつか  干渉せず送信できるやろ!」 31 たのしいCS: IEEE 802.11 CSMA/CA

Slide 32

Slide 32 text

ミリ秒単位で株取引 ▪ 処理能力重要 ▪ アルゴリズム重要 ▪ 場所重要(取引所システムの近く) しかし、もしも、 株価がわかる前に取引できたら…? 32 たのしいCS: 超高速取引

Slide 33

Slide 33 text

1. 株価受信途中に取引情報を送信開始 (まだ株価はわかっていない) 33 たのしいCS: 超高速取引 Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf

Slide 34

Slide 34 text

1. 株価受信途中に取引情報を送信開始 34 たのしいCS: 超高速取引 Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf Ethernet frame (データリンク層) Dest Src Type データ ??? ↑このへんで  株価判明

Slide 35

Slide 35 text

1. 株価受信途中に取引情報を送信開始 35 たのしいCS: 超高速取引 Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf Ethernet frame (データリンク層) Dest Src Type データ Checksum ↑このへんで  株価判明

Slide 36

Slide 36 text

Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf 1. 株価受信途中に取引情報を送信開始 2. 株価判明後、取引条件と不一致なら  不正なチェックサムを送信 3. 宛先のデバイスで無事に破棄される 36 たのしいCS: 超高速取引 Ethernet frame (データリンク層) Dest Src Type データ Checksum

Slide 37

Slide 37 text

37 たのしいCS: 超高速取引 Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf 株価受信: 取引送信: 0.000000170s

Slide 38

Slide 38 text

CSはおもしろい! CSはこわくない! CSはすごい! さあ、 CSをはじめよう! 38