研究者とエンジニアが交わるその先へ / A futer of where researchers and engines intersect

研究者とエンジニアが交わるその先へ / A futer of where researchers and engines intersect

大学から社会人へ、その後大学院に入学後、再び社会人へ、そして研究所創設

ペパボ研究所 主席研究員 兼 シニアプリンシパルエンジニア 松本 亮介 / Pepabo R&D Institute, GMO Pepabo, Inc.
2017.11.15 公立はこだて未来大学 ITアーキテクチャ特論

2b692bd83f4418103142a053ecf5ff59?s=128

MATSUMOTO Ryosuke

November 16, 2017
Tweet

Transcript

  1. େֶ͔Βࣾձਓ΁ɺͦͷޙେֶӃʹೖֶޙɺ࠶ͼࣾձਓ΁ɺͦͯ͠ݚڀॴ૑ઃ ϖύϘݚڀॴ ओ੮ݚڀһ ݉ γχΞϓϦϯγύϧΤϯδχΞ দຊ ྄հ / Pepabo R&D

    Institute, GMO Pepabo, Inc. 2017.11.15 ެཱ͸ͩͯ͜ະདྷେֶ ITΞʔΩςΫνϟಛ࿦ ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ΁
  2. #FUN_IT 5XJUUFSϋογϡλά

  3. ຊൃදͰ͸ɺࢲͷݚڀ։ൃ׆ಈ͚ͩͰͳ͘ɺΩϟϦΞ΍ಘΒΕͨڭ܇ɺࢲͷߦಈ ࢦ਑ʹ͍ͭͯ΋͓࿩͠·͕͢ɺ͜Ε͸୭ʹͰ΋ڞ௨͢Δ΋ͷͰ͸͋Γ·ͤΜɻ ͜ͷମݧͦͷ΋ͷ͸௚઀׆͔ͤΔ࿩Ͱ͸͋Γ·ͤΜ͕ɺօ༷ͷߟ͑΍ମݧʹॏͶ ߹ΘͤͯɺԿ͔গ͠Ͱ΋೔ʑͷֶशͱେֶमྃޙͷੜ͖ํʹ͍ͭͯɺࣗ෼ͷελ ΠϧΛ࡞Γ্͛ΔࢀߟʹͳΕ͹޾͍Ͱ͢ɻ 3 ຊൃද

  4. 1. ͸͡Ίʹ 2. ࢲͷ࠷ۙͷݚڀ։ൃ঺հ 3. ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ΁ 4. ͓ΘΓʹ 4 ໨࣍

  5. 1. ͸͡Ίʹ

  6. φΠϑ

  7. φΠϑΛ্खʹ࢖͏ٕज़

  8. ͍͢͝੾ΕຯͷφΠϑΛ࡞Δٕज़

  9. ंΛ্खʹӡస͢Δٕज़

  10. ੑೳͷߴ͍ंΛ࡞Δٕज़

  11. ֨ಆήʔϜ

  12. ֨ಆήʔϜͰউٕͭज़

  13. ໘ന͘΍Γ͕͍ͷ͋ΔήʔϜΛ࡞Δٕज़

  14. • ͲͪΒ΋Ԟ͕ਂ͍ • ͲͪΒ΋΍ΓࠐΉʹ͸େมͳ౒ྗ͕ඞཁ • ͲͪΒ΋΍ΓࠐΜͰཱ྆Ͱ͖Δ΄Ͳਓؒ͸༏Ε͍ͯͳ͍ • ਓʹ༩͑ΒΕͨ࣌ؒ͸ฏ౳Ͱ͋Δ • ֨ಆήʔϜͰ΋2ΩϟϥΛ߈ུ͢Δͷ͸ͱʹ͔͘େม

    • ੈքҰΛ໨ࢦ͢ʹͯ͠΋໨ͷલͷϨϕϧΛ໨ࢦ͢ʹͯ͠΋ಉ͡ݪཧ͕ಇ͘ 15 ͋ΒΏΔͱ͜ΖͰݟΒΕΔߏਤ
  15. Webؔ࿈ ٕज़

  16. ٕज़Λ૊Έ߹Θͤͯ࢖͏ٕज़

  17. ٕज़Λ࡞Γ্͛Δٕज़

  18. • Webۀք͸·͞ʹઓࠃ࣌୅ • ߴ౓ʹٕज़Λ࢖͏ΤϯδχΞͱ৽͍ٕ͠ज़Λ࡞ΔΤϯδχΞ͕ݱΕ࢝ΊΔ • ιϑτ΢ΣΞ΍ٕज़ϊ΢ϋ΢͕ΦʔϓϯԽ͠৘ใͷಁ໌Խ͕ਐΉ • ͱͯͭ΋ͳ͍଎౓ͰมԽ͠ൃల͠ଓ͚ΔWebٕज़ 19 Webٕज़ʹ͍ͭͯ΋ಉ༷ͷߏਤ͕͋Δ

  19. • ৗʹΞϯςφΛுΓ८ΒͤͯมԽͷ଎͍ٕज़ΛಘΔඞཁ͕͋Δ • ໨ͷલͷ՝୊ʹରͯ͠ߴ౓ʹٕज़Λ૊Έ߹Θͤૉૣ͘՝୊ղܾ͢Δྗ • ৽ٕज़ͷ࣮૷΍τϨϯυΛৗʹษڧͯ͠࢖͍ଓ͚Δྗ • اۀͷαʔϏεΛ௨ͯ͠ૉૣ͘՝୊ղܾΛ܁Γฦ͢͜ͱͰಘΒΕΔٕज़ྗ • αʔϏε։ൃతΞϓϩʔν

    20 ٕज़Λ૊Έ߹Θͤͯ࢖͏ٕज़
  20. • ಉ༷ʹৗʹΞϯςφΛுΓ८ΒͤͯมԽͷ଎͍ٕज़Λ஌Δඞཁ͕͋Δ • ๲େͳैདྷٕज़ΛαʔϕΠͯ͠ݱࡏͷ՝୊ͱ৽نੑΛ໌֬Խ͢Δࢥߟྗ • ීวతͳجૅ֓೦Λशಘ͠ڞ௨఺Λݟग़͠ҰൠԽͯ͠૊ΈཱͯΔߏ૝ྗ • ॆ෼ͳ࣌ؒΛ༩͑ɺେֶ΍ݚڀ։ൃͷதͰֶͼಘΒΕΔٕज़ྗ • ՊֶతΞϓϩʔν

    21 ٕज़Λ࡞Γ্͛Δྗ
  21. ͍ͣΕ΋ίʔυΛॻ͚Δ͜ͱ͸ ඞਢͷ࣌୅΁

  22. ࠓޙͲ͜ʹڝ૪ྗ͕ੜ·Εͯ͘Δ͔ʁ

  23. WebۀքͰͷϢʔβՁ஋΁ͷߩݙ౓ʢদຊ༧૝Ͱ͢ʣ 24 ೥લ ݱࡏ ೥ޙ ϢʔβՁ஋ ૊Έ߹Θͤͯ࢖͏ٕज़ ٕज़Λ࡞Δٕज़

  24. • ٕज़ϨΠϠʔͷந৅Խ͕Ճ଎ • ٕज़৘ใͷڞ༗΍ιϑτ΢ΣΞͷެ։ʹΑΔٕज़ͷಁ໌Խ͕Ճ଎ • ٕͨͩज़Λ૊Έ߹ΘͤΔγεςϜ͔Β৽͍͠γεςϜͷఏҊ͕ڝ૪ྗ΁ • AIΛ׆༻ͨ͠γεςϜɺ৽͍͠ΞʔΩςΫνϟɺ৽͍͠ӡ༻ٕज़ͳͲ • WebαʔϏε΁ͷϢʔβՁ஋ʹ઎ΊΔݚڀͷྖҬ͕૿େ͍ͯ͘͠ʢ༧૝ʣ

    ➜ اۀͰ΋ΞΧσϛΞͰ΋γεςϜͷݚڀ։ൃ͕ඞཁͩͱٞ࿦͞Ε͍ͯΔ 25 WebαʔϏεͷڝ૪ྗ
  25. ͱ͸͍͑ ߴ౓ʹ࢖͏ٕज़΁ͷཁٻ΋૿Ճ

  26. ٕज़Λ࡞Δٕज़΁ͷཁٻ͸͞Βʹ૿Ճ

  27. ૊৫ͱٕͯ͠ज़Λߴ౓ʹ࢖͏ྗͱ࡞Δྗͷ ཱ͕྆ٻΊΒΕ࢝Ί͍ͯΔ

  28. Webؔ࿈ ٕज़

  29. ٕज़Λ૊Έ߹Θͤͯ࢖͏ٕज़

  30. ٕज़Λ࡞Γ্͛Δٕज़

  31. օ༷͸ͲͪΒͷํ޲ੑʹߦ͖͍ͨͰ͔͢ʁ

  32. ΤϯδχΞͱݚڀऀ͕ަࠩ͢Δੈք

  33. ΤϯδχΞͱݚڀऀͷ۠ผ͕ແҙຯͳੈք

  34. ࠓ೔͸ʮٕज़Λ࡞Γ্͛Δٕज़ʯΛ બ୒ͨ͠ࢲͷ࿩Λ͠·͢

  35. 2. ࢲͷ࠷ۙͷݚڀ։ൃ঺հ

  36. • ژ౎େֶത࢜ʢ৘ใֶʣ • ϖύϘݚڀॴ ओ੮ݚڀһ • GMOϖύϘ γχΞɾϓϦϯγύϧ ΤϯδχΞ •

    ݩΠϯϑϥΤϯδχΞ • ೔ຊOSS঑ྭ৆ɾ৘ใॲཧֶձ ࢁԼه೦ݚڀ৆ 37 দຊ྄հ / ·ͭ΋ͱΓʔ / @matsumotory
  37. ࢲͷ࠷ۙͷݚڀ։ൃͷऔΓ૊Έ

  38. ۝भେֶͱͷऔΓ૊Έ

  39. ϖύϘݚڀॴ × ۝भେֶ ৘ใج൫ݚڀ։ൃηϯλʔ ίϯςφܕԾ૝Խٕज़ʹΑΔ ߃ৗੑΛ࣋ͭΫϥ΢υϗεςΟϯάج൫ͱ Ԡ༻ʹؔ͢Δڞಉݚڀ։ൃ

  40. ݝ΍ࢢͱͷऔΓ૊Έ

  41. None
  42. ٕज़తͳ؍఺͔Β਺೥ޙʹ׆͖Δ ࣄۀͷߏ૝ͱશମઃܭ

  43. None
  44. ʢϚωʔδυΫϥ΢υʣ

  45. ϓϩμΫτͷࠩผԽʹඞཁͳίΞٕज़ͷ ݚڀ։ൃ

  46. ՊֶతΞϓϩʔνʹΑΔΤϯδχΞϦϯά

  47. ϖύϘͰ࠷ߴͷϓϩμΫτΛ૑ΔͨΊ

  48. • ւࢁ઒ͱඒຯ͍͠͝͸Μʹғ·Εͳ͕Βͬ͘͡Γݚڀ։ൃ • ओʹࡋྔ࿑ಇɾϦϞʔτϫʔΫɾ࣌ؒ͸ࣗ༝ • ձࣾͷٕज़త՝୊ʹج͍ͯҰൠԽͨ͠ख๏ΛఏҊɾධՁ • ੵۃతʹ࿦จࣥචɾࠪಡ΍ݚڀձࢀՃɾӡӦ • ͦͷଞ࢈ֶ׭ͱ࿈ܞͯ͠ϓϩδΣΫτఏҊ΍ڞಉݚڀͳͲ

    • ݚڀ։ൃΑͬͯࣄۀΛࠩผԽ͢Δٕज़ΛੜΈग़͠όʔϯͱͨ͠αʔϏε΁ 49 ݚڀ։ൃελΠϧ
  49. 1. ͳΊΒ͔ͳγεςϜ 2. WebαʔϏεج൫ٕज़ͷݚڀͱ͸ 3. ৗ࣌HTTPSͷ࣌୅ͷେن໛ূ໌ॻ؅ཧͷݚڀ 4. ·ͱΊ 50 ຊষͷྲྀΕ

  50. 1. ͳΊΒ͔ͳγεςϜ

  51. • ίϯϐϡʔλ΍Πϯλʔωοτʹؔ͢Δٕज़͸ൃల͕ͨ͠… • ࠓ΋೔ৗతʹ৮ΕΔγεςϜ͸༷ʑͳোนʹຬͪᷓΕ͍ͯΔ • োน(ΰπΰπ)ͷऔΓআ͔ΕͨະདྷͷγεςϜΛ࣮ݱ͍ͨ͠ • ͳΊΒ͔ͳγεςϜͱ͍͏Ϗδϣϯ΁ 52 ίϯϐϡʔλͷൃలͱোน

  52. 1. γεςϜʹͱͬͯͷϢʔβ΍ɺγεςϜΛߏ੒͢Δαʔό౳ͷཁૉ͕ɺͲ ͷΑ͏ͳΧςΰϦʹଐ͢Δ͔ɺ͍͔ͳΔಛ௃Λ͔࣋ͭΛɺਫ਼៛ʹೝࣝ͢Δ 2. ͦͷࡍɺϢʔβ΍γεςϜ؅ཧऀͱ͍ͬͨਓؒʹ࿑ۤΛڧ͍ΔΑ͏ͳ໌ࣔ తͳૢ࡞Λ՝͞ͳ͍ 3. 1.͓Αͼ2.ͰಘͨΑΓਫ਼៛ͳΧςΰϦ΍ݸผͷಛ௃ɺ͋Δ͍͸ͦΕΒͷؒ ͷؔ܎ੑʹج͖ͮɺͦͷ࣌ʑͷঢ়گʹԠͯ͡࠷దͳαʔϏεΛఏڙ͢Δ ͳΊΒ͔ͳγεςϜΛ࣮ݱ͢ΔWebαʔϏεج൫ٕज़ͷݚڀ

    53 ͳΊΒ͔ͳγεςϜ͸ҎԼͷཁ݅Λຬͨ͢
  53. 2. WebαʔϏεج൫ٕज़ͷݚڀͱ͸

  54. • ਓؒͷϓϩμΫτ΁ͷൃ૝Λࢧ͑ΒΕΔج൫͕ඞཁ • ͜Ε·Ͱ͸֤छྖҬΛਓखͰΧόʔ͢Δ͜ͱ͕ଟ͔ͬͨ • ੑೳɾηΩϡϦςΟɾϦιʔε؅ཧɾӡ༻ٕज़ͳͲ • ج൫ΛػցͰࢧ͑ࣗಈԽ͠αʔϏεͷݶքΛ௒͑Δج൫ઃܭɾࢥ૝ͷݕ౼ • ਓؒͷൃ૝ͷݶքͱج൫ͷݶքͱͷউෛͷੈքͱ͍͑Δ

    55 WebαʔϏεج൫ٕज़ͷݶք͸αʔϏεͷݶք
  55. ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ 56 ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ਓͷମྗɾਫ਼ਆͷݶք ਓͷମྗɾਫ਼ਆͷݶք

    ਓྗͰࢧ͑ଓ͚Δ ਓྗͰ޿͛ଓ͚Δ ਓྗͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ػցͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ Ίͷݚڀ։ൃΛߦ͍ͬͯΔ দຊͷݚڀ
  56. • WebαʔϏεར༻ऀͷϢʔβʔମײ(User Sensation)ͷվળ • WebαʔϏεར༻ऀͷແҙࣝԼʹ͓͚Δշదͳײ֮ͷఏڙ • WebαʔϏεఏڙଆͷٕज़ऀମײ(Engineer Sensation)ͷվળ • ౰ͨΓલʹγεςϜͷ҆ఆੑΛอͪɺਓͷڧ੍հೖΛ௿ݮ

    • ݚڀͱͯ͠ͷҰൠԽͱࣄۀ΁ద༻͢ΔͨΊͷ࣮૷͓ΑͼಋೖޮՌͷ࣮ূ • ϓϩμΫτʹ͖ͪΜͱͭͳ͛ͯ࠷ߴͷϓϩμΫτΛ૑Δ 57 ࢲͷݚڀςʔϚ
  57. Πϯλʔωοτར༻ऀͷʮମײʯΛ ޲্͍ͤͨ͞

  58. ʮٕज़Λ࡞Γ্͛Δٕज़ʯ ͔ΒͷΞϓϩʔν

  59. ຊষͰ͸࠷ۙऔΓ૊ΜͰ͍ͨݚڀΛ঺հ • দຊ ྄հ, Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔόͷػ ೳ֦ுࢧԉػߏ, ৘ใॲཧֶձ࿦จࢽɼVol.55,

    No.11, pp.2451-2460, Nov 2014. • দຊ ྄հ, ฏݪ ਖ਼༟, ࡾ୐ ༔հ, ྗ෢ ݈࣍, ܀ྛ ݈ଠ࿠, ߴूੵϚϧνςφϯτWebαʔόͷେن໛ূ ໌ॻ؅ཧͱ࣮ӡ༻্ͷධՁ, ৘ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-39, Vol.14, pp.1-8, 2017೥9݄.
  60. 3. ৗ࣌HTTPSͷ࣌୅ͷূ໌ॻ؅ཧͷݚڀ

  61. • υϝΠϯ΍ϗετΛେྔʹ࣋ͭαʔϏε͸ରԠࠔ೉ • ݱࡏͷαʔόιϑτ΢ΣΞ͸େྔͷূ໌ॻͷѻ͍ʹෆ޲͖Ͱ͋Δ • ͜ͷ··Ͱ͸EC΍ϗεςΟϯάͷHTTPSಋೖ͕ۃΊͯࠔ೉ • େྔͷূ໌ॻʹରԠͨ͠ΞʔΩςΫνϟΛݚڀऀͷΞϓϩʔνͰઃܭ • ಉ࣌ʹಋೖͱϝϯςφϯε͕ฏқͳιϑτ΢ΣΞΛΤϯδχΞͱ࣮ͯ͠૷

    62 ৗ࣌HTTPSԽʹରԠ͍ͯ͘͠ඞཁ༗Γ
  62. • αʔόϓϩηεىಈ࣌ʹશͯͷূ໌ॻΛಡΈࠐΉ • େྔͷূ໌ॻΛಡΈࠐΉ৔߹ىಈ͕࣌ؒ஗͘ઃఆ൓ө࣌ͷӡ༻͕ࠔ೉ • ৽͍͠ϗετͱূ໌ॻ௥Ճ࣌ʹ͸ϓϩηε࠶ىಈ͕ඞཁ • શͯͷূ໌ॻͷ਺͚ͩαʔόϓϩηεͷϝϞϦ࢖༻ྔ͕ଟ͍ 63 ैདྷख๏ͷ՝୊

  63. • αʔόϓϩηεىಈ࣌ʹূ໌ॻ͸ಡΈࠐ·ͳ͍ • αʔόϓϩηεͷ࠶ىಈ/࠶ಡΈࠐΈ࣌ؒΛߴ଎Խ • TLSϋϯυγΣΠΫ࣌ʹඞཁͳূ໌ॻͱઃఆΛಈతʹಡΈࠐΈ • ߴ଎ͳϓϩηε࠶ಡΈࠐΈʹΑΔϝϞϦղ์΋Մೳ • ূ໌ॻ΍ϗετͷ৽ن௥Ճઃఆʹ࠶ىಈ͕ෆཁ

    64 ఏҊख๏
  64. 65 'JMF,74 IUUQE
 QSPDFTT $MJFOU 4/*ʹΑͬͯTFSWFSOBNF͕FYBNQMFKQͷ υϝΠϯʹର͢Δ5-4ϋϯυγΣΠΫ͕։࢝ 5-4ϋϯυγΣΠΫ࣌ʹυϝΠϯFYBNQMFKQʹඥͮ͘ ূ໌ॻͱൿີ伴ΛϑΝΠϧ΍,FZ7BMVF4UPSF ,74

    ͔ΒಈతʹಡΈࠐΜͰ͔ΒΫϥΠΞϯτͱॲཧܧଓ 5-4ηογϣϯ ূ໌ॻಡΈࠐΈ
  65. 66 'JMF,74 IUUQE
 QSPDFTT $MJFOU 0QFO44-όʔδϣϯҎ߱ 44-@$59@TFU@DFSU@DC ͱ͍͏5-4ϋϯυγΣΠΫ࣌ ʹ೚ҙͷؔ਺ΛίʔϧόοΫ͢Δػೳ͕௥Ճ ίʔϧόοΫؔ਺ͷதͰυϝΠϯͱඥͮ͘αʔόূ໌ॻ

    ͱൿີ伴ΛಡΈࠐΈޙϋϯυγΣΠΫΛܧଓͯ͠ॲཧ 5-4ηογϣϯ ূ໌ॻಡΈࠐΈ
  66. ࣮૷ʹ͸ngx_mrubyΛ׆༻

  67. • ࢲͷ୅දతϓϩμΫτͷͻͱͭ • Webαʔόιϑτ΢ΣΞnginxΛRubyͰ֦ுͰ͖Δϛυϧ΢ΣΞ • 2015೥4݄ͷWebϑϨʔϜϫʔΫੈքϥϯΩϯάͰσϏϡʔ • JSONγϦΞϥΠζ෦໳ͷશମ93ϑϨʔϜϫʔΫͷதͰੈք9Ґ • ্Ґ͸C΍C++ɺJava͹͔ΓͷதͰRuby!

    • PlainςΩετ෦໳ͷRuby෦໳Ͱ͸2ҐΑΓ130ഒߴ଎Ͱѹ౗త1Ґ 68 ngx_mruby
  68. 69

  69. 70

  70. 71

  71. 72

  72. • ngx_mruby※1ʹTLSϋϯυγΣΠΫͷϑοΫઃఆΛ࣮૷ • TLSϋϯυγΣΠΫ࣌ʹϑοΫ͞ΕͨRubyͷόΠτίʔυΛ࣮ߦ • RubyϝιουͱOpenSSLͷίʔϧόοΫΛbinding • KVS/File͔Βূ໌ॻ΍ൿີ伴ΛRubyܦ༝ͰಡΈࠐΈ • ಡΈࠐΈઌ͸RubyͰॻ͚ΔൣғͰͳΜͰ΋ྑ͍

    73 ࣮૷ ˞দຊ྄հ Ԭ෦णஉ NPE@NSVCZεΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳ8FCαʔόͷ ػೳ֦ுࢧԉػߏ ৘ใॲཧֶձ࿦จࢽɼ7PM /P QQ /PW
  73. 74 ϦΫΤετ͞ΕͨυϝΠϯ͔Βಈతʹূ໌ॻΛಡΈସ͑Δ͜ͱʹΑ ΓόοΫΤϯυ΁ͷϓϩΩγઃఆ΋ؚΊ୯Ұͷઃఆʹू໿Մೳ ϑΝΠϧϕʔεͷಈతূ໌ॻಡΈࠐΈྫ 3VCZͰϓϩάϥϚϒϧʹهड़Մೳ

  74. 75 ϦΫΤετ͞ΕͨυϝΠϯ͔Βಈతʹূ໌ॻΛ ಡΈସ͑Δ͜ͱʹΑΓ୯Ұͷઃఆʹू໿Մೳ ,74ϕʔεͷಈతূ໌ॻಡΈࠐΈྫ

  75. • 10ສϗετ෼ͷ4096bitsͷ伴௕ͷൿີ伴ͱαʔόূ໌ॻΛnginxόʔδϣϯ 1.11.13ͰಡΈࠐΈ • ैདྷख๏͸࠶ಡΈࠐΈॲཧͰ΋αʔϏεఀࢭʹܨ͕Δ 76 ैདྷख๏ͱఏҊख๏ͷىಈ࣌ؒͷ࣮ݧ ߲໨ ैདྷख๏ ఏҊख๏

    ϓϩηεىಈͷ࣮࣌ؒ ඵ  ϓϩηεىಈͷϢʔβ$16࢖༻࣌ؒ ඵ  ϓϩηεىಈͷγεςϜ$16࢖༻࣌ؒ ඵ 
  76. 10ສϗετऩ༰࣌ͷ੩తϑΝΠϧͷੑೳൺֱ 77 ਺ेCZUFTͷܰྔͳ)5.-ϑΝΠϧ΁ͷϦΫΤετ 3FRVFTUTFD      ಉ࣌઀ଓ਺

        ैདྷख๏ ఏҊख๏
  77. ຊ൪؀ڥͰ࣮ӡ༻্ͷධՁ

  78. • ैདྷख๏ͱఏҊख๏ͷ1ϲ݄ؒͷϦιʔε࢖༻ྔΛൺֱ • ैདྷख๏͸2017೥3݄͔Β4݄ɺఏҊख๏͸7݄͔Β8݄ͷ1ϲ݄ؒ • ෳ਺୆ͷಉҰϋʔυ΢ΣΞ্ʹ4݄຤ΛػʹϦϓϨʔεΛ࣮ࢪ • ैདྷख๏͸Apache2.4ɺఏҊख๏͸nginx1.11Ͱ࣮૷ • ূ໌ॻ਺ͷ૿Ճ΍ϦΫΤετॲཧ਺ͷมԽͱൺֱ͠ͳ͕Βߟ࡯

    79 ແྉূ໌ॻαʔϏεΛػʹ࣮ӡ༻্ͷධՁ
  79. ैདྷख๏ͰऔΓ૊ΜͰ͍ͨΒ ͲΕ͙Β͍େม͔ͩͬͨΛ͖ͪΜͱධՁ

  80. ͏·͍͍ͬͯ͘Δ࣌Ͱ΋ ͦͷ༗ޮੑΛఆྔతʹ໌Β͔ʹ͢Δ

  81. ՊֶతΞϓϩʔν

  82. 1ϲ݄ؒͷূ໌ॻ਺ͷભҠ 83 0 5000 10000 15000 20000 25000 1 6

    11 16 21 26 31 The number of cer-ficates day The number of cer-ficate in a month dynamic load preload Θ͔Γʹ͍͕͘Ұϲ݄Ͱ͔Β΁ͱ ূ໌ॻఔ౓૿͍͑ͯΔ ূ໌ॻ਺͸ϦϓϨʔεલͷഒ͔Βഒ
  83. 1ϲ݄ؒͷ1αʔό΁ͷඵؒHTTPϦΫΤετ਺ 84 0 200 400 600 800 1000 1200 1400

    1600 1 6 11 16 21 26 31 Requests/sec day Request/sec in a mouth dynamic load preload ϦϓϨʔεޙʹ-#ͷׂΓ౰ͯൺ཰͕มΘͬͨͨΊ )551ʴ)5514ϦΫΤετॲཧ਺͸ഒ͔Βഒ
  84. 1ϲ݄ؒͷCPU࢖༻཰ͷભҠ 85 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00

    8.00 9.00 1 6 11 16 21 26 31 CPU usage(%) day CPU usage in a mouth dynamic load preload ূ໌ॻ਺͕͔Βഒʹ΋ؔΘΒͣ$16࢖༻཰͸ඍ͕ࠩͩ௿ݮ܏޲
  85. 1ϲ݄ؒͷϝϞϦ࢖༻཰ͷભҠ 86 0 1000 2000 3000 4000 5000 6000 7000

    8000 1 6 11 16 21 26 31 Memory usage(MBytes) day Memory usage in a mouth dycamic load preload ূ໌ॻ਺͸͔Βഒʹ΋ؔΘΒͣϝϞϦ࢖༻཰͸௿ݮ ఏҊख๏͸ສҎ্૿Ճ͍ͯ͠Δূ໌ॻ਺ʹ΋΄΅ґଘ͍ͯ͠ͳ͍ ূ໌ॻ਺૿Ճʹ൐͍ϝϞϦ࢖༻ྔ͸αʔόશମͰ(#ZUFTఔ౓૿Ճ
  86. • ैདྷख๏͸20ສূ໌ॻΛॲཧ͢Δͷʹ෺ཧϝϞϦ͕500Gbytesඞཁ • ܭࢉ্32GBytesͷαʔό͕15୆Ҏ্ඞཁ • ఏҊख๏͸20ສূ໌ॻͰ΋1୆ͰॲཧՄೳͷݟࠐΈ • 1ສূ໌ॻ૿Ճͯ͠΋ϝϞϦ࢖༻ྔ͸3GBytesͰ҆ఆ • ఏҊख๏ʹΑΓඞཁͳϋʔυ΢ΣΞίετΛେ෯ʹ௿ݮՄೳ

    87 ϝϞϦ࢖༻ྔ͔Βඞཁͳϋʔυ΢ΣΞΛݟੵ΋Γ
  87. ஌Β͵ؒʹϋʔυ΢ΣΞ΍ӡ༻ίετ͕ ௿ݮ͞Εٕͯज़ऀʮମײʯ͕޲্

  88. ݚڀऀͱͯ͠ΞʔΩςΫνϟΛઃܭ͠ ΤϯδχΞͱͯ͠ࣄۀʹదͨ͠ ιϑτ΢ΣΞΛ࣮૷͢Δ

  89. 5. ຊষͷ·ͱΊ

  90. ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ 91 ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ਓͷମྗɾਫ਼ਆͷݶք ਓͷମྗɾਫ਼ਆͷݶք

    ਓྗͰࢧ͑ଓ͚Δ ਓྗͰ޿͛ଓ͚Δ ਓྗͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ػցͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ Ίͷݚڀ։ൃΛߦ͍ͬͯΔ দຊͷݚڀ
  91. ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ 92 ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ਓͷମྗɾਫ਼ਆͷݶք ਓͷମྗɾਫ਼ਆͷݶք

    ਓྗͰࢧ͑ଓ͚Δ ਓྗͰ޿͛ଓ͚Δ ਓྗͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ػցͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ Ίͷݚڀ։ൃΛߦ͍ͬͯΔ দຊͷݚڀ ࣮ӡ༻্ͷධՁΛେ੾ʹ͠ ͔ͦ͜Β৽نੑɾ༗ޮੑɾ৴པੑΛࣔ͢
  92. ͦΕʹΑͬͯߋͳΔվળΛߦ͏

  93. ݚڀऀͱͯ͠ͷҰൠԽͱ ΤϯδχΞͱͯ͠ͷ࣮ޮԽΛܨ͙

  94. ΤϯδχΞͱݚڀऀ͕ަࠩ͢Δੈք

  95. ͓ޓ͍ʹྑ͍จԽ΍औΓ૊Έʹ ڧؔ͘৺Λ࣋ͬͯऔΓೖΕΔ͜ͱ͕େࣄ

  96. 3. ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ΁

  97. ࠓͰͦ͜ݚڀऀͱΤϯδχΞ͕ަΘΔ ͦͷઌ΁ݸਓͱͯ͠͸าΈग़͍ͯ͠Δ

  98. ࠓʹࢸΔ·Ͱ͸ܾͯ͠ॱௐͰ͸ͳ͔ͬͨ

  99. 10೥Ҏ্લ

  100. ʙ22ࡀ

  101. ຊؾग़͍ͯ͠ͳ͍໰୊

  102. • தֶߴߍͰษڧͰ͖ͳ͍ͷ͸ຊؾग़͍ͯ͠ͳ͍͔Β • εϙʔπͰෛ͚ͨͷ͸࿅शΛຊؾग़ͯ͠΍͍ͬͯͳ͍͔Β • ਅ݋ʹ΍Ε͹ɺฏ౳ͷઃඋ͕͋Ε͹Ͱ͖ΔɾউͯΔ • ࣗ෼ΛͲ͏ʹ͔ਖ਼౰Խͯ͠৺Λ҆ఆͤ͞Δ • ແବͳ͜ͱ͸΍Βͳ͍ɺࣗ෼͸ޮ཰ԽͰੜ͖͍ͯΔ

    • ͦΜͳਓੜ͕20೥ఔଓ͍͍ͯͨ…… 103 ຊؾग़͍ͯ͠ͳ͍໰୊͕ܧଓ
  103. ͓͝Γͱ࠳ં

  104. • CݴޠͰίϯύΠϥ࣮૷͢Δେֶ3ճੜͷ৘ใֶ࣮ݧ • ୭ΑΓ΋ૣ͘࡞ͬͯճΓͷखॿ͚Λ͍ͯͨ͠ • ࠷ऴతʹॳظʹ࡞ͬͨશ͘ಈ͔ͳ͍ίʔυΛޡͬͯఏग़ • ੒੷͕ग़Δ·Ͱؒҧ͍ʹؾ͔ͮͣ·ΘΓͰ1ਓ͚ͩཹ೥͕ܾఆ • ຊؾग़ͯ͠ͳ͍………Ͱ͸৺͕࣋ͨͳ͔ͬͨ

    105 େֶ࣌୅ͷಘҙͳतۀ
  105. ϒϨΠΫεϧʔ

  106. • શྗΛਚ͘͢ࣄΛڪΕͳ͍ɾࣗ෼Λਖ਼౰Խ͠ͳ͍ • શྗΛਚͯ͘͠μϝͦ͏ͩͬͨΒͱʹ͔͘౒ྗ͢Δ • ࣗΒֶ໰ʹڵຯΛ࣋ͪͱʹ͔͘ܧଓతʹֶͿɾຊΛಡΉ • ແବ͔΋͠Εͳ͍͚ͲඞཁʹͳΔ͔΋͠Εͳ͍ͱֶͿ͜ͱʹ౤ࢿ • ֶΜͩ͜ͱͷڞ௨఺Λ୳ͬͨΓ࢖͍৔ॴΛ୳͢౒ྗΛ࢝͠Ίͨ

    • ϨϯλϧαʔόձࣾͰϑϧλΠϜͰΞϧόΠτ • ઌߦͯ͠اۀͰݱ৔ͷٕज़Λֶͼ͔ͨͬͨ 107 Ͳ͏ͨ͠Βྑ͍ͷ͔
  107. ͜Μͳ౰ͨΓલͷ͜ͱʹؾ͕͍ͭͨ 22ࡀͷՆ

  108. ֶͿ͜ͱָ͕͘͠ͳͬͨ

  109. ຊষͰ͸ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷ ઌ΁ਐΉதͰΑ͔ͬͨͱࢥ͏4ͭͷڭ܇Λ ΤϐιʔυΛަ͑ͯ঺հ͠·͢

  110. ͦͯ͠ઌ΁ਐΉਓ͕૿͑Δͱྑ͍ͳͱ ئ͓ͬͯΓ·͢

  111. 1. 2008೥ ৽ଔೖࣾ

  112. 24ࡀ

  113. ઌΛݟ͍ͯͨ

  114. • ݱ৔ͷ໰୊΍՝୊Λ஌Βͣʹݚڀ͢Δා͞ • ୔ࢁͷ༏लͳٕज़ऀʢࣗ෼ͷ஌Βͳ͍͜ͱΛ஌͍ͬͯΔʣͷଘࡏ • ৘ใΛ֎ʹग़ͯ͠ͳ͍͚ͩͰاۀ͍ͬͯ͢͝ͷͰ͸ͳ͍͔ • ೲಘͨ͠Βେֶʹ໭Ζ͏ͱܾҙ • म࢜ʹ͸ߦֶ͔ͣ෦ଔͰब৬ͨ͠

    115 3೥ޙʹେֶʹ໭ͬͯݚڀ͢Δ
  115. ࣾһͱͷ૬ରൺֱͰ೰·ͳ͔ͬͨ

  116. • ͱʹ͔͘ݱ৔ͷٕज़ΛֶͿ • ੈͷதʹ͸͍͢͝ΤϯδχΞ͕୔ࢁ͍Δ͸ͣͱയવͱࢥ͍ͬͯͨ • ݚڀۀքʹ΋͍͢͝ݚڀऀ͕୔ࢁ͍Δͱയવͱࢥ͍ͬͯͨ • ࣗ෼ͷաڈͷࣦഊΛऔΓฦ͢΂͘ͱʹ͔͘ߴΈ΁ • ࣾ಺Ͱͷ૬ରൺֱʹ೰ΜͰ͍ΔՋ͸ແ͔ͬͨ

    117 ͢ͰʹΩϟϦΞϓϥϯ͕͋ͬͨ
  117. ৴པͰ͖Δࢣঊͷଘࡏ

  118. • ଞऀͱͷൺֱΛྫྷ੩ʹධՁͯ͘͠ΕΔ • ৴པͰ͖Δࢣঊɾಉ྅͔Βͷݫ͘͠΋Թ͔͍ࢦఠ • չ͍͚͠Ͳࣗ෼ͷؒҧ͍Λड͚͍ΕΒΕΔ • ͱʹ͔͘·ΘΓʹܙ·Ε͍ͯͨ • ձָ͍ࣾ͠ͷͰࣙΊͨ͘ͳ͍……ͣͬͱ͍͍ͨ

    119 ୈࡾऀͱͯ͠ͷࢹ఺
  119. ࣾ֎ʹ͍Δ༏ΕͨΤϯδχΞɾݚڀऀͷ ଘࡏ

  120. ݕࡧͨ͠ϒϩάͷ৘ใ͔Β໰୊Λ ղܾ͍ͯ͠Δҧ࿨ײ

  121. ୭͔͕ࣗ෼Ͱߟ͑ͯղܾ͠ ৘ใެ։͍ͯ͠Δ

  122. • ੈքதʹ͍Δ༗໊ͳٕज़ऀɾݚڀऀ͸ԕ͍ଘࡏ • Կ͕͍͔͢͝΋૝૾͕͔͍ͭͳ͍͕ࣗ෼΋͍͔ͭ͸ͦ͏ͳΓ͍ͨ • ݚڀऀͱͯࣗ͠༝ʹΦʔϓϯ͔ͭઐ໳తͳݚڀΛ͍ͨ͠ • ΋͏ޱ͚ͩʹ͸ͳΓͨ͘ͳ͍ • ༉அͱ༏ӽײ͔Βੜͨ͡աڈͷࣦഊΛ܁Γฦ͞ͳ͍

    123 ͍͢͝ΤϯδχΞ΍ݚڀऀ
  123. ࣗ෼ͷ޷͖ͳٕज़Λ৳͹͍ͨ͠

  124. • OSɾϛυϧ΢ΣΞͷӡ༻ɾӡ༻ઃܭɾ։ൃ • ϓϩηεվળɾۀ຿ޮ཰ͷվળ • ϓϩδΣΫτ؅ཧɾεέδϡʔϧ؅ཧ • ٕज़ڭҭɾ৽ਓݚम • ಛʹOSɾϛυϧ΢ΣΞͱӡ༻ٕज़ͷ෼໺͕޷͖

    125 ޷͖ͳྖҬ
  125. ௨ৗɺࣄۀߩݙ͕ඞཁͳاۀͰ͸ ͳ͔ͳ͔ࣗ෼ݸਓͷ޷͖ͳݚڀ͕Ͱ͖ͳ͍

  126. Ͱ΋๻͸޷͖ͳઐ໳෼໺ͷ ൚༻త͔ͭߴ౓ͳٕज़Λਂֶ͘ͼ͍ͨ

  127. ͦͷͨΊʹ͸ࣄۀͱ͸཭Εͨ৔ॴͰ ॆ෼ʹ࣌ؒΛॻ͚ͯݚڀ͢Δඞཁ͕͋Δ

  128. ࢓ࣄͱ͍͏࿮૊Έͷதʹ͍ͯ΋ ޷͖ͳ͜ͱʹରͯ͠ૉ௚ʹͳͬͯΈΔ

  129. ڭ܇1 ޷͖ͳ͜ͱʹૉ௚ʹͳΔ͜ͱ

  130. 2. 2011೥ ത࢜՝ఔ΁௅ઓ

  131. 27ࡀ

  132. ֶ෦ଔ

  133. • ڭतʹ͓ձ͍ͯ͠૬ஊ • म࢜͸޷͖ͳݚڀ͕ͳ͔ͳ͔Ͱ͖ͳ͍ • ޷͖ͳݚڀΛ΍Γ͍ͨͳΒത࢜՝ఔ͔Β • ͋…๻͸ֶ෦ଔ 134 म͔࢜ΒೖΔ༧ఆͩͬͨ

  134. म࢜ଔ૬౰ͷ࣮ྗ

  135. • ࣾ֎΍ֶज़ํ໘΁ͷΞ΢τϓοτ͕ͳ͔ͬͨ • ͱʹ͔ࣾ͘಺Ͱͷ࣮੷Λ·ͱΊΔ • ಺༰͸ྑ͍Ͱ͠ΐ͏ͱݴͬͯ௖͘ • Α͠ʂ 136 म࢜ଔ૬౰ͷ࣮੷͕ඞཁ

  136. • ത࢜՝ఔͷೖֶ৹ࠪΛड͚ΔͨΊͷम࢜૬౰ͷࢿ֨Λ৹ࠪ • ·ͱΊͨࢿྉ͸໿50ϖʔδ • ݚڀܦաใࠂॻ΋࡞੒ • ॻྨબߟ͕߹֨ͨ͠Βޱ಄ࢼ໰ 137 ത࢜՝ఔग़ئࢿ֨(म࢜૬౰ͷࢿ֨)৹ࠪॻ

  137. ݁Ռ

  138. ෆ߹֨

  139. • ͋ͬ͞Γॻྨબߟམͪ • ڳ͕௧͍ • Ͳ͏͠Α͏ • Ӭԕʹ߹֨Ͱ͖ͳ͔ͬͨΒ…… 140 طʹୀ৬Λ఻͑ͨޙ

  140. • લʹਐΜͰͷࣦഊ͸ྑ͍ࣦഊ • ߹֨͢Δ·Ͱ௅ઓ͠ଓ͚Ε͹Α͍ • ߹֨͢Δ·Ͱษڧ͠ଓ͚Ε͹Α͍ • ࣗ෼ʹ͸΍Γ਱͛Δ·Ͱ௅ઓ͢Δ֮ޛ͕͋Δ • ͍ͭͷ·ʹ͔ͪΐͬͱͨ͠ઈ๬ʹ͸׳Ε͍ͯͨ

    141 Ͱ΋ཹ೥ͨ࣌͠΄ͲͰ͸ͳ͔ͬͨ
  141. ത࢜՝ఔग़ئࢿ֨৹ࠪͷ࠶௅ઓ

  142. • ಛڐग़ئͱࠪಡ෇͖࿦จԽɾର֎ൃද • ࣾ௕ʹ௚ஊ൑͢Δ • ৽͍͠ผͷݚڀͷ࿨ӳͷ࿦จԽɾࠃࡍձٞͰaccept • ΑΓৄࡉͳݚڀܭըΛࣥච • ൒೥ؒͰࠪಡ෇͖࿦จ1ຊɺࠃࡍձٞ࿦จ1ຊɺֶձൃද2ຊɺಛڐग़ئ1ຊ

    143 ࣾ಺ͷ࣮੷ΛΑΓΦʔϓϯʹ
  143. ݁Ռ

  144. ߹֨

  145. ޱ಄ࢼ໰΋໔আ

  146. Α͠ʂ

  147. ത࢜՝ఔೖֶऀબൈࢼݧ

  148. ത࢜՝ఔΛ΍Γ͖ΔݟࠐΈ͕͋Δ͔

  149. • ത࢜՝ఔͰͷݚڀܭը • ࿦จ࣮੷΍ݚڀۀ੷·ͱΊ • খ࿦จͷචهࢼݧͱTOEIC • ത࢜՝ఔͰͷৄࡉͳݚڀܭըͷϓϨθϯ • ৘ใֶݚڀՊͷڭतɾ।ڭतɾߨࢣɾॿڭ૯੎໿50໊ͷલͰൃද

    • ౰࣌͸ਓੜͰ࠷΋ϓϨογϟʔΛײͨ͡Πϕϯτ 150 ͔͜͜Β͕ຊ൪
  150. ݁Ռ

  151. ߹֨

  152. Α͠ʂ

  153. 3೥ؒۈΊͨձࣾΛࣙΊͯ 2012೥4݄ʹ28ࡀͰത࢜՝ఔೖֶ

  154. ڭ܇2 ਐΈ͍ͨํ޲΁Ұา౿Έग़ͯ͠ΈΔ͜ͱ

  155. 3. 2012೥ mrubyͱͷग़ձ͍

  156. 28ࡀ

  157. େֶͰΠϯλʔωοτج൫ٕज़ʹؔ͢Δ ݚڀΛ͸͡Ί͍ͯͨ

  158. WebαʔόͷߴूੵϚϧνςφϯτ ΞʔΩςΫνϟʹؔ͢Δݚڀ

  159. ͦ͜Ͱͳͥmrubyͳͷ͔ʁ

  160. • mrubyͱ͸૊ࠐΈεΫϦϓτݴޠͷͻͱͭ • খ͞ͳ૊ࠐΈػثʹ૊ΈࠐΉ͜ͱ͕໨తͷͻͱͭ • ΞϓϦ૊ΈࠐΈͱ͍͏ํ޲ੑ͸౰࣌΄΅ͳ͔ͬͨ • ಛʹ౰࣌ͷݚڀͱ͸ؔ܎ͳ͔ͬͨ • Rubyͷ෕·ͭ΋ͱΏ͖ͻΖ͞Μͷ৽͍͠OSS

    161 2012೥4݄ʹެ։
  161. ͳΜ͔͍͢͝

  162. ΍͹͍

  163. ࣌ؒ΋͋ΔͷͰݚڀͷଉൈ͖ʹدΓಓ

  164. ͦ͏ͩ ݚڀର৅ͷWebαʔόʹ૊ΈࠐΊͳ͍͔ͳ

  165. • ୅දతͳWebαʔόʹ૊ΈࠐΉͱͲ͏ͳΔͷ͔ͳ • WebαʔόͷৼΔ෣͍Λ؆୯ʹ੍ޚͰ͖ͯศརͦ͏ • ໘നͦ͏ͳͷͰͱΓ࣮͋͑ͣ૷ͯ͠ΈΑ͏ • mod_perlʹͪͳΜͰmod_mrubyɾngx_mrubyͱ໊෇͚ͨ • ౰࣌28ࡀ

    166 ͱΓ͋͑ͣ૊ΈࠐΜͰΈΑ͏
  166. ప໷Ͱ࣮૷ͯ͠mrubyެ։ͷ࣍ͷ೔ʹެ։

  167. 168

  168. • ͋ʂ·ͭ΋ͱΏ͖ͻΖ͞Μ͕πΠʔτͨ͠Γ঺հͨ͠Γͯ͘͠Εͨ • ໊લ͚ͩ஌͍ͬͯΔ༗໊ͳਓʑ͕໘നͦ͏ͱݴͬͯ͘Εͨ • ࣮૷ָ͕͔ͬͨ͠ͷͰͱΓ͋͑ͣͦΕΛଓ͚Δ • ໘ന͍ͷͰຖ೔໷஗͘·Ͱ࣮૷ • සൟʹϒϩάΛॻ͍ͯϑΟʔυόοΫ΋Β࣮ͬͯ૷

    169 mod_mruby͕ҙ֎ͱ஫໨͞Εͨ
  169. ࿦จͰॻ͍ͯΈ·ͤΜ͔ʁ

  170. • ͼͬ͘Γͨ͠ • ָ͍͠ͷͰద౰ʹझຯͰ΍͍ͬͯͨ • Ͱ΋࣮੷ʹͳΔͷͳΒخ͍͠ͷͰྃঝ 171 ͍͖ͳΓࢦಋڭһͷڭत͔ΒTwitterͷDM

  171. ݚڀͱͯ͠࠶ఆٛ

  172. • ݚڀऀࢹ఺ • ྑ͍ಓ۩Λ࢖͍ͬͯΔ͔Β༏Ε͍ͯΔͷ͔ʁ • ࣮૷Ҏલͷ؍఺Ͱ৽نੑɾ༗ޮੑΛݕ౼͢΂͖ • ͋ͳͨͷݚڀͷීวతͳֶज़తߩݙͱ͸ʁ • ژ౎େֶ৘ใֶݚڀՊത࢜՝ఔͷதؒൃදͰ໰ΘΕΔ

    • ͱʹ͔͘࿦จͷαʔϕΠ΍ίϯϐϡʔλαΠΤϯεΛษڧͯࠩ͠Λ஌Δ 173 ํࣜͱͯ͠Կ͕༏Ε͍ͯΔͷ͔
  173. • ΤϯδχΞࢹ఺ • ྑ͍ಓ۩Λ࠾༻͢Δ͜ͱͷϝϦοτ • ࢖͍खͷ࢖͍΍͢͞΍ར༻ऀͷଟ͞ɾଟ༷ੑ • ͍͔ʹݱ৔Ͱӡ༻ɾ࣮ફ͠΍͍࣮͢૷ʹམͱ͔͢ • ܧଓతͳϝϯςφϯεͱͦͷऔΓ૊Έ΍͢͞

    • ͱʹ͔͘ίʔυΛॻ͍ͯ࢖͍΍͢͞΍ಋೖɾϝϯςφϯε͠΍͢͞Λ௥ٻ 174 ͱ͸͍࣮͑૷΋ॏཁ
  174. mrubyΛ࢖ͬͨߩݙ͕ ΞΧσϛΞ΍اۀ͔ΒೝΊΒΕΔ

  175. • 2012೥ ୀ৬ͯ͠େֶӃ΁ • 2013೥ IOTS2013 ༏ल࿦จ৆ • 2014೥ ϑΫΦΧRubyେ৆

    ༏ल৆ • 2014೥ ୈ9ճ೔ຊOSS঑ྭ৆ • 2014೥ ৘ใॲཧֶձ ࢁԼه೦ݚڀ৆ • 2014೥ Ruby Prize ࠷ऴϊϛωʔτ • 2015೥ ϑΫΦΧRubyେ৆ اۀ৆ • 2015೥ ژ౎େֶ૯௕৆ʢֶ໰ʣͷީิऀ 176 mruby΍ֶज़ݚڀΛ௨ͨ͡ධՁʢ௚ۙ5೥ؒʣ • 2016೥ ϑΫΦΧRubyେ৆ ঑ྭ৆ • 2016೥ ৘ใॲཧֶձ IPSJ-ONE2016 ొஃ • 2016೥ ৘ใॲཧֶձ IOTݚڀձӡӦҕһब೚ • 2017೥ ژ౎େֶത࢜ʢ৘ใֶʣत༩
  176. 177

  177. ϖύϘʹ΋ೖࣾͰ͖ͨ

  178. ϖύϘݚڀॴ΋࡞Δ͜ͱ͕Ͱ͖ͨ

  179. ژ౎େֶത࢜ʢ৘ใֶʣ΋औಘͰ͖ͨ

  180. دΓಓ͕ࣗ෼ͷಘҙ෼໺ʹ

  181. ڭ܇3 ڵຯͷ͋Δ͜ͱ΁دΓಓͯ͠ΈΔ͜ͱ

  182. 4. 2013೥ ֶज़ݚڀͱOSS։ൃ

  183. 29ࡀ

  184. Φʔϓϯιʔειϑτ΢ΣΞʢOSSʣ ͱͯ͠։ൃ͢Δ͜ͱ

  185. • ιϑτ΢ΣΞΛ։ൃͯ͠ιʔείʔυΛެ։͢Δ • কདྷੑ͕͋Ε͹ະख़ͳঢ়ଶ͔ΒͰ΋ެ։͢Δ • ϑΟʔυόοΫΛ໯ͬͯΫΦϦςΟΛ্͍͛ͯ͘ • ਐḿ΍ΞΠσΞɺ࣮૷΋Φʔϓϯʹͯ͠ΫΦϦςΟΛ্͛Δ • ࣗ෼ɾࣾ಺ͱଞਓɾࣾ֎ͱڞಉͯ͠։ൃӡ༻͕࣮ݱՄೳ

    186 Webٕज़Ͱ͸Α͋͘Δ΍Γํ
  186. Φʔϓϯʹֶज़ݚڀ͢Δ͜ͱ

  187. • ࿦จެ։·ͰΦʔϓϯʹ͸Ͱ͖ͳ͍ • ݚڀͷωλ΍ਐḿɺ࣮૷Λެ։͠ͳ͍ • جຊతʹ͸࿦จʹ·ͱΊ͔ͯ͠Δ΂͖ձٞ΍ࡶࢽͰެ։ 188 ࣮͸೉͍͠৔߹͕ଟ͍

  188. Ͱ΋๻͸OSS։ൃͷΑ͏ʹݚڀΛͨ͠

  189. • ݚڀ͸ͦ͏͍͏΍ΓํΛ͠ͳ͍Αʁ • ͦΜͳ͜ͱͯͨ͠Β࿦จʹ΋ݚڀʹ΋ͳΒͳ͍Αʁ • ࿦จԽͷલʹϒϩάʹॻ͘ͱ࿦จʹͳΒͳ͍͔΋Αʁ • ॏཁͳωλ΍ਐḿΛϒϩάʹॻ͘ͳΜͯԿΛߟ͍͑ͯΔͷ͔ʁ 190 ൷൑Λड͚ͨ

  190. ࣗ෼ࣗ਎ͷݚڀΛΦʔϓϯʹ͢Δͷ͔ͩΒ ؒҧͬͨ͜ͱ͸͍ͯ͠ͳ͍ ΍Γ͍ͨΑ͏ʹ΍Δ

  191. ͱ͸͍͑ෆ҆ͩͬͨ

  192. ۮવ࿓ԼͰग़ձͬͨࢦಋڭһͷڭतʹ ೰ΈΛ૬ஊͯ͠Έͨ

  193. ڭतͷݴ༿

  194. ʮੲͷ΍ΓํʹनΘΕͳͯ͘ྑ͍Ͱ͢ɻ দຊ͞Μ͕ྑ͍ͱࢥ͏΍ΓํͰ ޷͖ͳΑ͏ʹ΍ͬͯԼ͍͞ɻ ࠓͷ΍Γํɺྑ͍ͱࢥ͍·͢Αɻʯ

  195. • ໎͍͕ফ͑ͨ • Φʔϓϯʹݚڀɾ։ൃ͕Ͱ͖Δ • ࣗ෼ͷ΍Γ͍ͨ͜ͱ͕Ͱ͖Δ….. 196 ٹΘΕͨ

  196. ϑΟʔυόοΫͷதͰ੒௕

  197. • ༗໊ͳٕज़ऀ͕৘ใ֦ࢄΛͯ͘͠Εͨ • தʹ͸ωΨςΟϒͳίϝϯτ΋୔ࢁ͋ͬͨ • ͦΕΛͲ͏ʹ͔ٕज़Ͱݟฦ͢Α͏ʹߟ͑ͨ • গͣͭ͠ߨԋ΋ґཔ͞ΕΔΑ͏ʹͳͬͨ • ֶज़ɾاۀͰͷධՁʹܨ͕͍ͬͯͬͨ

    • ͱʹ͔͘໘ന͔ͬͨͷͰίπίπͱऔΓ૊ΈΞ΢τϓοτ͠ଓ͚ͨ 198 ୔ࢁϑΟʔυόοΫΛಘΒΕͨ
  198. ͋Δ࣌ৼΓฦΔͱେ͖ͳ੒Ռʹͳ͍ͬͯͨ

  199. ੈͷதͰͷࣗ෼ͷཱͪҐஔΛ஌Δ

  200. • ͍ͭͷ·ʹ͔஌Γ߹͍ʹͳ͍ͬͯͨ • ҰॹʹτʔΫηογϣϯΛ͍ͯͨ͠ • ҰॹʹOSS։ൃΛͯٞ͠࿦΋͍ͯͨ͠ • ڧ͍ٕज़ऀʹ΋·Εͯ͞Βʹڧ͘ͳ͍ͬͯ͘ • ֶͿ΄Ͳʹࣗ෼Λ஌Γ΋ͬͱֶͼͨ͘ͳΔ

    201 ੲ͸ԕ͍ଘࡏͩͬͨ༗໊ਓ
  201. • ༗໊ͱ͞ΕΔٕज़ऀͷ৘೤͸͍͢͝ • ٕज़͕ͨͩͨͩ໘ന͍ɺ࡞Γ্͛Δָ͠͞ • ࣗ෼΋ͨͩͨͩ಺ൃతʹऔΓ૊Ή͜ͱͰ৘೤͕૿෯͍ͯ͘͠ • ೤ҙΛٕ࣋ͭज़ऀͱͷؔ܎ͷதͰ৘೤͕͞ΒʹඈͼՐ͢Δ 202 ৘೤͕ඈͼՐ͢Δ

  202. ݟ͑ͳ͔ͬͨ௖্

  203. • ࣗ෼ͷઐ໳෼໺Ͱͷࣗ෼ͷཱͪҐஔ • ࣗ෼ͷऔΓ૊ΈΛΦʔϓϯʹ͢Δ͜ͱͰࣗ෼Λ஌Δ • τοϓϨϕϧͷٕज़͸Ͳ͔͜ԿΛ΍Ε͹ḷΓ͚ͭΔ͔ • ࣗ෼ͷٕज़͕࠷΋׆͖Δಓ͸Ͳ͔͜ • ࣗ෼ͷಘҙ෼໺ͰੈքҰΛ໨ࢦ͢

    • ເͰ͸ແ͍ 204 ௖্͕ݟ͑࢝Ίͨ
  204. ڭ܇4 ಘͨ஌ݟΛͱʹ͔͘ܧଓతʹ ެ։ͯ͠ΈΔ͜ͱ

  205. 4ͭͷڭ܇Λಘͨ

  206. 1. ޷͖ͳ͜ͱʹૉ௚ʹͳΔ͜ͱ 2. ਐΈ͍ͨํ޲΁Ұา౿Έग़ͯ͠ΈΔ͜ͱ 3. ڵຯͷ͋Δ͜ͱ΁ͱدΓಓΛͯ͠ΈΔ͜ͱ 4. ಘͨ஌ݟΛͱʹ͔͘ܧଓతʹެ։ͯ͠ΈΔ͜ͱ 207 ͜Ε·Ͱʹಘͨ4ͭͷڭ܇

  207. ޷͖ͳ෼໺͔ͩΒେֶ΁ߦͬͯ·Ͱ ݚڀ։ൃΛ͍ͯͨ͠

  208. ؾ͕͍ͭͨΒݚڀऀͱΤϯδχΞʹؔ৺Λ ࣋ͪͳ͕Βݚڀ։ൃ͍ͯͨ͠

  209. େֶͰ͔ͬ͠Γ࣌ؒΛֶ͔͚ͯͼ ΤϯδχΞʹؔ৺Λ࣋ͪͳ͕ΒݚڀΛ͢Δ

  210. ͦΕ͕ࣗ෼ͷ޷͖ͳ͜ͱͱ ࣄۀ΁ͷߩݙͱΛॏͶ͋Θͤ͸͡Ίͨ

  211. ͔ͩΒࠓߴ͍ٕज़ྗΛ࣋ͬͯΤϯδχΞͱ ݚڀऀ͕ަΘΔઌͰ׆ಈ͕Ͱ͖͍ͯΔ

  212. ͔ͩΒϖύϘݚڀॴΛ ͋ΜͪΆ͞Μͱ૑ઃͰ͖ͨ

  213. ͦͯͦ͠ͷ׆ಈ͸͍ͣΕࣾձʹ΋ ؐݩ͞Ε͍ͯ͘ͱ৴͍ͯ͡Δ

  214. ݚڀऀͱΤϯδχΞ͕ަΘΔઌʹ͋Δࣾձ

  215. ͜ͷষͷ࠷ޙʹ

  216. ͨͬͨͻͱͭͷڭ܇

  217. 4ͭͷڭ܇ΛಘΔʹࢸͬͨ ͨͬͨͻͱͭͷڭ܇

  218. ʮࣗ෼Λ৴͡Δ͜ͱʯ

  219. 1. (ࣗ෼Λ৴ͯ͡)޷͖ͳ͜ͱʹૉ௚ʹͳΕͨ 2. (ࣗ෼Λ৴ͯ͡)ਐΈ͍ͨํ޲΁Ұา౿Έग़ͤͨ 3. ڵຯͷ͋Δ͜ͱ΁ͱ(ࣗ෼͸େৎ෉ͩΖ͏ͱ)دΓಓ͢Δ͜ͱ͕Ͱ͖ͨ 4. (͍ͣΕͦΕ͕େ͖ͳ੒ՌʹͳΔͱ৴ͯ͡)ಘͨ஌ݟΛͱʹ͔͘ܧଓతʹެ։ ͢Δ͜ͱ͕Ͱ͖ͨ 220

    ࣗ෼Λ৴͡Δ͜ͱ͕Ͱ͖͔ͨΒͦ͜
  220. ʮੲͷ΍ΓํʹनΘΕͳͯ͘ྑ͍Ͱ͢ɻ দຊ͞Μ͕ྑ͍ͱࢥ͏΍ΓํͰ ޷͖ͳΑ͏ʹ΍ͬͯԼ͍͞ɻ ࠓͷ΍Γํɺྑ͍ͱࢥ͍·͢Αɻʯ

  221. ਓͷݴ༿͸ͦͷਓͷੜ͖ํ͑͞΋ ม͑Δྗ͕͋Δ

  222. ࣗ෼Λ৴ͯ͡಺ͳΔࣗ෼ͷελΠϧΛ ޷͖ͳΑ͏ʹຏ͖ଓ͚ͨ

  223. ݁Ռతʹ಺ൃతʹಈػ෇͚ΒΕΔߦಈ͸ ࣗવͱ৘೤͕ੜ͡औΓ૊Ίͨ

  224. ৘೤͕͋Δ͔Βখ͞ͳ࣮੷Ͱ΋ ࣗ෼Λ৴ͯ͡ܧଓతʹऔΓ૊Μͩ

  225. ͋Δ࣌ৼΓฦΔͱ ͱͯ΋େ͖ͳ੒Ռʹͳ͍ͬͯͨ

  226. ࣗ෼Λ৴ͯ͡৘೤ͱތΓʹૉ௚ʹͳΓ ࣗ෼ͷελΠϧΛ࡞Γ্͛Δ

  227. લྫ͸ࣗ෼ࣗ਎Ͱ࡞Δ͜ͱ͕Ͱ͖Δ

  228. ʮࣗ෼Λ৴͡Δ͜ͱʯ

  229. 4. ͓ΘΓʹ

  230. ࠓ೔ͷ࿩͸͋͘·Ͱࢲͷ෺ޠ

  231. օ༷͸ੋඇࣗ෼ͷελΠϧΛ ࡞Γ্͛ͯԼ͍͞

  232. ৼΓฦΔͱࣗ෼͕ܦݧ͓ͨ͠͝Γ΍ࣦഊ ҙຯͷͳ͍͜ͱͳͲͻͱͭ΋ͳ͔ͬͨ

  233. ແବͱࢥ͑Δ͜ͱͰ΋ͦ͜ʹ ԿΒ͔ͷҙຯΛݟग़͢ͷ͸ࣗ෼ࣗ਎

  234. ߴ౓ʹ࢖͏ٕज़΋ٕज़Λ࡞Δٕज़΋ ࠷ऴతʹ஌ࣝͷ෯͕ࣗ෼Λॿ͚ͯ͘ΕΔ

  235. ࣗ෼ͷελΠϧΛ࡞Δʹ͸ ͋ΒΏΔ஌͕ࣝඞཁʹͳΔ

  236. ࠓ·Ͱಘͨڭ܇Λ͞Βʹந৅Խ

  237. ࢲͷݱࡏͷߦಈࢦ਑3ͭ

  238. 1. ࣗ෼Λ৴ָͯ͡͠Ή͜ͱ

  239. 2. ͋ΒΏΔ͜ͱʹؔ৺Λ࣋ͪ ڞ௨఺Λݟग़͢͜ͱ

  240. 3. ܧଓతʹऔΓ૊Ή͜ͱ

  241. ͜ͷߦಈࢦ਑͕ҧ͍Λ஌Γ ࣗ෼ͷελΠϧ(=ࠩผԽ)Λৢ੒ͤ͞Δ

  242. ੋඇօ༷͸ࢹ໺Λ޿͛ɺࢹ࠲ΛߴΊ ࣗ෼ͷελΠϧΛચ࿅ͤͯ͞ΈͯԼ͍͞

  243. օ༷͕ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ Ͱ׆༂͢Δ͜ͱΛָ͠Έʹ͍ͯ͠·͢

  244. ࢲΛੋඇ౿Έ୆ʹ͍ͯͩ͘͠͞

  245. খ͞ͳ͜Ζ͔ΒܑఋͰଞѪ΋ͳ͍͜ͱͰ΋஥ྑٞ͘࿦͢Δػձ΍෯޿͍஌ࣝΛ༩ ͑ͯ͘Εܑ͕ͨɺ9೥ؒड͚ଓ͚ͨ࢘๏ࢼݧʹࠓ೥ͷ2017೥ʹ߹֨͠·ͨ͠ɻ ৗʹࢲͷઌΛਐΈଓ͚ɺʮࣗ෼Λ৴ָͯ͡͠Ή͜ͱʯʮ͋ΒΏΔ͜ͱʹؔ৺Λ࣋ ͪڞ௨఺Λݟग़͢͜ͱʯʮܧଓతʹऔΓ૊Ή͜ͱʯͦΕΒ͕݁Ռʹܨ͕Δ͜ͱΛ ࣔ͠ଓ͚ɺࢲͷߦಈࢦ਑ͱͳΔ͖͔͚ͬΛ༩͑ͯ͘Εܑͨʹ৺͔Βײँ͠·͢ɻ ࠷ޙʹɺࣗ༝ʹٕज़Λֶͼଓ͚Δ͜ͱΛ͍ͭ΋ۙ͘Ͱࢧ͑ͯ͘Ε͍ͯΔ࠺ͱࢠڙ ͨͪʹײँ͠·͢ɻ 246 ँࣙ