Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ϒϥβ্Ͱ ϙέϞϯͷը૾Λղੳ͍ͨ͠ʂ @potato4d / LINE GW ࣗ༝ݚڀൃද LT / 2020.05.11
Slide 2
Slide 2 text
ҙ ࣾ LT ༻ͳͷͰɺNuxt.js ͷͯ͠·ͤΜ ※ Universal Application ͷΞʔΩςΫνϟͷผ్ϒϩάॻ͖·͢
Slide 3
Slide 3 text
@potato4d
Slide 4
Slide 4 text
https://pokedri.com/pokemon63/
Slide 5
Slide 5 text
https://github.com/potato4d/pokemon63
Slide 6
Slide 6 text
ϙέϞϯͷϧʔϧ
Slide 7
Slide 7 text
ϙέϞϯͷϧʔϧ 1. 6ඖͷϙέϞϯΛ༻ҙ͢Δ
Slide 8
Slide 8 text
ϙέϞϯͷϧʔϧ 2. ͓ޓ͍ͷ6ඖΛݟ͍ͤ͋ɺ3ඖબͿ
Slide 9
Slide 9 text
ϙέϞϯͷϧʔϧ 3. 3ඖಉ࢜Ͱઓͬͯશһͨ͠Βউͪʂ
Slide 10
Slide 10 text
ϙέϞϯͷϧʔϧ 2. ͓ޓ͍ͷ6ඖΛݟ͍ͤ͋ɺ3ඖબͿ
Slide 11
Slide 11 text
ϙέϞϯͷϧʔϧ 2. ͓ޓ͍ͷ6ඖΛݟ͍ͤ͋ɺ3ඖબͿ ૬खͷબग़Λ༧͢Δྗ͕ॏཁ
Slide 12
Slide 12 text
1. ࣗͷબग़ϩάΛࡌͤΒΕͯ 2. ଞਓͷબग़͕ݟΒΕͯ 3. ਖ਼͍͠બग़ΛΩϟϦϒϨʔγϣϯͰ͖Δ
Slide 13
Slide 13 text
1. ࣗͷબग़ϩάΛࡌͤΒΕͯ 2. ଞਓͷબग़͕ݟΒΕͯ 3. ਖ਼͍͠બग़ΛΩϟϦϒϨʔγϣϯͰ͖Δ
Slide 14
Slide 14 text
1. ࣗͷબग़ϩάΛࡌͤΒΕͯ 2. ଞਓͷબग़͕ݟΒΕͯ 3. ਖ਼͍͠બग़ΛΩϟϦϒϨʔγϣϯͰ͖Δ
Slide 15
Slide 15 text
1. ࣗͷબग़ϩάΛࡌͤΒΕͯ 2. ଞਓͷબग़͕ݟΒΕͯ 3. ਖ਼͍͠બग़ΛΩϟϦϒϨʔγϣϯͰ͖Δ ԿΒ͔ͷπʔϧ͕΄͍͠ʂʂʂ
Slide 16
Slide 16 text
πʔϧͷ
Slide 17
Slide 17 text
……12 ඖσʔλೖΕΔͷͩΔ͘ͳ͍ʁ
Slide 18
Slide 18 text
→ εΫγϣ্͛ͨΒউखʹղੳͯ͠΄͍͠
Slide 19
Slide 19 text
࡞Δ
Slide 20
Slide 20 text
ͬͨ͜ͱ • ݕग़ͷݩσʔλιʔεΛ༻ҙ͢Δ • Node.js Ͱಈ͘ը૾ղੳػΛ࡞Δ • ݱ࣮తͳղੳΛٻΊͯ Web Worker ʹҠ২͢Δ • σβΠϯͱը૾Ξηοτ࡞Δ(Sketch) • ΞϓϦέʔγϣϯΛ࡞Δ
Slide 21
Slide 21 text
ͬͨ͜ͱ • ݕग़ͷݩσʔλιʔεΛ༻ҙ͢Δ • Node.js Ͱಈ͘ը૾ղੳػΛ࡞Δ • ݱ࣮తͳղੳΛٻΊͯ Web Worker ʹҠ২͢Δ • σβΠϯͱը૾Ξηοτ࡞Δ(Sketch) • ΞϓϦέʔγϣϯΛ࡞Δ
Slide 22
Slide 22 text
σʔλιʔεूΊ(σʔλՃ)
Slide 23
Slide 23 text
σʔλιʔεूΊ(σʔλՃ)
Slide 24
Slide 24 text
σʔλιʔεूΊ(σʔλՃ)
Slide 25
Slide 25 text
σʔλιʔεूΊ(Τοδέʔεऩू)
Slide 26
Slide 26 text
σʔλՃલ • ਫ਼͕ग़ͳ͍ • ಈ࡞Ұඖ10ඵ͔͔Δ
Slide 27
Slide 27 text
σʔλՃલ • ਫ਼͕ग़ͳ͍ • ಈ࡞Ұඖ10ඵ͔͔Δ • jpegϊΠζͷٵऩɾεΫγϣʹ͍ۙഎܠͷՃ • 9ׂܕͷϙέϞϯ͕ਖ਼͘͠ఆՄೳʹ ਫ਼͕ग़ͳ͍ͱ͖σʔλՃΛؤுΔͱྑ͍
Slide 28
Slide 28 text
ղੳػ • OpenCV ϒϥβͰಈ͔ͳ͍ • ීஈ͏ JS ϑϨʔϜϫʔΫ͕ Universal ͳͷͰɺݕग़ػͦ͏͍ͨ͠ • ML ͳͲͰͳ͘·۪ͣʹ CPU ͷྗͰ͍ͨ͠
Slide 29
Slide 29 text
ղੳػ • OpenCV ϒϥβͰಈ͔ͳ͍ • ීஈ͏ JS ϑϨʔϜϫʔΫ͕ Universal ͳͷͰɺݕग़ػͦ͏͍ͨ͠ • ML ͳͲͰͳ͘·۪ͣʹ CPU ͷྗͰ͍ͨ͠ https://www.npmjs.com/package/jimp
Slide 30
Slide 30 text
ϒϥβͰಈ͔͢ • ϑΝΠϧγεςϜ͕͑ͳ͍ • OpenCV ͱ͔ಈ͔ͳ͍ • ͳΜ͔৭ʑ੍͕͋Δ
Slide 31
Slide 31 text
ࣗଆͷϙέϞϯ: 6 ඖɹ ૬खଆͷϙέϞϯ: 6 ඖ ࠓ͑ΔϙέϞϯ: 528 ඖ
Slide 32
Slide 32 text
ࣗଆͷϙέϞϯ: 6 ඖɹ ૬खଆͷϙέϞϯ: 6 ඖ ࠓ͑ΔϙέϞϯ: 528 ඖ × 12 = 6336
Slide 33
Slide 33 text
ϒϥβͰಈ͔͢ • ϑΝΠϧγεςϜ͕͑ͳ͍ • OpenCV ͱ͔ಈ͔ͳ͍ • ͳΜ͔৭ʑ੍͕͋Δ • ͱʹ͔͘ൺֱ͢Δॲཧ͕ॏ͍ʂʂʂ
Slide 34
Slide 34 text
ϒϥβͰಈ͔͢ • ϑΝΠϧγεςϜ͕͑ͳ͍ • OpenCV ͱ͔ಈ͔ͳ͍ • ͳΜ͔৭ʑ੍͕͋Δ • ͱʹ͔͘ൺֱ͢Δॲཧ͕ॏ͍ʂʂʂ • Web Worker ͰͿΜճ͢ํ
Slide 35
Slide 35 text
ՃσʔλͷϋογϡΛར༻͢Δ͜ͱʹ
Slide 36
Slide 36 text
ՃσʔλͷϋογϡΛར༻͢Δ͜ͱʹ FSඇґଘɾߴԽ Ұ௨Γ Jimp ͷίʔυಡΜͩΒܕఆٛʹͳ͍͚ͲͰ͖ͦ͏ͳͷͰͬͨ
Slide 37
Slide 37 text
Ξοϓϩʔυը૾ͷ Uint8Array ԽˠWorkerసૹ
Slide 38
Slide 38 text
෮ݩ࣮ͯ͠ߦ (8 workers / 66 pokemon per worker)
Slide 39
Slide 39 text
෮ݩ࣮ͯ͠ߦ (8 workers / 66 pokemon per worker) worker + fs ඇґଘ + Jimp Ͱ΄΅ Universal ʹ ※ ͜ͷॲཧࣗମ Node.js ͰΔඞཁ͕ͳ͔ͬͨͷͰɺ࠷ऴతʹ worker_thread ͱͷޓੑΛͬͨ
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
ղੳ : 350ms/pokemon ݕग़ਫ਼(jpeg:orig) : ΄΅100% (σʔλͷϛεҎ֎ޡݕͳͦ͞͏) ݕग़ਫ਼(jpeg:normal) : 85~%
Slide 42
Slide 42 text
ϦϦʔεޙ΄΅ຖσϓϩΠத
Slide 43
Slide 43 text
ѹॖʹউͭʹΓಛྔʁ
Slide 44
Slide 44 text
࠷ޙʹ • ࠓճݴٴ͠ͳ͔ͬͨ SSR/SPA ෦ผ్ϒϩάʹ·ͱΊ·͢ • Nuxt.js + Inject + Firebase + Tailwind Έ͍ͨͳߏ͕Կނڧ͍͔ • Store શඇґଘ͔ͭ֎෦ґଘΛҰ import ͠ͳ͍ϝϦοτ • ऴΘΓΏ͘ v2 ʹ͓͚Δ Vue.js ΞϓϦέʔγϣϯͷճͳͷͰͥͻ • Ұఔ΄΅͜ͷελΠϧͰ͔͠ίʔυॻ͍ͯͳ͍͚Ͳྑ͍ײ͡
Slide 45
Slide 45 text
ԿʹͤΑ
Slide 46
Slide 46 text
ϙέϞϯରઓΛΖ͏ʂ