predictionio-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From don...@apache.org
Subject [21/51] [partial] incubator-predictionio-site git commit: Initial doc site
Date Wed, 20 Jul 2016 19:09:56 GMT
http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/92a45fa4/resources/upgrade/index.html
----------------------------------------------------------------------
diff --git a/resources/upgrade/index.html b/resources/upgrade/index.html
new file mode 100644
index 0000000..0188922
--- /dev/null
+++ b/resources/upgrade/index.html
@@ -0,0 +1,327 @@
+<!DOCTYPE html><html><head><title>Upgrade Instructions</title><meta charset="utf-8"/><meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta class="swiftype" name="title" data-type="string" content="Upgrade Instructions"/><link rel="canonical" href="https://docs.prediction.io/resources/upgrade/"/><link href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet"/><link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/><link href="/stylesheets/application-3598c7d7.css" rel="stylesheet" type="text/css"/><!--[if lt IE 9]><script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><![endif]--><script src="//cdn.mathj
 ax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><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','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-38306178-1', 'auto');
+ga('require', 'linkid', 'linkid.js');
+ga('send', 'pageview');</script><script>!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.0.1";
+  analytics.load("YlF3updaI3DR96hnNgSGpR3PPBUGDzt8");
+  analytics.page()
+  }}();</script><script>RCX_CUSTOM_LIB="https://cdn.recontext.com/staging/rcx.min.js";
+(function(b,d,a){b.RCX_OBJECT=a;a=b[a]||[];if(!a.snipV&&!a.libV){b.rcx=a;a.snipV="0.2.0";var g=function(a,b,c,d){a[b]=a[b]||function(){c.push([d].concat(Array.prototype.slice.call(arguments)))}};b="init page track identify link setUserProperty unsetUserProperty".split(" ");for(var f=0;f<b.length;f++){var e,c;e=b[f];c=e.split(".");2==c.length?(a[c[0]]=a[c[0]]||[],g(a[c[0]],c[1],a,e)):g(a,e,a,e)}a=d.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof RCX_CUSTOM_LIB?
+RCX_CUSTOM_LIB:"https://cdn.recontext.com/rcx.min.js";d=d.getElementsByTagName("script")[0];d.parentNode.insertBefore(a,d)}})(window,document,"rcx");
+rcx.init("kTxFcI3IWdXYfRsh6uuYuej4qYl8m8LVMePM2hdIkM9YjHqkAFC6mqdqO9fpp8p9");
+rcx.page();</script><script>function t(e){analytics.identify(e); analytics.track("newsletter signup");
+  rcx.track("newsletter signup", { '_email': e });}</script><script>!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
+n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
+n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
+t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
+document,'script','//connect.facebook.net/en_US/fbevents.js');
+
+fbq('init', '1073028432707778');
+fbq('track', "PageView");</script><script src="//use.typekit.net/mut4mjx.js"></script><script>try{Typekit.load();}catch(e){}</script></head><body><div id="global"><header><div class="container" id="header-wrapper"><div class="row"><div class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a href="#"></a><a href="http://prediction.io/"><img alt="PredictionIO" id="logo" src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div id="header-nav-options-wrapper"><ul><li><a href="/">Install & Doc</a></li> <li><a href="/support">Support</a></li> </ul></div><div id="pill-wrapper"><a class="pill left" href="//templates.prediction.io/">TEMPLATES</a> <a class="pill right" href="//github.com/PredictionIO/PredictionIO/">OPEN SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md hidden-lg" src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div id="search-bar-row-wrapper"><div class="container-fluid" id="search-bar-row">
 <div class="row"><div class="col-md-9 col-sm-11 col-xs-11"><div class="hidden-md hidden-lg" id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Upgrade Instructions</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img id="left-menu-indicator" src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img src="/images/icons/search-glass-704bd4ff.png"/><input type="text" id="st-search-input" class="st-search-input" placeholder="Search Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div class="mobile-left-menu-toggler hidden-md hidden-lg"></div></div></div></div><div id="page" class="c
 ontainer-fluid"><div class="row"><div id="left-menu-wrapper" class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a class="expandible" href="/"><span>Apache PredictionIO (incubating) Documentation</span></a><ul><li class="level-2"><a class="final" href="/"><span>Welcome to Apache PredictionIO (incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Getting Started</span></a><ul><li class="level-2"><a class="final" href="/start/"><span>A Quick Intro</span></a></li><li class="level-2"><a class="final" href="/install/"><span>Installing Apache PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" href="/start/download/"><span>Downloading an Engine Template</span></a></li><li class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your First Engine</span></a></li><li class="level-2"><a class="final" href="/start/customize/"><span>Customizing the Engine</span></a></li></ul></li><li class="level-1"><a clas
 s="expandible" href="#"><span>Integrating with Your App</span></a><ul><li class="level-2"><a class="final" href="/appintegration/"><span>App Integration Overview</span></a></li><li class="level-2"><a class="expandible" href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/php/"><span>PHP SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web Service</span></a></li><li class="level-2"><a class="final" href="/cli/#engine-commands
 "><span>Engine Command-line Interface</span></a></li><li class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting Engine Parameters</span></a></li><li class="level-2"><a class="final" href="/deploy/enginevariants/"><span>Deploying Multiple Engine Variants</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Customizing an Engine</span></a><ul><li class="level-2"><a class="final" href="/customize/"><span>Learning DASE</span></a></li><li class="level-2"><a class="final" href="/customize/dase/"><span>Implement DASE</span></a></li><li class="level-2"><a class="final" href="/customize/troubleshooting/"><span>Troubleshooting Engine Development</span></a></li><li class="level-2"><a class="final" href="/api/current/#package"><span>Engine Scala APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Collecting and Analyzing Data</span></a><ul><li class="level-2"><a class="final" href="/datacollection/"><span>Event
  Server Overview</span></a></li><li class="level-2"><a class="final" href="/cli/#event-server-commands"><span>Event Server Command-line Interface</span></a></li><li class="level-2"><a class="final" href="/datacollection/eventapi/"><span>Collecting Data with REST/SDKs</span></a></li><li class="level-2"><a class="final" href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li class="level-2"><a class="final" href="/datacollection/webhooks/"><span>Unifying Multichannel Data with Webhooks</span></a></li><li class="level-2"><a class="final" href="/datacollection/channel/"><span>Channel</span></a></li><li class="level-2"><a class="final" href="/datacollection/batchimport/"><span>Importing Data in Batch</span></a></li><li class="level-2"><a class="final" href="/datacollection/analytics/"><span>Using Analytics Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Choosing an Algorithm(s)</span></a><ul><li class="level-2"><a class="final" 
 href="/algorithm/"><span>Built-in Algorithm Libraries</span></a></li><li class="level-2"><a class="final" href="/algorithm/switch/"><span>Switching to Another Algorithm</span></a></li><li class="level-2"><a class="final" href="/algorithm/multiple/"><span>Combining Multiple Algorithms</span></a></li><li class="level-2"><a class="final" href="/algorithm/custom/"><span>Adding Your Own Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a class="final" href="/evaluation/"><span>Overview</span></a></li><li class="level-2"><a class="final" href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li class="level-2"><a class="final" href="/evaluation/evaluationdashboard/"><span>Evaluation Dashboard</span></a></li><li class="level-2"><a class="final" href="/evaluation/metricchoose/"><span>Choosing Evaluation Metrics</span></a></li><li class="level-2"><a class="final" href="
 /evaluation/metricbuild/"><span>Building Evaluation Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>System Architecture</span></a><ul><li class="level-2"><a class="final" href="/system/"><span>Architecture Overview</span></a></li><li class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using Another Data Store</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li class="level-2"><a class="final" href="http://templates.prediction.io"><span>Browse</span></a></li><li class="level-2"><a class="final" href="/community/submit-template/"><span>Submit your Engine as a Template</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a class="final" href="/demo/tapster/"><span>Comics Recommendation Demo</span></a></li><li class="level-2"><a class="final" href="/demo/community/"><span>Commu
 nity Contributed Demo</span></a></li><li class="level-2"><a class="final" href="/demo/textclassification/"><span>Text Classification Engine Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a class="final" href="/community/contribute-code/"><span>Contribute Code</span></a></li><li class="level-2"><a class="final" href="/community/contribute-documentation/"><span>Contribute Documentation</span></a></li><li class="level-2"><a class="final" href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li class="level-2"><a class="final" href="/community/contribute-webhook/"><span>Contribute a Webhook</span></a></li><li class="level-2"><a class="final" href="/community/projects/"><span>Community Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final" href="/resources/faq/"><spa
 n>FAQs</span></a></li><li class="level-2"><a class="final" href="/support/"><span>Community Support</span></a></li><li class="level-2"><a class="final" href="/support/#enterprise-support"><span>Enterprise Support</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Resources</span></a><ul><li class="level-2"><a class="final" href="/resources/intellij/"><span>Developing Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final active" href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li class="level-2"><a class="final" href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div class="col-md-9 col-sm-12"><div class="content-header hidden-md hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a href="#">Resources</a><span class="spacer">&gt;</span></li><li><span class="last">Upgrade Instructions</span></li></ul></div><div id="page-title"><h1>Upgrade Instructions</h1></d
 iv></div><div id="table-of-content-wrapper"><h5>On this page</h5><aside id="table-of-contents"><ul> <li> <a href="#how-to-upgrade">How to upgrade</a> </li> <li> <a href="#additional-notes-for-specific-versions-upgrade">Additional Notes for Specific Versions Upgrade</a> <ul> <li> <a href="#upgrade-to-0-9-2">Upgrade to 0.9.2</a> </li> <li> <a href="#upgrade-to-0-9-0">Upgrade to 0.9.0</a> </li> <li> <a href="#upgrade-to-0-8-4">Upgrade to 0.8.4</a> </li> <li> <a href="#upgrade-from-0-8-2-to-0-8-3">Upgrade from 0.8.2 to 0.8.3</a> </li> <li> <a href="#schema-changes-in-0-8-2">Schema Changes in 0.8.2</a> </li> <li> <a href="#experimental-upgrade-tool-upgrade-hbase-schema-from-0-8-0-0-8-1-to-0-8-2">Experimental upgrade tool (Upgrade HBase schema from 0.8.0/0.8.1 to 0.8.2)</a> </li> </ul> </li> </ul> </aside><hr/><a id="edit-page-link" href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/resources/upgrade.html.md"><img src="/images/icons/edit-pencil-d6c1bb3d
 .png"/>Edit this page</a></div><div class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a href="#">Resources</a><span class="spacer">&gt;</span></li><li><span class="last">Upgrade Instructions</span></li></ul></div><div id="page-title"><h1>Upgrade Instructions</h1></div></div><div class="content"><p>This page highlights major changes in each version and upgrade tools.</p><h1 id='how-to-upgrade' class='header-anchors'>How to upgrade</h1><p>To upgrade and use new version of PredictionIO, do the following:</p> <ul> <li>Download and unzip the new PredictionIO binary (the download path can be found in the <a href="/install/install-linux/#method-2:-manual-install">Download PredictionIO section</a>)</li> <li>Retain the setting from current PredictionIO/conf/pio-env.sh to the new PredictionIO/conf/pio-env.sh.</li> <li>If you have added PredictionIO/bin to your <code>PATH</code> environment variable before, change it to the new PredictionIO/b
 in as well.</li> </ul> <h1 id='additional-notes-for-specific-versions-upgrade' class='header-anchors'>Additional Notes for Specific Versions Upgrade</h1><p>In addition, please take notes of the following for specific version upgrade.</p><h2 id='upgrade-to-0.9.2' class='header-anchors'>Upgrade to 0.9.2</h2><p>The Spark dependency has been upgraded to version 1.3.0. All engines must be rebuilt against it in order to work.</p><p>Open and edit <code>build.sbt</code> of your engine, and look for these two lines:</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3</pre></td><td class="code"><pre><span class="s">"org.apache.spark"</span> <span class="o">%%</span> <span class="s">"spark-core"</span>    <span class="o">%</span> <span class="s">"1.2.0"</span> <span class="o">%</span> <span class="s">"provided"</span>
+
+<span class="s">"org.apache.spark"</span> <span class="o">%%</span> <span class="s">"spark-mllib"</span>   <span class="o">%</span> <span class="s">"1.2.0"</span> <span class="o">%</span> <span class="s">"provided"</span>
+</pre></td></tr></tbody></table> </div> <p>Change <code>1.2.0</code> to <code>1.3.0</code>, and do a clean rebuild by <code>pio build --clean</code>. Your engine should now work with the latest Apache Spark.</p><h3 id='new-peventstore-and-leventstore-api' class='header-anchors'>New PEventStore and LEventStore API</h3><p>In addition, new PEventStore and LEventStore API are introduced so that appName can be used as parameters in engine.json to access Event Store.</p><div class="alert-message note"><p>The following changes are not required for using 0.9.2 but it&#39;s recommended to upgrade your engine code as described below because the old API will be deprecated.</p></div><h4 id='1.-in-<strong>datasource.scala</strong>:' class='header-anchors' >1. In <strong>DataSource.scala</strong>:</h4> <ul> <li><p>remove this line of code:</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td
  class="code"><pre><span class="k">import</span> <span class="nn">io.prediction.data.storage.Storage</span>
+</pre></td></tr></tbody></table> </div> <p>and replace it by</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="k">import</span> <span class="nn">io.prediction.data.store.PEventStore</span>
+</pre></td></tr></tbody></table> </div></li> <li><p>Change <code>appId: Int</code> to <code>appName: String</code> in DataSourceParams</p><p>For example,</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="k">case</span> <span class="k">class</span> <span class="nc">DataSourceParams</span><span class="o">(</span><span class="n">appName</span><span class="k">:</span> <span class="kt">String</span><span class="o">)</span> <span class="k">extends</span> <span class="nc">Params</span>
+</pre></td></tr></tbody></table> </div></li> <li><p>remove this line of code: <code>val eventsDb = Storage.getPEvents()</code></p></li> <li><p>locate where <code>eventsDb.aggregateProperties()</code> is used, change it to <code>PEventStore.aggregateProperties()</code>:</p><p>For example,</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6</pre></td><td class="code"><pre>
+  <span class="k">val</span> <span class="n">usersRDD</span><span class="k">:</span> <span class="kt">RDD</span><span class="o">[(</span><span class="kt">String</span>, <span class="kt">User</span><span class="o">)]</span> <span class="k">=</span> <span class="nc">PEventStore</span><span class="o">.</span><span class="n">aggregateProperties</span><span class="o">(</span> <span class="c1">// CHANGED
+</span>    <span class="n">appName</span> <span class="k">=</span> <span class="n">dsp</span><span class="o">.</span><span class="n">appName</span><span class="o">,</span> <span class="c1">// CHANGED: use appName
+</span>    <span class="n">entityType</span> <span class="k">=</span> <span class="s">"user"</span>
+  <span class="o">)(</span><span class="n">sc</span><span class="o">).</span><span class="n">map</span> <span class="o">{</span> <span class="o">...</span> <span class="o">}</span>
+
+</pre></td></tr></tbody></table> </div></li> <li><p>locate where <code>eventsDb.find()</code>is used, change it to <code>PEventStore.find()</code></p><p>For example,</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6</pre></td><td class="code"><pre>
+  <span class="k">val</span> <span class="n">viewEventsRDD</span><span class="k">:</span> <span class="kt">RDD</span><span class="o">[</span><span class="kt">ViewEvent</span><span class="o">]</span> <span class="k">=</span> <span class="nc">PEventStore</span><span class="o">.</span><span class="n">find</span><span class="o">(</span> <span class="c1">// CHANGED
+</span>    <span class="n">appName</span> <span class="k">=</span> <span class="n">dsp</span><span class="o">.</span><span class="n">appName</span><span class="o">,</span> <span class="c1">// CHANGED: use appName
+</span>    <span class="n">entityType</span> <span class="k">=</span> <span class="nc">Some</span><span class="o">(</span><span class="s">"user"</span><span class="o">),</span>
+    <span class="o">...</span>
+
+</pre></td></tr></tbody></table> </div></li> </ul> <h4 id='2.-in-<strong>xxxalgorithm.scala</strong>:' class='header-anchors' >2. In <strong>XXXAlgorithm.scala</strong>:</h4><p>If Storage.getLEvents() is also used in Algorithm (such as ALSAlgorithm of E-Commerce Recommendation template), you also need to do following:</p><div class="alert-message note"><p>If <code>io.prediction.data.storage.Storage</code> is not used at all (such as Recommendation, Similar Product, Classification, Lead Scoring, Product Ranking template), there is no need to change Algorithm and can go to the later <strong>engine.json</strong> section.</p></div> <ul> <li>remove <code>import io.prediction.data.storage.Storage</code> and replace it by <code>import io.prediction.data.store.LEventStore</code></li> <li>change <code>appId</code> to <code>appName</code> in the XXXAlgorithmParams class.</li> <li>remove this line of code: <code>@transient lazy val lEventsDb = Storage.getLEvents()</code></li> <li><p>locate whe
 re <code>LEventStore.findByEntity()</code> is used, change it to <code>LEventStore.findByEntity()</code>:</p><p>For example, change following code</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16</pre></td><td class="code"><pre>  <span class="o">...</span>
+  <span class="k">val</span> <span class="n">seenEvents</span><span class="k">:</span> <span class="kt">Iterator</span><span class="o">[</span><span class="kt">Event</span><span class="o">]</span> <span class="k">=</span> <span class="n">lEventsDb</span><span class="o">.</span><span class="n">findSingleEntity</span><span class="o">(</span>
+    <span class="n">appId</span> <span class="k">=</span> <span class="n">ap</span><span class="o">.</span><span class="n">appId</span><span class="o">,</span>
+    <span class="n">entityType</span> <span class="k">=</span> <span class="s">"user"</span><span class="o">,</span>
+    <span class="n">entityId</span> <span class="k">=</span> <span class="n">query</span><span class="o">.</span><span class="n">user</span><span class="o">,</span>
+    <span class="n">eventNames</span> <span class="k">=</span> <span class="nc">Some</span><span class="o">(</span><span class="n">ap</span><span class="o">.</span><span class="n">seenEvents</span><span class="o">),</span>
+    <span class="n">targetEntityType</span> <span class="k">=</span> <span class="nc">Some</span><span class="o">(</span><span class="nc">Some</span><span class="o">(</span><span class="s">"item"</span><span class="o">)),</span>
+    <span class="c1">// set time limit to avoid super long DB access
+</span>    <span class="n">timeout</span> <span class="k">=</span> <span class="nc">Duration</span><span class="o">(</span><span class="mi">200</span><span class="o">,</span> <span class="s">"millis"</span><span class="o">)</span>
+  <span class="o">)</span> <span class="k">match</span> <span class="o">{</span>
+    <span class="k">case</span> <span class="nc">Right</span><span class="o">(</span><span class="n">x</span><span class="o">)</span> <span class="k">=&gt;</span> <span class="n">x</span>
+    <span class="k">case</span> <span class="nc">Left</span><span class="o">(</span><span class="n">e</span><span class="o">)</span> <span class="k">=&gt;</span> <span class="o">{</span>
+      <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="o">(</span><span class="n">s</span><span class="s">"Error when read seen events: ${e}"</span><span class="o">)</span>
+      <span class="nc">Iterator</span><span class="o">[</span><span class="kt">Event</span><span class="o">]()</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+</pre></td></tr></tbody></table> </div> <p>to</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19</pre></td><td class="code"><pre>  <span class="k">val</span> <span class="n">seenEvents</span><span class="k">:</span> <span class="kt">Iterator</span><span class="o">[</span><span class="kt">Event</span><span class="o">]</span> <span class="k">=</span> <span class="k">try</span> <span class="o">{</span> <span class="c1">// CHANGED: try catch block is used
+</span>    <span class="nc">LEventStore</span><span class="o">.</span><span class="n">findByEntity</span><span class="o">(</span> <span class="c1">// CHANGED: new API
+</span>      <span class="n">appName</span> <span class="k">=</span> <span class="n">ap</span><span class="o">.</span><span class="n">appName</span><span class="o">,</span> <span class="c1">// CHANGED: use appName
+</span>      <span class="n">entityType</span> <span class="k">=</span> <span class="s">"user"</span><span class="o">,</span>
+      <span class="n">entityId</span> <span class="k">=</span> <span class="n">query</span><span class="o">.</span><span class="n">user</span><span class="o">,</span>
+      <span class="n">eventNames</span> <span class="k">=</span> <span class="nc">Some</span><span class="o">(</span><span class="n">ap</span><span class="o">.</span><span class="n">seenEvents</span><span class="o">),</span>
+      <span class="n">targetEntityType</span> <span class="k">=</span> <span class="nc">Some</span><span class="o">(</span><span class="nc">Some</span><span class="o">(</span><span class="s">"item"</span><span class="o">)),</span>
+      <span class="c1">// set time limit to avoid super long DB access
+</span>      <span class="n">timeout</span> <span class="k">=</span> <span class="nc">Duration</span><span class="o">(</span><span class="mi">200</span><span class="o">,</span> <span class="s">"millis"</span><span class="o">)</span>
+    <span class="o">)</span>
+  <span class="o">}</span> <span class="k">catch</span> <span class="o">{</span> <span class="c1">// CHANGED: try catch block is used
+</span>    <span class="k">case</span> <span class="n">e</span><span class="k">:</span> <span class="kt">scala.concurrent.TimeoutException</span> <span class="o">=&gt;</span>
+      <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="o">(</span><span class="n">s</span><span class="s">"Timeout when read seen events."</span> <span class="o">+</span>
+        <span class="n">s</span><span class="s">" Empty list is used. ${e}"</span><span class="o">)</span>
+      <span class="nc">Iterator</span><span class="o">[</span><span class="kt">Event</span><span class="o">]()</span>
+    <span class="k">case</span> <span class="n">e</span><span class="k">:</span> <span class="kt">Exception</span> <span class="o">=&gt;</span>
+      <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="o">(</span><span class="n">s</span><span class="s">"Error when read seen events: ${e}"</span><span class="o">)</span>
+      <span class="k">throw</span> <span class="n">e</span>
+  <span class="o">}</span>
+</pre></td></tr></tbody></table> </div> <p>If you are using E-Commerce Recommendation template, please refer to the latest version for other updates related to <code>LEventStore.findByEntity()</code></p></li> </ul> <h4 id='3.-in-<strong>engine.json</strong>:' class='header-anchors' >3. In <strong>engine.json</strong>:</h4><p>locate where <code>appId</code> is used, change it to <code>appName</code> and specify the name of the app instead.</p><p>For example:</p><div class="highlight json"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8</pre></td><td class="code"><pre><span class="w">  </span><span class="err">...</span><span class="w">
+
+  </span><span class="s2">"datasource"</span><span class="err">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="s2">"params"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+      </span><span class="s2">"appName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"MyAppName"</span><span class="w">
+    </span><span class="p">}</span><span class="w">
+  </span><span class="p">}</span><span class="err">,</span><span class="w">
+
+</span></pre></td></tr></tbody></table> </div> <p>Note that other components such as <code>algorithms</code> may also have <code>appId</code> param (e.g. E-Commerce Recommendation template). Remember to change it to <code>appName</code> as well.</p><p>That&#39;s it! You can re-biuld your engine to try it out!</p><h2 id='upgrade-to-0.9.0' class='header-anchors'>Upgrade to 0.9.0</h2><p>0.9.0 has the following new changes:</p> <ul> <li><p>The signature of <code>P2LAlgorithm</code> and <code>PAlgorithm</code>&#39;s <code>train()</code> method is changed from</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>  <span class="k">def</span> <span class="n">train</span><span class="o">(</span><span class="n">pd</span><span class="k">:</span> <span class="kt">PD</span><span class="o">)</span><span class="k">:</span> <span class="kt">M</span>
+</pre></td></tr></tbody></table> </div> <p>to</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>  <span class="k">def</span> <span class="n">train</span><span class="o">(</span><span class="n">sc</span><span class="k">:</span> <span class="kt">SparkContext</span><span class="o">,</span> <span class="n">pd</span><span class="k">:</span> <span class="kt">PD</span><span class="o">)</span><span class="k">:</span> <span class="kt">M</span>
+</pre></td></tr></tbody></table> </div> <p>which allows you to access SparkContext inside <code>train()</code> with this new parameter <code>sc</code>.</p></li> <li><p>A new SBT build plugin (<code>pio-build</code>) is added for engine template</p></li> </ul> <div class="alert-message warning"><p>If you have existing engine templates running with previous version of PredictionIO, you need to either download the latest templates which are compatible with 0.9.0, or follow the instructions below to modify them.</p></div><p>Follow instructions below to modify existing engine templates to be compatible with PredictionIO 0.9.0:</p> <ol> <li><p>Add a new parameter <code>sc: SparkContext</code> in the signature of <code>train()</code> method of algorithm in the templates.</p><p>For example, in Recommendation engine template, you will find the following <code>train()</code> function in <code>ALSAlgorithm.scala</code></p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr
 ><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td><td class="code"><pre><span class="k">class</span> <span class="nc">ALSAlgorithm</span><span class="o">(</span><span class="k">val</span> <span class="n">ap</span><span class="k">:</span> <span class="kt">ALSAlgorithmParams</span><span class="o">)</span>
+  <span class="k">extends</span> <span class="n">P2LAlgorithm</span><span class="o">[</span><span class="kt">PreparedData</span>, <span class="kt">ALSModel</span>, <span class="kt">Query</span>, <span class="kt">PredictedResult</span><span class="o">]</span> <span class="o">{</span>
+
+  <span class="o">...</span>
+
+  <span class="k">def</span> <span class="n">train</span><span class="o">(</span><span class="n">data</span><span class="k">:</span> <span class="kt">PreparedData</span><span class="o">)</span><span class="k">:</span> <span class="kt">ALSModel</span> <span class="o">=</span> <span class="o">...</span>
+
+  <span class="o">...</span>
+<span class="o">}</span>
+</pre></td></tr></tbody></table> </div> <p>Simply add the new parameter <code>sc: SparkContext,</code> to <code>train()</code> function signature:</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td><td class="code"><pre><span class="k">class</span> <span class="nc">ALSAlgorithm</span><span class="o">(</span><span class="k">val</span> <span class="n">ap</span><span class="k">:</span> <span class="kt">ALSAlgorithmParams</span><span class="o">)</span>
+  <span class="k">extends</span> <span class="n">P2LAlgorithm</span><span class="o">[</span><span class="kt">PreparedData</span>, <span class="kt">ALSModel</span>, <span class="kt">Query</span>, <span class="kt">PredictedResult</span><span class="o">]</span> <span class="o">{</span>
+
+  <span class="o">...</span>
+
+  <span class="k">def</span> <span class="n">train</span><span class="o">(</span><span class="n">sc</span><span class="k">:</span> <span class="kt">SparkContext</span><span class="o">,</span> <span class="n">data</span><span class="k">:</span> <span class="kt">PreparedData</span><span class="o">)</span><span class="k">:</span> <span class="kt">ALSModel</span> <span class="o">=</span> <span class="o">...</span>
+
+  <span class="o">...</span>
+<span class="o">}</span>
+</pre></td></tr></tbody></table> </div> <p>You need to add the following import for your algorithm as well if it is not there:</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="k">import</span> <span class="nn">org.apache.spark.SparkContext</span>
+</pre></td></tr></tbody></table> </div></li> <li><p>Modify the file <code>build.sbt</code> in your template directory to use <code>pioVersion.value</code> as the version of io.prediction.core dependency:</p><p>Under your template&#39;s root directory, you should see a file <code>build.sbt</code> which has the following content:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4</pre></td><td class="code"><pre>libraryDependencies ++<span class="o">=</span> Seq<span class="o">(</span>
+  <span class="s2">"io.prediction"</span>    %% <span class="s2">"core"</span>          % <span class="s2">"0.8.6"</span> % <span class="s2">"provided"</span>,
+  <span class="s2">"org.apache.spark"</span> %% <span class="s2">"spark-core"</span>    % <span class="s2">"1.2.0"</span> % <span class="s2">"provided"</span>,
+  <span class="s2">"org.apache.spark"</span> %% <span class="s2">"spark-mllib"</span>   % <span class="s2">"1.2.0"</span> % <span class="s2">"provided"</span><span class="o">)</span>
+</pre></td></tr></tbody></table> </div> <p>Change the version of <code>&quot;io.prediction&quot; &amp;&amp; &quot;core&quot;</code> to <code>pioVersion.value</code>:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4</pre></td><td class="code"><pre>libraryDependencies ++<span class="o">=</span> Seq<span class="o">(</span>
+  <span class="s2">"io.prediction"</span>    %% <span class="s2">"core"</span>          % pioVersion.value % <span class="s2">"provided"</span>,
+  <span class="s2">"org.apache.spark"</span> %% <span class="s2">"spark-core"</span>    % <span class="s2">"1.2.0"</span> % <span class="s2">"provided"</span>,
+  <span class="s2">"org.apache.spark"</span> %% <span class="s2">"spark-mllib"</span>   % <span class="s2">"1.2.0"</span> % <span class="s2">"provided"</span><span class="o">)</span>
+</pre></td></tr></tbody></table> </div></li> <li><p>Create a new file <code>pio-build.sbt</code> in template&#39;s <strong>project/</strong> directory with the following content:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>addSbtPlugin<span class="o">(</span><span class="s2">"io.prediction"</span> % <span class="s2">"pio-build"</span> % <span class="s2">"0.9.0"</span><span class="o">)</span>
+</pre></td></tr></tbody></table> </div> <p>Then, you should see the following two files in the <strong>project/</strong> directory:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2</pre></td><td class="code"><pre><span class="gp">your_template_directory$ </span>ls project/
+assembly.sbt  pio-build.sbt
+</pre></td></tr></tbody></table> </div></li> <li><p>Create a new file <code>template.json</code> file in the engine template&#39;s root directory with the following content:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="o">{</span><span class="s2">"pio"</span>: <span class="o">{</span><span class="s2">"version"</span>: <span class="o">{</span> <span class="s2">"min"</span>: <span class="s2">"0.9.0"</span> <span class="o">}}}</span>
+</pre></td></tr></tbody></table> </div> <p>This is to specify the minium PredictionIO version which the engine can run with.</p></li> <li><p>Lastly, you can add <code>/pio.sbt</code> into your engine template&#39;s <code>.gitignore</code>. <code>pio.sbt</code> is automatically generated by <code>pio build</code>.</p></li> </ol> <p>That&#39;s it! Now you can run <code>pio build</code>, <code>pio train</code> and <code>pio deploy</code> with PredictionIO 0.9.0 in the same way as before!</p><h2 id='upgrade-to-0.8.4' class='header-anchors'>Upgrade to 0.8.4</h2><p><strong>engine.json</strong> has slightly changed its format in 0.8.4 in order to make engine more flexible. If you are upgrading to 0.8.4, engine.json needs to have the <code>params</code> field for <em>datasource</em>, <em>preparator</em>, and <em>serving</em>. Here is the sample engine.json from templates/scala-parallel-recommendation-custom-preparator that demonstrate the change for <em>datasource</em> (line 7).</p><div cla
 ss="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19</pre></td><td class="code"><pre>In 0.8.3
+<span class="o">{</span>
+  <span class="s2">"id"</span>: <span class="s2">"default"</span>,
+  <span class="s2">"description"</span>: <span class="s2">"Default settings"</span>,
+  <span class="s2">"engineFactory"</span>: <span class="s2">"org.template.recommendation.RecommendationEngine"</span>,
+  <span class="s2">"datasource"</span>: <span class="o">{</span>
+    <span class="s2">"appId"</span>: 1
+  <span class="o">}</span>,
+  <span class="s2">"algorithms"</span>: <span class="o">[</span>
+    <span class="o">{</span>
+      <span class="s2">"name"</span>: <span class="s2">"als"</span>,
+      <span class="s2">"params"</span>: <span class="o">{</span>
+        <span class="s2">"rank"</span>: 10,
+        <span class="s2">"numIterations"</span>: 20,
+        <span class="s2">"lambda"</span>: 0.01
+      <span class="o">}</span>
+    <span class="o">}</span>
+  <span class="o">]</span>
+<span class="o">}</span>
+</pre></td></tr></tbody></table> </div> <div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20</pre></td><td class="code"><pre>In 0.8.4
+<span class="o">{</span>
+  <span class="s2">"id"</span>: <span class="s2">"default"</span>,
+  <span class="s2">"description"</span>: <span class="s2">"Default settings"</span>,
+  <span class="s2">"engineFactory"</span>: <span class="s2">"org.template.recommendation.RecommendationEngine"</span>,
+  <span class="s2">"datasource"</span>: <span class="o">{</span>
+    <span class="s2">"params"</span> : <span class="o">{</span>
+      <span class="s2">"appId"</span>: 1
+    <span class="o">}</span>
+  <span class="o">}</span>,
+  <span class="s2">"algorithms"</span>: <span class="o">[</span>
+    <span class="o">{</span>
+      <span class="s2">"name"</span>: <span class="s2">"als"</span>,
+      <span class="s2">"params"</span>: <span class="o">{</span>
+        <span class="s2">"rank"</span>: 10,
+        <span class="s2">"numIterations"</span>: 20,
+        <span class="s2">"lambda"</span>: 0.01
+      <span class="o">}</span>
+    <span class="o">}</span>
+  <span class="o">]</span>
+</pre></td></tr></tbody></table> </div> <h2 id='upgrade-from-0.8.2-to-0.8.3' class='header-anchors'>Upgrade from 0.8.2 to 0.8.3</h2><p>0.8.3 disallows entity types <strong>pio_user</strong> and <strong>pio_item</strong>. These types are used by default for most SDKs. They are deprecated in 0.8.3, and SDKs helper functions have been updated to use <strong>user</strong> and <strong>item</strong> instead.</p><p>If you are upgrading to 0.8.3, you can follow these steps to migrate your data.</p><h5 id='1.-create-a-new-app' class='header-anchors'>1. Create a new app</h5><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>pio app new &lt;my app name&gt;
+</pre></td></tr></tbody></table> </div> <p>Please take note of the <new app id> generated for the new app.</p><h5 id='2.-run-the-upgrade-command' class='header-anchors'>2. Run the upgrade command</h5><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>pio upgrade 0.8.2 0.8.3 &lt;old app id&gt; &lt;new app id&gt;
+</pre></td></tr></tbody></table> </div> <p>It will run a script that creates a new app with the new app id and migreate the data to the new app.</p><h5 id='3.-update-<strong>engine.json</strong>-to-use-the-new-app-id.-<strong>engine.json</strong>-is-located-under-your-engine-project-directory.' class='header-anchors' >3. Update <strong>engine.json</strong> to use the new app id. <strong>Engine.json</strong> is located under your engine project directory.</h5><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3</pre></td><td class="code"><pre>  <span class="s2">"datasource"</span>: <span class="o">{</span>
+    <span class="s2">"appId"</span>: &lt;new app id&gt;
+  <span class="o">}</span>,
+</pre></td></tr></tbody></table> </div> <h2 id='schema-changes-in-0.8.2' class='header-anchors'>Schema Changes in 0.8.2</h2><p>0.8.2 contains HBase and Elasticsearch schema changes from previous versions. If you are upgrading from a pre-0.8.2 version, you need to first clear HBase and ElasticSearch. These will clear out all data in Elasticsearch and HBase. Please be extra cautious.</p><div class="alert-message danger"><p><strong>ALL EXISTING DATA WILL BE LOST!</strong></p></div><h3 id='clearing-elasticsearch' class='header-anchors'>Clearing Elasticsearch</h3><p>With Elasticsearch running, do</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>curl -X DELETE http://localhost:9200/_all
+</pre></td></tr></tbody></table> </div> <p>For details see <a href="http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-delete-index.html">http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-delete-index.html</a>.</p><h3 id='clearing-hbase' class='header-anchors'>Clearing HBase</h3><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6</pre></td><td class="code"><pre><span class="gp">$ </span><span class="nv">$HBASE_HOME</span>/bin/hbase shell
+...
+<span class="gp">&gt; </span>disable_all <span class="s1">'predictionio.*'</span>
+...
+<span class="gp">&gt; </span>drop_all <span class="s1">'predictionio.*'</span>
+...
+</pre></td></tr></tbody></table> </div> <p>For details see <a href="http://wiki.apache.org/hadoop/Hbase/Shell">http://wiki.apache.org/hadoop/Hbase/Shell</a>.</p><h2 id='experimental-upgrade-tool-(upgrade-hbase-schema-from-0.8.0/0.8.1-to-0.8.2)' class='header-anchors'>Experimental upgrade tool (Upgrade HBase schema from 0.8.0/0.8.1 to 0.8.2)</h2><p>Create an app to store the data</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>bin/pio app new &lt;my app&gt;
+</pre></td></tr></tbody></table> </div> <p>Replace by the returned app ID: ( is the original app ID used in 0.8.0/0.8.2.)</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4</pre></td><td class="code"><pre><span class="gp">$ </span><span class="nb">set</span> -a
+<span class="gp">$ </span><span class="nb">source </span>conf/pio-env.sh
+<span class="gp">$ </span><span class="nb">set</span> +a
+<span class="gp">$ </span>sbt/sbt <span class="s2">"data/run-main io.prediction.data.storage.hbase.upgrade.Upgrade &lt;from app ID&gt;"</span> <span class="s2">"&lt;to app ID&gt;"</span>
+</pre></td></tr></tbody></table> </div> </div></div></div></div><footer><div class="container"><div class="seperator"></div><div class="row"><div class="col-md-4 col-md-push-8 col-xs-12"><div class="subscription-form-wrapper"><h4>Subscribe to our Newsletter</h4><form class="ajax-form" id="subscribe-form" method="POST" action="https://script.google.com/macros/s/AKfycbwhzeKCQJjQ52eVAqNT_vcklH07OITUO7wzOMDXvK6EGAWgaZgF/exec"><input class="required underlined-input" type="email" placeholder="Your email address" name="subscription_email" id="subscription_email"/><input class="pill-button" value="SUBSCRIBE" type="submit" data-state-normal="SUBSCRIBE" data-state-sucess="SUBSCRIBED!" data-state-loading="SENDING..." onclick="t($('#subscription_email').val());"/><p class="result"></p></form></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Community</h4><ul><li><a href="//docs.prediction.io/install/" target="blank">Download</a>
 </li><li><a href="//docs.prediction.io/" target="blank">Docs</a></li><li><a href="//github.com/PredictionIO/PredictionIO" target="blank">GitHub</a></li><li><a href="//groups.google.com/forum/#!forum/predictionio-user" target="blank">Support Forum</a></li><li><a href="//stackoverflow.com/questions/tagged/predictionio" target="blank">Stackoverflow</a></li><li><a href="mailto:&#x73;&#x75;&#x70;&#x70;&#x6F;&#x72;&#x74;&#x40;&#x70;&#x72;&#x65;&#x64;&#x69;&#x63;&#x74;&#x69;&#x6F;&#x6E;&#x2E;&#x69;&#x6F;" target="blank">Contact Us</a></li></ul></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Contribute</h4><ul><li><a href="//docs.prediction.io/community/contribute-code/" target="blank">Contribute</a></li><li><a href="//github.com/PredictionIO/PredictionIO" target="blank">Source Code</a></li><li><a href="//predictionio.atlassian.net/secure/Dashboard.jspa" target="blank">Bug Tracker</a></li><li><a href="//groups.google.com/fo
 rum/#!forum/predictionio-dev" target="blank">Contributors&#146; Forum</a></li><li><a href="//prediction.io/cla">Contributor Agreement</a></li><li><a href="//predictionio.uservoice.com/forums/219398-general/filters/top">Request Features</a></li></ul></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Enterprise</h4><ul><li><a href="//docs.prediction.io/support/" target="blank">Support</a></li><li><a href="//prediction.io/enterprise">Enterprise</a></li><li><a href="//prediction.io/products/predictionio-enterprise">Services</a></li></ul></div><div class="footer-link-column-row"><h4>Connect</h4><ul><li><a href="//blog.prediction.io/" target="blank">Blog</a></li><li><a href="//predictionio.theresumator.com/" target="blank">Careers</a></li></ul></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Partnership</h4><ul><li><a href="//prediction.io/partners/program">P
 artner Program</a></li></ul></div></div></div></div><div id="footer-bottom"><div class="container"><div class="row"><div class="col-md-12"><div id="footer-logo-wrapper"><img alt="PredictionIO" src="/images/logos/logo-white-d1e9c6e6.png"/></div><div id="social-icons-wrapper"><a class="github-button" href="https://github.com/PredictionIO/PredictionIO" data-style="mega" data-count-href="/PredictionIO/PredictionIO/stargazers" data-count-api="/repos/PredictionIO/PredictionIO#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star PredictionIO/PredictionIO on GitHub">Star</a> <a class="github-button" href="https://github.com/PredictionIO/PredictionIO/fork" data-icon="octicon-git-branch" data-style="mega" data-count-href="/PredictionIO/PredictionIO/network" data-count-api="/repos/PredictionIO/PredictionIO#forks_count" data-count-aria-label="# forks on GitHub" aria-label="Fork PredictionIO/PredictionIO on GitHub">Fork</a> <script id="github-bjs" async="" defer="" s
 rc="https://buttons.github.io/buttons.js"></script><a href="//www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a href="//twitter.com/predictionio" target="blank"><img alt="PredictionIO on Facebook" src="/images/icons/facebook-5c57939c.png"/></a> </div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
+(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
+e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
+})(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');
+
+_st('install','HaUfpXXV87xoB_zzCQ45');</script><script>var _qevents = _qevents || [];
+(function() {
+var elem = document.createElement('script');
+elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
+elem.async = true;
+elem.type = "text/javascript";
+var scpt = document.getElementsByTagName('script')[0];
+scpt.parentNode.insertBefore(elem, scpt);
+})();
+_qevents.push({
+qacct:"p-stVMxuw8H5EPX"
+});</script><noscript><div style="display:none;"><img src="//pixel.quantserve.com/pixel/p-stVMxuw8H5EPX.gif" border="0" height="1" width="1" alt="Quantcast"/></div></noscript><script>adroll_adv_id = "CPSSMJFFZ5DDHITC2STA54";
+adroll_pix_id = "UWX4N2WIMJADVHJGOFTM44";
+(function () {
+    var _onload = function(){
+        if (document.readyState && !/loaded|complete/.test(document.readyState)){setTimeout(_onload, 10);return}
+        if (!window.__adroll_loaded){__adroll_loaded=true;setTimeout(_onload, 50);return}
+        var scr = document.createElement("script");
+        var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com");
+        scr.setAttribute('async', 'true');
+        scr.type = "text/javascript";
+        scr.src = host + "/j/roundtrip.js";
+        ((document.getElementsByTagName('head') || [null])[0] ||
+            document.getElementsByTagName('script')[0].parentNode).appendChild(scr);
+    };
+    if (window.addEventListener) {window.addEventListener('load', _onload, false);}
+    else {window.attachEvent('onload', _onload)}
+}());</script><script src="/javascripts/application-5a24945b.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/92a45fa4/resources/upgrade/index.html.gz
----------------------------------------------------------------------
diff --git a/resources/upgrade/index.html.gz b/resources/upgrade/index.html.gz
new file mode 100644
index 0000000..96d73c5
Binary files /dev/null and b/resources/upgrade/index.html.gz differ

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/92a45fa4/robots.txt
----------------------------------------------------------------------
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..e42f0d7
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,4 @@
+User-agent: *
+Disallow:
+
+Sitemap: http://docs.prediction.io/sitemap.xml

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/92a45fa4/samples/index.html
----------------------------------------------------------------------
diff --git a/samples/index.html b/samples/index.html
new file mode 100644
index 0000000..9511eac
--- /dev/null
+++ b/samples/index.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html><html><head><title>Sample Style Page</title><meta charset="utf-8"/><meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta class="swiftype" name="title" data-type="string" content="Sample Style Page"/><link rel="canonical" href="https://docs.prediction.io/samples/"/><link href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet"/><link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/><link href="/stylesheets/application-3598c7d7.css" rel="stylesheet" type="text/css"/><!--[if lt IE 9]><script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><![endif]--><script src="//cdn.mathjax.org/mathjax/l
 atest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><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','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-38306178-1', 'auto');
+ga('require', 'linkid', 'linkid.js');
+ga('send', 'pageview');</script><script>!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.0.1";
+  analytics.load("YlF3updaI3DR96hnNgSGpR3PPBUGDzt8");
+  analytics.page()
+  }}();</script><script>RCX_CUSTOM_LIB="https://cdn.recontext.com/staging/rcx.min.js";
+(function(b,d,a){b.RCX_OBJECT=a;a=b[a]||[];if(!a.snipV&&!a.libV){b.rcx=a;a.snipV="0.2.0";var g=function(a,b,c,d){a[b]=a[b]||function(){c.push([d].concat(Array.prototype.slice.call(arguments)))}};b="init page track identify link setUserProperty unsetUserProperty".split(" ");for(var f=0;f<b.length;f++){var e,c;e=b[f];c=e.split(".");2==c.length?(a[c[0]]=a[c[0]]||[],g(a[c[0]],c[1],a,e)):g(a,e,a,e)}a=d.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof RCX_CUSTOM_LIB?
+RCX_CUSTOM_LIB:"https://cdn.recontext.com/rcx.min.js";d=d.getElementsByTagName("script")[0];d.parentNode.insertBefore(a,d)}})(window,document,"rcx");
+rcx.init("kTxFcI3IWdXYfRsh6uuYuej4qYl8m8LVMePM2hdIkM9YjHqkAFC6mqdqO9fpp8p9");
+rcx.page();</script><script>function t(e){analytics.identify(e); analytics.track("newsletter signup");
+  rcx.track("newsletter signup", { '_email': e });}</script><script>!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
+n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
+n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
+t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
+document,'script','//connect.facebook.net/en_US/fbevents.js');
+
+fbq('init', '1073028432707778');
+fbq('track', "PageView");</script><script src="//use.typekit.net/mut4mjx.js"></script><script>try{Typekit.load();}catch(e){}</script></head><body><div id="global"><header><div class="container" id="header-wrapper"><div class="row"><div class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a href="#"></a><a href="http://prediction.io/"><img alt="PredictionIO" id="logo" src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div id="header-nav-options-wrapper"><ul><li><a href="/">Install & Doc</a></li> <li><a href="/support">Support</a></li> </ul></div><div id="pill-wrapper"><a class="pill left" href="//templates.prediction.io/">TEMPLATES</a> <a class="pill right" href="//github.com/PredictionIO/PredictionIO/">OPEN SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md hidden-lg" src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div id="search-bar-row-wrapper"><div class="container-fluid" id="search-bar-row">
 <div class="row"><div class="col-md-9 col-sm-11 col-xs-11"><div class="hidden-md hidden-lg" id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Sample Style Page</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img id="left-menu-indicator" src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img src="/images/icons/search-glass-704bd4ff.png"/><input type="text" id="st-search-input" class="st-search-input" placeholder="Search Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div class="mobile-left-menu-toggler hidden-md hidden-lg"></div></div></div></div><div id="page" class="cont
 ainer-fluid"><div class="row"><div id="left-menu-wrapper" class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a class="expandible" href="/"><span>Apache PredictionIO (incubating) Documentation</span></a><ul><li class="level-2"><a class="final" href="/"><span>Welcome to Apache PredictionIO (incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Getting Started</span></a><ul><li class="level-2"><a class="final" href="/start/"><span>A Quick Intro</span></a></li><li class="level-2"><a class="final" href="/install/"><span>Installing Apache PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" href="/start/download/"><span>Downloading an Engine Template</span></a></li><li class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your First Engine</span></a></li><li class="level-2"><a class="final" href="/start/customize/"><span>Customizing the Engine</span></a></li></ul></li><li class="level-1"><a class="
 expandible" href="#"><span>Integrating with Your App</span></a><ul><li class="level-2"><a class="final" href="/appintegration/"><span>App Integration Overview</span></a></li><li class="level-2"><a class="expandible" href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/php/"><span>PHP SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web Service</span></a></li><li class="level-2"><a class="final" href="/cli/#engine-commands"><
 span>Engine Command-line Interface</span></a></li><li class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting Engine Parameters</span></a></li><li class="level-2"><a class="final" href="/deploy/enginevariants/"><span>Deploying Multiple Engine Variants</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Customizing an Engine</span></a><ul><li class="level-2"><a class="final" href="/customize/"><span>Learning DASE</span></a></li><li class="level-2"><a class="final" href="/customize/dase/"><span>Implement DASE</span></a></li><li class="level-2"><a class="final" href="/customize/troubleshooting/"><span>Troubleshooting Engine Development</span></a></li><li class="level-2"><a class="final" href="/api/current/#package"><span>Engine Scala APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Collecting and Analyzing Data</span></a><ul><li class="level-2"><a class="final" href="/datacollection/"><span>Event Se
 rver Overview</span></a></li><li class="level-2"><a class="final" href="/cli/#event-server-commands"><span>Event Server Command-line Interface</span></a></li><li class="level-2"><a class="final" href="/datacollection/eventapi/"><span>Collecting Data with REST/SDKs</span></a></li><li class="level-2"><a class="final" href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li class="level-2"><a class="final" href="/datacollection/webhooks/"><span>Unifying Multichannel Data with Webhooks</span></a></li><li class="level-2"><a class="final" href="/datacollection/channel/"><span>Channel</span></a></li><li class="level-2"><a class="final" href="/datacollection/batchimport/"><span>Importing Data in Batch</span></a></li><li class="level-2"><a class="final" href="/datacollection/analytics/"><span>Using Analytics Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Choosing an Algorithm(s)</span></a><ul><li class="level-2"><a class="final" hre
 f="/algorithm/"><span>Built-in Algorithm Libraries</span></a></li><li class="level-2"><a class="final" href="/algorithm/switch/"><span>Switching to Another Algorithm</span></a></li><li class="level-2"><a class="final" href="/algorithm/multiple/"><span>Combining Multiple Algorithms</span></a></li><li class="level-2"><a class="final" href="/algorithm/custom/"><span>Adding Your Own Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a class="final" href="/evaluation/"><span>Overview</span></a></li><li class="level-2"><a class="final" href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li class="level-2"><a class="final" href="/evaluation/evaluationdashboard/"><span>Evaluation Dashboard</span></a></li><li class="level-2"><a class="final" href="/evaluation/metricchoose/"><span>Choosing Evaluation Metrics</span></a></li><li class="level-2"><a class="final" href="/ev
 aluation/metricbuild/"><span>Building Evaluation Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>System Architecture</span></a><ul><li class="level-2"><a class="final" href="/system/"><span>Architecture Overview</span></a></li><li class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using Another Data Store</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li class="level-2"><a class="final" href="http://templates.prediction.io"><span>Browse</span></a></li><li class="level-2"><a class="final" href="/community/submit-template/"><span>Submit your Engine as a Template</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a class="final" href="/demo/tapster/"><span>Comics Recommendation Demo</span></a></li><li class="level-2"><a class="final" href="/demo/community/"><span>Communit
 y Contributed Demo</span></a></li><li class="level-2"><a class="final" href="/demo/textclassification/"><span>Text Classification Engine Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a class="final" href="/community/contribute-code/"><span>Contribute Code</span></a></li><li class="level-2"><a class="final" href="/community/contribute-documentation/"><span>Contribute Documentation</span></a></li><li class="level-2"><a class="final" href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li class="level-2"><a class="final" href="/community/contribute-webhook/"><span>Contribute a Webhook</span></a></li><li class="level-2"><a class="final" href="/community/projects/"><span>Community Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final" href="/resources/faq/"><span>F
 AQs</span></a></li><li class="level-2"><a class="final" href="/support/"><span>Community Support</span></a></li><li class="level-2"><a class="final" href="/support/#enterprise-support"><span>Enterprise Support</span></a></li></ul></li><li class="level-1"><a class="expandible" href="#"><span>Resources</span></a><ul><li class="level-2"><a class="final" href="/resources/intellij/"><span>Developing Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li class="level-2"><a class="final" href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div class="col-md-9 col-sm-12"><div class="content-header hidden-md hidden-lg"><div id="page-title"><h1>Sample Style Page</h1></div></div><div id="table-of-content-wrapper"><h5>On this page</h5><aside id="table-of-contents"><ul> <li> <a href="#alerts">Alerts</a> </li> <li> <a href="#text">Text</a> </li> <li> <a href="#lists">L
 ists</a> </li> <li> <a href="#code">Code</a> </li> <li> <a href="#image">Image</a> </li> <li> <a href="#quotes">Quotes</a> </li> <li> <a href="#tables">Tables</a> </li> <li> <a href="#other">Other</a> </li> </ul> </li> <li> <a href="#heading-1">Heading 1</a> <ul> <li> <a href="#heading-2">Heading 2</a> </li> </ul> </aside><hr/><a id="edit-page-link" href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/samples/index.html.md"><img src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div class="content-header hidden-sm hidden-xs"><div id="page-title"><h1>Sample Style Page</h1></div></div><div class="content"><h2 id='alerts' class='header-anchors'>Alerts</h2><h3 id='info' class='header-anchors'>Info</h3><p>Markdown: <code>INFO: This is a info message!</code> will display this:</p><div class="alert-message info"><p>This is a info message!</p></div><h3 id='success' class='header-anchors'>Success</h3><p>Markdown: <code>SUCCESS: This is a 
 success message!</code> will display this:</p><div class="alert-message success"><p>This is a success message!</p></div><h3 id='warning' class='header-anchors'>Warning</h3><p>Markdown: <code>WARNING: This is a warning message!</code> will display this:</p><div class="alert-message warning"><p>This is a warning message!</p></div><h3 id='danger' class='header-anchors'>Danger</h3><p>Markdown: <code>DANGER: This is a danger message!</code> will display this:</p><div class="alert-message danger"><p>This is a danger message!</p></div><h3 id='note' class='header-anchors'>Note</h3><p>Markdown: <code>NOTE: This is a note message!</code> will display this:</p><div class="alert-message note"><p>This is a note message!</p></div><h3 id='todo' class='header-anchors'>TODO</h3><p>Markdown: <code>TODO: This is a TODO message!</code> will display this:</p><div class="alert-message todo"><p>This is a TODO message! This message is longer to demonstrate what a multi line message would look like. This me
 ssage is longer to demonstrate what a multi line message would look like. This message is longer to demonstrate what a multi line message would look like. Yes <strong>bold</strong> and other styling still work inside alerts!</p></div><h2 id='text' class='header-anchors'>Text</h2><p>This is the normal paragraph font. This is a <a href="/samples/tabs">internal link</a>. This is an <a href="http://google.com/">external link</a> This is a <a href="https://google.com/">secure external link</a> This is <strong>bold</strong>. This is <em>italic</em>. This is <u>underlined</u>. This is <mark>highlighted</mark>. This is <del>strikethough</del>. This is <sup>superscript</sup>.</p><p>This is another paragraph.</p><p>View <a href="/samples/sizing">additional sizing</a> samples.</p><h2 id='lists' class='header-anchors'>Lists</h2> <ul> <li>Bullet 1</li> <li>Bullet 2 <ul> <li>Bullet 2.1</li> <li>Bullet 2.2</li> </ul></li> <li>Bullet 3</li> </ul> <ol> <li>First item</li> <li>Second item</li> <li>Th
 ird item</li> </ol> <h2 id='code' class='header-anchors'>Code</h2><h3 id='block' class='header-anchors'>Block</h3><p>This is a Scala code block:</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5</pre></td><td class="code"><pre><span class="k">case</span> <span class="k">class</span> <span class="nc">Query</span><span class="o">(</span>
+  <span class="n">user</span><span class="k">:</span> <span class="kt">Int</span><span class="o">,</span>
+  <span class="n">num</span><span class="k">:</span> <span class="kt">Int</span>
+<span class="o">)</span> <span class="k">extends</span> <span class="nc">Serializable</span>
+
+</pre></td></tr></tbody></table> </div> <p>See a full list of <a href="/samples/languages">supported languages</a>.</p><h3 id='inline' class='header-anchors'>Inline</h3><p>This <code>code is inline</code>.</p><h2 id='image' class='header-anchors'>Image</h2><p><img alt="Sample Image" src="/images/tutorials/rails/localhost-8000-e55d5dd2.png"/></p><h2 id='quotes' class='header-anchors'>Quotes</h2> <blockquote> <p>This is a blockquote. Don&#39;t use these for anything other actual quotes! Use <a href="#alerts">alerts</a> instead.</p></blockquote> <h2 id='tables' class='header-anchors'>Tables</h2> <table><thead> <tr> <th>First Header</th> <th>Second Header</th> </tr> </thead><tbody> <tr> <td>Content Cell</td> <td>Content Cell</td> </tr> <tr> <td>Content Cell</td> <td>Content Cell</td> </tr> </tbody></table> <h2 id='other' class='header-anchors'>Other</h2><p>This is a horizontal rule:</p> <hr> <p>This is a en dash &ndash; and an em dash &mdash; using HTML entities.</p><div>This is inside 
 a div tag.</div> <h1 id='heading-1' class='header-anchors'>Heading 1</h1><p>This is the normal paragraph font.</p><h2 id='heading-2' class='header-anchors'>Heading 2</h2><p>This is the normal paragraph font.</p><h3 id='heading-3' class='header-anchors'>Heading 3</h3><p>This is the normal paragraph font.</p><h4 id='heading-4' class='header-anchors'>Heading 4</h4><p>This is the normal paragraph font.</p><h5 id='heading-5' class='header-anchors'>Heading 5</h5><p>This is the normal paragraph font.</p><h6 id='heading-6' class='header-anchors'>Heading 6</h6><p>This is the normal paragraph font.</p></div></div></div></div><footer><div class="container"><div class="seperator"></div><div class="row"><div class="col-md-4 col-md-push-8 col-xs-12"><div class="subscription-form-wrapper"><h4>Subscribe to our Newsletter</h4><form class="ajax-form" id="subscribe-form" method="POST" action="https://script.google.com/macros/s/AKfycbwhzeKCQJjQ52eVAqNT_vcklH07OITUO7wzOMDXvK6EGAWgaZgF/exec"><input class
 ="required underlined-input" type="email" placeholder="Your email address" name="subscription_email" id="subscription_email"/><input class="pill-button" value="SUBSCRIBE" type="submit" data-state-normal="SUBSCRIBE" data-state-sucess="SUBSCRIBED!" data-state-loading="SENDING..." onclick="t($('#subscription_email').val());"/><p class="result"></p></form></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Community</h4><ul><li><a href="//docs.prediction.io/install/" target="blank">Download</a></li><li><a href="//docs.prediction.io/" target="blank">Docs</a></li><li><a href="//github.com/PredictionIO/PredictionIO" target="blank">GitHub</a></li><li><a href="//groups.google.com/forum/#!forum/predictionio-user" target="blank">Support Forum</a></li><li><a href="//stackoverflow.com/questions/tagged/predictionio" target="blank">Stackoverflow</a></li><li><a href="mailto:&#x73;&#x75;&#x70;&#x70;&#x6F;&#x72;&#x74;&#x40;&#x70;&#x72;&#
 x65;&#x64;&#x69;&#x63;&#x74;&#x69;&#x6F;&#x6E;&#x2E;&#x69;&#x6F;" target="blank">Contact Us</a></li></ul></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Contribute</h4><ul><li><a href="//docs.prediction.io/community/contribute-code/" target="blank">Contribute</a></li><li><a href="//github.com/PredictionIO/PredictionIO" target="blank">Source Code</a></li><li><a href="//predictionio.atlassian.net/secure/Dashboard.jspa" target="blank">Bug Tracker</a></li><li><a href="//groups.google.com/forum/#!forum/predictionio-dev" target="blank">Contributors&#146; Forum</a></li><li><a href="//prediction.io/cla">Contributor Agreement</a></li><li><a href="//predictionio.uservoice.com/forums/219398-general/filters/top">Request Features</a></li></ul></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Enterprise</h4><ul><li><a href="//docs.prediction.io/support/" target="bl
 ank">Support</a></li><li><a href="//prediction.io/enterprise">Enterprise</a></li><li><a href="//prediction.io/products/predictionio-enterprise">Services</a></li></ul></div><div class="footer-link-column-row"><h4>Connect</h4><ul><li><a href="//blog.prediction.io/" target="blank">Blog</a></li><li><a href="//predictionio.theresumator.com/" target="blank">Careers</a></li></ul></div></div><div class="col-md-2 col-md-pull-4 col-xs-6 footer-link-column"><div class="footer-link-column-row"><h4>Partnership</h4><ul><li><a href="//prediction.io/partners/program">Partner Program</a></li></ul></div></div></div></div><div id="footer-bottom"><div class="container"><div class="row"><div class="col-md-12"><div id="footer-logo-wrapper"><img alt="PredictionIO" src="/images/logos/logo-white-d1e9c6e6.png"/></div><div id="social-icons-wrapper"><a class="github-button" href="https://github.com/PredictionIO/PredictionIO" data-style="mega" data-count-href="/PredictionIO/PredictionIO/stargazers" data-count-a
 pi="/repos/PredictionIO/PredictionIO#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star PredictionIO/PredictionIO on GitHub">Star</a> <a class="github-button" href="https://github.com/PredictionIO/PredictionIO/fork" data-icon="octicon-git-branch" data-style="mega" data-count-href="/PredictionIO/PredictionIO/network" data-count-api="/repos/PredictionIO/PredictionIO#forks_count" data-count-aria-label="# forks on GitHub" aria-label="Fork PredictionIO/PredictionIO on GitHub">Fork</a> <script id="github-bjs" async="" defer="" src="https://buttons.github.io/buttons.js"></script><a href="//www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a href="//twitter.com/predictionio" target="blank"><img alt="PredictionIO on Facebook" src="/images/icons/facebook-5c57939c.png"/></a> </div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||f
 unction(){
+(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
+e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
+})(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');
+
+_st('install','HaUfpXXV87xoB_zzCQ45');</script><script>var _qevents = _qevents || [];
+(function() {
+var elem = document.createElement('script');
+elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
+elem.async = true;
+elem.type = "text/javascript";
+var scpt = document.getElementsByTagName('script')[0];
+scpt.parentNode.insertBefore(elem, scpt);
+})();
+_qevents.push({
+qacct:"p-stVMxuw8H5EPX"
+});</script><noscript><div style="display:none;"><img src="//pixel.quantserve.com/pixel/p-stVMxuw8H5EPX.gif" border="0" height="1" width="1" alt="Quantcast"/></div></noscript><script>adroll_adv_id = "CPSSMJFFZ5DDHITC2STA54";
+adroll_pix_id = "UWX4N2WIMJADVHJGOFTM44";
+(function () {
+    var _onload = function(){
+        if (document.readyState && !/loaded|complete/.test(document.readyState)){setTimeout(_onload, 10);return}
+        if (!window.__adroll_loaded){__adroll_loaded=true;setTimeout(_onload, 50);return}
+        var scr = document.createElement("script");
+        var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com");
+        scr.setAttribute('async', 'true');
+        scr.type = "text/javascript";
+        scr.src = host + "/j/roundtrip.js";
+        ((document.getElementsByTagName('head') || [null])[0] ||
+            document.getElementsByTagName('script')[0].parentNode).appendChild(scr);
+    };
+    if (window.addEventListener) {window.addEventListener('load', _onload, false);}
+    else {window.attachEvent('onload', _onload)}
+}());</script><script src="/javascripts/application-5a24945b.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/92a45fa4/samples/index.html.gz
----------------------------------------------------------------------
diff --git a/samples/index.html.gz b/samples/index.html.gz
new file mode 100644
index 0000000..a57b7f4
Binary files /dev/null and b/samples/index.html.gz differ


Mime
View raw message