http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/js/jquery.tablesorter.min.js
----------------------------------------------------------------------
diff --git a/docs/js/jquery.tablesorter.min.js 
b/docs/js/jquery.tablesorter.min.js
deleted file mode 100644
index b8605df..0000000
--- a/docs/js/jquery.tablesorter.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-(function($){$.extend({tablesorter:new
-function(){var 
parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:'/\.|\,/g',onRenderHeader:null,selectorHeaders:'thead
 th',debug:false};function benchmark(s,d){log(s+","+(new 
Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function 
log(s){if(typeof console!="undefined"&&typeof 
console.debug!="undefined"){console.log(s);}else{alert(s);}}function 
buildParserCache(table,$headers){if(table.config.debug){var 
parsersDebug="";}if(table.tBodies.length==0)return;var 
rows=table.tBodies[0].rows;if(rows[0]){var 
list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var 
p=false;if($.metadata&&($($headers[i]).metadata
 
()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter);}else
 
if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}if(!p){p=detectParserForColumn(table,rows,-1,i);}if(table.config.debug){parsersDebug+="column:"+i+"
 
parser:"+p.id+"\n";}list.push(p);}}if(table.config.debug){log(parsersDebug);}return
 list;};function detectParserForColumn(table,rows,rowIndex,cellIndex){var 
l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==''&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log('Checking
 if value was empty on row:'+rowIndex);}}else{keepLooking=false;}}for(var 
i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i];}}return 
parsers[0];}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return 
rows[rowIndex].cells[cellIndex];}f
 unction trimAndGetNodeText(config,node){return 
$.trim(getElementText(config,node));}function getParserById(name){var 
l=parsers.length;for(var 
i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return 
parsers[i];}}return false;}function 
buildCache(table){if(table.config.debug){var cacheTime=new Date();}var 
totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=(table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length)||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var
 i=0;i<totalRows;++i){var 
c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue;}cache.row.push(c);for(var
 
j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building
 cache for "+totalRows+" row
 s:",cacheTime);}return cache;};function getElementText(config,node){var 
text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent;}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML;}else{text=node.innerHTML;}}}else{if(typeof(config.textExtraction)=="function"){text=config.textExtraction(node);}else{text=$(node).text();}}return
 text;}function appendToTable(table,cache){if(table.config.debug){var 
appendTime=new Date()}var 
c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$(table.tBodies[0]),rows=[];for(var
 i=0;i<totalRows;i++){var 
pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var 
l=r[pos].length;for(var 
j=0;j<l;j++){tableBody[0].appendChild(r[pos][j]);}}}if(table.config.appender){table.config.appender(table,rows);}rows=null;if(table.config.debug){
 benchmark("Rebuilt 
table:",appendTime);}applyWidget(table);setTimeout(function(){$(table).trigger("sortEnd");},0);};function
 buildHeaders(table){if(table.config.debug){var time=new Date();}var 
meta=($.metadata)?true:false;var 
header_index=computeTableHeaderCellIndexes(table);$tableHeaders=$(table.config.selectorHeaders,table).each(function(index){this.column=header_index[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(table.config.sortInitialOrder);this.count=this.order;if(checkHeaderMetadata(this)||checkHeaderOptions(table,index))this.sortDisabled=true;if(checkHeaderOptionsSortingLocked(table,index))this.order=this.lockedOrder=checkHeaderOptionsSortingLocked(table,index);if(!this.sortDisabled){var
 
$th=$(this).addClass(table.config.cssHeader);if(table.config.onRenderHeader)table.config.onRenderHeader.apply($th);}table.config.headerList[index]=this;});if(table.config.debug){benchmark("Built
 headers:",time);log($tableHeaders);}return $tableHeaders;};function
  computeTableHeaderCellIndexes(t){var matrix=[];var lookup={};var 
thead=t.getElementsByTagName('THEAD')[0];var 
trs=thead.getElementsByTagName('TR');for(var i=0;i<trs.length;i++){var 
cells=trs[i].cells;for(var j=0;j<cells.length;j++){var c=cells[j];var 
rowIndex=c.parentNode.rowIndex;var cellId=rowIndex+"-"+c.cellIndex;var 
rowSpan=c.rowSpan||1;var colSpan=c.colSpan||1
-var 
firstAvailCol;if(typeof(matrix[rowIndex])=="undefined"){matrix[rowIndex]=[];}for(var
 
k=0;k<matrix[rowIndex].length+1;k++){if(typeof(matrix[rowIndex][k])=="undefined"){firstAvailCol=k;break;}}lookup[cellId]=firstAvailCol;for(var
 
k=rowIndex;k<rowIndex+rowSpan;k++){if(typeof(matrix[k])=="undefined"){matrix[k]=[];}var
 matrixrow=matrix[k];for(var 
l=firstAvailCol;l<firstAvailCol+colSpan;l++){matrixrow[l]="x";}}}}return 
lookup;}function checkCellColSpan(table,rows,row){var 
arr=[],r=table.tHead.rows,c=r[row].cells;for(var i=0;i<c.length;i++){var 
cell=c[i];if(cell.colSpan>1){arr=arr.concat(checkCellColSpan(table,headerArr,row++));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}}}return
 arr;};function 
checkHeaderMetadata(cell){if(($.metadata)&&($(cell).metadata().sorter===false)){return
 true;};return false;}function 
checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return
 true;};return false;}function checkHead
 
erOptionsSortingLocked(table,i){if((table.config.headers[i])&&(table.config.headers[i].lockedOrder))return
 table.config.headers[i].lockedOrder;return false;}function 
applyWidget(table){var c=table.config.widgets;var l=c.length;for(var 
i=0;i<l;i++){getWidgetById(c[i]).format(table);}}function 
getWidgetById(name){var l=widgets.length;for(var 
i=0;i<l;i++){if(widgets[i].id.toLowerCase()==name.toLowerCase()){return 
widgets[i];}}};function 
formatSortingOrder(v){if(typeof(v)!="Number"){return(v.toLowerCase()=="desc")?1:0;}else{return(v==1)?1:0;}}function
 isValueInArray(v,a){var l=a.length;for(var i=0;i<l;i++){if(a[i][0]==v){return 
true;}}return false;}function 
setHeadersCss(table,$headers,list,css){$headers.removeClass(css[0]).removeClass(css[1]);var
 
h=[];$headers.each(function(offset){if(!this.sortDisabled){h[this.column]=$(this);}});var
 l=list.length;for(var 
i=0;i<l;i++){h[list[i][0]].addClass(css[list[i][1]]);}}function 
fixColumnWidth(table,$headers){var c=table.config;if(c.widthFixed){
 var colgroup=$('<colgroup>');$("tr:first 
td",table.tBodies[0]).each(function(){colgroup.append($('<col>').css('width',$(this).width()));});$(table).prepend(colgroup);};}function
 updateHeaderSortCount(table,sortList){var 
c=table.config,l=sortList.length;for(var i=0;i<l;i++){var 
s=sortList[i],o=c.headerList[s[0]];o.count=s[1];o.count++;}}function 
multisort(table,sortList,cache){if(table.config.debug){var sortTime=new 
Date();}var dynamicExp="var sortWrapper = function(a,b) 
{",l=sortList.length;for(var i=0;i<l;i++){var c=sortList[i][0];var 
order=sortList[i][1];var 
s=(table.config.parsers[c].type=="text")?((order==0)?makeSortFunction("text","asc",c):makeSortFunction("text","desc",c)):((order==0)?makeSortFunction("numeric","asc",c):makeSortFunction("numeric","desc",c));var
 e="e"+i;dynamicExp+="var "+e+" = "+s;dynamicExp+="if("+e+") { return "+e+"; } 
";dynamicExp+="else { ";}var 
orgOrderCol=cache.normalized[0].length-1;dynamicExp+="return 
a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(var i=0
 ;i<l;i++){dynamicExp+="}; ";}dynamicExp+="return 0; ";dynamicExp+="}; 
";if(table.config.debug){benchmark("Evaling expression:"+dynamicExp,new 
Date());}eval(dynamicExp);cache.normalized.sort(sortWrapper);if(table.config.debug){benchmark("Sorting
 on "+sortList.toString()+" and dir "+order+" time:",sortTime);}return 
cache;};function makeSortFunction(type,direction,index){var 
a="a["+index+"]",b="b["+index+"]";if(type=='text'&&direction=='asc'){return"("+a+"
 == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? 
Number.NEGATIVE_INFINITY : ("+a+" < "+b+") ? -1 : 1 )));";}else 
if(type=='text'&&direction=='desc'){return"("+a+" == "+b+" ? 0 : ("+a+" === 
null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : 
("+b+" < "+a+") ? -1 : 1 )));";}else 
if(type=='numeric'&&direction=='asc'){return"("+a+" === null && "+b+" === null) 
? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? 
Number.NEGATIVE_INFINITY : "+a+" - "+b+"));";}else if(typ
 e=='numeric'&&direction=='desc'){return"("+a+" === null && "+b+" === null) ? 0 
:("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? 
Number.NEGATIVE_INFINITY : "+b+" - "+a+"));";}};function 
makeSortText(i){return"((a["+i+"] < b["+i+"]) ? -1 : ((a["+i+"] > b["+i+"]) ? 1 
: 0));";};function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : 
((b["+i+"] > a["+i+"]) ? 1 : 0));";};function 
makeSortNumeric(i){return"a["+i+"]-b["+i+"];";};function 
makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];";};function 
sortText(a,b){if(table.config.sortLocaleCompare)return 
a.localeCompare(b);return((a<b)?-1:((a>b)?1:0));};function 
sortTextDesc(a,b){if(table.config.sortLocaleCompare)return 
b.localeCompare(a);return((b<a)?-1:((b>a)?1:0));};function 
sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return 
b-a;};function getCachedSortType(parsers,i){return 
parsers[i].type;};this.construct=function(settings){return 
this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,
 
$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var
 
sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var
 
totalRows=($this[0].tBodies[0]&&$this[0].tBodies[0].rows.length)||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var
 $cell=$(this);var 
i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var
 a=config.sortForce;for(var 
j=0;j<a.length;j++){if(a[j][0]!=i){config.sortList.push(a[j]);}}}config.sortList.push([i,this.order]);}else{if(isValueInArray(i,config.sortList)){for(var
 j=0;j<config.sortList.length;j++){var 
s=config.sortList[j],o=config.headerList[s[0]];if(s[0]==i){o.count=s[1];o.count
 
++;s[1]=o.count%2;}}}else{config.sortList.push([i,this.order]);}};setTimeout(function(){setHeadersCss($this[0],$headers,config.sortList,sortCSS);appendToTable($this[0],multisort($this[0],config.sortList,cache));},1);return
 
false;}}).mousedown(function(){if(config.cancelSelection){this.onselectstart=function(){return
 false};return false;}});$this.bind("update",function(){var 
me=this;setTimeout(function(){me.config.parsers=buildParserCache(me,$headers);cache=buildCache(me);},1);}).bind("updateCell",function(e,cell){var
 config=this.config;var 
pos=[(cell.parentNode.rowIndex-1),cell.cellIndex];cache.normalized[pos[0]][pos[1]]=config.parsers[pos[1]].format(getElementText(config,cell),cell);}).bind("sorton",function(e,list){$(this).trigger("sortStart");config.sortList=list;var
 
sortList=config.sortList;updateHeaderSortCount(this,sortList);setHeadersCss(this,$headers,sortList,sortCSS);appendToTable(this,multisort(this,sortList,cache));}).bind("appendCache",function(){appendToTable(this,cache
 
);}).bind("applyWidgetId",function(e,id){getWidgetById(id).format(this);}).bind("applyWidgets",function(){applyWidget(this);});if($.metadata&&($(this).metadata()&&$(this).metadata().sortlist)){config.sortList=$(this).metadata().sortlist;}if(config.sortList.length>0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var
 l=parsers.length,a=true;for(var 
i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var
 i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var 
i=parseInt(s);return(isNaN(i))?0:i;};this.isDigit=function(s,config){return/^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g,'')));};this.clearTableBody=function(table){if($.browser.msie){function
 
empty(){while(this.firstChild)this.removeChild(this.firstChild);}empty.apply(table.tBodies[0]);}else{table.tBodies[0].innerHTML="";}};}}
 );$.fn.extend({tablesorter:$.tablesorter.construct});var 
ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return 
true;},format:function(s){return 
$.trim(s.toLocaleLowerCase());},type:"text"});ts.addParser({id:"digit",is:function(s,table){var
 c=table.config;return $.tablesorter.isDigit(s,c);},format:function(s){return 
$.tablesorter.formatFloat(s);},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[£$€?.]/.test(s);},format:function(s){return
 $.tablesorter.formatFloat(s.replace(new 
RegExp(/[£$€]/g),""));},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);},format:function(s){var
 a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var 
item=a[i];if(item.length==2){r+="0"+item;}else{r+=item;}}return 
$.tablesorter.formatFloat(r);},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\/\/$/.test(s);},format:function(s){return
 jQuery.trim(s.replace(new RegExp(/(ht
 
tps?|ftp|file):\/\//),''));},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);},format:function(s){return
 $.tablesorter.formatFloat((s!="")?new Date(s.replace(new 
RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\%$/.test($.trim(s));},format:function(s){return
 $.tablesorter.formatFloat(s.replace(new 
RegExp(/%/g),""));},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return
 s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) 
(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));},format:function(s){return
 $.tablesorter.formatFloat(new 
Date(s).getTime());},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);},format:function(s,table){var
 
c=table.config;s=s.replace(/\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2");}else
 if(c.date
 
Format=="uk"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1");}else
 
if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3");}return
 $.tablesorter.formatFloat(new 
Date(s).getTime());},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s);},format:function(s){return
 $.tablesorter.formatFloat(new Date("2000/01/01 
"+s).getTime());},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return
 false;},format:function(s,table,cell){var 
c=table.config,p=(!c.parserMetadataName)?'sortValue':c.parserMetadataName;return
 
$(cell).metadata()[p];},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var
 time=new Date();}var 
$tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=(row%2==0);$tr.removeClass(table.config.widgetZebr
 
a.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying
 Zebra widget",time);}}});})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/js/main.new.js
----------------------------------------------------------------------
diff --git a/docs/js/main.new.js b/docs/js/main.new.js
new file mode 100644
index 0000000..98791b9
--- /dev/null
+++ b/docs/js/main.new.js
@@ -0,0 +1,645 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/***************************************
+ * GLOBAL FUNCTIONS
+ **************************************/
+
+// credit: http://www.javascriptkit.com/javatutors/touchevents2.shtml
+function swipedetect(el, callback){
+  
+       var touchsurface = el,
+       swipedir,
+       startX,
+       startY,
+       distX,
+       distY,
+       threshold = 50, //required min distance traveled to be considered swipe
+       restraint = 100, // maximum distance allowed at the same time in 
perpendicular direction
+       allowedTime = 500, // maximum time allowed to travel that distance
+       elapsedTime,
+       startTime,
+       handleswipe = callback || function(swipedir, event){}
+
+       touchsurface.addEventListener('touchstart', function(e){
+                       var touchobj = e.changedTouches[0]
+                       swipedir = 'none'
+                       dist = 0
+                       startX = touchobj.pageX
+                       startY = touchobj.pageY
+                       startTime = new Date().getTime() // record time when 
finger first makes contact with surface
+                       e.preventDefault()
+       }, false)
+
+       touchsurface.addEventListener('touchmove', function(e){
+                       e.preventDefault() // prevent scrolling when inside DIV
+       }, false)
+
+       touchsurface.addEventListener('touchend', function(e){
+                       var touchobj = e.changedTouches[0]
+                       distX = touchobj.pageX - startX // get horizontal dist 
traveled by finger while in contact with surface
+                       distY = touchobj.pageY - startY // get vertical dist 
traveled by finger while in contact with surface
+                       elapsedTime = new Date().getTime() - startTime // get 
time elapsed
+                       if (elapsedTime <= allowedTime){ // first condition for 
awipe met
+                                       if (Math.abs(distX) >= threshold && 
Math.abs(distY) <= restraint){ // 2nd condition for horizontal swipe met
+                                                       swipedir = (distX < 0)? 
'left' : 'right' // if dist traveled is negative, it indicates left swipe
+                                       }
+                                       else if (Math.abs(distY) >= threshold 
&& Math.abs(distX) <= restraint){ // 2nd condition for vertical swipe met
+                                                       swipedir = (distY < 0)? 
'up' : 'down' // if dist traveled is negative, it indicates up swipe
+                                       }
+                       }
+                       handleswipe(swipedir, e)
+                       e.preventDefault()
+       }, false)
+}
+
+/***************************************
+ * MAIN MENU - NAVIGATION TOGGLE MOBILE
+ **************************************/
+
+const menu = document.querySelectorAll('[data-plugin="menu"]');
+const menuOpened = document.querySelectorAll('[data-menu-opened]');
+const menuClosed = document.querySelectorAll('[data-menu-closed]');
+
+if (menu) {
+       menuClosed.forEach( (closedItem) => {
+               closedItem.addEventListener("click", function(e) {
+
+                       if (window.innerWidth > 768) {
+                               return;
+                       }
+
+                       menuClosed.forEach( (item) => {
+                               item.style.display = 'none';
+                       })
+                       menuOpened.forEach( (item) => {
+                               item.style.display = 'flex';
+                       })
+               });
+       });
+
+       menuOpened.forEach( (openedItem) => {
+               openedItem.addEventListener("click", function(e) {
+
+                       if (window.innerWidth > 768) {
+                               return;
+                       }
+
+                       menuOpened.forEach( (item) => {
+                               item.style.display = 'none';
+                       })
+                       menuClosed.forEach( (item) => {
+                               item.style.display = 'flex';
+                       })
+               });
+       });
+
+       window.addEventListener("resize", function(e){
+               if (window.innerWidth > 768) {
+                       menuOpened.forEach( (item) => {
+                               item.style = ''
+                       })
+                       menuClosed.forEach( (item) => {
+                               item.style = ''
+                       })
+               }
+       });
+}
+
+/***************************************
+ * SIDE MENU - & RETRIEVE DOCUMENTATION DYNAMICALLY
+ **************************************/
+
+///////////////////////////
+//
+// SIDE MENU FUNCTIONS
+//
+///////////////////////////
+ 
+var getDocumentationMenu = (url, cb, docMenu) => {
+       var myRequest = new Request(url);
+       
+       fetch(myRequest).then((response) => {
+               
+               return response.text().then((text) => {
+                       cb(response.status, text, docMenu);
+               });
+
+       });
+};
+
+// This attaches all listeners
+var doMenu = () => {
+       const subMenuSelector = '[data-plugin="sub-menu"]';
+       const subMenus = document.querySelectorAll(subMenuSelector);
+       const curLoc = window.location.pathname;
+
+       subMenus.forEach( (subMenu) => {
+
+               var showClass = 
subMenu.getAttribute('data-sub-menu-show-class');
+
+               // figure out opening the submenus and making things active
+               var allSubSubMenus = 
subMenu.querySelectorAll('[data-sub-menu]');
+               var openSubMenu = false;
+
+
+               allSubSubMenus.forEach( (curSubSubMenu) => {
+
+                       var curSubMenuItems = curSubSubMenu.children;
+
+                       Array.from(curSubMenuItems).forEach( (child) => {
+                               var childLoc = child.getAttribute('href');
+       
+                               if (curLoc.includes(childLoc)) {
+                                       child.classList.add('active');
+                                       openSubMenu = true;
+                                       curSubSubMenu.classList.add(showClass);
+                               }
+                       });
+
+               });
+
+               if (openSubMenu) {
+                       subMenu.classList.add(showClass);
+               }
+
+               // create the listener
+               subMenu.addEventListener('click', function(e) {
+                       e.stopPropagation();
+
+                       // must be a title to trigger things:
+                       if 
(!e.target.classList.contains('side-navigation__group-title') && 
!e.target.classList.contains('side-navigation__group-title-icon')) {
+                               return;
+                       }
+
+                       var closestSubMenu = e.target.closest(subMenuSelector);
+
+                       closestSubMenu.classList.toggle(showClass);
+
+                       var siblings = 
Array.from(closestSubMenu.parentNode.children);
+
+                       siblings.forEach( sibling => {
+
+                               // Turn off all siblings (not itself)
+                               if (!sibling.isEqualNode(closestSubMenu)) {
+                                       sibling.classList.remove(showClass);
+                               }
+
+                       });
+                       
+               }, true);
+       });
+};
+
+// This takes the response of the documentation and builds the menu in right 
format
+var buildDocMenu = (status, body, docMenu) => {
+       if (status == 404) {
+               doMenu();
+               return;
+       }
+
+       const docMenuLinkBase = docMenu.getAttribute('data-documentation');
+       var div = document.createElement('div');
+       div.innerHTML = body;
+
+       div.querySelectorAll('h4').forEach( h4 => {
+
+               var listItems = h4.nextElementSibling.children;
+
+               var group = document.createElement('div');
+               var itemsDiv = document.createElement('div');
+               var icon = document.createElement('i');
+               icon.classList.add('side-navigation__group-title-icon', 'icon', 
'ion-md-arrow-dropdown');
+               group.classList.add('side-navigation__group', 
'side-navigation__group--has-nested');
+               group.setAttribute('data-sub-menu-show-class', 
'side-navigation__group--has-nested-visible');
+               group.setAttribute('data-plugin', 'sub-menu');
+               itemsDiv.classList.add('side-navigation__group-items');
+               itemsDiv.setAttribute('data-sub-menu', true);
+
+               h4.classList.add('side-navigation__group-title');
+               h4.prepend(icon);
+
+               Array.from(listItems).forEach( listItem => {
+                       var link = listItem.querySelector('a');
+                       linkDestination = docMenuLinkBase + '/' + 
link.getAttribute('href');
+
+                       linkText = link.text.trim();
+
+                       var newLink = document.createElement('a');
+                       newLink.classList.add('side-navigation__group-item');
+                       newLink.setAttribute('href', linkDestination);
+                       newLink.text = linkText;
+
+                       itemsDiv.appendChild(newLink);
+               })
+
+               group.appendChild(h4);
+               group.appendChild(itemsDiv);
+
+               docMenu.appendChild(group);
+       });
+
+       // this needs to be called here bc this is the callback passed to 
asynchonous function getDocumentation..
+       doMenu();
+};
+
+// This is the function to trigger to begin side menu setup.
+var doSideMenu = () => {
+       const docMenuSelector = '[data-documentation]';
+       const docMenu = document.querySelector(docMenuSelector);
+
+       // handle the mobile triggering of the side menu.
+       handleMobileSideNavigation();
+
+       if (docMenu) {
+               const docMenuLinkBase = 
docMenu.getAttribute('data-documentation');
+               const docMenuLink = window.location.protocol + '//' + 
window.location.host + docMenuLinkBase;
+               // get the documentation menu, then build it.
+               getDocumentationMenu(docMenuLink, buildDocMenu, docMenu);
+
+       }
+};
+
+var handleMobileSideNavigation = function() {
+       const containerToggle = document.querySelector('.container__toggle');
+       const container = document.querySelector('.container');
+
+       if (containerToggle) {
+               // Detect clicks
+               containerToggle.addEventListener("click", function(e){
+                       container.classList.toggle('container--opened');
+
+                       localStorage['container-opened'] = 
JSON.stringify(container.classList.contains('container--opened'));
+               });
+
+               if (localStorage['container-opened']) {
+
+                       var opened = 
JSON.parse(localStorage['container-opened']);
+                       
+                       if (opened) {
+                               container.classList.add('container--opened');
+                       } else {
+                               container.classList.remove('container--opened');
+                       } 
+                       
+               } else {
+                       
+                       container.classList.remove('container--opened');
+               }
+
+               // Detect swipes
+               swipedetect(containerToggle, function(swipedir) {
+                               // swipedir contains either "none", "left", 
"right", "top", or "down"
+                               if (!['left', 'right'].includes(swipedir)) {
+                                               
container.classList.toggle('container--opened');
+                                               
localStorage['container-opened'] = 
JSON.stringify(container.classList.contains('container--opened'));
+                                               return;
+                               }
+
+                               // close it
+                               if (swipedir == 'left') {
+                                       
container.classList.add('container--opened');
+                               } else {
+                                       
container.classList.remove('container--opened');
+                               }
+
+                               localStorage['container-opened'] = 
JSON.stringify(container.classList.contains('container--opened'));
+               });
+       }
+};
+
+// SETUP
+doSideMenu();
+
+
+/***************************************
+ * RELEASES LIST
+ **************************************/
+var doReleasesList = () => {
+       const releasesListSelector = '[data-releases-list]';
+       const releasesList = document.querySelector(releasesListSelector);
+       const curLoc = window.location.pathname;
+
+       var tryFile = function (url, cb) {
+               var myRequest = new Request(url);
+               fetch(myRequest).then((response) => {
+                       cb(response.status != 404);
+               });
+       }
+
+       if (releasesList) {
+
+               // console.log(releasesList);
+               // console.log(curLoc);
+
+               var items = releasesList.children;
+
+               Array.from(items).forEach( item => {
+                       var anchor = item.querySelector('a');
+                       var link = anchor.getAttribute('href');
+
+                       tryFile(link, (status) => {
+                               console.log(link);
+                               console.log(status);
+                               console.log('---');
+
+                               if (status) {
+                                       item.classList.remove('hide');
+                               } else {
+                                       item.classList.add('hide');
+                               }
+
+                               if (curLoc.includes(link)) {
+                                       anchor.classList.add('active');
+                               }
+                       })
+               });
+
+       }
+
+};
+
+doReleasesList();
+
+/***************************************
+ * CANVAS - HOME PAGE HERO
+ **************************************/
+// CREDIT: https://codepen.io/dudleystorey/pen/NbNjjX
+var doCanvas = function() {
+       const hero = document.getElementById("hero");
+       const canvasBody = document.getElementById("canvas");
+
+       if (canvasBody) {
+
+               let resizeReset = function() {
+                       w = canvasBody.width = hero.offsetWidth;
+                       h = canvasBody.height = hero.offsetHeight;
+               }
+
+               const opts = { 
+                       particleColor: "rgb(200,200,200)",
+                       lineColor: "rgb(200,200,200)",
+                       particleAmount: 30,
+                       defaultSpeed: 1,
+                       variantSpeed: 1,
+                       defaultRadius: 2,
+                       variantRadius: 2,
+                       linkRadius: 200,
+               };
+
+               let deBouncer = function() {
+                               clearTimeout(tid);
+                               tid = setTimeout(function() {
+                                               resizeReset();
+                               }, delay);
+               };
+
+               let checkDistance = function(x1, y1, x2, y2){ 
+                       return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - 
y1, 2));
+               };
+
+               let linkPoints = function(point1, hubs){ 
+                       for (let i = 0; i < hubs.length; i++) {
+                               let distance = checkDistance(point1.x, 
point1.y, hubs[i].x, hubs[i].y);
+                               let opacity = 1 - distance / opts.linkRadius;
+                               if (opacity > 0) { 
+                                       drawArea.lineWidth = 0.5;
+                                       drawArea.strokeStyle = `rgba(${rgb[0]}, 
${rgb[1]}, ${rgb[2]}, ${opacity})`;
+                                       drawArea.beginPath();
+                                       drawArea.moveTo(point1.x, point1.y);
+                                       drawArea.lineTo(hubs[i].x, hubs[i].y);
+                                       drawArea.closePath();
+                                       drawArea.stroke();
+                               }
+                       }
+               }
+
+               Particle = function(xPos, yPos){ 
+                       this.x = Math.random() * w; 
+                       this.y = Math.random() * h;
+                       this.speed = opts.defaultSpeed + Math.random() * 
opts.variantSpeed; 
+                       this.directionAngle = Math.floor(Math.random() * 360); 
+                       this.color = opts.particleColor;
+                       this.radius = opts.defaultRadius + Math.random() * 
opts. variantRadius; 
+                       this.vector = {
+                               x: Math.cos(this.directionAngle) * this.speed,
+                               y: Math.sin(this.directionAngle) * this.speed
+                       };
+                       this.update = function(){ 
+                               this.border(); 
+                               this.x += this.vector.x; 
+                               this.y += this.vector.y; 
+                       };
+                       this.border = function(){ 
+                               if (this.x >= w || this.x <= 0) { 
+                                       this.vector.x *= -1;
+                               }
+                               if (this.y >= h || this.y <= 0) {
+                                       this.vector.y *= -1;
+                               }
+                               if (this.x > w) this.x = w;
+                               if (this.y > h) this.y = h;
+                               if (this.x < 0) this.x = 0;
+                               if (this.y < 0) this.y = 0;     
+                       };
+                       this.draw = function(){ 
+                               drawArea.beginPath();
+                               drawArea.arc(this.x, this.y, this.radius, 0, 
Math.PI*2);
+                               drawArea.closePath();
+                               drawArea.fillStyle = this.color;
+                               drawArea.fill();
+                       };
+               };
+
+               function setup(){ 
+                       particles = [];
+                       resizeReset();
+                       for (let i = 0; i < opts.particleAmount; i++){
+                               particles.push( new Particle() );
+                       }
+                       window.requestAnimationFrame(loop);
+               }
+
+               function loop(){ 
+                       window.requestAnimationFrame(loop);
+                       drawArea.clearRect(0,0,w,h);
+                       for (let i = 0; i < particles.length; i++){
+                               particles[i].update();
+                               particles[i].draw();
+                       }
+                       for (let i = 0; i < particles.length; i++){
+                               linkPoints(particles[i], particles);
+                       }
+               }
+
+               window.addEventListener("resize", function(){
+                       deBouncer();
+               });
+
+               drawArea = canvasBody.getContext("2d");
+               let delay = 200, tid,
+               rgb = opts.lineColor.match(/\d+/g);
+               resizeReset();
+               setup();
+       }
+}
+
+// Do the canvas
+doCanvas();
+
+
+/***************************************
+ * EVENTS
+ **************************************/
+
+var doEvents = () => {
+       const eventSelector = '[data-plugin="event"]';
+       const events = document.querySelectorAll(eventSelector);
+       
+       if (!events) {
+               return;
+       }
+
+       events.forEach( event => {
+
+               var date = event.getAttribute('data-date');
+               var upcomingClass = event.getAttribute('data-upcoming-class');
+
+               var d = new Date(date);
+               var timestamp = d.getTime();
+
+               var c = new Date();
+               var curstamp = c.getTime();
+
+               if (timestamp >= curstamp) {
+                       event.classList.add(upcomingClass);
+               }
+       });
+
+};
+
+doEvents();
+
+
+/***************************************
+ * PAGINATE
+ **************************************/
+
+var doPagination = () => {
+       const paginateSelector = '[data-plugin="paginate"]';
+       const paginates = document.querySelectorAll(paginateSelector);
+       
+       if (!paginates) {
+               return;
+       }
+
+       paginates.forEach( paginate => {
+
+               var maxPosts = 
parseInt(paginate.getAttribute('data-max-posts'));
+
+               var posts = paginate.children;
+               var count = 0;
+               var nextBtn = 
document.querySelector(paginate.getAttribute('data-next'));
+               var prevBtn = 
document.querySelector(paginate.getAttribute('data-previous'));
+               var pagination = 
document.querySelector(paginate.getAttribute('data-pagination'));
+
+               // Initial page load, hide extra posts
+               Array.from(posts).forEach( post => {
+                       if (count >= maxPosts) {
+                               post.classList.add('hide');
+                       }
+
+                       count++
+               });
+
+               // Initial page load, determine if next shows
+               if (posts && posts.length && posts.length > maxPosts) {
+                       nextBtn.classList.remove('hide');
+               } else {
+                       pagination.classList.add('hide');
+               }
+
+               // handle next
+               nextBtn.addEventListener("click", function(e) {
+                       
+                       // Find index of last showing post
+                       var visiblePosts = Array.prototype.filter.call(posts, 
(post) => {
+                               return 
!Array.from(post.classList).includes('hide');
+                       });
+
+                       var lastPost = visiblePosts[visiblePosts.length - 1];
+                       var index = Array.from(posts).indexOf(lastPost);
+
+                       // Hide all + show up to max posts after index
+                       Array.from(posts).forEach( (post, i) => {
+                               post.classList.add('hide');
+
+                               // show next posts and prev button
+                               if (i > index && i <= (index + maxPosts)) {
+                                       post.classList.remove('hide');
+                                       prevBtn.classList.remove('hide');
+                               }
+                               
+                       });
+
+                       // determine if next button does not show up
+                       if (posts.length <= index + maxPosts + 1) { // 1 bc 
indexes start at 0
+                               nextBtn.classList.add('hide');
+                       }
+
+                       paginate.scrollIntoView();
+               });
+
+               // handle previous
+               prevBtn.addEventListener("click", function(e) {
+
+                       // Find index of first showing post
+                       var visiblePosts = Array.prototype.filter.call(posts, 
(post) => {
+                               return 
!Array.from(post.classList).includes('hide');
+                       });
+
+                       var firstPost = visiblePosts[0];
+                       var index = Array.from(posts).indexOf(firstPost);
+
+                       // Hide all + show up to max posts before index
+                       Array.from(posts).forEach( (post, i) => {
+                               post.classList.add('hide');
+
+                               // show next posts and next button
+                               if (i < index && i >= index - maxPosts) {
+                                       post.classList.remove('hide');
+                                       nextBtn.classList.remove('hide');
+                               }
+                               
+                       });
+
+                       // determine if prev button does not show up
+                       if (index - maxPosts == 0) {
+                               prevBtn.classList.add('hide');
+                       }
+
+                       paginate.scrollIntoView();
+                       
+               });
+
+
+       });
+};
+
+doPagination();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/learn/tutorials/versioned/index.md
----------------------------------------------------------------------
diff --git a/docs/learn/tutorials/versioned/index.md 
b/docs/learn/tutorials/versioned/index.md
index d155b82..97a9fd5 100644
--- a/docs/learn/tutorials/versioned/index.md
+++ b/docs/learn/tutorials/versioned/index.md
@@ -53,5 +53,4 @@ title: Tutorials
 <a href="group-by-count.html">Group-by and Counting</a><br/>
 <a href="initialize-close.html">Initializing and Closing</a><br/>
 <a href="windowing.html">Windowing</a><br/>
-<a href="committing.html">Committing</a><br/>
--->
+<a href="committing.html">Committing</a><br/> \-->

http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/meetups/index.html
----------------------------------------------------------------------
diff --git a/docs/meetups/index.html b/docs/meetups/index.html
new file mode 100644
index 0000000..404fd18
--- /dev/null
+++ b/docs/meetups/index.html
@@ -0,0 +1,106 @@
+---
+layout: page
+exclude_from_loop: true
+title: Samza Meetups
+---
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<div class="meetups" data-plugin="paginate" data-max-posts="2" 
data-previous=".paginate-previous--meetup" data-next=".paginate-next--meetup" 
data-pagination=".pagination--meetup">
+    {% assign sorted = (site.meetups | sort: 'date') | reverse %}
+    {% for meetup in sorted %}
+        {% if meetup.exclude_from_loop %}
+            {% continue %}
+        {% endif %}
+    <div class="meetup" data-plugin="event" data-date="{{ meetup.date | date: 
'%-d %B %Y' }}" data-upcoming-class="meetup--upcoming">
+        <i class="meetup-icon ion-md-calendar"></i>
+        <div class="meetup-info">
+            <div class="meetup-date-group">{{ meetup.display_date }}</div>
+            
+            {% for meet in meetup.meetups %}
+
+            <div class="meet" data-plugin="event" data-date="{{ meet.date | 
date: '%-d %B %Y' }}" data-upcoming-class="meet--upcoming">
+                <div class="meet-upcoming-section">
+                    <div class="meet-upcoming-tag">
+                        <i class="ion-md-alarm"></i>
+                        Upcoming Event!
+                    </div>
+                </div>
+                <div>
+                    <div class="meet-name">{{ meet.name}}</div>
+                    <div class="meet-date"><strong>&raquo; Date 
&HorizontalLine;</strong> {{ meet.date }}</div>
+                    <div class="meet-host"><strong>&raquo; Presented At 
&HorizontalLine;</strong> {{ meet.host }}</div>
+
+                    {% if meet.presenters %}
+                    <div class="meet-presenter">
+
+                        <strong>&raquo; Presented By &HorizontalLine;</strong>
+
+                        <span>
+                        {% for presenter in meet.presenters %}
+
+                            <span>{{ presenter.name }}</span>
+
+                        {% endfor %}
+                        </span>
+
+                    </div>
+                    {% endif %}
+
+                    {% if meet.image %}
+                    <div class="meet-image" style="background-image:url('{{ 
meet.image }}')"></div>
+                    {% endif %}
+                </div>
+                {% if meet.video and meet.video.image %}
+                <a class="meet-video" href="{{ meet.video.url }}" 
style="background-image:url('{{ meet.video.image}}')">
+                    <i class="meet-video-icon 
ion-md-arrow-dropright-circle"></i>
+                </a>
+                {% endif %}
+
+                {% if meet.abstract %}
+                <div class="meet-description">
+                    {{ meet.abstract }}
+                </div>
+                {% endif %}
+                <div class="meet-actions">    
+                    {% if meet.slides %}
+                    <a class="meet-action" href="{{ meet.slides.url }}">View 
Slides</a>
+                    {% endif %}
+                    <a class="meet-action" href="{{ meet.url }}">Meetup Details
+                    </a>
+                </div>
+            </div>
+
+            {% endfor %}
+        </div>
+    </div>
+    {% endfor %}
+</div>
+    
+<div class="pagination pagination--meetup">
+    <hr/>
+    <div class="pagination-inner">
+        <div class="paginate-previous paginate-previous--meetup 
paginate-action hide">
+            <i class="icon ion-md-arrow-dropleft-circle"></i>
+            Previous
+        </div>
+        <div class="paginate-next paginate-next--meetup paginate-action hide">
+            Next
+            <i class="icon ion-md-arrow-dropright-circle"></i>
+        </div>
+    </div>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/powered-by/index.html
----------------------------------------------------------------------
diff --git a/docs/powered-by/index.html b/docs/powered-by/index.html
new file mode 100644
index 0000000..3838165
--- /dev/null
+++ b/docs/powered-by/index.html
@@ -0,0 +1,48 @@
+---
+layout: page
+title: Powered By
+exclude_from_loop: true
+---
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+A list of companies powered by Samza
+
+<ul class="powered-by">
+
+  {% for company in site.powered-by %}
+    {% if company.exclude_from_loop %}
+        {% continue %}
+    {% endif %}
+
+  <li>
+    <span title="{{ company.name }}">
+      <span style="background-image: url('https://logo.clearbit.com/{{ 
company.domain }}?size=256');"></span>
+    </span>
+    <div>
+      <a href="https://{{ company.domain }}" class="external-link" 
rel="nofollow">
+        <i class="icon ion-md-share-alt"></i> {{ company.name }}
+      </a>
+      <p>
+      {{ company.content }}
+      </p>
+    </div>
+  </li>
+
+  {% endfor %}
+
+</ul>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/startup/preview/index.md
----------------------------------------------------------------------
diff --git a/docs/startup/preview/index.md b/docs/startup/preview/index.md
index 20e4aaf..f456503 100644
--- a/docs/startup/preview/index.md
+++ b/docs/startup/preview/index.md
@@ -26,7 +26,7 @@ title: Feature Preview
 
 ---
 
-# Overview
+## Overview
 Samza 0.13.0 introduces a new programming model and a new deployment model. 
They're being released as a preview because they represent major enhancements 
to how developers work with Samza, so it is beneficial for both early adopters 
and the Samza development community to experiment with the release and provide 
feedback. The following sections introduce the new features and link to 
tutorials which demonstrate how to use them. Please try them and send feedback 
to the [dev mailing list](mailto:[email protected])
 
 ---

http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/startup/releases/versioned/release-notes.md
----------------------------------------------------------------------
diff --git a/docs/startup/releases/versioned/release-notes.md 
b/docs/startup/releases/versioned/release-notes.md
index 18983f1..a356318 100644
--- a/docs/startup/releases/versioned/release-notes.md
+++ b/docs/startup/releases/versioned/release-notes.md
@@ -30,18 +30,21 @@ title: Release Notes
 {% endif %}
 
 {% if site.version != "latest" %}
-## Download
+### Download
 All Samza JARs are published through [Apache's Maven 
repository](https://repository.apache.org/content/groups/public/org/apache/samza/).
 See [here](../download/index.html) for more details.
 
-## Source Release
+### Source Release
 
[samza-sources-{{site.version}}.tgz](http://www.apache.org/dyn/closer.lua/samza/{{site.version}}.*)
 
 
 {% endif %}
 
 
-
-## Release Notes
+{% if site.version != "latest" %}
+### Release Notes {{site.version}}
+{% else %}
+### Release Notes
+{% endif %}
 <!-- Add notes on new features, modified behavior of existing features, 
operational/performance improvements, new tools etc -->
 * [SAMZA-1510](https://issues.apache.org/jira/browse/SAMZA-1510) - Samza SQL
 * [SAMZA-1438](https://issues.apache.org/jira/browse/SAMZA-1438) - Producer 
and consumer for Azure EventHubs
@@ -52,18 +55,18 @@ All Samza JARs are published through [Apache's Maven 
repository](https://reposit
 * [SAMZA-1406](https://issues.apache.org/jira/browse/SAMZA-1406) - 
Enhancements to the ZooKeeper-based deployment model
 * [SAMZA-1321](https://issues.apache.org/jira/browse/SAMZA-1321) - Support for 
multi-stage batch processing
 
-## Upgrade Notes
+### Upgrade Notes
 <!-- Add detailed notes on how someone using an older version of samza 
(typically, currentVersion - 1) can upgrade to the latest -->
 <!-- Notes typically include config changes, public-api changes, new user 
guides/tutorials etc -->
 
-### Configuration Changes
+#### Configuration Changes
 
 <!-- PR 290 -->
 * Introduced a new **mandatory** configuration - 
`job.coordination.utils.factory`. Read more about it
 [here](/learn/documentation/{{site.version}}/jobs/configuration-table.html). 
<br />This config is applicable to all Samza
 applications deployed using the `LocalApplicationRunner` (that is, non-yarn 
deployments).
 
-### API Changes
+#### API Changes
 
 <!-- PR 292 -->
 * The following APIs in `SystemAdmin` have been deprecated in the previous 
versions and hence, replaced with newer APIs.

http://git-wip-us.apache.org/repos/asf/samza/blob/b8058af0/docs/talks/index.html
----------------------------------------------------------------------
diff --git a/docs/talks/index.html b/docs/talks/index.html
new file mode 100644
index 0000000..0ee8fa6
--- /dev/null
+++ b/docs/talks/index.html
@@ -0,0 +1,85 @@
+---
+layout: page
+exclude_from_loop: true
+title: Samza Talks
+---
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<div class="talks" data-plugin="paginate" data-max-posts="2" 
data-previous=".paginate-previous--talk" data-next=".paginate-next--talk" 
data-pagination=".pagination--talk">
+    {% assign sorted = (site.talks | sort: 'date') | reverse %}
+    {% for talk in sorted %}
+        {% if talk.exclude_from_loop %}
+            {% continue %}
+        {% endif %}
+    <div class="talk" data-plugin="event" data-date="{{ talk.date | date: '%-d 
%B %Y' }}" data-upcoming-class="talk--upcoming">
+        <div class="talk-upcoming-section">
+            <div class="talk-upcoming-tag">
+                <i class="ion-md-alarm"></i>
+                Upcoming Event!
+            </div>
+        </div>
+        <i class="talk-icon ion-md-quote"></i>
+        <div class="talk-info">
+            <div class="talk-date">{{ talk.display_date }}</div>
+            <div class="talk-event" href="{{ talk.event.url }}">
+                <a class="talk-event-link" href="{{ talk.event.url }}">
+                    <div class="talk-event-name">{{ talk.event.name}}</div>
+                    <div class="talk-event-host"><strong>&raquo; Presented At 
&HorizontalLine;</strong> {{ talk.event.host }}</div>
+                    {% if talk.event.by %}
+                    <div class="talk-event-by"><strong>&raquo; Presented By 
&HorizontalLine;</strong> {{ talk.event.by }}</div>
+                    {% endif %}
+                    {% if talk.event.image %}
+                    <div class="talk-event-image" 
style="background-image:url('{{ talk.event.image }}')"></div>
+                    {% endif %}
+                </a>
+                {% if talk.video and talk.video.image %}
+                <a class="talk-video" href="{{ talk.video.url }}" 
style="background-image:url('{{ talk.video.image}}')">
+                    <i class="talk-video-icon 
ion-md-arrow-dropright-circle"></i>
+                </a>
+                {% endif %}
+            </div>
+        </div>
+        {% if talk.content %}
+        <div class="talk-description">
+            {{ talk.content }}
+        </div>
+        {% endif %}
+        <div class="talk-actions">    
+            {% if talk.slides and talk.slides.url %}
+            <a class="talk-action" href="{{ talk.slides.url }}">View Slides</a>
+            {% endif %}
+            <a class="talk-action" href="{{ talk.event.url }}">Event Details
+            </a>
+        </div>
+    </div>
+    {% endfor %}
+</div>
+<div class="pagination pagination--talk">
+    <hr/>
+    <div class="pagination-inner">
+        <div class="paginate-previous paginate-previous--talk paginate-action 
hide">
+            <i class="icon ion-md-arrow-dropleft-circle"></i>
+            Previous
+        </div>
+        <div class="paginate-next paginate-next--talk paginate-action hide">
+            Next
+            <i class="icon ion-md-arrow-dropright-circle"></i>
+        </div>
+    </div>
+</div>
+    
\ No newline at end of file

Reply via email to