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
150
Bluesky and Nostr review 2023
kojira
0
260
分散型SNS最新状況
kojira
0
350
What is Nostr?
kojira
1
330
Bluesky100万人記念座談会
kojira
0
110
Blueskyを定量解析した話
kojira
1
420
最近のNostr動向とかいろいろ詰め合わせ
kojira
0
300
最新分散SNSとスマホアプリ
kojira
1
400
Blueskyちゃん作った話
kojira
2
620
Other Decks in Programming
See All in Programming
TCAを用いたAmebaのリアーキテクチャ
dazy
0
220
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
9
2.5k
技術を改善し続ける
gumioji
0
180
Rubyと自由とAIと
yotii23
6
1.9k
「個人開発マネタイズ大全」が教えてくれたこと
bani24884
1
290
Jakarta EE meets AI
ivargrimstad
0
630
楽しく向き合う例外対応
okutsu
0
720
Datadog Workflow Automation で圧倒的価値提供
showwin
1
300
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.6k
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
300
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
8
1.4k
⚪⚪の⚪⚪をSwiftUIで再現す る
u503
0
100
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Fireside Chat
paigeccino
35
3.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Side Projects
sachag
452
42k
Visualization
eitanlees
146
15k
Faster Mobile Websites
deanohume
306
31k
A designer walks into a library…
pauljervisheath
205
24k
Documentation Writing (for coders)
carmenintech
68
4.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
Facilitating Awesome Meetings
lara
53
6.3k
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͍͍͢ͷͰͬͱීٴ͢Δ͖
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠