Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
690
怠惰・短気・傲慢な家庭を築く / 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
あとはAIに任せて人間は自由に生きる
kentaro
4
1.7k
社会人力と研究力ー博士号をキャリアの武器にするー
kentaro
3
240
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
2
2.1k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
630
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
320
「始め方」の始め方 / How to Start Starting Things
kentaro
5
970
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1.6k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
690
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
8
6.5k
Other Decks in Technology
See All in Technology
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
540
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.4k
ディメンショナルモデリングを支えるData Vaultについて
10xinc
1
100
AI駆動開発の実践とその未来
eltociear
0
120
ChatGPTで論⽂は読めるのか
spatial_ai_network
10
29k
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
910
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
120
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
250
RAG/Agent開発のアップデートまとめ
taka0709
0
180
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
120
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
140
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
1
200
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Why Our Code Smells
bkeepers
PRO
340
57k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
A Modern Web Designer's Workflow
chriscoyier
698
190k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Become a Pro
speakerdeck
PRO
31
5.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
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ɺ͋Ε͜ΕͰ͖·͘ΔɻϚδศརʂങ͏͔͠ͳ͍ʂʂ