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
Android Things+TensorFlowで作る猫トイレ監視システム
Search
kojira
October 10, 2017
Programming
0
990
Android Things+TensorFlowで作る猫トイレ監視システム
DevFest Tokyo 2017(
https://tokyo.gdgjapan.org/
)での発表資料
kojira
October 10, 2017
Tweet
Share
More Decks by kojira
See All by kojira
What is Nostr?
kojira
0
140
Bluesky and Nostr review 2023
kojira
0
250
分散型SNS最新状況
kojira
0
350
What is Nostr?
kojira
1
320
Bluesky100万人記念座談会
kojira
0
100
Blueskyを定量解析した話
kojira
1
410
最近のNostr動向とかいろいろ詰め合わせ
kojira
0
300
最新分散SNSとスマホアプリ
kojira
1
400
Blueskyちゃん作った話
kojira
2
610
Other Decks in Programming
See All in Programming
Amazon Nova Reelの可能性
hideg
0
240
ASP.NET Core の OpenAPIサポート
h455h1
0
150
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
590
20241217 競争力強化とビジネス価値創出への挑戦:モノタロウのシステムモダナイズ、開発組織の進化と今後の展望
monotaro
PRO
0
340
DMMオンラインサロンアプリのSwift化
hayatan
0
230
Rubyでつくるパケットキャプチャツール
ydah
0
330
Scaling your build logic
antalmonori
1
130
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
440
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.2k
2024年のkintone API振り返りと2025年 / kintone API look back in 2024
tasshi
0
160
Compose でデザインと実装の差異を減らすための取り組み
oidy
1
220
Fibonacci Function Gallery - Part 2
philipschwarz
PRO
0
220
Featured
See All Featured
It's Worth the Effort
3n
184
28k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Gamification - CAS2011
davidbonilla
80
5.1k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Bash Introduction
62gerente
610
210k
Six Lessons from altMBA
skipperchong
27
3.6k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
YesSQL, Process and Tooling at Scale
rocio
170
14k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Writing Fast Ruby
sferik
628
61k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Thoughts on Productivity
jonyablonski
68
4.4k
Transcript
"OESPJE5IJOHTʴ 5FOTPS'MPXͰ࡞Δ ೣτΠϨࢹγεςϜ 4JOHVMBSJUZגࣜձࣾ ۙ౻ত༤ !LPKJSB
ࣗݾհ !LPKJSB "OESPJEྺɺ ݩΈࠐΈΤϯδχΞ ॴଐɿ ຊ"OESPJEͷձ +"( 5FOTPS'MPX6TFS(SPVQ 5'6(
શΞʔΩςΫνϟΠχγΞνϒ 8#"*
༰ 5FOTPS'MPXͬͯԿʁ "OESPJE5IJOHTͬͯԿʁ ೣτΠϨࢹγεςϜʹ͍ͭͯ -JOLJOHͬͯԿʁ 5FOTPS'MPXͷڥߏங "OESPJE5IJOHTͷڥߏங ը૾ͷ༻ҙ ֶश ݁Ռ
5FOTPS'MPXͬͯԿʁ ݄ʹϦϦʔε͞Εͨɺ(PPHMFۘͷػցֶशσΟʔ ϓϥʔχϯάͷϥΠϒϥϦ 5FOTPS#PBSEΛͬͯɺάϥϑΟΧϧʹॲཧ͕ݟ͑Δͷ͕ಛ
"OESPJE5IJOHTͬͯԿʁ (PPHMFۘͷ*P5͚ͷϓϥοτϑΥʔϜ ফ͑ͯͳ͘ͳͬͨ#SJMMPΛҾ͖ܧ͍Ͱ͍Δ ͍ΖΜͳϋʔυΣΞ 3BTQJͳͲ ʹΠϯετʔϧՄೳ ·ͩQSFWJFX൛Ͱ·ͩόά͕ଟ͍ (1*0Λ+BWB͔Β੍ޚՄೳ "OESPJEΞϓϦͷաڈࢿ࢈͕େ෦ྲྀ༻Մೳ 'JSFCBTFͱ͔؆୯ʹ͑Δ
ೣτΠϨࢹγεςϜʹ͍ͭͯ ͳͥ࡞Ζ͏ͱࢥ͔ͬͨ ೣτΠϨ͕Ԛ͍ͱɺผͷॴͰͦͦ͏ͯ͠͠·͏ɻɻͦ͏ͳΔͱআ͕େมɻ ZPHJCPʹճ͓ͬ͜͠Λ͞Εɺ͍ͭʹZPHJCPΛഇغɻ ݈߁ཧͷͨΊɻτΠϨͷස͕ଟ͍ͱ࿏݁ੴͳͲͷ͍͕ٙڧ·Δɻ ࣂ͍ೣͷࢮҼͷୈҰҐਛෆશɻ ಄ͱ࿏݁ੴͰखज़ࡁΈɻ͏ޙ͕ͳ͍ɻ
ೣτΠϨࢹγεςϜͷΈ ೣ͕τΠϨʹೖͬͨͷΛৼಈηϯαʔͰݕ ͠ɺࣸਅΛࡱΔ τΠϨΛͬͨೣΛݟ͚ͯه ৼಈηϯαʔ ,J[VLV ˞-JOLJOH
-JOLJOHͬͯԿʁ /55υίϞ͕ࡦఆͨ͠*P5͚ͷ௨৴ن֨ #MVFUPPUI-PX&OFSHZ #-& Ͱܨ͛ΒΕΔ҆ՁͳσόΠε͕๛ ʙԁ͘Β͍ͰɺՃɺৼ ಈɺԹ࣪ɺ։ดηϯαʔͳͲ͕͑Δ IUUQTMJOLJOHJPUDPN
-JOLJOHͬͯԿʁ ࠓճ͏ͷৼಈηϯαʔͷ,J[VLV ԁ͘Β͍ ৼಈΛݕ͢Δͱ#FBDPOσʔλΛਧ͘ ͜ΕͰೣτΠϨͷ༻λΠϛϯάΛݕ͢Δ
ͳΜͰ"OESPJE5IJOHT͏ͷʁ εϚϗͰ͍͍Μ͡Όͳ͍ͷʁ
ͳΜͰ"OESPJE5IJOHT͏ͷʁ ྫྷଂݿͷԹ࣪Λिؒܭଌͨ݁͠Ռ ɹIUUQTRJJUBDPNLPKJSBJUFNTCGCCFD
ͳΜͰ"OESPJE5IJOHT͏ͷʁ ̎ϲ݄ॆిͬ͠ͺͳ͠Ͱܭଌ͍ͯͨ͠Βόο ςϦʔ͕Ε্͕ͬͯཪ໘ׂ͕Εͨ
5FOTPS'MPXͷڥߏங ͬ͘͟Γॻ͘ͱQZUIPOΛೖΕͯ QJQJOTUBMMVQHSBEFUFOTPSqPX ͚ͩɻ ͰࠓճͦΕ͡Όବɻ
5FOTPS'MPXͷڥߏங UFOTPSqPXΛιʔείʔυ͔ΒΠϯετʔϧ CB[FMͷΠϯετʔϧ UFOTPSqPXͷϦϙδτϦΛDMPOF HJUDMPOFIUUQTHJUIVCDPNUFOTPSqPXUFOTPSqPX DEUFOTPSqPX HJUDIFDLPVUS
5FOTPS'MPXͷڥߏங DEUFOTPSqPX CB[FMCVJMEDPOpHPQUUFOTPSqPXUPPMTQJQ@QBDLBHFCVJME@QJQ@QBDLBHF ͰϏϧυͰ͖ͨΒ ʙ࣌ؒ͘Β͍ʁ CB[FMCJOUFOTPSqPXUPPMTQJQ@QBDLBHFCVJME@QJQ@QBDLBHFUNQUFOTPSqPX@QLH ͰQJQύοέʔδΛੜͯ͠ҎԼͰΠϯετʔϧ IPHF෦֤ڥґଘ
QJQJOTUBMMUNQUFOTPSqPX@QLHUFOTPSqPXSDIPHFXIM QZUIPOͰҎԼͷίʔυ͕ಈ͔֬͘ೝ JNQPSUUFOTPSqPXBTUG IFMMPUGDPOTUBOU )FMMP 5FOTPS'MPX TFTTUG4FTTJPO QSJOU TFTTSVO IFMMP ʮ)FMMP 5FOTPS'MPXʯ͕දࣔ͞ΕΕ0,ʂ
5FOTPS'MPXͷڥߏங Ͷɺ؆୯Ͱ͠ΐ͏ʁ
5FOTPS'MPXͷڥߏங ˞(16͏߹ϋϚΓ·͢
"OESPJE5IJOHTͷڥߏங 3BTQJΛങ͏ .JDSP4%ΧʔυΛങ͏ ΧϝϥϞδϡʔϧΛങ͏ 64#ిݯΞμϓλΛങ͏ "Ҏ্ )%.*έʔϒϧΛ༻ҙ͢Δ -"/έʔϒϧΛ༻ҙ͢Δ "OESPJE5IJOH$POTPMFͰΠϝʔδͷ࡞
"OESPJE5IJOHTͷڥߏங 3BTQJΛങ͏ ΫϦΞέʔεʹೖ͕ͬͨͭΑ͍ͱࢥ͍·͢ɻ 3BTQCFSSZ1J.PEFM#Ϙʔυˍέʔεηο τQMF%FDLFSରԠ ԁ͘Β͍
"OESPJE5IJOHTͷڥߏங .JDSP4%Λങ͏ ͍ͭΛങ͓͏ʂ ࣮ɻ 04Πϝʔδ͕(#͘Β͍͋ΔͷͰɺॻ͖ࠐΈ ͕͍ͱ࣌ؒҎ্͔͔ͬͨΓ͢Δ 4BNTVOHNJDSP4%9$Χʔυ(#&701MVT $MBTT6)4*6ରԠ ࠷େಡग़.#
T࠷େॻࠐ.#T ͩͱ͔͔Βͳ͍͘ Β͍ɻ ԁ͘Β͍
"OESPJE5IJOHTͷڥߏங ΧϝϥϞδϡʔϧΛങ͏ ࠷ॳؒҧͬͯ64#ΧϝϥΛߪೖ͕ͨ͠ɺ "OESPJE5IJOHTͰ*$੍ޚͷΧϝϥ͔͠ ಈ࡞͠ͳ͍͜ͱ͕໌ɻɻ αΠϯεϚʔτɹ3BTQCFSSZ1Jɹ༻ɹΧϝϥϞδϡʔϧ$BNFSB.PEVMFɹGPSϥ ζϕϦʔύΠ ԁ͘Β͍
"OESPJE5IJOHTͷڥߏங 64#ిݯΞμϓλΛങ͏ "Ҏ্ ిྗ͕Γͳ͍ͱىಈͰ͖ͳ͍ͷͰ"Ҏ ্͘Β͍ඞཁɻ 3BTQCFSSZ1J༻ిݯηοτ 7" Λߪ ೖɻ
ԁ͘Β͍
"OESPJE5IJOHTͷڥߏங "OESPJE5IJOHT$POTPMFͰΠϝʔδ࡞
"OESPJE5IJOHTͷڥߏங 1SPKFDU࡞ޙɺ ʮ$3&"5*-%$0/'*(63"5*0/ʯ
"OESPJE5IJOHTͷڥߏங ͢ΔͱԼͷํʹ#VJMEDPOpHVSBUJPOMJTU͕ग़ ΔͷͰɺʮ%PXOMPBECVJMEʯ ͠Β͔͔࣌ؒ͘Δ
"OESPJE5IJOHTͷڥߏங μϯϩʔυ༻ͷΠϝʔδͷϏϧυ͕ऴΘΔͱμϯϩʔυ͕࢝·ΔͷͰɺμϯϩʔυɻ μϯϩʔυͨ͠ϑΝΠϧΛղౚ͢ΔͱʮJPU@SQJJNHʯͱ͍͏ϑΝΠϧ͕Ͱ͖Δɻ .JDSP4%ΧʔυΛ͠ɺҎԼͷίϚϯυͰΠϝʔδΛম͘ TVEPEECTNJGJPU@SQJJNHPGEFWEJTL ˞EFWEJTLͷύεڥʹΑΓҟͳΓ·͢ɻ ˞ϝνϟΫνϟ͔͔࣌ؒΔͷʹϨεϙϯε͕ͳͯ͘ෆ҆ʹͳΓ·͕͢ɺਐঢ়گΛݟ͍ͨ߹ $USM 5ͰݟΒΕ·͢ɻ ˞͍4%ΧʔυΛͬͨ࣌,CZUFTFDͰؾ͕ڰ͍ͦ͏ͳ΄Ͳ͔ͬͨɻ
࣌ؒ ˞ઌ΄Ͳհͨ͠4%ΧʔυͩͱΔɻɻɻ
"OESPJE5IJOHTͷڥߏங ͏·͘ಈ͔͢ʹ3BTQJΛ)%.*έʔ ϒϧͰ57ʹܨ͙ͷ͕ਖ਼ղ Ҏ߱ͷόʔδϣϯͰখ͞ ͍-$%Ϟχλʔ͕өΒͳ͘ͳͬ ͯ͠·ͬͨɻɻɻώυΠɻɻ ࠷ॳݪҼ͕Θ͔ΒͣɺిݯΞμ ϓλʔΛങ͍ͨ͠Γɺ4%Χʔ υΛম͖ͨ͠ΓɺDPOpHUYU Λ͍ͬͨ͡ΓɻݪҼڀ໌ʹ͔ͳ
Γ࣌ؒΛ৯ͬͨɻ Λෳࡶʹͨ͠ͷ͕ɺΛ ম͍͍ͯͯউखʹόʔδϣϯ Ξοϓ͞Εͯ0SFPʹͳͬͯ͠· ͏ɾɾɾͦ͏ͳΔͱ࠶ىಈޙʹ ը໘͕өΒͳ͘ͳΔͷͩͬͨɻ
"OESPJE5IJOHTͷڥߏங ͔ͤͬ͘ങͬͨͷʹແବʹͳͬͨ 040:00)%.*Πϯν-$%σΟεϓϨΠϞχλʔ ԁ ͔݄͠த͜ΕͰಈ͍͍ͯͨͷͰɺյΕͨͱࢥͬͯ͏Ұങͬͯ͠·ͬͨɻ ɹЊʘА ŧŖƃ
"OESPJE5IJOHTͷڥߏங -"/έʔϒϧΛૠ͓ͯ͘͠ͷΕͣʹ ىಈը໘Ͱ*1ΞυϨε͕දࣔ͞ΕΔͷͰɺͦͷ*1ΞυϨε ʹҎԼͷίϚϯυͰBECΛܨ͛Δ BECDPOOFDUYYYY 8J'JͰܨ͛Δ߹্هΛߦͬͨޙʹҎԼͷίϚϯυͰɻ BECTIFMMBNTUBSUTFSWJDFa ODPNHPPHMFXJpTFUVQ8Jp4FUVQ4FSWJDFa B8Jp4FUVQ4FSWJDF$POOFDUa FTTJE/FUXPSL@44*%a
FQBTTQISBTF/FUXPSL@1BTTDPEF
"OESPJE5IJOHTͷڥߏங Ͷɺ؆୯Ͱ͠ΐ͏ɾɾɾʁ
"OESPJE5IJOHTͷڥߏங ͏ͦɺΊΜͲ͍͘͞ɻɻ ը໘͕өΒͳ͍ͱ*1ΞυϨε͕औΕͳ͍͠ɺ ը໘͕ग़ͳͯ͘Կ৺͕ંΕ͔͚ͨɻɻ ˞γϦΞϧέʔϒϧΛଓ͢ΕҰԠճආՄೳ͚ͩͲ͞Βʹ໘ɻɻ ˞݁ہγϦΞϧέʔϒϧߪೖɻ
"OESPJE5IJOHTͷڥߏங ͔ͤͬ͘ωοτʹܨ͕ͬͯΔΜ͔ͩΒ "OESPJE5IJOHT$POTPMFͰ*1ΞυϨε֬ೝͰ ͖ΔΑ͏ʹ͠ͱ͍ͯཉ͍͠ɻ ˞ग़ઌͰ*1ΞυϨε͕औΕͳ͍ࣗମߟ͑ɺ ɹ'JSFCBTFͷSFBMUJNFEC্ʹඵຖʹ*1ΞυϨεΛॻ͖ࠐΈΉΞϓϦΛࣗ࡞ɻ
"OESPJE5IJOHTͷڥߏங "OESPJE5IJOHTͷαϯϓϧίʔυΛDMPOF JODFQUJPONPEFMWΛͬͯɺΧϝϥʹࣸͬͨछྨ͘Β͍ͷը૾ೝ͕ࣝߦ͑Δެࣜ αϯϓϧΞϓϦ HJUDMPOFIUUQTHJUIVCDPNBOESPJEUIJOHTTBNQMFUFOTPSqPXJNBHFDMBTTJpFSHJU (1*0ɺ-&%पΓͷॲཧΛআͯ͠ɺ,J[VLVͷ#FBDPOΛड৴ͨ࣌͠ʹࣸਅΛࡱΔΑ͏ʹ ͢Δɻ ˞͍ͯ͠ΔιʔείʔυޙHJUIVC্ʹެ։͠·͢ɻ
"OESPJE5IJOHTͷڥߏங JODFQUJPONPEFMWʹ͍ͭͯ *NBHF/FUͱݺΕΔສຕҎ্ͷը૾ͷσʔληοτ Λֶशʹ͍ɺछྨʹΫϥεྨͰ͖ΔΑ͏ʹͳͬͨ ֶशࡁΈϞσϧɻ ͜ͷֶशϞσϧΛར༻ͯ͠ɺผͷֶशΛߦ͏ͱ సҠֶश ɺ ֶशΛਫ਼ྑ͘ɺߴʹߦ͏͜ͱ͕Ͱ͖Δɻ ສೳͰͳ͍
ྫ͑ΔͳΒɺαοΧʔΛ͍ͬͯͨબख͕ڑΛ͋Δఔ ͷϨϕϧ·Ͱ͜ͳͤΔΑ͏ͳͷɻ ҰͭͷಓΛۃΊΔͱଞͷͰ͋ΔఔͷԠ༻͕ޮ͘ɻ
ը૾ͷ༻ҙ ֤ຕ͘Β͍༻ҙ γϟφ ϛίτ γϟφͱϛίτ ଞ ɹྉཧɺۭͦͷଞͷը૾ɻ ɾɾɾ ɾɾɾ ɾɾɾ
˞ͦΕͧΕճసɺϊΠζ༩ͰΧςΰϦຕ͘Β͍ʹ૿ͨ͠
ֶश JODFQUJPONPEFMWΛͬͯసҠֶश 'JOFUVOJOH Λߦ͏ UFOTPSqPXΛDMPOFͨ͠σΟϨΫτϦҠಈ͠ҎԼͷίϚϯυΛଧͭ CB[FMCVJMEDPOpHPQUUFOTPSqPXFYBNQMFTJNBHF@SFUSBJOJOHSFUSBJO ઌ΄Ͳͷը૾Λϥϕϧຖʹஔ 1IPUPT NJLPUPIPHFKQHʜ TZBOBGVHBKQHʜ
TPOPUBIPNVKQHʜ ͦͯ͠ҎԼͷίϚϯυͰֶश Ұߦ CB[FMCJOUFOTPSqPXFYBNQMFTJNBHF@SFUSBJOJOHSFUSBJOJNBHF@EJSd1IPUPT SBOEPN@DSPQSBOEPN@TDBMFqJQ@MFGU@SJHIU QSJOU@NJTDMBTTJpFE@UFTU@JNBHFTJOUFSNFEJBUF@TUPSF@GSFRVFODZ
ֶश ֶश݁Ռ UFOTPSCPBSEMPHEJSUNQSFUSBJO@MPHT Λ͔ͯ͠Β IUUQ ͔Βਐঢ়گΛάϥϑΟΧϧʹ֬ೝՄೳ ˞σϑΥϧτͰFQPDͰֶश͕ऴΘΔɻ ͜ͷ.BDͰ$16ͷΈͰ࣌ؒ͘Β͍ͰFQPD˞(16 (59ͩͱഒ͘Β͍͍
4UFQ5SBJOBDDVSBDZ 4UFQ$SPTTFOUSPQZ 4UFQ7BMJEBUJPOBDDVSBDZ
ֶश݁Ռͷద༻ ֶश݁Ռͷ PVUQVU@HSBQIQC PVUQVU@MBCFMTUYU Ͱ TBNQMFUFOTPSqPXJNBHFDMBTTJpFS ͷBTTFUҎԼͷͷΛࠩ͠ସ͑Δ PVUQVU@HSBQIQCΛUFOTPSqPX@JODFQUJPO@HSBQIQC PVUQVU@MBCFMTUYUΛJNBHFOFU@DPNQ@HSBQI@MBCFM@TUSJOHTUYU
݁Ռ औΓ͚ਤ ,J[VLVܖػʹΑΔࣸਅࡱӨ ͓͍͠
݁Ռ ը૾ೝࣝͷ݁Ռ ˞ίϚϯυϥΠϯͰଧͭ߹ CB[FMCJOUFOTPSqPXFYBNQMFTJNBHF@SFUSBJOJOHMBCFM@JNBHFHSBQIUNQPVUQVU@HSBQIQC MBCFMTUNQPVUQVU@MBCFMTUYUPVUQVU@MBZFSpOBM@SFTVMUJNBHFϛίτͷը૾ϑΝΠϧKQH TIBOB TDPSF TIBOBNJLPUP TDPSF
NJLPUP TDPSF TPOPUB TDPSF ϛίτͳͷʹγϟφఆɾɾɾ ࢂഊɾɾɾ ը૾ύλʔϯ͕·ͩ·ͩগͳ͍͔ɾɾɾ
·ͱΊ ޡݕͨ·ʹ͋Δ͕ɺ,J[VLVͷݕλΠϛϯάͰτΠϨͷճΛه͍ͯ͘͜͠ͱ Ͱ͖ͦ͏ɻ ೣࣝผΛ͢Δʹ͋ͨͬͯɺ·ͩ·ͩνϡʔχϯάͷ༨͕͋Γ·͘Γɻ ໟฒΈ͕ҧ͏ͷͰࣝผͰ͖Δ͔ͱࢥ͍͖͔ͬͨ͠ɻ ೣτΠϨը૾Λຖऩूͯ͠ɺ͔ͦ͜ΒڭࢣσʔλΛ࡞ͯ͠࠶ֶश͢Δඞཁ͕͋ Δɻ ݱ࣌Ͱ"OESPJE5IJOHTҰߏஙͯ͠͠·͑؆୯͕ͩɺߏங͢Δ·ͰͷಓͷΓ͕ ҙ֎ͱ͍ɻ "OESPJE5IJOHTΑΓૉͷ3BTQJͷํ͕৭ʑ͍ܰɾɾɾ
ΧϝϥͷGQT͕ग़ͳ͍ͷͰಈଶݕ͕͍͠ɻ ͦͷͨΊೣݕʹ,J[VLVΛ༻ "OESPJE5IJOHT͕·ͱʹಈ͘Α͏ʹͳΕաڈͷ"OESPJEࢿ࢈͕͍์ͳͷͰɺ $ݴޠͱٔΕͳͯ͘Α͍ͷັྗతɻ͕ͩɺਓྨʹ·ͩૣͦ͏ͩɻ 5FOTPS'MPXֶ͕ࣝͳͯ͘ढจΛএ͑Εը૾ྨఔͰ͋Ε؆୯ʹͰ͖ Δɻ ͦͷূڌʹֶश͢ΔࡍʹιʔείʔυҰ͍͍ͬͯ͡ͳ͍ɻ ೣೝ͕ࣝͰ͖ͨΒࣗಈڅӤثʹద༻͍ͨ͠ɻ γϟφ͕৯͍͠ΜͷͨΊɻ
·ͱΊ "OESPJE5IJOHT·ͩ·͚ͩͩͲɺૉͷ "OESPJEͰಈ͔ͤΔ 5FOTPS'MPXը૾ྨ͚ͩͳΒ؆୯ -JOLJOH͍͍͢ͷͰͬͱීٴ͢Δ͖
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠