<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="Slides2HplusT.xsl"?>
<slideset xmlns:t="urn:schemas-microsoft-com:time">
	<info>
        <title>Synchronization of XHTML Documents:</title>
        <subtitle>The XHTML+SMIL Language</subtitle>
        <event>
			<name>SMIL Europe</name>
			<location>Paris, France</location>
		</event>
        <author>
		  <name>Patrick Schmitz</name>
		  <email>cogit@ludicrum.org</email>
		</author>
        <update>12:20 PM PT Feb 6, 2003</update>
        <summary>Title slide for talk at SMIL Europe 2003</summary>
		<background-img id="bg1">Waterman_destiny-l2.jpg</background-img>
		<background-img id="bg3">clocks2.gif</background-img>
		<background-img id="bg2">bandh3.jpg</background-img>
    </info>

	<style>
	  .demoFrame { 
		 position:absolute; top:10%; left:0%; width:90%; height:70%; z-index:5; 
		 }

	  .demoButtonSet { 
		 position:absolute; bottom:5%; left:0%; z-index:10; 
		 }

	  #simpleBounceFrame { 
		 position:absolute; top:0%; left:-50px; width:840px; height:480px; z-index:5; 
		 }

	  #OrbitFrame { 
		 position:absolute; top:0%; left:0%; width:100%; height:100%; z-index:5; 
		 }

	  #demoSrc{ 
		 position:absolute; top:15%; left:0%; width:90%; z-index:5; 
		 padding:10px;
		 background-color:black; font-size:1.6em; font-weight:bold; color:cyan;
		 }

	  #cycleDemoSrc{ 
		 position:absolute; top:15%; left:0%; width:90%; z-index:5; 
		 padding:10px;
		 background-color:black; font-size:1.6em; font-weight:bold; color:cyan;
		 }

	  #cycleDemo{ 
		 position:absolute; top:10%; left:0%; width:90%; height:70%; z-index:5; 
		 background-color:white; 
		 }

	  #animDemoSrc{ 
		 position:absolute; top:15%; left:-20px; width:90%; z-index:5; 
		 padding:10px;
		 background-color:black; font-size:1em; font-weight:bold; color:cyan;
		 }

	  #animDemo{ 
		 position:absolute; top:10%; left:0%; width:100%; z-index:5; 
		 background-color:white; font-family:Times New Roman; 
		 }

	  #simpleDemoSrc{ 
		 position:absolute; top:0%; left:-20px; width:90%; z-index:5; 
		 padding:10px;
		 background-color:black; font-size:1em; font-weight:bold; color:cyan;
		 }

	  #simpleDemo2{ 
		 position:absolute; top:10%; left:0%; width:100%; height:50%; z-index:5; 
		 padding:10px;
		 background-color:white; font-family:Times New Roman; font-size:1.5em; color:black;
		 }

	  div.cycleDemo{ 
		 position:relative; 
		 }

	  #cycleDemo h2 { 
		 color:black; 
		 }

	  .big { position: absolute; font-family:Comic Sans MS; font-weight:bold; font-size:72; }

	  input.animCtrlButton { 
		 z-index:10; 
		 }
	</style>



  <slide>
        <title>Introduction/Overview</title>
        <pointset>
			<point>Motivation and Background Theory</point>
			<point>Issues with XHTML and CSS</point>
			<point>Some Techniques and Tricks</point>
			<point>How to learn more</point>
		</pointset>
    </slide>

	<slide>	
		<title>Motivation</title>
        <pointset>
			<point>Common authoring semantics</point>
			<point>Leverage SMIL in HTML/CSS content</point>
			<point>Provide Time model for XML documents
				<subpoints>
					<point>Well-defined syntax and semantics</point>
					<point>One clock for the whole document</point>
				</subpoints>
			</point>
			<point>Synchronize HTML to TV, Radio, etc.</point>
		</pointset>
	</slide>

	<slide>	
		<title>Requirements</title>
        <pointset>
			<point>Need common, straight-forward authoring models</point>
			<point>Need flexible approach to syntax
				<subpoints>
					<point>Sometimes want inline syntax</point>
					<point>Sometimes want to model like style</point>
					<point>Sometimes need a separate document</point>
				</subpoints>
			</point>
			<point>Need to be able to mix approaches</point>
			<point>Code generation (authoring tool or XSLT) can twist requirements.</point>
		</pointset>
	</slide>

	<slide>	
		<title>Benefits of XHTML+SMIL integration</title>
        <pointset>
			<point>XHTML+SMIL lets Web developers:
				<subpoints>
					<point>Control DHTML properties along a timeline</point>
					<point>Integrate media as part of their page description</point>
					<point>Synchronize media elements and actions in the page</point>
				</subpoints>
			</point>
			<point>Reduces dependency on scripting as a way of 
					controlling animation of properties</point>
		</pointset>
	</slide>

    <slide>
		<title>Why a language vs. an API?</title>
		<pointset>
			<point>Authors are not programmers</point>
			<point>How tools support authoring
				<subpoints>
					<point>Round trip and exchange support</point>
					<point>Iterative authoring</point>
				</subpoints>
			</point>
			<point>Script alternative usually primitive
				<subpoints>
					<point>Stateful, brittle, expensive</point>
				</subpoints>
			</point>
			<point><content>Language <em>does</em> support a DOM</content></point>
		</pointset>
    </slide>

    <slide>
		<title>Demos</title>
		<pointset>
			<point>Simple Banner Ads</point>
			<point>Product Sales presentation</point>
		</pointset>
    </slide>

	<slide>	
		<title>XHTML+SMIL Timing and Media Markup</title>
        <pointset>
			<point><content>Media elements: <code>video</code>, <code>audio</code>, et al.</content></point>
			<point><content>Timing elements: <code>par</code>, <code>seq</code>, 
								<code>excl</code></content>
				<subpoints>
					<point><content><code>timeContainer</code> attribute</content></point>
				</subpoints>
			</point>
			<point><content>Timing attributes: <code>begin</code>, 
							<code>end</code>, et al.</content>
				<subpoints>
					<point>Applied to most HTML content</point>
					<point>Includes event-based/interactive declaration</point>
				</subpoints>
			</point>
			<point>Animation support
				<subpoints>
					<point>CSS properties, motion, effects, etc.</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	<slide>	
		<title>What does <code>begin</code> mean for <code>div</code> or <code>strong</code>?</title>
        <pointset>
			<point><content><code>timeAction</code> controls semantics of adding timing 
					to HTML elements</content>
				<subpoints>
					<point><content><code>intrinsic</code>: defined for phrasal and presentation 
						elements, reverts to visibility for text, div, etc. 
						Schedules media.</content></point>
					<point><content><code>display</code>, <code>visibility</code> 
									control style</content></point>
					<point><content><code>style</code> controls inline style 
							(CSS/XSL)</content></point>
					<point><content><code>class</code> adds class name to 
								XML class property</content></point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>Issue with XHTML and CSS</title>
        <pointset>
			<point>OM containment model clash
				<subpoints>
					<point>HTML defines content containment, e.g. tables and lists</point>
					<point>Presentation constraints can determine declaration order and proximity</point>
					<point>Time containment requires child-declaration order</point>
					<point>HTML and SMIL containment often orthogonal, sometimes irreconcilable!</point>
				</subpoints>
			</point>
			<point>Solutions/approaches
				<subpoints>
					<point>Long sync-arcs and explicit timing</point>
					<point>Timing proxies</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>More Issues with XHTML and CSS</title>
        <pointset>
			<point>Animating inherited CSS values
				<subpoints>
					<point>Cannot specify/control side-effects.</point>
				</subpoints>
			</point>
			<point>Animating class, style
				<subpoints>
					<point>Class attribute animation very useful, needs notion of additive strings</point>
					<point>Style attribute brings up similar points, but more complex</point>
				</subpoints>
			</point>
			<point><content>Animating <code>head</code> elements</content>
				<subpoints>
					<point><content>Cannot time <code>link</code> elements, but can animate them.</content></point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>Techniques and Tricks</title>
        <pointset>
			<point>Cool things that work well</point>
			<point>Things that look ugly or perform poorly</point>
			<point>Implementation details/bugs you will fight, and 
					how you can work around (some of) them.</point>
			<point><content>These are <em>guidelines</em>, not hard and fast rules.</content></point>
		</pointset>
	</slide>
	
	<slide>	
		<title>TNT #1 Animation: Cool at a cost</title>
        <pointset>
			<point>Use Animation where it is appropriate
				<subpoints>
					<point>Animation, motion, etc. is great for transitions</point>
					<point>Can help to tell a story with dynamism</point>
					<point>With interaction, can increase user involvement</point>
				</subpoints>
			</point>
			<point>Animation incurs a cognitive cost in content
				<subpoints>
					<point>Motion, jitter, flashing distract, reduce comprehension</point>
					<point>Provide an obvious way to stop/mute animations</point>
				</subpoints>
			</point>
		</pointset>
	</slide>

	<slide>	
		<title>TNT #2 The Bad and the Ugly</title>
        <pointset>
			<point>Text scaling (size interpolation)
				<subpoints>
					<point>Printing font model behaves horribly</point>
					<point>Static changes (especially style) can be effective</point>
				</subpoints>
			</point>
			<point>Motion or scaling with layout dependents must be done carefully
				<subpoints>
					<point>Can be a boon with expanding menus</point>
					<point>Can make the page jitter and jerk</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>TNT #3 Using motion animations</title>
        <pointset>
			<point>Motion is a good, inexpensive transition
				<subpoints>
					<point>Consider redraw rectangles</point>
					<point>IE Paint banding will sometimes bite you</point>
				</subpoints>
			</point>
			<point>Authoring considerations
				<subpoints>
					<point>Don't forget CSS positioning!!!</point>
					<point>Faster motion often looks smoother</point>
					<point>Use acceleration and deceleration</point>
					<point>Author motions backwards for fine end-positioning</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>TNT #4 Using color animations</title>
        <pointset>
			<point>Color animations vs. fade transitions
				<subpoints>
					<point>Smoother, cleaner rendering</point>
					<point>Fade text to background, fade in highlights</point>
					<point>Can even work over patterns and images</point>
					<point>Small range produces nice, subtle dynamism</point>
				</subpoints>
			</point>
			<point>Authoring considerations
				<subpoints>
					<point>Use acceleration/deceleration to adjust for perceptual color space</point>
					<point>Would be nice to have expressions here</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>TNT #5 Zooming menus, tables</title>
        <pointset>
			<point>Good interactive model for compact layouts
				<subpoints>
					<point>Works well in XHTML+SMIL</point>
					<point>Must be done with care</point>
				</subpoints>
			</point>
			<point>Authoring considerations
				<subpoints>
					<point>Scale up regions (e.g. div) with simple color background</point>
					<point>Hide text, images while scaling, reveal when done.</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>TNT #6 Use interaction!</title>
        <pointset>
			<point>Makes content more compelling</point>
			<point>Use timing for delays like hover</point>
			<point>Automatic user-adaptation - no need to guess reading speed</point>
			<point>Reduce clutter animation on the page, without reducing coolness</point>
		</pointset>
	</slide>
	
	<slide>	
		<title><content>TNT #7 Make <code>excl</code> work for you</content></title>
        <pointset>
			<point>Ensures only one popup visible at once
				<subpoints>
					<point>For help balloons, context menus, etc.</point>
					<point>Useful for orientation outline.</point>
					<point>Can stack for certain kinds of popups.</point>
				</subpoints>
			</point>
			<point>Use timing proxy when elements to be controlled are scattered
				<subpoints>
					<point><content>Define an <code>excl</code> with dummy timed elements</content></point>
					<point>Define interactive timing on the dummy elements</point>
					<point>Tie real elements to proxies with begin/end sync arcs</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title>TNT #8 Use script/code for extensions</title>
        <pointset>
			<point>Declarative language great basis for extensions
				<subpoints>
					<point>Fulfills 80/20 rule</point>
					<point>Provides OM for timing</point>
				</subpoints>
			</point>
			<point>Example: expression values in animation
				<subpoints>
					<point>Mocked up with script behavior</point>
					<point>Binary behavior provides performance, additional features</point>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>	
		<title><content>TNT #9 <code>iframe</code> elements and timing</content></title>
        <pointset>
			<point>First steps toward compound timed document
				<subpoints>
					<point>Links multiple timed documents into unified timegraph</point>
					<point>Part of ideas for XHTML+SMIL spec</point>
					<point>Ideas also under discussion for SVG</point>
				</subpoints>
			</point>
			<point>Making it work
				<subpoints>
					<point>IE implementation broken</point>
					<point>Bridge with behavior</point>
					<subpoints>
						<point><content>Nested doc has <code>begin="indefinite"</code></content></point>
						<point><content>Proxy begin/end/pause/resume etc. </content></point>
					</subpoints>
				</subpoints>
			</point>
		</pointset>
	</slide>
	
	<slide>
        <title>How to learn more - Specs</title>
        <pointset>
			<point><content>The SMIL 2.0 Recommendation<br />
					<code style="font-size:.8em">
						<a href="http://www.w3.org/TR/smil20/">http://www.w3.org/TR/smil20/</a>
					</code></content></point>
			<point><content>The XHTML+SMIL Language Profile<br />
					<code style="font-size:.8em">
						<a href="http://www.w3.org/TR/XHTMLplusSMIL/">
							http://www.w3.org/TR/XHTMLplusSMIL/
						</a>
					</code></content></point>
			<point><content>Translations, other profiles, etc.<br />
					<code style="font-size:.75em">
						<a href="http://www.w3.org/AudioVideo/#Specificat">
							http://www.w3.org/AudioVideo/#Specificat
						</a>
					</code></content></point>
		</pointset>
    </slide>

	<slide>
        <title>How to learn more - Authoring</title>
        <pointset>
			<point>
				<subpoints>
					<point><content>Introduction to HTML+TIME (MSDN)<br />
							<code style="font-size:.7em">
								<a href="http://msdn.microsoft.com/workshop/author/behaviors/time.asp">
									http://msdn.microsoft.com/workshop/author/<br />
											<span style="padding-left:10ex;">behaviors/time.asp</span>
								</a>
							</code></content></point>
					<point><content>HTML+TIME reference (MSDN)<br />
							<code style="font-size:.7em">
								<a href="http://msdn.microsoft.com/workshop/author/behaviors/reference/time2_entry.asp">
									http://msdn.microsoft.com/workshop/author/<br />
											<span style="padding-left:10ex;">behaviors/reference/time2_entry.asp</span>
								</a>
							</code></content></point>
					<point><content>Introduction to HTML+TIME (WebReference.com)<br />
							<code style="font-size:.7em">
								<a href="http://www.webreference.com/js/column67/">
									http://www.webreference.com/js/column67/
								</a>
							</code></content></point>
					<point><content>SMIL and XHTML+SMIL tutorials (justsmil.com)<br />
							<code style="font-size:.7em">
								<a href="http://www.streamingmediaworld.com/smil/tutor/">
									http://www.streamingmediaworld.com/smil/tutor/
								</a>
							</code></content></point>
					<point><content>Collection of general SMIL help links<br />
							<code style="font-size:.7em">
								<a href="http://www.w3.org/AudioVideo/#Getting">
									http://www.w3.org/AudioVideo/#Getting
								</a>
							</code></content></point>
				</subpoints>
			</point>
		</pointset>
    </slide>

	<slide>
        <title>How to learn more - Papers and Demos</title>
        <pointset>
			<point>
				<subpoints>
					<point><content>The SMIL 2.0 Timing and Synchronization Model<br />
							<code style="font-size:.6em">
								<a href="http://www.research.microsoft.com/research/pubs/view.aspx?msr_tr_id=MSR-TR-2001-01">
									http://www.research.microsoft.com/research/pubs/view.aspx<br />
									<span style="padding-left:10ex;">?msr_tr_id=MSR-TR-2001-01</span>
								</a>
							</code></content></point>
					<point><content>Multimedia Meets Computer Graphics in SMIL2.0: A Time Model for the Web<br />
							<code style="font-size:.7em">
								<a href="http://www2002.org/CDROM/refereed/382/">
									http://www2002.org/CDROM/refereed/382/
								</a>
							</code></content></point>
					<point><content>Demos (require IE 5.5 or later)</content>
						<subpoints>
							<point><content>Basic W3C Demo<br />
								<code style="font-size:.8em">
								<a href="http://www.w3.org/AudioVideo/demos/XHTML-SMIL/Animate.htm">
									http://www.w3.org/AudioVideo/demos/XHTML-SMIL/Animate.htm
								</a>
							</code></content></point>
							<point><content>Ludicrum demo page<br />
								<code style="font-size:.8em">
								<a href="http://www.ludicrum.org/plsWork/demos/">
									http://www.ludicrum.org/plsWork/demos/
								</a>
							</code></content></point>
						</subpoints>
					</point>
				</subpoints>
			</point>
		</pointset>
    </slide>

	<slide>
        <title>Thanks for coming!</title>
    </slide>

</slideset>
