falcon-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From venkat...@apache.org
Subject svn commit: r1483191 [2/5] - in /incubator/falcon: ./ src/ src/main/ src/main/webapp/ src/main/webapp/WEB-INF/ src/site/ src/site/resources/ src/site/resources/images/ src/site/resources/slides/ src/site/resources/slides/core/ src/site/resources/slides...
Date Thu, 16 May 2013 04:30:43 GMT
Added: incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.js
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.js?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.js (added)
+++ incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.js Thu
May 16 04:30:42 2013
@@ -0,0 +1,92 @@
+/*!
+Deck JS - deck.navigation
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds clickable previous and next links to the deck.
+*/
+(function($, deck, undefined) {
+	var $d = $(document),
+	
+	/* Updates link hrefs, and disabled states if last/first slide */
+	updateButtons = function(e, from, to) {
+		var opts = $[deck]('getOptions'),
+		last = $[deck]('getSlides').length - 1,
+		prevSlide = $[deck]('getSlide', to - 1),
+		nextSlide = $[deck]('getSlide', to + 1),
+		hrefBase = window.location.href.replace(/#.*/, ''),
+		prevId = prevSlide ? prevSlide.attr('id') : undefined,
+		nextId = nextSlide ? nextSlide.attr('id') : undefined;
+		
+		$(opts.selectors.previousLink)
+			.toggleClass(opts.classes.navDisabled, !to)
+			.attr('href', hrefBase + '#' + (prevId ? prevId : ''));
+		$(opts.selectors.nextLink)
+			.toggleClass(opts.classes.navDisabled, to === last)
+			.attr('href', hrefBase + '#' + (nextId ? nextId : ''));
+	};
+	
+	/*
+	Extends defaults/options.
+	
+	options.classes.navDisabled
+		This class is added to a navigation link when that action is disabled.
+		It is added to the previous link when on the first slide, and to the
+		next link when on the last slide.
+		
+	options.selectors.nextLink
+		The elements that match this selector will move the deck to the next
+		slide when clicked.
+		
+	options.selectors.previousLink
+		The elements that match this selector will move to deck to the previous
+		slide when clicked.
+	*/
+	$.extend(true, $[deck].defaults, {
+		classes: {
+			navDisabled: 'deck-nav-disabled'
+		},
+		
+		selectors: {
+			nextLink: '.deck-next-link',
+			previousLink: '.deck-prev-link'
+		}
+	});
+
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		slides = $[deck]('getSlides'),
+		$current = $[deck]('getSlide'),
+		ndx;
+		
+		// Setup prev/next link events
+		$(opts.selectors.previousLink)
+		.unbind('click.decknavigation')
+		.bind('click.decknavigation', function(e) {
+			$[deck]('prev');
+			e.preventDefault();
+		});
+		
+		$(opts.selectors.nextLink)
+		.unbind('click.decknavigation')
+		.bind('click.decknavigation', function(e) {
+			$[deck]('next');
+			e.preventDefault();
+		});
+		
+		// Find where we started in the deck and set initial states
+		$.each(slides, function(i, $slide) {
+			if ($slide === $current) {
+				ndx = i;
+				return false;
+			}
+		});
+		updateButtons(null, ndx, ndx);
+	})
+	.bind('deck.change', updateButtons);
+})(jQuery, 'deck');
+

Propchange: incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.js
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.scss
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.scss?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.scss
(added)
+++ incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.scss
Thu May 16 04:30:42 2013
@@ -0,0 +1,56 @@
+@mixin border-radius($r) {
+	-webkit-border-radius:$r;
+	-moz-border-radius:$r;
+	border-radius:$r;
+}
+
+.deck-container {
+	.deck-prev-link, .deck-next-link {
+		display:none;
+		position:absolute;
+		z-index:3;
+		top:50%;
+		width:32px;
+		height:32px;
+		margin-top:-16px;
+		font-size:20px;
+		font-weight:bold;
+		line-height:32px;
+		vertical-align:middle;
+		text-align:center;
+		text-decoration:none;
+		color:#fff;
+		background:#888;
+
+		.borderradius & {
+			@include border-radius(16px);
+		}
+
+		&:hover, &:focus, &:active, &:visited {
+			color:#fff;
+		}
+	}
+
+	.deck-prev-link {
+		left:8px;
+	}
+
+	.deck-next-link {
+		right:8px;
+	}
+	
+	&:hover .deck-prev-link, &:hover .deck-next-link {
+		display:block;
+
+		&.deck-nav-disabled, .touch & {
+			display:none;
+		}
+	}
+}
+
+
+@media print {
+	.deck-prev-link, .deck-next-link {
+		display:none !important;
+	}
+}

Propchange: incubator/falcon/src/site/resources/slides/extensions/navigation/deck.navigation.scss
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.css
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.css?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.css (added)
+++ incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.css Thu May 16
04:30:42 2013
@@ -0,0 +1,28 @@
+/* Remove this line if you are embedding deck.js in a page and
+using the scale extension. */
+.csstransforms {
+  overflow: hidden;
+}
+
+.csstransforms .deck-container.deck-scale:not(.deck-menu) > .slide {
+  -webkit-box-sizing: padding-box;
+  -moz-box-sizing: padding-box;
+  box-sizing: padding-box;
+  width: 100%;
+  padding-bottom: 20px;
+}
+.csstransforms .deck-container.deck-scale:not(.deck-menu) > .slide > .deck-slide-scaler
{
+  -webkit-transform-origin: 50% 0;
+  -moz-transform-origin: 50% 0;
+  -o-transform-origin: 50% 0;
+  -ms-transform-origin: 50% 0;
+  transform-origin: 50% 0;
+}
+
+.csstransforms .deck-container.deck-menu .deck-slide-scaler {
+  -webkit-transform: none !important;
+  -moz-transform: none !important;
+  -o-transform: none !important;
+  -ms-transform: none !important;
+  transform: none !important;
+}

Propchange: incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.css
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.js
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.js?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.js (added)
+++ incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.js Thu May 16 04:30:42
2013
@@ -0,0 +1,170 @@
+/*!
+Deck JS - deck.scale
+Copyright (c) 2011-2012 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds automatic scaling to the deck.  Slides are scaled down
+using CSS transforms to fit within the deck container. If the container is
+big enough to hold the slides without scaling, no scaling occurs. The user
+can disable and enable scaling with a keyboard shortcut.
+
+Note: CSS transforms may make Flash videos render incorrectly.  Presenters
+that need to use video may want to disable scaling to play them.  HTML5 video
+works fine.
+*/
+(function($, deck, window, undefined) {
+	var $d = $(document),
+	$w = $(window),
+	baseHeight, // Value to scale against
+	timer, // Timeout id for debouncing
+	rootSlides,
+
+	/*
+	Internal function to do all the dirty work of scaling the slides.
+	*/
+	scaleDeck = function() {
+		var opts = $[deck]('getOptions'),
+		obh = opts.baseHeight,
+		$container = $[deck]('getContainer'),
+		baseHeight = obh ? obh : $container.height();
+
+		// Scale each slide down if necessary (but don't scale up)
+		$.each(rootSlides, function(i, $slide) {
+			var slideHeight = $slide.innerHeight(),
+			$scaler = $slide.find('.' + opts.classes.scaleSlideWrapper),
+			scale = $container.hasClass(opts.classes.scale) ?
+				baseHeight / slideHeight :
+				1;
+			
+			$.each('Webkit Moz O ms Khtml'.split(' '), function(i, prefix) {
+				if (scale === 1) {
+					$scaler.css(prefix + 'Transform', '');
+				}
+				else {
+					$scaler.css(prefix + 'Transform', 'scale(' + scale + ')');
+				}
+			});
+		});
+	}
+
+	/*
+	Extends defaults/options.
+
+	options.classes.scale
+		This class is added to the deck container when scaling is enabled.
+		It is enabled by default when the module is included.
+	
+	options.classes.scaleSlideWrapper
+		Scaling is done using a wrapper around the contents of each slide. This
+		class is applied to that wrapper.
+
+	options.keys.scale
+		The numeric keycode used to toggle enabling and disabling scaling.
+
+	options.baseHeight
+		When baseHeight is falsy, as it is by default, the deck is scaled in
+		proportion to the height of the deck container. You may instead specify
+		a height as a number of px, and slides will be scaled against this
+		height regardless of the container size.
+
+	options.scaleDebounce
+		Scaling on the browser resize event is debounced. This number is the
+		threshold in milliseconds. You can learn more about debouncing here:
+		http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
+
+	*/
+	$.extend(true, $[deck].defaults, {
+		classes: {
+			scale: 'deck-scale',
+			scaleSlideWrapper: 'deck-slide-scaler'
+		},
+
+		keys: {
+			scale: 83 // s
+		},
+
+		baseHeight: null,
+		scaleDebounce: 200
+	});
+
+	/*
+	jQuery.deck('disableScale')
+
+	Disables scaling and removes the scale class from the deck container.
+	*/
+	$[deck]('extend', 'disableScale', function() {
+		$[deck]('getContainer').removeClass($[deck]('getOptions').classes.scale);
+		scaleDeck();
+	});
+
+	/*
+	jQuery.deck('enableScale')
+
+	Enables scaling and adds the scale class to the deck container.
+	*/
+	$[deck]('extend', 'enableScale', function() {
+		$[deck]('getContainer').addClass($[deck]('getOptions').classes.scale);
+		scaleDeck();
+	});
+
+	/*
+	jQuery.deck('toggleScale')
+
+	Toggles between enabling and disabling scaling.
+	*/
+	$[deck]('extend', 'toggleScale', function() {
+		var $c = $[deck]('getContainer');
+		$[deck]($c.hasClass($[deck]('getOptions').classes.scale) ?
+			'disableScale' : 'enableScale');
+	});
+
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		slideTest = $.map([
+			opts.classes.before,
+			opts.classes.previous,
+			opts.classes.current,
+			opts.classes.next,
+			opts.classes.after
+		], function(el, i) {
+			return '.' + el;
+		}).join(', ');
+		
+		// Build top level slides array
+		rootSlides = [];
+		$.each($[deck]('getSlides'), function(i, $el) {
+			if (!$el.parentsUntil(opts.selectors.container, slideTest).length) {
+				rootSlides.push($el);
+			}
+		});
+		
+		// Use a wrapper on each slide to handle content scaling
+		$.each(rootSlides, function(i, $slide) {
+			$slide.children().wrapAll('<div class="' + opts.classes.scaleSlideWrapper + '"/>');
+		});
+
+		// Debounce the resize scaling
+		$w.unbind('resize.deckscale').bind('resize.deckscale', function() {
+			window.clearTimeout(timer);
+			timer = window.setTimeout(scaleDeck, opts.scaleDebounce);
+		})
+		// Scale once on load, in case images or something change layout
+		.unbind('load.deckscale').bind('load.deckscale', scaleDeck);
+
+		// Bind key events
+		$d.unbind('keydown.deckscale').bind('keydown.deckscale', function(e) {
+			if (e.which === opts.keys.scale || $.inArray(e.which, opts.keys.scale) > -1) {
+				$[deck]('toggleScale');
+				e.preventDefault();
+			}
+		});
+
+		// Enable scale on init
+		$[deck]('enableScale');
+	});
+})(jQuery, 'deck', this);
+

Propchange: incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.js
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.scss
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.scss?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.scss (added)
+++ incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.scss Thu May 16
04:30:42 2013
@@ -0,0 +1,31 @@
+/* Remove this line if you are embedding deck.js in a page and
+using the scale extension. */
+.csstransforms {
+	overflow:hidden;
+}
+
+.csstransforms .deck-container.deck-scale:not(.deck-menu) {
+	> .slide {
+		-webkit-box-sizing: padding-box;
+		-moz-box-sizing: padding-box;
+		box-sizing: padding-box;
+		width:100%;
+		padding-bottom:20px;
+		
+		> .deck-slide-scaler {
+			-webkit-transform-origin: 50% 0;
+			-moz-transform-origin: 50% 0;
+			-o-transform-origin: 50% 0;
+			-ms-transform-origin: 50% 0;
+			transform-origin: 50% 0;
+		}
+	}
+}
+
+.csstransforms .deck-container.deck-menu .deck-slide-scaler {
+	-webkit-transform:none !important;
+	-moz-transform:none !important;
+	-o-transform:none !important;
+	-ms-transform:none !important;
+	transform:none !important;
+}
\ No newline at end of file

Propchange: incubator/falcon/src/site/resources/slides/extensions/scale/deck.scale.scss
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.css
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/status/deck.status.css?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/status/deck.status.css (added)
+++ incubator/falcon/src/site/resources/slides/extensions/status/deck.status.css Thu May 16
04:30:42 2013
@@ -0,0 +1,18 @@
+.deck-container .deck-status {
+  position: absolute;
+  bottom: 10px;
+  right: 5px;
+  color: #888;
+  z-index: 3;
+  margin: 0;
+}
+
+body.deck-container .deck-status {
+  position: fixed;
+}
+
+@media print {
+  .deck-status {
+    display: none;
+  }
+}

Propchange: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.css
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.html
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/status/deck.status.html?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/status/deck.status.html (added)
+++ incubator/falcon/src/site/resources/slides/extensions/status/deck.status.html Thu May
16 04:30:42 2013
@@ -0,0 +1,6 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<p class="deck-status">
+	<span class="deck-status-current"></span>
+	/
+	<span class="deck-status-total"></span>
+</p>
\ No newline at end of file

Propchange: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.html
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.js
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/status/deck.status.js?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/status/deck.status.js (added)
+++ incubator/falcon/src/site/resources/slides/extensions/status/deck.status.js Thu May 16
04:30:42 2013
@@ -0,0 +1,95 @@
+/*!
+Deck JS - deck.status
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds a (current)/(total) style status indicator to the deck.
+*/
+(function($, deck, undefined) {
+	var $d = $(document),
+	
+	updateCurrent = function(e, from, to) {
+		var opts = $[deck]('getOptions');
+		
+		$(opts.selectors.statusCurrent).text(opts.countNested ?
+			to + 1 :
+			$[deck]('getSlide', to).data('rootSlide')
+		);
+	};
+	
+	/*
+	Extends defaults/options.
+	
+	options.selectors.statusCurrent
+		The element matching this selector displays the current slide number.
+		
+	options.selectors.statusTotal
+		The element matching this selector displays the total number of slides.
+		
+	options.countNested
+		If false, only top level slides will be counted in the current and
+		total numbers.
+	*/
+	$.extend(true, $[deck].defaults, {
+		selectors: {
+			statusCurrent: '.deck-status-current',
+			statusTotal: '.deck-status-total'
+		},
+		
+		countNested: true
+	});
+	
+	$d.bind('deck.init', function() {
+		var opts = $[deck]('getOptions'),
+		slides = $[deck]('getSlides'),
+		$current = $[deck]('getSlide'),
+		ndx;
+		
+		// Set total slides once
+		if (opts.countNested) {
+			$(opts.selectors.statusTotal).text(slides.length);
+		}
+		else {
+			/* Determine root slides by checking each slide's ancestor tree for
+			any of the slide classes. */
+			var rootIndex = 1,
+			slideTest = $.map([
+				opts.classes.before,
+				opts.classes.previous,
+				opts.classes.current,
+				opts.classes.next,
+				opts.classes.after
+			], function(el, i) {
+				return '.' + el;
+			}).join(', ');
+			
+			/* Store the 'real' root slide number for use during slide changes. */
+			$.each(slides, function(i, $el) {
+				var $parentSlides = $el.parentsUntil(opts.selectors.container, slideTest);
+
+				$el.data('rootSlide', $parentSlides.length ?
+					$parentSlides.last().data('rootSlide') :
+					rootIndex++
+				);
+			});
+			
+			$(opts.selectors.statusTotal).text(rootIndex - 1);
+		}
+		
+		// Find where we started in the deck and set initial state
+		$.each(slides, function(i, $el) {
+			if ($el === $current) {
+				ndx = i;
+				return false;
+			}
+		});
+		updateCurrent(null, ndx, ndx);
+	})
+	/* Update current slide number with each change event */
+	.bind('deck.change', updateCurrent);
+})(jQuery, 'deck');
+

Propchange: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.js
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.scss
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/extensions/status/deck.status.scss?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/extensions/status/deck.status.scss (added)
+++ incubator/falcon/src/site/resources/slides/extensions/status/deck.status.scss Thu May
16 04:30:42 2013
@@ -0,0 +1,22 @@
+.deck-container {
+	.deck-status {
+		position:absolute;
+		bottom:10px;
+		right:5px;
+		color:#888;
+		z-index:3;
+		margin:0;
+	}
+}
+
+body.deck-container {
+	.deck-status {
+		position:fixed;
+	}
+}
+
+@media print {
+	.deck-status {
+		display:none;
+	}
+}

Propchange: incubator/falcon/src/site/resources/slides/extensions/status/deck.status.scss
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/falcon-overview.html
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/falcon-overview.html?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/falcon-overview.html (added)
+++ incubator/falcon/src/site/resources/slides/falcon-overview.html Thu May 16 04:30:42 2013
@@ -0,0 +1,357 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=1024, user-scalable=no">
+
+    <title>Apache Falcon - Data Management on Hadoop</title>
+
+    <!-- Required stylesheet -->
+    <link rel="stylesheet" href="core/deck.core.css">
+
+    <!-- Extension CSS files go here. Remove or add as needed. -->
+    <link rel="stylesheet" href="extensions/goto/deck.goto.css">
+    <link rel="stylesheet" href="extensions/menu/deck.menu.css">
+    <link rel="stylesheet" href="extensions/navigation/deck.navigation.css">
+    <link rel="stylesheet" href="extensions/status/deck.status.css">
+    <link rel="stylesheet" href="extensions/hash/deck.hash.css">
+    <link rel="stylesheet" href="extensions/scale/deck.scale.css">
+
+    <!-- Style theme. More available in /themes/style/ or create your own. -->
+    <link rel="stylesheet" href="themes/style/web-2.0.css">
+
+    <!-- Transition theme. More available in /themes/transition/ or create your own. -->
+    <link rel="stylesheet" href="themes/transition/horizontal-slide.css">
+
+    <!-- Required Modernizr file -->
+    <script src="modernizr.custom.js"></script>
+</head>
+<body class="deck-container">
+
+<!-- Begin slides. Just make elements with a class of slide. -->
+
+<section class="slide" id="intro">
+    <h2>Apache Falcon</h2>
+    <h3>Simplified Data Management for Hadoop!</h3>
+</section>
+
+<section class="slide" id="what">
+    <h2>What is Data Management?</h2>
+    <ul>
+        <li class="slide">
+            <h3>Data Motion</h3>
+            <p>Import, Export</p>
+        </li>
+        <li class="slide">
+            <h3>Policy-based Lifecycle Management</h3>
+            <p>Retention, Replication/DR/BCP, Anonymization of PII data, Archival,
etc.</p>
+        </li>
+        <li class="slide">
+            <h3>Process orchestration and scheduling</h3>
+            <p>Late data handling, reprocessing, dependency checking, etc.</p>
+            <p>Multi-cluster management to support Local/Global Aggregations, Rollups,
etc.</p>
+        </li>
+        <li class="slide">
+            <h3>Data Discovery</h3>
+            <p>Lineage, Audit, Classification</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="critical">
+    <h2>Why is Data Management Critical?</h2>
+    <ul>
+        <li class="slide">
+            <h3>Productivity Gains</h3>
+            <p>Large datasets are incentives for users to come to Hadoop</p>
+            <p>Data Loading optimized for space, time and bandwidth</p>
+        </li>
+        <li class="slide">
+            <h3>Regulatory compliance</h3>
+            <p>We cannot rely on users to adhere to data governance policies.</p>
+            <p>SEC, SOX, A29 of PII data, etc.</p>
+        </li>
+        <li class="slide">
+            <h3>Process orchestration and scheduling</h3>
+            <p>Data management is a common concern to be offered as a service</p>
+            <p>BCP, Security, Data  Pipeline processing, etc.</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="challenges">
+    <h2>Challenging Data Management Landscape</h2>
+    <ul>
+        <li class="slide">
+            <h3>Data Management is hard and messy</h3>
+            <p>New opportunities – from Traditional ETL</p>
+            <p>Steady growth in data volumes – 3 V</p>
+            <p>SLA requirements</p>
+        </li>
+        <li class="slide">
+            <h3>Separation of Concerns</h3>
+            <p>DIY - Silo problem</p>
+            <p>Best practices/patterns</p>
+            <p>Security, BCP, Resource management</p>
+        </li>
+        <li class="slide">
+            <h3>Visibility into E2E</h3>
+            <p>Lineage, Audit, etc.</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="solution">
+    <h2>Falcon - The Solution!</h2>
+    <ul>
+        <li class="slide">
+            <h3>Introduces a higher layer of abstraction – Data Set</h3>
+            <p>Decouples a data location and its properties from workflows</p>
+            <p>Understanding the life-time of a feed will allow for implicit validation
of the processing rules</p>
+        </li>
+        <li class="slide">
+            <h3>Provides the key services for data processing apps</h3>
+            <p>Common data services are simple directives, No need to define them verbosely
in each job</p>
+            <p>Allows process owners to keep their processing specific to their application
logic</p>
+            <p>Sits in the execution path, intercepts to handle OOB data / retries
etc.</p>
+        </li>
+        <li class="slide">
+            <h3>Promotes Polyglot Programming</h3>
+            <p>Does not do any heavy lifting but delegates to tools with in the Hadoop
ecosystem</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="how">
+    <h2>How does Falcon work?</h2>
+    <ul>
+        <li class="slide">
+            <h3>System accepts entities using DSL</h3>
+            <p>Infrastructure, Data Sets, Pipeline/Processing logic</p>
+            <p>Simply a dependency graph between infrastructure, data and processing
logic</p>
+        </li>
+        <li class="slide">
+            <h3>System orchestrates workflows</h3>
+            <p>Transforms the input into automated and scheduled workflows</p>
+            <p>Handles retry logic and late data processing. Records audit, lineage
and metrics</p>
+            <p>Seamless integration with metastore/catalog</p>
+        </li>
+        <li class="slide">
+            <h3>Integrated Seamless experience to users</h3>
+            <p>Data Set management (Replication, Retention, etc.) offered as a service</p>
+            <p>Users can cherry pick, No coupling between primitives</p>
+            <p>Automates processing and tracks the end to end progress.
+                Provides hooks for metering and monitoring, notifications
+            </p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="hla">
+    <h2>High Level Architecture</h2>
+    <img src="../images/Architecture.png" alt="High Level Architecture" />
+</section>
+
+<section class="slide" id="case-study-repl">
+    <h2>Case Study: Replication of data sets</h2>
+    <ul>
+        <li class="slide">
+            <h3>User creates a Primary cluster definition</h3>
+            <pre><code>&lt;cluster colo=&quot;colo-1&quot; description=&quot;Primary
cluster&quot;
+    name=&quot;primary-cluster&quot; xmlns=&quot;uri:ivory:cluster:0.1&quot;&gt;
+    &lt;interfaces&gt;
+        &lt;interface type="readonly" endpoint="hftp://localhost:50070” version="1.2"/&gt;
+        &lt;interface type="write" endpoint="hdfs://localhost:54310” version="1.2"/&gt;
+        &lt;interface type="execute" endpoint="localhost:54311" version="1.2"/&gt;
+        &lt;interface type="workflow" endpoint="http://localhost:11000/oozie/" version="3.3.0"/&gt;
+        &lt;interface type="messaging" endpoint="tcp://localhost:61616?daemon=true" version="5.1.6"/&gt;
+    &lt;/interfaces&gt;
+    &lt;locations&gt;
+        &lt;location name="staging" path="/projects/ivory/staging"/&gt;
+        &lt;location name="temp" path="/tmp"/&gt;
+        &lt;location name="working" path="/projects/ivory/working"/&gt;
+    &lt;/locations&gt;
+    &lt;properties/&gt;
+&lt;/cluster&gt;</code></pre>
+        </li>
+        <li class="slide">
+            <h3>User submits the cluster definition to Falcon</h3>
+            <pre><code>bin/falcon entity -url http://localhost:15000 -submit
-type cluster -file primary-cluster.xml</code></pre>
+        </li>
+        <li class="slide">
+            <h3>Repeat the above for a BCP cluster</h3>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="case-study-repl-2">
+    <h2>Case Study: Replication of data sets...Continued</h2>
+    <ul>
+        <li class="slide">
+            <h3>User creates a Data Set</h3>
+            <pre><code> &lt;feed description="TestHourlySummary" name="TestHourlySummary”
xmlns="uri:ivory:feed:0.1"&gt;
+    &lt;partitions/&gt;
+    &lt;groups&gt;bi&lt;/groups&gt;
+    &lt;frequency&gt;hours(1)&lt;/frequency&gt;
+    &lt;late-arrival cut-off="hours(4)"/&gt;
+    &lt;clusters&gt;
+        &lt;cluster name=”cluster-primary" type="source"&gt;
+            &lt;validity start="2012-01-01T00:00Z" end="2099-12-31T00:00Z"/&gt;
+            &lt;retention limit="days(2)" action="delete"/&gt;
+        &lt;/cluster&gt;
+        &lt;cluster name=”cluster-BCP" type="target"&gt;
+            &lt;validity start="2012-01-01T00:00Z" end="2099-12-31T00:00Z"/&gt;
+            &lt;retention limit="days(2)" action="delete"/&gt;
+        &lt;/cluster&gt;
+    &lt;/clusters&gt;
+    &lt;locations&gt;
+        &lt;location type="data” path="/projects/test/TestHourlySummary/${YEAR}-${MONTH}-${DAY}-${HOUR}"/&gt;
+        &lt;location type="stats" path="/none"/&gt;
+        &lt;location type="meta" path="/none"/&gt;
+    &lt;/locations&gt;
+    &lt;ACL owner=”venkatesh" group="users" permission="0755"/&gt;
+    &lt;schema location="/none" provider="none"/&gt;
+&lt;/feed&gt;</code></pre>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="case-study-repl-3">
+    <h2>Case Study: Replication of data sets...Continued</h2>
+    <ul>
+        <li class="slide">
+            <h3>User submits the data set definition to Falcont</h3>
+            <pre><code>bin/falcon entity -url http://localhost:15000 -submit
-type feed -file replicating-feed.xml</code></pre>
+        </li>
+        <li class="slide">
+            <h3>User then schedules it with Falcon</h3>
+            <pre><code>bin/falcon entity -type feed -url http://localhost:15000
-name replicating-feed -schedule</code></pre>
+        </li>
+        <li class="slide">
+            <h3>Voila! You are done. Magic happens!</h3>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="case-study-repl-4">
+    <h2>Case Study: Replication of data sets...Continued</h2>
+    <ul>
+        <li class="slide">
+            <h3>Maintains the dependencies and relationships between entities</h3>
+        </li>
+        <li class="slide">
+            <h3>Instruments workflows for dependencies, retry logic, Table/Partition
registration, notifications, etc.</h3>
+        </li>
+        <li class="slide">
+            <h3>Falcon orchestrates these into scheduled recurring workflows</h3>
+        </li>
+        <li class="slide">
+            <h3>Replication workflow</h3>
+            <p>A recurring workflow for copying data from source to target(s)</p>
+        </li>
+        <li class="slide">
+            <h3>Retention workflow for each cluster based on the defined policy</h3>
+            <p>A recurring workflow for purging expired data on Primary cluster</p>
+            <p>A recurring workflow for purging expired data on BCP cluster</p>
+        </li>
+    </ul>
+</section>
+
+<!--
+<section class="slide" id="case-study-process">
+    <h2>Case Study: Geographically Distributed Data Processing</h2>
+    <ul>
+        <li>
+            TBD
+        </li>
+    </ul>
+</section>
+-->
+
+<section class="slide" id="highlights">
+    <h2>Falcon Highlights</h2>
+    <ul>
+        <li class="slide">
+            <h3>Falcon provides the key services for data processing apps</h3>
+            <p>Provides a single interface to orchestrate data lifecycle across clusters.</p>
+            <p>Provides the key services data processing applications need so
+                Sophisticated DLM can easily be added to Hadoop applications.</p>
+            <p>Complex data processing logic handled by Falcon instead of hard-coded
in apps.</p>
+            <p>Faster development and higher quality for ETL, reporting and other data
processing apps on Hadoop.</p>
+        </li>
+        <li class="slide">
+            <h3>Introduces new abstractions : “Data Set”, “Process”,
etc.</h3>
+            <p>Promotes decoupling of data set location from Ooze definition.</p>
+            <p>Declarative processing with simple directives enabling rapid prototyping</p>
+        </li>
+        <li class="slide">
+            <h3>Current Status</h3>
+            <p>V0.2 is in deployment for over 12 months at InMobi.</p>
+            <p>A release will be coming soon at Apache.</p>
+        </li>
+    </ul>
+</section>
+
+
+<section class="slide" id="thank-you">
+    <h2>Thank you!</h2>
+    <ul>
+        <li>
+            <h3>For more information on Falcon</h3>
+            <p>Visit <a href="http://falcon.incubator.apache.org">Apache Falcon</a></p>
+        </li>
+    </ul>
+</section>
+
+<!-- End slides. -->
+
+
+<!-- Begin extension snippets. Add or remove as needed. -->
+
+<!-- deck.navigation snippet -->
+<a href="#" class="deck-prev-link" title="Previous">&#8592;</a>
+<a href="#" class="deck-next-link" title="Next">&#8594;</a>
+
+<!-- deck.status snippet -->
+<p class="deck-status">
+    <span class="deck-status-current"></span>
+    /
+    <span class="deck-status-total"></span>
+</p>
+
+<!-- deck.goto snippet -->
+<form action="." method="get" class="goto-form">
+    <label for="goto-slide">Go to slide:</label>
+    <input type="text" name="slidenum" id="goto-slide" list="goto-datalist">
+    <datalist id="goto-datalist"></datalist>
+    <input type="submit" value="Go">
+</form>
+
+<!-- deck.hash snippet -->
+<a href="." title="Permalink to this slide" class="deck-permalink">#</a>
+
+<!-- End extension snippets. -->
+
+
+<!-- Required JS files. -->
+<script src="jquery-1.7.2.min.js"></script>
+<script src="core/deck.core.js"></script>
+
+<!-- Extension JS files. Add or remove as needed. -->
+<script src="core/deck.core.js"></script>
+<script src="extensions/hash/deck.hash.js"></script>
+<script src="extensions/menu/deck.menu.js"></script>
+<script src="extensions/goto/deck.goto.js"></script>
+<script src="extensions/status/deck.status.js"></script>
+<script src="extensions/navigation/deck.navigation.js"></script>
+<script src="extensions/scale/deck.scale.js"></script>
+
+<!-- Initialize the deck. You can put this in an external file if desired. -->
+<script>
+    $(function() {
+        $.deck('.slide');
+    });
+</script>
+</body>
+</html>

Propchange: incubator/falcon/src/site/resources/slides/falcon-overview.html
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/falcon/src/site/resources/slides/falcon-user-guide.html
URL: http://svn.apache.org/viewvc/incubator/falcon/src/site/resources/slides/falcon-user-guide.html?rev=1483191&view=auto
==============================================================================
--- incubator/falcon/src/site/resources/slides/falcon-user-guide.html (added)
+++ incubator/falcon/src/site/resources/slides/falcon-user-guide.html Thu May 16 04:30:42
2013
@@ -0,0 +1,148 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=1024, user-scalable=no">
+
+    <title>Apache Falcon - Data Management on Hadoop</title>
+
+    <!-- Required stylesheet -->
+    <link rel="stylesheet" href="core/deck.core.css">
+
+    <!-- Extension CSS files go here. Remove or add as needed. -->
+    <link rel="stylesheet" href="extensions/goto/deck.goto.css">
+    <link rel="stylesheet" href="extensions/menu/deck.menu.css">
+    <link rel="stylesheet" href="extensions/navigation/deck.navigation.css">
+    <link rel="stylesheet" href="extensions/status/deck.status.css">
+    <link rel="stylesheet" href="extensions/hash/deck.hash.css">
+    <link rel="stylesheet" href="extensions/scale/deck.scale.css">
+
+    <!-- Style theme. More available in /themes/style/ or create your own. -->
+    <link rel="stylesheet" href="themes/style/web-2.0.css">
+
+    <!-- Transition theme. More available in /themes/transition/ or create your own. -->
+    <link rel="stylesheet" href="themes/transition/horizontal-slide.css">
+
+    <!-- Required Modernizr file -->
+    <script src="modernizr.custom.js"></script>
+</head>
+<body class="deck-container">
+
+<!-- Begin slides. Just make elements with a class of slide. -->
+
+<section class="slide" id="intro">
+    <h1>Apache Falcon - User Guide</h1>
+</section>
+
+<section class="slide" id="build">
+    <h2>Building Apache Falcon</h2>
+    <ol>
+        <li>
+            <p>Clone the project</p>
+            <pre><code>git clone https://git-wip-us.apache.org/repos/asf/incubator-falcon.git</code></pre>
+        </li>
+        <li>
+            <p>Compile the project</p>
+            <pre><code>mvn -DskipTests clean package</code></pre>
+        </li>
+        <li>
+            <p>Optionally run the tests</p>
+            <pre><code>mvn test</code></pre>
+        </li>
+    </ol>
+</section>
+
+<section class="slide" id="deploy">
+    <h2>Deploying Apache Falcon</h2>
+    <ul>
+        <li>
+            <p>Deploy Falcon webapp into Tomcat container</p>
+        </li>
+        <li>
+            <p>Start Apache ActiveMQ</p>
+        </li>
+        <li>
+            <p>Start Apache Tomcat</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="validate">
+    <h2>Validating Apache Falcon</h2>
+    <ul>
+        <li>
+            <p>Falcon is running at: http://localhost:15000/falcon</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="demo-lifecycle">
+    <h2>Testing Lifecycle Management</h2>
+    <ul>
+        <li>
+            <p>TBD: Schedule a sample Feed</p>
+        </li>
+    </ul>
+</section>
+
+<section class="slide" id="demo-process">
+    <h2>Testing Processing</h2>
+    <ul>
+        <li>
+            <p>TBD: Schedule a sample process</p>
+        </li>
+    </ul>
+</section>
+
+<!-- End slides. -->
+
+
+<!-- Begin extension snippets. Add or remove as needed. -->
+
+<!-- deck.navigation snippet -->
+<a href="#" class="deck-prev-link" title="Previous">&#8592;</a>
+<a href="#" class="deck-next-link" title="Next">&#8594;</a>
+
+<!-- deck.status snippet -->
+<p class="deck-status">
+    <span class="deck-status-current"></span>
+    /
+    <span class="deck-status-total"></span>
+</p>
+
+<!-- deck.goto snippet -->
+<form action="." method="get" class="goto-form">
+    <label for="goto-slide">Go to slide:</label>
+    <input type="text" name="slidenum" id="goto-slide" list="goto-datalist">
+    <datalist id="goto-datalist"></datalist>
+    <input type="submit" value="Go">
+</form>
+
+<!-- deck.hash snippet -->
+<a href="." title="Permalink to this slide" class="deck-permalink">#</a>
+
+<!-- End extension snippets. -->
+
+
+<!-- Required JS files. -->
+<script src="jquery-1.7.2.min.js"></script>
+<script src="core/deck.core.js"></script>
+
+<!-- Extension JS files. Add or remove as needed. -->
+<script src="core/deck.core.js"></script>
+<script src="extensions/hash/deck.hash.js"></script>
+<script src="extensions/menu/deck.menu.js"></script>
+<script src="extensions/goto/deck.goto.js"></script>
+<script src="extensions/status/deck.status.js"></script>
+<script src="extensions/navigation/deck.navigation.js"></script>
+<script src="extensions/scale/deck.scale.js"></script>
+
+<!-- Initialize the deck. You can put this in an external file if desired. -->
+<script>
+    $(function() {
+        $.deck('.slide');
+    });
+</script>
+</body>
+</html>

Propchange: incubator/falcon/src/site/resources/slides/falcon-user-guide.html
------------------------------------------------------------------------------
    svn:executable = *



Mime
View raw message