You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ev...@apache.org on 2014/06/26 23:09:15 UTC

svn commit: r1605910 - in /jclouds/site-content: blog/ blog/2014/06/ blog/2014/06/25/ blog/2014/06/25/walk-n-doc/ blog/page2/ blog/page3/ blog/page4/ css/ img/posts/

Author: everett
Date: Thu Jun 26 21:09:14 2014
New Revision: 1605910

URL: http://svn.apache.org/r1605910
Log:
deploy jclouds site content

Added:
    jclouds/site-content/blog/2014/06/
    jclouds/site-content/blog/2014/06/25/
    jclouds/site-content/blog/2014/06/25/walk-n-doc/
    jclouds/site-content/blog/2014/06/25/walk-n-doc/index.html
    jclouds/site-content/img/posts/
    jclouds/site-content/img/posts/jenkins.png   (with props)
    jclouds/site-content/img/posts/pedestrian-sign.jpg   (with props)
    jclouds/site-content/img/posts/walk-n-doc-01.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-02.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-03.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-04.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-05.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-06.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-07.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-08.png   (with props)
    jclouds/site-content/img/posts/walk-n-doc-09.png   (with props)
Modified:
    jclouds/site-content/blog/atom.xml
    jclouds/site-content/blog/index.html
    jclouds/site-content/blog/page2/index.html
    jclouds/site-content/blog/page3/index.html
    jclouds/site-content/blog/page4/index.html
    jclouds/site-content/css/style.css

Added: jclouds/site-content/blog/2014/06/25/walk-n-doc/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2014/06/25/walk-n-doc/index.html?rev=1605910&view=auto
==============================================================================
--- jclouds/site-content/blog/2014/06/25/walk-n-doc/index.html (added)
+++ jclouds/site-content/blog/2014/06/25/walk-n-doc/index.html Thu Jun 26 21:09:14 2014
@@ -0,0 +1,436 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+<title>Apache jclouds&reg; :: Walk n' Doc</title>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="description" content="">
+<meta name="author" content="">
+
+<!--link rel="stylesheet/less" href="less/bootstrap.less" type="text/css" /-->
+<!--link rel="stylesheet/less" href="less/responsive.less" type="text/css" /-->
+<!--script src="js/less-1.3.3.min.js"></script-->
+<!--append ‘#!watch’ to the browser URL, then refresh the page. -->
+
+<link href="/css/bootstrap.min.css" rel="stylesheet">
+<link href="/css/style.css" rel="stylesheet">
+<link href="/css/syntax.css" rel="stylesheet">
+
+<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+<!--[if lt IE 9]>
+<script src="js/html5shiv.js"></script>
+<![endif]-->
+
+<!-- Fav and touch icons -->
+<!--
+<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/img/apple-touch-icon-144-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/apple-touch-icon-114-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/apple-touch-icon-72-precomposed.png">
+<link rel="apple-touch-icon-precomposed" href="/img/apple-touch-icon-57-precomposed.png">
+-->
+<link rel="shortcut icon" href="/favicon.ico">
+
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Blog Posts Feed">
+<link rel="alternate" type="application/atom+xml" href="/releasenotes/atom.xml" title="Release Notes Feed">
+
+<script type="text/javascript" src="/js/jquery.min.js"></script>
+<script type="text/javascript" src="/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="/js/toc.js"></script>
+
+<script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-8638379-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+     })();
+</script>
+<script type="text/javascript">
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+     })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-47106724-1', 'jclouds.apache.com');
+    ga('send', 'pageview');
+</script>
+
+    </head>
+    <body>
+        <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" href="/">Apache jclouds &reg;</a>
+        </div>
+
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+            <ul class="nav navbar-nav">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Getting Started<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/start/what-is-jclouds/">What Is Apache jclouds?</a></li>
+                        <li><a href="/start/install/">Installation Guide</a></li>
+                        <li class="divider"></li>
+                        <li><a href="/start/concepts/">Core Concepts</a></li>
+                        <li><a href="/start/compute/">ComputeService</a></li>
+                        <li><a href="/start/blobstore/">BlobStore</a></li>
+                        <li><a href="http://github.com/jclouds/jclouds-examples">Examples</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/reference/providers/">Cloud Providers</a></li>
+                        <li><a href="/guides">User Guides</a></li>
+                        <li><a href="/reference/troubleshooting/">Troubleshooting</a></li>
+                        <li><a href="/reference/configuration/">Configuration</a></li>
+                        <li><a href="/reference/logging/">Logging</a></li>
+                        <li><a href="/reference/javadoc/">Javadoc</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Developer Guides</li>
+                        <li><a href="http://wiki.apache.org/jclouds/">Wiki</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/community/">Get In Touch!</a></li>
+                        <li><a href="http://www.meetup.com/jclouds/">Attend An Event</a></li>
+                        <li><a href="/community/users/">Who Is Using jclouds?</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Contribute</li>
+                        <li><a href="/reference/report-a-bug/">Report a Bug</a></li>
+                        <li><a href="http://wiki.apache.org/jclouds/How%20to%20Contribute">How To Contribute Code</a></li>
+                        <li><a href="http://wiki.apache.org/jclouds/How%20to%20Contribute%20Documentation">How To Contribute Documentation</a></li>
+                    </ul>
+                </li>
+                <li><a href="/blog">Blog</a></li>
+            </ul>
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Release Notes<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <!-- only keep the release notes for supported versions in this list -->
+                        <li><a href="/releasenotes/1.7.3">1.7.3</a></li>
+                        <li><a href="/releasenotes/1.7.2">1.7.2</a></li>
+                        <li><a href="/releasenotes/1.7.1">1.7.1</a></li>
+                        <li><a href="/releasenotes/1.7.0">1.7.0</a></li>
+                        <li><a href="/releasenotes/1.6.3">1.6.3</a></li>
+                        <li><a href="/releasenotes/1.6.2">1.6.2</a></li>
+                        <li><a href="/releasenotes/1.6.1">1.6.1</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Previous releases</li>
+                        <li><a href="/releasenotes">Release archive</a></li>
+                    </ul>
+                </li>
+                <li>
+                    <div>
+                        <a class="btn btn-success navbar-btn" href="/start/install/">
+                            <span class="glyphicon glyphicon-download"></span>
+                            Install
+                        </a>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+</nav>
+
+        <div class="container">
+            <div class="page-header">
+                <h1>Walk n' Doc</h1>
+                <span class="text-muted">25 June 2014, by <a href="https://twitter.com/everett_toews">Everett Toews</a></span>
+            </div>
+            <p><img class="img-right" src="/img/posts/pedestrian-sign.jpg"/>A common complaint about many open source projects is documentation. Insufficient, incorrect, non-existent, hard to find, and difficult to update are things we typically all hear. There are a lot of different ways to tackle these problems. There's no silver bullet but one of my favourite tactics is lowering the barriers for absolutely anyone to walk up and contribute documentation.</p>
+
+<!--more-->
+
+
+<h2>Lowering the Barriers</h2>
+
+<p>Lowering the barriers means:</p>
+
+<ol>
+<li>Using a platform conducive to contributions</li>
+<li>Using ubiquitous documentation editors</li>
+<li>Using a common and well understood documentation markup language</li>
+<li>Not requiring your contributors to install and configure tools</li>
+<li>Providing a preview of the updates to make reviews easier</li>
+</ol>
+
+
+<p>I built a system for the <a href="http://jclouds.apache.org/">Apache jclouds</a> community that lowers these barriers. But before getting into the details of exactly how I implemented this, let's take a look at the process of actually making a contribution.</p>
+
+<h2>The Process</h2>
+
+<p>There are 3 actors in this process:</p>
+
+<ul>
+<li>The contributor who wants to improve the jclouds' documentation.</li>
+<li>The reviewer who is most likely a committer on jclouds that will review the changes.</li>
+<li>The doc system responsible for building the staging website and making it available to the contributor and the reviewer.</li>
+</ul>
+
+
+<p>This is the process they go through:</p>
+
+<ol>
+<li>The contributor, wanting to make an improvement, clicks on the Fix This Page link at the bottom of any page on the jclouds <a href="http://jclouds.apache.org/">website</a> (<a href="/img/posts/walk-n-doc-01.png">screenshot</a>).</li>
+<li>The contributor edits the page while GitHub automatically forks the <a href="https://github.com/jclouds/jclouds-site/">jclouds-site repo</a> in the background, if necessary (<a href="/img/posts/walk-n-doc-02.png">screenshot</a>). Note that the contributor needs a GitHub account and will need to be logged in.</li>
+<li>The contributor proposes the edits while GitHub automatically create a branch for the commit (<a href="/img/posts/walk-n-doc-03.png">screenshot</a>).</li>
+<li>The contributor creates a pull request (<a href="/img/posts/walk-n-doc-04.png">screenshot</a>).</li>
+<li>The doc system automatically builds the entire jclouds website with the contributor's edits included and comments on the pull request when done (<a href="/img/posts/walk-n-doc-05.png">screenshot</a>).</li>
+<li>The doc system automatically uploads the staging jclouds website to <a href="http://jclouds.apache.org/guides/rackspace/#files">Rackspace Cloud Files</a> and comments on the pull request with a link to the staging website when done (<a href="/img/posts/walk-n-doc-06.png">screenshot</a>).</li>
+<li>The contributor and the reviewer both click on the link to the staging website so they can both review the exact same rendered changes (<a href="/img/posts/walk-n-doc-07.png">screenshot</a>).</li>
+<li>If the reviewer requests changes, the contributor edits the file(s) within the pull request and proposes those edits in an additional commit. The process goes back to #5 (<a href="/img/posts/walk-n-doc-08.png">screenshot</a>).</li>
+<li>The reviewer rejoices when the changes look good and merges the pull request (<a href="/img/posts/walk-n-doc-09.png">screenshot</a>).</li>
+</ol>
+
+
+<div class="row clearfix">
+  <div class="col-md-8 column">
+    <table class="table table-bordered">
+      <tr>
+        <td>1. <a href="/img/posts/walk-n-doc-01.png"><img src="/img/posts/walk-n-doc-01.png" width="300"></a></td>
+        <td>2. <a href="/img/posts/walk-n-doc-02.png"><img src="/img/posts/walk-n-doc-02.png" width="300"></a></td>
+        <td>3. <a href="/img/posts/walk-n-doc-03.png"><img src="/img/posts/walk-n-doc-03.png" width="300"></a></td>
+      </tr>
+      <tr>
+        <td>4. <a href="/img/posts/walk-n-doc-04.png"><img src="/img/posts/walk-n-doc-04.png" width="300"></a></td>
+        <td>5. <a href="/img/posts/walk-n-doc-05.png"><img src="/img/posts/walk-n-doc-05.png" width="300"></a></td>
+        <td>6. <a href="/img/posts/walk-n-doc-06.png"><img src="/img/posts/walk-n-doc-06.png" width="300"></a></td>
+      </tr>
+      <tr>
+        <td>7. <a href="/img/posts/walk-n-doc-07.png"><img src="/img/posts/walk-n-doc-07.png" width="300"></a></td>
+        <td>8. <a href="/img/posts/walk-n-doc-08.png"><img src="/img/posts/walk-n-doc-08.png" width="300"></a></td>
+        <td>9. <a href="/img/posts/walk-n-doc-09.png"><img src="/img/posts/walk-n-doc-09.png" width="300"></a></td>
+      </tr>
+    </table>
+  </div>
+</div>
+
+
+<p>While this might seem like a long process, it can actually be very quick. The process could happen in less than 5 minutes, if a simple edit required no additional changes and the reviewer signed off right away. It's important to note that there is no incidental complexity here. The process is as efficient as it could possibly be with respect to GitHub's workflow.</p>
+
+<h2>The Implementation</h2>
+
+<p>Here's how I implemented this doc system in the jclouds community.</p>
+
+<ol>
+<li>A GitHub account is needed to start a pull request</li>
+<li>Markdown and HTML/CSS with Jekyll</li>
+<li>Any web browser</li>
+<li>Jenkins to install and configure the doc build tools so the contributor doesn't have to</li>
+<li>Jenkins' jobs to build the website with Jekyll and to upload the staging jclouds website to Rackspace Cloud Files using jclouds</li>
+</ol>
+
+
+<h3>GitHub</h3>
+
+<p>Many people have <a href="https://github.com/">GitHub</a> accounts already and getting one is trivial. It also gives the jclouds community a good idea about who is making the contribution. The <a href="https://help.github.com/articles/using-pull-requests">pull request</a> is the primary unit of collaboration on GitHub.</p>
+
+<h3>Markdown and HTML/CSS</h3>
+
+<p>Simple <a href="http://daringfireball.net/projects/markdown/">Markdown</a> documents with HTML/CSS make up the content of the jclouds website documentation. They are combined using <a href="http://jekyllrb.com/">Jekyll</a>, a template engine, so that contributors can focus on the content and not the layout of the entire website.</p>
+
+<h3>Web Browser</h3>
+
+<p>It doesn't get anymore ubiquitous than the web browser. The Markdown documents can be edited in a textarea on GitHub from a web browser. The web has trained us to fill out online forms and this is no different. You could just as easily go through the process above on your mobile phone.</p>
+
+<h3>Jenkins</h3>
+
+<p><img class="img-right" src="/img/posts/jenkins.png"/><a href="http://jenkins-ci.org/">Jenkins</a>, at the heart of the doc system, is responsible for building the website with Jekyll and uploading the staging jclouds website to Rackspace Cloud Files using jclouds. Installation and configuration of Jenkins itself is outside the scope of this post but it's relatively easy to get started using it. You need the <a href="http://blog.cloudbees.com/2012/01/better-integration-between-jenkins-and.html">GitHub Plugin and configure a webhook</a> to fire when a pull request is made to your GitHub repo.</p>
+
+<h3>Jenkins Jobs</h3>
+
+<p>Jenkins jobs are what get the work done in the jclouds doc system. The 2 jobs are:</p>
+
+<ol>
+<li>jclouds-site-pull-requests to build the website with Jekyll</li>
+<li>jclouds-site-staging to upload the website to Cloud Files with jclouds.</li>
+</ol>
+
+
+<h4>Job: jclouds-site-pull-requests</h4>
+
+<p>Relevant settings:</p>
+
+<ul>
+<li>Project name: jclouds-site-pull-requests</li>
+<li>Source Code Management
+
+<ul>
+<li>Repository URL: git://github.com/jclouds/jclouds-site.git</li>
+<li>Branches to build: origin/master</li>
+</ul>
+</li>
+<li>Build Triggers
+
+<ul>
+<li>Build pull requests to the repository: Checked</li>
+</ul>
+</li>
+</ul>
+
+
+<p>Execute shell 1:</p>
+
+<script src="https://gist.github.com/everett-toews/e2061a056b31b1bc5a2c.js"></script>
+
+
+<p>More relevant settings:</p>
+
+<ul>
+<li>Post-build Actions
+
+<ul>
+<li>Files to archive: _site/<em>*/</em></li>
+<li>Projects to build: jclouds-site-staging</li>
+</ul>
+</li>
+</ul>
+
+
+<h4>Job: jclouds-site-staging</h4>
+
+<p>Relevant settings:</p>
+
+<ul>
+<li>Project name: jclouds-site-staging</li>
+<li>Source Code Management
+
+<ul>
+<li>None</li>
+</ul>
+</li>
+<li>Build Triggers
+
+<ul>
+<li>Build after other projects are built: Checked</li>
+<li>Project names: jclouds-site-pull-requests</li>
+</ul>
+</li>
+<li>Build
+
+<ul>
+<li>Copy artifacts from another project
+
+<ul>
+<li>Project name: jclouds-site-pull-requests</li>
+<li>Which build: Upstream build that triggered this job</li>
+<li>Artifacts to copy: _site/<em>*/</em></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+
+<p>Execute shell 1:</p>
+
+<script src="https://gist.github.com/everett-toews/034473bad5ad6cd5cad2.js"></script>
+
+
+<p>Execute shell 2:</p>
+
+<script src="https://gist.github.com/everett-toews/9dd74e0f655e6b567253.js"></script>
+
+
+<p>comment.py</p>
+
+<script src="https://gist.github.com/everett-toews/4e7295ecfd33ac14d92e.js"></script>
+
+
+<p>The jclouds community actually uses <a href="http://www.cloudbees.com/">CloudBees</a> extensively as the place to host our Jenkins jobs. However, these jobs have been generalized and should run on Jenkins with the GitHub plugin.</p>
+
+<h2>Coda</h2>
+
+<p>This isn't just about documentation; it's about building community through contribution. If you can get a user to make a documentation contribution, that user will be much more engaged in your community. They will have feeling of ownership and pride in a piece of software that they depend on and that they have improved. These are the users who will be with you through thick and thin, and who will find other ways to contribute to your project.</p>
+
+<p>You might not be able to implement this system exactly as I've done it in the jclouds community but the important part is finding ways to lower the barriers to contributing documentation. I didn't build this system in a day. Tackle each of the barriers above one at a time. Eventually you'll be able to put the pieces together into a system that works for you.</p>
+
+            
+            <div id="comments">
+                <hr/>
+                <div id="disqus_thread"></div>
+<script type="text/javascript">
+var disqus_shortname = 'jclouds';
+/* * * DON'T EDIT BELOW THIS LINE * * */
+(function() {
+    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+})();
+</script>
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript>
+<a href="http://disqus.com" class="dsq-brlink">Comments powered by <span class="logo-disqus">Disqus</span></a>
+
+            </div>
+            
+            <div class="row clearfix">
+                <div id="footer" class="col-md-12 column">
+                    <div id="footer">
+    <hr/>
+    <div class="row clearfix">
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/start/">Getting Started</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/reference/report-a-bug/">Report a Bug</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a href="https://github.com/jclouds/jclouds-site/edit/master/_posts/2014-06-25-walk-n-doc.md">Fix This Page</a><a class="text-primary" href="https://wiki.apache.org/jclouds/How%20to%20Contribute%20Documentation"><sup>*</sup></a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="https://wiki.apache.org/jclouds/How%20to%20Contribute">Contribute Code</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/community/">Contact Us</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="https://twitter.com/jclouds">Follow Us</a>
+            </p>
+        </div>
+    </div>
+    <hr style="margin-top: 10px"/>
+    <div class="row clearfix">
+        <div class="col-md-12 column">
+            <p class="text-center">
+              Copyright &copy; 2011-2014 <a href="http://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.
+            </p>
+            <p class="text-center">
+              Apache, jclouds, Apache jclouds, the jclouds logo, and the Apache feather logos are registered trademarks or trademarks of the Apache Software Foundation.
+            </p>
+            <p class="text-center">
+              <img src="/img/feather-small.gif" width="80", height="24"/>
+            </p>
+            <br/>
+        </div>
+    </div>
+</div>
+
+                </div>
+            </div>
+        </div>
+    </body>
+</html>

Modified: jclouds/site-content/blog/atom.xml
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/atom.xml?rev=1605910&r1=1605909&r2=1605910&view=diff
==============================================================================
--- jclouds/site-content/blog/atom.xml (original)
+++ jclouds/site-content/blog/atom.xml Thu Jun 26 21:09:14 2014
@@ -8,6 +8,221 @@
 
   
   <entry>
+    <id>http://jclouds.apache.org/blog/2014/06/25/walk-n-doc</id>
+    <title type="html"><![CDATA[Walk n' Doc]]></title>
+    <link href="http://jclouds.apache.org/blog/2014/06/25/walk-n-doc"/>
+    <updated>2014-06-25T00:00:00Z</updated>
+    <content type="html"><![CDATA[<p><img class="img-right" src="/img/posts/pedestrian-sign.jpg"/>A common complaint about many open source projects is documentation. Insufficient, incorrect, non-existent, hard to find, and difficult to update are things we typically all hear. There are a lot of different ways to tackle these problems. There's no silver bullet but one of my favourite tactics is lowering the barriers for absolutely anyone to walk up and contribute documentation.</p>
+
+<!--more-->
+
+
+<h2>Lowering the Barriers</h2>
+
+<p>Lowering the barriers means:</p>
+
+<ol>
+<li>Using a platform conducive to contributions</li>
+<li>Using ubiquitous documentation editors</li>
+<li>Using a common and well understood documentation markup language</li>
+<li>Not requiring your contributors to install and configure tools</li>
+<li>Providing a preview of the updates to make reviews easier</li>
+</ol>
+
+
+<p>I built a system for the <a href="http://jclouds.apache.org/">Apache jclouds</a> community that lowers these barriers. But before getting into the details of exactly how I implemented this, let's take a look at the process of actually making a contribution.</p>
+
+<h2>The Process</h2>
+
+<p>There are 3 actors in this process:</p>
+
+<ul>
+<li>The contributor who wants to improve the jclouds' documentation.</li>
+<li>The reviewer who is most likely a committer on jclouds that will review the changes.</li>
+<li>The doc system responsible for building the staging website and making it available to the contributor and the reviewer.</li>
+</ul>
+
+
+<p>This is the process they go through:</p>
+
+<ol>
+<li>The contributor, wanting to make an improvement, clicks on the Fix This Page link at the bottom of any page on the jclouds <a href="http://jclouds.apache.org/">website</a> (<a href="/img/posts/walk-n-doc-01.png">screenshot</a>).</li>
+<li>The contributor edits the page while GitHub automatically forks the <a href="https://github.com/jclouds/jclouds-site/">jclouds-site repo</a> in the background, if necessary (<a href="/img/posts/walk-n-doc-02.png">screenshot</a>). Note that the contributor needs a GitHub account and will need to be logged in.</li>
+<li>The contributor proposes the edits while GitHub automatically create a branch for the commit (<a href="/img/posts/walk-n-doc-03.png">screenshot</a>).</li>
+<li>The contributor creates a pull request (<a href="/img/posts/walk-n-doc-04.png">screenshot</a>).</li>
+<li>The doc system automatically builds the entire jclouds website with the contributor's edits included and comments on the pull request when done (<a href="/img/posts/walk-n-doc-05.png">screenshot</a>).</li>
+<li>The doc system automatically uploads the staging jclouds website to <a href="http://jclouds.apache.org/guides/rackspace/#files">Rackspace Cloud Files</a> and comments on the pull request with a link to the staging website when done (<a href="/img/posts/walk-n-doc-06.png">screenshot</a>).</li>
+<li>The contributor and the reviewer both click on the link to the staging website so they can both review the exact same rendered changes (<a href="/img/posts/walk-n-doc-07.png">screenshot</a>).</li>
+<li>If the reviewer requests changes, the contributor edits the file(s) within the pull request and proposes those edits in an additional commit. The process goes back to #5 (<a href="/img/posts/walk-n-doc-08.png">screenshot</a>).</li>
+<li>The reviewer rejoices when the changes look good and merges the pull request (<a href="/img/posts/walk-n-doc-09.png">screenshot</a>).</li>
+</ol>
+
+
+<div class="row clearfix">
+  <div class="col-md-8 column">
+    <table class="table table-bordered">
+      <tr>
+        <td>1. <a href="/img/posts/walk-n-doc-01.png"><img src="/img/posts/walk-n-doc-01.png" width="300"></a></td>
+        <td>2. <a href="/img/posts/walk-n-doc-02.png"><img src="/img/posts/walk-n-doc-02.png" width="300"></a></td>
+        <td>3. <a href="/img/posts/walk-n-doc-03.png"><img src="/img/posts/walk-n-doc-03.png" width="300"></a></td>
+      </tr>
+      <tr>
+        <td>4. <a href="/img/posts/walk-n-doc-04.png"><img src="/img/posts/walk-n-doc-04.png" width="300"></a></td>
+        <td>5. <a href="/img/posts/walk-n-doc-05.png"><img src="/img/posts/walk-n-doc-05.png" width="300"></a></td>
+        <td>6. <a href="/img/posts/walk-n-doc-06.png"><img src="/img/posts/walk-n-doc-06.png" width="300"></a></td>
+      </tr>
+      <tr>
+        <td>7. <a href="/img/posts/walk-n-doc-07.png"><img src="/img/posts/walk-n-doc-07.png" width="300"></a></td>
+        <td>8. <a href="/img/posts/walk-n-doc-08.png"><img src="/img/posts/walk-n-doc-08.png" width="300"></a></td>
+        <td>9. <a href="/img/posts/walk-n-doc-09.png"><img src="/img/posts/walk-n-doc-09.png" width="300"></a></td>
+      </tr>
+    </table>
+  </div>
+</div>
+
+
+<p>While this might seem like a long process, it can actually be very quick. The process could happen in less than 5 minutes, if a simple edit required no additional changes and the reviewer signed off right away. It's important to note that there is no incidental complexity here. The process is as efficient as it could possibly be with respect to GitHub's workflow.</p>
+
+<h2>The Implementation</h2>
+
+<p>Here's how I implemented this doc system in the jclouds community.</p>
+
+<ol>
+<li>A GitHub account is needed to start a pull request</li>
+<li>Markdown and HTML/CSS with Jekyll</li>
+<li>Any web browser</li>
+<li>Jenkins to install and configure the doc build tools so the contributor doesn't have to</li>
+<li>Jenkins' jobs to build the website with Jekyll and to upload the staging jclouds website to Rackspace Cloud Files using jclouds</li>
+</ol>
+
+
+<h3>GitHub</h3>
+
+<p>Many people have <a href="https://github.com/">GitHub</a> accounts already and getting one is trivial. It also gives the jclouds community a good idea about who is making the contribution. The <a href="https://help.github.com/articles/using-pull-requests">pull request</a> is the primary unit of collaboration on GitHub.</p>
+
+<h3>Markdown and HTML/CSS</h3>
+
+<p>Simple <a href="http://daringfireball.net/projects/markdown/">Markdown</a> documents with HTML/CSS make up the content of the jclouds website documentation. They are combined using <a href="http://jekyllrb.com/">Jekyll</a>, a template engine, so that contributors can focus on the content and not the layout of the entire website.</p>
+
+<h3>Web Browser</h3>
+
+<p>It doesn't get anymore ubiquitous than the web browser. The Markdown documents can be edited in a textarea on GitHub from a web browser. The web has trained us to fill out online forms and this is no different. You could just as easily go through the process above on your mobile phone.</p>
+
+<h3>Jenkins</h3>
+
+<p><img class="img-right" src="/img/posts/jenkins.png"/><a href="http://jenkins-ci.org/">Jenkins</a>, at the heart of the doc system, is responsible for building the website with Jekyll and uploading the staging jclouds website to Rackspace Cloud Files using jclouds. Installation and configuration of Jenkins itself is outside the scope of this post but it's relatively easy to get started using it. You need the <a href="http://blog.cloudbees.com/2012/01/better-integration-between-jenkins-and.html">GitHub Plugin and configure a webhook</a> to fire when a pull request is made to your GitHub repo.</p>
+
+<h3>Jenkins Jobs</h3>
+
+<p>Jenkins jobs are what get the work done in the jclouds doc system. The 2 jobs are:</p>
+
+<ol>
+<li>jclouds-site-pull-requests to build the website with Jekyll</li>
+<li>jclouds-site-staging to upload the website to Cloud Files with jclouds.</li>
+</ol>
+
+
+<h4>Job: jclouds-site-pull-requests</h4>
+
+<p>Relevant settings:</p>
+
+<ul>
+<li>Project name: jclouds-site-pull-requests</li>
+<li>Source Code Management
+
+<ul>
+<li>Repository URL: git://github.com/jclouds/jclouds-site.git</li>
+<li>Branches to build: origin/master</li>
+</ul>
+</li>
+<li>Build Triggers
+
+<ul>
+<li>Build pull requests to the repository: Checked</li>
+</ul>
+</li>
+</ul>
+
+
+<p>Execute shell 1:</p>
+
+<script src="https://gist.github.com/everett-toews/e2061a056b31b1bc5a2c.js"></script>
+
+
+<p>More relevant settings:</p>
+
+<ul>
+<li>Post-build Actions
+
+<ul>
+<li>Files to archive: _site/<em>*/</em></li>
+<li>Projects to build: jclouds-site-staging</li>
+</ul>
+</li>
+</ul>
+
+
+<h4>Job: jclouds-site-staging</h4>
+
+<p>Relevant settings:</p>
+
+<ul>
+<li>Project name: jclouds-site-staging</li>
+<li>Source Code Management
+
+<ul>
+<li>None</li>
+</ul>
+</li>
+<li>Build Triggers
+
+<ul>
+<li>Build after other projects are built: Checked</li>
+<li>Project names: jclouds-site-pull-requests</li>
+</ul>
+</li>
+<li>Build
+
+<ul>
+<li>Copy artifacts from another project
+
+<ul>
+<li>Project name: jclouds-site-pull-requests</li>
+<li>Which build: Upstream build that triggered this job</li>
+<li>Artifacts to copy: _site/<em>*/</em></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+
+<p>Execute shell 1:</p>
+
+<script src="https://gist.github.com/everett-toews/034473bad5ad6cd5cad2.js"></script>
+
+
+<p>Execute shell 2:</p>
+
+<script src="https://gist.github.com/everett-toews/9dd74e0f655e6b567253.js"></script>
+
+
+<p>comment.py</p>
+
+<script src="https://gist.github.com/everett-toews/4e7295ecfd33ac14d92e.js"></script>
+
+
+<p>The jclouds community actually uses <a href="http://www.cloudbees.com/">CloudBees</a> extensively as the place to host our Jenkins jobs. However, these jobs have been generalized and should run on Jenkins with the GitHub plugin.</p>
+
+<h2>Coda</h2>
+
+<p>This isn't just about documentation; it's about building community through contribution. If you can get a user to make a documentation contribution, that user will be much more engaged in your community. They will have feeling of ownership and pride in a piece of software that they depend on and that they have improved. These are the users who will be with you through thick and thin, and who will find other ways to contribute to your project.</p>
+
+<p>You might not be able to implement this system exactly as I've done it in the jclouds community but the important part is finding ways to lower the barriers to contributing documentation. I didn't build this system in a day. Tackle each of the barriers above one at a time. Eventually you'll be able to put the pieces together into a system that works for you.</p>
+]]></content>
+  </entry>
+  
+  <entry>
     <id>http://jclouds.apache.org/blog/2014/04/23/gsoc</id>
     <title type="html"><![CDATA[GSoC Students]]></title>
     <link href="http://jclouds.apache.org/blog/2014/04/23/gsoc"/>

Modified: jclouds/site-content/blog/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/index.html?rev=1605910&r1=1605909&r2=1605910&view=diff
==============================================================================
--- jclouds/site-content/blog/index.html (original)
+++ jclouds/site-content/blog/index.html Thu Jun 26 21:09:14 2014
@@ -152,29 +152,29 @@
             <p><a href="https://wiki.apache.org/jclouds/How%20to%20Contribute%20Documentation">Write a guest post!</a></p>
 
 
+<h3><a class="text-primary" href="/blog/2014/06/25/walk-n-doc">Walk n' Doc</a></h3>
+<span class="text-muted">25 June 2014, by <a href="https://twitter.com/everett_toews">Everett Toews</a></span>
+<p>A common complaint about many open source projects is documentation. Insufficient, incorrect, non-existent, hard to find, and difficult to update are things we typically all hear. There are a lot of different ways to tackle these problems. There's no silver bullet but one of my favourite tactics is lowering the barriers for absolutely anyone to walk up and contribute documentation.
+</p>
+
 <h3><a class="text-primary" href="/blog/2014/04/23/gsoc">GSoC Students</a></h3>
 <span class="text-muted">23 April 2014, by <a href="https://twitter.com/everett_toews">Everett Toews</a></span>
-<p><p>The <a href="https://developers.google.com/open-source/soc/">Google Summer of Code</a> (GSoC) <a href="https://www.google-melange.com/gsoc/projects/list/google/gsoc2014">accepted projects</a> have been announced and we will have 3 students working on jclouds related projects!</p>
+<p>The Google Summer of Code (GSoC) accepted projects have been announced and we will have 3 students working on jclouds related projects!
 </p>
 
 <h3><a class="text-primary" href="/blog/2014/03/04/jclouds-meetup">jclouds Meetup</a></h3>
 <span class="text-muted">04 March 2014, by <a href="https://twitter.com/everett_toews">Everett Toews</a></span>
-<p><p>Last night we held a jclouds meetup at Cloudera offices in San Francisco. It was a well attended meetup and there were a number of new faces along with our more regular group of attendees. We recorded the whole thing with Google Hangouts on Air and you can get to know everyone in the first 5 minutes!</p>
+<p>Last night we held a jclouds meetup at Cloudera offices in San Francisco. It was a well attended meetup and there were a number of new faces along with our more regular group of attendees. We recorded the whole thing with Google Hangouts on Air and you can get to know everyone in the first 5 minutes!
 </p>
 
 <h3><a class="text-primary" href="/blog/2014/03/03/joining-the-asf-new-site-and-jclouds-1-7">Joining the ASF, new site, and jclouds 1.7!</a></h3>
 <span class="text-muted">03 March 2014, by Ignasi Barrera</span>
-<p><p>It's been a while since our last blog post, and lots has happened since then. There have been many things that have kept us busy, and finally, all the hard work is starting to show up. During this time, we've:</p>
+<p>It's been a while since our last blog post, and lots has happened since then. There have been many things that have kept us busy, and finally, all the hard work is starting to show up. During this time, we've:
 </p>
 
 <h3><a class="text-primary" href="/blog/2013/05/13/jclouds-at-gluecon-2013">jclouds at Gluecon 2013</a></h3>
 <span class="text-muted">13 May 2013, by Adrian Cole</span>
-<p><p><a href="https://twitter.com/everett_toews">Everett Toews</a> is hitting the road, getting some hands on keyboards, and really teaching developers how to use jclouds. He'll be giving a workshop titled <em>"Solve the Cross-Cloud Conundrum with jclouds"</em> at <a href="http://www.gluecon.com/2013/">Gluecon</a> this year. The session is on May 22 from 10:30 to 11:30 am in Breakout 2.</p>
-</p>
-
-<h3><a class="text-primary" href="/blog/2013/04/28/jclouds-1-6-0-released">jclouds 1.6.0 released!</a></h3>
-<span class="text-muted">28 April 2013, by Adrian Cole</span>
-<p><p>jclouds 1.6 represents 7 months of refactoring to essentially "reset" the project 4 years after its founding. The goal was to do less magic and be easier to code and troubleshoot.</p>
+<p>Everett Toews is hitting the road, getting some hands on keyboards, and really teaching developers how to use jclouds. He'll be giving a workshop titled "Solve the Cross-Cloud Conundrum with jclouds" at Gluecon this year. The session is on May 22 from 10:30 to 11:30 am in Breakout 2.
 </p>
 
 

Modified: jclouds/site-content/blog/page2/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/page2/index.html?rev=1605910&r1=1605909&r2=1605910&view=diff
==============================================================================
--- jclouds/site-content/blog/page2/index.html (original)
+++ jclouds/site-content/blog/page2/index.html Thu Jun 26 21:09:14 2014
@@ -152,29 +152,29 @@
             <p><a href="https://wiki.apache.org/jclouds/How%20to%20Contribute%20Documentation">Write a guest post!</a></p>
 
 
+<h3><a class="text-primary" href="/blog/2013/04/28/jclouds-1-6-0-released">jclouds 1.6.0 released!</a></h3>
+<span class="text-muted">28 April 2013, by Adrian Cole</span>
+<p>jclouds 1.6 represents 7 months of refactoring to essentially "reset" the project 4 years after its founding. The goal was to do less magic and be easier to code and troubleshoot.
+</p>
+
 <h3><a class="text-primary" href="/blog/2012/12/12/jclouds-1-5-4-mistletoe-released">jclouds 1.5.4 "Mistletoe" released</a></h3>
 <span class="text-muted">12 December 2012, by Adrian Cole</span>
-<p><p>jclouds community is an international group with over <a href="https://www.ohloh.net/p/jclouds">100</a> contributors since we started in early 2009. The idea of holidays vary, but we decided <strong>Mistletoe</strong> as an appropriate codename for jclouds 1.5.4. Here's why.</p>
+<p>jclouds community is an international group with over 100 contributors since we started in early 2009. The idea of holidays vary, but we decided Mistletoe as an appropriate codename for jclouds 1.5.4. Here's why.
 </p>
 
 <h3><a class="text-primary" href="/blog/2012/11/17/jclouds-1-5-3-out-the-door">jclouds 1.5.3 out the door</a></h3>
 <span class="text-muted">17 November 2012, by Adrian Cole</span>
-<p><p>Released on 2012-11-14, jclouds 1.5.3 includes minor fixes, and a few important updates.</p>
+<p>Released on 2012-11-14, jclouds 1.5.3 includes minor fixes, and a few important updates.
 </p>
 
 <h3><a class="text-primary" href="/blog/2012/11/09/500-jclouds-builds-on-buildhive-and-counting">500 jclouds builds on BuildHive and counting...</a></h3>
 <span class="text-muted">09 November 2012, by Adrian Cole</span>
-<p><p>At jclouds, we've been running our Jenkins continuous integration jobs in CloudBees' <a href="http://www.cloudbees.com/dev">DEV@cloud</a> for a while now (CloudBees has a <a href="http://www.cloudbees.com/foss">FOSS</a> programme). We also have an active and ever-increasing contributor community, which amongst others means... lots of pull requests.</p>
+<p>At jclouds, we've been running our Jenkins continuous integration jobs in CloudBees' DEV@cloud for a while now (CloudBees has a FOSS programme). We also have an active and ever-increasing contributor community, which amongst others means... lots of pull requests.
 </p>
 
 <h3><a class="text-primary" href="/blog/2012/09/28/jclouds-1-5-is-out">jclouds 1.5 is out!</a></h3>
 <span class="text-muted">28 September 2012, by Adrian Cole</span>
-<p><p>Over 6 months in the making, and just in time for JavaOne, jclouds 1.5 is formally released. Many of you have been awaiting (or helping build) massive new support for OpenStack based clouds. There's even more, such as our new <a href="https://github.com/jenkinsci/jclouds-plugin">Jenkins Plugin</a> and <a href="https://github.com/jclouds/jclouds-cli">command-line utility</a>.</p>
-</p>
-
-<h3><a class="text-primary" href="/blog/2012/07/16/fluency-for-paginated-api-lists">Fluency for paginated api lists</a></h3>
-<span class="text-muted">16 July 2012, by Adrian Cole</span>
-<p><p>The problem of large result sets is something cloud providers want you to have. For example, what better sign of cloud life is there than Amazon S3 having a trillion objects stored so far. The way most cloud apis deal with listing your million (or even thousand) things is to paginate the response.</p>
+<p>Over 6 months in the making, and just in time for JavaOne, jclouds 1.5 is formally released. Many of you have been awaiting (or helping build) massive new support for OpenStack based clouds. There's even more, such as our new Jenkins Plugin and command-line utility.
 </p>
 
 

Modified: jclouds/site-content/blog/page3/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/page3/index.html?rev=1605910&r1=1605909&r2=1605910&view=diff
==============================================================================
--- jclouds/site-content/blog/page3/index.html (original)
+++ jclouds/site-content/blog/page3/index.html Thu Jun 26 21:09:14 2014
@@ -152,29 +152,29 @@
             <p><a href="https://wiki.apache.org/jclouds/How%20to%20Contribute%20Documentation">Write a guest post!</a></p>
 
 
+<h3><a class="text-primary" href="/blog/2012/07/16/fluency-for-paginated-api-lists">Fluency for paginated api lists</a></h3>
+<span class="text-muted">16 July 2012, by Adrian Cole</span>
+<p>The problem of large result sets is something cloud providers want you to have. For example, what better sign of cloud life is there than Amazon S3 having a trillion objects stored so far. The way most cloud apis deal with listing your million (or even thousand) things is to paginate the response.
+</p>
+
 <h3><a class="text-primary" href="/blog/2012/05/02/new-toys-in-1-5-0-alpha-6">New toys in 1.5.0-alpha.6</a></h3>
 <span class="text-muted">02 May 2012, by Adrian Cole</span>
-<p><p>We are very near beta, I promise! In the mean time, we just cut a new codebase with a bunch of cool new toys. Here's a few. Thanks to Adam Lowe, we are getting even deeper into OpenStack with more Keystone support than ever. Setup your code to pull <em>org.jclouds.labs/openstack-keystone</em>, and you can do stuff like this.</p>
+<p>We are very near beta, I promise! In the mean time, we just cut a new codebase with a bunch of cool new toys. Here's a few. Thanks to Adam Lowe, we are getting even deeper into OpenStack with more Keystone support than ever. Setup your code to pull org.jclouds.labs/openstack-keystone, and you can do stuff like this.
 </p>
 
 <h3><a class="text-primary" href="/blog/2012/03/23/take-a-peek-at-vcloud-director-1-5-openstack-and">Take a peek at vCloud Director 1.5, OpenStack, and VirtualBox</a></h3>
 <span class="text-muted">23 March 2012, by Adrian Cole</span>
-<p><p>The jclouds team have been working very hard lately, particularly on a few new apis. We've decided to cage them no longer and cut jclouds 1.5.0-alpha.1. Most notably, we've added the openstack-nova api, and three new providers, all of which discovered via <a href="http://docs.openstack.org/api/openstack-identity-service/2.0/content/">OpenStack Keystone v2.0</a>.</p>
+<p>The jclouds team have been working very hard lately, particularly on a few new apis. We've decided to cage them no longer and cut jclouds 1.5.0-alpha.1. Most notably, we've added the openstack-nova api, and three new providers, all of which discovered via OpenStack Keystone v2.0.
 </p>
 
 <h3><a class="text-primary" href="/blog/2012/03/09/ec2-gets-rid-of-that-if-instancetype-is32bit">EC2 gets rid of that "if instancetype.is32bit" statement</a></h3>
 <span class="text-muted">09 March 2012, by Adrian Cole</span>
-<p><p>2 weeks ago, I started a bit of a rant on EC2's 32bit-only vms.</p>
+<p>2 weeks ago, I started a bit of a rant on EC2's 32bit-only vms.
 </p>
 
 <h3><a class="text-primary" href="/blog/2012/01/21/jclouds-1-3-released">jclouds 1.3 released!</a></h3>
 <span class="text-muted">21 January 2012, by Adrian Cole</span>
-<p><p>The 1.3 release of jclouds includes results of 3-months effort by our contributors. A total of 57 Issues were addressed between jclouds 1.2.0 and the current revision of jclouds 1.3 (1.3.1).</p>
-</p>
-
-<h3><a class="text-primary" href="/blog/2012/01/17/jclouds-training-and-jfokus-stockholm">jclouds training and Jfokus Stockholm</a></h3>
-<span class="text-muted">17 January 2012, by Adrian Cole</span>
-<p><p>For those of you in Stockholm, or coming in for Jfokus, don't miss out on a few nearby events.</p>
+<p>The 1.3 release of jclouds includes results of 3-months effort by our contributors. A total of 57 Issues were addressed between jclouds 1.2.0 and the current revision of jclouds 1.3 (1.3.1).
 </p>
 
 

Modified: jclouds/site-content/blog/page4/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/page4/index.html?rev=1605910&r1=1605909&r2=1605910&view=diff
==============================================================================
--- jclouds/site-content/blog/page4/index.html (original)
+++ jclouds/site-content/blog/page4/index.html Thu Jun 26 21:09:14 2014
@@ -152,19 +152,24 @@
             <p><a href="https://wiki.apache.org/jclouds/How%20to%20Contribute%20Documentation">Write a guest post!</a></p>
 
 
+<h3><a class="text-primary" href="/blog/2012/01/17/jclouds-training-and-jfokus-stockholm">jclouds training and Jfokus Stockholm</a></h3>
+<span class="text-muted">17 January 2012, by Adrian Cole</span>
+<p>For those of you in Stockholm, or coming in for Jfokus, don't miss out on a few nearby events.
+</p>
+
 <h3><a class="text-primary" href="/blog/2011/10/18/jclouds-1-2-released">jclouds 1.2 released!</a></h3>
 <span class="text-muted">18 October 2011, by Adrian Cole</span>
-<p><p>The 1.2 release of jclouds includes results of almost 2 months effort by our <a href="/documentation/reference/apps-that-use-jclouds">community</a>. A total of 55 Issues were addressed between jclouds 1.1 and 1.2, stabilizing the cloud so you don't have to!</p>
+<p>The 1.2 release of jclouds includes results of almost 2 months effort by our community. A total of 55 Issues were addressed between jclouds 1.1 and 1.2, stabilizing the cloud so you don't have to!
 </p>
 
 <h3><a class="text-primary" href="/blog/2009/05/13/catching-exceptions-with-less-keystrokes">Catching exceptions with fewer keystrokes</a></h3>
 <span class="text-muted">13 May 2009, by Adrian Cole</span>
-<p><p>Some of us hate checked exceptions, but still use them for one reason or another. A common problem we have is unnecessary exception nesting, or runtime swallowing. This often leads to the all to familiar and crufty code with a million catch blocks. jclouds has a slightly different approach that strikes a balance, allowing checked exceptions to be dealt with, but without the pain of so many lines of repetitious code.</p>
+<p>Some of us hate checked exceptions, but still use them for one reason or another. A common problem we have is unnecessary exception nesting, or runtime swallowing. This often leads to the all to familiar and crufty code with a million catch blocks. jclouds has a slightly different approach that strikes a balance, allowing checked exceptions to be dealt with, but without the pain of so many lines of repetitious code.
 </p>
 
 <h3><a class="text-primary" href="/blog/2009/05/11/jclouds-s3-beta-released">jclouds-s3 beta released</a></h3>
 <span class="text-muted">11 May 2009, by Adrian Cole</span>
-<p><p>jclouds provides any-weight clouds tools for Java 5 and later: you choose the depth you want. We are pleased to announce our first beta of <em>jclouds-s3</em>. <em>jclouds-s3</em> provides both <em>Map&lt;String,InputStream></em> and <em>FutureCommand</em> interfaces to <a href="http://aws.amazon.com/s3/">Amazon S3</a>.</p>
+<p>jclouds provides any-weight clouds tools for Java 5 and later: you choose the depth you want. We are pleased to announce our first beta of jclouds-s3. jclouds-s3 provides both Map&lt;String,InputStream> and FutureCommand interfaces to Amazon S3.
 </p>
 
 

Modified: jclouds/site-content/css/style.css
URL: http://svn.apache.org/viewvc/jclouds/site-content/css/style.css?rev=1605910&r1=1605909&r2=1605910&view=diff
==============================================================================
--- jclouds/site-content/css/style.css (original)
+++ jclouds/site-content/css/style.css Thu Jun 26 21:09:14 2014
@@ -19,6 +19,10 @@ code {
     padding-right: 10px;
 }
 
+.img-right {
+  float: right;
+}
+
 .section-divider {
     background: url('../img/divider.png') 0 7px repeat-x;
     text-align: center;

Added: jclouds/site-content/img/posts/jenkins.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/jenkins.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/jenkins.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/pedestrian-sign.jpg
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/pedestrian-sign.jpg?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/pedestrian-sign.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-01.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-01.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-01.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-02.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-02.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-02.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-03.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-03.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-03.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-04.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-04.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-04.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-05.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-05.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-05.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-06.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-06.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-06.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-07.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-07.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-07.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-08.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-08.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-08.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: jclouds/site-content/img/posts/walk-n-doc-09.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/posts/walk-n-doc-09.png?rev=1605910&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jclouds/site-content/img/posts/walk-n-doc-09.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream