SlideShare a Scribd company logo
Developer
Training
Community dynamics
Outline
 Community communication forums
 How to ask questions that get answers
 Getting patches accepted upstream
 Gaining influence in a project & becoming a
committer/maintainer
Have you ever:
Asked a question on a
mailing list and not had it
answered
Have you ever:
Opened a bug and
wondered why no-one
comments on it for a year
Have you ever:
Submitted a patch, and
waited a year to have it
reviewed
What to do?
Listen for a while
Read mailing list archives
Read community news sites
Read commit logs
Track bugzilla
Build a relationship
Introduce yourself
Start small
Learn tone and style
Infrastructure
Mailing lists
 Archives
 Easier to handle asynchronously
 Easy off-line handling
 Email comes with return address
Forums
 Lower barrier to entry
 Often more focused towards newcomers
 Lower expectation that someone will read a
given message
 Requires internet access and time
IRC
 Real-time communication
 Often unarchived
 “If it didn't happen on the list, it didn't happen”
 Good for high-bandwidth problem-solving
 Good for wasting time
 Bad for keeping community informed
Bugzilla
 Bad for asking questions
 Assumption that reporter has done some work
to verify the bug
 Typically “triaged” before it gets to developer
 Valuable knowledge base
 Good to add proposed solution to bug –
developers are CCed
IM/Jabber
 Typically never used for project work
 Time waster/community building
Twitter/identi.ca/Jaiku
 Potential for broadcast w/ paid team
 Sometimes used for “workstreaming”
 Lack of archived conversation
Wiki
 Collaborative document editing
 Conversations happen in “talk” pages
 Discussions are expected to be short-term, will
be erased when contention is resolved
Source control
 ChangeLog entries/commit comments
 Valuable source of information in case of
regression bugs – and often under-used
 Not a conversation – but definitely
communication
Mailing list etiquette
You are asking lots of people for
their time
Ask in the right place
Check the FAQ
Show people you've tried your best
“I haven't failed, I've found 10000 ways that don't work”
Thomas Edison
Subject: [maemo-developers] Developing virtual keyboard plugin for Maemo 5
Hello All,
I downloaded an example virtual keyboard plugin, built it and install it on
emulator (sbox-FREMANTLE_X86).
I was able to successfully install and modify default plugin using GConf for,
/apps/osso/inputmethod/default-plugins/stylus
/apps/osso/inputmethod/default-plugins/finger
But on loading plugin, it gives error
"undefined symbol: hildon_im_ui_button_set_active"
Following documentation
http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/
Generic_Platform_Components/Extending_Hildon_Input_Methods
says hildon_im_ui_button_set_* APIs are supported. But when verified in header
file hildon-im-ui.h there aren't any of the APIs starting from
hildon_im_ui_button_set_
So does it mean we cannot modify virtual keyboard plugin?
Or are these APIs moved somewhere else?
Please help..
Thanks,
Conventions
A: No.
Q: Should I include quotations after my reply?
Follow list norms for attachments, Reply-to, cross-posting, ...
Don't ask for private replies, or reply off-list
Let people know when the answer helped
Be patient - if you don't get an answer in a reasonable
timeframe, try rephrasing, asking if there's a better forum,
or (re)reading documentation
Conventions (2)
SHOUTING
Configure your email client to post plain text
There is no need to write email like SMSes or tweets
Reference: USENET and Mailing List
posting netiquette
http://linux.sgms-centre.com/misc/netiquette.php
Reference: Producing Open Source
Software: Ch. 6: Communications
http://producingoss.com/en/communications.html
Karl Fogel
Reference: “How to ask questions
the smart way”
http://www.catb.org/~esr/faqs/smart-questions.html
Eric S. Raymond
Counter-example 1
Subject: [MeeGo-dev] Need Help to develop New
application
Hi Friends,
I am new to Meego as well as Symbian.
I am planning to develop a Application which
can Download Video from YouTube or some other
streaming site.
My primary focus it YouTube.
Can some one help me which technology I should
Start With? I am planning to support application
on Symbian as well as Meego.
Thanks,
<new poster>
Counter-example 2
Subject: Re: [Gimp-developer] Tools
On Wed, 2007-03-14 at 12:47 -0700, XXX wrote:
> Hi
>
> I am interested in knowning if Gimp is written in
> C/C++, and which tools are needed to compile, debug,
> and test it?
What about downloading it and checking yourself?
ciao,
--mitch
“What we are, unapologetically, is hostile to people
who seem to be unwilling to think or to do
their own homework before asking questions“
Eric S. Raymond, Asking Smart Questions
Counter-example 3
Subject: [MeeGo-dev] please give the sollution
Dear meego-dev ,
I am trying to compile the alarmd code on arm
architecture, it is giving the following error
*make: *** No rule to make target
`/usr/include/clockd/libtime.h', needed by
`src/clockd_dbus.inc'. Stop.*
i think it is giving that clockd module not
avalaible.
When clockd module will come, please give the reply
for this.
Thanks & Regards,
Jamili Reddy.
Counter-example 4
Subject: [MeeGo-dev] I have a question why is mono
included in meego what legal status prevents its
default include in likes of Fedora.
Does Intel or Nokia have an patent agreement that
protects us downstream with the usage of mono?
What are the limits on that agreement. Is it like
Novell were we cannot legally build mono from source
and ship it and still keep the patent coverage. Heck
with the Novell agreement we have to always get the
mono binary from Novell to be legal. Also Novell
agreement expires in under 3 years time.
Please don't be we are out side the USA so we are
safe. Linux Foundation is inside the USA so has to
obey USA rules.
Really I cannot start handing meego out until I know
if I am legally safe or not...
Counter-example 5
Subject: [MeeGo-dev] 访问我的Netlog个人主页
嗨,
我创建了一个Netlog个人主页,其中包括我的图片、视频、
博客和活动。非常希望邀请你成为我的朋友,一起共享我们的天地。
这需要你先在 Netlog上注册哦!在登录后,
你也可以创建属于自己的个人主页了。
看一看:
http://zh.netlog.com/go/mailurl/-bT0xMTIzNDY5MjMmbD0x
JmdtPTM3JnU9JTJGZ28lMkZyZWdpc3RlciUyRmlkJTNEOTU2MzgyN
jkzJTI2aSUzRHQ5MQ__
祝好,
wangjihong
Counter-example 6
Subject: [MeeGo-dev] developer hardware mobile from nokia needed
Hello
i want a new mobile phone and did therefore a research for the
hardware and operating systems.
IPhone is too expensive and scanning all the environment for wlans.
Android it totally google tracking, but very popular at the moment
with the samsung galaxy i9000
[…]
So the community needs
a) TIME: an early involvement, so this summer
b) HARDWARE: a cheap nokia n900 for 250 euro as a developer version
with meego beta on it in August
c) COMMUNTIY: .deb as installers
d) a Qt 4.7 release with a meego compatible compiler.
[…]
and fifth, intel needs to develop an MeegoPad. So that meego on this
kind of netbook is a competitor of the Ipad.
The N8-01 - or at least the N8-00 with firmware update button, needs
to be present before chrsitmas 2010, and the same for the MeegoPad.
Sixth: The N8 needs wlan Tethering, so that the meegoPads can join the
wlan with any N8 in the room.
Is Tethering in the N8 given like in the Samsung android Galaxy i9000 ?
Any comments?
Counter-example 7
Subject: [MeeGo-dev] Difference between MeeGo and
Android?
So far, what would you say are the main difference
between MeeGo and Android?
What does it do better? And what does it do worse?
Benefits vs. shortcomings?
Just wondering what is your view is if any?
-Tim
Counter-example 8
Subject: [MeeGo-dev] How to build Meego
Hi,
I'm a newbie to Meego.
Does anyone know how to build Meego like Android did?
Steven
------------------------------------------------------------------------
Confidentiality Notice: The information contained in this e-mail and any
accompanying attachment(s) is intended only for the use of the intended
recipient and may be confidential and/or privileged of Neusoft Corporation,
its subsidiaries and/or its affiliates. If any reader of this communication is
not the intended recipient, unauthorized use, forwarding, printing, storing,
disclosure or copying is strictly prohibited, and may be unlawful.If you have
received this communication in error,please immediately notify the sender
by return e-mail, and delete the original message and all copies from your
system. Thank you.
-----------------------------------------------------------------------------
Beware of cultural dissonance
After writing thousands of messages, you will probably find your
style tending toward the terse. This seems to be the norm in
most technical forums, and there's nothing wrong with it per se.
A degree of terseness that would be unacceptable in normal
social interactions is simply the default for free software hackers.
Karl Fogel, Producing Open Source Software
Break
Moving
upstream
One rule:
When in Rome...
Getting patches upstream
 Before you start coding
 Preparing the patch
 Submitting
 Shepherding
 Maintaining
Aside: Why bother?
3 scenarios
 Maintain feature out-of-tree
 Submit feature months after work
 Build feature against upstream and back-port to
your tree
Maintain out-of-tree
 You lose all upstream development
 Substantial merge costs when upgrading
Submit after release
 Substantial revision may be required by
community
 Potential for conflict with other work
 Potential for feature to be rejected out-of-hand
 Continued maintenance work, potential impact
on goodwill
Develop upstream
 Avoid duplication of work
 Increased burden during development process
on developer → potential for schedule slip
 Requires back-porting to stable branch
 Cheapest long-term solution, but there is a
short-term cost
“I skate to where the puck is
going to be, not where it has been.”
Wayne Gretsky
Before you start
 MAINTAINERS, README, HACKING
 git log
 Mailing list archives
 Bug tracker
Before you start
 Propose feature on mailing list
 Design discussion in public (draft spec in wiki,
discussion on mailing list, open bug for feature
request)
 No feedback can mean:
 I'm too busy
 I don't care
 Looks good
 Not worth my time
Preparing your patch
 Publish git tree to allow ongoing review
 Continue to update spec, keep mailing list
copied on design discussion
 For bigger pieces of work, break into
manageable patches (make review easier)
 Ensure your patch is against the right branch to
be accepted!
Respect code conventions
 Indentation
 Header includes
 Use of macros/#ifdef
 Comments/inline docs
 Naming conventions
Preparing your patch
 Fix warnings (with -W), ensure no use of
deprecated symbols, etc.
 Test your code!
 Performance
 Memory usage
 diff -u, or git diff
 Legal review
Submitting
 Post patches to the right place (mailing list,
bugzilla)
 Patches in mailing lists should be plain text,
inline, unless maintainers ask otherwise
 For bug fixes, prepare a second patch for stable
branch
Shepherding
 Remember, no answer can mean:
 I'm too busy
 I don't care
 Looks good
 Not worth my time
Shepherding
 If you get feedback:
 Who is it from? Evaluate reputation
 Do you agree? If not, be prepared for technical
debate
 Revise, repost
 If you don't get feedback:
 Add comment on Bugzilla
 Contact maintainer via IRC or email
 Ping mailing list (remember: be patient)
Shepherding
 Different projects have different numbers of
code reviewers
 Linux Kernel = almost guaranteed swift review
 gnome-desktop/gnome-games = not so much
Shepherding
 Code review can be gladatorial
 Remember, code talks
 Technical criticism can seem rude. Sometimes it
is rude.
 You might receive patches at this stage
Shepherding
http://bugzilla.gnome.org/show_bug.cgi?id=9156
2000-12-18 Daniel Egger <egger@suse.de>
* plug-ins/ifcompose/ifscompose.c:
Added patch from David Neary to fix calulations.
Fixes bug #9156.
2000-12-18 Daniel Egger <egger@suse.de>
* plug-ins/ifcompose/ifscompose.c:
Second attempt from David Neary which should work
better.
Maintaining
 You still own code which is upstream
 Watch for bugs in your code – fixes will be
noticed
 Rinse, repeat
Becoming a committer
“I finally listened to Sebastien Bacher and applied for
GNOME commit rights yesterday, after hassling Seb once
more about committing an approved patch for me.
Surprisingly, it only took some 4 hours until my
application was approved and my account created, wow!
Apparently 71 patches are enough. :-)”
Martin Pitt
http://www.piware.de/2010/01/gnome-commit-powers/
http://live.gnome.org/NewAccounts
Duties of maintainer
 Decides what features & patches get committed
 Sets agenda for project
 Makes releases
Becoming a maintainer
 Level of bar varies from project to project
 Most active developer usually becomes
maintainer (eventually)
 As much social as it is technical
Generally the original author remains
maintainer as long as he is active
in project
Ways to maintainership
 Original author
 Invitation
 Volunteering
 By default
References
The Art of Community
Jono Bacon
Producing Open Source Software
Karl Fogel
How to Participate in the Linux
Community
Jonathan Corbet
Growing community
Infrastructure
Concentrate your community
Get critical mass
Promiscuous
Transparency
Champion a cause – start a movement
Have some fun
Thank you!

More Related Content

What's hot

Social group work principles
Social group work principles Social group work principles
Social group work principles Shaikh Farooqui
 
complete note of Casework
complete note of Caseworkcomplete note of Casework
complete note of Caseworksurendra shah
 
Introduction to Social Work
Introduction to Social WorkIntroduction to Social Work
Introduction to Social WorkJoem Magante
 
Chapter 5: Political Organisation in Anthropology
Chapter 5: Political Organisation in Anthropology Chapter 5: Political Organisation in Anthropology
Chapter 5: Political Organisation in Anthropology Sagar Ibrahim Siyal
 
Philosophy of Human Rights
Philosophy of Human RightsPhilosophy of Human Rights
Philosophy of Human RightsRA Detuya
 
Important people in sociology
Important people in sociologyImportant people in sociology
Important people in sociologyBill Hates
 
Social Dimension - Social Institution
Social Dimension - Social InstitutionSocial Dimension - Social Institution
Social Dimension - Social InstitutionJudy Lou Gumapo
 
“Differential association theory is a part of social learning theory which is...
“Differential association theory is a part of social learning theory which is...“Differential association theory is a part of social learning theory which is...
“Differential association theory is a part of social learning theory which is...Vinaya Joseph
 
Rational Choice Theory
Rational Choice TheoryRational Choice Theory
Rational Choice TheorySatyam Rai
 
Herbert Spencer's Theory of Social Evolution & Organic Analogy
Herbert Spencer's Theory of Social Evolution & Organic AnalogyHerbert Spencer's Theory of Social Evolution & Organic Analogy
Herbert Spencer's Theory of Social Evolution & Organic Analogydebolinaghosh18
 
Introduction to Social Science
Introduction to Social ScienceIntroduction to Social Science
Introduction to Social ScienceSIASDEECONOMICA
 
The philosophical values and foundations of social work
The philosophical values and foundations of social workThe philosophical values and foundations of social work
The philosophical values and foundations of social workShaarotto Yoora
 
Basic concept in sociology - Society
Basic concept in sociology - SocietyBasic concept in sociology - Society
Basic concept in sociology - SocietyZan Ran
 
Participatory development
Participatory developmentParticipatory development
Participatory developmentMarijane Reyes
 

What's hot (20)

Social group work principles
Social group work principles Social group work principles
Social group work principles
 
complete note of Casework
complete note of Caseworkcomplete note of Casework
complete note of Casework
 
Emergence of sociology
Emergence of sociologyEmergence of sociology
Emergence of sociology
 
Symbolic interactionism
Symbolic interactionismSymbolic interactionism
Symbolic interactionism
 
Introduction to Social Work
Introduction to Social WorkIntroduction to Social Work
Introduction to Social Work
 
Chapter 5: Political Organisation in Anthropology
Chapter 5: Political Organisation in Anthropology Chapter 5: Political Organisation in Anthropology
Chapter 5: Political Organisation in Anthropology
 
George Herbert Mead
George Herbert MeadGeorge Herbert Mead
George Herbert Mead
 
Philosophy of Human Rights
Philosophy of Human RightsPhilosophy of Human Rights
Philosophy of Human Rights
 
Important people in sociology
Important people in sociologyImportant people in sociology
Important people in sociology
 
Social Dimension - Social Institution
Social Dimension - Social InstitutionSocial Dimension - Social Institution
Social Dimension - Social Institution
 
“Differential association theory is a part of social learning theory which is...
“Differential association theory is a part of social learning theory which is...“Differential association theory is a part of social learning theory which is...
“Differential association theory is a part of social learning theory which is...
 
Social work...
Social work...Social work...
Social work...
 
Community organization
Community organizationCommunity organization
Community organization
 
Rational Choice Theory
Rational Choice TheoryRational Choice Theory
Rational Choice Theory
 
Herbert Spencer's Theory of Social Evolution & Organic Analogy
Herbert Spencer's Theory of Social Evolution & Organic AnalogyHerbert Spencer's Theory of Social Evolution & Organic Analogy
Herbert Spencer's Theory of Social Evolution & Organic Analogy
 
Introduction to Social Science
Introduction to Social ScienceIntroduction to Social Science
Introduction to Social Science
 
The philosophical values and foundations of social work
The philosophical values and foundations of social workThe philosophical values and foundations of social work
The philosophical values and foundations of social work
 
Basic concept in sociology - Society
Basic concept in sociology - SocietyBasic concept in sociology - Society
Basic concept in sociology - Society
 
Participatory development
Participatory developmentParticipatory development
Participatory development
 
Theories of Social Work
Theories of Social WorkTheories of Social Work
Theories of Social Work
 

Similar to Community dynamics

I want-2-do-project-tell-me-wat-2-do-1
I want-2-do-project-tell-me-wat-2-do-1I want-2-do-project-tell-me-wat-2-do-1
I want-2-do-project-tell-me-wat-2-do-1Abhay Vaish
 
Security panel-western-mass-drupal-camp
Security panel-western-mass-drupal-campSecurity panel-western-mass-drupal-camp
Security panel-western-mass-drupal-campcwworks
 
Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008coniecto
 
PHP SA 2013 - The weak points in our PHP projects
PHP SA 2013 - The weak points in our PHP projectsPHP SA 2013 - The weak points in our PHP projects
PHP SA 2013 - The weak points in our PHP projectsxsist10
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!Peter Hlavaty
 
Tech campmemphis slides_post_session
Tech campmemphis slides_post_sessionTech campmemphis slides_post_session
Tech campmemphis slides_post_sessionStewart Whaley
 
Derby con 2014
Derby con 2014Derby con 2014
Derby con 2014TonikJDK
 
Creating Your Own Personal Learning Network
Creating Your Own Personal Learning NetworkCreating Your Own Personal Learning Network
Creating Your Own Personal Learning NetworkCarl Keller
 
Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008Blogtalk 2008
 
Commit Hooks: the Subtle Hammer
Commit Hooks: the Subtle HammerCommit Hooks: the Subtle Hammer
Commit Hooks: the Subtle HammerBen McGraw
 
Where Can I Get My Computer Questions Answered.pdf
Where Can I Get My Computer Questions Answered.pdfWhere Can I Get My Computer Questions Answered.pdf
Where Can I Get My Computer Questions Answered.pdfMuhammad Waqas
 
Cyber Security Workshop Presentation.pptx
Cyber Security Workshop Presentation.pptxCyber Security Workshop Presentation.pptx
Cyber Security Workshop Presentation.pptxYashSomalkar
 
The D language comes to help
The D language comes to helpThe D language comes to help
The D language comes to helpPVS-Studio
 
The Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The BrowsersThe Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The BrowsersPeter-Paul Koch
 
From TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developerFrom TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developerAlexandro Colorado
 
IRC Guide by Offensive Security
IRC Guide by Offensive SecurityIRC Guide by Offensive Security
IRC Guide by Offensive SecuritySami Brahmi
 

Similar to Community dynamics (20)

I want-2-do-project-tell-me-wat-2-do-1
I want-2-do-project-tell-me-wat-2-do-1I want-2-do-project-tell-me-wat-2-do-1
I want-2-do-project-tell-me-wat-2-do-1
 
Security panel-western-mass-drupal-camp
Security panel-western-mass-drupal-campSecurity panel-western-mass-drupal-camp
Security panel-western-mass-drupal-camp
 
Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008
 
PHP SA 2013 - The weak points in our PHP projects
PHP SA 2013 - The weak points in our PHP projectsPHP SA 2013 - The weak points in our PHP projects
PHP SA 2013 - The weak points in our PHP projects
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
Bgnet a4 2
Bgnet a4 2Bgnet a4 2
Bgnet a4 2
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!
 
Tech campmemphis slides_post_session
Tech campmemphis slides_post_sessionTech campmemphis slides_post_session
Tech campmemphis slides_post_session
 
Code is art
Code is artCode is art
Code is art
 
Hacking For Innovation
Hacking For InnovationHacking For Innovation
Hacking For Innovation
 
Derby con 2014
Derby con 2014Derby con 2014
Derby con 2014
 
Creating Your Own Personal Learning Network
Creating Your Own Personal Learning NetworkCreating Your Own Personal Learning Network
Creating Your Own Personal Learning Network
 
Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008
 
Commit Hooks: the Subtle Hammer
Commit Hooks: the Subtle HammerCommit Hooks: the Subtle Hammer
Commit Hooks: the Subtle Hammer
 
Where Can I Get My Computer Questions Answered.pdf
Where Can I Get My Computer Questions Answered.pdfWhere Can I Get My Computer Questions Answered.pdf
Where Can I Get My Computer Questions Answered.pdf
 
Cyber Security Workshop Presentation.pptx
Cyber Security Workshop Presentation.pptxCyber Security Workshop Presentation.pptx
Cyber Security Workshop Presentation.pptx
 
The D language comes to help
The D language comes to helpThe D language comes to help
The D language comes to help
 
The Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The BrowsersThe Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The Browsers
 
From TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developerFrom TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developer
 
IRC Guide by Offensive Security
IRC Guide by Offensive SecurityIRC Guide by Offensive Security
IRC Guide by Offensive Security
 

More from Dave Neary

Crafting an Open Source Product Strategy
Crafting an Open Source Product StrategyCrafting an Open Source Product Strategy
Crafting an Open Source Product StrategyDave Neary
 
Community catalysts value of open source
Community catalysts   value of open sourceCommunity catalysts   value of open source
Community catalysts value of open sourceDave Neary
 
Crafting an open source product strategy
Crafting an open source product strategyCrafting an open source product strategy
Crafting an open source product strategyDave Neary
 
Open source business models
Open source business modelsOpen source business models
Open source business modelsDave Neary
 
Community Impacts of Legal Decisions
Community Impacts of Legal Decisions Community Impacts of Legal Decisions
Community Impacts of Legal Decisions Dave Neary
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatternsDave Neary
 
Is there a big bang going on?
Is there a big bang going on?Is there a big bang going on?
Is there a big bang going on?Dave Neary
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and OpenstackDave Neary
 
Swimming upstream
Swimming upstreamSwimming upstream
Swimming upstreamDave Neary
 
NFV for beginners
NFV for beginnersNFV for beginners
NFV for beginnersDave Neary
 
Metrics gone bad
Metrics gone badMetrics gone bad
Metrics gone badDave Neary
 
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaSA complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaSDave Neary
 
The Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the pastThe Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the pastDave Neary
 
OpenShift on OpenStack
OpenShift on OpenStackOpenShift on OpenStack
OpenShift on OpenStackDave Neary
 
Growing the next generation of Open Source developers
Growing the next generation of Open Source developersGrowing the next generation of Open Source developers
Growing the next generation of Open Source developersDave Neary
 
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Dave Neary
 
Growing next generation
Growing next generationGrowing next generation
Growing next generationDave Neary
 
Foundations 101
Foundations 101Foundations 101
Foundations 101Dave Neary
 

More from Dave Neary (20)

Crafting an Open Source Product Strategy
Crafting an Open Source Product StrategyCrafting an Open Source Product Strategy
Crafting an Open Source Product Strategy
 
Community catalysts value of open source
Community catalysts   value of open sourceCommunity catalysts   value of open source
Community catalysts value of open source
 
Crafting an open source product strategy
Crafting an open source product strategyCrafting an open source product strategy
Crafting an open source product strategy
 
Open source business models
Open source business modelsOpen source business models
Open source business models
 
Nfv primer v2
Nfv primer v2Nfv primer v2
Nfv primer v2
 
Community Impacts of Legal Decisions
Community Impacts of Legal Decisions Community Impacts of Legal Decisions
Community Impacts of Legal Decisions
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatterns
 
Is there a big bang going on?
Is there a big bang going on?Is there a big bang going on?
Is there a big bang going on?
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and Openstack
 
Swimming upstream
Swimming upstreamSwimming upstream
Swimming upstream
 
NFV for beginners
NFV for beginnersNFV for beginners
NFV for beginners
 
Metrics gone bad
Metrics gone badMetrics gone bad
Metrics gone bad
 
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaSA complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
 
The Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the pastThe Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the past
 
OpenShift on OpenStack
OpenShift on OpenStackOpenShift on OpenStack
OpenShift on OpenStack
 
Growing the next generation of Open Source developers
Growing the next generation of Open Source developersGrowing the next generation of Open Source developers
Growing the next generation of Open Source developers
 
Personas
PersonasPersonas
Personas
 
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
 
Growing next generation
Growing next generationGrowing next generation
Growing next generation
 
Foundations 101
Foundations 101Foundations 101
Foundations 101
 

Recently uploaded

ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdfAhmedHussein950959
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdfKamal Acharya
 
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docxThe Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docxCenterEnamel
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturingssuser0811ec
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdfKamal Acharya
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Krakówbim.edu.pl
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdfPratik Pawar
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxViniHema
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwoodseandesed
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxwendy cai
 
shape functions of 1D and 2 D rectangular elements.pptx
shape functions of 1D and 2 D rectangular elements.pptxshape functions of 1D and 2 D rectangular elements.pptx
shape functions of 1D and 2 D rectangular elements.pptxVishalDeshpande27
 
Scaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageScaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageRCC Institute of Information Technology
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234AafreenAbuthahir2
 
fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionjeevanprasad8
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopEmre Günaydın
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdfKamal Acharya
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdfKamal Acharya
 

Recently uploaded (20)

ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docxThe Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Kraków
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptx
 
shape functions of 1D and 2 D rectangular elements.pptx
shape functions of 1D and 2 D rectangular elements.pptxshape functions of 1D and 2 D rectangular elements.pptx
shape functions of 1D and 2 D rectangular elements.pptx
 
Scaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageScaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltage
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projection
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 

Community dynamics

  • 2. Outline  Community communication forums  How to ask questions that get answers  Getting patches accepted upstream  Gaining influence in a project & becoming a committer/maintainer
  • 3. Have you ever: Asked a question on a mailing list and not had it answered
  • 4. Have you ever: Opened a bug and wondered why no-one comments on it for a year
  • 5. Have you ever: Submitted a patch, and waited a year to have it reviewed
  • 6.
  • 7.
  • 9.
  • 10. Listen for a while Read mailing list archives Read community news sites Read commit logs Track bugzilla
  • 11. Build a relationship Introduce yourself Start small Learn tone and style
  • 13. Mailing lists  Archives  Easier to handle asynchronously  Easy off-line handling  Email comes with return address
  • 14. Forums  Lower barrier to entry  Often more focused towards newcomers  Lower expectation that someone will read a given message  Requires internet access and time
  • 15. IRC  Real-time communication  Often unarchived  “If it didn't happen on the list, it didn't happen”  Good for high-bandwidth problem-solving  Good for wasting time  Bad for keeping community informed
  • 16. Bugzilla  Bad for asking questions  Assumption that reporter has done some work to verify the bug  Typically “triaged” before it gets to developer  Valuable knowledge base  Good to add proposed solution to bug – developers are CCed
  • 17. IM/Jabber  Typically never used for project work  Time waster/community building
  • 18. Twitter/identi.ca/Jaiku  Potential for broadcast w/ paid team  Sometimes used for “workstreaming”  Lack of archived conversation
  • 19. Wiki  Collaborative document editing  Conversations happen in “talk” pages  Discussions are expected to be short-term, will be erased when contention is resolved
  • 20. Source control  ChangeLog entries/commit comments  Valuable source of information in case of regression bugs – and often under-used  Not a conversation – but definitely communication
  • 22. You are asking lots of people for their time
  • 23. Ask in the right place
  • 25. Show people you've tried your best “I haven't failed, I've found 10000 ways that don't work” Thomas Edison
  • 26. Subject: [maemo-developers] Developing virtual keyboard plugin for Maemo 5 Hello All, I downloaded an example virtual keyboard plugin, built it and install it on emulator (sbox-FREMANTLE_X86). I was able to successfully install and modify default plugin using GConf for, /apps/osso/inputmethod/default-plugins/stylus /apps/osso/inputmethod/default-plugins/finger But on loading plugin, it gives error "undefined symbol: hildon_im_ui_button_set_active" Following documentation http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/ Generic_Platform_Components/Extending_Hildon_Input_Methods says hildon_im_ui_button_set_* APIs are supported. But when verified in header file hildon-im-ui.h there aren't any of the APIs starting from hildon_im_ui_button_set_ So does it mean we cannot modify virtual keyboard plugin? Or are these APIs moved somewhere else? Please help.. Thanks,
  • 27. Conventions A: No. Q: Should I include quotations after my reply? Follow list norms for attachments, Reply-to, cross-posting, ... Don't ask for private replies, or reply off-list Let people know when the answer helped Be patient - if you don't get an answer in a reasonable timeframe, try rephrasing, asking if there's a better forum, or (re)reading documentation
  • 28. Conventions (2) SHOUTING Configure your email client to post plain text There is no need to write email like SMSes or tweets
  • 29. Reference: USENET and Mailing List posting netiquette http://linux.sgms-centre.com/misc/netiquette.php
  • 30. Reference: Producing Open Source Software: Ch. 6: Communications http://producingoss.com/en/communications.html Karl Fogel
  • 31. Reference: “How to ask questions the smart way” http://www.catb.org/~esr/faqs/smart-questions.html Eric S. Raymond
  • 33. Subject: [MeeGo-dev] Need Help to develop New application Hi Friends, I am new to Meego as well as Symbian. I am planning to develop a Application which can Download Video from YouTube or some other streaming site. My primary focus it YouTube. Can some one help me which technology I should Start With? I am planning to support application on Symbian as well as Meego. Thanks, <new poster>
  • 35. Subject: Re: [Gimp-developer] Tools On Wed, 2007-03-14 at 12:47 -0700, XXX wrote: > Hi > > I am interested in knowning if Gimp is written in > C/C++, and which tools are needed to compile, debug, > and test it? What about downloading it and checking yourself? ciao, --mitch
  • 36. “What we are, unapologetically, is hostile to people who seem to be unwilling to think or to do their own homework before asking questions“ Eric S. Raymond, Asking Smart Questions
  • 38. Subject: [MeeGo-dev] please give the sollution Dear meego-dev , I am trying to compile the alarmd code on arm architecture, it is giving the following error *make: *** No rule to make target `/usr/include/clockd/libtime.h', needed by `src/clockd_dbus.inc'. Stop.* i think it is giving that clockd module not avalaible. When clockd module will come, please give the reply for this. Thanks & Regards, Jamili Reddy.
  • 40. Subject: [MeeGo-dev] I have a question why is mono included in meego what legal status prevents its default include in likes of Fedora. Does Intel or Nokia have an patent agreement that protects us downstream with the usage of mono? What are the limits on that agreement. Is it like Novell were we cannot legally build mono from source and ship it and still keep the patent coverage. Heck with the Novell agreement we have to always get the mono binary from Novell to be legal. Also Novell agreement expires in under 3 years time. Please don't be we are out side the USA so we are safe. Linux Foundation is inside the USA so has to obey USA rules. Really I cannot start handing meego out until I know if I am legally safe or not...
  • 42. Subject: [MeeGo-dev] 访问我的Netlog个人主页 嗨, 我创建了一个Netlog个人主页,其中包括我的图片、视频、 博客和活动。非常希望邀请你成为我的朋友,一起共享我们的天地。 这需要你先在 Netlog上注册哦!在登录后, 你也可以创建属于自己的个人主页了。 看一看: http://zh.netlog.com/go/mailurl/-bT0xMTIzNDY5MjMmbD0x JmdtPTM3JnU9JTJGZ28lMkZyZWdpc3RlciUyRmlkJTNEOTU2MzgyN jkzJTI2aSUzRHQ5MQ__ 祝好, wangjihong
  • 44. Subject: [MeeGo-dev] developer hardware mobile from nokia needed Hello i want a new mobile phone and did therefore a research for the hardware and operating systems. IPhone is too expensive and scanning all the environment for wlans. Android it totally google tracking, but very popular at the moment with the samsung galaxy i9000 […] So the community needs a) TIME: an early involvement, so this summer b) HARDWARE: a cheap nokia n900 for 250 euro as a developer version with meego beta on it in August c) COMMUNTIY: .deb as installers d) a Qt 4.7 release with a meego compatible compiler. […] and fifth, intel needs to develop an MeegoPad. So that meego on this kind of netbook is a competitor of the Ipad. The N8-01 - or at least the N8-00 with firmware update button, needs to be present before chrsitmas 2010, and the same for the MeegoPad. Sixth: The N8 needs wlan Tethering, so that the meegoPads can join the wlan with any N8 in the room. Is Tethering in the N8 given like in the Samsung android Galaxy i9000 ? Any comments?
  • 46. Subject: [MeeGo-dev] Difference between MeeGo and Android? So far, what would you say are the main difference between MeeGo and Android? What does it do better? And what does it do worse? Benefits vs. shortcomings? Just wondering what is your view is if any? -Tim
  • 48. Subject: [MeeGo-dev] How to build Meego Hi, I'm a newbie to Meego. Does anyone know how to build Meego like Android did? Steven ------------------------------------------------------------------------ Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s) is intended only for the use of the intended recipient and may be confidential and/or privileged of Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is not the intended recipient, unauthorized use, forwarding, printing, storing, disclosure or copying is strictly prohibited, and may be unlawful.If you have received this communication in error,please immediately notify the sender by return e-mail, and delete the original message and all copies from your system. Thank you. -----------------------------------------------------------------------------
  • 49. Beware of cultural dissonance
  • 50.
  • 51. After writing thousands of messages, you will probably find your style tending toward the terse. This seems to be the norm in most technical forums, and there's nothing wrong with it per se. A degree of terseness that would be unacceptable in normal social interactions is simply the default for free software hackers. Karl Fogel, Producing Open Source Software
  • 52. Break
  • 54. One rule: When in Rome...
  • 55. Getting patches upstream  Before you start coding  Preparing the patch  Submitting  Shepherding  Maintaining
  • 57. 3 scenarios  Maintain feature out-of-tree  Submit feature months after work  Build feature against upstream and back-port to your tree
  • 58. Maintain out-of-tree  You lose all upstream development  Substantial merge costs when upgrading
  • 59. Submit after release  Substantial revision may be required by community  Potential for conflict with other work  Potential for feature to be rejected out-of-hand  Continued maintenance work, potential impact on goodwill
  • 60. Develop upstream  Avoid duplication of work  Increased burden during development process on developer → potential for schedule slip  Requires back-porting to stable branch  Cheapest long-term solution, but there is a short-term cost
  • 61. “I skate to where the puck is going to be, not where it has been.” Wayne Gretsky
  • 62. Before you start  MAINTAINERS, README, HACKING  git log  Mailing list archives  Bug tracker
  • 63. Before you start  Propose feature on mailing list  Design discussion in public (draft spec in wiki, discussion on mailing list, open bug for feature request)  No feedback can mean:  I'm too busy  I don't care  Looks good  Not worth my time
  • 64. Preparing your patch  Publish git tree to allow ongoing review  Continue to update spec, keep mailing list copied on design discussion  For bigger pieces of work, break into manageable patches (make review easier)  Ensure your patch is against the right branch to be accepted!
  • 65. Respect code conventions  Indentation  Header includes  Use of macros/#ifdef  Comments/inline docs  Naming conventions
  • 66. Preparing your patch  Fix warnings (with -W), ensure no use of deprecated symbols, etc.  Test your code!  Performance  Memory usage  diff -u, or git diff  Legal review
  • 67. Submitting  Post patches to the right place (mailing list, bugzilla)  Patches in mailing lists should be plain text, inline, unless maintainers ask otherwise  For bug fixes, prepare a second patch for stable branch
  • 68. Shepherding  Remember, no answer can mean:  I'm too busy  I don't care  Looks good  Not worth my time
  • 69. Shepherding  If you get feedback:  Who is it from? Evaluate reputation  Do you agree? If not, be prepared for technical debate  Revise, repost  If you don't get feedback:  Add comment on Bugzilla  Contact maintainer via IRC or email  Ping mailing list (remember: be patient)
  • 70. Shepherding  Different projects have different numbers of code reviewers  Linux Kernel = almost guaranteed swift review  gnome-desktop/gnome-games = not so much
  • 71. Shepherding  Code review can be gladatorial  Remember, code talks  Technical criticism can seem rude. Sometimes it is rude.  You might receive patches at this stage
  • 72. Shepherding http://bugzilla.gnome.org/show_bug.cgi?id=9156 2000-12-18 Daniel Egger <egger@suse.de> * plug-ins/ifcompose/ifscompose.c: Added patch from David Neary to fix calulations. Fixes bug #9156. 2000-12-18 Daniel Egger <egger@suse.de> * plug-ins/ifcompose/ifscompose.c: Second attempt from David Neary which should work better.
  • 73. Maintaining  You still own code which is upstream  Watch for bugs in your code – fixes will be noticed  Rinse, repeat
  • 74. Becoming a committer “I finally listened to Sebastien Bacher and applied for GNOME commit rights yesterday, after hassling Seb once more about committing an approved patch for me. Surprisingly, it only took some 4 hours until my application was approved and my account created, wow! Apparently 71 patches are enough. :-)” Martin Pitt http://www.piware.de/2010/01/gnome-commit-powers/ http://live.gnome.org/NewAccounts
  • 75. Duties of maintainer  Decides what features & patches get committed  Sets agenda for project  Makes releases
  • 76. Becoming a maintainer  Level of bar varies from project to project  Most active developer usually becomes maintainer (eventually)  As much social as it is technical Generally the original author remains maintainer as long as he is active in project
  • 77. Ways to maintainership  Original author  Invitation  Volunteering  By default
  • 78. References The Art of Community Jono Bacon Producing Open Source Software Karl Fogel How to Participate in the Linux Community Jonathan Corbet
  • 83. Champion a cause – start a movement