flink-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From u..@apache.org
Subject [01/84] [abbrv] flink-web git commit: Updated Flink site
Date Wed, 18 Jan 2017 14:00:01 GMT
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


Mime
View raw message