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

+

The OWASP press project is proposal that allows community authoring and edditing 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.

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.

Line 16:

Line 16:

==Description==

==Description==

−

−

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.

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.

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, 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?

+

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.

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.

Line 37:

Line 31:

==Licensing==

==Licensing==

−

<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->

+

'''The OWASP Press is free to use. In fact it is encouraged!!!

−

<span style="color:#ff0000">

+

−

A project must be licensed under a community friendly or open source license. For more information on OWASP recommended licenses, please see [https://www.owasp.org/index.php/OWASP_Licenses 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.

+

−

</span>

+

−

'''The OWASP Security Principles are free to use. In fact it is encouraged!!!

+

The OWASP Press is 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.

−

'' 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.

+

* [https://github.com/ GitHub] is a free to use service, GitHub, Inc. owns the copyright on the github service.

+

* [https://leanpub.com/ Leanpub] is a free to use service, Ruboss Technology Corporation owns the copyright on the leanpub service.

<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->

<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->

Line 72:

Line 63:

== Project Leader ==

== Project Leader ==

−

−

<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->

−

<span style="color:#ff0000">

−

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.

−

</span>

* [https://www.owasp.org/index.php/User:Dennis_Groves Dennis Groves]

* [https://www.owasp.org/index.php/User:Dennis_Groves Dennis Groves]

−

== Related Projects ==

== Related Projects ==

Line 138:

Line 123:

|}

|}

−

=FAQs=

+

= Getting Started =

+

== 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.'

+

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.

−

</span>

+

+

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 [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.

+

</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.

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.

+

+

=Editing=

+

[http://criticmarkup.com CriticMarkup] is a way for authors and editors to track changes to documents in plain text. As with [http://en.wikipedia.org/wiki/Markdown Markdown], small groups of distinctive characters allow you to highlight insertions, deletions, substitutions and comments, all without the overhead of heavy, proprietary office suites.

# Critic Markup shall be computer readable except where it conflicts with rule 1. Markup syntax should be easily parsed with simple regular expressions to support a wide variety of implementations.

+

# Critic Markup shall be compatible with existing markup syntax for Markdown, MultiMarkdown and HTML except where it conflicts with rules one or two. Many users of plain text write in combinations of Markdown and HTML. Critic Markup should work alongside that syntax.

+

+

'''The Basic Syntax'''

+

There are five types of Critic marks:

−

==How can I participate in your project?==

+

<pre>Addition {++ ++}

−

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.

+

Deletion {-- --}

+

Substitution {~~ ~&gt; ~~}

+

Comment {&gt;&gt; &lt;&lt;}

+

Highlight {{ }}{&gt;&gt; &lt;&lt;} </pre>

+

Using these {~~ six ~&gt; five ~~} basic marks you can {++ successfully ++} copy edit in plain text. {&gt;&gt; Although modern word processing programs can do some amazing things—adding charts, tables, and images, applying sophisticated formatting—there’s one thing they can’t do: Guarantee that the words I write today will be readable ten years from now. That’s just one of the reasons I prefer to work in plain text: It’s timeless. My grandchildren will be able to read a text file I create today, long after anybody can remember what the heck a .dotx file is. &lt;&lt;}

−

==If I am not a programmer can I participate in your project?==

+

'''Conclusion'''

−

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.

+

+

Combine this with [http://git-scm.com git version control] and you have a complete history of changes to your documents in plain text, including reviewer feedback! Now even reviewer can participate in the [http://scriptogr.am/dennis-groves/post/owasp-press OWASP Press].

Latest revision as of 14:54, 27 November 2013

The OWASP Press Project

The OWASP press project is proposal that allows community authoring and edditing 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

The OWASP Press is free to use. In fact it is encouraged!!!

The OWASP Press is 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.

GitHub is a free to use service, GitHub, Inc. owns the copyright on the github service.

Leanpub is a free to use service, Ruboss Technology Corporation owns the copyright on the leanpub service.

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.

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

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'sterra 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:

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.

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 or 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 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.

CriticMarkup is a way for authors and editors to track changes to documents in plain text. As with Markdown, small groups of distinctive characters allow you to highlight insertions, deletions, substitutions and comments, all without the overhead of heavy, proprietary office suites.

The Three Laws

Critic Markup shall be human readable. A human with a simple text editor can easily read and comprehend any text containing Critic Markup.

Critic Markup shall be computer readable except where it conflicts with rule 1. Markup syntax should be easily parsed with simple regular expressions to support a wide variety of implementations.

Critic Markup shall be compatible with existing markup syntax for Markdown, MultiMarkdown and HTML except where it conflicts with rules one or two. Many users of plain text write in combinations of Markdown and HTML. Critic Markup should work alongside that syntax.

Using these {~~ six ~> five ~~} basic marks you can {++ successfully ++} copy edit in plain text. {>> Although modern word processing programs can do some amazing things—adding charts, tables, and images, applying sophisticated formatting—there’s one thing they can’t do: Guarantee that the words I write today will be readable ten years from now. That’s just one of the reasons I prefer to work in plain text: It’s timeless. My grandchildren will be able to read a text file I create today, long after anybody can remember what the heck a .dotx file is. <<}

Conclusion

Combine this with git version control and you have a complete history of changes to your documents in plain text, including reviewer feedback! Now even reviewer can participate in the OWASP Press.

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.

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: