Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エンジニアの選球眼 - イシューからはじめよう #PyDataOkinawa

エンジニアの選球眼 - イシューからはじめよう #PyDataOkinawa

PyData.Okinawa + PythonBeginners沖縄 合同勉強会 2018/6/16 基調講演

#Python #Baseball #PyData #Agile

Shinichi Nakagawa

June 16, 2018
Tweet

More Decks by Shinichi Nakagawa

Other Decks in Technology

Transcript

  1. ໺ٿΤϯδχΞͰ͢ • Shinichi NAKAGAWA(@shinyorke) • 38ࡀɺࣾձਓ18೥໨ɺϊ΢ϛαϯʢࡕਆʣͱಉ͍೥ • ʢגʣωΫετϕʔε ໺ٿΤϯδχΞ݉CTO •

    ITίϯαϧɺϦΫϧʔτɺRettyɺ⽁ˡࠓ͜͜ • Python΋͘΋ࣗ͘शࣨʢ#rettypyʣΦʔΨφΠβʔ • #Python #αʔόʔαΠυΤϯδχΞ #໺ٿσʔλ෼ੳ #ΞδϟΠϧ #ڕྉཧ • ޷͖ͳ๐੝ͷ໏ฑɿ࢒೾ʢനʣɺླྀٿඒਓɺ๛ݟ਌ʢͱ͎ΏΈΌʣ
  2. ʲ࢓ࣄʳωΫετϕʔε #ͱ͸ • Innovations For All Athletes
 (શͯͷΞεϦʔτʹٕज़ֵ৽Λ) • τϥοΫϚϯ(υοϓϥʔϨʔμʔ)͔ΒಘΒΕͨ౤ٿσʔλΛղੳ͠,


    ෼ੳɾՄࢹԽΛߦ͏ϓϩμΫτʮBACS(όοΫε)ʯΛఏڙ • ໺ٿΛத৺ͱͨ͠બखɾٿஂͷίϯαϧςΟϯάɾαϙʔτetc… • ৄ͘͠͸ͪ͜ΒͰˠ http://nextbase.co.jp/ • ݱࡏΤϯδχΞืूதͰ͢ʂʢϑϩϯτΤϯυɾαʔόʔαΠυʣ ※BACS͸ʮBaseball Analytics and Coaching Systemʯͷུ
  3. Python΋͘΋ࣗ͘शࣨ #rettypy • ࢲͱRettyͷΤϯδχΞ͕ओ࠵͢ΔPython΋͘΋͘ձ • झࢫ&Ϟοτʔ • ֤ࣗ,͓୊Λ࣋ࢀͯ͠ʮࣗश(΋͘΋͘)ʯ͢Δ • ൃදɾࡶஊΛ௨ͯ͡৘ใަ׵΍ֶͼΛಘΔ

    • ΠΠΰϋϯ(ϥϯνɾ͓΍ͭ)Λ༇͠Ή • ॳ৺ऀ͔ΒΤόϯδΣϦετ·Ͱଟछଟ༷ͳࢀՃϝϯόʔ • ։࠵༧ఆɾৄࡉ͸RettyͷconnpassαΠτ΋͘͠͸ Twitterʮ#rettypyʯΛνΣοΫʂ
 https://retty.connpass.com
  4. ϓϩδΣΫτɾ໨తͷݴޠԽ • େ·͔ͳετʔϦʔͷ࡞੒ • σʔλɾυϦϒϯͰ໺ٿղઆ • σʔλ෼ੳͷϫʔΫϑϩʔΛ΄΅PythonͰ࡞Γ੾Δ • ετʔϦʔ͔ΒΠγϡʔΛ࡞Δ&ݴޠԽ͢Δ •

    ϝϞॻ͖ΛΑΓߏ଄తʹ੔ཧ&ΠγϡʔԽ͢Δ • શମ૾ΛݴޠԽ͢Δ.ݟฦ͢͜ͱ͕Ͱ͖ΔϑΥʔϚοτͰॻ͘
 ˠֆਤΛॻ͘,Design Doc,ϦʔϯΩϟϯόε,ΠϯηϓγϣϯσοΩͳͲ
  5. ΤϯδχΞͷ໾ׂʢݴޠԽޙʣ • ͦΕͧΕͷϑΣʔζʹ߹ͬͨख๏ɾखஈɾٕज़Λݕ౼͠ɺܾΊΔ • σʔλऔಘɾநग़ɾલॲཧ • ֶशɾ෼ੳɾݕূ • ߏஙɾӡ༻ •

    ܾΊΔ΂͖಺༰ • ਐΊํʢΞδϟΠϧͳͷ͔ଞͳͷ͔ɺϑΣʔζؔ܎ͳ͘શମతʹʣ • ϓϩάϥϛϯάݴޠʢ΄Μͱʹશ෦PythonͰ͑͑ͷ͔ʁʣ • ϥΠϒϥϦɾFWʢރΕͯΔ΍ͭVS৽͍͠Ϟϊࢼ͍ͨ͠ཉٻʣ
  6. #pyconjp2017 Ͱ࢖ͬͨ/ఘΊͨϞϊୡ ϑΣʔζɾ໾ׂ ΍͖͏Ͱ࢖ͬͨϞϊ ݕ౼ର৅ͩͬͨϞϊ
 ʢ࢖Θͳ͔ͬͨϞϊʣ σʔλॲཧ ʢऔಘɾநग़ɾલॲཧʣ ɾ4DSBQZ
 ɾ.Z42-


    ɾQBOEBT ɾCFBVUJGVMTPVQ
 ɾ#JH2VFSZ
 ɾOVNQZTDJQZ ֶशɾ෼ੳɾݕূ TBCS ໺ٿϥΠϒϥϦ ػցֶशϥΠϒϥϦશൠ ߏஙɾӡ༻ ɾ"JSqPX
 ɾ3FEBTI+VQZUFS
 ɾ%PDLFSࣗ෼ͷ1$ ɾMVJHJ +FOLJOT 3VO%FDL
 ɾUBCMFBV
 ɾ7."84 ($1ͳͲ
  7. σʔλऔಘɾநग़ɾલॲཧ • औಘ(Web͔ΒूΊΔ) • ऩूʙσʔλอଘͷύΠϓϥΠϯΛ૊ΊΔScrapyΛબ୒ • εΫϨΠϐϯάʮͷΈʯͷbeautiful soup͸ෆ࠾༻ • ࠷ॳ͸ϩʔΧϧͰಈ͚͹OKͩͬͨͷͰMySQLΛDBʹ

    • Big Query͸ڵຯ͕͋ͬͨେͨ͠σʔλྔͰ΋ͳ͍ͷͰෆ࠾༻ • நग़ɾલॲཧ • ࢼ߹੒੷ɾબख৘ใڞʹ୯७ͳςʔϒϧͳͷͰpandasͰநग़&લॲཧ • ػցֶश͸࢖Θͳ͍ͷͰnumpy/scipyͷओཁػೳ͸࢖Θͣɹ˞ґଘ͸͍ͯ͠Δ
  8. ߏஙɾӡ༻ • ϓϨθϯςʔγϣϯʢݟͤΔʣ • ʲ࠾༻ʳఆظϨϙʔτ͸Redash,౎౓ݕূɾ࣮ݧ͸Jupyter notebook • ʲෆ࠾༻ʳࣗ෼ͷPCͰಈ͚͹OKͩͬͨͷͰ,tablaeu΄͔Ϋϥ΢υܥπʔϧ͸౰ॳ͔Β૝ఆ֎ • ϓϥοτϑΥʔϜʢج൫ʣ

    • ʲ࠾༻ʳGUIɾόονڞʹߴػೳʹἧͬͨAirflow • ʲෆ࠾༻ʳ׳Ε͍ͯͳ͍Jenkins/Run Deck,΍΍ػೳෆ଍ͩͬͨluigi • Πϯϑϥ • ʲ࠾༻ʳࣗ୐σεΫτοϓͱϊʔτͰ؀ڥڞ༗ʢ&কདྷΫϥ΢υʹҾͬӽ͠ʣͷͨΊDocker • ʲෆ࠾༻ʳVMͰ௚઀࡞Δ&·ͩඞཁͳ͔ͬͨͷͰΫϥ΢υܥͷαʔϏεʢAWS,GCPͳͲʣ
  9. ٕज़બͼͰେ੾ʹͨ͜͠ͱ • PythonϕʔεͰ౷Ұ • ࣗ෼͕׳Ε͍ͯΔ͔ͭ,όʔδϣϯ؅ཧ΋ߟ͑΍͍͢ • ͦ΋ͦ΋PythonͷΧϯϑΝϨϯεͳͷͰʢͦΒͦ͏Αʣ • OSS׆༻Ͱʮͭ͘Βͳ͍ʯʮͭͬͨ͘Ϟϊ͸ެ։ʯ •

    OSSͰ͋Δ΋ͷɾރΕͯΔϞϊͷ૊Έ߹ΘͤͰαΫοͱ • OSSʹͳ͍΋ͷʢ໺ٿؔ܎ʣͱ͔͸࡞ͬͯͦΕ΋OSSԽ • ʮΉ͔͍ͣ͠Λ΍͘͞͠ʯ΍ΔɺςΫχοΫʹ૸Βͳ͍ • ʮηΠόʔϝτϦΫεʯͱ͍͏ཱ೿ͳख๏͕͋ΔͷͰͦ͜ʹཔΔ • ඞཁ΋ແ͍ͷʹػցֶशͱ͔೉͍͠ɾ໘౗͍͘͞ςΫχοΫʢΪϟϯϒϧʣ͸࢖Θͳ͍ ※஫ɿ࢓ࣄʢࠓʣ͸ผͰ͢ʢެ։Ͱ͖ͳ͍ʣ
  10. ϏδωεྗΛຏ͘ • ʮυϝΠϯ஌ࣝʯʮυΩϡϝϯτྗʯʮίϛϡྗʯ • ෼ੳର৅ʹର͢ΔۀքɾҰൠ஌ࣝ=ʮυϝΠϯ஌ࣝʯ • ఻͑ΔͨΊͷʮυΩϡϝϯτྗʯ • νʔϜ΍ଞͷΤϯδχΞͱ࿩ͤΔ࠷௿ݶͷʮίϛϡྗʯ •

    ಛఆͷྖҬͰΨνʹͳΔͳΒʮυϝΠϯ஌ࣝʯ͸ৄ͘͠ͳΖ͏ • υΩϡϝϯτྗɺίϛϡྗ͸ʮ࠷௿ݶࠔΒͳ͍͙Β͍ʯͰྑ͍
 ʢҙࣝ͗ͯ͢͠Կ΋Ͱ͖ͳ͘ͳΔͱਏ͍ͷͰʣ
  11. ࣗ෼Λຏ͘؀ڥɾश׳࡞Γ • ؀ڥͭ͘Γ • ҰਓͰूதͯ͠ษڧɾֶश͢Δ؀ڥΛ࡞Δ • ৔ॴʢࣗ୐or֎ʣɺSNSஅͪɺझຯͳͲͷ༠࿭͔Β཭ΕΔetc… • श׳࡞Γ •

    ೔ʑͷੜ׆ϦζϜʹ͏·͘ೖΕΔΑ͏ͳश׳࡞Γ • ࢓ࣄɾՈఉɾझຯetc…ͱ͏·͘ڞଘ͢Δ࣌ؒͷ࢖͍ํΛ৺͕͚Δ • ʮηϧϑϚωδϝϯτΛ͔ͬ͠Γ΍Ζ͏ʂʯͱ͍͏ࣄʂ
  12. ίϛϡχςΟͰֶͿ΂͖ཧ༝ • Get out of the building
 ʢ֎ʹग़Α͏ʣ • Output

    & Feedback
 ʢΞ΢τϓοτΛग़ͦ͏&ҙݟΛ΋Β͓͏ʣ • Networking
 ʢ஥ؒΛͭ͘Ζ͏ʣ
  13. Get out of the building • ྑ࣭ͳΠϯϓοτ͸ݾͷಠֶͷΈͰ͸֫ಘͰ͖ͳ͍ • ๊͍͑ͯΔ೰Έɾٙ໰Λطʹղܾ͍ͯ͠Δਓ͔Β
 ஌ݟ͕ڞ༗͞ΕΔʢ͔΋ʣ

    • ܦݧ๛෋ͳਓʢڧऀʣ͔ΒΠϯϓοτΛಘΒΕΔʢ͔΋ʣ • ࣗݾֶशʢҰਓ͖ͬΓʣ͓ΑͼձࣾͰ͸ಘΒΕͳ͍ɺ
 ৽ͨͳΠϯϓοτͱωοτϫʔΫΛܗ੒Ͱ͖Δ • ·ͣ͸֎ʹग़Α͏ʂʂʂ
  14. Output & Feedback • ࣗ਎ͷΞ΢τϓοτ͔Βྑ࣭͔ͭ།ҰແೋͷΠϯϓοτ͕ੜ·ΕΔ • ྫ͑͹ษڧձ΍΋͘΋͘ձͰLTΛ͢Δ͜ͱΑΓɺ • ྑ͍ͱ͜ΖΛ๙ΊΒΕΔʢؾ͍͍࣋ͪʣ •

    ৭ʑͳΞυόΠεʢͱϚαΧϦগʑʣ • ࣍ͷεςοϓ΁ͷώϯτ͕ಘΒΕΔ • LT΍࡞ͬͨϞϊͷσϞΛ܁Γฦ͢ࣄʹΑΓࣗ෼ͷಘҙɾෆಘҙΛ໌֬ʹ
 ͨ͠Γɺ΍Γ͍ͨ͜ͱɾ໨ࢦ͍ͯ͠Δ͜ͱΛݴޠԽग़དྷΔޮՌ͕͋Δ
 ˠ͜Εͷ܁Γฦ͠ͰεΩϧ͕ຏ͔Ε͍ͯ͘ʂ
  15. Networking • ϓϥΠϕʔτɾձࣾͱ͸ҧ͏஥͕ؒग़དྷΔ͜ͱʹΑΓɺՄೳੑ͕޿͕Δ • Մೳੑ͕޿͕Δʢྫʣ • ब৬ɾస৬΁ͷ࿏͕։͚Δ • ΠϕϯτొஃɾࣥචͳͲͷνϟϯε •

    ʮձ͍͍ͨʂʯͱࢥͬͨਓʹձ͑Δʢͭͳ͕Γͷͭͳ͕ΓͰʣ • ࠓ೔ɺࢲ͕͜͏ͯ͠࿩Λ͍ͯ͠Δͷ΋ʮNetworkingʯͷޮՌͷҰͭ
 ˠ͢΂ͯ͸PyCon JP/PyData Tokyo/PyLadies Tokyo͋ͨΓ͔Β࢝·ͬͨ
  16. ίϛϡχςΟͰͷա͝͠ํ • ηϧϑɾϚωδϝϯτΛ͔ͬ͠Γ΍Ζ͏ʢಛʹ࣌ؒʣ • ษڧձɾΠϕϯτʹࢀՃ͗ͯ͢͠࢓ࣄ͕ʢΞΧϯʣ • ٳΉ࣌ؒɾՈ଒ͱͷ͕࣌ؒͳ͍ʢΞΧϯʣ • ࢓ࣄ΍Ո଒ɺࣗ෼ͷ࣌ؒʢಠֶͷ࣌ؒʣ͸େ੾Ͱ͢Αʂ •

    ίϛϡχςΟͷ৔࡞Γʹڠྗ͢ΔʢˍෆշʹͳΔ͜ͱ͸͠ͳ͍ʣ • ओ࠵ɾࢀՃऀ͕ࠔͬͯΔ͜ͱ͕͋Ε͹ڠྗͯ͠ΈΔ • ҰਓʹͳͬͯΔਓ͕͍ͨΒ࿩Λॻ͚ͯΈΔ • ڧҾͳίϛϡχέʔγϣϯ͸NGʢ໊ࢗަ׵ͷڧཁɺϚ΢ϯςΟϯάetc…ʣ
  17. εΩϧɾબٿ؟Λటष͘ຏ͘ • ࢓ࣄɾݚڀɾݸਓϓϩδΣΫτͰͻͨ͢ΒܦݧΛੵ΋͏ʢઍຊϊοΫͷΑ͏ʹʣ • ͻͨ͢ΒΠϯϓοτ • ͻͨ͢ΒίʔσΟϯά • ͱʹ͔͘Ξ΢τϓοτˠϑΟʔυόοΫΛ΋Β͏ʢݴޠԽͷ܇࿅ʣ •

    ΧοίΑ͘Python࢖͍͍ͨɺػցֶश΍Γ͍ͨʂͱ͍͏ʢϞς͍ͨʣཉΛ
 ϓϥεͷΤωϧΪʔʹ׵͑ͯͻͨ͢Βग़དྷΔ͜ͱʹଧͪࠐΜͰΈΑ͏
 ˠલॲཧˍ؆୯ͳ෼ੳͱ͔ɺWebαΠτ࡞ΓͳΜ͔͕ྑ͍ʢ݁Ռग़΍͍͢ʣ • ͱ͸͍͑ఔΑ͘झຯ΍༡ͼ΋΍Ζ͏ʢ໺ٿΤϯδχΞ΋͔ͦ͜Βੜ·Εͨʣ
  18. We are Hiring! • ࢲͱҰॹʹεϙʔπքͷΤϯδχΞϦϯάΛόϨϧɾκʔϯ
 ·Ͱඈ͹ͤΔʮ໺ٿΤϯδχΞʯืूதʂʂʂ • ืूϙδγϣϯ • ϑϩϯτΤϯυɾαʔόʔαΠυ

    • σʔλαΠΤϯεʢಈըɾը૾ɾMLʣ • ڵຯ͋Δํ͸SNSͳͲͰ௚઀ࢲʹ࿈བྷ͍ͩ͘͞ʂ
 @shinyorke (Twitter/Facebook/Hatena/etc…)
  19. ʲAppendixʳࢀߟॻ੶ɾจݙ • ॻ੶ • Πγϡʔ͔Β͸͡ΊΑʕ஌తੜ࢈ͷʮγϯϓϧͳຊ࣭ʯ • ΞδϟΠϧαϜϥΠʕʕୡਓ։ൃऀ΁ͷಓ • ࢓ࣄͰ͸͡ΊΔػցֶश •

    PythonͰ͸͡ΊΔσʔλϥϯάϦϯά • PythonϢʔβͷͨΊͷJupyterʦ࣮ફʧೖ໳ • Analyzing Baseball Data with R • ϒϩάɾϝσΟΞଞ • Ϗʔϓϥ΢υࣾ௕ͷϒϩά http://shacho.beproud.jp/ • ٕज़બఆͷ৹ඒ؟(@t_wada) https://speakerdeck.com/twada/understanding-the-spiral-of-technologies?slide=1 • Baseball Geeks https://www.baseballgeeks.jp/