fluo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ktur...@apache.org
Subject [4/4] incubator-fluo-website git commit: Jekyll build from gh-pages: b359233
Date Mon, 10 Oct 2016 19:34:00 GMT
Jekyll build from gh-pages: b359233


Project: http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/commit/76022205
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/tree/76022205
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/diff/76022205

Branch: refs/heads/asf-site
Commit: 7602220587409909755994b4c46217db489160dd
Parents: bf8cc83
Author: Keith Turner <keith@deenlo.com>
Authored: Mon Oct 10 19:33:45 2016 -0400
Committer: Keith Turner <keith@deenlo.com>
Committed: Mon Oct 10 19:33:45 2016 -0400

----------------------------------------------------------------------
 docs/index.html                           |   4 +-
 feed.xml                                  |   4 +-
 index.html                                |   2 +-
 resources/tour/RowLocking.png             | Bin 0 -> 59627 bytes
 tour/application-configuration/index.html | 295 +++++++++++++
 tour/architecture/index.html              | 141 +++++++
 tour/basic-read-write/index.html          | 175 ++++++++
 tour/collision-code/index.html            | 176 ++++++++
 tour/collisions/index.html                | 154 +++++++
 tour/data-model/index.html                | 170 ++++++++
 tour/data-pojos/index.html                | 151 +++++++
 tour/exercise-1/index.html                | 545 +++++++++++++++++++++++++
 tour/index.html                           |  95 ++++-
 tour/loader-executer/index.html           | 154 +++++++
 tour/mem-self-ntfy-code/index.html        | 252 ++++++++++++
 tour/mem-self-ntfy/index.html             | 159 ++++++++
 tour/multi-get/index.html                 | 272 ++++++++++++
 tour/observer_example/index.html          | 217 ++++++++++
 tour/observers/index.html                 | 163 ++++++++
 tour/recipes/index.html                   | 137 +++++++
 tour/row-locking/index.html               | 237 +++++++++++
 tour/scanning-code/index.html             | 210 ++++++++++
 tour/scanning/index.html                  | 171 ++++++++
 tour/snapshot-isolation-code/index.html   | 175 ++++++++
 tour/snapshot-isolation/index.html        | 156 +++++++
 tour/tx-logging/index.html                | 178 ++++++++
 tour/weak-code/index.html                 | 210 ++++++++++
 tour/weak-notifications/index.html        | 165 ++++++++
 tour/write-skew-code/index.html           | 179 ++++++++
 tour/write-skew/index.html                | 168 ++++++++
 tour/writing-code/index.html              | 158 +++++++
 31 files changed, 5266 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/docs/index.html
----------------------------------------------------------------------
diff --git a/docs/index.html b/docs/index.html
index 024f37c..a2df0e8 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -77,7 +77,9 @@
   </header>
 
   <article id="page-content">
-    <p><a href="https://github.com/apache/fluo">Apache Fluo</a> and <a href="https://github.com/apache/fluo-recipes">Apache Fluo Recipes</a> have seperate documentation as they are different repositories with their own release cycle.</p>
+    <p>For a general overview of Fluo, take the <a href="/tour/">Fluo tour</a>.</p>
+
+<p><a href="https://github.com/apache/fluo">Apache Fluo</a> and <a href="https://github.com/apache/fluo-recipes">Apache Fluo Recipes</a> have seperate documentation as they are different repositories with their own release cycle.</p>
 
 <h2 id="apache-fluo">Apache Fluo</h2>
 

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/feed.xml
----------------------------------------------------------------------
diff --git a/feed.xml b/feed.xml
index 1fba9c8..fdca567 100644
--- a/feed.xml
+++ b/feed.xml
@@ -5,8 +5,8 @@
     <description></description>
     <link>http://fluo.io/</link>
     <atom:link href="http://fluo.io/feed.xml" rel="self" type="application/rss+xml" />
-    <pubDate>Fri, 05 Aug 2016 16:09:58 -0400</pubDate>
-    <lastBuildDate>Fri, 05 Aug 2016 16:09:58 -0400</lastBuildDate>
+    <pubDate>Mon, 10 Oct 2016 19:23:58 -0400</pubDate>
+    <lastBuildDate>Mon, 10 Oct 2016 19:23:58 -0400</lastBuildDate>
     <generator>Jekyll v3.1.6</generator>
     
       <item>

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 0a00fc8..9788166 100644
--- a/index.html
+++ b/index.html
@@ -78,7 +78,7 @@
       </div>
       <h2 style="padding-top: 0px">Overview</h2>
       <p>Apache Fluo (incubating) is an open source implementation of <a href="https://research.google.com/pubs/pub36726.html" target="_blank">Percolator</a> 
-         (which populates Google's search index) for <a href="https://accumulo.apache.org/" target="_blank">Apache Accumulo</a>. Fluo makes it possible to update the results of a large-scale computation, index, or analytic as new data is discovered.</p>
+         (which populates Google's search index) for <a href="https://accumulo.apache.org/" target="_blank">Apache Accumulo</a>. Fluo makes it possible to update the results of a large-scale computation, index, or analytic as new data is discovered. For more information, take the <a href="/tour/">Fluo tour</a>.</p>
     </div>
     <div class="col-sm-4">
       <div class="row">

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/resources/tour/RowLocking.png
----------------------------------------------------------------------
diff --git a/resources/tour/RowLocking.png b/resources/tour/RowLocking.png
new file mode 100644
index 0000000..30308f7
Binary files /dev/null and b/resources/tour/RowLocking.png differ

http://git-wip-us.apache.org/repos/asf/incubator-fluo-website/blob/76022205/tour/application-configuration/index.html
----------------------------------------------------------------------
diff --git a/tour/application-configuration/index.html b/tour/application-configuration/index.html
new file mode 100644
index 0000000..60c3924
--- /dev/null
+++ b/tour/application-configuration/index.html
@@ -0,0 +1,295 @@
+<!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/application-configuration/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Application Configuration | 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>: Application Configuration</h2>
+  <p class="text-muted">Tour page 23 of 26</p>
+</div>
+<div id="tour-content">
+  <p>Fluo applications are distributed applications where code is running on many separate machines.
+Getting configuration to these distributed processes can be tricky and cumbersome.  Fluo provides
+two simple mechanisms to assists with this: application configuration and observer configuration.
+This configuration data is stored in ZooKeeper when an application is initialized.  After
+initialization any Fluo client or Observer can access the configuration.</p>
+
+<h2 id="application-configuration">Application Configuration</h2>
+
+<p>To use application configuration, set properties with the prefix <code class="highlighter-rouge">fluo.app</code> in your configuration
+file before initialization.  Alternatively use <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/config/FluoConfiguration.html#getAppConfiguration--">FluoConfiguration.getAppConfiguration()</a> to
+set these properties programmatically.  After Fluo is initialized this information can be accessed
+anywhere by calling <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/client/FluoClient.html#getAppConfiguration--">FluoClient.getAppConfiguration()</a>,
+<a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/observer/Observer.Context.html#getAppConfiguration--">Observer.Context.getAppConfigurtaion()</a>, or <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/client/Loader.Context.html#getAppConfiguration--">Loader.Context.getAppConfiguration()</a>.</p>
+
+<p>The following is a simple example of using application config.   This example sets some application
+config before initialization.  After initialization the configuration is accessed via
+FluoConfiguration.</p>
+
+<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">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">SimpleConfiguration</span> <span class="n">appConfig</span> <span class="o">=</span> <span class="n">fluoConfig</span><span class="o">.</span><span class="na">getAppConfiguration</span><span class="o">();</span>
+    <span class="n">appConfig</span><span class="o">.</span><span class="na">setProperty</span><span class="o">(</span><span class="s">"exporterClass"</span><span class="o">,</span> <span class="s">"com.foo.MysqlExporter"</span><span class="o">);</span>
+    <span class="n">appConfig</span><span class="o">.</span><span class="na">setProperty</span><span class="o">(</span><span class="s">"exporterDB"</span><span class="o">,</span> <span class="s">"db1"</span><span class="o">);</span>
+    <span class="n">appConfig</span><span class="o">.</span><span class="na">setProperty</span><span class="o">(</span><span class="s">"exporterTable"</span><span class="o">,</span> <span class="s">"table5"</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="n">SimpleConfiguration</span> <span class="n">appConfig</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">getAppConfiguration</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">appConfig</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">"exporterClass"</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">appConfig</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">"exporterDB"</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">appConfig</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">"exporterTable"</span><span class="o">));</span>
+  <span class="o">}</span>
+</code></pre>
+</div>
+
+<p>The code above prints out the following.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>com.foo.MysqlExporter
+db1
+table5
+</code></pre>
+</div>
+
+<h2 id="observer-configuration">Observer Configuration</h2>
+
+<p>If you want instances of an Observer to behave differently and share code, one way to accomplish
+this is with per observer configuration.  When setting up an observer call one of the
+<a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/config/ObserverSpecification.html">ObserverSpecification</a> methods that takes configuration.  When an observer is initialized it
+can access this configuration by calling <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/observer/Observer.Context.html#getObserverConfiguration--">Observer.Context.getObserverConfiguration()</a>.</p>
+
+<p>The code below shows an example of setting configuration for an Observer.  This example simulates an
+observer that can export rows to a mysql table. The example configures two instances of an observer
+using the same class with different configuration.  Even though the observers use the same class, the
+two instances must observe different columns.  That is why the code derives the observed column based
+on the observer configuration.  Notice the mysql database is obtained from application configuration by
+the observer and the table is obtained from observer configuration.</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kn">package</span> <span class="n">ft</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">org.apache.fluo.api.client.TransactionBase</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.fluo.api.client.scanner.CellScanner</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.fluo.api.data.Bytes</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.fluo.api.data.Column</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.fluo.api.data.RowColumnValue</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.fluo.api.data.Span</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.fluo.api.observer.Observer</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">MysqlExportObserver</span> <span class="kd">implements</span> <span class="n">Observer</span> <span class="o">{</span>
+
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">exportDB</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="n">String</span> <span class="n">exportTable</span><span class="o">;</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">close</span><span class="o">()</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="n">Column</span> <span class="n">col</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"ET"</span><span class="o">,</span> <span class="n">exportTable</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">col</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">init</span><span class="o">(</span><span class="n">Context</span> <span class="n">ctx</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+    <span class="n">exportDB</span> <span class="o">=</span> <span class="n">ctx</span><span class="o">.</span><span class="na">getAppConfiguration</span><span class="o">().</span><span class="na">getString</span><span class="o">(</span><span class="s">"exportDB"</span><span class="o">);</span>
+    <span class="n">exportTable</span> <span class="o">=</span> <span class="n">ctx</span><span class="o">.</span><span class="na">getObserverConfiguration</span><span class="o">().</span><span class="na">getString</span><span class="o">(</span><span class="s">"exportTable"</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">row</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">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">exact</span><span class="o">(</span><span class="n">row</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">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Exporting val:%s from row:%s to db/table:%s/%s\n"</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">row</span><span class="o">,</span>
+          <span class="n">exportDB</span><span class="o">,</span> <span class="n">exportTable</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="o">}</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<p>The following code initializes two observers using the same class with different configuration.  It
+also sets application configuration that is used by the observers.  The code then writes some data
+and notifies the two observers which process the data.</p>
+
+<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">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">SimpleConfiguration</span> <span class="n">appConfig</span> <span class="o">=</span> <span class="n">fluoConfig</span><span class="o">.</span><span class="na">getAppConfiguration</span><span class="o">();</span>
+    <span class="n">appConfig</span><span class="o">.</span><span class="na">setProperty</span><span class="o">(</span><span class="s">"exportDB"</span><span class="o">,</span> <span class="s">"db1"</span><span class="o">);</span>
+
+    <span class="n">ObserverSpecification</span> <span class="n">observer1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ObserverSpecification</span><span class="o">(</span><span class="n">MysqlExportObserver</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="n">Collections</span><span class="o">.</span><span class="na">singletonMap</span><span class="o">(</span><span class="s">"exportTable"</span><span class="o">,</span> <span class="s">"table9"</span><span class="o">));</span>
+
+    <span class="n">ObserverSpecification</span> <span class="n">observer2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ObserverSpecification</span><span class="o">(</span><span class="n">MysqlExportObserver</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="n">Collections</span><span class="o">.</span><span class="na">singletonMap</span><span class="o">(</span><span class="s">"exportTable"</span><span class="o">,</span> <span class="s">"table3"</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="n">observer1</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="n">observer2</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">Transaction</span> <span class="n">tx</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">tx</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"e:99"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"export"</span><span class="o">,</span> <span class="s">"data1"</span><span class="o">),</span> <span class="s">"222"</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="s">"e:99"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"export"</span><span class="o">,</span> <span class="s">"data2"</span><span class="o">),</span> <span class="s">"444"</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="s">"e:99"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"export"</span><span class="o">,</span> <span class="s">"data3"</span><span class="o">),</span> <span class="s">"555"</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">"e:99"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"ET"</span><span class="o">,</span> <span class="s">"table3"</span><span class="o">));</span>
+
+      <span class="n">tx</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">tx</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">tx</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="s">"e:98"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"export"</span><span class="o">,</span> <span class="s">"data1"</span><span class="o">),</span> <span class="s">"777"</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="s">"e:98"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"export"</span><span class="o">,</span> <span class="s">"data2"</span><span class="o">),</span> <span class="s">"888"</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="s">"e:98"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"export"</span><span class="o">,</span> <span class="s">"data3"</span><span class="o">),</span> <span class="s">"999"</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">"e:98"</span><span class="o">,</span> <span class="k">new</span> <span class="n">Column</span><span class="o">(</span><span class="s">"ET"</span><span class="o">,</span> <span class="s">"table9"</span><span class="o">));</span>
+
+      <span class="n">tx</span><span class="o">.</span><span class="na">commit</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="o">}</span>
+</code></pre>
+</div>
+
+<p>Running the code above prints the following.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>Exporting val:222 from row:e:99 to db/table:db1/table3
+Exporting val:777 from row:e:98 to db/table:db1/table9
+Exporting val:444 from row:e:99 to db/table:db1/table3
+Exporting val:888 from row:e:98 to db/table:db1/table9
+Exporting val:555 from row:e:99 to db/table:db1/table3
+Exporting val:999 from row:e:98 to db/table:db1/table9
+</code></pre>
+</div>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/weak-code/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/mem-self-ntfy/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/weak-code/">&lt;</a> 
+    
+
+    23 / 26 
+    
+    <a href="/tour/mem-self-ntfy/">&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/architecture/index.html
----------------------------------------------------------------------
diff --git a/tour/architecture/index.html b/tour/architecture/index.html
new file mode 100644
index 0000000..f6b8624
--- /dev/null
+++ b/tour/architecture/index.html
@@ -0,0 +1,141 @@
+<!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/architecture/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Architecture | 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>: Architecture</h2>
+  <p class="text-muted">Tour page 2 of 26</p>
+</div>
+<div id="tour-content">
+  <p>An <a href="/docs/fluo/1.0.0-beta-2/architecture/">overview</a> of the Fluo Architecture can be found in Fluo’s documentation.</p>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/data-model/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/writing-code/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/data-model/">&lt;</a> 
+    
+
+    2 / 26 
+    
+    <a href="/tour/writing-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/basic-read-write/index.html
----------------------------------------------------------------------
diff --git a/tour/basic-read-write/index.html b/tour/basic-read-write/index.html
new file mode 100644
index 0000000..62afa24
--- /dev/null
+++ b/tour/basic-read-write/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/basic-read-write/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Read and Write Data | 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>: Read and Write Data</h2>
+  <p class="text-muted">Tour page 4 of 26</p>
+</div>
+<div id="tour-content">
+  <p>The following example shows basic code for writing data using Fluo and then reading it back out.  To
+run this code, modify <code class="highlighter-rouge">src/main/java/ft/Main.java</code> in the <a href="https://github.com/apache/incubator-fluo-website/tree/fluo-tour">Fluo Tour git repository</a> and run it by
+following the instructions in the repository.</p>
+
+<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">fName</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">"first"</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">tx</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">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">fName</span><span class="o">,</span> <span class="s">"Jebediah"</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">lName</span><span class="o">,</span> <span class="s">"Kerman"</span><span class="o">);</span>
+      <span class="n">tx</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">snaphot</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">"First name : "</span> <span class="o">+</span> <span class="n">snaphot</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">fName</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">"Last name  : "</span> <span class="o">+</span> <span class="n">snaphot</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="o">}</span>
+  <span class="o">}</span>
+</code></pre>
+</div>
+
+<p>In the example above, a <strong>Transaction</strong> is created in a try-with-resources block.  A Transaction can read
+and write data.  It can only read data that was committed before it started.  Data set on a
+transaction will only be written when <code class="highlighter-rouge">commit()</code> is called.</p>
+
+<p>A <strong>Snapshot</strong> is created to read the data previously written by the Transaction.  Snapshots only see
+data committed before the snapshot was created.  The code calls <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/client/SnapshotBase.html#gets-java.lang.CharSequence-org.apache.fluo.api.data.Column-">gets(CharSequence, Column)</a> which
+is a convenience method that works with strings.  Internally Fluo only deals with bytes and its
+<a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/client/SnapshotBase.html#get-org.apache.fluo.api.data.Bytes-org.apache.fluo.api.data.Column-">get(Bytes, Column)</a> method returns <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Bytes.html">Bytes</a>.   The Fluo methods that take and return Strings
+assume UTF-8 encoding when converting to bytes.</p>
+
+<p>Transactions and snapshots allocate resources and therefore have <code class="highlighter-rouge">close()</code> methods.  The
+try-with-resources block will automatically call <code class="highlighter-rouge">close()</code>, even when exceptions occur.</p>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/writing-code/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/data-pojos/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/writing-code/">&lt;</a> 
+    
+
+    4 / 26 
+    
+    <a href="/tour/data-pojos/">&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/collision-code/index.html
----------------------------------------------------------------------
diff --git a/tour/collision-code/index.html b/tour/collision-code/index.html
new file mode 100644
index 0000000..3d96a3b
--- /dev/null
+++ b/tour/collision-code/index.html
@@ -0,0 +1,176 @@
+<!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/collision-code/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Collision 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>: Collision code</h2>
+  <p class="text-muted">Tour page 9 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">"Kerma"</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="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="n">tx2</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="s">"n"</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="n">row</span><span class="o">,</span> <span class="n">lName</span><span class="o">,</span> <span class="n">tx3</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="s">"N"</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="k">try</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">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</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">"tx3 commit exception : "</span> <span class="o">+</span><span class="n">e</span><span class="o">);</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="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="o">}</span>
+  <span class="o">}</span>
+</code></pre>
+</div>
+
+<p>The code above prints :</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>tx3 commit exception message : org.apache.fluo.api.exceptions.CommitException
+Kerman
+</code></pre>
+</div>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/collisions/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/tx-logging/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/collisions/">&lt;</a> 
+    
+
+    9 / 26 
+    
+    <a href="/tour/tx-logging/">&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/collisions/index.html
----------------------------------------------------------------------
diff --git a/tour/collisions/index.html b/tour/collisions/index.html
new file mode 100644
index 0000000..3ccd56f
--- /dev/null
+++ b/tour/collisions/index.html
@@ -0,0 +1,154 @@
+<!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/collisions/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Collisions | 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>: Collisions</h2>
+  <p class="text-muted">Tour page 8 of 26</p>
+</div>
+<div id="tour-content">
+  <p>When two transactions overlap and attempt to modify the same data, one of them
+will fail.  Try writing code to do the following which will create a collision.</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>Kerma</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>append</strong> <em>n</em> <strong>to the value of</strong> <em>kerbalnaut0001:name:last</em></li>
+  <li><strong>Using</strong> <em>tx3</em> <strong>append</strong> <em>N</em> <strong>to the value of</strong> <em>kerbalnaut0001:name:last</em></li>
+  <li><strong>Commit</strong> <em>tx2</em></li>
+  <li><strong>Commit</strong> <em>tx3</em> <strong>wrapping with try/catch that prints Exception</strong></li>
+  <li><strong>Create snapshot and print</strong> <em>kerbalnaut0001:name:last</em></li>
+</ul>
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/snapshot-isolation-code/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/collision-code/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/snapshot-isolation-code/">&lt;</a> 
+    
+
+    8 / 26 
+    
+    <a href="/tour/collision-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/data-model/index.html
----------------------------------------------------------------------
diff --git a/tour/data-model/index.html b/tour/data-model/index.html
new file mode 100644
index 0000000..8cdb94e
--- /dev/null
+++ b/tour/data-model/index.html
@@ -0,0 +1,170 @@
+<!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/data-model/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Data Model | 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>: Data Model</h2>
+  <p class="text-muted">Tour page 1 of 26</p>
+</div>
+<div id="tour-content">
+  <p>Fluo uses Accumulo’s data model which is based on the BigTable data model.
+This data model supports a large online sorted map that spans multiple nodes in
+a cluster.   The keys in this map have four components : row, column family,
+column qualifier, and column visibility.</p>
+
+<ul>
+  <li><strong>Row</strong> : This portion of the key is used to partition data across nodes in
+a cluster.  All data in a row is guaranteed to be stored on single node in
+the cluster.  Different rows may be stored on different nodes.  Fluo
+supports cross row transactions, which mean cross node transactions.</li>
+  <li><strong>Column family</strong> :  This portion of the key is used to partition data
+within each node on the cluster.  The data model has locality groups which
+store column families in physically separate partitions on each node.  If
+locality groups are configured, then it allows scanning a subset of rows column
+families much more quickly.</li>
+  <li><strong>Column Qualifier</strong> : This portion of the key is used to define arbitrary
+columns within a column family.</li>
+  <li><strong>Column Visibility</strong> : In Accumulo this portion of the key is used to
+control access to data.</li>
+</ul>
+
+<p>This data model is schema-less so there is no need to predefine columns.  One
+thing that is defined in the Accumulo data model but is not available in Fluo is
+timestamps.  When using Fluo, the timestamp portion of the key is not available.</p>
+
+<p>In the subsequent pages of the tour the shorthand <em>&lt;row&gt;:&lt;family&gt;:&lt;qualifier&gt;</em>
+will be used.  For example, the following …</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>row       = kerbalnaut001
+family    = name
+qualifier = last
+</code></pre>
+</div>
+
+<p>… would be written as <em>kerbalnaut001:name:last</em>.</p>
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/architecture/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+
+    1 / 26 
+    
+    <a href="/tour/architecture/">&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/data-pojos/index.html
----------------------------------------------------------------------
diff --git a/tour/data-pojos/index.html b/tour/data-pojos/index.html
new file mode 100644
index 0000000..15a0436
--- /dev/null
+++ b/tour/data-pojos/index.html
@@ -0,0 +1,151 @@
+<!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/data-pojos/">
+    <link rel="icon" type="image/png" href="/resources/favicon.png">
+    <title>Basic Data Types | 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>: Basic Data Types</h2>
+  <p class="text-muted">Tour page 5 of 26</p>
+</div>
+<div id="tour-content">
+  <p>Fluo has a few simple POJOs that are used throughout the API.  These classes
+are found in <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/package-summary.html">org.apache.fluo.api.data</a>.  All of these types are
+immutable. Except for Span, all of the types are Comparable and have hash
+code and equals implementations.  These types work with <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Bytes.html">Bytes</a> and Java
+Strings.  Internally, Fluo only works with bytes.  All API methods that deal
+with String will convert back and forth to and from bytes using UTF-8.</p>
+
+<p><a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Bytes.html">Bytes</a> is modeled after Java String.  Its an immutable wrapper around <code class="highlighter-rouge">byte[]</code>
+like String is an immutable wrapper around <code class="highlighter-rouge">char[]</code>.  To make building <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Bytes.html">Bytes</a>
+more efficient and easier, there is a reusable <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Bytes.BytesBuilder.html">BytesBuilder</a> that is modeled
+after StringBuilder.  Call <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Bytes.html#builder--">Bytes.builder()</a> to create a new <a href="/apidocs/fluo/1.0.0-beta-2/org/apache/fluo/api/data/Bytes.BytesBuilder.html">BytesBuilder</a>.</p>
+
+
+</div>
+
+<script>
+document.body.onkeyup = function(e){
+
+if (e.keyCode == '37') { window.location = '/tour/basic-read-write/'; }
+
+
+
+if (e.keyCode == '39') { window.location = '/tour/snapshot-isolation/'; }
+
+};
+</script>
+
+<div class="text-center">
+ 
+  <h2> 
+    
+    <a href="/tour/basic-read-write/">&lt;</a> 
+    
+
+    5 / 26 
+    
+    <a href="/tour/snapshot-isolation/">&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