Slide 1

Slide 1 text

‘ProTalking’ Your Way Into ! Open Source @michellesanver #CommunityWorks

Slide 2

Slide 2 text

@michellesanver #CommunityWorks Who are you?

Slide 3

Slide 3 text

Contribute to *this* talk @michellesanver #CommunityWorks

Slide 4

Slide 4 text

“The promise of open source is better quality, higher reliability, more flexibility, lower cost, and an end to predatory vendor lock-in.” - opensource.org @michellesanver #CommunityWorks

Slide 5

Slide 5 text

Better Quality @michellesanver #CommunityWorks

Slide 6

Slide 6 text

Higher Reliability @michellesanver #CommunityWorks

Slide 7

Slide 7 text

More Flexibility @michellesanver #CommunityWorks

Slide 8

Slide 8 text

Lower Cost @michellesanver #CommunityWorks

Slide 9

Slide 9 text

End to predatory vendor lock-in @michellesanver #CommunityWorks

Slide 10

Slide 10 text

@michellesanver #CommunityWorks Convinced Yet?

Slide 11

Slide 11 text

Who I was @michellesanver #CommunityWorks Storytime

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

If I got enough nutritional value from code… ! I would eat that and nothing else. @michellesanver #CommunityWorks Who I was

Slide 14

Slide 14 text

But I would never share my food. @michellesanver #CommunityWorks Who I was

Slide 15

Slide 15 text

Because if I would… @michellesanver #CommunityWorks Who I was

Slide 16

Slide 16 text

@michellesanver #CommunityWorks

Slide 17

Slide 17 text

Made websites under a nickname… @michellesanver #CommunityWorks Who I was

Slide 18

Slide 18 text

No portfolio: Unemployable @michellesanver #CommunityWorks Who I was

Slide 19

Slide 19 text

So… I started my own company! (Unsuccessfully) @michellesanver #CommunityWorks Who I was

Slide 20

Slide 20 text

I had *NO* code confidence @michellesanver #CommunityWorks Who I was

Slide 21

Slide 21 text

@michellesanver #CommunityWorks Why I wanted to contribute

Slide 22

Slide 22 text

@michellesanver #CommunityWorks I felt ashamed for *not* doing it Why I wanted to contribute

Slide 23

Slide 23 text

@michellesanver #CommunityWorks I found a cool project, I wanted to help them improve. Why I wanted to contribute

Slide 24

Slide 24 text

@michellesanver #CommunityWorks The Cool Project

Slide 25

Slide 25 text

ProTalk.ME @michellesanver #CommunityWorks End to predatory vendor lock-in

Slide 26

Slide 26 text

Videos about PHP!! In fact.... If you want to see an earlier version of this talk @michellesanver #CommunityWorks End to predatory vendor lock-in

Slide 27

Slide 27 text

What are your friends doing? @michellesanver #CommunityWorks Choosing a project

Slide 28

Slide 28 text

@michellesanver #CommunityWorks

Slide 29

Slide 29 text

Lineke’s

Slide 30

Slide 30 text

@michellesanver #CommunityWorks Found a bug? Fix it! Choosing a project

Slide 31

Slide 31 text

@michellesanver #CommunityWorks Improve what you already use Choosing a project

Slide 32

Slide 32 text

Ready to change the world? https://www.codemontage.com {code} montage empowers coders to improve their impact on the world. @michellesanver #CommunityWorks Choosing a project

Slide 33

Slide 33 text

@michellesanver #CommunityWorks

Slide 34

Slide 34 text

@michellesanver #CommunityWorks We all had them… Obstacles

Slide 35

Slide 35 text

Obstacles It was a tie. ! 1) Fear, that I really had no clue what I was doing and people were going to make fun of me.
 
 2) Finding something to do! 
 And the first one never really went away… I still worry when I contribute to things in say, python, or javascript, or something other than PHP where people know me. @michellesanver #CommunityWorks Obstacles Davey Shafik

Slide 36

Slide 36 text

Obstacles Honestly, I just didn't realise my efforts would be useful or welcome. ! It was only because I was deeply into a tool (joind.in of course!) that I eventually got told to fix some things myself, as a speaker and a conference organiser, I was just nagging Chris far too much. I was a project lead I think before I contributed at all to any other project, so I was a pretty slow starter! ! Now I just assume everyone appreciates the effort even if I'm doing it wrong, and I get in! @michellesanver #CommunityWorks Lorna Mitchell

Slide 37

Slide 37 text

I'm not 100% sure when my first (open source) contribution took place.I think it was around 1997-1998, and it probably was either some small things inside the Linux kernel. ! The biggest issue for (starting) contributors I think is they are overwhelmed by the code and current userbase. It's hard to find a place in such a group, and even though most of them would be perfectly capable of contributing, they won't because of fear of rejection, mockery etc. @michellesanver #CommunityWorks Obstacles Joshua Thijssen

Slide 38

Slide 38 text

My FIRST hurdle was having too many hobbies and not wanting to just do it. As a hobby. ! SECOND hurdle. Was trying to convince NASA, who I worked for. To allow me to open source some projects I'd created there. And failed. ! THIRD hurdle, was trying to contribute to OSS projects. While already now a senior programmer with a decade+ of experience. Yet because I had no OSS-karma. No one wanted my code, or to trust me. " @michellesanver #CommunityWorks Obstacles Eli White

Slide 39

Slide 39 text

When I contributed to an open source project for the first time, the biggest obstacle for me was getting over my fear of doing something wrong and being publicly shamed. " ! Actually, that's not true. That was the biggest obstacle when I wanted to contribute to an open source project for the second time. When I first tried to contribute to an open source project, I was full of excitement and jumped right in. My submission was not accepted, which I fully expected because I was new to the project. ! What I did not expect was that instead of constructive criticism or a "thanks anyway, but no", the response I received was rude and insulting. I did not contribute to another project for a year and a half after that for fear of being ridiculed again. Thanks to a very supportive network of friends in the PHP community, though, I was able to overcome my fear and am back to contributing where I can." @michellesanver #CommunityWorks Obstacles Beth Tucker Long

Slide 40

Slide 40 text

Technology & Fear of public ridicule @michellesanver #CommunityWorks Obstacles

Slide 41

Slide 41 text

@michellesanver #CommunityWorks Obstacle: New Technology

Slide 42

Slide 42 text

A new framework @michellesanver #CommunityWorks Obstacle: Symfony2

Slide 43

Slide 43 text

@michellesanver #CommunityWorks Technology: Twig

Slide 44

Slide 44 text

@michellesanver #CommunityWorks Can *not* live without it, seriously! Technology: Composer

Slide 45

Slide 45 text

@michellesanver #CommunityWorks When someone else does the setup… It makes my life easier. Technology: Vagrant

Slide 46

Slide 46 text

@michellesanver #CommunityWorks 192.168.13.37 omnomhub.dev Add the host to your hosts file Technology: Vagrant

Slide 47

Slide 47 text

@michellesanver #CommunityWorks $ vagrant up Technology: Vagrant

Slide 48

Slide 48 text

@michellesanver #CommunityWorks Technology: Vagrant! Watch the magic happen

Slide 49

Slide 49 text

@michellesanver #CommunityWorks GitHub GUI client GitHub

Slide 50

Slide 50 text

@michellesanver #CommunityWorks

Slide 51

Slide 51 text

BOO!! :D @michellesanver #CommunityWorks

Slide 52

Slide 52 text

Don’t worry and start doing git! :) @michellesanver #CommunityWorks Git

Slide 53

Slide 53 text

I had some obstacles… @michellesanver #CommunityWorks Git

Slide 54

Slide 54 text

But… They don’t have to know. @michellesanver #CommunityWorks Git

Slide 55

Slide 55 text

Amending @michellesanver #CommunityWorks $ git commit -m 'initial commit' $ git add forgotten.php $ git commit --amend Git

Slide 56

Slide 56 text

@michellesanver #CommunityWorks $ git remote add upstream https://github.com/protalk/protalk $ git fetch upstream $ git merge upstream/master Keep yourself updated Git

Slide 57

Slide 57 text

You *can* change anything.! Don’t worry, just keep doin’ git! @michellesanver #CommunityWorks Git

Slide 58

Slide 58 text

git help, config, and init.! remote, fetch, pull, let’s edit.! diff, add, status, commit. you’re doin’ git.! ! log, branch, checkout, that’s it!! checkout, merge, rebase, don’t quit.! clean, reset, tag, push those bits! you’re doin’ git!! ! fork and clone all the repos you know,! patches and pull requests, you’ll steal the git show.! you’re doin’ git. you’re doing it!! check git blame and see your username.! hope you ran the tests before your commit,! or other devs will think you’re an idiot.! you’re doin’ git. (x4)! ! Exit. @michellesanver #CommunityWorks You're Doin' Git" (c) 2013 Jeremy C. Lindblom

Slide 59

Slide 59 text

A very cool interactive tutorial! @michellesanver #CommunityWorks try.github.io

Slide 60

Slide 60 text

A very cool interactive tutorial! @michellesanver #CommunityWorks

Slide 61

Slide 61 text

http://try.github.io! http://gitimmersion.com! http://book.git-scm.com @michellesanver #CommunityWorks Git: Resources

Slide 62

Slide 62 text

@michellesanver #CommunityWorks https://github.com/github/hub Git + Hub = Love

Slide 63

Slide 63 text

@michellesanver #CommunityWorks https://github.com/github/hub Git + Hub = Love Git with Github superpowers!

Slide 64

Slide 64 text

@michellesanver #CommunityWorks $ git remote add protalk Git + Hub = Love

Slide 65

Slide 65 text

@michellesanver #CommunityWorks $ git pull-request Git + Hub = Love

Slide 66

Slide 66 text

@michellesanver #CommunityWorks $ git browse Git + Hub = Love

Slide 67

Slide 67 text

@michellesanver #CommunityWorks From clone to code review The Github Workflow

Slide 68

Slide 68 text

@michellesanver #CommunityWorks Fork It The Github Workflow

Slide 69

Slide 69 text

@michellesanver

Slide 70

Slide 70 text

@michellesanver

Slide 71

Slide 71 text

@michellesanver #CommunityWorks Clone It The Github Workflow

Slide 72

Slide 72 text

@michellesanver

Slide 73

Slide 73 text

@michellesanver

Slide 74

Slide 74 text

@michellesanver #CommunityWorks Do you really want to do this… ?! The Codebase

Slide 75

Slide 75 text

@michellesanver #CommunityWorks Follow them! Coding Guidelines

Slide 76

Slide 76 text

@michellesanver #CommunityWorks Usually tells you how to contribute The Contribute File

Slide 77

Slide 77 text

@michellesanver #CommunityWorks *Actually* read the readme Readme

Slide 78

Slide 78 text

@michellesanver #CommunityWorks Run Them! Tests?

Slide 79

Slide 79 text

@michellesanver #CommunityWorks Communicate Before You Code Hiiiiiiiii!!!!

Slide 80

Slide 80 text

@michellesanver #CommunityWorks Pick it or make it. The GitHub Issuetracker

Slide 81

Slide 81 text

@michellesanver

Slide 82

Slide 82 text

@michellesanver #CommunityWorks Pick an issue The GitHub Issuetracker

Slide 83

Slide 83 text

@michellesanver

Slide 84

Slide 84 text

@michellesanver #CommunityWorks Create an issue The GitHub Issuetracker

Slide 85

Slide 85 text

@michellesanver

Slide 86

Slide 86 text

@michellesanver

Slide 87

Slide 87 text

@michellesanver #CommunityWorks You know how to code, right!?! If not learn it, it’s not that hard ;) Make Your Changes

Slide 88

Slide 88 text

@michellesanver #CommunityWorks Push it! (Just push it, push it)

Slide 89

Slide 89 text

@michellesanver #CommunityWorks $ git push (Or just commit it in the GitHub gui client) Push it! (Push it real good)

Slide 90

Slide 90 text

@michellesanver #CommunityWorks Time to show the world! (Except those poor sods without Internet) The Pull Request

Slide 91

Slide 91 text

@michellesanver #CommunityWorks Don’t worry! (Be happy) The Pull Request

Slide 92

Slide 92 text

@michellesanver #CommunityWorks It’s just a button! (And a form…) The Pull Request

Slide 93

Slide 93 text

@michellesanver

Slide 94

Slide 94 text

@michellesanver

Slide 95

Slide 95 text

@michellesanver #CommunityWorks Linking to the issuetracker! #1337 ! close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved The Pull Request

Slide 96

Slide 96 text

@michellesanver #CommunityWorks It’s constructive criticism Code Review

Slide 97

Slide 97 text

@michellesanver #CommunityWorks Correct or discuss Code Review

Slide 98

Slide 98 text

@michellesanver #CommunityWorks You learn so much! Code Review

Slide 99

Slide 99 text

@michellesanver #CommunityWorks And if there are trolls... Code Review

Slide 100

Slide 100 text

@michellesanver #CommunityWorks Trolls can be cute too! Code Review

Slide 101

Slide 101 text

Getting rid of my fear… @michellesanver #CommunityWorks Obstacles: The Fear

Slide 102

Slide 102 text

Obstacles: The Fear ! Conferences @michellesanver #CommunityWorks http://joind.in http://callingallpapers.com http://php.net/conferences

Slide 103

Slide 103 text

@michellesanver #CommunityWorks Obstacles: The Fear ! User Groups

Slide 104

Slide 104 text

@michellesanver #CommunityWorks IRC #phpc #phpmentoring #phpwomen http://freenode.net Obstacles: The Fear

Slide 105

Slide 105 text

@michellesanver #CommunityWorks http://phpmentoring.org Matthew Turland @elazar Mentoring

Slide 106

Slide 106 text

@michellesanver #CommunityWorks Rafael Dohms @rdohms & Davey Shafik @dshafik Mentoring

Slide 107

Slide 107 text

@michellesanver #CommunityWorks Lineke Kerckhoffs @the_linie Mentoring

Slide 108

Slide 108 text

@michellesanver #CommunityWorks Igor Wiedler @igorwhiletrue Mentoring

Slide 109

Slide 109 text

@michellesanver #CommunityWorks http://phpmentoring.org Get a mentor… Or 5 Obstacles: The Fear

Slide 110

Slide 110 text

@michellesanver #CommunityWorks Friends

Slide 111

Slide 111 text

No content

Slide 112

Slide 112 text

No content

Slide 113

Slide 113 text

Still code passionate @michellesanver #CommunityWorks Who I am now

Slide 114

Slide 114 text

No content

Slide 115

Slide 115 text

Now… A conference addict @michellesanver #CommunityWorks Who I am now

Slide 116

Slide 116 text

A speaker @michellesanver #CommunityWorks Who I am now

Slide 117

Slide 117 text

Not afraid to contribute @michellesanver #CommunityWorks Who I am now

Slide 118

Slide 118 text

@michellesanver #CommunityWorks Who I am now

Slide 119

Slide 119 text

All thanks to *YOU* @michellesanver #CommunityWorks Who I am now

Slide 120

Slide 120 text

@michellesanver #CommunityWorks #CommunityWorks

Slide 121

Slide 121 text

Questions… Contributions? @michellesanver #CommunityWorks

Slide 122

Slide 122 text

@michellesanver #CommunityWorks PLZ RATE MY TALK!! ;-)" (Or contribute to joind.in …) ! https://joind.in/10700 Thank you!

Slide 123

Slide 123 text

Share *Your* Experiences