Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
怠惰・短気・傲慢な家庭を築く / How to Build a Peaceful Family
Search
Kentaro Kuribayashi
June 12, 2019
Technology
0
560
怠惰・短気・傲慢な家庭を築く / How to Build a Peaceful Family
K-Ruby #23
Kentaro Kuribayashi
June 12, 2019
Tweet
Share
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
69
「始め方」の始め方 / How to Start Starting Things
kentaro
5
720
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
950
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
380
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
7
4.6k
組織の生産性を高める意思決定の構造と方法 / How to do make decision rapidly and effectively
kentaro
36
21k
キャリアを時間・空間軸で考える / Thinking about your career from both time and space viewpoints
kentaro
15
15k
WEB+DB PRESSで特集記事を書く方法 / How to Become an Author of WEB+DB PRESS
kentaro
6
1.4k
GMOペパボが考えるこれからのサービス開発 / Toward The Next Service Development Era
kentaro
1
1.7k
Other Decks in Technology
See All in Technology
エンジニアの生存戦略 〜クラウド潮流の経験から紐解く技術トレンドのメカニズムと乗りこなし方〜
shimy
9
1.9k
コンテナ・K8s研修 - 後半 Kubernetes 基礎&ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
1
120
dxd2024-生成AIに振り回された3か月間の成功と失敗/dxd2024-link-and-motivation
lmi
2
260
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
エンジニア向け会社紹介資料
caddi_eng
14
230k
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
AWSで”最小権限の原則”を実現するための考え方 /20240722-ssmjp-aws-least-privilege
opelab
10
4.4k
Classmethod Odyssey 登壇資料
yamahiro
0
390
テスト・設計研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
楽しくGoを学び合う、LayerXの勉強会文化 / LayerX's study culture of having fun and learning Go together
ar_tama
2
350
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
ACRiルーム最新情報とAMD GPUサーバーのご紹介
anjn
0
160
Featured
See All Featured
Producing Creativity
orderedlist
PRO
340
39k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
The Pragmatic Product Professional
lauravandoore
29
6.1k
Writing Fast Ruby
sferik
623
60k
The Cost Of JavaScript in 2023
addyosmani
31
4.7k
4 Signs Your Business is Dying
shpigford
178
21k
Music & Morning Musume
bryan
43
5.9k
Become a Pro
speakerdeck
PRO
15
4.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
18
1.2k
Building Your Own Lightsaber
phodgson
101
5.9k
What's new in Ruby 2.0
geeforr
338
31k
Transcript
ʙϓϩάϥϚͷࡾେඒಙͷԠ༻ྫͱͯ͠ʙ ܀ྛ݈ଠ(.0ϖύϘגࣜձࣾ ,3VCZ ଵଦɾؾɾၗຫͳՈఉΛங͘
(.0ϖύϘגࣜձࣾ ܀ྛ݈ଠ!LFOUBSP औక$50 IUUQTLFOUBSPLPSH
͍·ࣛࣇౡʢݝग़ʣͰ ͬͱ͍ͷ͋ΔΤϯδχΞ
՝ͱղܾํͷఏࣔ
Α͋͘Γ͕ͪͳՈఉͷ͢Εҧ͍ ‣ ʮ͋ͷɺͨ͠ΑͶɻ͖͍ͯͳ͔ͬͨͷʁʯ ‣ ʮ͘ͳΔͳΒɺ༦৯ͷྔΛௐ͢Δ͔Βલ͍ͬͯͬͯΑʂʯ ‣ ʮ·ͨిؾ͚ͭͬͺͳ͠ʂʯ ‣ ʮ͝൧Ͱ͖Δ͔Βɺ෦͔Βग़͖ͯͯ४උͯ͠΄͍͠ʂʯ
͢Εҧ͍ΛݮΒ͢ʹʁʢϚΠϯυฤʣ ‣ ͓ޓ͍ɺ૬खʹظ͠ա͗Δͷ͕ʮ͢Εҧ͍ʯͷͦͦͷݪҼ ‣ ૬ख͕Ͳ͏ೝࣝ͠;Δ·͏͔ɺ͕ࣗίϯτϩʔϧͰ͖Δ͜ͱͰͳ͍ ‣ Ξυϥʔ৺ཧֶ෩ʹ͍͏ͱɺʮ૬खͷ՝Λࣗͷ՝ͱࠞಉ͍ͯ͠Δʯͱ͍ ͏͜ͱ ‣ ʮ૬खʹظ͠ͳ͍͚ͲɺࣗՄೳͳݶΓ࣮ߦ͢ΔʯʢNBTVJESJWFʣ
‣ ʮʮ૬खͷ՝ʯͷղܾڠྗ͢ΔࣄେࣄʯʢNBTVJESJWFʣ ग़ॴ: ʮଞਓʹظ͠ͳ͍ʯʮ՝ͷʯ
͢Εҧ͍ΛݮΒ͢ʹʁʢΤϯδχΞϦϯάฤʣ ᶃ ฉ͍ͯΕͯ͠·͏ɻͦͦฉ͍ͯͳ͍ ˠใڞ༗Λ؆୯ʹͰ͖ΔΑ͏ʹ͠Α͏ ˠڞ༗͍ͯ͠ΔใΛఆظతʹϓογϡ͠Α͏ ᶄ Δ͖ϧʔςΟϯΛΕͯ͠·͏ ˠͦͦΕͯͳ͘͠Α͏ ᶅ ख͕ͤͳ͍࣌ʹखͬͯ΄͍͚͠Ͳۙ͘ʹ͍ͳ͍
ˠ؆୯ʹݺΔΑ͏ʹ͠Α͏
ϓϩάϥϚΒ͍͠ղܾΛਤΔ ग़ॴ: Wikipedia: ϓϩάϥϚ#ϓϩάϥϚͷࡾେඒಙ ࡾେඒಙΛ͓͓͍ʹൃشͯ͠ϓϩάϥϚΒ͘͠՝Λղܾ͠Α͏
ᶃ ฉ͍ͯΕͯ͠·͏͠ɺ ͦͦฉ͍ͯͳ͍
ڞ༗ΧϨϯμʔͷ༧ఆՃ ڞ༗ΧϨϯμʔ ύλʔϯᶃ (PPHMFΧϨϯμʔΞϓϦͰ ڞ༗͍ͨ͠༧ఆΛొ Ͷ͑ɺ(PPHMF ࠓͷ༧ఆʹ˓˓ΛՃͯ͠ ύλʔϯᶄ (PPHMF)PNFܦ༝Ͱ ڞ༗͍ͨ͠༧ఆΛొ
ڞ༗ΧϨϯμʔͷ༧ఆࢀর ڞ༗ΧϨϯμʔ ύλʔϯᶃ ("4Λͬͨ-*/&ϘοτͰ ༧ఆΛఆظతʹ௨ Ͷ͑ɺ(PPHMF ࠓͷ༧ఆΛڭ͑ͯ ύλʔϯᶄ (PPHMF)PNFܦ༝Ͱࢀর ʢڞ༗ΧϨϯμʔઃఆʣ
ᶄ Δ͖ϧʔςΟϯΛ Εͯ͠·͏
͓ۚΛͬͯղܾ͍ͯ͘͠ ‣ ఱؾ༧ใΛฉ͖ΕͯɺӍʹ߱ΒΕΔ ˠ(PPHMF)PNFͷʮ͍͖ͬͯ·͢ʯͷϧʔςΟϯʹΈࠐΉ ‣ ΤΞίϯΛফ͠ΕΔ ˠ/BUVSF3FNPΛಋೖ͠ɺ(PPHMF)PNFͷʢུʣ ‣ র໌Λফ͠ΕΔ ˠ࿓ԼτΠϨͳͲҰ࣌తʹ౮͢Ε͍͍͚ͩͷॴͷর໌ɺਓײηϯ
αʔ͖-&%ిٿʹೖΕସ͑Δɻͦͷଞͷॴ)VFΛಋೖͯ͠ɺ(PPʢུʣ
ᶅ ख͕ͤͳ͍࣌ʹखͬͯ΄͍͠ ͚Ͳۙ͘ʹ͍ͳ͍
લఏզ͕ՈͷؒऔΓ ͜͜ͰྉཧΛ͍ͯ͠Δɻ Ωονϯ͔ΒɺେΛͩ ͢͜ͱͳ͘ݺͼ͍ͨ
.4UBDLܦ༝Ͱ(PPHMF)PNFʹΒͤΔσϞಈը ग़ॴ: ίʔυ: kentaro/m5stack-daily-call,σϞಈը: https://twitter.com/kentaro/status/1138126301552754688
͍͍ͷ͕Ͱ͖ͨͱࢥ͍͖ʜʜ
(PPHMF)PNFͰී௨ʹͰ͖Μ͡ΌΜʜʢ݄ʙʣ ग़ॴ: Google Home σόΠεʹԻϝοηʔδΛϒϩʔυΩϟετ͢Δ - Google Home ϔϧϓ ͜ͷൃදʹ͓͚Δख๏
ʮϘλϯΛϙνοͱʯͰ ϝοηʔδͰ͖Δར͋ Δɺͱࢥ͏ʜʜ
ར༻͍ͯ͠Δٕज़ཁૉͷհ
.4UBDLܦ༝Ͱ(PPHMF)PNFͰԻΛྲྀ͢·Ͱ ᶃ .4UBDL্Ͱԡ͞ΕͨϘλϯʹͻͮ͘ςΩετΛɺ(PPHMFͷ$MPVE5FYU UP4QFFDI"1*Λ༻͍ͯɺಡΈ্͛Իͷ.1ʹม ᶄ N%/4ϓϩτίϧΛ༻͍ͯɺ-"/ʹ͋ΔԻΛྲྀ͍ͨ͠(PPHMF)PNFσ όΠεΛ୳͢ ᶅ $BTU7ϓϩτίϧͰɺᶃͷ.1ϑΝΠϧͷ63-ΛᶄͰݟ͚ͭͨ(PPHMF )PNFσόΠεʹૹ৴
ˠ(PPHMF)PNFσόΠε͕ɺԻϑΝΠϧΛ࠶ੜ
ᶃ(PPHMFͷ $MPVE5FYUUP4QFFDI"1*
$MPVE5FYUUP4QFFDI"1*Λ͏ ग़ॴ: Cloud Text-to-Speech - Ի߹ | Cloud Text-to-Speech API
·ͣ͜ͷϑΥʔϜͰ ࢼͯ͠ΈΔ ೖྗςΩετΛ ಡΈ্͛Իʹม͢Δ
ௐͨ͠ύϥϝλΛϓϩάϥϜ͔Βར༻ʢ3VCZͷྫʣ ग़ॴ: googleapis/google-cloud-ruby 3VCZͩͱ͜Μͳײ͡
ࢼͯ͠ΈΔʹࡍͯ͠ͷҙ ‣ άάΔͱग़ͯ͘Δ࣮ྫɺ(PPHMF༁ͷ༻͍͍ͯΔඇެࣜ"1*ΛϋοΫͯ͠ ͍Δͷ͕ଟ͍ ‣ ࠓճɺ.4UBDLͰςΩετ͔ΒಡΈ্͛ԻϑΝΠϧΛ࡞ΔͨΊʹར༻ͨ͠ϥΠϒϥϦIPSJIJSP FTQHPPHMFUUTಉ༷ ‣ αεςφϒϧͳίʔυʹ͢ΔͳΒɺલϖʔδͷྫͰ༻͍͍ͯΔ$MPVE5FYUUP 4QFFDI"1*Λ͏ํ͕Αͦ͞͏ʢʁʣ
ᶄN%/4Ͱ (PPHMF)PNFσόΠεΛ୳͢
N%/4ͱʁ ‣ .VMUJDBTU%/4ͷུ ‣ "QQMFͷ#POKPVSͷͨΊʹࡦఆ͞Ε༷ͨͰɺ3'$Ͱఆٛ͞Ε͍ͯΔ ‣ ϚϧνΩϟετΞυϨεͷɺ6%1ϙʔτʹ%/4ΫΤϦΛ ͛Δ͜ͱͰɺωοτϫʔΫͷσόΠεʹϚϧνΩϟετసૹ͢Δ ‣ ͍߹Θͤʹରͯ͠ɺN%/4ʹରԠ͍ͯ͠ΔσόΠε͕Ԡͯ͘͠Δ
‣ (PPHMF)PNFσόΠεରԠ͍ͯ͠Δ ‣ ಛผͳઃఆɺ%/4αʔόΛඞཁͱͤͣʹ໊લղܾ͕Ͱ͖Δͷ͕ར ग़ॴ: Multicast DNS
N%/4Ͱ(PPHMF)PNFσόΠεΛ୳ࡧʢdns-sd(1)ʣ ৸ࣨͱϦϏϯάͷͷ σόΠε͕ݟ͔ͭͬͨ ग़ॴ: Google Homeͷ໊લͱIPΞυϨεΛݕग़͢Δํ๏
dns-ds(1)ʹ͍ͭͯͷิ ‣ type_app-proto._tcp͔_app-proto._udpͱ͍͏ܗΛऔΔ ‣ app-protoɺ*"/"ͷ4FSWJDF/BNFBOE5SBOTQPSU1SPUPDPM1PSU /VNCFS3FHJTUSZͱ͍͏ϖʔδͰొɾཧ͞Ε͍ͯΔʢݹ͍ϚχϡΞϧͩ ͱ%/4437 3'$ 4FSWJDF5ZQFT͕ग़ͯ͘Δʣ ‣
্هϖʔδͰɺgooglecastͱ͍͏αʔϏε໊ͷొΛ֬ೝͰ͖Δ ग़ॴ: man 1 dns-sd
N%/4Ͱ(PPHMF)PNFσόΠεΛ୳ࡧʢ/PEFKTͷྫʣ ৸ࣨͱϦϏϯάͷͷ σόΠε͕ݟ͔ͭͬͨ ग़ॴ: Google Homeͷ໊લͱIPΞυϨεΛݕग़͢Δํ๏
ᶅ$BTU7ϓϩτίϧͰ ԻϑΝΠϧΛΘͨ͢
$BTU7ͱʁ ‣ ݩʑɺ$ISPNFDBTUͱ௨৴͢ΔͨΊͷϓϩτίϧ ‣ (PPHMF)PNFͰར༻͞Ε͍ͯΔͨΊɺ(PPHMF)PNFσόΠεͱ௨৴͢Δ ࡍʹɺ$BTU7ϓϩτίϧΛ༻͍Δඞཁ͕͋Δ ‣ ΫϥΠΞϯτ5-4ܦ༝ͰσόΠεͷ൪ϙʔτʹଓ͠ɺ1SPUPDPM #V⒎FSTͰΤϯίʔυ͞ΕͨϝοηʔδΛΓͱΓ͢Δ͜ͱͰ௨৴͢Δ ‣
ৄ͘͠ɺUIJCBVUTOPEFDBTUW࡞ऀʹΑΔղઆͱɺ$ISPNJVNͷιʔεʹ ؚ·ΕΔϓϩτίϧఆٛΛࢀরͷ͜ͱ ࢀߟ: thibauts/node-castv2 - Protocol description
ϓϩάϥϜ͔ΒԻϑΝΠϧΛૹΔʢ/PEFKTͷྫʣ ग़ॴ: thibauts/node-castv2-client /PEFͩͱ͜Μͳײ͡
͓ΘΓʹ
·ͱΊ ‣ Ոؒͷʮ͢Εҧ͍ʯɺ૬खʹظ͗͢͠Δ͍ͤͰى͜Δ ‣ ϚΠϯυ໘Ͱͷ͢Εҧ͍ͷղܾࡦʮ՝ͷʯʢΞυϥʔ৺ཧֶʣ ‣ ͓ޓ͍ͷ՝ղܾΛɺΤϯδχΞϦϯάʹΑͬͯࢧԉ͢Δ͜ͱେࣄ ‣ .4UBDLͱ(PPHMF)PNFͷΈ߹ΘͤʹΑΓɺҙͷಡΈ্͛ԻΛྲྀͤΔ Α͏ʹͨ͠
‣ $MPVE554"1*ɺN%/4ɺ$BTU7ͳͲɺٕज़ཁૉͷΈ߹Θ͕ͤ໘ന͍ ‣ (PPHMF)PNFɺ͋Ε͜ΕͰ͖·͘ΔɻϚδศརʂങ͏͔͠ͳ͍ʂʂ