| <!-- |
| 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> |
| <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:240px;padding: 0px 0px 0px 0px;margin:0px 0px 0px 0px;"> |
| <div> |
| <h1 data-config-title class="stroke white" style="font-size:52px"><!-- 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:-60px; margin-left:860px"><img src="images/Intent/ec_boston.png" style="width:70%" /></p> |
| </div> |
| </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;"> 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 <span style="font-size:0px;">_</span></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 class="reflect" src="images/Intent/doc/blank_doc.jpg" style="float:left;padding-right:10px;width:35%"/> |
| <p>Comparable to massive rejection of Unit Testing<br/><br/></p> |
| <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/> As a developper, you spend most of your time <b>understanding other people's code</b>.<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 <span style="font-size:0px;">_</span></h2> |
| <aside style="width:875px" class="gdbar" ></aside> |
| </slide> |
| |
| |
| <slide class="part2" 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="part2" 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="part2" 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="part2"> |
| <hgroup> |
| <h2> |
| One <b>Intent Document</b> mixing both |
| </h2> |
| </hgroup> |
| <p style="padding-left:50px;padding-top:50px;color:black"> |
| <span style="">- Pure documentation zones<br/></span> |
| <br/> |
| <span style">- Formal links zones<br/></span> |
| <br/> |
| </p> |
| <div class="intent_content"> |
| <b class="kw">Chapter</b> <b>Significant Scenarios</b> { |
| <div class="intent_subsectioncontainer"> |
| <div class="du"><br/> |
| This chapter specifies the behavior of the <b>*my.plugin*</b> plugin by listing relevant scenarios.<br/> These scenarios can involve both |
| human actors or computer/system actors, as defined in chapter 1.5. |
| </div> |
| <br/><b class="kw">Section</b> <b>Scenario S-01: get source of a Java method</b> { |
| <div class="intent_subsectioncontainer"> |
| <div class="du"><br/> |
| <b>*As a*</b> end-user<br/> |
| <b>*Given*</b> a <i>_Java class_</i> containing a non-abstract method<br/> |
| <b>*Then*</b> when getting the model representation of this Java Class<br/> |
| the source of each method should be the exact source of the java method<br/><br/> |
| </div> |
| <div class="intent_modelingunit"> |
| <b class="kw">@M</b><br/> |
| <div class="intent_subsectioncontainer"> |
| <b class="kw">@ref</b><i style="color:blue"> "org.eclipse.my.plugin.tests/src/org/eclipse/my/plugin/tests/GetJavaMethodSourceTest.java"</i> |
| <br/> |
| </div> |
| <b class="kw">M@</b> |
| </div></div> |
| } |
| </div> |
| } |
| |
| </div> |
| <br/> |
| |
| </slide> |
| |
| <slide class="part2"> |
| <hgroup> |
| <h2> |
| One <b>Intent Document</b> mixing both |
| </h2> |
| </hgroup> |
| <p style="padding-left:50px;padding-top:50px;color:black"> |
| <span style="">- Pure documentation zones<br/> |
| <span style="padding-left:30px;">Explanations in Natural language<br/></span> |
| <span style="padding-left:30px;">Use the <b>Textile</b> syntax<br/><br/></span> |
| </span> |
| </p> |
| <div class="intent_content"> |
| <b class="kw">Chapter</b> <b>Significant Scenarios</b> { |
| <div class="intent_subsectioncontainer"> |
| <div class="du"><br/> |
| This chapter specifies the behavior of the <b>*my.plugin*</b> plugin by listing relevant scenarios.<br/> These scenarios can involve both |
| human actors or computer/system actors, as defined in chapter 1.5. |
| </div> |
| <br/><b class="kw">Section</b> <b>Scenario S-01: get source of a Java method</b> { |
| <div class="intent_subsectioncontainer"> |
| <div class="du"><br/> |
| <b>*As a*</b> end-user<br/> |
| <b>*Given*</b> a <i>_Java class_</i> containing a non-abstract method<br/> |
| <b>*Then*</b> when getting the model representation of this Java Class<br/> |
| the source of each method should be the exact source of the java method<br/><br/> |
| </div> |
| <div class="greyed"> |
| <div class="intent_modelingunit" style="background-color:#F8F8F8;color:grey;font-size: 14px;"> |
| @M<br/> |
| <div class="intent_subsectioncontainer"> |
| @ref "org.eclipse.my.plugin.tests/src/org/eclipse/my/plugin/tests/GetJavaMethodSourceTest.java" |
| </div> |
| M@ |
| </div> |
| </div> |
| |
| </div>} |
| </div> |
| } |
| |
| </div> |
| </slide> |
| |
| |
| <slide class="part2"> |
| <hgroup> |
| <h2> |
| One <b>Intent Document</b> mixing both |
| </h2> |
| </hgroup> |
| <p style="padding-left:50px;padding-top:50px;color:black"> |
| <span style="">- Formal links zones<br/> |
| <span style="padding-left:30px;">Reference to technical artifacts (Java, models, Manifests...)<br/></span> |
| <span style="padding-left:30px;">Extensible behavior (display, hyperlinks, validation...)<br/><br/></span> |
| </span> |
| </p> |
| <div class="intent_content greyed"> |
| Chapter Significant Scenarios { |
| <div class="intent_subsectioncontainer"> |
| <div class="du"> |
| This chapter specifies the behavior of the *my.plugin* plugin by listing relevant scenarios.<br/> |
| These scenarios can involve both |
| human actors or computer/system actors, as defined in chapter 1.5. |
| </div> |
| <br/>SectionComputer Actors{ |
| <div class="intent_subsectioncontainer"> |
| <div class="du"> |
| *As a* end-user<br/> |
| *Given* a _Java class_ containing a non-abstract method<br/> |
| *Then* when getting the model representation of this Java Class<br/> |
| the source of each method should be the exact source of the java method<br/><br/> |
| </div> |
| <div class="intent_modelingunit"> |
| <b class="kw">@M</b><br/> |
| <div class="intent_subsectioncontainer"> |
| <b class="kw">@ref</b><i style="color:blue"> "org.eclipse.my.plugin.tests/src/org/eclipse/my/plugin/tests/GetJavaMethodSourceTest.java"</i> |
| <br/> |
| </div> |
| <b class="kw">M@</b> |
| </div></div> |
| }<br/> |
| </div> |
| } |
| |
| </div> |
| </div> |
| </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 <span style="font-size:0px;">_</span></h2> |
| <aside style="width:460px;top:35px;" class="gdbar right" ></aside> |
| </slide> |
| |
| <slide class="segue nobackground partTitle" style="background: url(images/Intent/ariadne_bg.png); background-size: 100%;"> |
| <h2>To code synchronization and beyond <span style="font-size:0px;">_</span></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="part3" 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:230px;left:170px;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 (Formal links) with Artifacts (as Models)</span> |
| </div> |
| |
| </slide> |
| |
| |
| <slide class="part3" 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:230px;left:170px;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 (Formal links) with Artifacts (as Models)</span> |
| </div> |
| <div class="paddinger" style="position:relative;top:-120px;left:170px;text-align:center;width:250px"> |
| <h3 style="padding:0px 0px 0px 0px;">Synchronization <b>Bridge</b></b></h3> |
| <hr/> |
| <span style="font-size:18px"> |
| Represents a technical artifact (Java class, plugin.xml...) as a Model</span> |
| </div> |
| </slide> |
| |
| <slide class="part3" style="background: url(images/Intent/sync03.png); background-size: 90%;background-position:30px 0px;background-color:white; background-repeat : no-repeat;"> |
| <div class="paddinger" style="position:relative;top:230px;left:170px;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 (Formal links) with Artifacts (as Models)</span> |
| </div> |
| <div class="paddinger" style="position:relative;top:-120px;left:170px;text-align:center;width:250px"> |
| <h3 style="padding:0px 0px 0px 0px;">Synchronization <b>Bridge</b></b></h3> |
| <hr/> |
| <span style="font-size:18px"> |
| Represents a technical artifact (Java class, plugin.xml...) as a Model</span> |
| </div> |
| </slide> |
| |
| <slide class="segue nobackground partTitle" style="background: url(images/Intent/constraint.png); background-size: 100%;"> |
| <h2 style="top:50px;left:-90px;";>4. Checking Constraints Sucks <span style="font-size:0px;">_</span></h2> |
| <aside style="width:670px;top:85px;" class="gdbar" ></aside> |
| </slide> |
| |
| |
| <slide class="part4"> |
| <hgroup> |
| <h2> |
| <b>Automate</b> high-level constraints checking |
| </h2> |
| <article class="noBullets"> |
| <div style="padding-left:30px;padding-top:20px"> |
| <h3 style="color:black">You <b>already</b> constraint Development</h3> |
| <p style="padding-left:15px">With <b>informal</b> processes, dev guidelines, good practices... |
| <img src="images/Intent/compare_plan.png" style="width:100%" /><br/> |
| |
| </p> |
| </div> |
| <!--style="padding-left: 520px; padding-top:10px;"--> |
| <div style="padding-left: 30px; padding-top:70px;"> |
| <h3 style="color:black">But high-level constraints are <b>hard to check</b></h3> |
| <p style="padding-left:15px">Manual reviews: painful, long, error-prone<br/> |
| |
| <div> |
| </article> |
| </hgroup> |
| </slide> |
| |
| <slide class="part4"> |
| <hgroup> |
| <h2> |
| <b>Automate</b> high-level constraints checking |
| </h2> |
| <article class="noBullets"> |
| <div style="padding-top:20px"> |
| <h3 style="color:black">Plug constraints in Intent</h3> |
| <p style="padding-left:15px">Problem view integration, extensible quick-fixes</p> |
| </div> |
| <!--style="padding-left: 520px; padding-top:10px;"--> |
| <div style="padding-top:30px;"> |
| <img src="images/Intent/validation.png" style="" /><br/> |
| |
| <div> |
| </article> |
| </hgroup> |
| </slide> |
| <slide class="segue nobackground partTitle" style="background: url(images/Intent/share1.jpg); background-size: 100%;"> |
| <h2 style="top:550px;left:100px;";>5. Documentation sharing sucks <span style="font-size:0px;">_</span></h2> |
| <aside style="width:920px;top:585px;" class="gdbar" ></aside> |
| </slide> |
| |
| <slide class="part5"> |
| <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="part5"> |
| <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="cooking"> |
| <hgroup> |
| <h2> |
| Intent: there's <b>more</b> |
| </h2> |
| <article style="padding-top:10px;padding-left:120px;"> |
| <img src="images/Intent/web_export.png" style="width:80%;"/><br/> |
| - HTML Bootstrap export (focused on navigation)<br/><br/> |
| - Xtext integration, new bridges...<br/><br/> |
| - Performances & Stability<br/> |
| </article> |
| </hgroup> |
| </slide> |
| |
| |
| <slide class="cooking" style="background: url(images/Intent/dream.jpg); background-size: 100%;"> |
| <h2 style="maring-top:-150px;"> |
| Last minute slide |
| </h2> |
| <br/><br/> |
| <span style="padding-top:10px;margin-left:0px;color:black"> |
| <b>Mylyn 4.0</b> will store tasks, bugzillas, git repos... <b>as models</b><br/><br/> |
| <br/> |
| Imagine what Intent could do!<br/><br/><br/> |
| - <i>Alice is writing a contribution guide showing the git repo URL</i><br/> |
| -> And if URL changes, sync. issues will be raised<br/><br/><br/> |
| - <i>John is closing a bugzilla issue without writing Junit test</i><br/> |
| -> Intent will raise a validation issue as team defined custom rule |
| |
| </span> |
| </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 <b>doc up-to-date</b> with concrete world<br/><br/> |
| <br/>2. Intent allows you <b>formalize</b> your dev <b>constraints</b><br/><br/> |
| <br/>3. Intent allows <b>real-time collaboration</b> around Doc<br/> |
| </article> |
| </hgroup> |
| </slide> |
| <slide class="needyou"> |
| <hgroup> |
| <h2> |
| Intent Needs <b>You</b> |
| </h2> |
| <article style="padding-top:40px;"> |
| <table style="background-color:none; border:0px solid black;"><tr style="background-color:white; border:0px solid black;"><td> |
| <img src="images/Intent/need_you.jpg" style="float:left"/> |
| </td><td> |
| <h3 style="color:black;font-size:34px;">Give us feedback</h3> |
| <div style="padding-left:30px;font-size:22px;"> |
| We do take community feedbacks in account <br/> |
| <b>You're driving this ship!</b><br/> |
| - Syntax simplification<br/> |
| - Java bridge...<br/><br/><br/><br/> |
| </div> |
| <h3 style="color:black;font-size:34px;">Technical contributions</h3> |
| <div style="padding-left:30px;font-size:22px;"> |
| - Sync. bridges, validation rules, new repository back-ends...<br/> |
| - Become an Intent committer! |
| </div><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> |
| </td></tr></table> |
| </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<br/> <span style="padding-left:55px">@alex_lagarde</span> |
| |
| <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="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> |