Repository: flink-web
Updated Branches:
  refs/heads/asf-site 91495ac00 -> 61adc1372


http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/js/jquery.jcarousel.min.js
----------------------------------------------------------------------
diff --git a/js/jquery.jcarousel.min.js b/js/jquery.jcarousel.min.js
new file mode 100644
index 0000000..7421030
--- /dev/null
+++ b/js/jquery.jcarousel.min.js
@@ -0,0 +1,4 @@
+/*! jCarousel - v0.3.4 - 2015-09-23
+* http://sorgalla.com/jcarousel/
+* Copyright (c) 2006-2015 Jan Sorgalla; Licensed MIT */
+!function(a){"use strict";var b=a.jCarousel={};b.version="0.3.4";var 
c=/^([+\-]=)?(.+)$/;b.parseTarget=function(a){var b=!1,d="object"!=typeof 
a?c.exec(a):null;return 
d?(a=parseInt(d[2],10)||0,d[1]&&(b=!0,"-="===d[1]&&(a*=-1))):"object"!=typeof 
a&&(a=parseInt(a,10)||0),{target:a,relative:b}},b.detectCarousel=function(a){for(var
 b;a.length>0;){if(b=a.filter("[data-jcarousel]"),b.length>0)return 
b;if(b=a.find("[data-jcarousel]"),b.length>0)return b;a=a.parent()}return 
null},b.base=function(c){return{version:b.version,_options:{},_element:null,_carousel:null,_init:a.noop,_create:a.noop,_destroy:a.noop,_reload:a.noop,create:function(){return
 
this._element.attr("data-"+c.toLowerCase(),!0).data(c,this),!1===this._trigger("create")?this:(this._create(),this._trigger("createend"),this)},destroy:function(){return!1===this._trigger("destroy")?this:(this._destroy(),this._trigger("destroyend"),this._element.removeData(c).removeAttr("data-"+c.toLowerCase()),this)},reload:function(a){return!1===t
 
his._trigger("reload")?this:(a&&this.options(a),this._reload(),this._trigger("reloadend"),this)},element:function(){return
 this._element},options:function(b,c){if(0===arguments.length)return 
a.extend({},this._options);if("string"==typeof b){if("undefined"==typeof 
c)return"undefined"==typeof 
this._options[b]?null:this._options[b];this._options[b]=c}else 
this._options=a.extend({},this._options,b);return 
this},carousel:function(){return 
this._carousel||(this._carousel=b.detectCarousel(this.options("carousel")||this._element),this._carousel||a.error('Could
 not detect carousel for plugin 
"'+c+'"')),this._carousel},_trigger:function(b,d,e){var f,g=!1;return 
e=[this].concat(e||[]),(d||this._element).each(function(){f=a.Event((c+":"+b).toLowerCase()),a(this).trigger(f,e),f.isDefaultPrevented()&&(g=!0)}),!g}}},b.plugin=function(c,d){var
 
e=a[c]=function(b,c){this._element=a(b),this.options(c),this._init(),this.create()};return
 e.fn=e.prototype=a.extend({},b.base(c),d),a.fn[c]=function(b){var 
 d=Array.prototype.slice.call(arguments,1),f=this;return 
this.each("string"==typeof b?function(){var e=a(this).data(c);if(!e)return 
a.error("Cannot call methods on "+c+' prior to initialization; attempted to 
call method "'+b+'"');if(!a.isFunction(e[b])||"_"===b.charAt(0))return 
a.error('No such method "'+b+'" for '+c+" instance");var 
g=e[b].apply(e,d);return g!==e&&"undefined"!=typeof g?(f=g,!1):void 
0}:function(){var d=a(this).data(c);d instanceof e?d.reload(b):new 
e(this,b)}),f},e}}(jQuery),function(a,b){"use strict";var c=function(a){return 
parseFloat(a)||0};a.jCarousel.plugin("jcarousel",{animating:!1,tail:0,inTail:!1,resizeTimer:null,lt:null,vertical:!1,rtl:!1,circular:!1,underflow:!1,relative:!1,_options:{list:function(){return
 this.element().children().eq(0)},items:function(){return 
this.list().children()},animation:400,transitions:!1,wrap:null,vertical:null,rtl:null,center:!1},_list:null,_items:null,_target:a(),_first:a(),_last:a(),_visible:a(),_fullyvisible:a(),_init:functio
 n(){var a=this;return 
this.onWindowResize=function(){a.resizeTimer&&clearTimeout(a.resizeTimer),a.resizeTimer=setTimeout(function(){a.reload()},100)},this},_create:function(){this._reload(),a(b).on("resize.jcarousel",this.onWindowResize)},_destroy:function(){a(b).off("resize.jcarousel",this.onWindowResize)},_reload:function(){this.vertical=this.options("vertical"),null==this.vertical&&(this.vertical=this.list().height()>this.list().width()),this.rtl=this.options("rtl"),null==this.rtl&&(this.rtl=function(b){if("rtl"===(""+b.attr("dir")).toLowerCase())return!0;var
 c=!1;return 
b.parents("[dir]").each(function(){return/rtl/i.test(a(this).attr("dir"))?(c=!0,!1):void
 
0}),c}(this._element)),this.lt=this.vertical?"top":"left",this.relative="relative"===this.list().css("position"),this._list=null,this._items=null;var
 
b=this.index(this._target)>=0?this._target:this.closest();this.circular="circular"===this.options("wrap"),this.underflow=!1;var
 c={left:0,top:0};return b.length>0&&(this._prepar
 
e(b),this.list().find("[data-jcarousel-clone]").remove(),this._items=null,this.underflow=this._fullyvisible.length>=this.items().length,this.circular=this.circular&&!this.underflow,c[this.lt]=this._position(b)+"px"),this.move(c),this},list:function(){if(null===this._list){var
 
b=this.options("list");this._list=a.isFunction(b)?b.call(this):this._element.find(b)}return
 this._list},items:function(){if(null===this._items){var 
b=this.options("items");this._items=(a.isFunction(b)?b.call(this):this.list().find(b)).not("[data-jcarousel-clone]")}return
 this._items},index:function(a){return 
this.items().index(a)},closest:function(){var 
b,d=this,e=this.list().position()[this.lt],f=a(),g=!1,h=this.vertical?"bottom":this.rtl&&!this.relative?"left":"right";return
 
this.rtl&&this.relative&&!this.vertical&&(e+=this.list().width()-this.clipping()),this.items().each(function(){if(f=a(this),g)return!1;var
 
i=d.dimension(f);if(e+=i,e>=0){if(b=i-c(f.css("margin-"+h)),!(Math.abs(e)-i+b/2<=0))return!1;g=!0}}
 ),f},target:function(){return this._target},first:function(){return 
this._first},last:function(){return this._last},visible:function(){return 
this._visible},fullyvisible:function(){return 
this._fullyvisible},hasNext:function(){if(!1===this._trigger("hasnext"))return!0;var
 
a=this.options("wrap"),b=this.items().length-1,c=this.options("center")?this._target:this._last;return
 
b>=0&&!this.underflow&&(a&&"first"!==a||this.index(c)<b||this.tail&&!this.inTail)?!0:!1},hasPrev:function(){if(!1===this._trigger("hasprev"))return!0;var
 a=this.options("wrap");return 
this.items().length>0&&!this.underflow&&(a&&"last"!==a||this.index(this._first)>0||this.tail&&this.inTail)?!0:!1},clipping:function(){return
 
this._element["inner"+(this.vertical?"Height":"Width")]()},dimension:function(a){return
 
a["outer"+(this.vertical?"Height":"Width")](!0)},scroll:function(b,c,d){if(this.animating)return
 this;if(!1===this._trigger("scroll",null,[b,c]))return 
this;a.isFunction(c)&&(d=c,c=!0);var e=a.jCarousel.parse
 Target(b);if(e.relative){var 
f,g,h,i,j,k,l,m,n=this.items().length-1,o=Math.abs(e.target),p=this.options("wrap");if(e.target>0){var
 
q=this.index(this._last);if(q>=n&&this.tail)this.inTail?"both"===p||"last"===p?this._scroll(0,c,d):a.isFunction(d)&&d.call(this,!1):this._scrollTail(c,d);else
 
if(f=this.index(this._target),this.underflow&&f===n&&("circular"===p||"both"===p||"last"===p)||!this.underflow&&q===n&&("both"===p||"last"===p))this._scroll(0,c,d);else
 
if(h=f+o,this.circular&&h>n){for(m=n,j=this.items().get(-1);m++<h;)j=this.items().eq(0),k=this._visible.index(j)>=0,k&&j.after(j.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(j),k||(l={},l[this.lt]=this.dimension(j),this.moveBy(l)),this._items=null;this._scroll(j,c,d)}else
 this._scroll(Math.min(h,n),c,d)}else 
if(this.inTail)this._scroll(Math.max(this.index(this._first)-o+1,0),c,d);else 
if(g=this.index(this._first),f=this.index(this._target),i=this.underflow?f:g,h=i-o,0>=i&&(this.underflow&&"circular"===p||"both"===p
 ||"first"===p))this._scroll(n,c,d);else 
if(this.circular&&0>h){for(m=h,j=this.items().get(0);m++<0;){j=this.items().eq(-1),k=this._visible.index(j)>=0,k&&j.after(j.clone(!0).attr("data-jcarousel-clone",!0)),this.list().prepend(j),this._items=null;var
 r=this.dimension(j);l={},l[this.lt]=-r,this.moveBy(l)}this._scroll(j,c,d)}else 
this._scroll(Math.max(h,0),c,d)}else this._scroll(e.target,c,d);return 
this._trigger("scrollend"),this},moveBy:function(a,b){var 
d=this.list().position(),e=1,f=0;return 
this.rtl&&!this.vertical&&(e=-1,this.relative&&(f=this.list().width()-this.clipping())),a.left&&(a.left=d.left+f+c(a.left)*e+"px"),a.top&&(a.top=d.top+f+c(a.top)*e+"px"),this.move(a,b)},move:function(b,c){c=c||{};var
 
d=this.options("transitions"),e=!!d,f=!!d.transforms,g=!!d.transforms3d,h=c.duration||0,i=this.list();if(!e&&h>0)return
 void i.animate(b,c);var j=c.complete||a.noop,k={};if(e){var 
l={transitionDuration:i.css("transitionDuration"),transitionTimingFunction:i.css("transitionTimingFun
 
ction"),transitionProperty:i.css("transitionProperty")},m=j;j=function(){a(this).css(l),m.call(this)},k={transitionDuration:(h>0?h/1e3:0)+"s",transitionTimingFunction:d.easing||c.easing,transitionProperty:h>0?function(){return
 
f||g?"all":b.left?"left":"top"}():"none",transform:"none"}}g?k.transform="translate3d("+(b.left||0)+","+(b.top||0)+",0)":f?k.transform="translate("+(b.left||0)+","+(b.top||0)+")":a.extend(k,b),e&&h>0&&i.one("transitionend
 webkitTransitionEnd oTransitionEnd otransitionend 
MSTransitionEnd",j),i.css(k),0>=h&&i.each(function(){j.call(this)})},_scroll:function(b,c,d){if(this.animating)return
 a.isFunction(d)&&d.call(this,!1),this;if("object"!=typeof 
b?b=this.items().eq(b):"undefined"==typeof 
b.jquery&&(b=a(b)),0===b.length)return 
a.isFunction(d)&&d.call(this,!1),this;this.inTail=!1,this._prepare(b);var 
e=this._position(b),f=this.list().position()[this.lt];if(e===f)return 
a.isFunction(d)&&d.call(this,!1),this;var g={};return 
g[this.lt]=e+"px",this._animate(g,c,d),thi
 s},_scrollTail:function(b,c){if(this.animating||!this.tail)return 
a.isFunction(c)&&c.call(this,!1),this;var 
d=this.list().position()[this.lt];this.rtl&&this.relative&&!this.vertical&&(d+=this.list().width()-this.clipping()),this.rtl&&!this.vertical?d+=this.tail:d-=this.tail,this.inTail=!0;var
 e={};return 
e[this.lt]=d+"px",this._update({target:this._target.next(),fullyvisible:this._fullyvisible.slice(1).add(this._visible.last())}),this._animate(e,b,c),this},_animate:function(b,c,d){if(d=d||a.noop,!1===this._trigger("animate"))return
 d.call(this,!1),this;this.animating=!0;var 
e=this.options("animation"),f=a.proxy(function(){this.animating=!1;var 
a=this.list().find("[data-jcarousel-clone]");a.length>0&&(a.remove(),this._reload()),this._trigger("animateend"),d.call(this,!0)},this),g="object"==typeof
 e?a.extend({},e):{duration:e},h=g.complete||a.noop;return 
c===!1?g.duration=0:"undefined"!=typeof 
a.fx.speeds[g.duration]&&(g.duration=a.fx.speeds[g.duration]),g.complete=function(){f(),h.ca
 ll(this)},this.move(b,g),this},_prepare:function(b){var 
d,e,f,g,h=this.index(b),i=h,j=this.dimension(b),k=this.clipping(),l=this.vertical?"bottom":this.rtl?"left":"right",m=this.options("center"),n={target:b,first:b,last:b,visible:b,fullyvisible:k>=j?b:a()};if(m&&(j/=2,k/=2),k>j)for(;;){if(d=this.items().eq(++i),0===d.length){if(!this.circular)break;if(d=this.items().eq(0),b.get(0)===d.get(0))break;if(e=this._visible.index(d)>=0,e&&d.after(d.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(d),!e){var
 
o={};o[this.lt]=this.dimension(d),this.moveBy(o)}this._items=null}if(g=this.dimension(d),0===g)break;if(j+=g,n.last=d,n.visible=n.visible.add(d),f=c(d.css("margin-"+l)),k>=j-f&&(n.fullyvisible=n.fullyvisible.add(d)),j>=k)break}if(!this.circular&&!m&&k>j)for(i=h;;){if(--i<0)break;if(d=this.items().eq(i),0===d.length)break;if(g=this.dimension(d),0===g)break;if(j+=g,n.first=d,n.visible=n.visible.add(d),f=c(d.css("margin-"+l)),k>=j-f&&(n.fullyvisible=n.fullyvisible.add(d)),j>=k
 )break}return 
this._update(n),this.tail=0,m||"circular"===this.options("wrap")||"custom"===this.options("wrap")||this.index(n.last)!==this.items().length-1||(j-=c(n.last.css("margin-"+l)),j>k&&(this.tail=j-k)),this},_position:function(a){var
 
b=this._first,c=b.position()[this.lt],d=this.options("center"),e=d?this.clipping()/2-this.dimension(b)/2:0;return
 
this.rtl&&!this.vertical?(c-=this.relative?this.list().width()-this.dimension(b):this.clipping()-this.dimension(b),c+=e):c-=e,!d&&(this.index(a)>this.index(b)||this.inTail)&&this.tail?(c=this.rtl&&!this.vertical?c-this.tail:c+this.tail,this.inTail=!0):this.inTail=!1,-c},_update:function(b){var
 
c,d=this,e={target:this._target,first:this._first,last:this._last,visible:this._visible,fullyvisible:this._fullyvisible},f=this.index(b.first||e.first)<this.index(e.first),g=function(c){var
 
g=[],h=[];b[c].each(function(){e[c].index(this)<0&&g.push(this)}),e[c].each(function(){b[c].index(this)<0&&h.push(this)}),f?g=g.reverse():h=h.reverse(),d._t
 rigger(c+"in",a(g)),d._trigger(c+"out",a(h)),d["_"+c]=b[c]};for(c in 
b)g(c);return this}})}(jQuery,window),function(a){"use 
strict";a.jcarousel.fn.scrollIntoView=function(b,c,d){var 
e,f=a.jCarousel.parseTarget(b),g=this.index(this._fullyvisible.first()),h=this.index(this._fullyvisible.last());if(e=f.relative?f.target<0?Math.max(0,g+f.target):h+f.target:"object"!=typeof
 f.target?f.target:this.index(f.target),g>e)return 
this.scroll(e,c,d);if(e>=g&&h>=e)return 
a.isFunction(d)&&d.call(this,!1),this;for(var 
i,j=this.items(),k=this.clipping(),l=this.vertical?"bottom":this.rtl?"left":"right",m=0;;){if(i=j.eq(e),0===i.length)break;if(m+=this.dimension(i),m>=k){var
 
n=parseFloat(i.css("margin-"+l))||0;m-n!==k&&e++;break}if(0>=e)break;e--}return 
this.scroll(e,c,d)}}(jQuery),function(a){"use 
strict";a.jCarousel.plugin("jcarouselControl",{_options:{target:"+=1",event:"click",method:"scroll"},_active:null,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcar
 
ousel:createend",a.proxy(this._create,this))},this),this.onReload=a.proxy(this._reload,this),this.onEvent=a.proxy(function(b){b.preventDefault();var
 
c=this.options("method");a.isFunction(c)?c.call(this):this.carousel().jcarousel(this.options("method"),this.options("target"))},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend
 
jcarousel:scrollend",this.onReload),this._element.on(this.options("event")+".jcarouselcontrol",this.onEvent),this._reload()},_destroy:function(){this._element.off(".jcarouselcontrol",this.onEvent),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend
 jcarousel:scrollend",this.onReload)},_reload:function(){var 
b,c=a.jCarousel.parseTarget(this.options("target")),d=this.carousel();if(c.relative)b=d.jcarousel(c.target>0?"hasNext":"hasPrev");else{var
 e="object"!=typeof 
c.target?d.jcarousel("items").eq(c.target):c.target;b=d.jcarousel("target").index(e)>=0}return
 this._active!==b&&(this
 
._trigger(b?"active":"inactive"),this._active=b),this}})}(jQuery),function(a){"use
 
strict";a.jCarousel.plugin("jcarouselPagination",{_options:{perPage:null,item:function(a){return'<a
 
href="#'+a+'">'+a+"</a>"},event:"click",method:"scroll"},_carouselItems:null,_pages:{},_items:{},_currentPage:null,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onReload=a.proxy(this._reload,this),this.onScroll=a.proxy(this._update,this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend",this.onReload).on("jcarousel:scrollend",this.onScroll),this._reload()},_destroy:function(){this._clear(),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend",this.onReload).off("jcarousel:scrollend",this.onScroll),this._carouselItems=null},_reload:function(){var
 
b=this.options("perPage");if(this._pages={},this._items={},a.isFunction(b)&&(b=b
 .call(this)),null==b)this._pages=this._calculatePages();else for(var 
c,d=parseInt(b,10)||0,e=this._getCarouselItems(),f=1,g=0;;){if(c=e.eq(g++),0===c.length)break;this._pages[f]=this._pages[f]?this._pages[f].add(c):c,g%d===0&&f++}this._clear();var
 
h=this,i=this.carousel().data("jcarousel"),j=this._element,k=this.options("item"),l=this._getCarouselItems().length;a.each(this._pages,function(b,c){var
 
d=h._items[b]=a(k.call(h,b,c));d.on(h.options("event")+".jcarouselpagination",a.proxy(function(){var
 a=c.eq(0);if(i.circular){var 
d=i.index(i.target()),e=i.index(a);parseFloat(b)>parseFloat(h._currentPage)?d>e&&(a="+="+(l-d+e)):e>d&&(a="-="+(d+(l-e)))}i[this.options("method")](a)},h)),j.append(d)}),this._update()},_update:function(){var
 
b,c=this.carousel().jcarousel("target");a.each(this._pages,function(a,d){return 
d.each(function(){return c.is(this)?(b=a,!1):void 0}),b?!1:void 
0}),this._currentPage!==b&&(this._trigger("inactive",this._items[this._currentPage]),this._trigger("active",this.
 _items[b])),this._currentPage=b},items:function(){return 
this._items},reloadCarouselItems:function(){return 
this._carouselItems=null,this},_clear:function(){this._element.empty(),this._currentPage=null},_calculatePages:function(){for(var
 
a,b,c=this.carousel().data("jcarousel"),d=this._getCarouselItems(),e=c.clipping(),f=0,g=0,h=1,i={};;){if(a=d.eq(g++),0===a.length)break;b=c.dimension(a),f+b>e&&(h++,f=0),f+=b,i[h]=i[h]?i[h].add(a):a}return
 i},_getCarouselItems:function(){return 
this._carouselItems||(this._carouselItems=this.carousel().jcarousel("items")),this._carouselItems}})}(jQuery),function(a,b){"use
 strict";var 
c,d,e={hidden:"visibilitychange",mozHidden:"mozvisibilitychange",msHidden:"msvisibilitychange",webkitHidden:"webkitvisibilitychange"};a.each(e,function(a,e){return"undefined"!=typeof
 b[a]?(c=a,d=e,!1):void 
0}),a.jCarousel.plugin("jcarouselAutoscroll",{_options:{target:"+=1",interval:3e3,autostart:!0},_timer:null,_started:!1,_init:function(){this.onDestroy=a.proxy(functio
 
n(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onAnimateEnd=a.proxy(this._start,this),this.onVisibilityChange=a.proxy(function(){b[c]?this._stop():this._start()},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy),a(b).on(d,this.onVisibilityChange),this.options("autostart")&&this.start()},_destroy:function(){this._stop(),this.carousel().off("jcarousel:destroy",this.onDestroy),a(b).off(d,this.onVisibilityChange)},_start:function(){return
 
this._stop(),this._started?(this.carousel().one("jcarousel:animateend",this.onAnimateEnd),this._timer=setTimeout(a.proxy(function(){this.carousel().jcarousel("scroll",this.options("target"))},this),this.options("interval")),this):void
 0},_stop:function(){return 
this._timer&&(this._timer=clearTimeout(this._timer)),this.carousel().off("jcarousel:animateend",this.onAnimateEnd),this},start:function(){return
 this._started=!0,this._start(),this},stop:function(){return this
 ._started=!1,this._stop(),this}})}(jQuery,document);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/js/stickysidebar.js
----------------------------------------------------------------------
diff --git a/js/stickysidebar.js b/js/stickysidebar.js
new file mode 100644
index 0000000..6b79470
--- /dev/null
+++ b/js/stickysidebar.js
@@ -0,0 +1,38 @@
+
+$(document).ready(function(){
+
+  var sbHeight = $('#sidebar').height();
+
+  function stickSidebar() {    
+    var $el = $('.footer'),
+        scrollTop = $(this).scrollTop(),
+        scrollBot = scrollTop + $(this).height(),
+        elTop = $el.offset().top,
+        elBottom = elTop + $el.outerHeight(),
+        visibleTop = elTop < scrollTop ? scrollTop : elTop,
+        visibleBottom = elBottom > scrollBot ? scrollBot : elBottom,
+        wHeight = $(this).height(),
+        sidebarOverflow = sbHeight - wHeight,
+        $sidebar   = $("#sidebar .navbar"),
+        distance  = (elTop - scrollTop);
+      
+    if (wHeight < sbHeight) {
+
+      if (scrollTop > sidebarOverflow && wHeight < distance) {
+        $sidebar.css({'position':'fixed','bottom':0 });
+      } else if (wHeight >= distance) {
+        $sidebar.css({'position':'fixed','bottom':visibleBottom - visibleTop});
+      } else {
+        $sidebar.css({'position':'static'});
+      }
+
+    } else if (wHeight > sbHeight){
+      $sidebar.css({'position':'fixed', 'top':0});
+    }
+
+  }
+
+$(window).on('scroll resize', stickSidebar);
+
+
+});

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/material.md
----------------------------------------------------------------------
diff --git a/material.md b/material.md
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/poweredby.md
----------------------------------------------------------------------
diff --git a/poweredby.md b/poweredby.md
old mode 100644
new mode 100755
index 4bdf9e0..6ae0927
--- a/poweredby.md
+++ b/poweredby.md
@@ -15,60 +15,49 @@ title: "Powered by Flink"
 </style>
 </head>
 
-<p>To demonstrate Flink's capabilities, we've included a few examples of how 
Flink is being used at large enterprises. Check out the <a 
href="https://cwiki.apache.org/confluence/display/FLINK/Powered+by+Flink"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Powered by Flink directory</a> for a 
comprehensive list of companies and organizations using Flink.</p>
+<p>To demonstrate Flink's capabilities, we've collected a few examples Flink 
use cases inside of companies. The <a 
href="https://cwiki.apache.org/confluence/display/FLINK/Powered+by+Flink"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Powered by Flink directory</a> has a 
comprehensive list of companies and organizations using Flink.</p>
 
-<table width="800" align="center" border="0">
-   <tr>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/alibaba-logo.png" width="175"  
alt="Alibaba" />
-      </td>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/bouygues-logo.jpg" width="175"  
alt="Bouygues" />
-      </td>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/capital-one-logo.png" width="175"  
alt="Capital One" />
-      </td>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/ericsson-logo.png" width="175"  
alt="Ericsson" />
-      </td>
-   </tr>
-   <tr>
-      <td width="25%" align="left" valign="top">
-         Alibaba, the world's largest retailer, built a Flink-based system 
(Blink) to optimize search rankings in real time. <br><br><a 
href="https://www.youtube.com/watch?v=_Nw8NTdIq9A"; target='_blank'><small><span 
class="glyphicon glyphicon-new-window"></span></small> See Alibaba's Blink 
overview from Hadoop Summit 2016 San Jose.</a>
-      </td>
-      <td width="25%" align="left" valign="top">
-         Bouygues Telecom uses Flink for real-time event processing over 
billions of Kafka messages per day. <br><br><a 
href="http://data-artisans.com/flink-at-bouygues-html/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read about stream processing with Flink 
at Bouygues Telecom.</a>
-      </td>
-      <td width="25%" align="left" valign="top">
-         Capital One, a Fortune 500 financial services company, uses Flink to 
monitor real-time customer activity. <br><br><a 
href="http://www.slideshare.net/FlinkForward/flink-case-study-capital-one"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> See Capital One's case study slides from 
Flink Forward 2015.</a>
-      </td>
-      <td width="25%" align="left" valign="top">
-         Ericsson used Flink to build a real-time anomaly detector over large 
infrastructures using machine learning. <br><br><a 
href="https://www.oreilly.com/ideas/applying-the-kappa-architecture-in-the-telco-industry";
 target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read a detailed overview of Ericsson's 
architecture on O'Reilly Ideas.</a>
-      </td>
-   </tr>
-   <tr>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/king-logo.png" width="175" 
alt="King" />
-      </td>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/otto-group-logo.jpg" width="175" 
alt="King" />
-      </td>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/researchgate-logo.png" width="175" 
alt="ResearchGate" />
-      </td>
-      <td width="25%" align="center" valign="center">
-         <img src="{{ site.baseurl }}/img/zalando-logo.png" width="175" 
alt="Zalando" />
-      </td>
-   </tr>
-   <tr>
-      <td width="25%" align="left" valign="top">
-         King, the creators of Candy Crush Saga, uses Flink to provide data 
science teams with real-time analytics. <br><br><a 
href="https://techblog.king.com/rbea-scalable-real-time-analytics-king/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read about their Flink implementation at 
the King Tech Blog.</a>
-      </td>
-      <td width="25%" align="left" valign="top">
-         Otto Group, the world's second-largest online retailer, uses Flink 
for BI stream processing. <br><br><a 
href="http://data-artisans.com/how-we-selected-apache-flink-at-otto-group/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read about their implementation and 
evaluation process.</a> 
-         </td>
-      <td width="25%" align="left" valign="top">
-         ResearchGate, a social network for scientists, uses Flink for network 
analysis & near duplicate detection. <br><br><a 
href="http://2015.flink-forward.org/?session=everyday-flink"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> See ResearchGate's presentation from 
Flink Forward 2015.</a>    
-      <td width="25%" align="left" valign="top">
-         Zalando, one of the largest ecommerce companies in Europe, uses Flink 
for real-time process monitoring. <br><br><a 
href="https://tech.zalando.de/blog/apache-showdown-flink-vs.-spark/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read about their implementation at the 
Zalando Tech Blog.</a> 
-      </td>
\ No newline at end of file
+Would you like to be included on this page? Please reach out to the [Flink 
user mailing list]({{ site.baseurl }}/community.html#mailing-lists) and let us 
know.
+
+<div class="row-fluid">
+
+   <div class="col-md-3 col-sm-4 col-xs-6">
+      <img src="{{ site.baseurl }}/img/poweredby/alibaba-logo.png" width="175" 
 alt="Alibaba" /><br />
+      Alibaba, the world's largest retailer, uses a fork of Flink called Blink 
to optimize search rankings in real time. <br><br><a 
href="http://data-artisans.com/blink-flink-alibaba-search/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read more about Flink's role at 
Alibaba</a>
+   </div>
+   <div class="col-md-3 col-sm-4 col-xs-6">
+      <img src="{{ site.baseurl }}/img/poweredby/bouygues-logo.jpg" 
width="175"  alt="Bouygues" /><br />
+      Bouygues Telecom is running 30 production applications powered by Flink 
and is processing 10 billion raw events per day. <br><br><a 
href="http://flink-forward.org/kb_sessions/a-brief-history-of-time-with-apache-flink-real-time-monitoring-and-analysis-with-flink-kafka-hb/";
 target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> See Bouygues Telcom at Flink Forward 
2016</a>
+   </div>
+   <div class="col-md-3 col-sm-4 col-xs-6">
+      <img src="{{ site.baseurl }}/img/poweredby/capital-one-logo.png" 
width="175"  alt="Capital One" /><br />
+      Capital One, a Fortune 500 financial services company, uses Flink for 
real-time activity monitoring and alerting. <br><br><a 
href="http://www.slideshare.net/FlinkForward/flink-case-study-capital-one"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> See Capital One's case study slides</a>
+   </div>
+   <div class="col-md-3 col-sm-4 col-xs-6">
+      <img src="{{ site.baseurl }}/img/poweredby/ericsson-logo.png" 
width="175"  alt="Ericsson" /><br />
+      Ericsson used Flink to build a real-time anomaly detector with machine 
learning over large infrastructures. <br><br><a 
href="https://www.oreilly.com/ideas/applying-the-kappa-architecture-in-the-telco-industry";
 target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read a detailed overview on O'Reilly 
Ideas</a>
+   </div>
+
+   <div class="col-md-3 col-sm-4 col-xs-6">
+   <img src="{{ site.baseurl }}/img/poweredby/king-logo.png" width="175" 
alt="King" />
+         <br />
+         King, the creators of Candy Crush Saga, uses Flink to provide data 
science teams a real-time analytics dashboard. <br><br><a 
href="https://techblog.king.com/rbea-scalable-real-time-analytics-king/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read about King's Flink implementation</a>
+   </div>
+
+   <div class="col-md-3 col-sm-4 col-xs-6">
+   <img src="{{ site.baseurl }}/img/poweredby/otto-group-logo.png" width="175" 
alt="King" />
+         <br />
+         Otto Group, the world's second-largest online retailer, uses Flink 
for business intelligence stream processing. <br><br><a 
href="http://flink-forward.org/kb_sessions/flinkspector-taming-the-squirrel/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> See Otto at Flink Forward 2016</a>
+   </div>
+
+   <div class="col-md-3 col-sm-4 col-xs-6">
+   <img src="{{ site.baseurl }}/img/poweredby/researchgate-logo.png" 
width="175" alt="ResearchGate" /><br />
+         ResearchGate, a social network for scientists, uses Flink for network 
analysis and near-duplicate detection. <br><br><a 
href="http://flink-forward.org/kb_sessions/joining-infinity-windowless-stream-processing-with-flink/";
 target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> See ResearchGate at Flink Forward 2016</a>
+   </div>
+
+   <div class="col-md-3 col-sm-4 col-xs-6">
+   <img src="{{ site.baseurl }}/img/poweredby/zalando-logo.jpg" width="175" 
alt="Zalando" /><br />
+         Zalando, one of the largest ecommerce companies in Europe, uses Flink 
for real-time process monitoring and ETL. <br><br><a 
href="https://tech.zalando.de/blog/apache-showdown-flink-vs.-spark/"; 
target='_blank'><small><span class="glyphicon 
glyphicon-new-window"></span></small> Read more on the Zalando Tech Blog</a>
+   </div>
+
+</div>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/privacy-policy.md
----------------------------------------------------------------------
diff --git a/privacy-policy.md b/privacy-policy.md
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/project.md
----------------------------------------------------------------------
diff --git a/project.md b/project.md
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/slides.md
----------------------------------------------------------------------
diff --git a/slides.md b/slides.md
old mode 100644
new mode 100755
index 5421a44..11e76e5
--- a/slides.md
+++ b/slides.md
@@ -20,18 +20,12 @@ On September 12-14, 2016 the second edition of Flink 
Forward took place. All [sl
 
 ### 2016
 
-- Stefan Richter: **A look at Apache Flink 1.2 and beyond** *Apache Flink 
Meetup Berlin, November 2016*: 
[SlideShare](http://www.slideshare.net/StefanRichter10/a-look-at-flink-12)
-- Robert Metzger: **Apache Flink Community Updates November 2016** *Apache 
Flink Meetup Berlin, November 2016*: 
[SlideShare](http://www.slideshare.net/robertmetzger1/apache-flink-community-updates-november-2016-berlin-meetup)
-- Aljoscha Krettek: **Apache Flink for IoT: How Event-Time Processing Enables 
Easy and Accurate Analytics** *Big Data Spain, Madrid November 2016*: 
[SlideShare](http://www.slideshare.net/dataArtisans/aljoscha-krettek-apache-flink-for-iot-how-eventtime-processing-enables-easy-and-accurate-analytics)
-- Stephan Ewen: **Keynote -The maturing data streaming ecosystem and Apache 
Flink’s accelerated growth** *Apache Big Data Europe 2016, Seville November 
2016*: 
[SlideShare](http://www.slideshare.net/dataArtisans/keynote-stephan-ewen-stream-processing-as-a-foundational-paradigm-and-apache-flinks-approach-to-it)
-- Kostas Tzoumas: **Stream Processing with Apache Flink®** *Apache Flink 
London Meetup, November 2016*: 
[SlideShare](http://www.slideshare.net/dataArtisans/kostas-tzoumas-stream-processing-with-apache-flink)
-- Kostas Tzoumas: **Apache Flink®: State of the Union and What's Next** 
*Strata + Hadoop World New York, September 2016*: 
[SlideShare](http://www.slideshare.net/dataArtisans/kostas-tzoumas-apache-flink-state-of-the-union-and-whats-next)
 - Kostas Tzoumas & Stephan Ewen: **Keynote -The maturing data streaming 
ecosystem and Apache Flink’s accelerated growth** *Flink Forward, Berlin 
September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/kostas-tzoumasstpehan-ewen-keynote-the-maturing-data-streaming-ecosystem-and-apache-flinks-accelerated-growth)
 - Robert Metzger: **Connecting Apache Flink to the World - Reviewing the 
streaming connectors** *Flink Forward, Berlin September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/robert-metzger-connecting-apache-flink-to-the-world-reviewing-the-streaming-connectors)
 - Till Rohrmann & Fabian Hueske: **Declarative stream processing with 
StreamSQL and CEP** *Flink Forward, Berlin September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/fabian-huesketill-rohrmann-declarative-stream-processing-with-streamsql-and-cep)
 - Jamie Grier: **Robust Stream Processing with Apache Flink** *Flink Forward, 
Berlin September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/jamie-grier-robust-stream-processing-with-apache-flink)
 - Jamie Grier: **The Stream Processor as a Database- Building Online 
Applications directly on Streams** *Flink Forward, Berlin September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/jamie-grier-the-stream-processor-as-a-database-building-online-applications-directly-on-streams)
-- Till Rohrmann: **Dynamic Scaling - How Apache Flink adapts to changing 
workloads** *Flink Forward, Berlin September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/till-rohrmann-dynamic-scaling-how-apache-flink-adapts-to-changing-workloads)
+- Till Rohramnn: **Dynamic Scaling - How Apache Flink adapts to changing 
workloads** *Flink Forward, Berlin September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/till-rohrmann-dynamic-scaling-how-apache-flink-adapts-to-changing-workloads)
 - Stephan Ewen: **Running Flink Everywhere** *Flink Forward, Berlin September 
2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/stephan-ewen-running-flink-everywhere)
 - Stephan Ewen: **Scaling Apache Flink to very large State** *Flink Forward, 
Berlin September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/stephan-ewen-scaling-to-large-state)
 - Aljoscha Krettek: **The Future of Apache Flink** *Flink Forward, Berlin 
September 2016*: 
[SlideShare](http://www.slideshare.net/FlinkForward/aljoscha-krettek-the-future-of-apache-flink)

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/usecases.md
----------------------------------------------------------------------
diff --git a/usecases.md b/usecases.md
new file mode 100644
index 0000000..77476ff
--- /dev/null
+++ b/usecases.md
@@ -0,0 +1,28 @@
+---
+title: "Flink Use Cases"
+---
+
+To demonstrate how Flink can be applied to unbounded datasets, here’s a 
selection of real-word Flink users and problems they’re solving with Flink.
+
+For more examples, please see the [Powered by Flink]({{ site.baseurl 
}}/poweredby.html) page.
+
++ **Optimization of e-commerce search results in real-time:** Alibaba’s 
search infrastructure team uses Flink to update product detail and inventory 
information in real-time, improving relevance for users.
+
++ **Stream processing-as-a-service for data science teams:** King (the 
creators of Candy Crush Saga) makes real-time analytics available to its data 
scientists via a Flink-powered internal platform, dramatically shortening the 
time to insights from game data.
+
++ **Network / sensor monitoring and error detection:** Bouygues Telecom, one 
of the largest telecom providers in France, uses Flink to monitor its wired and 
wireless networks, enabling a rapid response to outages throughout the country.
+
++ **ETL for business intelligence infrastructure:** Zalando uses Flink to 
transform data for easier loading into its data warehouse, converting complex 
payloads into relatively simple ones and ensuring that analytics end users have 
faster access to data.
+
+
+We can tease out common threads from these use cases. Based on the examples 
above, Flink is well-suited for:
+
+1. **A variety of (sometimes unreliable) data sources:** When data is 
generated by millions of different users or devices, it’s safe to assume that 
some events will arrive out of the order they actually occurred--and in the 
case of more significant upstream failures, some events might come _hours_ 
later than they’re supposed to. Late data needs to be handled so that results 
are accurate.
+
+2. **Applications with state:** When applications become more complex than 
simple filtering or enhancing of single data records, managing state within 
these applications (e.g., counters, windows of past data, state machines, 
embedded databases) becomes hard. Flink provides tools so that state is 
efficient, fault tolerant, and manageable from the outside so you don’t have 
to build these capabilities yourself.
+
+3. **Data that is processed quickly:** There is a focus in these use cases on 
real-time or near-real-time scenarios, where insights from data should be 
available at nearly the same moment that the data is generated. Flink is fully 
capable of meeting these latency requirements when necessary.
+
+4. **Data in large volumes:** These programs would need to be distributed 
across many nodes (in some cases, thousands) to support the required scale. 
Flink can run on large clusters just as seamlessly as it runs on small ones.
+
+And for more user stories, we recommend the sessions from <a 
href="http://flink-forward.org/program/sessions/"; target="_blank">Flink Forward 
2016</a>, the annual Flink user conference.

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/css/bootstrap.css
----------------------------------------------------------------------
diff --git a/visualizer/css/bootstrap.css b/visualizer/css/bootstrap.css
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/css/graph.css
----------------------------------------------------------------------
diff --git a/visualizer/css/graph.css b/visualizer/css/graph.css
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/css/nephelefrontend.css
----------------------------------------------------------------------
diff --git a/visualizer/css/nephelefrontend.css 
b/visualizer/css/nephelefrontend.css
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/css/overlay.css
----------------------------------------------------------------------
diff --git a/visualizer/css/overlay.css b/visualizer/css/overlay.css
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/css/pactgraphs.css
----------------------------------------------------------------------
diff --git a/visualizer/css/pactgraphs.css b/visualizer/css/pactgraphs.css
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/img/GradientBoxes.png
----------------------------------------------------------------------
diff --git a/visualizer/img/GradientBoxes.png b/visualizer/img/GradientBoxes.png
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/img/delete-icon.png
----------------------------------------------------------------------
diff --git a/visualizer/img/delete-icon.png b/visualizer/img/delete-icon.png
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/img/flink-logo.png
----------------------------------------------------------------------
diff --git a/visualizer/img/flink-logo.png b/visualizer/img/flink-logo.png
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/img/gradient.jpg
----------------------------------------------------------------------
diff --git a/visualizer/img/gradient.jpg b/visualizer/img/gradient.jpg
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/img/overlay/close.png
----------------------------------------------------------------------
diff --git a/visualizer/img/overlay/close.png b/visualizer/img/overlay/close.png
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/index.html
----------------------------------------------------------------------
diff --git a/visualizer/index.html b/visualizer/index.html
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/js/bootstrap.min.js
----------------------------------------------------------------------
diff --git a/visualizer/js/bootstrap.min.js b/visualizer/js/bootstrap.min.js
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/js/d3.js
----------------------------------------------------------------------
diff --git a/visualizer/js/d3.js b/visualizer/js/d3.js
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/js/dagre-d3.js
----------------------------------------------------------------------
diff --git a/visualizer/js/dagre-d3.js b/visualizer/js/dagre-d3.js
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/js/graphCreator.js
----------------------------------------------------------------------
diff --git a/visualizer/js/graphCreator.js b/visualizer/js/graphCreator.js
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/js/jquery-2.1.0.js
----------------------------------------------------------------------
diff --git a/visualizer/js/jquery-2.1.0.js b/visualizer/js/jquery-2.1.0.js
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/js/jquery.tools.min.js
----------------------------------------------------------------------
diff --git a/visualizer/js/jquery.tools.min.js 
b/visualizer/js/jquery.tools.min.js
old mode 100644
new mode 100755

http://git-wip-us.apache.org/repos/asf/flink-web/blob/d8883b04/visualizer/js/program.js
----------------------------------------------------------------------
diff --git a/visualizer/js/program.js b/visualizer/js/program.js
old mode 100644
new mode 100755

Reply via email to