Slide 1

Slide 1 text

ܕɺ͍ͭͯ·͔͢ʁ - ܕͷຊ࣭ΛৼΓฦΔ - ϋογϡλά #AIAL ԙ ೔ຊϚΠΫϩιϑτ 2016-07-08 TAKANO Mitsuhiro a.k.a. @takano32 SORABITO Inc. / jus / CONBU

Slide 2

Slide 2 text

ձ৔ʹײँ ͍͖ͭ͞ നϠΪίʔϙϨʔγϣϯͷ৿ຊ͞Μ͔Βߨࢣͷଧ਍ ࣾ಺ + ͪΐͬͱ֎෦ͳงғؾͷ 15ਓ͘Β͍ͷษڧձ Πϕϯτެ։ޙ 3࣌ؒ͘Β͍Ͱ15ਓຒ·Δ ެ։͔Β1೔Ͱ30ਓ͘Β͍·ͰࢀՃొ࿥

Slide 3

Slide 3 text

೔ຊϚΠΫϩιϑτ͞Μ ͋Γ͕ͱ͏͍͟͝·͢ʂ ձ৔୳͠ Facebook ͰΫϩʔζυͳࠂ஌ ೔ຊϚΠΫϩιϑτͷࢁຊ͞Μ͔Βձ৔ఏڙʹ͍͓ͭͯ੠͕͚͍͚ͨͩ·ͨ͠ ֤ॴͱௐ੔ͭͭ͠೔ຊϚΠΫϩιϑτ͞Μͷձ৔Λ͓आΓ͢Δ͜ͱ͕Ͱ͖·ͨ͠ʂ ձ৔ܾఆͷ࣌఺Ͱ60ਓ͕ࢀՃొ࿥ Twitter ͳͲͷݸਓͷϝσΟΞͰࠂ஌ 100ਓͷձ৔ʹ΄΅ࢀՃొ࿥100ਓ ΄Μͱ͏ʹ͋Γ͕ͱ͏͍͟͝·͢ʂ

Slide 4

Slide 4 text

λΠτϧͷݩωλ ϥΠτɺ͍ͭͯ·͔͢ʁ ໰୊ղܾͷखҾ͖ ਖ਼͘͠ଊ͍͑ͯΔ͔ͷ఩ֶ ؒҧͬͨ໰୊ʹແବͳ౒ྗ ໰୊͸ଘࡏ͠ͳ͔ͬͨ

Slide 5

Slide 5 text

͓લɺ୭Α TAKANO Mitsuhiro a.k.a. @takano32 ߴ໺ ޫ߂ / ͔ͨͷ ΈͭͻΖ ೔ຊUNIXϢʔβձ(װࣄ|ཧࣄ) SORABITOגࣜձࣾ ٕज़εϖγϟϦετ Smalltalk-ing Ruby committer Senior Infrastructure Engineer

Slide 6

Slide 6 text

ઐ໳ͱܦྺ

Slide 7

Slide 7 text

ઐ໳ ͳΜͱͳ͘ϓϩάϥϛϯά͕ ޷͖ͩͬͨ͋ͷ͜Ζ

Slide 8

Slide 8 text

ઐ໳ ߴߍੜͷͱ͖͔ΒϓϩάϥϛϯάΛ͸͡ΊΔ େֶ࣌୅ ωοτϫʔΫͱηΩϡϦςΟͷݚڀ म࢜࿦จ͸ݴޠॲཧ ࣮ߦ؀ڥʹґଘ͠ͳ͍ιϑτ΢ΣΞهड़ݴޠʹؔ͢Δݚڀ δϟϰΝͷ࿩Ͱ͸ͳ͍

Slide 9

Slide 9 text

ઐ໳(CONT.D) ΞϧόΠτ Smalltalk VM ͷ։ൃ Linux Ոి޲͚ϓϥοτϑΥʔϜ Windows޲͚ࣾ಺ϝοηϯδϟʔ Smalltalk VM Λ༻͍ͨ .NET VM ͷ։ൃ ܞଳి࿩޲͚ϓϥοτϑΥʔϜ Ұൠతͳిࢠ঎औҾαΠτͷߏங΍ಛڐࣄۀͷ্ཱͪ͛

Slide 10

Slide 10 text

ܦྺ ʮܦݧͰ͖ͳ͍͜ͱʯΛܦݧ͢Δ

Slide 11

Slide 11 text

ܦྺ גࣜձࣾ೔ཱ੡࡞ॴ ৽ଔͰͳ͍ͱຊମ΁ͷજೖͰͷ࠾༻͸೉͍͠ Ծ૝Խػߏͷઃܭ։ൃ ೔ຊͰ͸΍͍ͬͯΔͱ͜Ζ͕ଞʹͳ͍ ࣾһ਺͕ϋϯύͳ͍ ίϛϡχςΟʔ׆ಈ ࣾ಺ͷͭͳ͕ΓͰࢁຊ͞Μ(@mihochannel)ͱ஌Γ߹͏ ࣾ֎ͷ׆ಈͰ৿ຊ͞Μ(@t2y)ͱ஌Γ߹͏

Slide 12

Slide 12 text

ܦྺ(CONT.D) άϦʔגࣜձࣾ େن໛ΠϯϑϥετϥΫνϟͷࢦش ૊৫શମΛࢧ͑Δ௨஌γεςϜ ܭࢉػͷ୆਺͕ϋϯύͳ͍ SORABITOגࣜձࣾ Smalltalk ʹΑΔిࢠ঎औҾαΠτ ੒໿͋ͨΓͷ୯Ձ͕ϋϯύͳ͍ ॏػ΍ݐػͷϚʔέοτϓϨΠε ͓Αͦೋԯԁͷग़඼ͳͲ΋ଘࡏ Smalltalk Ͱۀ຿γεςϜΛ࡞Δͱ͔ܦݧͰ͖ͳ͍ʂʂʂ

Slide 13

Slide 13 text

ҰݴͰݴ͑͹ԿͰ΋ ͦͦ͜͜ਂ͘΍ͬͯΔԿͰ΋԰

Slide 14

Slide 14 text

ؓ࿩ٳ୊ɻ

Slide 15

Slide 15 text

ܕɺ͍ͭͯ·͔͢ʁ

Slide 16

Slide 16 text

ܕɺ͍ͭͯ·͔͢ʁ ܕʹ͍ͭͯͷೝࣝΛ֬ೝ ܕͷຊ࣭Λཧղ͢Δ ܕʹ͍ͭͯٞ࿦͢Δ·͑ʹ͢Δ΂͖ ܕʹ͍ͭͯඞཁͷແ͍ٞ࿦΋গͳ͘ͳΔ͸ͣ ܕʹ·ͭΘΔྺ࢙΍Τϐιʔυͷ঺հ

Slide 17

Slide 17 text

֓ཁ Ұൠతͳʮܕʯʹ͍ͭͯͷ֓ཁ ੩తܕ෇͚ ಈతܕ෇͚ ܕ෇͚ͷ෩ை (ݹ୅|ۙ୅|ݱ୅|ݪ࢝)(ಈత|੩త)ܕ෇͚

Slide 18

Slide 18 text

֓ཁ(CONT.D) ෩ைͷมભ ͦΕͧΕͷ෩ைʹ͓͚Δʮࢦ޲ʯ ܕɺ͍ͭͯ·͔͢ʁ ܕͷඞཁੑ ܁Γฦ͞ΕΔྺ࢙ ͜Ε͔Βͷʮܕʯͷ͋Γํ

Slide 19

Slide 19 text

Ұൠతͳܕʹ͍ͭͯͷ֓ཁ ಛఆͷݴޠ΍ܕͷٕज़ʹ͍ͭͯͷৄࡉ͸ׂѪ ΋ͬͱ;͞Θ͍͠ษڧձ͕͋Γ·͢ ͋͘·Ͱ͜ͷ৔Ͱ͸શମΛΈ·͢ ໦ΛΈͯथւʹ໎Θͳ͍Α͏ʹ஫ҙ ໘ന͍͜ͱ΍ɺҙ֎ͳ΋ͷ͸औΓ্͛·͢ ͓౔࢈ʹ΋ͬͯؼΕΔ࿩͕͍͔ͭ͋͘Δ͸ͣ

Slide 20

Slide 20 text

੩తܕ෇͚ ʮܕ͕͍͍ͭͯΔʯͱ͍͑͹҉໧తʹ੩తܕ෇ ͚ͷ͜ͱ ࣄલʹม਺ͷܕΛਫ਼ࠪ͢Δ ੩తͳղੳ ίϯύΠϧ΍࣮ߦલͷόάൃݟ

Slide 21

Slide 21 text

ಈతܕ෇͚ ࣄલʹ͸ม਺ͷܕΛਫ਼ࠪ͠ͳ͍ ಈతͳධՁʹΑͬͯ͸͡Ίͯܕ͕Θ͔Δ ࣮ߦ࣌ͷܕ෇͚

Slide 22

Slide 22 text

(੩తcಈత)ܕ෇͚ ੩తܕ෇͚Ͱ͸ࣄલͷղੳ΍ॲཧ Ұൠʹิॿͷهड़Λߦ͏ ࣮ߦ͸ݫີʹ͸ߦ͍ͬͯͳ͍ ͍͘Β੩తܕ෇͚ͷॲཧܥʹΑΔॲཧ͕ҰॠͰऴΘ͍ͬͯͯ ΋ಈ࡞࣌ͷܕ෇͚͸ҟͳΔ ࣮ߦ͕Ͱ͖Δͷ͸ಈతܕ෇͚͚ͩ ৄࡉ͸ղઆ͠·͢

Slide 23

Slide 23 text

ܕ෇͚ͷ෩ை ݹ୅੩తܕ෇͚ ݹ୅ಈతܕ෇͚ ۙ୅ಈతܕ෇͚ ۙ୅੩తܕ෇͚ ݱ୅ಈతܕ෇͚ ݱ୅੩తܕ෇͚ ݪ࢝ಈతܕ෇͚ ݪ࢝੩తܕ෇͚

Slide 24

Slide 24 text

(ݪ࢝cݹ୅cۙ୅cݱ୅)
 (ಈతc੩త) ܕ෇͚

Slide 25

Slide 25 text

8छྨ͸ϠϦա͗ͱ ൓ল͓ͯ͠Γ·͕͢ ΍ͬͪΌͬͨ΋ͷ͸͠ΐ͏͕ͳ͍

Slide 26

Slide 26 text

ݹ୅੩తܕ෇͚ CݴޠΛ୅දͱ͢Δ΋ͷʹ࠾༻ γεςϜͱີ઀ͳܕ෇͚ ܕ͕ෆ໌ͩͱσʔλͷѻ͍ํ͕෼͔Βͳ͍

Slide 27

Slide 27 text

A B A

Slide 28

Slide 28 text

A B A

Slide 29

Slide 29 text

A B A

Slide 30

Slide 30 text

ݹ୅ಈతܕ෇͚ ॲཧͷهड़΁ͱϑΥʔΧε͕Ҡ͍ͬͯ͘ γεςϜͷهड़Ͱ͸ͳ͍ BASIC ॳ৺ऀ޲͚ͷݴޠͱͯ͠஍ҐΛཱ֬ ཪٕͬΆ͍ςΫχοΫͰγεςϜʹ΋ΞΫηεͰ͖Δ ex. DATA, PEEK, POKE γΣϧεΫϦϓτ γεςϜͱର࿩͢ΔͨΊͷػߏΛԠ༻

Slide 31

Slide 31 text

ίϥϜ: γΣϧ ྫ֎΋ଘࡏ͢Δ γεςϜͱ҆શʹର࿩͢Δͷ͕γΣϧຊདྷͷ໾ׂ ਅͷLinux Kernel ޲͚γΣϧ Ͳ͏Έͯ΋όΧ ๙Ίݴ༿

Slide 32

Slide 32 text

ίϥϜ: ҧ࿨ײ͕͋Δݴ༿ γΣϧεΫϦϓτΛॻ͘͜ͱΛʮγΣϧΛॻ͘ʯ bash ΍ zsh Λ։ൃ͍ͯ͠Δʁʁʁ IP ΞυϨεͷ͜ͱΛʮIPʯ IP ͱ͸Πϯλʔωοτϓϩτίϧͷ͜ͱͰ IP ΞυϨεͱ͸ IP Ͱͷ ૹ৴ઌ΍ૹ৴ݩͷΞυϨε ͜ͷҧ࿨ײΛ෼͔Γ΍͘͢ྫ͑Δ Wikipedia ͷ͜ͱΛ ʮWikiʯ ͱදݱ͍ͯ͠ΔϞϠϞϠײ

Slide 33

Slide 33 text

ۙ୅ಈతܕ෇͚ ݹ୅ಈతܕ෇͚Ͱղܾ͕໘౗ͩͬͨ෼໺ͷվળ Perl sh + sed + awk + grep ڧྗͳจࣈྻૢ࡞ ಛʹPerlޓ׵ͷਖ਼نදݱͷଘࡏ͸େ͖͍੒Ռ PCREͱͯ͠ଞͷੈքʹ΋େ͖͘Өڹ

Slide 34

Slide 34 text

ۙ୅ಈతܕ෇͚(CONT.D) PHP ద౰ʹॻ͚͹ಈ͘ ར఺Ͱ΋͋Δܽ͠఺Ͱ΋͋Δ ܕͷٞ࿦ͳͲͷ৔Ͱ͸ᎏ᎐͞ΕΔ͜ͱ΋ଟ͍ ଟ͘ͷ΋໰୊Λղܾ͖ͯͨ͠ͷ͸ࣄ࣮ Python Perl ॻ͘ͷΠϠʹͳͬͨΑͶ Ϋηͷ͋Δ Perl Monger ͷ੒Ռ෺͸ಡΊ·ͤΜ…

Slide 35

Slide 35 text

ۙ୅੩తܕ෇͚ C++ݴޠʹ୅ද͞ΕΔ΋ͷʹ࠾༻ ৽͍͠ύϥμΠϜͷ্৐ͤ C++ݴޠͰ͸ΦϒδΣΫτࢦ޲ ϓϩάϥϜͷߏ଄ԽͷԆ௕ઢ্ʹΦϒδΣΫτࢦ޲ͷςΠετΛࡌ ͤͨ ͋͘·ͰCݴޠ͔Βͷൃలܥͱଊ͑Δ͜ͱ͕Ͱ͖Δ ϧʔϧ͕ෳࡶ͗͢ΔͷͰɺ࢖͍͜ͳͤΔΤϯδχΞ͸ఱ࠽ͩͱײ͡Δ

Slide 36

Slide 36 text

ݱ୅ಈతܕ෇͚ ύϥμΠϜ΍ϢʔεέʔεʹΑͬͯେ͖͘ීٴ Ruby ΦϒδΣΫτࢦ޲Λલఏͱͨ͠ݴޠ ͋ͱ͔ΒࡌͤͨͷͰ͸ͳ͍ͷͰෆࣗવ͕͞ͳ͍ JavaScript Webϒϥ΢βͰͷಈ࡞Λ૝ఆ͠ීٴͨ͠ݴޠ ʮJavaScript͸OFFʹ͢Δʯͱ͍͏࣌୅͔Βͷܶతͳ෮׆

Slide 37

Slide 37 text

ݱ୅੩తܕ෇͚ ۙ୅੩తܕ෇͚ΑΓ΋ڧ͍ػೳ γεςϜهड़ϨΠϠʔ͔Βͷղ୤ VM ͱ͍͏ਓྨͷӳ஌ ϚϧνϓϥοτϑΥʔϜ ex. Java, Haskell, AltJS

Slide 38

Slide 38 text

ݪ఺ճؼɻ

Slide 39

Slide 39 text

ݪ࢝ಈతܕ෇͚ ߟ͑ͯΈΑ͏ɺϊΠϚϯܕίϯϐϡʔλ Ϩδελ ଈ஋ ΞυϨε

Slide 40

Slide 40 text

ݪ࢝ಈతܕ෇͚(CONT.D) MOV EAX, [1000h] 1000h ͱ͍͏ଈ஋Λ EAX ϨδελʹೖΕΔ MOV [ff00h], EBX EBX Ϩδελͷ஋Λ ff00h ͷΞυϨεʹೖΕΔ χʔϞχοΫ͸ػցޠͱ૬ޓʹஔ׵Ͱ͖Δ 0 ͱ 1 ͷ࿈ଓͰදݱ͞ΕͨنଇΛن໿ʹΑͬͯධՁ͍ͯ͘͜͠ͱͰੈͷதͷେ ൒ͷγεςϜ͸ಈ࡞͍ͯ͠Δ ͜ͷʮධՁʯ͕ͦ͜ɺ΄΅͢΂ͯͷࠜװʹ͋Δʮ࣮ߦʯ

Slide 41

Slide 41 text

ػցޠͷܕ෇͚ ੩తܕ෇͚ͳͷ͔ಈతܕ෇͚ͳͷ͔ ࣮ߦ࣌ʹଈ஋͔ΞυϨεΛ൑அ ͜ͷ࣌఺͔Β͸ࣄલͷॲཧ͕ͳ͍ ׶͑ͯ෼ྨ͢ΔͳΒ͹ಈతܕ෇͚ͱ͍͑Δ ͢΂ͯͷجຊ͸͜ͷαΠΫϧͰ͋ΔͨΊɺಈతܕ෇͚ ͔Β͸ಀ͛Δ͜ͱ͕Ͱ͖ͳ͍

Slide 42

Slide 42 text

ίϥϜ: ػցޠͱCݴޠͷ઀఺ ؾܰʹ஌Δ͜ͱ͕Ͱ͖Δ઀఺ʹ͍ͭͯ঺հ a[2] == 2[a]; ࣜͷ஋͸ʁ ʮਅʯ

Slide 43

Slide 43 text

Կ͕ى͖͍ͯΔͷ͔ʁ

Slide 44

Slide 44 text

a 2 a[2] a 2 2[a]

Slide 45

Slide 45 text

ݪ࢝੩తܕ෇͚ ىݯ͸ϥϜμܭࢉʹ͋Γ ܕͳ͠ϥϜμܭࢉ വ਺ͷΈͰ͞·͟·ͳॲཧΛ࣮ݱ͢ΔՄೳੑΛఏࣔ ࣗવ਺ͷѻ͍ɺ৚݅෼ذɺ࠶ؼ ܕ͋ΓϥϜμܭࢉ ܕͳ͠ϥϜμܭࢉͷൃలܥ ڧ͍ܕ෇͚ͱ஗ԆධՁͷૅͱͳͬͨ࢓૊Έ ৄࡉΛ࿩͢ͱ 12 ࣌ؒ͘Β͍ʹͳΓͦ͏ͳͷͰׂѪ

Slide 46

Slide 46 text

෩ைͷมભ

Slide 47

Slide 47 text

ݪ࢝ ݪ࢝ಈతܕ෇͚ ϊΠϚϯܕίϯϐϡʔλ ݪ࢝੩తܕ෇͚ ࢥߟతͳ࣮ݧ

Slide 48

Slide 48 text

ݹ୅ ݹ୅੩తܕ෇͚ γεςϜͷهड़ͷͨΊʹภ͍ͬͯΔ Ϣʔβͷॲཧͷهड़ʹ͸໘౗ ݹ୅ಈతܕ෇͚ γεςϜͱͷର࿩ هड़ͷརศੑΛॏࢹ

Slide 49

Slide 49 text

ۙ୅ ۙ୅੩తܕ෇͚ ݹ୅੩తܕ෇͚ʹର͢Δ৽͍͠ύϥμΠϜͷద༻ ۙ୅ಈతܕ෇͚ ݹ୅ಈతܕ෇͚ʹର͢Δ৽͍͠ύϥμΠϜͷద༻ ۙ୅ʹ͓͚Δʮ৽͍͠ύϥμΠϜʯ ΦϒδΣΫτࢦ޲ͱ͍ͬͯΑ͍

Slide 50

Slide 50 text

ݱ୅ ݱ୅ಈతܕ෇͚ ৽͍͠ύϥμΠϜ͕ઌʹ͋Δಈతܕ෇͚ ݱ୅੩తܕ෇͚ ৽͍͠ύϥμΠϜ͕ઌʹ͋Δ੩తܕ෇͚ ݱ୅ʹ͓͚Δʮ৽͍͠ύϥμΠϜʯ ΦϒδΣΫτࢦ޲ͱ͍͑Δ

Slide 51

Slide 51 text

ܕɺ͍ͭͯ·͔͢ʁ

Slide 52

Slide 52 text

ܕͰΈΔྺ࢙ ݪ࢝ܕ෇͚࣌୅ ܕͱ͍͏΋ͷ͸ҙࣝ͞Εͳ͔ͬͨ ݹ୅ܕ෇͚࣌୅ ॲཧ͢Δ໰୊ͷੑ࣭ʹΑͬͯܕ෇͚͕͞Εͨ ۙ୅ܕ෇͚࣌୅ ৽͍͠ύϥμΠϜͷςΠετ͕௥Ճ͞Εͨ ݱ୅ܕ෇͚࣌୅ ৽͍͠ύϥμΠϜ͕ઌʹ͋Γɺͦͷޙʹॲཧܥ͕͋Δ

Slide 53

Slide 53 text

ྺ࢙͔ΒֶͿܕ ަޓʹಈతܕ෇͚ͱ੩తܕ෇͚͸੒௕͖ͯͨ͠ ࣌୅͕ਐΉʹͭΕͯʮ෺ཧతͳʯܭࢉػ͔Βͷ ڑ཭͸ԕ͘ͳ͍ͬͯΔ ߴ౓ͳந৅Խ

Slide 54

Slide 54 text

͜Ε͔ΒͷʮมԽʯΛಡΉ

Slide 55

Slide 55 text

ͳͥɺྺ࢙͸܁Γฦ͢ͷ͔ σόοάࠔ೉ͳঢ়ଶͱͳͬͨͱ͖ ੩తͳܕ෇͚ͱݟ͔͚ͤͯಈతͳܕ෇͚ͱ͍͏૊Έ߹Θ͕ͤअѱ Cݴޠ΍C++ݴޠͰ͸σόοΨΛڧԽͯ͠Ԇ໋ ໰୊ղܾͷυϝΠϯͱॲཧܥͷΠϯϐʔμϯεϛεϚον ex. WebγεςϜͷ৽ن։ൃʹPerlΛ࠾༻͠·͔͢ʁ ந৅ԽͷϨϕϧ ΦϒδΣΫτࢦ޲ͷ͜ͱΛߟ͍͑ͯΔͱ͖ʹϙΠϯλͱ͔ϝϞϦͱ͔ܕͷෆҰ கͰσʔλͷϚοϐϯά͕ڰ͍ͦ͏ɺΈ͍ͨͳ͜ͱʹ஫ҙΛ෷͍ͨ͘ͳ͍

Slide 56

Slide 56 text

͜Ε͔ΒͷʮܕʯΛߟ࡯ ྺ࢙͔ΒৼΓସ͑ΔϙΠϯτ υϝΠϯ ύϥμΠϜ ந৅Խ Ϧιʔε ੩తͱಈతͷ࣠ʹΑΔߟ࡯ ཧ࿦ͱ࣮ફ ۩৅౓ͱந৅౓

Slide 57

Slide 57 text

͜Ε͔ΒͷʮυϝΠϯʯ υϝΠϯͱ͸ղܾ͢΂͖໰୊͕Ͳͷ෼໺ʹଐ͍ͯ͠Δ͔ʁ ͱ͍͏ҙຯ ྺ࢙Ͱ͸γεςϜهड़ͱWeb͕େ͖͘Өڹ ݱࡏ͸ HTTP ͕શ੝͕ͩՌͨͯ͜͠ͷ··ͳͷ͔ʁ ex. Web ͸ΞϓϦέʔγϣϯ൪߸ 80 ൪ IPv6 ͕ຊ֨తʹීٴͨ͠ͱ͖ʹԽ͚ΔՄೳੑ͕͋Δ

Slide 58

Slide 58 text

͜Ε͔ΒͷʮύϥμΠϜʯ ؔ਺ܕ΍ΦϒδΣΫτࢦ޲ʹ୅ද͞ΕΔʮ֓೦తͳ ࢥߟํ๏ʯ͕ύϥμΠϜ υϝΠϯʹରͯ͠༗ޮͳύϥμΠϜ͕ॲཧܥʹӨڹ ͯ͘͠Δ ex. ΞεϖΫτࢦ޲ ex. ฒྻϓϩάϥϛϯά / ฒߦϓϩάϥϛϯά

Slide 59

Slide 59 text

͜Ε͔Βͷʮந৅Խʯ ΦϒδΣΫτࢦ޲ΑΓ΋ਐΜͩந৅Խ UML ͳͲͷ͜ͱ ex. Executable UML

Slide 60

Slide 60 text

͜Ε͔ΒͷʮϦιʔεʯ ܭࢉػͷύϫʔͷ͜ͱ ͜Ε͕όΧʹͳΒͳ͍ ex. ΨϕʔδίϨΫγϣϯ ߏ૝࣌͸࡞ͬͨϝϞϦΛ΄ͬͨΒ͔͢Α͏ͳ༨༟͕ϝϞϦۭؒʹͳ͔ͬͨ झຯͰ࡞ͬͨΦϞνϟѻ͍ ex. ΦϒδΣΫτࢦ޲ ܧঝͷ࢓૊ΈʹΑΓɺϝιουͷ୳ࡧʹ͕͔͔͍࣌ؒͬͯͨ ࣮༻తͰ͸ͳ͍ͱ൑அ͞Ε͍ͯͨ࣌୅΋௕͍ ݱ୅Ͱ΋૊ΈࠐΈ෼໺Ͱ͸ܟԕ͞Ε͕ͪ

Slide 61

Slide 61 text

͜Ε͔ΒͷʮϦιʔεʯ ͲͪΒͷཁૉٕज़΋ݱ୅Ͱ͸͔ܽͤͳ͍΋ͷͱͳ͍ͬͯ Δ ΨϕʔδίϨΫγϣϯ ΦϒδΣΫτࢦ޲ ५୔ͳܭࢉػϦιʔε͕खʹೖͬͨͱ͖ʹɺ͍·࢖ΘΕ ͍ͯͳ͍ʮΦϞνϟʯ͕୆಄͢ΔՄೳੑ͸े෼ʹ͋Δ

Slide 62

Slide 62 text

͍·ݸਓతʹཉ͍͠Ϡπ ύϥμΠϜฤ

Slide 63

Slide 63 text

෭࡞༻Λߟྀͨ͠γΣϧ UNIXίϚϯυ ࣌୅എܠ͔Β੒ޭ͔ࣦഊͷΈʹϑΥʔΧε ࣌୅͸ immutable infrastructure ෭࡞༻Λ෼཭ͨ͠γΣϧ͕͋Δͱศརͳ༧ײ ex. Monad + shell ͜͜Ͱͷ෭࡞༻ͱ͸ૢ࡞͕ܭࢉػʹӨڹ͢Δ͔Λҙຯ͢Δ ෭࡞༻͕໌നʹΘ͔ΔγΣϧͰૢ࡞Ͱ͖Ε͹ɺ෭࡞༻͕ൃੜ͢Δ΋ͷͷΈΛऔΓग़ͤΔ͸ͣ Dockerfile ͳͲ͕ࣗಈͰੜ੒Ͱ͖Δؾ͕͢Δ

Slide 64

Slide 64 text

͜Ε͔Βͷܕͱॲཧܥʹͭ ͍ͯߟ͑ͯΈ·͠ΐ͏

Slide 65

Slide 65 text

ͦΕ͕ະདྷͷΤϯδχΞϥΠϑ Λ๛͔ʹ͢Δ͔΋͠Ε·ͤΜ

Slide 66

Slide 66 text

Ԇ௕ઓ ࠓ೥΋ LL ΠϕϯτΛ։࠵͠·͢ LLoT - Lightweight Language of Things http://ll.jus.or.jp/2016/ ܕͷηογϣϯͷొஃऀΛަবத http://ll.jus.or.jp/2016/program

Slide 67

Slide 67 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ SORABITOגࣜձࣾͰ͸ΤϯδχΞΛืूத શମΛ၆ᛌͰ͖ɺཧ૝Λ஌Γͭͭ΋ɺݱ࣮ͱಆ͍ɺεϐʔυͱ ඼࣭Λམͱ͞ͳ͍νʔϜ։ൃ ج൫ٕज़͸࠷ઌ୺ͷ΋ͷΛԲ͢Δ͜ͱͳ͘࠾༻ Pharo, PostgreSQL, Elasticsearch, Redis, Neo4j ͳͲ αϙʔτঢ়گ͕ෆ໌Ͱ΋ɺ͍͟ͱͳΕ͹ʮજΔʯٕज़Λ֤ʑ ͕ൃشͯ͠ղܾ͍ͯ͘͠ຊདྷͷΤϯδχΞϦϯά͕Ͱ͖·͢