This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Difference between revisions of "OWASP Press"

From OWASP
Jump to: navigation, search
(Description)
(Instructions)
Line 132: Line 132:
 
|}
 
|}
  
=FAQs=
+
= HOWTO Author and Publish using the OWASP Press=
 +
== Leanpub ==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
[https://leanpub.com/ Leanpub] is a lean workflow applied to documentation. Publishing is indeed lean; as in [http://en.wikipedia.org/wiki/Lean_manufacturing Toyota lean]; in fact it is just-in-time like the [http://en.wikipedia.org/wiki/Qin_Dynasty Qin Dynasty's] [http://www.washingtonpost.com/national/health-science/chinese-terra-cotta-warriors-had-real-and-very-carefully-made-weapons/2012/11/26/999b9cb4-2840-11e2-b4e0-346287b7e56c_print.html terra cotta warriors]! In fact they have written a very interesting [https://leanpub.com/manifesto manifesto] about the future of publishing that I found to be very insightful and well researched. I highly recommend reading it if you are interested in such things.
<span style="color:#ff0000">
 
Many projects have "Frequently Asked Questions" documents or pages. However, the point of such a document is not the questions. ''The point of a document like this are the '''answers'''''. The document contains the answers that people would otherwise find themselves giving over and over again. The idea is that rather than laboriously compose and post the same answers repeatedly, people can refer to this page with pre-prepared answers. Use this space to communicate your projects 'Frequent Answers.'
 
</span>
 
  
 +
While Leanpub is full of coolness for [https://leanpub.com/help/author_faq authors], I want to talk about how it works. Leanpub works via [https://www.dropbox.com/ dropbox] and plain-text [http://daringfireball.net/projects/markdown/ markdown] files.
  
==How can I participate in your project?==
+
After joining the site, you create a book by clicking a 'Create a lean pub book now' link; which takes you to a page that asks for the book title and a URL; and you submit the form with a 'create my book' button. Leanpub then publishes a manuscript folder to dropbox and shares it with you, and sets up a storefront for the book at the url you specified.
All you have to do is make the Project Leader's aware of your available time to contribute to the project. It is also important to let the Leader's know how you would like to contribute and pitch in to help the project meet it's goals and milestones. There are many different ways you can contribute to an OWASP Project, but communication with the leads is key.  
 
  
==If I am not a programmer can I participate in your project?==
+
The manuscript is written in markdown<ref>Markdown is a very cool plain-text format that can be compiled by tools like [http://johnmacfarlane.net/pandoc/ pandoc] into numerous outputs; including latex, mediawiki, doc, and html to name but a very few. Using pandoc the very same markdown text can easily be turned into mediawiki content for the OWASP wiki.
Yes, you can certainly participate in the project if you are not a programmer or technical. The project needs different skills and expertise and different times during its development. Currently, we are looking for researchers, writers, graphic designers, and a project administrator.  
+
</ref>, However, since markdown is a simple markup format it doesn't have any file inclusion features, so everything is expected to be in a single file. This is a problem because it is very difficult for many authors to make changes to a single file, and also because it is simply nicer to separate out ideas that belong together into chapters.
 +
 
 +
This is one of the issues I ran into when attempting to build this for OWASP myself. I tried using makefiles and [http://en.nothingisreal.com/wiki/GPP GPP] to overcome this limitation of 'everything in a single file.'
 +
 
 +
Leanpub's answer is a simple textile called book.txt that simply lists the files in the order they are to be include as such:
 +
 
 +
<pre>about-the-book.md
 +
acknowledgments.md
 +
introduction.md
 +
chapter-01.md
 +
chapter-02.md
 +
chapter-03.md
 +
appendix-01.md
 +
appendix-02.md</pre>
 +
And with that the problem is solved, simply and elegantly. And unlike my attempts, it solves it without having to acquire and compile software to participate in authoring. Keeping the barrier to participation very low.
 +
 
 +
Dropbox's killer feature is [https://www.dropbox.com/help/category/Sharing sharing]. However, while sharing is awesome; it is best used for distribution of information that doesn't change often. Additionally, it while dropbox keeps a complete history of files; dropbox doesn't provide the granularity of history that a good version control system does. This makes sense because sharing is about distribution of mostly 'static' content.
 +
 
 +
However, what is needed for massive collaboration, is good distributed version control software which is built with changes in mind. Particularly where you can have an infinite number of authors. You need something that has merging of conflicts built into its DNA. The [http://en.wikipedia.org/wiki/Coup_d%27%C3%A9tat coup d'état] of [http://en.wikipedia.org/wiki/Distributed_revision_control distributed version control systems] is Linus Torvald's [http://git-scm.com/ git] project. And the best place to host a public git repository is arguably [https://github.com/ github].
 +
 
 +
== Github ==
 +
 
 +
Git is an amazing tool for [http://scriptogr.am/dennis-groves/post/open-source-democracy community collaboration] and change management so the final step is putting the shared dropbox under git version control and pushing the repository to github. Incidentally, OWASP has a [https://github.com/owasp github repositoryy] and members of the community should be encouraged to use it.
 +
 
 +
In this example the dropbox and the github fork are on the same machine, However, they could easily be different machines; and in practice they will be as each author will have the github fork and only the project leader will have the dropbox.
 +
 
 +
To start an OWASP Publication, with the browser of your choice:
 +
 
 +
# Create a book at lean pub. (in this example AppSensor)
 +
# Create a new repo at github. (In this example AppSensor-Handbook)
 +
 
 +
In a terminal:
 +
 
 +
# cd ~/dropbox/AppSensor
 +
# git init
 +
# git remote add origin https://github.com/OWASP/AppSensor-Handbook.git
 +
# git push -u origin master
 +
 
 +
Everything is now ready for mass collaboration and realtime publication! In order for Authors to participate in the publication process:
 +
 
 +
# Download your favorite github.com client for [[mac.github.com|mac]] or [[windows.github.com|windows]] (or use the command line if your are so inclined).
 +
# Clone the github.com repository.
 +
# Fork your own branch.
 +
# Edit the manuscript.
 +
# push the changes.
 +
 
 +
Once the authors are done making changes or through the use of a [http://nvie.com/posts/a-successful-git-branching-model/ git branching model]. The project lead who has the dropbox computer will need to goto the dropbox folder and 'git -pull' the changes from authors at github. This will automatically syncs the leanpub website which shares the dropbox folder. The project owner can then publish the updates by navigating to the leanpub website and clicking the 'create a preview of my book' on actions tab.
 +
 
 +
While I appreciate that this is somewhat manual, github has service hook's that could be used to automate this workflow completely. I am currently exploring the best way to do this. If the dropbox is hosted remotely as well then the [http://net.tutsplus.com/tutorials/other/the-perfect-workflow-with-git-github-and-ssh/ 'git -pull'] can be automated. This need to be followed by a publish request with leanpub; and while it has some authorisation tokens and oner 'anti-automation' cookies; it would be trivial for most of the OWASP community to issue the post request to leanpub in an automated way.
  
 
= Acknowledgements =
 
= Acknowledgements =

Revision as of 19:25, 27 November 2013

The OWASP Press Project

The OWASP press project is proposal that allows community authoring with just in time publishing.

Community authoring is fraught with challenges. Word documents with revisions on eventually crash, and so people eventually take to naming conventions to manage the versions. Additionally, there is only one canonical master; this makes authoring and editing in parallel impossible; and merging the resulting versions is an enormous time sink in and of itself. This only gets worse the larger the book is and the more authors that are involved.

Additionally, I have long desired a bookshelf full of OWASP books; and indeed other people have as well. As we have an OWASP Lulu store. The problem with this model however is that the publishing is remains oriented around the 'dead-tree publishing' workflow. Where books are written to a deadline and 'released' to the editors, and finally sent to the printers for publishing and distribution. And by the time the documents make it to publication they are already out of date.

Description

OWASP has long provided some of the very best documentation on the web for Application Security. Among the awesome documentation resources are projects like OWASP Cheatsheets, The OWASP Development Guide, OWASP Testing Guide, OWASP AppSensor and OWASP SAMM.

These community documentation projects are living, collaborative works and so they present a special challenge to the 'dead-tree publishing' workflow. Additionally, I have the books I love most on my Kindle not a physical bookshelf, who wants to lug a dead-tree when you can haul around a library?

The answer was obviously just-in-time publishing, after all isn't this what a wiki is? Where anybody from the OWASP community could update a text and the update be instantly available? While wiki technology really excels at on-line living documentation and knowledge management; wiki's have failed to succeed at general purpose publishing platforms.

I have spent the last month exploring ways to instantiate a just-in-time open publishing workflow to produce digital and dead-tree editions of the OWASP documentation projects.

Every avenue I turned down, I would inevitably run into numerous issues attempting to create a workflow. While, I was able to get some ideas to work successfully, I was unsatisfied, as the complexity required would have created a participation barrier to entry.

Fortunately, I was not alone in my thinking and I discovered last week that the people at Leanpub had solved exactly these issues that needed to be overcome to make this a reality.

Licensing

A project must be licensed under a community friendly or open source license.  For more information on OWASP recommended licenses, please see OWASP Licenses. While OWASP does not promote any particular license over another, the vast majority of projects have chosen a Creative Commons license variant for documentation projects, or a GNU General Public License variant for tools and code projects.

The OWASP Security Principles are free to use. In fact it is encouraged!!! Additionally, I also encourage you to contribute back to the project. I have no monopoly on this knowledge; however, we all have pieces of this knowledge from our experience. Let's begin by putting our individual pieces together to make something great. Great things happen when people work together.

The OWASP Security Principles are licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.

What is OWASP Security Principles Project?

Here you should add a short description of what your project actually does. What is the primary goal of your project, and why is it important?

The end goal is to identify, cite, and document the fundamental principles of information security. Once this is well organised, I think it would be great to publish this through the OWASP Press. Of course, it will always remain freely available, and any money collected will go directly into the project to absorb costs with any remaining funds going to the OWASP Foundation.

This document should serve as a guide to technical architects and designers outlining the fundamental principles of security.

Presentation

This is where you can link to slide presentations related to your project.


AppSec USA 2013 [1]

Project Leader

A project leader is the individual who decides to lead the project throughout its lifecycle. The project leader is responsible for communicating the project’s progress to the OWASP Foundation, and he/she is ultimately responsible for the project’s deliverables. The project leader must provide OWASP with his/her real name and contact e-mail address for his/her project application to be accepted, as OWASP prides itself on the openness of its products, operations, and members.


Related Projects

This is where you can link to other OWASP Projects that are similar to yours.

Quick Download

This is where you can link to your repository.

The home of the OWASP Security Principles is on GitHub. You are encourged to fork, edit and push your changes back to the project through git or edit the project directly on github.

However, if you like you may also download the master repository from the following links:

News and Events

This is where you can link to press your project has been a part of. Appropriate press includes: Project Leader interviews, articles written about your project, and videos about your project.

  • [20 Nov 2013] News 2
  • [30 Sep 2013] News 1

In Print

This is where you place links to where your project product can be downloaded or purchased, in the case of a book.

This project can be purchased as a print on demand book from Lulu.com

Classifications

Owasp-incubator-trans-85.png
Cc-button-y-sa-small.png
Project Type Files DOC.jpg

Leanpub

Leanpub is a lean workflow applied to documentation. Publishing is indeed lean; as in Toyota lean; in fact it is just-in-time like the Qin Dynasty's terra cotta warriors! In fact they have written a very interesting manifesto about the future of publishing that I found to be very insightful and well researched. I highly recommend reading it if you are interested in such things.

While Leanpub is full of coolness for authors, I want to talk about how it works. Leanpub works via dropbox and plain-text markdown files.

After joining the site, you create a book by clicking a 'Create a lean pub book now' link; which takes you to a page that asks for the book title and a URL; and you submit the form with a 'create my book' button. Leanpub then publishes a manuscript folder to dropbox and shares it with you, and sets up a storefront for the book at the url you specified.

The manuscript is written in markdown<ref>Markdown is a very cool plain-text format that can be compiled by tools like pandoc into numerous outputs; including latex, mediawiki, doc, and html to name but a very few. Using pandoc the very same markdown text can easily be turned into mediawiki content for the OWASP wiki. </ref>, However, since markdown is a simple markup format it doesn't have any file inclusion features, so everything is expected to be in a single file. This is a problem because it is very difficult for many authors to make changes to a single file, and also because it is simply nicer to separate out ideas that belong together into chapters.

This is one of the issues I ran into when attempting to build this for OWASP myself. I tried using makefiles and GPP to overcome this limitation of 'everything in a single file.'

Leanpub's answer is a simple textile called book.txt that simply lists the files in the order they are to be include as such:

about-the-book.md
acknowledgments.md
introduction.md
chapter-01.md
chapter-02.md
chapter-03.md
appendix-01.md
appendix-02.md

And with that the problem is solved, simply and elegantly. And unlike my attempts, it solves it without having to acquire and compile software to participate in authoring. Keeping the barrier to participation very low.

Dropbox's killer feature is sharing. However, while sharing is awesome; it is best used for distribution of information that doesn't change often. Additionally, it while dropbox keeps a complete history of files; dropbox doesn't provide the granularity of history that a good version control system does. This makes sense because sharing is about distribution of mostly 'static' content.

However, what is needed for massive collaboration, is good distributed version control software which is built with changes in mind. Particularly where you can have an infinite number of authors. You need something that has merging of conflicts built into its DNA. The coup d'état of distributed version control systems is Linus Torvald's git project. And the best place to host a public git repository is arguably github.

Github

Git is an amazing tool for community collaboration and change management so the final step is putting the shared dropbox under git version control and pushing the repository to github. Incidentally, OWASP has a github repositoryy and members of the community should be encouraged to use it.

In this example the dropbox and the github fork are on the same machine, However, they could easily be different machines; and in practice they will be as each author will have the github fork and only the project leader will have the dropbox.

To start an OWASP Publication, with the browser of your choice:

  1. Create a book at lean pub. (in this example AppSensor)
  2. Create a new repo at github. (In this example AppSensor-Handbook)

In a terminal:

  1. cd ~/dropbox/AppSensor
  2. git init
  3. git remote add origin https://github.com/OWASP/AppSensor-Handbook.git
  4. git push -u origin master

Everything is now ready for mass collaboration and realtime publication! In order for Authors to participate in the publication process:

  1. Download your favorite github.com client for mac or windows (or use the command line if your are so inclined).
  2. Clone the github.com repository.
  3. Fork your own branch.
  4. Edit the manuscript.
  5. push the changes.

Once the authors are done making changes or through the use of a git branching model. The project lead who has the dropbox computer will need to goto the dropbox folder and 'git -pull' the changes from authors at github. This will automatically syncs the leanpub website which shares the dropbox folder. The project owner can then publish the updates by navigating to the leanpub website and clicking the 'create a preview of my book' on actions tab.

While I appreciate that this is somewhat manual, github has service hook's that could be used to automate this workflow completely. I am currently exploring the best way to do this. If the dropbox is hosted remotely as well then the 'git -pull' can be automated. This need to be followed by a publish request with leanpub; and while it has some authorisation tokens and oner 'anti-automation' cookies; it would be trivial for most of the OWASP community to issue the post request to leanpub in an automated way.

Contributors

The success of OWASP is due to a community of enthusiasts and contributors that work to make our projects great. This is also true for the success of your project. Be sure to give credit where credit is due, no matter how small! This should be a brief list of the most amazing people involved in your project. Be sure to provide a link to a complete list of all the amazing people in your project's community as well.

The OWASP Security Principles project is developed by a worldwide team of volunteers. A live update of project contributors is found here.

The first contributors to the project were:

A project roadmap is the envisioned plan for the project. The purpose of the roadmap is to help others understand where the project is going. It gives the community a chance to understand the context and the vision for the goal of the project. Additionally, if a project becomes inactive, or if the project is abandoned, a roadmap can help ensure a project can be adopted and continued under new leadership.  

Roadmaps vary in detail from a broad outline to a fully detailed project charter. Generally speaking, projects with detailed roadmaps have tended to develop into successful projects. Some details that leaders may consider placing in the roadmap include: envisioned milestones, planned feature enhancements, essential conditions, project assumptions, development timelines, etc. You are required to have at least 4 milestones for every year the project is active.

As of October 2013, the priorities are:

  • Finish the referencing for each principle.
  • Update the Project Template.
  • Use the OWASP Press to develop a book.
  • Finish and publish the book on Lulu.

Involvement in the development and promotion of the OWASP Security Principles Project is actively encouraged! You do not have to be a security expert in order to contribute. Some of the ways you can help:

  • Helping find references to some of the principles.
  • Project administration support.
  • Wiki editing support.
  • Writing support for the book.