育児休業のご報告と、育児グッズとしてのスマートスピーカー / Parental Leave and SmartSpeaker

育児休業のご報告と、育児グッズとしてのスマートスピーカー / Parental Leave and SmartSpeaker

レトリバセミナー 2018/05/16
Movie: https://www.youtube.com/watch?v=sC9Svn8Yc7c

Bf7ce9b68bbb0058721906b4db15b9b5?s=128

Kei Shiratsuchi

May 16, 2018
Tweet

Transcript

  1. ҭࣇٳۀͷ͝ใࠂͱɺ
 ҭࣇάοζͱͯ͠ͷεϚʔτεϐʔΧʔ ന౔ܛ, Kei Shiratsuchi, @kei_s ϨτϦόηϛφʔ, 2018.05.16(Wed)

  2. ࣗݾ঺հ • ന౔ɹܛʢγϥπνɹέΠʣ • גࣜձࣾϨτϦό • 2016೥4݄ೖࣾ • Ruby on

    Rails / JavaScript / Python / Elixir (new!) • ϑϩϯτΤϯυଆͷ։ൃ • େֶ࣌୅͸ෳࡶωοτϫʔΫՊֶͷݚڀ
  3. ҭࣇٳۀͷ͝ใࠂ

  4. ࢠͷ஀ੜ • 2018/01/25 • ୈҰࢠ(່)͕஀ੜ • 2018/03/05 • ҭࣇٳۀऔಘ •

    2018/05/07 • ҭࣇٳۀ͔Β෮ؼ • ·Δ·Δ2ϲ݄ͷҭࣇٳۀΛऔಘ
  5. ҭࣇٳۀͱ͸ • ҭࣇٳۀ - Wikipedia ‣ ҭࣇٳۀʢ͍͖͘͡Ύ͏͗ΐ͏ʣͱ͸ɺࢠΛཆҭ͢Δ ࿑ಇऀ͕๏཯ʹج͍ͮͯऔಘͰ͖Δٳۀͷ͜ͱͰ͋Δ ‣ औಘ͢Δऀͷஉঁ͸໰Θͳ͍ɻ·ͨɺࢠ͕࣮ࢠͰ͋Δ

    ͔ཆࢠͰ͋Δ͔΋໰Θͳ͍ɻ ‣ Ո଒ͳͲͰࣄ্࣮ɺࢠͷੈ࿩͕Մೳͳऀ͕͍ͯ΋ɺͦ Εʹؔ܎ͳ͘औಘ͸ՄೳͰ͋Δɻ
  6. ҭࣇٳۀͷ๏཯ • ʮҭࣇٳۀɺհޢٳۀ౳ҭࣇຢ͸Ո଒հޢΛߦ͏࿑ಇ ऀͷ෱ࢱʹؔ͢Δ๏཯ʯ ‣ ࣄۀओ͸ɺ࿑ಇऀ͔Βͷҭࣇٳۀਃग़͕͋ͬͨͱ͖͸ɺ ౰֘ҭࣇٳۀਃग़ΛڋΉ͜ͱ͕Ͱ͖ͳ͍ʢୈ6৚ʣ ‣ ࣄۀओ͸ɺ࿑ಇऀ͕ҭࣇٳۀͷਃग़Λ͠ɺຢ͸ҭࣇٳ ۀΛͨ͜͠ͱΛཧ༝ͱͯ͠ɺ౰֘࿑ಇऀʹରͯ͠ղޏ

    ͦͷଞෆརӹͳऔѻ͍Λͯ͠͸ͳΒͳ͍ʢୈ10৚ʣ
  7. ҭࣇٳۀͷظؒ • ҭࣇٳۀ͸ɺࢠ͕1ࡀʹୡ͢Δ·Ͱͷؒʹऔಘ͢Δ͜ͱ ͕Ͱ͖ΔʢݪଇɻԆ௕نఆ΋͋Δʣ • ҭࣇٳۀ͸ݪଇͱͯ͠ಉҰͷࢠʹ͍ͭͯ࿑ಇऀҰਓʹ ͖ͭ1ճݶΓߦ͏͜ͱ͕Ͱ͖Δ

  8. ҭࣇٳۀͱ͓ۚ • ҭࣇٳۀڅ෇੍౓ • ޏ༻อݥͷ࿮૊ΈͷதͷҰͭ • ݪଇͱͯ͠ٳۀ։࢝࣌௞ۚ೔ֹ×ࢧڅ೔਺ͷ67% • ҭࣇٳۀͷ։͔࢝Β180೔ܦաޙ͸50% •

    (ৄ͍͜͠ͱ͸όοΫΦϑΟεͷํʹ…)
  9. ͳͥҭࣇٳۀͨ͠ͷʁ • Ͱ͖ΔͷͰ… • ༗څٳՋʹཧ༝Λॻ͔ͳ͍ͷͱಉ͡Ͱ͸… • ͱ͸͍͑ɺஉੑͰҭٳΛऔΔਓ͸·ͩগͳ͍ • உੑ΋ҭٳͱΔ(ͱΕΔ)ࣾձͷํ͕શମతʹੜ͖΍ͦ͢ ͏ͳͷͰɺͦ͏ͳͬͯ΄͍͠

  10. ϨτϦόͰͷҭࣇٳۀ • ʮҭࣇٳۀͱΖ͏ͱࢥͬͯΔΜͰ͕͢ʯ
 ʮ͓ͬɺྃղͰ͢ʂʯ • ΊͬͪΌ͋Γ͕͍ͨ • 1ྫ໨ͩͬͨͷͰɺ੍౓Λ੔උͯ͠΋Βͬͨ • ҭٳऔಘલ͔Βɺక੾͕͖ͭ͘ͳ͍λεΫΛ࣋ͬͨΓɺ

    ࣗ୐࡞ۀΛڐՄͯ͠΋ΒͬͨΓɺௐ੔ͯ͠΋Βͬͨ
  11. զ͕Ոͷ৔߹ͷҭࣇٳۀͷ༷ࢠ

  12. લఏ • ҭٳ։࢝࣌఺Ͱɺ່͸ੜޙ1ϲ݄ • ࠷ॳͷҰϲ݄͸ɺ࠺ͷ࣮ՈͰ͓ੈ࿩ʹͳ͍ͬͯͨ • ࠺΋ҭٳऔಘத

  13. ಥવٽ͘ • ͕ɺཧ༝͸ෆ໌ • ͩΜͩΜύλʔϯԽ͞Εͯ͘Δ • ͓ෲ͕ۭ͍ͨɺΦϜπΛସ͑ͯ΄͍͠ɺ຾͍ • ͲΕ΋μϝͳ࣌͸ɺແݶ๊ͬ͜

  14. ৸ΒΕͳ͍ • ੺ͪΌΜ͸ң͕খ͍͞ͷͰɺ͙͢ʹ͓ෲ͕ۭ͘ • ໷ɺ2~3͓͖࣌ؒʹतೕ͢Δඞཁ͕͋Δ • ى͖ͯٽ͘ˠϛϧΫ४උˠҿ·ͤΔˠ͛ͬ΀ˠ৸͔ͭ͠ ͚ʢˠᄡೕළચড়ɾফಟʣ • 3͓͖࣌ؒͱݴ͍ͭͭɺ࣮࣭৸ΒΕΔͷ͸2࣌ؒͪΐͬͱ

    • Ֆค঱ͷقઅͰɺҰ౓ى͖Δͱ৸෇͚ͳ͍…
  15. ࠺ͷμϝʔδ • ग़࢈ͷμϝʔδ͸͔ͳΓਂࠁ • ී௨ʹಈ͚Δ͜ͱΛલఏʹͯ͠͸͍͚ͳ͍ • ཱͯͳ͍ɺา͚ͳ͍ɺ಄௧ɺශ݂ɺ… • པΕΔ΋ͷ͸པΔ •

    ෉ɺδδόόɺපӃɺ๚໰ॿ࢈ࢣɺγολʔ • ࣏ࣗମͷࢠҭͯࢧԉͰඅ༻ॿ੒͕͋ͬͨΓ
  16. ਓ͕૿͑Δʹ෺͕૿͑Δ • ࣮ՈʹཬؼΓग़࢈͕ͩͬͨɺ໭ͬͯ͘Δͱ͖
 ՙ෺͕ഒ૿ͨ͠ • ϕουɺΦϜπɺணସ͑ɺͳͲͳͲ… • ݄ྸʹΑͬͯඞཁͳ΋ͷ͕มΘ͍ͬͯ͘ • ΦϜπͷαΠζɺقઅʹ߹Θͤͨ෰…

    • ՈͷϦϑΝΫλϦϯά • ཁΒͳ͍΋ͷΛࣺͯΔɺ֦ு͠΍͍͢ऩೲάοζΛἧ͑Δ
  17. ಺ॕ͍ɺΠϕϯτ • ͍͍͓ͨͩͨॕ͍ͷֹۚʹ߹Θͤͯɺ಺ॕ͍Λ
 ݕ౼ͯ͠ൃ஫͢Δ • δδόόɺ਌଒ɺ༑ਓͷདྷ๚ͷ೔ఔΛௐ੔ͯ͠ɺ͓΋ ͯͳ͢͠Δ • ͱͯ΋͋Γ͕͍ͨʢ͕ɺҙ֎ͱ๩͍͠…!ʣ

  18. ҭࣇٳۀͷ͍͋ͩͷ·ͱΊ • ʮٳۀʯ͚ͩͲʮٳΈʯ͸ͳ͍…! • ҭٳऔಘͯ͠Α͔ͬͨ…! • ओʹਭ຾ෆ଍Λղফ͠ͳ͍ͱ࢓ࣄʹͳΒͳ͍ • ੺ͪΌΜΛҭͯΔͷ͸ɺ1ਓ݄Ͱ͸ෆՄೳ •

    ෉ɺ਌଒ɺ࣏ࣗମʹཔΔ
  19. ײँ • ҭٳΛͱΕͯɺͱͯ΋ॿ͔Γ·ͨ͠ʂ • ձࣾͷօ༷ɺຊ౰ʹ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

  20. ҭࣇάοζͱͯ͠ͷεϚʔτεϐʔΧʔ

  21. ঢ়گ • ੜޙ2ϲ݄Λ௒͑ͯɺগͣͭ͠༨༟͕Ͱ͖͖ͯͨ • िʹ߹ܭ3࣌ؒ͘Β͍ࡉ੾Εʹ࣌ؒΛׂ͚ΔΑ͏ʹ • ࣗ୐Λ΋ͬͱศརʹ͍ͨ͠ • εϚʔτεϐʔΧʔ͕ؾʹͳΔ

  22. Google Home • Google Home Λߪೖ • ϤυόγͰ൒ֹΩϟϯϖʔϯதͩͬͨʂ

  23. εϚʔτεϐʔΧʔΛͲ͏࢖͏ʁ • ʮԻ੠ʯ͸ͱͯ΋༗༻ • Ի੠Ͱૢ࡞͢Δ • ՈిΛίϯτϩʔϧ͢Δ • Ի੠Ͱه࿥͢Δ •

    ͓Ήͭସ͑Λه࿥͢Δ • Ի੠Ͱ௨஌͢Δ • σδΧϝͷࣗಈΞοϓϩʔυΛ஌ΒͤΔ
  24. Ի੠ͰՈిΛૢ࡞͢Δ

  25. ՈిΛૢ࡞(1) • εϚʔτ੺֎ઢϦϞίϯ Nature Remo • Google Home ࿈ܞͯ͠ɺςϨϏɺΤΞίϯΛૢ࡞

  26. ศརͳγνϡΤʔγϣϯ • ʮগ͠৸ͨͬΆ͍͔ΒɺςϨϏ͚ͭͯΈΑʯ
 ʢ͠͹ͯ͠͠ʣ
 ʮ͋Βɺٽ͖͸͡Ίͨ…!ʯ
 ʢ๊ͬ͜ʣ
 ʢςϨϏফ͍ͨ͠…͕ɺख͕;͕͍ͬͯ͞Δ…!ʣ
 ʮΦοέʔάʔάϧɺςϨϏফͯ͠ʂʯ

  27. ՈిΛૢ࡞(2) • ੠Ͱૢ࡞Ͱ͖Δͷ͸ΊͬͪΌศར • ੺֎ઢϦϞίϯ͕ͳ͍Ոి΋ૢ࡞͍ͨ͠ͷͰɺ
 Switch Bot ΋ಋೖͨ͠ • ෺ཧϘλϯΛԡͤΔ

    • Google Home ࿈ܞػೳ͋Γ • ʮΦοέʔάʔάϧɺচஆ๪ফͯ͠ʂʯ
  28. ΋ͬͱศརʹ࢖͑ͦ͏ • ͔ͤͬ͘ͳͷͰϦϋϏϦతʹίʔυॻ͖͍ͨ • ॻ͍ͨ • https://github.com/shiratsuchi/home-hack • ໔੹ࣄ߲ɿREADME.md ͕ͳ͍ɺҰఆঢ়گͰಈ࡞͠ͳ͍ɺ

    ΢νҎ֎ͷ؀ڥͰࢼͯ͠ͳ͍
  29. Ի੠Ͱ͓Ήͭସ͑Λه࿥͢Δ

  30. ͓Ήͭସ͑Λه࿥͢Δ • तೕɺ͓ͬ͜͠ɺ͏Μͪͷه࿥ Λ͢Δඞཁ͕͋Δ • ࢠͷ݈߁ঢ়ଶͷ೺Ѳ • ʮϐϤΖ͙ʯͱ͍͏ΞϓϦ • ෳ਺ਓͰొ࿥ɺڞ༗Ͱ͖Δ

  31. ͓Ήͭସ͑Λه࿥͢Δ • ه࿥͠๨ΕΔʂ • ͓Ήͭସ͑ͨ͠Βେମ๊ͬ͜ʹҠߦ • εϚϗ࣋ͯͳ͍ • ๊ͬ͜ऴΘͬͨΒه࿥͠๨ΕͯΔ •

    ʮΦοέʔάʔάϧɺ͓ͬ͜͠ه࿥ͯ͠ʂʯ
  32. ͓Ήͭସ͑Λه࿥͢Δ • ϐϤΖ͙ʹެ։ API ͸ͳ͍ • ΞϓϦͷ௨৴Λ೷͍ͯɺඇެ։ API Λղੳ •

    ͱΓ͋͑ͣ Wireshark • SSL (https) ͳͷͰ
 ݟΕͳ͍…!
  33. ͓Ήͭସ͑Λه࿥͢Δ • BurpSuite • SSL ௨৴ؒʹϓϩΩγͯ͠ɺ҉߸ԽΛղআɺ࠶҉߸Խ ͢Δ͜ͱͰ௨৴ΛΈΔ • ͍ΘΏΔதؒऀ(Man-in-the-middle)߈ܸ •

    WEB+DB PRESS Vol.103 Ͱղઆ͞Ε͍ͯΔ
  34. ͓Ήͭସ͑Λه࿥͢Δ • PC Ͱ Burp Suite ىಈɺϓϩΩγϙʔτ൪߸ઃఆ • iPhone Ͱ

    PC ͷ IP, Port ʹϒϥ΢βΞΫηεɺূ໌ॻΠϯε τʔϧ • iPhone ͷ Wi-fi ઃఆͰɺ PC ͷ IP, Port ΛϓϩΩγઃఆ • ʮઃఆ>Ұൠ>৘ใ>ূ໌ॻ৴པઃఆʯͰɺΠϯετʔϧ ͨ͠ূ໌ॻΛʮશ໘తʹ৴པ͢ΔʯʹνΣοΫ
  35. ͓Ήͭସ͑Λه࿥͢Δ

  36. ͓Ήͭସ͑Λه࿥͢Δ • ৭ʑࢼͯ͠ڍಈΛ֬ೝ • PC ͔Β JSON ϦΫΤετΛ͍ͬͯ͡ૹ৴ɺਖ਼ৗʹडཧ͞ ΕΔ·Ͱࢼߦࡨޡ •

    (ར༻ن໿ΛಡΜͰࣗ෼ͷσʔλͳΒ໰୊ͳ͠ͱ֬ೝ) • Node.js ͰεΫϦϓτ࡞੒
  37. ͓Ήͭସ͑Λه࿥͢Δ • IFTTT ͱ Google Home Λ࿈ܞ • ಛఆͷϑϨʔζΛ࿩ͨ࣌͠ʹΞΫγϣϯ͢Δ •

    ऴྃ࣌ʹൃ࿩͢ΔϝοηʔδΛొ࿥͢Δ • Google Cloud Functions ͰɺεΫϦϓτ࣮ߦͰ͖ΔΑ͏ʹ͢Δ • Node.js ͷεΫϦϓτΛ࣮ߦͰ͖Δ • IFTTT ͷ Webhook ΞΫγϣϯͰɺCloud Functions ͷΤϯυϙΠϯτΛ ୟ͘Α͏ʹ͢Δ
  38. ͓Ήͭସ͑Λه࿥͢Δ • ʮΦοέʔάʔάϧɺ͓ͬ͜͠ه࿥ͯ͠ʂʯ
 ˣ
 IFTTT ͕ىಈɺCloud Functions ͷΤϯυϙΠϯτΛୟ͘
 ˣ
 Cloud

    Functions ͰϐϤΖ͙ API Λୟ͍ͯه࿥
 ˣ
 ʮ͓ͬ͜͠Λه࿥͠·ͨ͠ʯ
  39. ͓Ήͭସ͑Λه࿥͢Δ • ΊͬͪΌศར • ͓Ήͭସ͑͠ͳ͕Β஻Ε͹͍͍ͷͰϥΫ • ग़ઌͰ΋Φοέʔάʔάϧͬͯݴ͍ͦ͏ʹͳΔ • ׳Ε͖ͯͯɺݴ͍๨Ε͕ൃੜ͍ͯ͠Δ͕…

  40. σδΧϝͷࣗಈΞοϓϩʔυΛ
 Ի੠Ͱ௨஌

  41. σδΧϝͷࣗಈΞοϓϩʔυ • ࢠͷࣸਅΛΊͬͪΌࡱΔ • δδόό΁ͷใࠂ΋݉ͶͯࡱΔ • εϚϗͷΧϝϥ΋͍͍͚ͲɺσδΧϝ͸΍͸Γ៉ྷ • σδΧϝ͔ΒͷऔΓࠐΈ͕໘౗ •

    Χϝϥপʹ௜ΜͰ͸ͳ͍ͷͰɺखؒΛ͔͚ͨ͘ͳ͍
  42. σδΧϝͷࣗಈΞοϓϩʔυ • औΓࠐΈΛۃྗϥΫʹ͍ͨ͠ • ͦͷੲ Eye-fi ͱ͍͏੡඼͕͕͋ͬͨɺEOL… • FlashAir -

    ແઢLANػೳ͖ͭSDΧʔυ • ىಈ or ϑΝΠϧॻ͖ࠐΈͨ͠ࡍʹɺઃఆͨ͠ Wi-fi ʹ઀ ଓͯ͠ HTTP ϦΫΤετΛ౤͛Δ͜ͱ͕Ͱ͖Δ • Lua εΫϦϓτΛอଘͯ͠ɺ࣮ߦͰ͖Δ
  43. σδΧϝͷࣗಈΞοϓϩʔυ • FlashAir ͷઃఆ֓ཁ • ӈͷΑ͏ͳϑΝΠϧΛ
 /SD_WLAN/CONFIG ʹஔ͘ • ىಈ࣌ʹ

    /bootstrap.lua ͕
 ࣮ߦ͞ΕΔ [Vendor] CIPATH=/DCIM/100__TSB/FA000001.JPG APPMODE=5 APPNAME=myflashair APPSSID=FOOSSID APPNETWORKKEY=password0123 VERSION=FA9CAW3AW3.00.00 CID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX PRODUCT=FlashAir VENDOR=TOSHIBA LUA_RUN_SCRIPT=/bootstrap.lua
  44. σδΧϝͷࣗಈΞοϓϩʔυ • FlashAir Λ࢖ͬͯɺσδΧϝ͔Β Google Photos ΁ࣗಈͰΞο ϓϩʔυ͢Δ • Lua

    εΫϦϓτͰඞཁͳࣸਅϑΝΠϧΛ૸ࠪɺ
 ͦΕͧΕҰ౓αʔόʹΞοϓϩʔυɺ
 αʔό͔Β Google Photos ͷ API ͰࣸਅΛ௥Ճ͢Δ • αʔό͸ Sinatra Ͱॻ͍ͨ
  45. σδΧϝͷࣗಈΞοϓϩʔυ • FlashAir ͷ᠘ • Lua εΫϦϓτͰϑΝΠϧΛॻ͖ࠐΈ͢ΔͱɺϗετଆʢσδΧϝʣ͔Β ͷॻ͖ࠐΈͱিಥͯ͠ FAT ෆ੔߹ͰϘϦϡʔϜ͕յΕΔ

    • Ξοϓϩʔυཤྺ͸αʔόαΠυͰ࣋ͭ • ىಈ͙࣌͢ʹ͸ Wi-fi ઀ଓཱ͕֬͞Ε͍ͯͳ͍ • Lua εΫϦϓτͰɺWi-fi ઀ଓཱ͕֬͢Δ·Ͱ sleep ͢Δ • Google Photos ͷ᠘ • Google Photo API ͸ଘࡏͤͣɺʢջ͔͠ͷʣPicasa API ͕·ͩಈ͍͍ͯΔ
  46. σδΧϝͷࣗಈΞοϓϩʔυ • ىಈ࣌ʹɺະΞοϓϩʔυͷࣸਅΛΞοϓϩʔυ͢Δ͜ͱ ͕Ͱ͖ΔΑ͏ʹͳͬͨ • ศར • Ξοϓϩʔυͷਐḿ͕Θ͔Βͳ͍… • ͍ͭిݯΛམͱ͍͍ͯ͠ͷ͔Θ͔Βͳ͍

    • Τϥʔ͕ൃੜ͍ͯ͠Δͷ͔΋Θ͔Βͳ͍
  47. Ի੠Ͱ௨஌ • Google Home ʹ஻ΒͤΔ • https://github.com/noelportugal/google-home-notifier • Node.js ͷϓϩάϥϜ

    • LAN ಺ͷ Google Home Λࢦఆͯ͠ɺ೚ҙͷจࣈྻΛ஻ΒͤΔ • Google Text-to-speech API Λ࢖ͬͯԻ੠ͷ URL ΛऔಘɺChrome Cast ϓϩτίϧͰσόΠεʹ URL Λ࠶ੜ͍ͤͯ͞Δ
  48. Ի੠Ͱ௨஌ • google-home-notifier Λ࢖ͬͨ௨஌αʔόΛ४උ • FlashAir ͷ Lua εΫϦϓτͰɺΞοϓϩʔυ։࢝࣌ɺऴྃ ࣌ʹ௨஌αʔόʹϦΫΤετΛ౤͛Δ

    • ։࢝࣌ʹʮΧϝϥ͔ΒͷΞοϓϩʔυΛ։࢝͠·͢ʯ • ऴྃ࣌ʹʮΧϝϥ͔ΒͷΞοϓϩʔυ͕ऴྃ͠·͠ ͨʯ
  49. Ի੠Ͱ௨஌ • ΊͬͪΌศར • σδΧϝͰࣸਅΛࡱΔͷ͕ۤ͡Όͳ͘ͳͬͨ • Google Photo ͱΧϝϥΛݟൺ΂ͯɺશ্͕͔ͯͬͨ֬ೝ͠ͳ͘ ͍͍ͯ

    • FlashAir ͱࣗ୐ϧʔλͷ૬ੑ͕ѱ͍ͬΆͯ࣌͘ʑಈ࡞͠ͳ͍… • σόοά࣌ؒऔΕͯͳ͍…
  50. ·ͱΊ

  51. ·ͱΊ • ҭࣇٳۀ͕औΕͯɺͱͯ΋ॿ͔Γ·ͨ͠ʂ • ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ • εϚʔτεϐʔΧʔ͸ɺҭࣇάοζͰ͢ʂ • ΍ͬͯΈ͍ͨํ͸͓੠͕͚͍ͩ͘͞