fluo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ktur...@apache.org
Subject [1/4] incubator-fluo-website git commit: Jekyll build from gh-pages: b359233
Date Mon, 10 Oct 2016 19:33:57 GMT
Repository: incubator-fluo-website
Updated Branches:
  refs/heads/asf-site bf8cc834f -> 760222058


http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/scanning/index.html
----------------------------------------------------------------------
diff --git a/tour/scanning/index.html b/tour/scanning/index.html
new file mode 100644
index 0000000..04899be
--- /dev/null
+++ b/tour/scanning/index.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/scanning/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Scanning | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Scanning</h2>
+  <p class="text-muted">Tour page 13 of 26</p>
+</div>
+<div id="tour-content">
+  <p>In some situations, you may want to read a range of data instead of specific rows and columns.  For
+this case, Fluo supports <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/client/SnapshotBase.html#scanner--">creating scanners</a> over ranges.   These scanners implement Java Iterable and
+can be used with foreach loops.  Scanners also support reading a subset of columns within a range.</p>
+
+<p>To specify a range, Fluo has a simple POJO called <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Span.html">Span</a>.  The name was chosen so it would not
+conflict with Accumulo’s Range. <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Span.html">Span</a> has multiple static helper methods for creating common
+ranges, like a range over all rows with a given prefix.  Try the following exercise using scanners.</p>
+
+<ul>
+  <li><strong>Create transaction</strong> <em>tx1</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0001:name:last</em> <strong>to</strong> <em>Kerman</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0001:name:first</em> <strong>to</strong> <em>Jebediah</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0001:attr:bravery</em> <strong>to</strong> <em>5</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0002:name:last</em> <strong>to</strong> <em>Kerman</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0002:name:first</em> <strong>to</strong> <em>Bill</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0002:attr:bravery</em> <strong>to</strong> <em>2</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0003:name:last</em> <strong>to</strong> <em>Kerman</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0003:name:first</em> <strong>to</strong> <em>Bob</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0003:attr:bravery</em> <strong>to</strong> <em>1</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>bravery5:id:kerbalnaut0001</em> <strong>to</strong> <em>5</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>bravery2:id:kerbalnaut0002</em> <strong>to</strong> <em>2</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>bravery1:id:kerbalnaut0003</em> <strong>to</strong> <em>1</em></li>
+  <li><strong>Commit</strong> <em>tx1</em></li>
+  <li><strong>Create snapshot</strong> <em>s1</em></li>
+  <li><strong>Using</strong> <em>s1</em> <strong>scan and print row</strong> <em>kerbalnaut0002</em></li>
+  <li><strong>Using</strong> <em>s1</em> <strong>scan and print row</strong> <em>kerbalnaut0002</em> <strong>and column family</strong> <em>name</em></li>
+  <li><strong>Using</strong> <em>s1</em> <strong>scan rows with prefix</strong> <em>kerbalnaut</em> <strong>with columns</strong> <em>name:first</em> <strong>and</strong> <em>attr:bravery</em></li>
+</ul>
+
+<p>Scanners also read data using snapshot isolation.  To show this, try modifying the exercise above to
+change data after <em>s1</em> is created but before the scans happen.</p>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/write-skew-code/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/scanning-code/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/write-skew-code/">&lt;</a> 
+    
+
+    13 / 26 
+    
+    <a href="/tour/scanning-code/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/snapshot-isolation-code/index.html
----------------------------------------------------------------------
diff --git a/tour/snapshot-isolation-code/index.html b/tour/snapshot-isolation-code/index.html
new file mode 100644
index 0000000..9983c9d
--- /dev/null
+++ b/tour/snapshot-isolation-code/index.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/snapshot-isolation-code/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Snapshot Isolation Code | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Snapshot Isolation Code</h2>
+  <p class="text-muted">Tour page 7 of 26</p>
+</div>
+<div id="tour-content">
+  <div class="language-java highlighter-rouge"><pre class="highlight"><code>  <span class="kd">private</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">excercise</span><span class="o">(</span><span class="n">MiniFluo</span> <span class="n">mini</span><span class="o">,</span> <span class="n">FluoClient</span> <span class="n">client</span><span class="o">)</span> <span class="o">{</span>
+
+    <span class="n">String</span> <span class="n">row</span> <span class="o">=</span> <span class="s">"kerbalnaut0001"</span><span class="o">;</span>
+    <span class="n">Column</span> <span class="n">lName</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"name"</span><span class="o">,</span> <span class="s">"last"</span><span class="o">);</span>
+
+    <span class="k">try</span><span class="o">(</span><span class="n">Transaction</span> <span class="n">tx1</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newTransaction</span><span class="o">())</span> <span class="o">{</span>
+      <span class="n">tx1</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">lName</span><span class="o">,</span> <span class="s">"Kerbin"</span><span class="o">);</span>
+      <span class="n">tx1</span><span class="o">.</span><span class="na">commit</span><span class="o">();</span>
+    <span class="o">}</span>
+
+    <span class="k">try</span><span class="o">(</span><span class="n">Transaction</span> <span class="n">tx2</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newTransaction</span><span class="o">())</span> <span class="o">{</span>
+      <span class="n">tx2</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">lName</span><span class="o">,</span> <span class="s">"Kerman"</span><span class="o">);</span>
+
+      <span class="n">Snapshot</span> <span class="n">s1</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newSnapshot</span><span class="o">();</span>
+
+      <span class="n">tx2</span><span class="o">.</span><span class="na">commit</span><span class="o">();</span>
+
+      <span class="n">Snapshot</span> <span class="n">s2</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newSnapshot</span><span class="o">();</span>
+
+      <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">s1</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">lName</span><span class="o">));</span>
+      <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">s2</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">lName</span><span class="o">));</span>
+
+      <span class="n">s1</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
+      <span class="n">s2</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+</code></pre>
+</div>
+
+<p>The code above prints :</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>Kerbin
+Kerman
+</code></pre>
+</div>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/snapshot-isolation/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/collisions/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/snapshot-isolation/">&lt;</a> 
+    
+
+    7 / 26 
+    
+    <a href="/tour/collisions/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/snapshot-isolation/index.html
----------------------------------------------------------------------
diff --git a/tour/snapshot-isolation/index.html b/tour/snapshot-isolation/index.html
new file mode 100644
index 0000000..31150db
--- /dev/null
+++ b/tour/snapshot-isolation/index.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/snapshot-isolation/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Snapshot Isolation | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Snapshot Isolation</h2>
+  <p class="text-muted">Tour page 6 of 26</p>
+</div>
+<div id="tour-content">
+  <p>Fluo provides Snapshot isolation.  This means that a Transaction or Snapshot can only see data
+committed before it started.   The following steps demonstrate the concept of snapshot isolation. Try
+to code up the steps using Fluo, then run it and see if it prints what you expect.  If there is
+something you are unsure about, code for the following steps is on the next page.</p>
+
+<ul>
+  <li><strong>Create transaction</strong> <em>tx1</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>kerbalnaut0001:name:last</em> <strong>to</strong> <em>Kerbin</em></li>
+  <li><strong>Commit</strong> <em>tx1</em></li>
+  <li><strong>Create transaction</strong> <em>tx2</em></li>
+  <li><strong>Using</strong> <em>tx2</em> <strong>set</strong> <em>kerbalnaut0001:name:last</em> <strong>to</strong> <em>Kerman</em></li>
+  <li><strong>Create snapshot</strong> <em>s1</em></li>
+  <li><strong>Commit</strong> <em>tx2</em></li>
+  <li><strong>Create snapshot</strong> <em>s2</em></li>
+  <li><strong>Using</strong> <em>s1</em> <strong>print</strong> <em>kerbalnaut0001:name:last</em></li>
+  <li><strong>Using</strong> <em>s2</em> <strong>print</strong> <em>kerbalnaut0001:name:last</em></li>
+</ul>
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/data-pojos/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/snapshot-isolation-code/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/data-pojos/">&lt;</a> 
+    
+
+    6 / 26 
+    
+    <a href="/tour/snapshot-isolation-code/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/tx-logging/index.html
----------------------------------------------------------------------
diff --git a/tour/tx-logging/index.html b/tour/tx-logging/index.html
new file mode 100644
index 0000000..67cf174
--- /dev/null
+++ b/tour/tx-logging/index.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/tx-logging/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Transaction Logging | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Transaction Logging</h2>
+  <p class="text-muted">Tour page 10 of 26</p>
+</div>
+<div id="tour-content">
+  <p>Fluo can produce detailed logs about transactions if configured to do so.
+This can be useful for debugging.  Modify <code class="highlighter-rouge">./src/main/resources/log4j.properties</code>
+and remove <code class="highlighter-rouge">#</code> on the line <code class="highlighter-rouge">#log4j.logger.fluo.tx=TRACE</code>.  After doing this,
+rerun the collision exercise on the previous page.</p>
+
+<p>With this configuration change, you should see output like the following.
+Notice the logging shows what was read, set, and the collision information.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>Starting MiniFluo ... started.
+TRACE: txid: 3 begin() thread: 10
+TRACE: txid: 3 set(kerbalnaut0001, name last , Kerma)
+TRACE: txid: 3 commit() -&gt; SUCCESSFUL commitTs: 4
+TRACE: txid: 3 close()
+TRACE: txid: 3 thread : 10 time: ... #ret: 0 #set: 1 #collisions: 0 waitTime: 0 committed: true class: N/A
+TRACE: txid: 5 begin() thread: 10
+TRACE: txid: 6 begin() thread: 10
+TRACE: txid: 5 get(kerbalnaut0001, name last ) -&gt; Kerma
+TRACE: txid: 5 set(kerbalnaut0001, name last , Kerman)
+TRACE: txid: 6 get(kerbalnaut0001, name last ) -&gt; Kerma
+TRACE: txid: 6 set(kerbalnaut0001, name last , KermaN)
+TRACE: txid: 5 commit() -&gt; SUCCESSFUL commitTs: 7
+TRACE: txid: 6 commit() -&gt; UNSUCCESSFUL commitTs: -1
+TRACE: txid: 6 collisions: {kerbalnaut0001=[name last ]}
+tx3 commit exception : org.apache.fluo.api.exceptions.CommitException
+TRACE: txid: 6 close()
+TRACE: txid: 6 thread : 10 time: ... #ret: 1 #set: 1 #collisions: 1 waitTime: 0 committed: false class: N/A
+TRACE: txid: 5 close()
+TRACE: txid: 5 thread : 10 time: ... #ret: 1 #set: 1 #collisions: 0 waitTime: 0 committed: true class: N/A
+TRACE: txid: 8 begin() thread: 10
+TRACE: txid: 8 get(kerbalnaut0001, name last ) -&gt; Kerman
+Kerman
+TRACE: txid: 8 close()
+TRACE: txid: 8 thread : 10 time: ... #ret: 1 #set: 0 #collisions: 0 waitTime: 0 committed: false class: N/A
+</code></pre>
+</div>
+
+<p>More information about configuring logging is available in <a href="/docs/fluo/1.0.0-beta-2/applications/#debugging-applications">the logging
+documentation</a>.</p>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/collision-code/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/write-skew/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/collision-code/">&lt;</a> 
+    
+
+    10 / 26 
+    
+    <a href="/tour/write-skew/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/weak-code/index.html
----------------------------------------------------------------------
diff --git a/tour/weak-code/index.html b/tour/weak-code/index.html
new file mode 100644
index 0000000..0a450ef
--- /dev/null
+++ b/tour/weak-code/index.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/weak-code/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Weak Notification Code | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Weak Notification Code</h2>
+  <p class="text-muted">Tour page 22 of 26</p>
+</div>
+<div id="tour-content">
+  <div class="language-java highlighter-rouge"><pre class="highlight"><code>  <span class="kd">static</span> <span class="n">Column</span> <span class="n">NC</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"ntyf"</span><span class="o">,</span> <span class="s">"sum"</span><span class="o">);</span>
+  <span class="kd">static</span> <span class="n">Column</span> <span class="n">TOTAL_COL</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"sum"</span><span class="o">,</span> <span class="s">"total"</span><span class="o">);</span>
+  <span class="kd">static</span> <span class="n">Column</span> <span class="n">UPDATE_COL</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"sum"</span><span class="o">,</span> <span class="s">"update"</span><span class="o">);</span>
+
+  <span class="kd">public</span> <span class="kd">static</span> <span class="kd">class</span> <span class="nc">SummingObserver</span> <span class="kd">extends</span> <span class="n">AbstractObserver</span> <span class="o">{</span>
+
+    <span class="nd">@Override</span>
+    <span class="kd">public</span> <span class="n">ObservedColumn</span> <span class="nf">getObservedColumn</span><span class="o">()</span> <span class="o">{</span>
+      <span class="k">return</span> <span class="k">new</span> <span class="nf">ObservedColumn</span><span class="o">(</span><span class="n">NC</span><span class="o">,</span> <span class="n">NotificationType</span><span class="o">.</span><span class="na">WEAK</span><span class="o">);</span>
+    <span class="o">}</span>
+
+    <span class="nd">@Override</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">process</span><span class="o">(</span><span class="n">TransactionBase</span> <span class="n">tx</span><span class="o">,</span> <span class="n">Bytes</span> <span class="n">brow</span><span class="o">,</span> <span class="n">Column</span> <span class="n">col</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+
+      <span class="n">String</span> <span class="n">row</span> <span class="o">=</span> <span class="n">brow</span><span class="o">.</span><span class="na">toString</span><span class="o">();</span>
+
+      <span class="kt">int</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">tx</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">TOTAL_COL</span><span class="o">,</span> <span class="s">"0"</span><span class="o">));</span>
+
+      <span class="n">CellScanner</span> <span class="n">scanner</span> <span class="o">=</span> <span class="n">tx</span><span class="o">.</span><span class="na">scanner</span><span class="o">().</span><span class="na">over</span><span class="o">(</span><span class="n">Span</span><span class="o">.</span><span class="na">prefix</span><span class="o">(</span><span class="n">row</span> <span class="o">+</span><span class="s">"/"</span><span class="o">)).</span><span class="na">build</span><span class="o">();</span>
+      <span class="k">for</span> <span class="o">(</span><span class="n">RowColumnValue</span> <span class="n">rcv</span> <span class="o">:</span> <span class="n">scanner</span><span class="o">)</span> <span class="o">{</span>
+        <span class="n">sum</span> <span class="o">+=</span> <span class="n">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">rcv</span><span class="o">.</span><span class="na">getsValue</span><span class="o">());</span>
+        <span class="n">tx</span><span class="o">.</span><span class="na">delete</span><span class="o">(</span><span class="n">rcv</span><span class="o">.</span><span class="na">getRow</span><span class="o">(),</span> <span class="n">rcv</span><span class="o">.</span><span class="na">getColumn</span><span class="o">());</span>
+      <span class="o">}</span>
+
+      <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"sum : "</span> <span class="o">+</span> <span class="n">sum</span><span class="o">);</span>
+
+      <span class="n">tx</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">TOTAL_COL</span><span class="o">,</span> <span class="s">""</span><span class="o">+</span><span class="n">sum</span><span class="o">);</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+
+  <span class="kd">private</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">preInit</span><span class="o">(</span><span class="n">FluoConfiguration</span> <span class="n">fluoConfig</span><span class="o">)</span> <span class="o">{</span>
+    <span class="n">fluoConfig</span><span class="o">.</span><span class="na">addObserver</span><span class="o">(</span><span class="k">new</span> <span class="n">ObserverSpecification</span><span class="o">(</span><span class="n">SummingObserver</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getName</span><span class="o">()));</span>
+  <span class="o">}</span>
+
+  <span class="kd">private</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">excercise</span><span class="o">(</span><span class="n">MiniFluo</span> <span class="n">mini</span><span class="o">,</span> <span class="n">FluoClient</span> <span class="n">client</span><span class="o">)</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="n">LoaderExecutor</span> <span class="n">le</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newLoaderExecutor</span><span class="o">())</span> <span class="o">{</span>
+      <span class="n">Random</span> <span class="n">r</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Random</span><span class="o">(</span><span class="mi">42</span><span class="o">);</span>
+      <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">5000</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+        <span class="c1">//The Loader interface only has one function and can therefore be written as a lambda below.</span>
+        <span class="n">le</span><span class="o">.</span><span class="na">execute</span><span class="o">((</span><span class="n">tx</span><span class="o">,</span> <span class="n">ctx</span><span class="o">)</span> <span class="o">-&gt;</span> <span class="o">{</span>
+          <span class="n">String</span> <span class="n">row</span> <span class="o">=</span> <span class="s">"counter001/"</span><span class="o">+</span><span class="n">String</span><span class="o">.</span><span class="na">format</span><span class="o">(</span><span class="s">"%07d"</span><span class="o">,</span> <span class="n">r</span><span class="o">.</span><span class="na">nextInt</span><span class="o">(</span><span class="mi">10</span><span class="n">_000_000</span><span class="o">));</span>
+          <span class="kt">int</span> <span class="n">curVal</span> <span class="o">=</span> <span class="n">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">tx</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">UPDATE_COL</span><span class="o">,</span> <span class="s">"0"</span><span class="o">));</span>
+          <span class="n">tx</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="n">row</span><span class="o">,</span> <span class="n">UPDATE_COL</span><span class="o">,</span> <span class="n">curVal</span><span class="o">+</span><span class="mi">1</span><span class="o">+</span><span class="s">""</span><span class="o">);</span>
+          <span class="n">tx</span><span class="o">.</span><span class="na">setWeakNotification</span><span class="o">(</span><span class="s">"counter001"</span><span class="o">,</span> <span class="n">NC</span><span class="o">);</span>
+        <span class="o">});</span>
+      <span class="o">}</span>
+    <span class="o">}</span>
+
+    <span class="n">mini</span><span class="o">.</span><span class="na">waitForObservers</span><span class="o">();</span>
+
+    <span class="k">try</span><span class="o">(</span><span class="n">Snapshot</span> <span class="n">snap</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newSnapshot</span><span class="o">())</span> <span class="o">{</span>
+      <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"final sum : "</span><span class="o">+</span><span class="n">snap</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="s">"counter001"</span><span class="o">,</span> <span class="n">TOTAL_COL</span><span class="o">));</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+</code></pre>
+</div>
+
+<p>The code above will print something like the following.  Every run will print something slightly
+different because it depends on when the observer runs.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>$ mvn -q clean compile exec:java
+Starting MiniFluo ... started.
+sum : 526
+sum : 1465
+sum : 2414
+sum : 3260
+sum : 4736
+sum : 5000
+final sum : 5000
+</code></pre>
+</div>
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/weak-notifications/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/application-configuration/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/weak-notifications/">&lt;</a> 
+    
+
+    22 / 26 
+    
+    <a href="/tour/application-configuration/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/weak-notifications/index.html
----------------------------------------------------------------------
diff --git a/tour/weak-notifications/index.html b/tour/weak-notifications/index.html
new file mode 100644
index 0000000..9ffc6ca
--- /dev/null
+++ b/tour/weak-notifications/index.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/weak-notifications/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Weak Notification Exercise | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Weak Notification Exercise</h2>
+  <p class="text-muted">Tour page 21 of 26</p>
+</div>
+<div id="tour-content">
+  <p>This exercise will use weak notification to update a shared counter. In the example, many threads
+will concurrently try to update the counter but collisions will be avoided.</p>
+
+<p>Create an observer that observes column <em>ntfy:sum</em> and make it do the following.</p>
+
+<ul>
+  <li>For the row triggered append <code class="highlighter-rouge">/</code> and sum everything with that row prefix.  Also delete the rows
+with that prefix.</li>
+  <li>Print the sum.</li>
+  <li>For the triggering row, update the column <em>sum:total</em> with the new sum.</li>
+</ul>
+
+<p>Create a loader that does the following and run it 5000 times :</p>
+
+<ul>
+  <li>Generate a random number in the range [0,10^7-1].  This will be referred to as <em>&lt;rand&gt;</em>.</li>
+  <li>Add one to <em>counter001/&lt;rand&gt;:sum:update</em></li>
+  <li>Weakly notify <em>counter001:nfty:sum</em></li>
+</ul>
+
+<p>After the loader finishes, wait for observers and then print the value for <em>counter001:sum:total</em>.
+Since weak notifications are not transactional, all of the threads notifying the same row column
+should not collide.</p>
+
+<p>One experiment to try is to use a smaller random number range and enable collision logging.  For
+example try generating random numbers in the range of [0,99].</p>
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/row-locking/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/weak-code/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/row-locking/">&lt;</a> 
+    
+
+    21 / 26 
+    
+    <a href="/tour/weak-code/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/write-skew-code/index.html
----------------------------------------------------------------------
diff --git a/tour/write-skew-code/index.html b/tour/write-skew-code/index.html
new file mode 100644
index 0000000..3cdf614
--- /dev/null
+++ b/tour/write-skew-code/index.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/write-skew-code/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Write Skew Code | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Write Skew Code</h2>
+  <p class="text-muted">Tour page 12 of 26</p>
+</div>
+<div id="tour-content">
+  <div class="language-java highlighter-rouge"><pre class="highlight"><code> <span class="kd">private</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">excercise</span><span class="o">(</span><span class="n">MiniFluo</span> <span class="n">mini</span><span class="o">,</span> <span class="n">FluoClient</span> <span class="n">client</span><span class="o">)</span> <span class="o">{</span>
+
+    <span class="n">Column</span> <span class="n">sumCol</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"data"</span><span class="o">,</span> <span class="s">"sum"</span><span class="o">);</span>
+
+    <span class="k">try</span><span class="o">(</span><span class="n">Transaction</span> <span class="n">tx1</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newTransaction</span><span class="o">())</span> <span class="o">{</span>
+      <span class="n">tx1</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"n0"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">,</span> <span class="s">"0"</span><span class="o">);</span>
+      <span class="n">tx1</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"n01"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">,</span> <span class="s">"1"</span><span class="o">);</span>
+      <span class="n">tx1</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"n02"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">,</span> <span class="s">"2"</span><span class="o">);</span>
+      <span class="n">tx1</span><span class="o">.</span><span class="na">commit</span><span class="o">();</span>
+    <span class="o">}</span>
+
+    <span class="k">try</span><span class="o">(</span><span class="n">Transaction</span> <span class="n">tx2</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newTransaction</span><span class="o">();</span> <span class="n">Transaction</span> <span class="n">tx3</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newTransaction</span><span class="o">())</span> <span class="o">{</span>
+
+      <span class="kt">int</span> <span class="n">n01Sum</span> <span class="o">=</span> <span class="n">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">tx2</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="s">"n01"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">));</span>
+      <span class="kt">int</span> <span class="n">n02Sum</span> <span class="o">=</span> <span class="n">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">tx2</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="s">"n02"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">));</span>
+
+      <span class="n">tx2</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"n0"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">,</span> <span class="n">n01Sum</span> <span class="o">+</span> <span class="n">n02Sum</span> <span class="o">+</span><span class="s">""</span><span class="o">);</span>
+      <span class="n">tx3</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"n01"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">,</span> <span class="s">"5"</span><span class="o">);</span>
+
+      <span class="n">tx2</span><span class="o">.</span><span class="na">commit</span><span class="o">();</span>
+      <span class="n">tx3</span><span class="o">.</span><span class="na">commit</span><span class="o">();</span>
+    <span class="o">}</span>
+
+    <span class="k">try</span><span class="o">(</span><span class="n">Snapshot</span> <span class="n">s1</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">newSnapshot</span><span class="o">())</span> <span class="o">{</span>
+      <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"n0 sum : "</span><span class="o">+</span><span class="n">s1</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="s">"n0"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">));</span>
+      <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"n01 sum : "</span><span class="o">+</span><span class="n">s1</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="s">"n01"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">));</span>
+      <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"n02 sum : "</span><span class="o">+</span><span class="n">s1</span><span class="o">.</span><span class="na">gets</span><span class="o">(</span><span class="s">"n02"</span><span class="o">,</span> <span class="n">sumCol</span><span class="o">));</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+</code></pre>
+</div>
+
+<p>The code above prints :</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>n0  sum : 3
+n01 sum : 5
+n02 sum : 2
+</code></pre>
+</div>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/write-skew/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/scanning/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/write-skew/">&lt;</a> 
+    
+
+    12 / 26 
+    
+    <a href="/tour/scanning/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/write-skew/index.html
----------------------------------------------------------------------
diff --git a/tour/write-skew/index.html b/tour/write-skew/index.html
new file mode 100644
index 0000000..648654d
--- /dev/null
+++ b/tour/write-skew/index.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/write-skew/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Write Skew | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Write Skew</h2>
+  <p class="text-muted">Tour page 11 of 26</p>
+</div>
+<div id="tour-content">
+  <p>The page on collisions showed that if two transactions overlap and write the same data then one will
+fail.  However, in the case where two transactions overlap and one reads data that another is writing
+then both can succeed.  This behavior is called write skew.</p>
+
+<p>The example below shows write skew.  In the example, <em>n0</em> is a node in a tree with two children <em>n01</em>
+and <em>n02</em>.  In <em>tx2</em>, the sum of <em>n0</em> is set to the sum of its children.  However, <em>tx2</em> misses the
+concurrent update from <em>tx3</em>.  Both <em>tx2</em> and <em>tx3</em> will commit successfully since they write to
+different keys.</p>
+
+<ul>
+  <li><strong>Create transaction</strong> <em>tx1</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>n0:data:sum</em> <strong>to</strong> <em>0</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>n01:data:sum</em> <strong>to</strong> <em>1</em></li>
+  <li><strong>Using</strong> <em>tx1</em> <strong>set</strong> <em>n02:data:sum</em> <strong>to</strong> <em>2</em></li>
+  <li><strong>Commit</strong> <em>tx1</em></li>
+  <li><strong>Create transaction</strong> <em>tx2</em></li>
+  <li><strong>Create transaction</strong> <em>tx3</em></li>
+  <li><strong>Using</strong> <em>tx2</em> <strong>set</strong> <em>n0:data:sum</em> <strong>to the value of</strong> <em>n01:data:sum</em> <strong>plus</strong> <em>n02:data:sum</em></li>
+  <li><strong>Using</strong> <em>tx3</em> <strong>set</strong> <em>n01:data:sum</em> <strong>to</strong> <em>5</em></li>
+  <li><strong>Commit</strong> <em>tx2</em></li>
+  <li><strong>Commit</strong> <em>tx3</em></li>
+  <li><strong>Create snapshot and print</strong> <em>n0:data:sum</em>, <em>n01:data:sum</em>, <strong>and</strong> <em>n02:data:sum</em></li>
+</ul>
+
+<p>The changes made by <em>tx3</em> will not be seen by <em>tx2</em>. This behavior is OK if the update made by <em>tx3</em>
+triggers a later update of <em>n0:data:sum</em>. Later pages in the tour will show that Observers can work
+this way, so that eventually the changes made by <em>tx3</em> are incorporated.  The <a href="/tour/weak-notifications/">Weak Notification
+Exercise</a> later in the tour shows an example of an Observer that works
+like this.</p>
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/tx-logging/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/write-skew-code/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/tx-logging/">&lt;</a> 
+    
+
+    11 / 26 
+    
+    <a href="/tour/write-skew-code/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/writing-code/index.html
----------------------------------------------------------------------
diff --git a/tour/writing-code/index.html b/tour/writing-code/index.html
new file mode 100644
index 0000000..d992e49
--- /dev/null
+++ b/tour/writing-code/index.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="/stylesheets/fluo.css">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Montserrat:700,400">
+    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather">
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" >
+    <link rel="canonical" href="http://fluo.io/tour/writing-code/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Writing and Running Fluo code | Apache Fluo</title>
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div id="fluo-nav" class="navbar navbar-default navbar-static-top">
+      <div class="container">
+        <div class="navbar-header">
+          <div class="navbar-toggle-wrapper visible-xs">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".js-navbar-collapse">
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+              <span class="icon-bar"></span>
+            </button>
+          </div>
+          <a href="/" class="navbar-brand"><img src="/resources/fluo-logo.png" alt="Apache Fluo"></a>
+        </div>
+        <div class="collapse navbar-collapse js-navbar-collapse" style="margin-top: 20px">
+          <ul class="navbar-nav nav">
+            <li><a href="/docs/">Documentation</a></li>
+            <li><a href="/download/">Download</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/getinvolved/">Get Involved</a></li>
+                <li><a href="/blog/">Blog</a></li>
+                <li><a href="/people/">People</a></li>
+                <li><a href="/related-projects/">Related Projects</a></li>
+                <li><a href="/poweredby/">Powered By</a></li>
+              </ul>
+            </li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Contributing<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="/how-to-contribute/">How To Contribute</a></li>
+                <li><a href="/release-process/">Release Process</a></li>
+              </ul>
+            </li>
+          </ul>
+          <ul class="navbar-nav nav navbar-right">
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.apache.org">Apache Homepage</a></li>
+                <li><a href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                <li><a href="https://www.apache.org/foundation/sponsorship">Sponsorship</i></a></li>
+                <li><a href="https://www.apache.org/security">Security</a></li>
+                <li><a href="https://www.apache.org/foundation/thanks">Thanks</a></li>
+                <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <div class="row">
+          <div class="col-sm-12">
+              
+
+
+<div id="tour-header">
+  <h2><a href="/tour/">Fluo Tour</a>: Writing and Running Fluo code</h2>
+  <p class="text-muted">Tour page 3 of 26</p>
+</div>
+<div id="tour-content">
+  <p>Following the Fluo tour will require writing code that uses Fluo’s API.  There is a git repository
+with a basic skeleton that will help you get started quickly.   The commands below shows how to
+obtain, edit, and run this basic skeleton.</p>
+
+<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="c">#clone branch with starter code</span>
+git clone -b fluo-tour http://git.apache.org/incubator-fluo-website.git fluo-tour
+<span class="nb">cd </span>fluo-tour
+
+<span class="c">#edit Main (all of the following excercises will require this)</span>
+nano src/main/java/ft/Main.java
+
+<span class="c">#using Maven, run Main (all of the following excercises will require this)</span>
+mvn -q clean compile <span class="nb">exec</span>:java
+</code></pre>
+</div>
+
+<p>Because it is so closely related to the website, this starter code is located in a branch of Fluo’s
+website.  The starter project has its <a href="https://github.com/apache/incubator-fluo-website/tree/fluo-tour">own readme</a> also.</p>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/architecture/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/basic-read-write/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/architecture/">&lt;</a> 
+    
+
+    3 / 26 
+    
+    <a href="/tour/basic-read-write/">&gt;</a> 
+    
+  </h2>
+</div>
+
+          </div>
+      </div>
+      <hr>
+      <div class="row footer">
+        <div class="col-sm-12 text-center">
+          <div class="center-block">
+          <a href="https://apache.org"><img src="/resources/feather.png" alt="Apache"></a>
+          Copyright &copy; 2016 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache&nbsp;License,&nbsp;Version&nbsp;2.0</a>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script src="/javascripts/jquery.min.js"></script>
+    <script src="/javascripts/bootstrap.min.js"></script>
+    <!-- Place your <script> tags here. -->
+
+<!-- Google Analytics -->
+<script>
+  (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','https://www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55360307-1', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+  </body>
+</html>


Mime
View raw message