KMCの新勧例会講座での発表資料です
How tokill yourcommunityίϛϡχςΟ͕࣋ଓՄೳͰ͋ΔͨΊʹߟ͓͖͍͑ͯͨ͜ͱPasta-K / KMC ৽קߨ࠲ 2018.05.14How tokill yourcommunity
View Slide
@pastak
• ژେֶֶ෦ใֶՊ ܭࢉػՊֶίʔε6ճੜ• KMC ݩใ / KMC40प࣮ߦҕһ• Nota Inc Gyazo։ൃνʔϜ ΞϧόΠτ• JavaScript / React / Ruby on Rails• Browser Extension• גࣜձࣾͯͳ ΞϧόΠτ• TypeScriptͰɺ୭ʁ
ࠓ͢͜ͱ• ίϛϡχςΟΛଘଓͤ͞ΔͨΊʹҙ͍ࣝͨ͜͠ͱɺؾΛ͚͍ͭͨ͜ͱʹ͍ͭͯ• ݞͷྗΛൈ͍ͯίϛϡχςΟͱ͖߹͑ΔΑ͏ʹ
ࠓ͞ͳ͍͜ͱ• ίϯϐϡʔςΟϯάʹؔ͢Δ͜ͱ• ॴҦ "αʔΫϧΫϥογϡ" ʹ͍ͭͯ
߹ΘͤͯಡΈ͍ͨhttps://speakerdeck.com/pastak/zhong-ji-zhe-falsepu-tatihahe-gachu-lai-rufalseka-mataha-chu-xin-zhe-ni-yu-rutokinipu-gakao-erukoto
ٕज़ؔͷτʔΫΛݟ͔ͨͬͨਓhttps://speakerdeck.com/pastak/zhi-tuteokitaiburauzanituitefalseji-chu-ru-menhttps://speakerdeck.com/pastak/burauzakuo-zhang-falsekurosuburauzadui-ying-nituitedouxiang-kihe-tuteiruka-number-buildersconhttps://speakerdeck.com/pastak/re-learning-about-js-in-2018
⚠ҙࣄ߲⚠͜ͷൃද,.$ٴͼಛఆͷஂମɾݸਓʹؔͯ͠൷Λߦ͏ͷͰͳ͍ɻྫͱͯ͠ಛఆͷݸਓͷൃݴঢ়گΛհ͢Δ߹͕͋Δ͕ɺ͋͘·Ͱྫͷͭͱͯ͠հ͢ΔͷͰ͋ΓɺͦΕҎ্ͷҙਤ͋Γ·ͤΜɻ͠Ҏ߱ͷྫࣄ߲ʹ͕ࣗͯ·Δͱࢥͬͨ߹Ͱ͋ͬͯই͖ͭ͗ͨ͢Γ͠ͳ͍Α͏ʹ͍ͯͩ͘͠͞ɻ͜ͷൃදͷ༰ʹ͍ͭͯ!QBTUBLͷݸਓతͳҙݟͰ͋Γ·͢ɻ·ͨ༰ʹ͍ͭͯٞͷ༨͕͋Δͱࢥ͏ͷͰɺ͝ҙݟ͝ײ͕͋Εੋඇ!QBTUBL·Ͱ͓د͍ͤͩ͘͞ɻ
ࠓͷεϩʔΨϯ
ৼΔ͍ΛΜͰਓΛ·ͣ
ৼΔ͍ΛΜͰਓΛ·ͣ• ʮৼΔ͍ʯमਖ਼Մೳ• ڧ͍ݴ༿Λͬͯਓ֨߈ܸʹͳΒͳ͍Α͏ʹ• ਓ֨߈ܸͱͯ͠ड͚औΔͱਏ͍
ͦͦ• جຊతʹίϛϡχςΟΛഁյ͍ͨ͠ਓډͳ͍• ͋ΔίϛϡχςΟΛഁյ͢ΔͨΊʹ࡞׆ಈΛ͢Δਓؒ(ex: αʔΫϥझຯɺΦλαʔͷඣΛૹΓࠐΉ)͕ੈͷதʹډ·͕͢ɺͦͷΑ͏ͳ͜ͱແ͍ͱ͍͏લఏͰ͍͖ͬͯ·͢ʢͱ͍͏લఏʹཱͨͳ͍ͱμΠϒਏ͍…ʣ• օ͕ίϛϡχςΟΛྑ͘͢Δ͘ಈ͍͍ͯΔͱ͍͏৴༻ؔ
࣍• ίϛϡχςΟ͕։͚͍ͯΔͱ͍͏͜ͱʹ͍ͭͯ• ίϛϡχςΟʹ͓͚Δཱʹ͍ͭͯ• ϦεϖΫτΛ͖࣋ͬͯ߹͓͏
ίϛϡχςΟ͕։͚͍ͯΔͱ͍͏͜ͱʹ͍ͭͯ
ίϛϡχςΟΛࢧ͑Δͷ• ਓ• ࢿ࢈
ίϛϡχςΟΛࢧ͑Δʮਓʯ• ਓ͕ډͳ͍ͱίϛϡχςΟཱͦͦ͠ͳ͍• ଟ͘ͷਓ͕ډΔͱͨ͘͞Μͷަྲྀ͕ੜ·ΕΔ• ਓ͕গͳ͍ͱίϛϡχέʔγϣϯ͕ੜ·ΕͣɺίϛϡχςΟͷ׆ྗࣦΘΕͯɺਓ͕ࣗવʹΕ͍ͯ͘• ίϯτϩʔϧෆೳͩͱࣗ໓͢ΔՄೳੑ͕͋ΔͷͰɺίϯτϩʔϧ͢Δਓ͕ཁΔ
ίϛϡχςΟΛࢧ͑Δʮਓʯin KMC• ਓΛؤுͬͯ૿͢ˠ ৽קྫձ(͜Ε)• ίϛϡχςΟ่͕յ͠ͳ͍Α͏ʹ͍ͬͯ͘ˠ৬• ͲΜͲΜަྲྀͯ͠׆ੑԽͤ͞ΔˠSlack, wiki, Github ͳͲ
ίϛϡχςΟΛࢧ͑Δʮࢿ࢈ʯ• ཧతͳࢿ࢈: ॴɺػࡐɺ͓ۚ• Ծతͳࢿ࢈: ਓ຺ɺใɺݟ
ίϛϡχςΟΛࢧ͑Δʮࢿ࢈ʯ in KMC• ཧతͳࢿ࢈: ॴɺػࡐɺ͓ۚ → ෦ࣨɺ෦අ• Ծతͳࢿ࢈: ਓ຺ɺใɺݟ → wiki, Slackϩά, ͦͷଞ
ࢿ࢈ΛकΔ• ཧతͳࢿ࢈: օ͞Μͷ෦අͰࢧ͑ΒΕ͍ͯ·͢• Ծతͳࢿ࢈: KMCͰ৭ʑͳΛ͍ͯ͠Δ
Ծతͳࢿ࢈ΛकΔ• ॾʑͷఆظతͳΠϕϯτͳͲͷهwikiʹ·ͱΊ͍ͯΔ• ޙࢀরͰ͖ͯศར• wikiʹͳ͍ͱҙ֎ͱࠔΔ• ex: Ֆഎαʔό ݐͯํ ߴ ແྉ [ݕࡧ]
Ծతͳࢿ࢈ΛकΔ• Slackͷϩά͋ΒΏΔձͱݟͷू·Γ• ࠜװΛ͍ͯ͠Δཁૉ͕ू͍݁ͯ͠Δͱݴ͑Δ• KMCͰݱঢ় patron ͱݺΕΔΞϓϦέʔγϣϯͰऩू͍ͯ͠Δ• ۙʑɺ՝ۚϓϥϯʹҠߦ͢Δʁ
ίϛϡχςΟ͕։͚͍ͯΔ͜ͱ• ։͚͍ͯΔ: ͋ΒΏΔਓ͕͋ΒΏΔใʹΞΫηεՄೳ• KMCͰҰ෦ͷॏཁใҎ֎։͚͍ͯΔ(ͣ)• ͜Ε·Ͱͷ׆ಈهɺษڧձͷࢿྉɺ֤छՌɺ෦αʔϏεͷιʔείʔυɺձͷهɺࣸਅɺKMCͰॴ༗͍ͯ͠Δ֤छΣϒαʔϏεͷΞΧϯτ• ྫ֎: KMCͷޱ࠲ใɺܭࢉػͷrootύεϫʔυ
SlackͷϓϥΠϕʔτνϟϯωϧDM• wikiʹॻ͔Ε͍ͯΔ͜ͱͷ͜ͱɺSlackͷύϒϦοΫνϟϯωϧجຊશͯϩάΛอଘͯ͠ݕࡧՄೳʹͳ͍ͬͯ·͢• աڈͷձهΛ͍ͭͰࢀরՄೳ• ҰํͰɺϓϥΠϕʔτνϟϯωϧDMݕࡧෆೳ• ΞΫηεՄೳͳൣғڱ͘ɺϩάҰఆظؒͰফ͑ͯ͠·͏
SlackͷϓϥΠϕʔτνϟϯωϧDM• ެ։ൣғڱ͍• ଞͷਓ͕ؔ࿈ݟΛ༗͍ͯͨ͠ΓɺޙͰΓ͍ͨ߹ʹࢀরෆೳ → ػձΛଛࣦ͢Δ͜ͱʹͳͬͯ͠·͏• ʮެ։ൣғ͕͍ͱ͍ΖΜͳਓ͕͍ΔͷͰා͍ʯʹ͍ͭͯޙड़͠·͢
Φʔϓϯͳձͱهɺͦͯ͠ح• Φʔϓϯʹձ͍ͯ͜͠͏• هͲΜͲΜͦ͏• ৭ΜͳձهΛ৭Μͳਓ͕ಡΜͰ͍Δ͜ͱͰ৽ͨͳؾ͖ݟΛಘΒΕΔ͜ͱ͕͋Δ → ίϥϘϨʔγϣϯ• "ԽֶԠ"͔ΒͷحΛى͍ͯ͜͜͠͏
ެ։ൣғ͕͍ͱා͍• ٕज़ܥίϛϡχςΟͳͲͰ࠷ۙΑ͘ʹͳͬͯΔ• KMCྫ֎Ͱͳ͍Ͳ͜Ζ͔݁ߏڧ͘ଘࡏ͍ͯ͠Δͱײ͍ͯ͡Δ• ਓ͕ଟ͍νϟϯωϧͷߘߨ࠲ͳͷͰίϯϐϡʔλٕज़ʹؔ͢Δ͜ͱΛൃ͢ΔͷΛڪΕΔ→ *-memoΛத৺ͱͯ͠ίϛϡχέʔγϣϯɺय़߹॓ߨ࠲͔ΒίϯϐϡʔλؔͷτʔΫ͕ݮ͍ͬͯΔ ͳͲͳͲ
Impostor Syndromeʢٗࢣީ܈ʣ• ࣗͷୡΛߠఆͰ͖ͣɺ·ͨͦΕΒΛද໌͢Δ͜ͱ͕ଞࣾʹର͢Δশʹͳͬͯ͠·͏ͷͰͱײͯ͡͠·͏͜ͱɻೳྗ͕ߴ͍ूஂʹଐ͍ͯ͠Δ߹ʹײ͡Δʹ͋Δɻ• KMCͷ߹पғͷಉڃੜઌഐͳͲ͕όϦόϦͱίϯϐϡʔλ͍ͯ͠Δ༷ࢠͳͲΛݟͯɺʮ͕ࣗ͜ͷΑ͏ͳ͜ͱΛൃ৴͢ΔͷϨϕϧ͕͍ͷͰͳ͍͔ʯͱ͍͏͜ͱΛײͯ͡͠·͍͕ͪ• جຊతʹҙࢥΛڧ͔࣋ͭ͘͠ͳ͍ʢͦΕ͕ग़དྷͨΒۤ࿑͠ͳ͍ʣ
Impostor SyndromeΛײͤ͡͞ͳ͍ͨΊʹ• গͳ͘ͱKMCʹԿ͔Λൃ৴ͨ͠Γ࣭͢Δ͜ͱʹґͬͯͦͷਓΛݟԼ͛Δਓ͍ؒͳ͍ͣʢʮʙΒͳ͍ͷʯͱ͔ݴ͏ͷϋϥεϝϯτߦҝͳͷͰؾΛ͚͍ͭͨͰ͢Ͷʣ• ݫ͍͠ϑΟʔυόοΫ͕͋Δ͜ͱ͋Δ͚ͲɺͦΕ͚ͩΞτϓοτΛධՁ͍ͯ͠ͳ͍ͱϑΟʔυόοΫແ͍ͷͰɺٯʹتΜͰΈΑ͏• ʮ͔Βͳ͍͚ͲʯΈ͍ͨͳͷΛ಄ʹ͚ͯྑ͍͔ΒͲΜͲΜΞτϓοτͯ͘͠Ε• KMCͷਓجຊతʹίϯϐϡʔλେ͖ਓؒͳͷͰɺԿ͔Λฉ͘ͱ100ສ͘Β͍ฦ͖ͬͯͯศར• ͲΜͲΜ׆༻͠Α͏
Impostor SyndromeΛײͤ͡͞ͳ͍ͨΊʹ• KMCͷ෦ͰൺΔͱͲ͏ͯࣗ͠ݾঝೝ͢Δͷ͍͠ͱࢥ͏• ࣮ࡍɺօ͞ΜؚΊͯߴ͍ϨϕϧͰٕज़ʹ͖߹ͬͨΓՌΛΞτϓοτ͍ͯ͠Δͱࢥ͏ͷͰ• ֎෦ͷΠϕϯτలࣔͳͲΛͬͯঝೝΛಘΔͷख• ٕज़ΠϕϯτɺOSCग़లɺKC3ɺͳͲͳͲ
ίϛϡχςΟʹ͓͚Δཱʹ͍ͭͯ
৭ʑͳཱ͕͋Γ·͢• දɺձɺ෭ձɺձܭɺใɺͦͷଞ৬ॾʑ• (৽)ϓϩδΣΫτ୲• ฏ෦һɺroot• ৽ೖੜɺ2ճੜɺ3ճੜ……
ཱʹແؔʹࡏΔٛɾݖར• ෦අΛऩΊΔٛ• ऩΊͳ͍ͱ෦һͱͯ͠ͷݖར͕ണୣ͞ΕΔ• ڗडͰ͖Δݖར• ෦ࣨίϯϐϡʔλϦιʔεͳͲΛKMC͕ॴ༗͍ͯ͠ΔൣғͰࣗ༝ʹ͑Δɻ• ߪೖͳͲʹؔͯ͠ྫձͰͷථ݊Λօ͘͠1ථॴ༗͢Δ
KMCͰͷʮཱʯͷࡏΓํ• ֤छ৬: ཱީิՄೳ͚ͩͲɺҾ͖ܧ͗ͳͲ͋ΔͷͰଧϕʔε͕ଟ͍• root: ຊਓ͕ر͢Δͱ3ਓҎ্ͷrootͷঝೝͰΕΔ• ࣮ຊਓ͕ر͠ͳͯ͘3ਓҎ্ͷroot͕ঝೝ͢ΔͱΔ• ϓϩδΣΫτ୲: Γ͍ͨϓϩδΣΫτΛࣗ༝ʹΖ͏
ʮཱʯͱʮΔ͜ͱʯʮΕΔ͜ͱʯ• ཱʹґͬͯʮߦ͏ඞཁͷ͋Δ͜ͱʯʮ࣮ߦՄೳʹͳΔ͜ͱʯ͕૿͑Δ• ྫ: root• ࣮ߦՄೳʹͳΔ͜ͱ: rootݖݶΛ༻͍ͨมߋͳͲΛߦ͏͜ͱ͕ग़དྷΔ• ߦ͏ඞཁͷ͋Δ͜ͱ: KMC෦ͷܭࢉػڥͷอक
ʮཱʯͱʮΔ͜ͱʯʮΕΔ͜ͱʯ• ʮཱʯΛ༗͢Δͱ͕ਵ͢Δ߹͕͋Δ• ͦͷʮཱʯͰ͔͠ʮΕͳ͍͜ͱʯͳͷ͔Ͳ͏͔• root͔͠sudoίϚϯυΛଧͭ͜ͱग़དྷͳ͍• but ίϯϐϡʔλΛങ͍ʹߦ͘ͷ୭Ͱग़དྷΔ
ʮΛ༗͍ͯ͠Δʯͱ͍͏͜ͱ• Λ༗͍ͯ͠Δ != ࣮࡞ۀΛߦ͏ඞཁ͕͋Δ• ใ• ʰϒϩάSNSͳͲͰKMCͷ׆ಈΛΊΔʱ͜ͱʹҰఆͷ͕͋Δ• Twitterͷߋ৽Λใ͕Δඞཁͳ͍• ༗ͭͭ͠ɺ࡞ۀҠৡग़དྷΔ
ʮΛ༗͍ͯ͠Δʯͱ͍͏͜ͱ• Ͱɺʮ͕͋Δʯͱʁ
ʮΛ༗͍ͯ͠Δʯͱ͍͏͜ͱ• Ͱɺʮ͕͋Δʯͱʁ• ʮ͋Δ͜ͱʯ͕ୡɾྃ͞ΕΔΑ͏ʹཧɾಜ͢Δ• ୭͔ʹҠৡͨ͠߹ظݶ·Ͱʹୡ͞ΕΔΑ͏ʹཧ͢Δඞཁ͕͋Δ• ٯʹ͜Ε͕ग़དྷΔͳΒଞͷਓʹͲΜͲΜҠৡͯ͠ཧ͚ͩΛΕྑ͍
ཱͱٛͱݖརͱ• ίϛϡχςΟʹ৭ʑͳཱͷਓ͕͍ؒΔ• (KMCͷ߹)ٛͱݖརجຊతʹ͘͠نఆ͞Ε͍ͯΔ͕ɺཱʹґͬͯͦͷ্ʹ͕Ճ͞ΕΔ͜ͱ͕͋Δ• Λୡ͢Δͷͦͷਓࣗମ͕࣮ߦ͢Δඞཁ͕͋ΔͱݶΒͳ͍• ্ख͘Ҡৡ͕ग़དྷΔͱཧʹूதͰ͖ΔͷͰָͰྑ͍(͜ͱ͕͋Δ)• ্ख͘Ҡৡ͞ΕΔͱ͍͏ͷ͕ग़དྷΔͱૉΒ͍͚͠Ͳ͍͠
ϦεϖΫτΛ͖࣋ͬͯ߹͓͏
ϦεϖΫτͱ• ʦ໊ʧ(εϧ)ଚܟ͢Δ͜ͱɻܟҙΛද͢͜ͱɻՁΛೝΊͯ৺͢Δ͜ͱɻ ʢσδλϧେࣙྛʣ• ͓ޓ͍ཧղͱଚܟΛ࣋ͬͯ͢Δ͜ͱ͕ग़དྷΔͱϋοϐʔ
ͱ͜ΖͰͱ͜ΖͰ• ઌఔɺʮཱʯͱʮʯͷΛ͠·͕ͨ͠ɺίϛϡχςΟͦΕ͚ͩͰཱ͠ͳ͍• ଟ͘ͷਓʑͷແঈͷߩݙ͕͋ͬͯίϛϡχςΟҡ࣋͞Ε͍ͯΔ• ෦ࣨআɾΰϛࣺͯɾSlackΛศརʹ͢ΔBotɾྫձͷϩάऔΓɾ໘ന্өձͷ։࠵ɾ৽ϏϥΓ……ͦͷଞॾʑ
ʰ͋ͬͯͨΓલʱແ͍• શͯͷग़དྷࣄ୭͔ʹґͬͯҝ͞Ε͍ͯΔ• ࣗવͱͦ͜ʹ͋ͬͨΓڗडͰ͖Δͷগͳ͍• ʮྫ͋Δ͔Βࠓ͋Δʯͱ͍͏͜ͱΛอূ͞Ε͍ͯΔͷͳ͍• ٯʹݴ͏ͱશͯͷ͜ͱࢭΊΔ͜ͱ͕૾ΑΓ༰қʹग़དྷΔ• ܧଓ͍ͯ͠Δͷ୭͔ͷෆஅͷྗʹґΔͷ
ίϛϡχςΟΛҡ͍࣋ͯ͠Δߩݙ• ʹײँͰ͖͍ͯ·͔͢ʁ• ίϛϡχςΟΛҡ࣋͢ΔͨΊͷߩݙग़དྷ͍ͯ·͔͢ʁ• ײँϦεϖΫτΛ͢Δ͜ͱͰؾ࣋ͪΑ͘ߩݙͯ͠Β͏͜ͱ͕ग़དྷ·͢• ٯʹ͜͜ʹϦεϖΫτ͕ແ͍ͱײͯ͡͠·͏ͱ݁ߏਏ͍ΑͶ
To ৬ͷਓʑ• KMC݁ߏਓଟ͍ͷͰɺΛ༗͢Δͱҙ֎ͱൣғ͕͔ͬͨΓ͢Δɻྫ͑ɺձܭͩͱͦͦ͜͜ͷڊେͳֹΛ1ؒऔΓѻ͏͜ͱʹͳΔɻ• 2ճੜ͕৬ʹͳΔͷɺKMCܦݧ͕1͔͠ແ͍ͷͰجຊతʹͿ͚ͬͭຊ൪͔ҎલͷਓʹਘͶΔ͜ͱʹͳͬͯएׯେมɻ• ಛʹදɺձɺձܭลΓࣄଟ͘ډͳ͍ͱKMC͕ഁ໓͢ΔͷͰ͋Γ͕͍ͨ
To root• rootʹKMCͷॴ༗͍ͯ͠Δίϯϐϡʔλࢿ࢈Λօ͞Μ͕շదʹར༻ͨ͠Γग़དྷΔΑ͏ʹʑཧΛ͍ͬͯΔਓʑ͕͍·͢• ྫ͑ॲཧܥͷόʔδϣϯΛ্͛ͨΓɺΞϓϦέʔγϣϯΛಈ͔ͤΔΑ͏ʹઃఆΛࢪͨ͠Γ• ෦ࣨΛத৺ͱͨ͠ωοτϫʔΫͷཧߦ͍ͬͯ·͢• ͨΓલʹΠϯλʔωοτ͕ग़དྷΔͷrootͷߩݙʹΑΔͷͰ͢Ͷ
To ༯ਫ਼͞Μ• ෦ࣨͷ༯ਫ਼͞Μ׆ಈΛ͍ͯ͠Δਓͨͪຊʹεΰ͍• ௨শ"ࢮମ"͕స͕͍ͬͯΔεΩʹɺΰϛΛࣺͯͨΓ͢Δ• ͳΜͳΒ෦ࣨΛఆظతʹআΛ͢Δ༯ਫ਼͞Μ͍Δ• ༯ਫ਼͞Μ͕ډͳ͍ͱ෦ࣨΰϛෑʹͳͬͯ͠·͏
օ͞ΜͷϦεϖΫτΛ͍͑ͨਓ͍·͔͢ʁ• ੋඇ؆୯ʹͰSlackޱ಄Ͱදݱ͠Α͏• ۙͳ͜ͱ͔Β࢝ΊΑ͏• ϦεϖΫτΛ͑Δ͜ͱཱͳίϛϡχςΟͷงғؾ࡞ΓɻཱͳߩݙͰ͢ɻ
·ͱΊ
·ͱΊɾ࠷ޙʹ• ίϛϡχςΟͷߏһʹఢډͳ͍ͱࢥͬͯྑ͍ͣ• දݱ͢Δ͜ͱΛڪΕͣʹΦʔϓϯʹΖ͏• ৭ʑͳཱΛ࣋ͬͯؤு͍ͬͯΔ৬ͷਓͪΖΜɺօ͞ΜͷෆஅͷྗʹΑΔߩݙ͕ίϛϡχςΟΛࢧ͍͑ͯ·͢• ͓ޓ͍ʹϦεϖΫτΛ͍࣋ͬͯͯ͜͠͏• ͜ͷઌKMC͕50पɺ64पɺ128पͱଓ͍͍͔ͯ͘օ͞Μʹ͔͔ͬͯ·͢