大江戸Ruby会議04の講演"Hacking Home"のスライド http://regional.rubykaigi.org/oedo04 #oedo04
Hacking(My) HomeAkira Matsuda
View Slide
self• GitHub: amatsuda• Twitter: @a_matsuda
Asakusa.rbओ࠵ͯ͠·͢
աڈͷେߐށRubyձٞ• 01 => جௐߨԋ• 02 => Dave Thomas͔ͬͯ͠ͳ͍(͚ͲDaveݺΜͩͷΦϨΦϨ)• 03 => جௐߨԋ
04 (Date.today)• Ebi & Aaron• aamine• ko1 & Yuki Sasada• zzak• hone• Kawamoto• ...
No technical talkfrom me today!
Actually, no codein the slides!
ʮੜ׆ൃදձʯ
My next technical talk will be atRailsConf 2014• At Chicago• Next week
ʮAsakusa.rbͷୈ256ճͷmeetupʯ
ઙ.rbཱϝϯόʔ• amatsuda => ઙ• kakutani => ྆ࠃ• ko1 => ຊॴޗ࠺ڮ
ઙ.rbཱϝϯόʔ• amatsuda => ઙ• kakutani => ྆ࠃ• ko1 => ຊॴޗ࠺ڮ Ͳ͔ͬӈͷ΄͏
TBH I do no more live in ઙ• amatsuda => ઙ ࠜ• kakutani => ྆ࠃ• ko1 => ຊॴޗ࠺ڮ
Life in ઙ• 2004ʹఆՁ3,800ສԁͷ৽ஙϚϯγϣϯΛߪೖ• 10ؒډॅ• ϚϯγϣϯݱࡏିͰӡ༻த
ച٫ʁିʁ
ച٫ʹ͋ͨͬͯ• ࢿ࢈ධՁֹͷݟੵΓ
2012࣌• 3,500ສԁ(by େखۜߦܥۚ༥ػؔ)
ࢿ࢈ՁͷݮΓֹ• 2004: 3800ສ• 2012: 3500ສ• => 37.5ສ / year• => 3.125ສ / month
Α͋͘Δޡղ (1)
ିऩೖ• 18.5ສ / month• 18.5ສ * 12 = 222ສ / year• 3800.0ສ / 222ສ = 17.117...
ି݅ͷݪࢿճऩ17
େՈ͞ΜΛͬͯΈͯΘ͔ͬͨ͜ͱ• Ոͱ͔ཧඅͱ͔ͷઃఆ͖ͯͱ͏• ΒΕΔ͜ͱΛݟࠐΜͩՁ֨ઃఆ
େՈۀ·ͱΊ• ࢿ࢈ՁͷݮΓ: 3.125ສ / month• ିऩೖ: 18.5ສ / month
Α͋͘Δޡղ (2)• ෆಈ࢈Λങͬͯ͠·͏ͱҾͬӽͤͳ͘ͳΔʁ
ઙʹ10ॅΜͩͷͰҾͬӽͯ͠Έ·ͨ͠ɻ
લճϚϯγϣϯ͔ͩͬͨΒࠓށݐͯʹͯ͠Έ·ͨ͠ɻ
ށݐͯ vs. Ϛϯγϣϯ• ށݐͯͷ΄͏͕͍Ζ͍Ζ͍͠• ށݐͯͷ΄͏͕͍Ζ͍Ζࣗ༝͕ߴ͍
ށݐͯͷ΄͏͕͍͠• ษڧ͠ͳ͖Ό͍͚ͳ͍͜ͱ͕ଟ͍• εςʔΫϗϧμʔ͕ଟ͍
ϚϯγϣϯߪೖλΠϜϥΠϯ• ݅બఆ• आۚ & ܖ• ɺೖډ
ށݐͯߪೖλΠϜϥΠϯ• ͷܖ• आۚ• ͷߪೖ• ݐͷܖ• आۚ• ݐͷߪೖ• ɺೖډ
ͷߪೖ
ͷબఆ• ॅΈ͍ͨҬΛܾΊΔ• ͏ͪͷ߹ʮ୩ࠜઍʯʹݶఆ• ͦͷҬͷͷෆಈ࢈ΛճΔ• Πϯλʔωοτ(جຊతʹ)ʹཱͨͳ͍
आۚ
ۚ༥ػ͍ؔΖ͍Ζ• ࢢۜ• ۜ• ৴ୗۜߦ• ωοτۜߦ• ৴ۚ• Ώ͏ͪΐ
ʮࣗ༝ۀʯआ͕͍ۚ͠• αϥϦʔϚϯ͕͏Β·͍͠Ͱ͢• ʮࣾձత৴༻ʯॏཁ
ʮࣗ༝ۀʯͲͷΑ͏ʹධՁ͞ΕΔ͔ʁ
ʮࣾձత৴༻ʯͷௐࠪ• They use Internet!
ʮࣾձత৴༻ʯ on the net• ஶ࡞• Rails3ϨγϐϒοΫɺHead First Rails• ݞॻ͖• φκͷऔకɺϑΣϩʔۀ• ߨԋ• ͍ΖΜͳࠃͰͬͨΓͯ͠Δ• ΠϯλϏϡʔ• Δͼ·ɺଜ͞Μɺߴڮ৴པ͞Μ
Δͼ·͍͢͝ʂ• ৴ୗۜߦͷ୲ऀ͕Δͼ·ͷΠϯλϏϡʔಡΜͰͯϏϏͬͨʂ
2ͭͷੈքଓ͖ͩͬͨʂ• RubyίϛϡχςΟͰͷϓϨθϯε্=> ݱ࣮ࣾձͰͷ৴༻্• ʑͷίϛοτͷੵΈॏͶ=> RubyίϛϡχςΟͰͷϓϨθϯε্
ͭ·Γɺ• RubyͷίʔυΛॻ͚आ͕ۚͰ͖Δʂ
ݐΛݐͯΔ
γεςϜ։ൃʹࣅ͍ͯΔ
๏ͷબఆ• • మࠎ• RC• etc.
మࠎ vs. • ॏްɺେن vs. খճΓɺࣗ༝• ੩తܕ͚ݴޠ vs. ಈతݴޠ• JEE vs. LL
ݐங• ࡏདྷ• 2 x 4ɹ• ֤ࣾಠࣗͷ৭ʑ
࡞Γํ͍Ζ͍Ζ• εΫϥον• ϑϧελοΫϑϨʔϜϫʔΫɹ• ࣗࣾFWɺࣗࣾϥΠϒϥϦ
εςʔΫϗϧμʔ͍Ζ͍Ζ• ചΓͷෆಈ࢈• ॴ༗ऀ• ϋεϝʔΧʔ• ઃܭ࢜• σβΠφʔ• େ• ۜߦ
ϓϩϚωʁ
ϓϩϚωʁ• ސ٬ == ϓϩϚω
ϓϩϚωʁ• ސ٬ == ϓϩϚω• ՈΛݐͯΔͱϓϩϚωۀ͕ܦݧͰ͖·͢ʂ
ઃܭ
ʮιʔείʔυ: ιϑτΣΞͷઃܭਤΈ͍ͨͳͷʯ
ͱ͍͏͜ͱɺ
ઃܭਤ == ιʔείʔυΈ͍ͨͳͷ• ઃܭ࢜ͷݸੑ͕ग़Δ• ઃܭ࢜ͷ͍͕͍ͬͯ͜Δ• ಡΜͰָ͍ͯ͠ʂ
ઃܭϑΣʔζ• ͏ͪͷ߹ 4ʙ5ϲ݄͙Β͍(ि2ʙ3ճ͙Β͍ଧͪ߹Θͤ)• ଧͪ߹Θͤฏͷޕલத͕͓͢͢Ί• ઃܭCAD()Ͱ• ଧͪ߹ΘͤPCͷը໘Λݟͳ͕Β• ຖճଧͪ߹Θͤޙʹ࠷৽൛ͷઃܭਤ͕ࢴͰΒ͑Δ
ઃܭਤ• ຖճຖճຖճຖճɺʮࢴͰʯ
ʮσʔλͰ͘Εʯ• ͑ͬʁ• ͑ͬʁ• ʮͦΜͳ͜ͱΛݴΘΕͨͷॳΊͯͩʯ
ʮσʔλͰ͘Εʯ• ΦʔϓϯͳCADϑΥʔϚοτͱ͔͋Δ͡ΌΜ• ͦΜͳΦϞνϟʹରԠͯ͠·ͤΜ…
ΥʔλʔϑΥʔϧ vs. ΞδϟΠϧ
ΥʔλʔϑΥʔϧͳͱ͜Ζ• ܖͷ࣌Ͱͯ͢ͷఔ͕ܾΊΒΕͨఔද͕Ͱ͖͍ͯΔ• ͪΌΜͱఔදʹԊ࣮͕ͬͯਐΜͰɺͪΌΜͱೲظʹϞϊ͕͕͋Δʂ
ΥʔλϑΥʔϧΛࢧ͑Δٕज़• ྺ࢙ͱܦݧʹཪଧͪ͞Εͨਫ਼ͷߴ͍ݟੵΓ• దͳϘϦϡʔϜͷόοϑΝ
ΞδϟΠϧͳͱ͜Ζ• ࣮࣮தʹ݁ߏઃܭόά͕ݟ͔ͭΔ• ࣮͕ਐΉʹ࿈Εͯސ٬͔Β৽ͨͳཁ͕͋Ε͜Εग़ͯ͘Δ
ΞδϟΠϧͳͱ͜Ζ• ͍͍ͩͨݱͰ͍͍۩߹ʹٵऩͯ͠Ͳ͏ʹ͔ղܾͯ͘͠ΕΔ• Embrace Changes!
ݐஙۀքਐΜͰ͍Δ• ΥʔλʔϑΥʔϧͬΆ͞ͱΞδϟΠϧͬΆ͕͞ͱͯྑ͍όϥϯεͰಉډ
࣮ϑΣʔζ• ओ୲ͷେ1ਓ• جૅɺࠨɺΫϩεɺ֎ߏɺͳͲͳͲ৭ʑ
࣮ϑΣʔζ• γεςϜ։ൃͰͨͱ͑ΔͳΒɺαʔόʔଆͷίʔυ΄΅1ਓͰॻ͍ͯɺΫΤϦɺJSɺϚʔΫΞοϓɺetc.ʹपΓΛৼΔΠϝʔδ
ઃܭ͕ݟΕΔޣຯ• ෦ࡐ͕ѲɺબఆͰ͖Δ• ϑϩʔϦϯάɺλΠϧɺนࡐɺυΞɺ૭ɺΫϩεɺ෩࿊ɾΩονϯɾτΠϨɺࣨɺetc.• ސ٬͕bundleͯ͠Δgemͱ͔ʹ·Ͱޱग़͠Ͱ͖ΔΠϝʔδ
(ϓϩάϥϚʔతʹ)໘ന͍෦ࡐ• ਓײηϯαʔ͖র໌• ిಈεΫϦʔϯ
ਓײηϯαʔ͖র໌• ηϯαʔ + র໌ ͷ all in one
ྫ͑ɺτΠϨͷ߹• ୭͔͕τΠϨʹೖΔ• => ηϯαʔ͕ಇ͍ͯిؾ͕͘• τΠϨ͔Βग़Δ• => ిؾ͕ফ͑Δ
ͱ͍͏͜ͱɺ• ηϯαʔͷ͕औΕΕɺτΠϨͷۭ͖ঢ়گ͕ϦϞʔτͰѲͰ͖Δʂ
ʮηϯαʔͷAPIͳ͍ͷʁʯ• ʁ• ʮͦΜͳ͜ͱΛݴΘΕͨͷॳΊͯͩʯ• વͦΜͳͷͳ͍
ݱঢ়• ݐஙݱ෦ࡐϝʔΧʔ·ͰϓϩάϥϚʔͷ͕ಧ͍͍ͯͳ͍• ͍ΖΜͳ෦ࡐ͕APIΛఏڙͯ͘͠ΕΔΑ͏ʹͳͬͨΒͬͱՈ͕ศརʹͳΔͣʂ
Ideas• ਓ͕͍ۙͮͨ͜ͱΛݕ͢Δݰؔ• ਓ͕͍ͬͯΔ͜ͱΛݕ͢Δচ֊ஈ• ૭Λ։͚ΔAPI• υΞΛ։͚ΔAPI
Hacking My Home
৭ʑHackͰ͖ΔΞΠςϜ• IRKit• Future Home Controller
IRKit• ֎ઢΛ௨͍ͯ͡Ζ͍ΖϋοΫ͢Δָ͍ͭ͠
IRKit• ҙͷ֎ઢϦϞίϯ͔ΒIRKitʹ֎ઢ৴߸Λૹग़• => IRKitʹऔΓࠐΜͰJSONͰอଘ• IRKitʹHTTPͰҙͷJSONΛૹΓ͚ͭΔ• => IRKit͔Β֎ઢ৴߸ͱͯ͠ૹग़
༻ྫ• ϦϏϯάϧʔϜͷిಈεΫϦʔϯΛɺৗ࣌ىಈ͍ͯ͠ΔMacMini͔ΒcurlίϚϯυͰ։ด• ͜ΕΛcronͰຖே൩ࣗಈ࣮ߦ
Demo
༻ྫ(not implemented yet)• Թηϯαʔͱ࿈ಈͯ͠ɺॵ͘ͳͬͨΒউखʹΤΞίϯΛ͚ͭΔʗॵ͘ͳ͘ͳͬͨΒউखʹফ͢• ຖܾ·ͬͨ࣌ؒʹRoombaΛىಈͯ͠উखʹআ͢Δ
Conclusion• Hack home everyday,and that'll buy you a house.
Conclusion (2)• ͓͏ͪΛݐͯΑ͏ʂ• Programmableͳ෦ࡐΛબ΅͏ʂ• ຖͷΒ͠ΛϋοΫ͠Α͏ʂ