| <!doctype html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=1024" /> |
| <meta name="apple-mobile-web-app-capable" content="yes" /> |
| <title>I love scripting, EclipseCon Europe 2015</title> |
| |
| <meta name="description" |
| content="EclipseCon presentation of the Eclipse Advanced Scripting Environment." /> |
| <meta name="author" content="Christian Pontesegger" /> |
| |
| <link |
| href="http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic" |
| rel="stylesheet" /> |
| |
| <!-- |
| |
| Impress.js doesn't depend on any external stylesheets. It adds all of the styles it needs for the |
| presentation to work. |
| |
| This style below contains styles only for demo presentation. Browse it to see how impress.js |
| classes are used to style presentation steps, or how to apply fallback styles, but I don't want |
| you to use them directly in your presentation. |
| |
| Be creative, build your own. We don't really want all impress.js presentations to look the same, |
| do we? |
| |
| When creating your own presentation get rid of this file. Start from scratch, it's fun! |
| |
| --> |
| <link href="style.css" rel="stylesheet" /> |
| <link rel="shortcut icon" href="favicon.png" /> |
| <link rel="apple-touch-icon" href="apple-touch-icon.png" /> |
| |
| <link href='https://fonts.googleapis.com/css?family=Marck+Script&subset=latin,latin-ext' rel='stylesheet' type='text/css'> |
| </head> |
| |
| <!-- |
| |
| Body element is used by impress.js to set some useful class names, that will allow you to detect |
| the support and state of the presentation in CSS or other scripts. |
| |
| First very useful class name is `impress-not-supported`. This class means, that browser doesn't |
| support features required by impress.js, so you should apply some fallback styles in your CSS. |
| It's not necessary to add it manually on this element. If the script detects that browser is not |
| good enough it will add this class, but keeping it in HTML means that users without JavaScript |
| will also get fallback styles. |
| |
| When impress.js script detects that browser supports all required features, this class name will |
| be removed. |
| |
| The class name on body element also depends on currently active presentation step. More details about |
| it can be found later, when `hint` element is being described. |
| |
| --> |
| <body class="impress-not-supported"> |
| |
| <!-- |
| For example this fallback message is only visible when there is `impress-not-supported` class on body. |
| --> |
| <div class="fallback-message"> |
| <p> |
| Your browser <b>doesn't support the features required</b> by impress.js, so you are presented |
| with a simplified version of this presentation. |
| </p> |
| <p> |
| For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> |
| browser. |
| </p> |
| </div> |
| |
| <div id="impress"> |
| <div id="title" class="step slide" data-x="10000" data-y="22000" data-scale="40"> |
| <div id="i_love">I love scripting</div> |
| <div id="copyright" class="bottomright">EclipseCon Europe 2015<br />by Christian Pontesegger</div> |
| </div> |
| |
| <div id="ide-support" class="step slide" data-x="-55" data-y="45" data-scale="0.52"> |
| </div> |
| |
| <div id="engines" class="step slide" data-x="60" data-y="45" data-scale="0.52"> |
| </div> |
| |
| <div id="bigPicture" class="step slide" data-x="0" data-y="0" > |
| <p id="picture_java" class="box eclipse"> |
| <img src="images/java.png" /> |
| </p> |
| |
| <img id="picture_script1" src="images/script.png" /> |
| <img id="picture_script2" src="images/script.png" /> |
| <img id="picture_script3" src="images/script.png" /> |
| <img id="picture_script4" src="images/script.png" /> |
| <img id="picture_script5" src="images/script.png" /> |
| |
| <p id="picture_ease" class="box eclipse"> |
| EASE<br />Eclipse Advanced Scripting Environment |
| </p> |
| |
| <p id="picture_jsdt" class="ideSupport box eclipse">JSDT</p> |
| <p id="picture_pydev" class="ideSupport box eclipse">PyDev</p> |
| <p id="picture_ggts" class="ideSupport box eclipse">GGTS</p> |
| <p id="picture_rdt" class="ideSupport box eclipse">RDT</p> |
| |
| <p id="picture_eclipse" class="box eclipse"> |
| Eclipse<br /> <img src="images/eclipse256.png" /> |
| </p> |
| |
| <p id="picture_rhino" class="engine box eclipse">Rhino</p> |
| <p id="picture_jython" class="engine box eclipse">Jython</p> |
| <p id="picture_groovy" class="engine box eclipse">Groovy</p> |
| <p id="picture_jruby" class="engine box eclipse">JRuby</p> |
| </div> |
| |
| <div id="shell_main" class="step slide background" data-x="0" data-y="-1500"> |
| <h1>An interactive script shell</h1> |
| <img class="center" src="images/scrn_shell.png" /> |
| </div> |
| |
| <div id="shell_jre" class="step slide" data-x="0" data-y="-2500"> |
| <h1>... with access to the Java runtime</h1> |
| <div id="jre1" class="code"> |
| <img src="images/shell_java_1.png" /> |
| </div> |
| <div id="jre2" class="code"> |
| <img src="images/shell_java_2.png" /> |
| </div> |
| <div id="jre3" class="code"> |
| <img src="images/shell_java_3.png" /> |
| </div> |
| </div> |
| |
| <div id="shell_jars" class="step slide" data-x="-700" data-y="-3500"> |
| <h1>... your JARs</h1> |
| <img class="center" src="images/scrn_shell_jars.png" /> |
| </div> |
| |
| <div id="shell_eclipse" class="step slide" data-x="700" data-y="-3500"> |
| <h1>... and Eclipse</h1> |
| <img class="center" src="images/scrn_shell_eclipse.png" /> |
| <p class="bottomright">with all its plug-ins</p> |
| </div> |
| |
| <div id="code_completion" class="step slide background" data-x="1500" data-y="-1200" data-rotate="45"> |
| <h1>Powerful code completion</h1> |
| <img class="center" src="images/scrn_code_completion.png" /> |
| </div> |
| |
| <div id="code_completion_help" class="step slide" data-x="2200" data-y="-1900" data-rotate="45"> |
| <h1>... with help tooltips</h1> |
| <img class="center" src="images/scrn_code_completion_help.png" width="880" /> |
| <img id="coming_soon" src="images/coming_soon.png" width="300" /> |
| </div> |
| |
| <div id="modules_explorer" class="step slide background" data-x="2000" data-y="0" data-rotate="90"> |
| <h1>Use modules for common tasks</h1> |
| <ul class="left"> |
| <li>Launch support</li> |
| <li>Preferences</li> |
| <li>access Services</li> |
| <li>perform UI tasks</li> |
| <li>Script multithreading</li> |
| <li>Resource handling</li> |
| </ul> |
| <img class="right" src="images/scrn_modules_explorer.png" /> |
| </div> |
| |
| <div id="load_modules" class="step slide" data-x="3000" data-y="0" data-rotate="90"> |
| <h1>... loaded dynamically during runtime</h1> |
| <img class="center" src="images/scrn_load_module.png" /> |
| </div> |
| |
| <div id="wrap_java_instance" class="step slide" data-x="4000" data-y="-1250" data-rotate="90"> |
| <h1>Wrap any java object</h1> |
| <img class="center" src="images/scrn_wrap_instance.png" /> |
| </div> |
| |
| <div id="register_pojo" class="step slide" data-x="4000" data-y="0" data-rotate="90"> |
| <h1>Register POJOs</h1> |
| <img id="pojo1" src="images/code_simple_module.png" /> |
| <img id="pojo2" src="images/code_module_extension.png" /> |
| </div> |
| |
| <div id="write_modules" class="step slide" data-x="4000" data-y="1250" data-rotate="90"> |
| <h1>or write sophisticated modules</h1> |
| <ul class="center"> |
| <li>select methods/fields to export</li> |
| <li>have optional parameters</li> |
| <li>provide method aliases</li> |
| <li>deprecate methods</li> |
| </ul> |
| <a class="centerbottom" href="http://codeandme.blogspot.co.at/2014/10/writing-modules-for-ease.html">Read the |
| detailed tutorial</a> |
| </div> |
| |
| <div id="module_docs" class="step slide" data-x="5000" data-y="-625" data-rotate="90"> |
| <h1>Consistent documentation</h1> |
| <img class="center" src="images/scrn_online_help.png" /> |
| </div> |
| |
| <div id="module_docs_build" class="step slide" data-x="5000" data-y="625" data-rotate="90"> |
| <h1>created @ build time</h1> |
| <img class="center code" src="images/code_build_module_docs.png" /> |
| </div> |
| |
| <div id="launch_config" class="step slide background" data-x="1500" data-y="1200" data-rotate="135"> |
| <h1>Launch support</h1> |
| <img class="center" src="images/scrn_launch_configuration.png" /> |
| </div> |
| |
| <div id="debug_config" class="step slide" data-x="2200" data-y="1900" data-rotate="135"> |
| <h1>Integrated debugger</h1> |
| <img class="center" src="images/scrn_debugging.png" /> |
| </div> |
| |
| <div id="script_libraries" class="step slide background" data-x="0" data-y="1500" data-rotate="180"> |
| <h1>Create script libraries</h1> |
| <img class="left" src="images/scrn_script_explorer.png" /> |
| <ul class="right"> |
| <li>record shell scripts</li> |
| <li>load from known location</li> |
| <li>customize display structure</li> |
| <li>modify scripts</li> |
| <li>execute scripts</li> |
| </ul> |
| </div> |
| |
| <div id="script_repositories" class="step slide" data-x="0" data-y="2500" data-rotate="180"> |
| <h1>Share with colleagues</h1> |
| <img class="center" src="images/scrn_script_locations.png" /> |
| <p class="bottomright">... or the world</p> |
| </div> |
| |
| <div id="script_ui_integration" class="step slide" data-x="0" data-y="3500" data-rotate="180"> |
| <h1>Enhance your UI</h1> |
| <div id="toolbar"> |
| <img src="images/scrn_script_ui_toolbar.png" /> |
| <p>... toolbars</p> |
| </div> |
| <div id="menu"> |
| <img src="images/scrn_script_ui_menu.png" /> |
| <p>... view menus</p> |
| </div> |
| <div id="context"> |
| <img src="images/scrn_script_ui_context.png" /> |
| <p>... context menus</p> |
| </div> |
| <a class="bottomright" href="http://codeandme.blogspot.co.at/2014/12/ease-scripts-conquer-ui.html">Read the |
| detailed tutorial</a> |
| </div> |
| |
| <div id="charts" class="step slide background" data-x="-1500" data-y="1200" data-rotate="225" > |
| <p>Live charts</p> |
| <img src="images/code_charts.png" /> <img src="images/scrn_simple_chart.png" /> <img |
| src="images/scrn_advanced_chart.png" /> <a |
| href="http://codeandme.blogspot.co.at/2015/04/live-charting-with-ease.html">Read the |
| detailed tutorial</a> |
| </div> |
| |
| <div id="unit_tests" class="step slide background" data-x="-2000" data-y="0" data-rotate="270" > |
| <h1>Scripted unit testing</h1> |
| <img class="left" src="images/scrn_unit_testing.png" /> |
| <ul class="right"> |
| <li>UI support</li> |
| <li>Error markers in files</li> |
| <li>Reporting</li> |
| <li>integrates with Hudson/Jenkins</li> |
| </ul> |
| <a class="bottomright" href="http://codeandme.blogspot.co.at/2015/05/unit-testing-with-scripts-in-ease.html">Read |
| the detailed tutorial</a> |
| </div> |
| |
| <div id="java_code" class="step slide background" data-x="-1500" data-y="-1200" data-rotate="315"> |
| <h1>Interact with Java source</h1> |
| <img class="center" src="images/code_invoke_java.png" /> |
| </div> |
| |
| <div id="java_load" class="step slide" data-x="-2200" data-y="-1900" data-rotate="315"> |
| <h1>... load classes from workspace</h1> |
| <img class="center" src="images/scrn_compile_class.png" /> |
| </div> |
| |
| <div id="java_invoke" class="step slide" data-x="-2900" data-y="-2600" data-rotate="315"> |
| <h1>INVOKE !</h1> |
| <img class="center" src="images/scrn_invoke_java.png" /> |
| <img id="java_result" src="images/scrn_invoke_result.png" /> |
| <p class="bottomright">... and we do not launch a new JRE.</p> |
| </div> |
| |
| <div id="engine_integration" class="step slide" data-x="-3000" data-y="-4000" > |
| <h1>Supported engines</h1> |
| <table class="center"> |
| <tr> |
| <th class="rotate"></th> |
| <th class="rotate"><div><span>Launch</span></div></th> |
| <th class="rotate"><div><span>Shell</span></div></th> |
| <th class="rotate"><div><span>Modules</span></div></th> |
| <th class="rotate"><div><span>Scripts</span></div></th> |
| <th class="rotate"><div><span>Unit Test</span></div></th> |
| <th class="rotate"><div><span>Debug</span></div></th> |
| </tr> |
| <tr> |
| <td>Rhino</td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| </tr> |
| <tr> |
| <td>Nashorn</td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| </tr> |
| <tr> |
| <td>Jython</td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| </tr> |
| <tr> |
| <td>Groovy</td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| </tr> |
| <tr> |
| <td>JRuby</td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| </tr> |
| <tr> |
| <td>JVM</td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| <td><img src="images/not_supported.png" width="20" alt="ok"/></td> |
| </tr> |
| </table> |
| </div> |
| |
| |
| |
| <div id="conclusion" class="step slide" data-x="10000" data-y="8000" data-scale="40"> |
| <div>That's why</div> |
| </div> |
| |
| <div id="get_in_touch" class="step slide" data-x="80000" data-y="8000" data-scale="40"> |
| <h1>Get in touch</h1> |
| <p id="link1" class="center"><a href="https://eclipse.org/ease">eclipse.org/ease</a></p> |
| <p id="link2" class="center"><a href="https://codeandme.blogspot.com">codeandme.blogspot.com</a></p> |
| </div> |
| |
| <div id="evaluation" class="step slide" data-x="170000" data-y="8000" data-scale="40"> |
| <img class="center" src="images/evaluation.png" /> |
| </div> |
| |
| </div> |
| |
| <!-- |
| |
| Hint is not related to impress.js in any way. |
| |
| But it can show you how to use impress.js features in creative way. |
| |
| When the presentation step is shown (selected) its element gets the class of "active" and the body element |
| gets the class based on active step id `impress-on-ID` (where ID is the step's id)... It may not be |
| so clear because of all these "ids" in previous sentence, so for example when the first step (the one with |
| the id of `bored`) is active, body element gets a class of `impress-on-bored`. |
| |
| This class is used by this hint below. Check CSS file to see how it's shown with delayed CSS animation when |
| the first step of presentation is visible for a couple of seconds. |
| |
| ... |
| |
| And when it comes to this piece of JavaScript below ... kids, don't do this at home ;) |
| It's just a quick and dirty workaround to get different hint text for touch devices. |
| In a real world it should be at least placed in separate JS file ... and the touch content should be |
| probably just hidden somewhere in HTML - not hard-coded in the script. |
| |
| Just sayin' ;) |
| |
| --> |
| <div class="hint"> |
| <p>Use a spacebar or arrow keys to navigate</p> |
| </div> |
| <script> |
| if ("ontouchstart" in document.documentElement) { |
| document.querySelector(".hint").innerHTML = "<p>Tap on the left or right to navigate</p>"; |
| } |
| </script> |
| |
| <script src="http://impress.github.io/impress.js/js/impress.js"></script> |
| <script> |
| impress().init(); |
| </script> |
| </body> |
| </html> |