SlideShare a Scribd company logo
1 of 25
Download to read offline
Doc Like an
Egyptian
Dru Lavigne
Documentation Lead, iXsystems
FOSSETCON, November 21, 2015
All the old paintings on the tombs,
They do the sand dance, don't you know?
If they move too quick (oh whey oh)
They're falling down like a domino.
Walk Like an Egyptian, The Bangles
Outline
Overview of documentation goals and inherent
difficulties
Introduction to Sphinx as part of a documentation
solution
Disclaimer: based on my experiences. While from
an open source perspective, discussion also
applies to proprietary documentation.
In Theory....Docs:
are published with each software release...
in multiple formats which suit the needs/devices of
that software's user base...
in multiple translations which match that
software's global audience...
and are grammatically and technically correct...
all using open source tools, of course.
The Reality
<insert>giggles or tears here</insert>
Docs are incomplete or outdated (assuming they
even exist)
Docs are given lower priority than code
Noone wants to write docs / Noone reads docs
anyways
No perfect doc management solution exists (open
source or proprietary)
Incomplete/Outdated Docs
Software is a MOVING target with varying release
schedules
Outdated, unversioned docs are actually worse
than no docs
Need process for versioning docs, providing
revision control, archiving older docs, and helping
people find the correct docs for their software
version
I Get No Respect Around Here...
Cultural issue: docs are equally important to code
and both are equally important to Q/A
Know your audience and give them credit (users
actually want readable/usable documentation)
Train projects' question answerers to gently point
users to the pertinent section of the docs and to
create bug reports (or update docs) when no
pertinent section exists
Finding the “Perfect” Tool
Markup (Writing Format)
Is it easy to learn or a significant barrier to entry?
(e.g. WYSIWYG or wiki markup vs XML or LaTeX)
Are editors available which understand the syntax?
Does it support the required layout? (code
excerpts, table of contents, glossary, searchability,
internal and external links, indexes, images, charts,
localization, notes/warnings, footnotes, etc.)
Finding the “Perfect” Tool
Outputs (Published Format)
Dru's 1st Law of Doc Tools: the number and
quality of the outputs is inversely proportional to the
ease of the markup language
Dru's 2nd
Law of Doc Tools: the fewer the number
of doc maintainers, the higher the number of
desired outputs
Understand your audience and your project's
limitations
Some Painful Examples
doc/odt
Good: WYSIWYG editor available to any author
Bad: templates are painful
- collaborative editing and tracking changes is often
a tangled mess of emails (who has the latest
version?), editing conflicts, or waiting for someone
else to make their changes
- outputs are limited and require various degrees of
cleanup
Some Painful Examples
wiki
Good: entry barrier fairly low and syntax quick to
learn
Bad: no concept of ToC, content flow, or versioning
- if you build it, they don't necessarily come (except
for the spambots...)
- outputs are very limited and typically require a lot
of cleanup; translation tools are clunky
Some Painful Examples
LaTeX
Good: multiple outputs integrate well into build and
translation systems
Bad: very high barrier to entry as it takes a
dedicated time (and interest) commitment to learn
(and teach) the formatting language
Sphinx Features
Relatively easy-to-learn formatting language
Supports common outputs: HTML, PDF, ePUB,
LaTeX, Texinfo, man pages, txt, API docs
Provides a number of extensions (eg automatic
figure numbering)
Automatic generation of ToC, index, glossary
Source files are text and easily integrate into
existing revision control, translation, build, and CI
infrastructures
Sphinx Features
Fully customizable conf.py for controlling doc
layout
Several useful built-in builders (eg link checker)
Several built-in themes and support for custom
themes; layout fully customizable using CSS
Anything can be linked (figures, keywords,
headings, etc.)
Writers can use any text editor on any system
with Python installed (or issue git pull requests)
Sphinx Limitations
Some odd formatting limitations require CSS
workarounds (eg bold italic)
Search SUCKS (and ironically there is a search
engine of the same name)
Documentation is limited and needs more usage
examples
Sample Text
Sample HTML Output
Sample Pootle Interface
Helpful Tips
What About Existing Docs?
Do you plan to convert existing docs or archive
those in current format and start with new docs?
Open source converter utilities exist for most
formats, often mutliple utilities per format
Experiment by converting a small doc that
contains most of your formatting requirements
Expect to spend time cleaning up the conversion
Helpful Tips
Determine Your Publishing Needs
Is your goal to have the docs match a specific
software version? to have only one version that is
the latest and greatest?
What output formats are required? Versioned
PDFs? HTML on your project page? Built into the
software itself as a help system?
Helpful Tips
Review Your Code Repository
You do have one, right? (if not, you need one!)
Determine the required doc versioning system
and where to commit your .rst files within the
existing code repository
Update the README.md (or equivalent) with
instructions for authors to create their own doc
build environment
Helpful Tips
Create a Cheat Sheet
Review your converted docs and make a list of
the formatting tags and conventions used by your
project
Include any gotchas to help new authors quickly
get up-to-speed
Publish the cheat sheet (eg README.md in doc
directory of repo)
Helpful Tips
Spend some time playing with conf.py and
experiment with existing themes BEFORE writing
new docs (themes change the layout which may
affect how you use formatting tags)
Research, experiment with, and install extensions
that are useful for your docs
Determine how much layout customization is
required and who has the CSS skills for extra
customizations
Resources
http://sphinx-doc.org/
http://pootle.translatehouse.org/
Questions
Contact:
dru@freebsd.org
URL to Slides:
http://slideshare.net/dlavigne/fossetcon15

More Related Content

Viewers also liked

Elc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzoElc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzocramars
 
Avito Контекст
Avito КонтекстAvito Контекст
Avito КонтекстAvito Context
 
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...mabasta
 
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015 البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015 Tiznitpps Pps
 
Lesson9 Create and Modify Fields
Lesson9 Create and Modify FieldsLesson9 Create and Modify Fields
Lesson9 Create and Modify FieldsAbdullatif Tarakji
 
Resume_Pankaj Sharma
Resume_Pankaj SharmaResume_Pankaj Sharma
Resume_Pankaj SharmaPankaj Sharma
 
Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0solgenomics
 
48051567 puzzles
48051567 puzzles48051567 puzzles
48051567 puzzlesvijaya89
 
Il lavoro dell'apicoltore
Il lavoro dell'apicoltoreIl lavoro dell'apicoltore
Il lavoro dell'apicoltorecramars
 
Corso sulle api di Cesare
Corso sulle api di CesareCorso sulle api di Cesare
Corso sulle api di Cesarecramars
 
Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?Jack Tellington
 
Creating poetry
Creating poetryCreating poetry
Creating poetrySeenglish
 
Ganglión de muñeca
Ganglión de muñecaGanglión de muñeca
Ganglión de muñecaGaby Bonilla
 

Viewers also liked (17)

C sharp
C sharpC sharp
C sharp
 
Elc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzoElc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzo
 
Avito Контекст
Avito КонтекстAvito Контекст
Avito Контекст
 
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
 
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015 البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
 
Lesson9 Create and Modify Fields
Lesson9 Create and Modify FieldsLesson9 Create and Modify Fields
Lesson9 Create and Modify Fields
 
Resume_Pankaj Sharma
Resume_Pankaj SharmaResume_Pankaj Sharma
Resume_Pankaj Sharma
 
Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0
 
48051567 puzzles
48051567 puzzles48051567 puzzles
48051567 puzzles
 
Il lavoro dell'apicoltore
Il lavoro dell'apicoltoreIl lavoro dell'apicoltore
Il lavoro dell'apicoltore
 
Corso sulle api di Cesare
Corso sulle api di CesareCorso sulle api di Cesare
Corso sulle api di Cesare
 
коливальний рух
коливальний рухколивальний рух
коливальний рух
 
Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?
 
Creating poetry
Creating poetryCreating poetry
Creating poetry
 
Bakterid
Bakterid Bakterid
Bakterid
 
Ganglión de muñeca
Ganglión de muñecaGanglión de muñeca
Ganglión de muñeca
 
Clavo Intramedular y Placa Puente
Clavo Intramedular y Placa PuenteClavo Intramedular y Placa Puente
Clavo Intramedular y Placa Puente
 

Similar to Fossetcon15

Projects In Foss
Projects In FossProjects In Foss
Projects In Fossviggyprabhu
 
Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manualMargaret Eker
 
Software for paper formatting
Software for paper formatting Software for paper formatting
Software for paper formatting salonibansal21
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?Ellis Pratt
 
Why documentation osidays
Why documentation osidaysWhy documentation osidays
Why documentation osidaysBastian Feder
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An IntroductionAkash Tandon
 
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
APIs And SDKs  Breaking Into And Succeeding In A Specialty MarketAPIs And SDKs  Breaking Into And Succeeding In A Specialty Market
APIs And SDKs Breaking Into And Succeeding In A Specialty MarketBill Dubie
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_dealPaul Roeland
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?Markus Voelter
 
Saeed al ali 10 bb
Saeed al ali 10 bbSaeed al ali 10 bb
Saeed al ali 10 bbs3eedAlAli
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011Kristof Van Tomme
 
Creating a compiler for your own language
Creating a compiler for your own languageCreating a compiler for your own language
Creating a compiler for your own languageAndrea Tino
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileMary Connor
 
[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic EditorMickael Istria
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLScott Abel
 
Fedora Overview
Fedora OverviewFedora Overview
Fedora Overvieweposthumus
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit TestJill Bell
 

Similar to Fossetcon15 (20)

Projects In Foss
Projects In FossProjects In Foss
Projects In Foss
 
Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manual
 
Software for paper formatting
Software for paper formatting Software for paper formatting
Software for paper formatting
 
Niatalk24jan10
Niatalk24jan10Niatalk24jan10
Niatalk24jan10
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?
 
Why documentation osidays
Why documentation osidaysWhy documentation osidays
Why documentation osidays
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An Introduction
 
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
APIs And SDKs  Breaking Into And Succeeding In A Specialty MarketAPIs And SDKs  Breaking Into And Succeeding In A Specialty Market
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_deal
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
Saeed al ali 10 bb
Saeed al ali 10 bbSaeed al ali 10 bb
Saeed al ali 10 bb
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011
 
Creating a compiler for your own language
Creating a compiler for your own languageCreating a compiler for your own language
Creating a compiler for your own language
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of Agile
 
How to code
How to codeHow to code
How to code
 
[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XML
 
Fedora Overview
Fedora OverviewFedora Overview
Fedora Overview
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit Test
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
 

More from Dru Lavigne

More from Dru Lavigne (20)

Olf2018
Olf2018Olf2018
Olf2018
 
Olf2017
Olf2017Olf2017
Olf2017
 
FreeBSD System Administration Using SysAdm
FreeBSD System Administration Using SysAdmFreeBSD System Administration Using SysAdm
FreeBSD System Administration Using SysAdm
 
Asiabsdcon2017
Asiabsdcon2017Asiabsdcon2017
Asiabsdcon2017
 
Flourish16
Flourish16Flourish16
Flourish16
 
Lfnw15
Lfnw15Lfnw15
Lfnw15
 
Asiabsdcon15
Asiabsdcon15Asiabsdcon15
Asiabsdcon15
 
Scale2015
Scale2015Scale2015
Scale2015
 
Olf2014
Olf2014Olf2014
Olf2014
 
Fossetcon14
Fossetcon14Fossetcon14
Fossetcon14
 
Tlf2014
Tlf2014Tlf2014
Tlf2014
 
Asiabsdcon14 lavigne
Asiabsdcon14 lavigneAsiabsdcon14 lavigne
Asiabsdcon14 lavigne
 
Asiabsdcon14
Asiabsdcon14Asiabsdcon14
Asiabsdcon14
 
Scale2014
Scale2014Scale2014
Scale2014
 
Dru lavigne servers-tutorial
Dru lavigne servers-tutorialDru lavigne servers-tutorial
Dru lavigne servers-tutorial
 
Dru lavigne oss-sysadmin
Dru lavigne oss-sysadminDru lavigne oss-sysadmin
Dru lavigne oss-sysadmin
 
Dru lavigne oss-desktop_apps
Dru lavigne oss-desktop_appsDru lavigne oss-desktop_apps
Dru lavigne oss-desktop_apps
 
Bsd ss
Bsd ssBsd ss
Bsd ss
 
Nycbsdcon14
Nycbsdcon14Nycbsdcon14
Nycbsdcon14
 
Olf2013
Olf2013Olf2013
Olf2013
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Fossetcon15

  • 1. Doc Like an Egyptian Dru Lavigne Documentation Lead, iXsystems FOSSETCON, November 21, 2015
  • 2. All the old paintings on the tombs, They do the sand dance, don't you know? If they move too quick (oh whey oh) They're falling down like a domino. Walk Like an Egyptian, The Bangles
  • 3. Outline Overview of documentation goals and inherent difficulties Introduction to Sphinx as part of a documentation solution Disclaimer: based on my experiences. While from an open source perspective, discussion also applies to proprietary documentation.
  • 4. In Theory....Docs: are published with each software release... in multiple formats which suit the needs/devices of that software's user base... in multiple translations which match that software's global audience... and are grammatically and technically correct... all using open source tools, of course.
  • 5. The Reality <insert>giggles or tears here</insert> Docs are incomplete or outdated (assuming they even exist) Docs are given lower priority than code Noone wants to write docs / Noone reads docs anyways No perfect doc management solution exists (open source or proprietary)
  • 6. Incomplete/Outdated Docs Software is a MOVING target with varying release schedules Outdated, unversioned docs are actually worse than no docs Need process for versioning docs, providing revision control, archiving older docs, and helping people find the correct docs for their software version
  • 7. I Get No Respect Around Here... Cultural issue: docs are equally important to code and both are equally important to Q/A Know your audience and give them credit (users actually want readable/usable documentation) Train projects' question answerers to gently point users to the pertinent section of the docs and to create bug reports (or update docs) when no pertinent section exists
  • 8. Finding the “Perfect” Tool Markup (Writing Format) Is it easy to learn or a significant barrier to entry? (e.g. WYSIWYG or wiki markup vs XML or LaTeX) Are editors available which understand the syntax? Does it support the required layout? (code excerpts, table of contents, glossary, searchability, internal and external links, indexes, images, charts, localization, notes/warnings, footnotes, etc.)
  • 9. Finding the “Perfect” Tool Outputs (Published Format) Dru's 1st Law of Doc Tools: the number and quality of the outputs is inversely proportional to the ease of the markup language Dru's 2nd Law of Doc Tools: the fewer the number of doc maintainers, the higher the number of desired outputs Understand your audience and your project's limitations
  • 10. Some Painful Examples doc/odt Good: WYSIWYG editor available to any author Bad: templates are painful - collaborative editing and tracking changes is often a tangled mess of emails (who has the latest version?), editing conflicts, or waiting for someone else to make their changes - outputs are limited and require various degrees of cleanup
  • 11. Some Painful Examples wiki Good: entry barrier fairly low and syntax quick to learn Bad: no concept of ToC, content flow, or versioning - if you build it, they don't necessarily come (except for the spambots...) - outputs are very limited and typically require a lot of cleanup; translation tools are clunky
  • 12. Some Painful Examples LaTeX Good: multiple outputs integrate well into build and translation systems Bad: very high barrier to entry as it takes a dedicated time (and interest) commitment to learn (and teach) the formatting language
  • 13. Sphinx Features Relatively easy-to-learn formatting language Supports common outputs: HTML, PDF, ePUB, LaTeX, Texinfo, man pages, txt, API docs Provides a number of extensions (eg automatic figure numbering) Automatic generation of ToC, index, glossary Source files are text and easily integrate into existing revision control, translation, build, and CI infrastructures
  • 14. Sphinx Features Fully customizable conf.py for controlling doc layout Several useful built-in builders (eg link checker) Several built-in themes and support for custom themes; layout fully customizable using CSS Anything can be linked (figures, keywords, headings, etc.) Writers can use any text editor on any system with Python installed (or issue git pull requests)
  • 15. Sphinx Limitations Some odd formatting limitations require CSS workarounds (eg bold italic) Search SUCKS (and ironically there is a search engine of the same name) Documentation is limited and needs more usage examples
  • 19. Helpful Tips What About Existing Docs? Do you plan to convert existing docs or archive those in current format and start with new docs? Open source converter utilities exist for most formats, often mutliple utilities per format Experiment by converting a small doc that contains most of your formatting requirements Expect to spend time cleaning up the conversion
  • 20. Helpful Tips Determine Your Publishing Needs Is your goal to have the docs match a specific software version? to have only one version that is the latest and greatest? What output formats are required? Versioned PDFs? HTML on your project page? Built into the software itself as a help system?
  • 21. Helpful Tips Review Your Code Repository You do have one, right? (if not, you need one!) Determine the required doc versioning system and where to commit your .rst files within the existing code repository Update the README.md (or equivalent) with instructions for authors to create their own doc build environment
  • 22. Helpful Tips Create a Cheat Sheet Review your converted docs and make a list of the formatting tags and conventions used by your project Include any gotchas to help new authors quickly get up-to-speed Publish the cheat sheet (eg README.md in doc directory of repo)
  • 23. Helpful Tips Spend some time playing with conf.py and experiment with existing themes BEFORE writing new docs (themes change the layout which may affect how you use formatting tags) Research, experiment with, and install extensions that are useful for your docs Determine how much layout customization is required and who has the CSS skills for extra customizations