0
The story and tech of Read the Docs                   Eric Holscher        http://ericholscher.com               Djangocon...
What this talk is» Talk about the history of Read the Docs» Technology Involved» Interesting outcomes of openness» Lessons...
Who am I» I come from Django» Work at Urban Airship» Like automating systems
Why I’m here» Feedback» Ideas» Hopefully you’ll learn something too!» Shameless self-promotion
The story
2010 Django Dash
Charles LeiferBobby Grace (Design)        Me
Doc Hosting Sucks» packages.python.org» Github Pages» Your own janky cronjobs
`
Sphinx» Standard documentation tool for python» Uses reStructured Text
Had a workable site in 48 hours
Fully Open Source
Fully Open Source» github.com/rtfd/readthedocs.org» github.com/ericholscher/chef-django-example» ericholscher.com/tag/chef...
Officially Hosted» Celery» Fabric» Nose, py.test» Virtualenv, Pip» Django CMS» Django Grapelli/Floppyforms/Sentry» mod_wsg...
DEMO
What makes it tick
Features
Git, Hg, Bzr, Svn
Post commit hooks
Custom Theme
Full-text search
Tags & Branches = Versions
PDF Generation
Virtualenvs
rtfd.org
Tech
Subdomains
CNAME Support
Cname Support» Request for docs.fabfile.org» docs.fabfile.org -> fabric.readthedocs.org» In middleware, resolve CNAME and de...
Architecture                       +-----------+                       |      |                 +-----| Varnish |------+  ...
Haystack & Solr
Chef
Nagios & Munin
Upstart
REST API
CoffeeScript
CLI
Open Source Outcomes
Patches
Known architecture information
Slow Loris
Trust
People Writing Docs
Lessons
Think about your URLs.     Really hard.
Lay your project out sanely
Write tests!
Build around a standard tool
Passing data through systems is              hard
Serving static files is annoying
Log. Everything.
Promote (Hi!)
Find a designer!
Follow the Unix Philosophy
Have a mission
Thanks
Revsys
PSF
Mozilla
Divio
Pyladies
Questions?» readthedocs.org / rtfd.org» #readthedocs on Freenode» github.com/rtfd/readthedocs.org» eric@ericholscher.com
The story and tech of Read the Docs
The story and tech of Read the Docs
Upcoming SlideShare
Loading in...5
×

The story and tech of Read the Docs

1,236

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,236
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • DB -> Django Template -> Sphinx Config -> Jinja Template \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "The story and tech of Read the Docs"

    1. 1. The story and tech of Read the Docs Eric Holscher http://ericholscher.com Djangocon 2011
    2. 2. What this talk is» Talk about the history of Read the Docs» Technology Involved» Interesting outcomes of openness» Lessons learned
    3. 3. Who am I» I come from Django» Work at Urban Airship» Like automating systems
    4. 4. Why I’m here» Feedback» Ideas» Hopefully you’ll learn something too!» Shameless self-promotion
    5. 5. The story
    6. 6. 2010 Django Dash
    7. 7. Charles LeiferBobby Grace (Design) Me
    8. 8. Doc Hosting Sucks» packages.python.org» Github Pages» Your own janky cronjobs
    9. 9. `
    10. 10. Sphinx» Standard documentation tool for python» Uses reStructured Text
    11. 11. Had a workable site in 48 hours
    12. 12. Fully Open Source
    13. 13. Fully Open Source» github.com/rtfd/readthedocs.org» github.com/ericholscher/chef-django-example» ericholscher.com/tag/chef-series/
    14. 14. Officially Hosted» Celery» Fabric» Nose, py.test» Virtualenv, Pip» Django CMS» Django Grapelli/Floppyforms/Sentry» mod_wsgi (woo!)
    15. 15. DEMO
    16. 16. What makes it tick
    17. 17. Features
    18. 18. Git, Hg, Bzr, Svn
    19. 19. Post commit hooks
    20. 20. Custom Theme
    21. 21. Full-text search
    22. 22. Tags & Branches = Versions
    23. 23. PDF Generation
    24. 24. Virtualenvs
    25. 25. rtfd.org
    26. 26. Tech
    27. 27. Subdomains
    28. 28. CNAME Support
    29. 29. Cname Support» Request for docs.fabfile.org» docs.fabfile.org -> fabric.readthedocs.org» In middleware, resolve CNAME and determine docs to serve.» Cache it.
    30. 30. Architecture +-----------+ | | +-----| Varnish |------+ | +-----------+ | | | +---------+ +---------++-------------+ | | | | +--------------+| |-----| Nginx | | Nginx |----| || File | +---------+ +---------+ | File || System | | | | System |+-------------+ +---------+ +--------+ +---------+ +--------------+ | | | | | | | | | | | +---------|Gunicorn |--|Postgres|--|Gunicorn |--------+ | | +---------+ +--------+ +---------+ | | | | | | | | +------------------+ | | | | | +---------------------| Build Server |-------------------+ | | +------------------+
    31. 31. Haystack & Solr
    32. 32. Chef
    33. 33. Nagios & Munin
    34. 34. Upstart
    35. 35. REST API
    36. 36. CoffeeScript
    37. 37. CLI
    38. 38. Open Source Outcomes
    39. 39. Patches
    40. 40. Known architecture information
    41. 41. Slow Loris
    42. 42. Trust
    43. 43. People Writing Docs
    44. 44. Lessons
    45. 45. Think about your URLs. Really hard.
    46. 46. Lay your project out sanely
    47. 47. Write tests!
    48. 48. Build around a standard tool
    49. 49. Passing data through systems is hard
    50. 50. Serving static files is annoying
    51. 51. Log. Everything.
    52. 52. Promote (Hi!)
    53. 53. Find a designer!
    54. 54. Follow the Unix Philosophy
    55. 55. Have a mission
    56. 56. Thanks
    57. 57. Revsys
    58. 58. PSF
    59. 59. Mozilla
    60. 60. Divio
    61. 61. Pyladies
    62. 62. Questions?» readthedocs.org / rtfd.org» #readthedocs on Freenode» github.com/rtfd/readthedocs.org» eric@ericholscher.com
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×