@ e l e q u g i t h u b . c o m / e l e n a E l e n a W i l l i a m s D j a n g o W e b D e v e l o p e r D j a n g o N e w s P o d c a s t C a n b e r r a P y t h o n U G P e r t h D j a n g o U G D j a n g o C o n A U I n t e r n a t i o n a l P e r s o n o f M y s t e r y N o t i m e !
"INVENTED" IN A BOARDROOM IN 1998 Term "Free" implicitly threatening to them. "OPEN SOURCE" P u b l i c , " o p e n " s o u r c e , s u c h a s a n e w s p a p e r / p h o n e b o o k
fixed in any tangible medium “ ” creator of a creative expression “ ” J u r i s d i c t i o n s : r u l e s s a m e , e n f o r c e m e n t v a r i e s . 1 7 U S C § 1 0 2 F r a n k S i l e r " C o p y r i g h t a n d Y o u " P y C o n 2 0 1 3
Offsets Copy"rights" as "Freedoms (and other stuff) 63 Recognised Licenses GPL and LGPL; Apache License; BSD; MIT License; Mozilla Public License 2.0; OPEN SOFTWARE INITIATIVE + 2 8 r e j e c t e d l i c e n s e s .
Wait: Am I the Copyright Holder? At what point could you re-license Windows? Your own script?: Yes! A framework specific plugin?: .. maybe DERIVED WORKS " C O M P 8 4 4 0 : F O S S a n d t h e L a w "
15% of all repositories had license files (ie: 85% are not FOSS) GITHUB PROJECTS WITH LICENSES " a l l t h e f r u i t s i n t h e f o r e s t a r e p o i s o n o u s "
Would you remember to consider everything? Limitation of Liability Disclaim Warranty (or you can still be sued) USE AN OSI LICENSE C a r l w i l l b e t a l k i n g w h i c h l i c e n c e t o c h o o s e a f t e r m e .
Copyright (C) Andrew Tridgell 1992. “ Permission to use, copy and distribute this software is given to anyone who wants to, for NON-PROFIT only. You may not charge for this software or any derivatives of it without first contacting the Author. D o n ' t w r i t e y o u r o w n : " C O M P 8 4 4 0 : L i c e n s i n g " ( 3 m i n ) 1 8 y e a r s l a t e r .
Software Freedom Law Centre Software Freedom Conservancy Free Software Foundation (FSF) Electronic Frontier Foundation (EFF) Creative Commons, QuestionCopyright, GrokLaw MODERN HEROES W e n e e d m o r e t e c h n i c a l l a w y e r s .
Pretty much anything anyone ever does is for this, our brains are wired this way. Recognition TO FEEL A SENSE OF CONNECTION M e e t l i k e - m i n d e d p e o p l e .
"SKILL UP" HOW TO BE THE "BEST" Try things don't do "during the day" Pursue Perfection BEST SCHOOL D o c o o l t h i n g s w i t h p e o p l e b e t t e r t h a n y o u .
"Make the world a better place." Moral values Democracy/Meritocracy But not everyone! ETHICS AND ALTRUISM N o t c o o l t o t a l k a b o u t i n o l d - s k o o l p r o j e c t s .
How big is the project? How technical and serious is the project? What is its scope? KINDS OF PROJECTS C a n ' t i n d e p e n d e n t l y d e r i v e t h i s s t u f f .
How many people are involved? What clear roles are defined? ~ BDFL/s ~ Release Manager ~ Core Developers ~ Governance Structure/Software Foundation KINDS OF PROJECTS
Very tiny number of famous projects need: highly skilled, specific help. Vast majority of projects need: all the help in the world. VERY BIG AND VERY SMALL
What's your interest? What's your strength? What skill do you currently want to work on? What problem to you want to solve? What do you do in your spare time? weird form of teamwork P e r s o n a l n e e d / " S c r a t c h i n g y o u r o w n i t c h "
Learn to Look for ways you can help. If you have the right attitude interesting problems will find you. THINK LIKE A CONTRIBUTOR “ Lesson #4 The Cathedral and the Bazaar G o b e y o n d b e i n g a P a s s i v e U s e r
Details, details, details Isolate, replicate and report bugs properly. Read and understand documentation THINK LIKE A CONTRIBUTOR (spelling, cruft, etc). When you find bugs: (for clarity and coherence). R e m e m b e r : Y o u ' r e c o n t r i b u t i n g e f f o r t , i t t a k e s e n e r g y .
#1 Seek/Find/Reach out notice itch find code (eyeball community) #2 Do your thing fork, clone poke around code (grep, code, etc) commit, push (to your version) #3 Send back your work pull-request (comment/email)
For your first commit: Punch your weight Play to your strengths Have realistic expectations Talk to the project! MY FIRST CONTRIBUTION F i r s t t i m e : L i k e d i n n e r p a r t i e s a n d m a r a t h o n s d o n ' t a t t e m p t s o m e t h i n g y o u ' v e n e v e r d o n e b e f o r e .
Well known projects have: serious, dedicated, committed, professional people working on them. T h e s e p e o p l e h a v e t a k e n s e r i o u s t i m e a n d e f f o r t .
"Ecosystem" around big projects ~ Work up ranks (hard work over long time). ~ Make plugins. ~ Be a good "Cultural fit". CONCEPT OF "CORE" T r u s t w o r t h y c o m m i t t e r s a r e a v e r y l i m i t e d r e s o u r c e
CONFERENCE SPRINTS! Tools/projects you use. Projects people you know are working on. Projects within your "domain". "Learn to look" redux FINDING PROJECTS A f t e r t h e c l o s i n g a d d r e s s i n a b o u t 3 h o u r s .
Spend most your time: Reading Code Fixing Testing Maintaining Documenting AS A CODER I t ' s n o t a l l a b o u t t h e u b e r - e g o c o m m i t s .
(Stable/Working) > (your Ego) Expect to get Rejection but playful, friendly, caring rejection. Aspiring to Concensus-Based Perfection (rather than minimum viable product) HOW FOSS IS DIFFERENT P a r t i c u l a r l y i n f a m o u s p r o j e c t s : f r e e ⊄ i d e a l
Learn to take "feedback" (ie criticism) Accepting criticism is actually a skill. YOU ARE NOT YOUR CODE. Development is a continuum. HOW FOSS IS DIFFERENT G i v i n g g o o d c o n s t r u c t i v e c r i t i c i s m i s a r e a l l y h a r d s k i l l .
My patch is amazing accept it now. ✗ Who is this guy? Do you think this patch is OK? ✓ OMG, God wrote this patch. BE OVERLY MODEST " c o m p l e t e l y a n d s e l f - d e p r e c a t i n g l y t r u t h f u l "
You are Here by Choice Engage Socially You are statistically more likely to stay involved with the project for longer. HOW FOSS IS DIFFERENT I R C , E m a i l , S p r i n t s , U s e r G r o u p s , C o n f e r e n c e
Ask your employer! Give back donate some of your time to the projects you use at work. Openly License your internal packages/projects. THINGS YOU CAN DO S o m e o f t h e s e k i n d s o f p r o j e c t s c a n b e s u c c e s s f u l .
Code Review (learning) Every project needs: Designers, Content makers, Writers Translations! Many kinds of unusual task! AS A NON-CODER A l l t h e s e t h i n g s t a k e t r e m e n d o u s t a l e n t a n d e f f o r t .
Be Modest and be OK with Yourself Be confident you can do something they can't. Beware of the gaping holes in their knowledge outside code and be gentle about this. AS A NON-CODER P r o g r a m m e r s a r e n ' t v e r y s m a r t , t h e y w i l l m i r r o r : i f y o u ' r e c o m f o r t a b l e t h e y w i l l b e .
LEARN TO USE GITHUB Be comfortable with how to make contributions and everything else will follow. IF YOU ARE NOT A CODER T h i s i s t h e 2 0 1 4 a d v i c e .
For the love of humanity ... Ensure It’s Possible to Run/Install! INSTALLATION AND DEPENDENCIES F o r t u n a t e l y w e a l l u s e v i r t u a l e n v i r o n m e n t s .
"Advertising" helps. Maintenance and care helps. Enough code to convince potential co-developers. FIRST TIME?: DON'T EXPECT CONTRIBUTORS " p l a u s i b l e p r o m i s e "
Don't Automatically Reject/Revert Don't let people find out through an automated system. Drop a quick note, there's usually a reason. H u m a n s h a t e r e j e c t i o n , c h i p s a w a y a t y o u r s o u l .
Never Know Who's Watching You probably have quality sleepers/lurkers. You will never see contribution from people you (or your community's) behavior turns away. ALWAYS BE CORDIAL
State It Up front State as Simply as Possible brief, short, to the point, concise, succint summary, pithy, crisp, incisive ASK/EXPLAIN: BE TERSE “ ” N o f l u f f y l a n g u a g e , n o b i g e x p l a n a t i o n . B e c o r d i a l b u t j u s t g e t t o t h e c o r e o f i t .
Do What You Say You're Going to Do If you can’t: Communicate! FOSS people are spectacularly understanding. DON'T SPEAK UP, if you're not "already there". SET EXPECTATIONS 1 8 %
Don’t agonise (spare yourself pain!) Experienced people often can see/feel you struggling . ASK! (but will be polite) In short term: it may be intimidating to ask In medium term: you're learning faster T h e y k n o w t h e f e e l b e c a u s e t h e y ' v e b e e n t h e r e .
Everyone does. Everyone is about most things. The "best" leverage On feeling stupid: (and are usually very humble). SAYING: I DON’T KNOW N o b e l P r i z e 1 9 9 6 " B u c k m i n s t e r f u l l e r e n e "
Rule of Thumb: If you're stuck for 1⁄2 hour go to: IRC, mailing lists, IM, etc ASK! " C o n f e s s i o n s o f J o e D e v e l o p e r " @ p y d a n n y
Decisions are made by the people who show up. User Groups, Hackerspaces, Conferences IRC, Email Lists TURN UP “ ” B o t h O n l i n e a n d O f f l i n e
Don't Criticise Technical Fixes/Solutions that are Currently Working Rough concensus, running code. ON EACH OTHER'S TEAM “ ” U n l e s s y o u h a v e a p a t c h a c t u a l l y d e l i v e r e d . E v e n t h e n b e n i c e .
Don't Criticise other FOSS Projects ... without contacting the project first. Send an email or submit a ticket. Pull up anyone else you see doing this. ON EACH OTHER'S TEAM S a v e i t f o r t h e p r o p r i e t a r y w o r l d .
All mistakes will eventually be washed clean by time and entropy. Communities are very robust. DON’T GET DISHEARTENED N o b o d y c a r e s h o w m a n y t i m e s y o u f a l l d o w n , O N E f e w e r t h a n t h e t i m e s y o u g e t u p a l l t h a t m a t t e r s .