Slide 1

Slide 1 text

ΦϒδΣΫτࢦ޲ ιʔγϟϧίʔσΟϯά εΫϦϓτݴޠRuby a_matsuda

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

͍͖ͳΓࢲࣄͰڪॖ Ͱ͕͢ɺ

Slide 4

Slide 4 text

ઌ݄ࢠͲ΋͕ ࢈·Ε·ͨ͠ɻ

Slide 5

Slide 5 text

✴twitter: a_matsuda ✴github: amatsuda

Slide 6

Slide 6 text

ID໰୊

Slide 7

Slide 7 text

GitHub͸࠷ॳIDʹ Ξϯεί͕ ࢖͑ͳ͔ͬͨ

Slide 8

Slide 8 text

real name: Akira Matsuda

Slide 9

Slide 9 text

໊લ΋බࣈ΋;ͭ͏͢ ͗ͯIDͷ֬อ͕೉͍͠

Slide 10

Slide 10 text

kakutani ͱ͔͏Β΍·͍͠

Slide 11

Slide 11 text

ࢠڙͨͪ΋ ;ͭ͏ͷ໊લʹͨ͠ ͷͰۤ࿑ͦ͠͏

Slide 12

Slide 12 text

ୈ1෦ ΦϒδΣΫτࢦ޲ ιʔγϟϧίʔσΟϯά εΫϦϓτݴޠRuby

Slide 13

Slide 13 text

✴twitter: a_matsuda ✴github: amatsuda

Slide 14

Slide 14 text

✴twitter: a_matsuda ✴github: amatsuda

Slide 15

Slide 15 text

࣭໰1 GitHubͬͯԿʁ

Slide 16

Slide 16 text

࣭໰2 GitHubͷΞΧ΢ϯτΛ ·ͩ࣋ͬͯͳ͍ਓʁ

Slide 17

Slide 17 text

https://github.com/

Slide 18

Slide 18 text

࣭໰3 GitHubͰຖ೔͓࢓ࣄͷ ίʔυॻ͍ͯΔਓʁ

Slide 19

Slide 19 text

ྺ࢙ͷ͓͞Β͍

Slide 20

Slide 20 text

Ruby

Slide 21

Slide 21 text

ʮΦϒδΣΫτࢦ޲ εΫϦϓτݴޠʯ

Slide 22

Slide 22 text

http://www.ruby-lang.org/ja/about/ “Ruby͸ɺखܰͳΦϒδΣΫ τࢦ޲ϓϩάϥϛϯάΛ࣮ݱ ͢ΔͨΊͷछʑͷػೳΛ࣋ͭ ΦϒδΣΫτࢦ޲εΫϦϓτ ݴޠͰ͢ɻ“

Slide 23

Slide 23 text

made in Japan

Slide 24

Slide 24 text

grew up in US

Slide 25

Slide 25 text

೔ຊ͸Rubyޙਐࠃɻ

Slide 26

Slide 26 text

೔ຊͷRubyͷྺ࢙͸ٯ༌ೖͷྺ࢙ ✴ΧϯϑΝϨϯε ✴WEBΞϓϦ ✴ιʔγϟϧίʔσΟϯά

Slide 27

Slide 27 text

ΧϯϑΝϨϯε ✴ RubyConf ✴ RubyKaigi

Slide 28

Slide 28 text

http://blade.nagaokaut.ac.jp/cgi- bin/scat.rb/ruby/ruby-talk/11883 RubyConf.new(2001)

Slide 29

Slide 29 text

2006೥ ʮ೔ຊRubyΧϯϑΝϨ ϯε2006ʯ

Slide 30

Slide 30 text

http://rubyonrails.org/ “Rails was created in 2003 by David Heinemeier Hansson”

Slide 31

Slide 31 text

Rails in Japan RailsͰϝγ৯ͬͯΔ ਓʁ

Slide 32

Slide 32 text

Ruby on Railsݱ৅ ✴Ruby͕࢓ࣄʹͳΔ ✴೔ຊͰ΋ఆண͖ͯͨ͠ײ ✴͜͜਺೥͸Rails͚ͩͰ ϝγ͕৯͑ͯ·͢

Slide 33

Slide 33 text

ୈ3ͷจԽతٯ༌ೖ “Social Coding”

Slide 34

Slide 34 text

https://github.com/about Company Founded: 2008

Slide 35

Slide 35 text

Rails premieres on GitHub “GitHub has now officially launched and Rails is right there at the premiere. The Rails repository now lives at rails/rails and you can check it out with: git clone git://github.com/rails/ rails.git”

Slide 36

Slide 36 text

WEB+DB Press Vol. 48 (2008/12) ಛू1 [ݴޠผ] Ϟμϯϓϩάϥϛϯά ೖ໳

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

೔ຊॳͷGitHubྱࢍهࣄ (ͨͿΜ)

Slide 39

Slide 39 text

͍͍͜ͱॻ͍ͯΔ “GitHub ͷ࠷େͷಛ௃͸ɺʮਓʯʹϑΥʔ ΧεΛ౰ͯɺΦʔϓϯιʔειϑτ΢ΣΞ (OSS)ͷੈքʹιʔγϟϧͳࢹ఺Λ࣋ͪࠐ Ή͜ͱʹ੒ޭͨ͠఺Ͱ͢ɻGitHub Ͱ͸ɺ ʮϓϩδΣΫτʯʹʮਓʯ͕ΞαΠϯ͞Ε ΔͷͰ͸ͳ͘ɺʮਓʯ͕ʮϓϩδΣΫτʯ Λ࣋ͭΑ͏ͳΠϝʔδʹͳ͍ͬͯ·͢ɻ“

Slide 40

Slide 40 text

೔ຊॳͷGitHubྱࢍهࣄ (ͨͿΜ) ॻ͍ͨͷΦϨΦϨ

Slide 41

Slide 41 text

ະདྷΛ༧ݴ “GitHub ͸·͞ʹίʔυͰޠΓ߹͏ SNS(Social Networking Service)ͳͷ Ͱ͢ɻ͜ͷߏ଄͸OSSίϛϡχςΟ ͷຊ࣭Λ޼Έʹද͓ͯ͠ΓɺOSS։ ൃͷύϥμΠϜΛେ͖͘ม͑Δ͖ͬ ͔͚ʹͳΔՄೳੑΛൿΊ͍ͯ·͢ɻ”

Slide 42

Slide 42 text

͓ങ͍ٻΊ͸ͪ͜Β

Slide 43

Slide 43 text

2008೥ͷRubyಛूͰGitͷ࿩ ✴RubyΛޠΔ্ͰGit͸ط ʹ͔ܽͤͳ͍ଘࡏͩͬͨ ✴RubyίϛϡχςΟ͕Git Λൃݟͨ͠

Slide 44

Slide 44 text

Why Ruby? ͳͥRuby—GitHub ͳͷ͔ʁ

Slide 45

Slide 45 text

2ͭͷཧ༝ ✴σβΠϯ ✴ޮ༻

Slide 46

Slide 46 text

RubyͷσβΠϯ “Ruby is designed to be human-oriented” (Matz)

Slide 47

Slide 47 text

ιʔείʔυΛ౤͛߹ͬͯ ίϛϡχέʔγϣϯΛߦ͏SNS ಡΊ͹Θ͔ΔcommitΛ ࡞Δඞཁ͕͋ΔɻՄಡ ੑ͕ͱͯ΋ॏཁɻ

Slide 48

Slide 48 text

·͞ʹ૬ࢥ૬Ѫ— ✴GitHub: ίʔυΛ࢖ͬͯޠ Γ߹͏SNSɻՄಡੑॏཁɻ ✴Ruby: ίϯϐϡʔλʔͰ͸ ͳͯ͘ਓؒʹϑΥʔΧε͠ ͨݴޠɻՄಡੑߴ͍ɻ

Slide 49

Slide 49 text

Rubyͷޮ༻ “Ruby͸ΩϝΔͱ ؾ͍͍࣋ͪ” (Matz)

Slide 50

Slide 50 text

”Ruby͸ਓ༷͕ؒؾ෼ Α͘ϓϩάϥϛϯά͢ ΔͨΊͷݴޠ” (Matz)

Slide 51

Slide 51 text

For whom we write code? RubyΛ࢖ͬͯ஻ͬͯΔ ૬ख͸ύιίϯ͡Όͳ ͍ɻਓؒͩɻ

Slide 52

Slide 52 text

We’re talking to humans using Ruby ͜Ε͸RubyistͳΒ ΈΜͳΫϦΞ͍ͯ͠Δ ͱ͜ΖͰ͢ΑͶɻ

Slide 53

Slide 53 text

RubyΛ࢖ͬͯ୭Λؾ࣋ͪྑͤ͘͞Δͷ͔ ✴not only ࣗ෼ ✴Πϯλʔωοτͷ޲ ͜͏Ͱܨ͕Δਓʑ ✴ͭ·Γੈք

Slide 54

Slide 54 text

૬৐ޮՌͰϠό͍͜ͱʹ ҰਓͰΩϝͯؾ͍࣋ͪ ͍΋ͷ͸ɺΈΜͳͰ ϠοͨΒ΋ͬͱ΋ͬͱ ؾ͍͍࣋ͪʂ

Slide 55

Slide 55 text

ੈքதͷΈΜͳ͕ूͬͯRubyΛ࢖ͬ ͯίϛϡχέʔγϣϯ͕ߦΘΕΔ৔ That’s called “the Ruby community”

Slide 56

Slide 56 text

“The Ruby Community”ʹ͓͚ Δ೔ຊਓͷϓϨθϯεෆ଍ GitHubͰ೔ຊਓͷ໊લ Λ໓ଟʹݟͳ͍

Slide 57

Slide 57 text

Ruby Hero Award(স) զΒ͕ʮRuby Heroʯ m_sekiͰ͢Β ϊϛωʔτ΋͞Εͳ͍ ͱ͍͏ݱ࣮

Slide 58

Slide 58 text

೔ຊਓͷϓϨθϯεෆ଍ͷཁҼ ✴஍ཧత৚݅ʁ ✴ݴ༿ͷนʁ

Slide 59

Slide 59 text

஍ཧత৚݅ ؔ܎ͳ͍Αɻ Πϯλʔωοτ ͩ΋Μɻ

Slide 60

Slide 60 text

ݴ༿ͷน ҰॹͩΑɻ Rubyͩ΋Μɻ

Slide 61

Slide 61 text

ͨͿΜ೔ຊਓͷࠃຽੑͷ໰୊ ʮԶͷcoolͳίʔυΛ ݟͯ͘Εʂʯతͳ΍ͭ ͕ۤख

Slide 62

Slide 62 text

ʮ೔ຊਓʯ͕ډͳ͍ ஍ํ֨ࠩͱ͔ Ҏલͷ໰୊

Slide 63

Slide 63 text

೔ຊ͸Rubyޙਐࠃ ౦ژͱ͔ͱͪ͗ͱ͔ ؔ܎ͳ͍

Slide 64

Slide 64 text

Social Coding࣌୅ ஍ํͰRubyΛؤுͬͯ ͍Δօ͞Μʹ͸େ͖ͳ νϟϯεɺ͔΋Ͷɻ

Slide 65

Slide 65 text

ୈ2෦ Social Coding Practices

Slide 66

Slide 66 text

GitΛ஌Δ Practice 0

Slide 67

Slide 67 text

Materials ✴WEB+DB Vol. 50 ಛू2 ✴Git Immersion http://gitimmersion.com ✴Junioຊ ✴GitHub Bootcamp http://help.github.com/ ✴Git Internals http://peepcode.com/products/ git-internals-pdf

Slide 68

Slide 68 text

WEB+DB Vol. 50 ಛू2

Slide 69

Slide 69 text

FAQ Windows?

Slide 70

Slide 70 text

Windows? ࢖Θͳ͍Ͱ͍ͩ͘͞ɻ

Slide 71

Slide 71 text

Practice 1 ଞਓʹಡ·Εͯஏ͔ͣ ͘͠ͳ͍ίϛοτΦϒ δΣΫτΛ࡞Ε

Slide 72

Slide 72 text

ଞਓʹಡ·Εͯஏ͔ͣ͘͠ͳ͍ ίϛοτΦϒδΣΫτΛ࡞Ε ✴ৗʹΞτϛοΫͳίϛοτΛ ৺͕͚Δ ✴ಡऀͷؾ࣋ͪΛߟ͑ͨɺ ਖ਼͍͠ίϛοτίϝϯτΛॻ͘

Slide 73

Slide 73 text

΄Μͱ͏ʹ͋ͬͨ μϝͳίϛοτྫ ✴“various changes” ✴“ xed a bug” ✴“ xes #1326” ✴TL;DR

Slide 74

Slide 74 text

ίϛοτίϝϯτͷॻ͖͔ͨ ✴1ߦ໨: what is this commit? ✴2ߦ໨: ۭߦ ✴3ߦ໨ʙ: details, why, etc.

Slide 75

Slide 75 text

ྑ͍͔΋͠Εͳ͍ίϛοτ “rails g scaffold user name age:integer ...”

Slide 76

Slide 76 text

ྑ͍͔΋͠Εͳ͍ίϛοτ ✴“OMG” ✴“oops!”

Slide 77

Slide 77 text

ιʔγϟϧίʔσΟϯάͷجຊ ϓϩάϥϛϯάͱ͸ ೔ʑͷίϛοτΛ๰͙ ࡞ۀ

Slide 78

Slide 78 text

product = [commit, commit, commit, ...] ϓϩμΫτͳΜ͍ͯ͏ ΋ͷ͸೔ʑͷίϛοτ ͕ੵΈॏͳͬͨ݁Ռͷ ද૚Ͱ͔͠ͳ͍

Slide 79

Slide 79 text

“Commit” matters ͔ͩΒGHͰ͸commit ʹ͸ίϝϯτͰ͖Δ͚ Ͳtreeʹ͸ίϝϯτͰ ͖ͳ͍

Slide 80

Slide 80 text

ࢀߟ https://github.com/ rails/rails/commits

Slide 81

Slide 81 text

ιʔγϟϧίʔσΟϯάͷਅ਷ ͲΕ͚ͩ੣࣮ͳɺ༗ҙ ٛͳίϛοτΦϒδΣ ΫτΛੈͷதʹૹΓग़ ͤΔ͔

Slide 82

Slide 82 text

Practice 2 ਓͷόάΛ௚͢

Slide 83

Slide 83 text

࠷௿ݶͷϚφʔ ✴ਓͷϓϩμΫτΛ࢖ͬ ͯͯόάΛ౿ΜͩΒ௚͢ ✴௚ͨ͠Βupstreamʹ pull request͢Δ

Slide 84

Slide 84 text

ຖ೔࢓ࣄͰRubyॻ͍ͯ Ε͹࠷௿Ͱ΋ि1ճ͸୭ ͔ͷόά౿ΜͰΔ͸ͣ

Slide 85

Slide 85 text

Railsͷ৔߹ http:// contributors.rubyonrail s.org/

Slide 86

Slide 86 text

ਖ΋ੵ΋Ε͹ جຊతʹϋοΫ͢ΔͨΊ ͷϋοΫ͸ͯ͠ͳ͍ɻ࢓ ࣄͰ౿Μͩόάʹύον ౰ͯͯΔ͚ͩɻ

Slide 87

Slide 87 text

͍ͭ΋ݴͬͯ·͕͢ɺ Rails͸όάͷๅݿͳͷͰ ௚͠ͳ͕Β࢖ͬͯͩ͘͞ ͍

Slide 88

Slide 88 text

Practice 3 Sending “pull request”

Slide 89

Slide 89 text

΄Μͱ͏ʹ͋ͬͨ μϝͳpull request https://github.com/ amatsuda/kaminari/ pull/181

Slide 90

Slide 90 text

https://github.com/amatsuda/ kaminari/pull/181 ૬ख͕೔ຊਓͰ΋ӳޠ Ͱॻ͍͍ͯͩ͘͞

Slide 91

Slide 91 text

ӳޠ͕ۤखʁ

Slide 92

Slide 92 text

ӳޠ͕ۤखʁ ษڧ͠Ζ

Slide 93

Slide 93 text

ӳޠ͕ۤखʁ ίʔυͰઆ໌͢Δͱ͍ ͏ςΫχοΫ

Slide 94

Slide 94 text

μϝͳྫ https://github.com/ amatsuda/everywhere/ pull/2

Slide 95

Slide 95 text

https://github.com/amatsuda/ everywhere/pull/2 “If you like this, please merge in.”

Slide 96

Slide 96 text

“If you like this, please merge in.” ͜ΕɺGitHubͱ͍͏ ΞϓϦͷػೳͷઆ໌ Ͱ͢ΑͶɻ

Slide 97

Slide 97 text

ڭ܇ ʮΑΖ͓͘͠ئ͍͠· ͢ʯ͸ཁΓ·ͤΜ Αʔɻ

Slide 98

Slide 98 text

Practice 4 ࣗ෼ͷϓϩμΫτΛ࡞ Δ

Slide 99

Slide 99 text

http://git.io/kaminari Kaminariͷ৔߹

Slide 100

Slide 100 text

Thank you for your +1 <3 <3 <3 1900+ watchers!!

Slide 101

Slide 101 text

Why I made it ✴Rails 3Ͱwill_paginate͕ಈ͔ͳ ͔ͬͨ ✴ࠔͬͨ ✴ιʔεಡΜͰ΋ΧΦεա࣏͗ͯͤ Δؾ͕͠ͳ͍ ✴͠ΐ͏͕ͳ͍͔Β৽͍͠ͷ࡞ͬͨ

Slide 102

Slide 102 text

ެ։ͯ͠Έͨ ΈΜͳࠔͬͯͨΒ͠ ͘ɺΈΜͳ͕ඈͼ͍ͭ ͨ

Slide 103

Slide 103 text

఻೻ܦ࿏ ʮ࡞ͬͨΑʯͬͯtweet ͨ͠ RT @kakutani => ࠃ಺ RT @jmettraux => ւ֎

Slide 104

Slide 104 text

Thank you @jmettraux ͜ͷ৔ΛआΓ͓ͯྱΛ ݴ͍͍ͨ

Slide 105

Slide 105 text

࠷৽࡞ http://git.io/ active_decorator

Slide 106

Slide 106 text

ڭ܇ ࣗ෼͕ඞཁʹ͔ΒΕͯ ࡞ͬͨ΋ͷ͸ΈΜͳ΋ ඞཁͳ͜ͱ͕͋Δɻ

Slide 107

Slide 107 text

μϝͳ(੯͍͠)ྫ ThinReports https:// github.com/thinreports

Slide 108

Slide 108 text

ThinReports @a_matsuda: @thinreports_org ΋͔ͯ͠͠GitHubͰ ιʔε͕ެ։͞Ε͍ͯͳ͔ͬͨΓ͠·͔͢ʁ ↓ ͸͍ɺGitHubͰ͸ͳ͘(ͳΜ͔ࣗલSVN)Ͱެ։ͯ͠· ͢ɻͰ͕͢ɺݱࡏGitHubʹϛϥʔ͠Α͏ͱըࡦதͰ͢ɻ ↓ ThinReports ͸ɺͦͷશͯͷιʔείʔυΛެ։͍ͯ͠ ·͢ɻιʔείʔυ͸ϝΠϯͷ Subversion ϦϙδτϦ ʹՃ͑ͯ GitHub ʹ΋ϛϥʔͱͯ͠ެ։͍ͯ͠·͢ɻ

Slide 109

Slide 109 text

ࠓ͔ΒΦʔϓϯιʔε΍Δͷʹ ࣗલSVNཁΒͳ͘ͳ͍ʁ ๭ruby-lang͡Ό ͋Δ·͍͠

Slide 110

Slide 110 text

μϝͳ(੯͍͠)ྫ CastOff https://github.com/ soba1104/CastOff

Slide 111

Slide 111 text

Practice 5 ஥ؒΛݟ͚ͭΖ

Slide 112

Slide 112 text

hocus_pocusͷ৔߹ http://git.io/hp

Slide 113

Slide 113 text

͋Δ೔GHʹDM͕ “colaborating with hocus_pocus” by @kurko

Slide 114

Slide 114 text

“colaborating with hocus_pocus” ✴஍ٿͷཪଆ͔Β ✴໘ࣝ͸ͳ͍ ✴ख఻͍͍ͨʂ ✴ςετॻ͘Αʂ ✴υΩϡϝϯτॻ͘Αʂ

Slide 115

Slide 115 text

So, I gave him a commit right Stay tuned, and see how we work together!

Slide 116

Slide 116 text

ڭ܇ Πϯλʔωοτ͍͢͝

Slide 117

Slide 117 text

Practice 6 meet the people

Slide 118

Slide 118 text

RubyKaigi “RubyձٞͰ֎ࠃͷrubyistsͱ೔ຊͷ rubyists͸ྑ͍ਓؒؔ܎ΛੜΈग़ͤΔ ͱࢥ͏ɻͦΕͰɺདྷ೥ͷRubyձٞ͸ ͳ͍͔Β൵͍͠ɻ” https://twitter.com/#!/ takoyakikamen/status/ 142439088052649985

Slide 119

Slide 119 text

RubyConf ೔ຊਓ΋͍ͬͺ͍Ͱ ҆৺

Slide 120

Slide 120 text

RailsConf ✴RubyHero͕͏͡Ό͏ ͡Ό ✴RailsϓϩάϥϚʔͳΒ RubyConfΑΓָ͍͠͸ͣ

Slide 121

Slide 121 text

Conclusion

Slide 122

Slide 122 text

Why Ruby? ✴designed for Humans ✴ΈΜͳͰΩϝΔͱ ؾ࣋ͪྑ͍

Slide 123

Slide 123 text

Practices Hack Ruby and spread your commits!!