Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save developerworks/7d2d77d6b6b1e697bc6025727dfa9aba to your computer and use it in GitHub Desktop.
Save developerworks/7d2d77d6b6b1e697bc6025727dfa9aba to your computer and use it in GitHub Desktop.
How To Write A Technical Book (One Man's Modest Suggestions)

Digital Toolchain for Book Authors

Text markup and structure

Format, Authoring Tools

  • Scribe
  • Your Own Toolchain
  • Will try to OSS some of this stuff in the Spring and I'll be hacking on Scribe as I give more time to GitHub employment
  • XML
    • For pure XML (DocBook) authoring, I liked:
    • Some of these have DocBook stylesheets built in or a live editor
  • The drawback to AsciiDoc is the lack of not having the full DocBook tag vocabulary
    • You can always convert towards the end of the book and use DocBook from there on out, but that seems like a nasty mode shift.

Inline Code Samples

  • Q: Code insertion (such that it can be tested)
  • AsciiDoc uses pygments to style the most common languages
  • Nest the examples as a Git submodule within the Git scribe book or other book technology. You can OSS the examples early. We did with Gradle.

Example code in Asciidoc (standalone files)

[[EX-MAVEN-001]]
.The smallest possible Maven pom.xml
====
[xml]
source~~~~
include::example_code/maven-smallest-maven-pom/pom.xml[]
source~~~~
====

Audited version history

  • Q: Naturally, we both prefer Git
  • Git, without a doubt, but with more than just a master branch
    • Squash branch commits for bigger "units of work", not noisy commits which some of my co-authors seem to like to create
  • CIed book build
  • Used just shell scripts and cron
  • Or trigger on Mac folder changes with Hazel

Inline comments and threads/discussions

  • Q: GitHub comments?
  • Remarks DocBook tags in the DocBook files (Presentation Patterns)
    • http://www.docbook.org/tdg/en/html/remark.html
    • I wrote and had my brother, a JS and HTML guy, write an awesome stylesheet that made the remarks pop in Red.
    • TODO keyword in the text with a build script that found and listed them all (like an ack)

Outlining strategy/hacks

  • Q: How did you avoid 10 rewrites?
  • A: Let it bake for 2 years in outlines and 1 year in a draft. INSANE. But nice.

So, how can this be done in a more reasonable way?

  1. Level one bullets only. Revise. Review.
  2. Write 5% of the book based on passion.
  3. Level two bullets. See impact on level 1. Revise. Review.
  4. Consider the outline locked unless there is something massively broken.
  5. Write a crappy first draft with high velocity.
  6. Stick to the outline. If you need to change it, change it, but don't let the prose drive the plan.

Writing Hacks

  1. Use Dragon Dictate and a Plantronics wireless boom mic. Thank me later. I cranked out 5200 words in a day with it. And you can listen to music while you dictate.
  2. Write every day. Even if just a little bit. I am the worst offender of this advice, but I am trying to stick to it.

Task tracking

Sample of OrgMode (Raw)

* Admin: Deadlines:
** Initial Marketing <2011-12-19 Mon>
**** DONE Snappy back-cover text <2011-12-19 Mon>                  :nf:mm:ns:
**** DONE final(-ish) TOC<2011-12-19 Mon>                          :nf:mm:ns:
** First Draft                                                     :nf:mm:ns:
This is the draft that goes to Eileen & our technical review, not to
be confused with Pearson's process
** Final Draft <2012-02-15 Wed>                                    :nf:mm:ns:

Big Thoughts

Hope that helps.

Matthew McCullough
[email protected]
http://ambientideas.com/blog
[email protected]
http://github.com/training
@matthewmccull

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment