SlideShare a Scribd company logo
1 of 46
Download to read offline
Everyone wants
(someone else) to do it
Writing documentation for open source software
2
Welcome
Mike Pumphrey
Community Advocate
mike@boundlessgeo.com
github.com/bmmpxf
Open Source Geospatial Foundation
GeoServer CommitterBoundless
Boundless provides geospatial tools and
services for managing data and building
applications.
Projects
OpenGeo Suite
OpenGeo Training
GeoServer
3
Welcome
Jody Garnett
Community Lead
jgarnett@boundlessgeo.com
@jodygarnett
Open Source Geospatial Foundation
OSGeo Incubation Chair
GeoTools Project Officer
Eclipse Foundation
LocationTech Project Steering Committee
LocationTech Technology Project
Boundless
Boundless provides geospatial tools and
services for managing data and building
applications.
Open Source Projects
GeoTools
GeoServer
uDig
Getting Started
4
What we are up against here
• If you spent $30,000 on a software package
– you might spend a week figuring out how it works
• If you spend $0 on an open source project
how much time are you going to spend?
– 5 mins?
– 10 mins?
– 15 mins?
5
Documentation Priorities
• Installation
– Ensure potential users can install your software
• Quick start
– And see their own data
6
Installation
• Get the software installed
• Show each step
– this is used as a sanity check to tell if everything is
going okay
• Do not get distracted by explaining options
– don't waste time
– your software is being evaluated
7
Installation Video?
• Great!
– very friendly
– shows the software working ... providing hope!
• Caution:
– It can be hard to find a video that matches the
version of the software you are using
– Scrubbing a video back and forth to catch a key
installation step is frustrating
• Recommend
– video for promotion showing individual features
– documentation for installation
8
Quickstart!
• Show, do not tell
– Focus on the key "value add" for your software
• Think "internet" attention spans here
– Don't distract with background stories
– Get something on screen

and then explain why it is amazing
9
Stack Exchange?
• Stack exchange is a Q&A site that is popular
with geoserver and geotools users
• It is more an alternative to the user email list
than the documentation
– Questions that get asked repeatedly...

may point out a hole in the documentation?
– Stack Exchange is good at staying current

... but you may be using an old version?
10
Writing Tips and Tricks
11
EASY
• Please do not use the word EASY
– The only that can happen here is to make people
FEEL FRUSTRATED when they have trouble
• They probably are having trouble because
– you wrote this sentence three years ago before
windows 8 confused the start menu?
– Or last month before the start menu came back?
12
SIMPLE or SIMPLY
• Please do not use the word "simple"
– The only thing that can happen is to make people
FEEL STUPID when they do not understand what
you are talking about
• A piece of software on its own is complex
– When combined with other software ... more complex
– When on a future operating system ... more complex
13
14
Easy - sanity check?
Simple - sanity check
15
Setting Expectations
• Focus on getting any content
– Do not let PERFECT be the enemy of GOOD
– do not let GOOD be the benefit of NOTHING
• Do not worry about things like grammer
16
Curation
17
Example: GeoExt Styler
18
Example: GeoFence GUI
19
Example: Complex Features
20
How did this happen?
• Easy to forget about:
– documentation
– quality assurance
• Project has been going a long time
– Developers can 'hope' to get back to something
– Without a champion features get dropped
• Features produced under contract
– Great social pressure to include features in next
release (so team can get paid)
– But risk team moving on to other work

(and assuming a "volunteer" will get to it)
21
What did not work
• Let the community deal with it - wiki!
• GeoTools:
– Gave up on wiki,
– found that jody had written 90% of the wiki
– Code examples especially were out of date causing
more confusion then help
• GeoServer:
• OpenGeo migrated to a fresh set of docs as part of
OpenGeo Suite product initiative
22
What has Worked
• Boundless policy
– a feature is "not DONE until it is documented" !
• Mike
– Ask developer to write the low-level,

and the Mike translates for the world
– Interview the developer and translate the result
• Jody
– Included the cost upfront in GeoTools proposal

( i.e. process “tasks” section )
– write the docs for features that would

otherwise not be merged in
23
Policy Change
• Supported "Extensions" now require
– documentation and QA test coverage
• Change control requests now require:
– Documentation and QA to be included up front!
• Success?
– Our docs now do a much better job of documenting
new features
– Consultants now know what is required up front!

(and communicate to customers?)
– This is a barrier to "casual" drive by GitHub commits
24
GeoServer Documentation Story
• Documentation was originally html!
• Moved from HTML to wiki
– Outreach attempt to community!
– Gradually became out of date
• Moved from wiki to codebase
• Mike volunteer as “editor”
– Set expectations
25
GeoTools Documentation Story
• Started in "docbook"
– XML format of doom!
• Moved to CodeHaus "wiki"
– Wiki's needed an editor to be successful
– After 10 years editor had written 90% of the docs
– vandalism because we cannot have nice things
• Moved to codebase
– Harder for community volunteers than wiki
– But now versioned alongside releases!
– Initial port in "pandoc", then six months to clean up
the mess
26
RST and Sphinx
Migrating from WIKI to CodeBase
27
Sphinx
• Install Python
• easy_instal sphinx
• make html
28
make html
mkdir -p build/html build/doctrees
sphinx-build -b html -d build/doctrees source build/html
Running Sphinx v1.2.2
loading pickled environment... not yet created
building [html]: targets for 438 source files that are out of date
updating environment: 438 added, 0 changed, 0 removed
reading sources... [100%] webadmin/tilecache/layers
...
Build finished. The HTML pages are in build/html.
RST
• Use "Rich Structured Text" wiki syntax
29
Background
==========
Welcome! From all of the GeoServer users and developers, we are happy to
see that you have an interest in contributing to the GeoServer
documentation. Whether it's the fix of a typo or a whole new collection
of pages, all contributions are appreciated. With your help we can make
GeoServer documentation helpful and robust, and thus make GeoServer a
better product.
Writing Documentation
---------------------
GeoServer documentation written in `reStructuredText <http://
docutils.sourceforge.net/rst.html>`_, a lightweight markup syntax, and
built into HTML and PDF content using `Sphinx <http://sphinx.pocoo.org>`_,
a documentation framework written by the developers of Python. In this
way, the documentation could be merged with the source code of GeoServer
...
In-line Code Examples
• This is the "killer feature" for GeoTools
30
Quickstart Application
----------------------
Now that your environment is setup we can put together a simple
Quickstart. This example will display a shapefile on screen.
#. Create the package org.geotools.tutorial.quickstart using your IDE.
#. Create the org.geotools.tutorial.quickstart.Quickstart class using your
IDE.
.. image:: images/class.jpg
:scale: 60
#. Fill in the following code:
.. literalinclude:: /../src/main/java/org/geotools/tutorial/quickstart/
Quickstart.java
:language: java
Quickfix
Edit directly in GitHub
31
Step 1
• Browse the documentation source code
directly on the GitHub website:
– https://github.com/geoserver/geoserver/tree/master/
doc/en
– https://github.com/geoserver/geoserver/tree/master/
doc/es
– https://github.com/geoserver/geoserver/tree/master/
doc/fr
32
Step 2
• Navigate to the file you wish to change and
click the edit icon
33
Step 3
• Use the editor to modify the file
34
Step 4
• Scroll to the bottom of the page, provide a
commit comment and submit.
• GitHub will:
– Create a fork and submit a pull request on your
behalf; or
– Immediately make the change for those with commit
access
35
Style Guide
GeoServer Style Guide
36
Why a Style Guide?
• Help community present a "consistent voice"
when writing documentation
• Additional benefits:
– Can help an editor be fair and consistent
– Provide a link to page of good/bad examples when
reviewing a pull request
37
Be concise
• Documentation should be concise

(and not just a brain dump.)
• Reference material
– Short pages and be easy to refer to
– No scrolling through large volumes of text)
• Tutorials can be longer, depending on scope
• Want to share your thoughts and insights?
– Write a blog post (or twitter for small thoughts)
• Documentation is a manual, not a wiki.
38
Avoid marketing
• Want to showcase a new feature?
– Write an article or a blog post about it.
– If it is necessary to point out a technical benefit of a
feature then do so from a technical standpoint.
• Bad
– Super-overlays are a great way to publish super cool
datasets awesomely in Google Earth!
• Good
– Super-overlays allow you to efficiently publish data
via Google Earth.
39
Be professional
• Avoid the use of slang or “colorful” language:
– The point of a technical document is to be
informative, not to keep the reader amused.
– Avoiding slang helps keep the document accessible
to as large an audience as possible.
• Bad
– Next, fire up whatever tool you use to browse the
web and point it in the direction of ...
• Good
– Next, start your web browser and navigate to ...
40
Use direct commands
• When providing step-by-step instructions,
use direct commands or requests
– Avoid the use of “we” and “let’s”.
• Bad
– Now let’s add a shapefile by ...
• Good
– Add a shapefile by ...
41
Naming Conventions
• Be consistent
• GeoServer uses wikipedia policy:
– Capitalization of page names
– Capitalization of section names
– Verbs like "creating" rather than "create".
– Avoid plurals
42
Translation
43
Tranifex
44
Login and Edit
45
Thanks!

More Related Content

What's hot

Osgeo incubation-2014
Osgeo incubation-2014Osgeo incubation-2014
Osgeo incubation-2014Jody Garnett
 
OSSDN Introduction 06112015
OSSDN Introduction 06112015OSSDN Introduction 06112015
OSSDN Introduction 06112015Rick Bauer
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happenAll Things Open
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...Krishna-Kumar
 
OSGeo Incubation 2014
OSGeo Incubation 2014OSGeo Incubation 2014
OSGeo Incubation 2014Jody Garnett
 
Continuum Analytics and Python
Continuum Analytics and PythonContinuum Analytics and Python
Continuum Analytics and PythonTravis Oliphant
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationFred George
 
Rapid Prototyping HTML5 Applications with Node.js
Rapid Prototyping HTML5 Applications with Node.jsRapid Prototyping HTML5 Applications with Node.js
Rapid Prototyping HTML5 Applications with Node.jsJesse Cravens
 
Community Repositories: Why You Need One for Your Open Source Project
Community Repositories: Why You Need One for Your Open Source ProjectCommunity Repositories: Why You Need One for Your Open Source Project
Community Repositories: Why You Need One for Your Open Source ProjectAll Things Open
 
Open design at large scale
Open design at large scaleOpen design at large scale
Open design at large scaleshykes
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC RiversideMichael Kennedy
 
Programmer Anarchy and Managerless Processes
Programmer Anarchy and Managerless ProcessesProgrammer Anarchy and Managerless Processes
Programmer Anarchy and Managerless ProcessesFred George
 
Docker Deployments
Docker DeploymentsDocker Deployments
Docker DeploymentsDocker, Inc.
 
It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020César Hernández
 
Open Hardware Summit 2014
Open Hardware Summit 2014Open Hardware Summit 2014
Open Hardware Summit 2014Drew Fustini
 
Streaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streamingStreaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streamingAlexandre Gouaillard
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityWeaveworks
 
Open Source Hardware for Good
Open Source Hardware for GoodOpen Source Hardware for Good
Open Source Hardware for GoodDrew Fustini
 
Developing a Community and an Ecosystem with NuGet
Developing a Community and an Ecosystem with NuGetDeveloping a Community and an Ecosystem with NuGet
Developing a Community and an Ecosystem with NuGetPaula Hunter
 
Open Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-VOpen Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-VDrew Fustini
 

What's hot (20)

Osgeo incubation-2014
Osgeo incubation-2014Osgeo incubation-2014
Osgeo incubation-2014
 
OSSDN Introduction 06112015
OSSDN Introduction 06112015OSSDN Introduction 06112015
OSSDN Introduction 06112015
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happen
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...
 
OSGeo Incubation 2014
OSGeo Incubation 2014OSGeo Incubation 2014
OSGeo Incubation 2014
 
Continuum Analytics and Python
Continuum Analytics and PythonContinuum Analytics and Python
Continuum Analytics and Python
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid Innovation
 
Rapid Prototyping HTML5 Applications with Node.js
Rapid Prototyping HTML5 Applications with Node.jsRapid Prototyping HTML5 Applications with Node.js
Rapid Prototyping HTML5 Applications with Node.js
 
Community Repositories: Why You Need One for Your Open Source Project
Community Repositories: Why You Need One for Your Open Source ProjectCommunity Repositories: Why You Need One for Your Open Source Project
Community Repositories: Why You Need One for Your Open Source Project
 
Open design at large scale
Open design at large scaleOpen design at large scale
Open design at large scale
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
Programmer Anarchy and Managerless Processes
Programmer Anarchy and Managerless ProcessesProgrammer Anarchy and Managerless Processes
Programmer Anarchy and Managerless Processes
 
Docker Deployments
Docker DeploymentsDocker Deployments
Docker Deployments
 
It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020
 
Open Hardware Summit 2014
Open Hardware Summit 2014Open Hardware Summit 2014
Open Hardware Summit 2014
 
Streaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streamingStreaming Media West: Webrtc the future of low latency streaming
Streaming Media West: Webrtc the future of low latency streaming
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
 
Open Source Hardware for Good
Open Source Hardware for GoodOpen Source Hardware for Good
Open Source Hardware for Good
 
Developing a Community and an Ecosystem with NuGet
Developing a Community and an Ecosystem with NuGetDeveloping a Community and an Ecosystem with NuGet
Developing a Community and an Ecosystem with NuGet
 
Open Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-VOpen Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-V
 

Viewers also liked

110391-PEV-Brochure-ALL-FINAL
110391-PEV-Brochure-ALL-FINAL110391-PEV-Brochure-ALL-FINAL
110391-PEV-Brochure-ALL-FINALJason Laws, PMP
 
Mobile Web - May 2009
Mobile Web - May 2009Mobile Web - May 2009
Mobile Web - May 2009Johan Voets
 
第2044期
第2044期第2044期
第2044期1111csf
 
Valuations for every conceivable thing...
Valuations for every conceivable thing...Valuations for every conceivable thing...
Valuations for every conceivable thing...rodhyman
 
시마네 사비외국인전형
시마네 사비외국인전형시마네 사비외국인전형
시마네 사비외국인전형guest6ff01c
 
Ace Events profile
Ace Events profileAce Events profile
Ace Events profileLobna Hamada
 
annaervinresume2015
annaervinresume2015annaervinresume2015
annaervinresume2015Anna Ervin
 

Viewers also liked (7)

110391-PEV-Brochure-ALL-FINAL
110391-PEV-Brochure-ALL-FINAL110391-PEV-Brochure-ALL-FINAL
110391-PEV-Brochure-ALL-FINAL
 
Mobile Web - May 2009
Mobile Web - May 2009Mobile Web - May 2009
Mobile Web - May 2009
 
第2044期
第2044期第2044期
第2044期
 
Valuations for every conceivable thing...
Valuations for every conceivable thing...Valuations for every conceivable thing...
Valuations for every conceivable thing...
 
시마네 사비외국인전형
시마네 사비외국인전형시마네 사비외국인전형
시마네 사비외국인전형
 
Ace Events profile
Ace Events profileAce Events profile
Ace Events profile
 
annaervinresume2015
annaervinresume2015annaervinresume2015
annaervinresume2015
 

Similar to Everyone wants (someone else) to do it: writing documentation for open source software.

2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformaticsStephen Turner
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupChris Aniszczyk
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!Pradeep Singh
 
Freifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiFreifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiAnnika Wickert
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye codeKim Moir
 
CPSeis &amp; GeoCraft
CPSeis &amp; GeoCraftCPSeis &amp; GeoCraft
CPSeis &amp; GeoCraftbillmenger
 
Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofMani Sarkar
 
Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Eramartinlippert
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersDeepikaRana30
 
Dutchcontainerdays
DutchcontainerdaysDutchcontainerdays
Dutchcontainerdays4bakker
 
2023-My AI Experience - Colm Dunphy.pdf
2023-My AI Experience - Colm Dunphy.pdf2023-My AI Experience - Colm Dunphy.pdf
2023-My AI Experience - Colm Dunphy.pdfColm Dunphy
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDocker, Inc.
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackBobby DeVeaux, DevOps Consultant
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big companyDocker, Inc.
 
The Next Generation of Social is in a Hangout
The Next Generation of Social is in a HangoutThe Next Generation of Social is in a Hangout
The Next Generation of Social is in a HangoutJonathan Beri
 
Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014Maarten Balliauw
 
The Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsThe Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsBen Hall
 

Similar to Everyone wants (someone else) to do it: writing documentation for open source software. (20)

2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
 
Freifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiFreifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale Jitsi
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
CPSeis &amp; GeoCraft
CPSeis &amp; GeoCraftCPSeis &amp; GeoCraft
CPSeis &amp; GeoCraft
 
Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bof
 
Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Era
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginners
 
Dutchcontainerdays
DutchcontainerdaysDutchcontainerdays
Dutchcontainerdays
 
2023-My AI Experience - Colm Dunphy.pdf
2023-My AI Experience - Colm Dunphy.pdf2023-My AI Experience - Colm Dunphy.pdf
2023-My AI Experience - Colm Dunphy.pdf
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General Session
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big company
 
The Next Generation of Social is in a Hangout
The Next Generation of Social is in a HangoutThe Next Generation of Social is in a Hangout
The Next Generation of Social is in a Hangout
 
Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014
 
The Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsThe Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source Projects
 

More from Jody Garnett

GeoServer Orientation
GeoServer OrientationGeoServer Orientation
GeoServer OrientationJody Garnett
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoJody Garnett
 
Introduction to OSGeo
Introduction to OSGeoIntroduction to OSGeo
Introduction to OSGeoJody Garnett
 
Open Source Procurement
Open Source ProcurementOpen Source Procurement
Open Source ProcurementJody Garnett
 
Java Image Processing for Geospatial Community
Java Image Processing for Geospatial CommunityJava Image Processing for Geospatial Community
Java Image Processing for Geospatial CommunityJody Garnett
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoJody Garnett
 
Open Source is hard, we are here to help!
Open Source is hard, we are here to help!Open Source is hard, we are here to help!
Open Source is hard, we are here to help!Jody Garnett
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers WorkshopJody Garnett
 
GeoServer Ecosystem 2018
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018Jody Garnett
 
State of GeoServer 2.14
State of GeoServer 2.14State of GeoServer 2.14
State of GeoServer 2.14Jody Garnett
 
Working with the OSGeo Community
Working with the OSGeo CommunityWorking with the OSGeo Community
Working with the OSGeo CommunityJody Garnett
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13Jody Garnett
 
Open Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial ApplicationsOpen Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial ApplicationsJody Garnett
 
Map box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayersMap box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayersJody Garnett
 
Quick and easy web maps
Quick and easy web mapsQuick and easy web maps
Quick and easy web mapsJody Garnett
 

More from Jody Garnett (20)

GeoServer Orientation
GeoServer OrientationGeoServer Orientation
GeoServer Orientation
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeo
 
Introduction to OSGeo
Introduction to OSGeoIntroduction to OSGeo
Introduction to OSGeo
 
Open Source Procurement
Open Source ProcurementOpen Source Procurement
Open Source Procurement
 
Java Image Processing for Geospatial Community
Java Image Processing for Geospatial CommunityJava Image Processing for Geospatial Community
Java Image Processing for Geospatial Community
 
State of JTS 2018
State of JTS 2018State of JTS 2018
State of JTS 2018
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeo
 
Open Source is hard, we are here to help!
Open Source is hard, we are here to help!Open Source is hard, we are here to help!
Open Source is hard, we are here to help!
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
GeoServer Ecosystem 2018
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018
 
State of GeoServer 2.14
State of GeoServer 2.14State of GeoServer 2.14
State of GeoServer 2.14
 
OSGeo AGM 2018
OSGeo AGM 2018OSGeo AGM 2018
OSGeo AGM 2018
 
Working with the OSGeo Community
Working with the OSGeo CommunityWorking with the OSGeo Community
Working with the OSGeo Community
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13
 
Open Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial ApplicationsOpen Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial Applications
 
Map box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayersMap box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayers
 
Quick and easy web maps
Quick and easy web mapsQuick and easy web maps
Quick and easy web maps
 
State of GeoGig
State of GeoGigState of GeoGig
State of GeoGig
 
State of JTS 2017
State of JTS 2017State of JTS 2017
State of JTS 2017
 
OSGeo AGM 2017
OSGeo AGM 2017OSGeo AGM 2017
OSGeo AGM 2017
 

Recently uploaded

WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 

Recently uploaded (20)

WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 

Everyone wants (someone else) to do it: writing documentation for open source software.

  • 1. Everyone wants (someone else) to do it Writing documentation for open source software
  • 2. 2 Welcome Mike Pumphrey Community Advocate mike@boundlessgeo.com github.com/bmmpxf Open Source Geospatial Foundation GeoServer CommitterBoundless Boundless provides geospatial tools and services for managing data and building applications. Projects OpenGeo Suite OpenGeo Training GeoServer
  • 3. 3 Welcome Jody Garnett Community Lead jgarnett@boundlessgeo.com @jodygarnett Open Source Geospatial Foundation OSGeo Incubation Chair GeoTools Project Officer Eclipse Foundation LocationTech Project Steering Committee LocationTech Technology Project Boundless Boundless provides geospatial tools and services for managing data and building applications. Open Source Projects GeoTools GeoServer uDig
  • 5. What we are up against here • If you spent $30,000 on a software package – you might spend a week figuring out how it works • If you spend $0 on an open source project how much time are you going to spend? – 5 mins? – 10 mins? – 15 mins? 5
  • 6. Documentation Priorities • Installation – Ensure potential users can install your software • Quick start – And see their own data 6
  • 7. Installation • Get the software installed • Show each step – this is used as a sanity check to tell if everything is going okay • Do not get distracted by explaining options – don't waste time – your software is being evaluated 7
  • 8. Installation Video? • Great! – very friendly – shows the software working ... providing hope! • Caution: – It can be hard to find a video that matches the version of the software you are using – Scrubbing a video back and forth to catch a key installation step is frustrating • Recommend – video for promotion showing individual features – documentation for installation 8
  • 9. Quickstart! • Show, do not tell – Focus on the key "value add" for your software • Think "internet" attention spans here – Don't distract with background stories – Get something on screen
 and then explain why it is amazing 9
  • 10. Stack Exchange? • Stack exchange is a Q&A site that is popular with geoserver and geotools users • It is more an alternative to the user email list than the documentation – Questions that get asked repeatedly...
 may point out a hole in the documentation? – Stack Exchange is good at staying current
 ... but you may be using an old version? 10
  • 11. Writing Tips and Tricks 11
  • 12. EASY • Please do not use the word EASY – The only that can happen here is to make people FEEL FRUSTRATED when they have trouble • They probably are having trouble because – you wrote this sentence three years ago before windows 8 confused the start menu? – Or last month before the start menu came back? 12
  • 13. SIMPLE or SIMPLY • Please do not use the word "simple" – The only thing that can happen is to make people FEEL STUPID when they do not understand what you are talking about • A piece of software on its own is complex – When combined with other software ... more complex – When on a future operating system ... more complex 13
  • 15. Simple - sanity check 15
  • 16. Setting Expectations • Focus on getting any content – Do not let PERFECT be the enemy of GOOD – do not let GOOD be the benefit of NOTHING • Do not worry about things like grammer 16
  • 21. How did this happen? • Easy to forget about: – documentation – quality assurance • Project has been going a long time – Developers can 'hope' to get back to something – Without a champion features get dropped • Features produced under contract – Great social pressure to include features in next release (so team can get paid) – But risk team moving on to other work
 (and assuming a "volunteer" will get to it) 21
  • 22. What did not work • Let the community deal with it - wiki! • GeoTools: – Gave up on wiki, – found that jody had written 90% of the wiki – Code examples especially were out of date causing more confusion then help • GeoServer: • OpenGeo migrated to a fresh set of docs as part of OpenGeo Suite product initiative 22
  • 23. What has Worked • Boundless policy – a feature is "not DONE until it is documented" ! • Mike – Ask developer to write the low-level,
 and the Mike translates for the world – Interview the developer and translate the result • Jody – Included the cost upfront in GeoTools proposal
 ( i.e. process “tasks” section ) – write the docs for features that would
 otherwise not be merged in 23
  • 24. Policy Change • Supported "Extensions" now require – documentation and QA test coverage • Change control requests now require: – Documentation and QA to be included up front! • Success? – Our docs now do a much better job of documenting new features – Consultants now know what is required up front!
 (and communicate to customers?) – This is a barrier to "casual" drive by GitHub commits 24
  • 25. GeoServer Documentation Story • Documentation was originally html! • Moved from HTML to wiki – Outreach attempt to community! – Gradually became out of date • Moved from wiki to codebase • Mike volunteer as “editor” – Set expectations 25
  • 26. GeoTools Documentation Story • Started in "docbook" – XML format of doom! • Moved to CodeHaus "wiki" – Wiki's needed an editor to be successful – After 10 years editor had written 90% of the docs – vandalism because we cannot have nice things • Moved to codebase – Harder for community volunteers than wiki – But now versioned alongside releases! – Initial port in "pandoc", then six months to clean up the mess 26
  • 27. RST and Sphinx Migrating from WIKI to CodeBase 27
  • 28. Sphinx • Install Python • easy_instal sphinx • make html 28 make html mkdir -p build/html build/doctrees sphinx-build -b html -d build/doctrees source build/html Running Sphinx v1.2.2 loading pickled environment... not yet created building [html]: targets for 438 source files that are out of date updating environment: 438 added, 0 changed, 0 removed reading sources... [100%] webadmin/tilecache/layers ... Build finished. The HTML pages are in build/html.
  • 29. RST • Use "Rich Structured Text" wiki syntax 29 Background ========== Welcome! From all of the GeoServer users and developers, we are happy to see that you have an interest in contributing to the GeoServer documentation. Whether it's the fix of a typo or a whole new collection of pages, all contributions are appreciated. With your help we can make GeoServer documentation helpful and robust, and thus make GeoServer a better product. Writing Documentation --------------------- GeoServer documentation written in `reStructuredText <http:// docutils.sourceforge.net/rst.html>`_, a lightweight markup syntax, and built into HTML and PDF content using `Sphinx <http://sphinx.pocoo.org>`_, a documentation framework written by the developers of Python. In this way, the documentation could be merged with the source code of GeoServer ...
  • 30. In-line Code Examples • This is the "killer feature" for GeoTools 30 Quickstart Application ---------------------- Now that your environment is setup we can put together a simple Quickstart. This example will display a shapefile on screen. #. Create the package org.geotools.tutorial.quickstart using your IDE. #. Create the org.geotools.tutorial.quickstart.Quickstart class using your IDE. .. image:: images/class.jpg :scale: 60 #. Fill in the following code: .. literalinclude:: /../src/main/java/org/geotools/tutorial/quickstart/ Quickstart.java :language: java
  • 32. Step 1 • Browse the documentation source code directly on the GitHub website: – https://github.com/geoserver/geoserver/tree/master/ doc/en – https://github.com/geoserver/geoserver/tree/master/ doc/es – https://github.com/geoserver/geoserver/tree/master/ doc/fr 32
  • 33. Step 2 • Navigate to the file you wish to change and click the edit icon 33
  • 34. Step 3 • Use the editor to modify the file 34
  • 35. Step 4 • Scroll to the bottom of the page, provide a commit comment and submit. • GitHub will: – Create a fork and submit a pull request on your behalf; or – Immediately make the change for those with commit access 35
  • 37. Why a Style Guide? • Help community present a "consistent voice" when writing documentation • Additional benefits: – Can help an editor be fair and consistent – Provide a link to page of good/bad examples when reviewing a pull request 37
  • 38. Be concise • Documentation should be concise
 (and not just a brain dump.) • Reference material – Short pages and be easy to refer to – No scrolling through large volumes of text) • Tutorials can be longer, depending on scope • Want to share your thoughts and insights? – Write a blog post (or twitter for small thoughts) • Documentation is a manual, not a wiki. 38
  • 39. Avoid marketing • Want to showcase a new feature? – Write an article or a blog post about it. – If it is necessary to point out a technical benefit of a feature then do so from a technical standpoint. • Bad – Super-overlays are a great way to publish super cool datasets awesomely in Google Earth! • Good – Super-overlays allow you to efficiently publish data via Google Earth. 39
  • 40. Be professional • Avoid the use of slang or “colorful” language: – The point of a technical document is to be informative, not to keep the reader amused. – Avoiding slang helps keep the document accessible to as large an audience as possible. • Bad – Next, fire up whatever tool you use to browse the web and point it in the direction of ... • Good – Next, start your web browser and navigate to ... 40
  • 41. Use direct commands • When providing step-by-step instructions, use direct commands or requests – Avoid the use of “we” and “let’s”. • Bad – Now let’s add a shapefile by ... • Good – Add a shapefile by ... 41
  • 42. Naming Conventions • Be consistent • GeoServer uses wikipedia policy: – Capitalization of page names – Capitalization of section names – Verbs like "creating" rather than "create". – Avoid plurals 42