<!--
Google IO 2012 HTML5 Slide Template

Authors: Eric Bidelman <ebidel@gmail.com>
         Luke Mahé <lukem@google.com>

URL: https://code.google.com/p/io-2012-slides
-->
<!DOCTYPE html>
<html>
<head>
  <title>It's 2012 and your documentation sucks</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="chrome=1">
  <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">-->
  <!--<meta name="viewport" content="width=device-width, initial-scale=1.0">-->
  <!--This one seems to work all the time, but really small on ipad-->
  <!--<meta name="viewport" content="initial-scale=0.4">-->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <link rel="stylesheet" media="all" href="theme/css/default.css">
   <link rel="stylesheet" media="all" href="theme/css/custo.css">
  <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="theme/css/phone.css">
  <base target="_blank"> <!-- This amazingness opens all links in a new tab. -->
  <script data-main="js/slides" src="js/require-1.0.8.min.js"></script>
</head>
<body style="opacity: 0">

<slides class="layout-widescreen">

  <slide class="title-slide segue nobackground" style="background: url(images/Intent/doc/rtfm.jpg); background-size: 100%;">
	<aside class="gdbar" style="width: 350px;">	
		<img style=" width: 261px;height: 85px;position: absolute;right: 0;margin: 8px 15px;" 
	src="images/Intent/Image-Intent_logo.png">
	</aside>
    <!-- The content of this hgroup is replaced programmatically through the slide_config.json. -->
    <hgroup style="position:relative;left:-100px;top:250px;padding: 0px 0px 0px 0px;margin:0px 0px 0px 0px;">
		<div>
      <h1 data-config-title class="stroke white"><!-- populated from slide_config.json --></h1>
      <h2 data-config-subtitle class="stroke white"><!-- populated from slide_config.json --></h2>
	  <br/><br/><br/><br/><br/>
	  <p style="font-size:27px" data-config-presenter class="stroke white"><!-- populated from slide_config.json --></p>
	 	<p style="font-size:27px;width:300px;margin-top:-35px; margin-left:830px"><span class="stroke white">EclipseCon Europe</span>
		<span class="stroke white" >2012</span></p>
	  </div>
    </hgroup>	

  </slide>

  <slide class="nutshell">
    <hgroup>
      <h2>
	  <img style="width: 261px;height: 85px;float:left;" src="images/Intent/Image-Intent_logo.png">
	  <div style="padding-top:20px;">&nbsp;&nbsp;in a Nutshell</div>
	  </h2>
    </hgroup>
    <article class="auto-fadein noBullets">
      <ul >
        <li>A <b>documentation</b> environment</li>
		<ul class="build">
			<li><b>synchronized</b> with development artifacts</li>
			<li><b>customizable</b> for your development processes</li>
		</ul>
    </article>
	<article class="build rightaligned" style="padding-top:150px">
      <ul>
        <img style="float:left;position:absolute;left:500px" src="images/Intent/egg-incubation.png"/>
		<li>Parf of <b>Mylyn</b> docs</li>
		<li>In incubation phase</li>		
	    <li>Parf of Release train since Juno </li>
	  </ul>
    </article>
  </slide>
  
  <slide class="segue nobackground partTitle" style="background: url(images/Intent/doc/wasted_paper.jpg); background-size: 100%;">
	  <h2 style="top:-20px">1. Documentation Sucks </h2>
	  <aside style="top:20px; width:650px" class="gdbar" ></aside>
  </slide>

  <slide class="part1">
    <hgroup>
      <h2>
		Why does Documentation <b>Suck</b>?
	  </h2>
    </hgroup>
    <article class="auto-fadein noBullets">
		<p>
		  1. Because most of the time it does not exist/contain the infos you need
		 </p>
		</article>
	</slide>
	
	<slide class="part1">
    <hgroup>
      <h2>
		Why does Documentation <b>Suck</b>?
	  </h2>
    </hgroup>
    <article class="noBullets">
		<p>
		  1. Because most of the time it does not exist/contain the infos you need
		 </p>
		<div class="paddinger">
			 <hgroup>
				  <h3>
					Why does nobody write doc? <br/><hr/>
				  </h3>
			   </hgroup>
			  <img src="images/Intent/short_sight.jpg"  style="float:left;padding-right:10px;width:35%"/>
				<p>"Working software <b>over comprehensive documentation</b>"<br/>
					<span style="padding-left:375px">Agile Manifesto</span>
				</p>
				<p>
					<br/>
			Don't be short-sighted: Enable your <b>next effort</b>
				<br/>	<br/>	<br/>
				</p>
		 </div>
		</article>
	</slide>
	
	<slide class="part1">
    <hgroup>
      <h2>
		Why does Documentation <b>Suck</b>?
	  </h2>
    </hgroup>
    <article class="noBullets">
		 <p>
		  1. Because most of the time it does not contain what you are looking for.
		 </p>
		 <p>
			2. Because most of the time it's <b>outdated</b> -> no one trusts it anymore				 
		</p>
    </article>	
  </slide>
  
  <slide class="part1">
    <hgroup>
      <h2>
		Why does Documentation <b>Suck</b>?
	  </h2>
    </hgroup>
    <article class="noBullets">
		 <p>
		  1. Because most of the time it does not contain what you are looking for.
		 </p>
		 <p>
			2. Because most of the time it's <b>outdated</b> -> no one trusts it anymore				 
		</p>
		<div class="paddinger">
			<hgroup>
				 <h3>
					Why is Documentation <b>outdated</b>?<br/><hr/>
				</h3>
			</hgroup>
			<img class="build" src="images/Intent/doc/doc_monster.png"  style="float:left;padding-right:10px;width:35%"/>
			<p>
				Because <b>keeping your doc synchronized</b> is a burden <br/>
				<br/>
				<br/>
				That's exactly what Intent is about
			</p>
			<div style="clear:both"/>
		</div>
    </article>	
  </slide>
  

  <slide class="segue nobackground partTitle" style="background: url(images/Intent/part2.jpg); background-size: 100%;">
	  <h2>2. Synchronize your Doc with Intent</h2>
	  <aside style="width:875px" class="gdbar" ></aside>
  </slide>
  
    
  <slide class="partNONE" style="background: url(images/Intent/linked_doc.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
	<div class="auto-fadein paddinger" style="position:relative;top:100px;text-align:center;width:62%">
		<h2>What do we want ?</h2>
		<hr/>
		A mechanism to <b>link</b> documentation parts with technical<br/> artifacts (Java code, models, plug-in dependencies...)
		</div>
  </slide>
  
  <slide class="partNONE" style="background: url(images/Intent/linked_doc_step2a.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
  </slide>
  
  <slide class="partNONE" style="background: url(images/Intent/linked_doc_step5b.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
  </slide>
  
   <slide class="partNONE" style="background: url(images/Intent/SmartEA/instead_of_v2.png); background-size: 90%;background-position:30px 30px;background-color:white; background-repeat : no-repeat;">
  </slide>
  
  <slide class="partNONE">
    <hgroup>
      <h2>
		One <b>Intent Document</b> mixing both
	  </h2>
    </hgroup>
		<div class="intent_content">
			<b class="kw">Chapter</b> <b>Logical Target Business Architecture </b> {
				<div class="intent_subsectioncontainer">
				<div class="du">
					This chapter aims to describe the system users/actors in scope for <br/>
					the <b>*Target Architecture*</b>. System actors/users are those users who <br/>
					<b>*interact with a system*</b>. They can be human or a system/computer.<br/>
				</div>
					<br/><b class="kw">Section</b> <b>Computer Actors</b> {
						<div class="intent_subsectioncontainer">
								<div class="du">
									One of the most relevant <i style="font-style:italic">_Computer Actor_</i> is the <b>*Consistency Checker*</b>.<br/>
									Whenever changes occur on the Travel Agency database, it verify all consistency constraints defined on the system.
								</div>
								<div class="intent_modelingunit">
								<b class="kw">@M</b><br/>
								<div class="intent_subsectioncontainer">
								<b class="kw">new</b> Actor consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										name = <i style="color:blue">"Consistency Checker"</i>;<br/>
										type = ActorType.Computer;<br/>
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>
								</div></div>
							}						
						
						<hr/>
					<div style="text-align:center;padding-right:30px;margin-top:0px;font-size: 16px;">
					<b>[...]</b>
					</div>
					<hr/>
					<b class="kw">Section</b> <b>Process Steps mapped to Actors</b> {
						<div class="intent_subsectioncontainer">
							<div class="du">
								The <b>*Consistency Checker*</b> Actor participates to the <i style="font-style:italic">_Consistency Checking_</i> Process,<br/>
								which helps achieving the <i style="font-style:italic">_Manage the data integrity_</i> Business Objective.<br/>
							</div>
							<div class="intent_modelingunit">
								<b class="kw">@M</b>
									<div class="intent_subsectioncontainer">
									consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										participatesInProcesses += <i style="font-style:italic">consistencyCheckingProcess</i>;<br/>
										followObjectives += <i style="font-style:italic">dataIntegrityObjective</i>;								
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>								
								</div>
						</div>
					}<br/>
				</div>
				}
				
							</div>
	</div>
  </slide>
  
   <slide class="partNONE">
    <hgroup>
      <h2>
		One <b>Intent Document</b> mixing both
	  </h2>
    </hgroup>
		<div class="intent_content">
			<b class="kw">Chapter</b> <b>Logical Target Business Architecture </b> {
				<div class="intent_subsectioncontainer">
				<div class="du">
					This chapter aims to describe the system users/actors in scope for <br/>
					the <b>*Target Architecture*</b>. System actors/users are those users who <br/>
					<b>*interact with a system*</b>. They can be human or a system/computer.<br/>
				</div>
					<br/><b class="kw">Section</b> <b>Computer Actors</b> {
						<div class="intent_subsectioncontainer">
								<div class="du">
									One of the most relevant <i style="font-style:italic">_Computer Actor_</i> is the <b>*Consistency Checker*</b>.<br/>
									Whenever changes occur on the Travel Agency database, it verify all consistency constraints defined on the system.
								</div>
								<div class="greyed">
								<div class="intent_modelingunit" style="background-color:#F8F8F8;color:grey;font-size: 14px;">
								@M<br/>
								<div class="intent_subsectioncontainer">
								new Actor consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										name = <i >"Consistency Checker"</i>;<br/>
										type = ActorType.Computer;<br/>
										</div>
									}<br/>
									</div>
								M@
								</div>
								</div>
													
						</div>}	
						<hr/>
					<div style="text-align:center;padding-right:30px;margin-top:0px;font-size: 16px;">
					<b>[...]</b>
					</div>
					<hr/>
					<b class="kw">Section</b> <b>Process Steps mapped to Actors</b> {
						<div class="intent_subsectioncontainer">
							<div class="du">
								The <b>*Consistency Checker*</b> Actor participates to the <i style="font-style:italic">_Consistency Checking_</i> Process,<br/>
								which helps achieving the <i style="font-style:italic">_Manage the data integrity_</i> Business Objective.<br/>
							</div>
							<div class="greyed">
							<div class="intent_modelingunit"  style="background-color:#F8F8F8;color:grey;font-size: 14px;">
								@M
									<div class="intent_subsectioncontainer">
									consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										participatesInProcesses += <i style="font-style:italic">consistencyCheckingProcess</i>;<br/>
										followObjectives += <i style="font-style:italic">dataIntegrityObjective</i>;								
										</div>
									}<br/>
									</div>
								M@						
								</div>
							</div>
						</div>
					}<br/>
				</div>
				}
				
							</div>
	</div>
  </slide>
  
    
  <slide class="partNONE">
    <hgroup>
      <h2>
		One <b>Intent Document</b> mixing both
	  </h2>
    </hgroup>
		<div class="intent_content greyed">
			Chapter Logical Target Business Architecture {
				<div class="intent_subsectioncontainer">
				<div class="du">
					This chapter aims to describe the system users/actors in scope for <br/>
					the *Target Architecture*. System actors/users are those users who <br/>
					*interact with a system*. They can be human or a system/computer.<br/>
				</div>
					<br/>SectionComputer Actors{
						<div class="intent_subsectioncontainer">
								<div class="du">
									One of the most relevant <i style="font-style:italic">_Computer Actor_</i> is the *Consistency Checker*.<br/>
									Whenever changes occur on the Travel Agency database, it verify all consistency constraints defined on the system.
								</div>
								<div class="intent_modelingunit">
								<b class="kw">@M</b><br/>
								<div class="intent_subsectioncontainer">
								<b class="kw">new</b> Actor consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										name = <i style="color:blue">"Consistency Checker"</i>;<br/>
										type = ActorType.Computer;<br/>
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>
								</div></div>
							}						
						
						<hr/>
					<div style="text-align:center;padding-right:30px;margin-top:0px;font-size: 16px;">
					<b>[...]</b>
					</div>
					<hr/>
					Section Process Steps mapped to Actors {
						<div class="intent_subsectioncontainer">
							<div class="du">
								The *Consistency Checker* Actor participates to the <i style="font-style:italic">_Consistency Checking_</i> Process,<br/>
								which helps achieving the <i style="font-style:italic">_Manage the data integrity_</i> Business Objective.<br/>
							</div>
							<div class="intent_modelingunit">
								<b class="kw">@M</b>
									<div class="intent_subsectioncontainer">
									consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										participatesInProcesses += <i style="font-style:italic">consistencyCheckingProcess</i>;<br/>
										followObjectives += <i style="font-style:italic">dataIntegrityObjective</i>;								
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>								
								</div>
						</div>
					}<br/>
				</div>
				}
				
							</div>
	</div>
  </slide>
    <slide class="partNONE">
    <hgroup>
      <h2>
		One <b>Intent Document</b> mixing both
	  </h2>
    </hgroup>
		<div class="intent_content greyed">
			Chapter Logical Target Business Architecture {
				<div class="intent_subsectioncontainer">
				<div class="du">
					This chapter aims to describe the system users/actors in scope for <br/>
					the *Target Architecture*. System actors/users are those users who <br/>
					*interact with a system*. They can be human or a system/computer.<br/>
				</div>
					<br/>SectionComputer Actors{
						<div class="intent_subsectioncontainer">
								<div class="du">
									One of the most relevant <i style="font-style:italic">_Computer Actor_</i> is the *Consistency Checker*.<br/>
									Whenever changes occur on the Travel Agency database, it verify all consistency constraints defined on the system.
								</div>
								<div class="intent_modelingunit">
								<b class="kw">@M</b><br/>
								<div class="intent_subsectioncontainer">
								<b class="kw">new</b> Actor <span class="stroke focused" >consistencyCheckerActor</span> {<br/>
										<div class="intent_subsectioncontainer">
										name = <i style="color:blue">"Consistency Checker"</i>;<br/>
										type = ActorType.Computer;<br/>
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>
								</div></div>
							}						
						
						<hr/>
					<div style="text-align:center;padding-right:30px;margin-top:0px;font-size: 16px;">
					<b>[...]</b>
					</div>
					<hr/>
					Section Process Steps mapped to Actors {
						<div class="intent_subsectioncontainer">
							<div class="du">
								The *Consistency Checker* Actor participates to the <i style="font-style:italic">_Consistency Checking_</i> Process,<br/>
								which helps achieving the <i style="font-style:italic">_Manage the data integrity_</i> Business Objective.<br/>
							</div>
							<div class="intent_modelingunit">
								<b class="kw">@M</b>
									<div class="intent_subsectioncontainer">
									consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										participatesInProcesses += <i style="font-style:italic">consistencyCheckingProcess</i>;<br/>
										followObjectives += <i style="font-style:italic">dataIntegrityObjective</i>;								
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>								
								</div>
						</div>
					}<br/>
				</div>
				}
				
							</div>
	</div>
  </slide>
    <slide class="partNONE">
    <hgroup>
      <h2>
		One <b>Intent Document</b> mixing both
	  </h2>
    </hgroup>
		<div class="intent_content greyed">
			Chapter Logical Target Business Architecture {
				<div class="intent_subsectioncontainer">
				<div class="du">
					This chapter aims to describe the system users/actors in scope for <br/>
					the *Target Architecture*. System actors/users are those users who <br/>
					*interact with a system*. They can be human or a system/computer.<br/>
				</div>
					<br/>SectionComputer Actors{
						<div class="intent_subsectioncontainer">
								<div class="du">
									One of the most relevant <i style="font-style:italic">_Computer Actor_</i> is the *Consistency Checker*.<br/>
									Whenever changes occur on the Travel Agency database, it verify all consistency constraints defined on the system.
								</div>
								<div class="intent_modelingunit">
								<b class="kw">@M</b><br/>
								<div class="intent_subsectioncontainer">
								<b class="kw">new</b> Actor consistencyCheckerActor {<br/>
										<div class="intent_subsectioncontainer">
										name = <i style="color:blue">"Consistency Checker"</i>;<br/>
										type = ActorType.Computer;<br/>
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>
								</div></div>
							}						
						
						<hr/>
					<div style="text-align:center;padding-right:30px;margin-top:0px;font-size: 16px;">
					<b>[...]</b>
					</div>
					<hr/>
					Section Process Steps mapped to Actors {
						<div class="intent_subsectioncontainer">
							<div class="du">
								The *Consistency Checker* Actor participates to the <i style="font-style:italic">_Consistency Checking_</i> Process,<br/>
								which helps achieving the <i style="font-style:italic">_Manage the data integrity_</i> Business Objective.<br/>
							</div>
							<div class="intent_modelingunit">
								<b class="kw">@M</b>
									<div class="intent_subsectioncontainer">
									<span class="focused stroke" >consistencyCheckerActor</span> {<br/>
										<div class="intent_subsectioncontainer">
										participatesInProcesses += <i style="font-style:italic">consistencyCheckingProcess</i>;<br/>
										followObjectives += <i style="font-style:italic">dataIntegrityObjective</i>;								
										</div>
									}<br/>
									</div>
								<b class="kw">M@</b>								
								</div>
						</div>
					}<br/>
				</div>
				}
				
							</div>
	</div>
  </slide>

       <slide class="partNONE" style="background: url(images/Intent/linked_doc_step2.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
  </slide>
  
     <slide class="partNONE" style="background: url(images/Intent/linked_doc_step3.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
  </slide>
   <slide class="partNONE" style="background: url(images/Intent/linked_doc_step4.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
  </slide>
  
  
  
  <slide class="segue nobackground partTitle" style="background: url(images/Intent/inAction.jpg); background-size: 100%;">
	  <h2 style="left:550px;top:0px;">3. Intent in Action</h2>
	  <aside style="width:460px;top:35px;" class="gdbar right" ></aside>
  </slide>
  
  <slide class="part3">
    <hgroup>
      <h2>
		Intent applied to <b>Enterprise Architecture</b>
	  </h2>
	  </hgroup>		
    </hgroup>
	<article>
	 <img class="reflect" src="images/Intent/SmartEA.png" style="float:left;padding-right:40px"/>
	<div style="padding-top:20px">
	- <b>SmartEA</b>:  provides modelers to manage <b>Enterprise Architecture</b> models<br/>
	<br/>- based on the TOGAF methodology
	
	 </div><div style="clear:both"/>
	 <p style="text-align:right;">
	 <br/>
	<img src="images/Intent/SmartEA/togaf.png" style="height:60%;float:right;padding-right:20px"/><br/> <br/><br/><br/>
	-EA models contain business-critical informations <br/>
	
	 <br/>- Many Documents to store the intents behind EA models
	 </p>
	 <h3><a href="demos/smartea/Intent_AppliedOnEnterpriseArchitecture.mp4" target="demo">See Demo: how can Intent help documenting EA models</a>
	 </h3>
	<div style="clear:both"/>
	
		</article>
  </slide>
  
    
  <slide class="segue nobackground partTitle" style="background: url(images/Intent/share1.jpg); background-size: 100%;">
	  <h2 style="top:550px;left:100px;";>4. Documentation sharing sucks</h2>
	  <aside style="width:920px;top:585px;" class="gdbar" ></aside>
  </slide>

   <slide class="part4">
    <hgroup>
      <h2>
		Intent: <b>behind the Scene</b>
	  </h2>
	   <article class="flexbox vcenter auto-fadein">
	   <img src="images/Intent/Architecture_repository.png"/>
	   </article>
    </hgroup>
  </slide>
  
  <slide class="part4">
    <hgroup>
      <h2>
		Intent: <b>share</b> your doc in real-time
	  </h2>
	  <article>
	  <iframe style="margin-left:-95px;padding-top:50px;width:1190px;height:475px" data-src="demos/cdo/cdo/cdo_player.html"></iframe>
	  </article>
    </hgroup>
  </slide>
  
    <slide class="segue nobackground partTitle" style="background: url(images/Intent/ariadne_bg.png); background-size: 100%;">
	  <h2>5. To code synchronization and beyond</h2>
	  <aside style="width:960px" class="gdbar" ></aside>
	  <img  style="margin-top:100px;position:relative;top:-200px;left:100px;width:80%" src="images/Intent/maze.png"/>
  </slide>
  
  <slide class="partNONE" style="background: url(images/Intent/sync01.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
  <div class="paddinger" style="position:relative;top:200px;left:280px;text-align:center;width:250px">
		<h3 style="padding:0px 0px 0px 0px;">Intent <b>Synchronizer</b></h3>
		<hr/>
		<span style="font-size:18px">
		Compares Doc (Model Fragments)  with Artifacts (as Models)</span>
  </div>

  </slide>
  
  
  <slide class="partNONE" style="background: url(images/Intent/sync02.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;">
 <div class="paddinger" style="position:relative;top:200px;left:280px;text-align:center;width:250px">
		<h3 style="padding:0px 0px 0px 0px;">Intent <b>Synchronizer</b></h3>
		<hr/>
		<span style="font-size:18px">
		Compares Doc (Model Fragments)  with Artifacts (as Models)</span>
  </div>
      <div class="paddinger" style="position:relative;top:300px;left:100px;text-align:center;width:250px">
		<h3 style="padding:0px 0px 0px 0px;">Synchronization <b>Bridge</b></b></h3>
		<hr/>
		<span style="font-size:18px">
		Represent a technical artifact (Java class, plugin.xml...) as a Model</span>
  </div>
  </slide>
   <slide class="part5">
    <hgroup>
      <h2>
		<b>Ariadne</b>: leverage the data of your IDE
	  </h2>
	  <article style="padding-top:100px;padding-right:30px;">
	  <img  class="reflect" src="images/Intent/ariadne.png" style="width:30%;float:left;"/><br/><br/>
		  - Extracts Technical Artifacts (Java code, GIT commits, bugzilla issues, plugin dependencies...) <b>as Models</b><br/><br/><br/>
		 - Allows to <b>formalize constraints</b> (automate guidelines checking)
	   </article>
    </hgroup>
  </slide>
  
  
    <slide class="three_things">
    <hgroup>
      <h2>
		The 3 things to remember about Intent
	  </h2>
	  <article style="padding-top:100px;padding-right:30px;">
	  <br/>1. Intent keeps your doc up-to-date with concrete world<br/>
	  <br/>2. Intent allows you to check constraints<br/>
	  <br/>3. Intent allows real-time collaboration around Doc<br/>
	   </article>
    </hgroup>
  </slide>
  
   <slide class="thanks">
    <hgroup>
      <h2>
		Thank You!
	  </h2>
    </hgroup>


		<article>
		<img class="reflect" src="images/contact/website.png"  style="width:50px"/> <a href="http://www.eclipse.org/intent">http://www.eclipse.org/intent</a>
		<br/><br/> <img class="reflect" src="images/Intent/Image-Intent_logo_cropped.png"  style="width:50px"/> <a href="http://wiki.eclipse.org/Intent">http://wiki.eclipse.org/Intent</a>
		<br/><br/> <img class="reflect" src="images/contact/twitter.jpg" style="width:50px"/> @Intent_project
		
		<h2><br/><br/>
		Don't forget to give Feedback <br/>
		 <img class="reflect" style="padding-top:20px" src="images/Intent/feedback.png"/> 
		</h2>
	   </article>
  </slide>
  
   <slide class="thanks">
    <hgroup>
      <h2>
		Questions asked during the talk
	  </h2>
    </hgroup>


		<article>
		<ul><li><b>Ok, I understood that the Synchronization Bridge mechanism allows to synchronize technical artifacts.
		What are the current Synchronization Bridges? Can I synchronize Java code?</b><br/><br/>
		> No, not right now. However, we plan to integrate Intent with Ariadne for the Kepler release, and that will allows us to synchronize Java files, Manifests, Mylyn tasks, Git repositories...
		</li>
		<br/><br/><br/><br/><li><b>The Model Fragments syntax of Intent is far too complex for an end-user, could you hide them?</b><br/><br/>
		> Yes, that is one of the things I have in mind. As Intent provides tooling for linking a piece of doc with a technical artifact (Drag'n'Drop) and to fix synchronization issues (quick-fixes), you never have to edit
		those Model Fragements manually. <br/>
		Consequently, we could provide a
		simplified Intent editor which hides Model Fragments. Then you will just have a pure documentation, that is linked with technical artifacts behind the scene.
		</li>
	   </article>
  </slide>
  
  <slide class="backdrop"></slide>

</slides>

<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
_gaq.push(['_trackPageview']);

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

<!--[if IE]>
  <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
  <script>CFInstall.check({mode: 'overlay'});</script>
<![endif]-->
</body>
</html>
