diff --git a/presentations/EclipseCon Europe 2015/.project b/presentations/EclipseCon Europe 2015/.project
new file mode 100644
index 0000000..ab3c1d5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>EclipseCon Europe 2015</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.png
new file mode 100644
index 0000000..658d126
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.png
new file mode 100644
index 0000000..12c63e2
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.png
new file mode 100644
index 0000000..07087d5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.png
new file mode 100644
index 0000000..70643f2
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.png
new file mode 100644
index 0000000..6119987
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.png
new file mode 100644
index 0000000..6ec0fbf
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.png
new file mode 100644
index 0000000..7c6483e
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png
new file mode 100644
index 0000000..7e5bbdc
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png
new file mode 100644
index 0000000..10bfac1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png
new file mode 100644
index 0000000..b069023
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.png
new file mode 100644
index 0000000..9ed9246
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png
new file mode 100644
index 0000000..dc6fde5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.png
new file mode 100644
index 0000000..aaeb908
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.png
new file mode 100644
index 0000000..ad6bfce
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.png
new file mode 100644
index 0000000..d767a0f
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.png
new file mode 100644
index 0000000..7795f1e
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.png
new file mode 100644
index 0000000..f095e08
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.png
new file mode 100644
index 0000000..9386e78
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.png
new file mode 100644
index 0000000..223a6e0
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.png
new file mode 100644
index 0000000..a267e54
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.png
new file mode 100644
index 0000000..8d2e6a1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.png
new file mode 100644
index 0000000..e7d4203
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.png
new file mode 100644
index 0000000..b640c78
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.png
new file mode 100644
index 0000000..d5c01d3
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.png
new file mode 100644
index 0000000..f534cc8
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.png
new file mode 100644
index 0000000..8a8fa48
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.png
new file mode 100644
index 0000000..7655bd9
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.png
new file mode 100644
index 0000000..7352c81
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.png
new file mode 100644
index 0000000..09dbbbf
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.png
new file mode 100644
index 0000000..c5d13b1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.png
new file mode 100644
index 0000000..f52aaad
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.png
new file mode 100644
index 0000000..be52ade
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.png
new file mode 100644
index 0000000..3d1e767
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.png
new file mode 100644
index 0000000..ab33efe
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.png
new file mode 100644
index 0000000..714e5a9
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.png
new file mode 100644
index 0000000..c8dbf16
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.png
new file mode 100644
index 0000000..50b56c3
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.png
new file mode 100644
index 0000000..bc79603
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.png
new file mode 100644
index 0000000..054e8d5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.png
new file mode 100644
index 0000000..3d13b38
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png
new file mode 100644
index 0000000..4e491ac
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/index.html b/presentations/EclipseCon Europe 2015/01 Slides/content/index.html
new file mode 100644
index 0000000..b1b4d63
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/index.html
@@ -0,0 +1,415 @@
+<!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>
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/style.css b/presentations/EclipseCon Europe 2015/01 Slides/content/style.css
new file mode 100644
index 0000000..22d53e1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/style.css
@@ -0,0 +1,783 @@
+/*
+    We start with a good ol' reset.
+    That's the one by Eric Meyer http://meyerweb.com/eric/tools/css/reset/
+
+    You can probably argue if it is needed here, or not, but for sure it
+    doesn't do any harm and gives us a fresh start.
+*/
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
+	blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn,
+	em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
+	b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
+	table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas,
+	details, embed, figure, figcaption, footer, header, hgroup, menu, nav,
+	output, ruby, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, footer, header, hgroup,
+	menu, nav, section {
+	display: block;
+}
+
+body {
+	line-height: 1;
+}
+
+ol, ul {
+	list-style: none;
+}
+
+blockquote, q {
+	quotes: none;
+}
+
+blockquote:before, blockquote:after, q:before, q:after {
+	content: '';
+	content: none;
+}
+
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+
+/*
+    Now here is when interesting things start to appear.
+
+    We set up <body> styles with default font and nice gradient in the background.
+    And yes, there is a lot of repetition there because of -prefixes but we don't
+    want to leave anybody behind.
+*/
+body {
+	font-family: 'PT Sans', sans-serif;
+	min-height: 740px;
+	background: rgb(215, 215, 215);
+	background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 500, from(rgb(240, 240,
+		240)), to(rgb(190, 190, 190)));
+	background: -webkit-radial-gradient(rgb(240, 240, 240),
+		rgb(190, 190, 190));
+	background: -moz-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+	background: -ms-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+	background: -o-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+	background: radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+}
+
+/*
+    ... and give links a nice look.
+*/
+a {
+	color: blue;
+	text-decoration: underline;
+	padding: 0 0.1em;
+	text-shadow: -1px -1px 2px rgba(100, 100, 100, 0.9);
+	border-radius: 0.2em;
+	-webkit-transition: 0.5s;
+	-moz-transition: 0.5s;
+	-ms-transition: 0.5s;
+	-o-transition: 0.5s;
+	transition: 0.5s;
+}
+
+a:hover, a:focus {
+	background: rgba(255, 255, 255, 1);
+	text-shadow: -1px -1px 2px rgba(100, 100, 100, 0.5);
+}
+
+/*
+    All of the content will be still fully accessible for them, but I want
+    them to know that they are missing something - that's what the demo is
+    about, isn't it?
+
+    And then we hide the message, when support is detected in the browser.
+*/
+.fallback-message {
+	font-family: sans-serif;
+	line-height: 1.3;
+	width: 780px;
+	padding: 10px 10px 0;
+	margin: 20px auto;
+	border: 1px solid #E4C652;
+	border-radius: 10px;
+	background: #EEDC94;
+}
+
+.fallback-message p {
+	margin-bottom: 10px;
+}
+
+.impress-supported .fallback-message {
+	display: none;
+}
+
+/*
+    Now let's style the presentation steps.
+
+    We start with basics to make sure it displays correctly in everywhere ...
+*/
+.step {
+	position: relative;
+	width: 900px;
+	padding: 40px;
+	margin: 20px auto;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	-ms-box-sizing: border-box;
+	-o-box-sizing: border-box;
+	box-sizing: border-box;
+	font-family: 'PT Serif', georgia, serif;
+	font-size: 48px;
+	line-height: 1.5;
+	
+	transition: background-color 1s ease-in; 	
+}
+
+.step.active {
+	background: rgb(232, 232, 202);
+	transition: background-color 1s ease-in;
+	
+	border: 1px solid rgba(82, 82, 52, .3);
+	border-radius: 10px;
+	box-shadow: 0 10px 30px rgba(0, 0, 0, .6);
+}
+
+.background {
+	background: rgb(232, 232, 202);
+}
+
+/*
+    ... and we enhance the styles for impress.js.
+
+    Basically we remove the margin and make inactive steps a little bit transparent.
+*/
+.impress-enabled .step {
+	margin: 0;
+}
+
+.impress-enabled .step * {
+	opacity: 0.4;	
+	-webkit-transition: opacity 1s;
+	-moz-transition: opacity 1s;
+	-ms-transition: opacity 1s;
+	-o-transition: opacity 1s;
+	transition: opacity 1s;
+}
+
+.impress-enabled .step.active * {
+	opacity: 1;
+	-webkit-transition: opacity 1s;
+	-moz-transition: opacity 1s;
+	-ms-transition: opacity 1s;
+	-o-transition: opacity 1s;
+	transition: opacity 1s;
+}
+
+/*
+    These 'slide' step styles were heavily inspired by HTML5 Slides:
+    http://html5slides.googlecode.com/svn/trunk/styles.css
+*/
+.slide {
+	display: block;
+	width: 900px;
+	height: 700px;
+	padding: 40px 60px;
+
+	color: rgb(102, 102, 102);
+	text-shadow: 0 2px 2px rgba(0, 0, 0, .1);
+	font-family: 'Open Sans', Arial, sans-serif;
+	font-size: 30px;
+	line-height: 36px;
+	letter-spacing: -1px;
+}
+
+/*
+    The last step is an overview.
+    There is no content in it, so we make sure it's not visible because we want
+    to be able to click on other steps.
+
+*/
+#overview {
+	display: none
+}
+
+/*
+    We also make other steps visible and give them a pointer cursor using the
+    `impress-on-` class.
+*/
+.impress-on-overview .step {
+	opacity: 1;
+	cursor: pointer;
+}
+
+/*
+    Now, when we have all the steps styled let's give users a hint how to navigate
+    around the presentation.
+
+    The best way to do this would be to use JavaScript, show a delayed hint for a
+    first time users, then hide it and store a status in cookie or localStorage...
+
+    But I wanted to have some CSS fun and avoid additional scripting...
+
+    Let me explain it first, so maybe the transition magic will be more readable
+    when you read the code.
+
+    First of all I wanted the hint to appear only when user is idle for a while.
+    You can't detect the 'idle' state in CSS, but I delayed a appearing of the
+    hint by 5s using transition-delay.
+
+    You also can't detect in CSS if the user is a first-time visitor, so I had to
+    make an assumption that I'll only show the hint on the first step. And when
+    the step is changed hide the hint, because I can assume that user already
+    knows how to navigate.
+
+    To summarize it - hint is shown when the user is on the first step for longer
+    than 5 seconds.
+
+    The other problem I had was caused by the fact that I wanted the hint to fade
+    in and out. It can be easily achieved by transitioning the opacity property.
+    But that also meant that the hint was always on the screen, even if totally
+    transparent. It covered part of the screen and you couldn't correctly clicked
+    through it.
+    Unfortunately you cannot transition between display `block` and `none` in pure
+    CSS, so I needed a way to not only fade out the hint but also move it out of
+    the screen.
+
+    I solved this problem by positioning the hint below the bottom of the screen
+    with CSS transform and moving it up to show it. But I also didn't want this move
+    to be visible. I wanted the hint only to fade in and out visually, so I delayed
+    the fade in transition, so it starts when the hint is already in its correct
+    position on the screen.
+
+    I know, it sounds complicated ... maybe it would be easier with the code?
+*/
+.hint {
+	/*
+        We hide the hint until presentation is started and from browsers not supporting
+        impress.js, as they will have a linear scrollable view ...
+    */
+	display: none;
+	/*
+        ... and give it some fixed position and nice styles.
+    */
+	position: fixed;
+	left: 0;
+	right: 0;
+	bottom: 200px;
+	background: rgba(0, 0, 0, 0.5);
+	color: #EEE;
+	text-align: center;
+	font-size: 50px;
+	padding: 20px;
+	z-index: 100;
+	/*
+        By default we don't want the hint to be visible, so we make it transparent ...
+    */
+	opacity: 0;
+	/*
+        ... and position it below the bottom of the screen (relative to it's fixed position)
+    */
+	-webkit-transform: translateY(400px);
+	-moz-transform: translateY(400px);
+	-ms-transform: translateY(400px);
+	-o-transform: translateY(400px);
+	transform: translateY(400px);
+	/*
+        Now let's imagine that the hint is visible and we want to fade it out and move out
+        of the screen.
+
+        So we define the transition on the opacity property with 1s duration and another
+        transition on transform property delayed by 1s so it will happen after the fade out
+        on opacity finished.
+
+        This way user will not see the hint moving down.
+    */
+	-webkit-transition: opacity 1s, -webkit-transform 0.5s 1s;
+	-moz-transition: opacity 1s, -moz-transform 0.5s 1s;
+	-ms-transition: opacity 1s, -ms-transform 0.5s 1s;
+	-o-transition: opacity 1s, -o-transform 0.5s 1s;
+	transition: opacity 1s, transform 0.5s 1s;
+}
+
+/*
+    Now we 'enable' the hint when presentation is initialized ...
+*/
+.impress-enabled .hint {
+	display: block
+}
+
+/*
+    There is one funny thing I just realized.
+
+    Thanks to this workaround above everything except #impress element is invisible
+    for click events. That means that the hint element is also not clickable.
+    So basically all of this transforms and delayed transitions trickery was probably
+    not needed at all...
+
+    But it was fun to learn about it, wasn't it?
+*/
+
+/*
+    And now we start to style each step separately.
+
+    I agree that this may be not the most efficient, object-oriented and
+    scalable way of styling, but most of steps have quite a custom look
+    and typography tricks here and there, so they had to be styled separately.
+
+    First is the title step with a big <h1> (no room for padding) and some
+    3D positioning along Z axis.
+*/
+
+/*
+	Slide: IDE Support (ide-support)
+
+	Display Eclipse & supported scripting IDEs
+*/
+
+.impress-on-ide-support .step #picture_eclipse,
+.impress-on-ide-support .step #picture_eclipse *,
+.impress-on-ide-support .step .ideSupport
+{
+	opacity: 1;
+}
+
+/*
+	Slide: Engine Support (engines)
+
+	Display Eclipse & supported script engines
+*/
+
+.impress-on-engines .step #picture_eclipse,
+.impress-on-engines .step #picture_eclipse *,
+.impress-on-engines .step .engine
+{
+	opacity: 1;
+}
+
+.impress-on-conclusion .step #title,
+.impress-on-conclusion .step #title *
+{
+	opacity: 1;
+}
+
+
+.top {
+	position: absolute;
+	top: 20px;
+}
+.bottom {
+	position: absolute;
+	bottom: 20px;
+}
+.left {
+	position: absolute;
+	left: 80px;
+
+	top: 55%;
+  	transform: translate(0%, -50%);
+}
+.right {
+	position: absolute;
+	right: 80px;
+	
+	top: 55%;
+  	transform: translate(0%, -50%);
+}
+
+.bottomright {
+	position: absolute;
+	right: 80px;
+	bottom: 50px;	
+}
+
+h1 {
+	font-size: 1.5em;
+	text-align: center;
+	color: #444466;
+	
+	padding-top: 50px;
+}
+
+
+div.code {
+	background-image: url("images/script.png");
+	background-repeat: no-repeat;
+	background-size: 32px 32px;
+	background-position: 10px 10px;
+	padding-left: 60px;
+}
+
+.code {
+	background: white;
+	border: 1px solid black;
+	border-radius: 5px;
+	padding: 5px 10px 5px 10px;
+}
+
+li {
+	margin-top: 10px;
+}
+
+.center {
+  position: fixed;
+  top: 55%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+.centerbottom {
+  position: fixed;
+  bottom: 50px;
+  left: 50%;
+  transform: translate(-50%, 0%);
+}
+
+th.rotate {
+  /* Something you can count on */
+  height: 70px;
+  white-space: nowrap;
+}
+
+th.rotate > div {
+  transform: 
+    /* Magic Numbers */
+    translate(10px, 20px)
+    /* 45 is really 360 - 45 */
+    rotate(300deg);
+  width: 50px;
+}
+
+th.rotate > div > span {
+  padding: 5px 10px;
+}
+
+table {
+	font-size: 0.6em;
+    border-collapse: collapse;
+}
+
+td {
+    border: 1px solid #ccc;
+    text-align: center;
+    vertical-align: bottom;
+}
+
+td {
+	padding: 5px 20px 5px 20px;
+}
+
+tr:nth-child(even) {
+	background: rgb(212, 212, 162);
+}
+
+img {
+	max-height: 450px;
+}
+
+ul {
+    list-style-image: url('images/bullet.png');
+}
+/*
+	Slide: 'Shell JRE access'
+*/
+#shell_jre #jre1 {
+	position: absolute;
+	top: 250px;
+	left: 100px;
+}
+
+#shell_jre #jre2 {
+	position: absolute;
+	top: 350px;
+	left: 200px;
+}
+#shell_jre #jre3 {
+	position: absolute;
+	top: 450px;
+	left: 300px;
+}
+
+#code_completion_help #coming_soon {
+	position: absolute;
+	top: 370px;
+	left: 650px;
+	transform: rotate(-5deg);
+}
+
+
+/*
+	Slide: 'Register POJOs'
+*/
+
+#pojo1 {
+	position: absolute;
+	top: 150px;
+	left: 40px;
+	width: 400px;
+}
+
+#pojo2 {
+	position: absolute;
+	top: 400px;
+	left: 250px;
+	width: 600px;
+}
+
+/*
+	Slide: 'Script UI integration'
+*/
+#script_ui_integration #toolbar {
+	position: absolute;
+	top: 150px;
+	left: 40px;
+}
+
+#script_ui_integration #menu {
+	position: absolute;
+	top: 320px;
+	left: 40px;
+}
+
+#script_ui_integration #context {
+	position: absolute;
+	top: 200px;
+	right: 40px;
+}
+
+
+/*
+	Slide: 'I love scripting'
+*/
+#title #i_love {
+	font-family: 'Marck Script', cursive;
+	font-size: 2.5em;
+	text-align: center;
+	color: #444466;
+	
+	padding-top: 200px;
+}
+
+#title #copyright {
+	font-size: 0.8em;
+}
+
+/*
+	Slide: 'Conclusion'
+*/
+#conclusion > div {
+	font-family: 'Marck Script', cursive;
+	font-size: 2em;
+	text-align: center;
+	color: #444466;
+	
+	padding-top: 200px;
+}
+
+
+/*
+	Slide: 'Invoke java'
+*/
+#java_invoke #java_result {
+	position: absolute;
+	top: 400px;
+	left: 600px;
+}
+
+/*
+	Slide: 'Get in touch'
+*/
+
+#get_in_touch #link1 {
+  transform: translate(-50%, -100px);
+}
+
+#get_in_touch #link2 {
+  transform: translate(-50%, 0px);
+}
+
+/*
+	Slide: 'The whole picture' (picture)
+
+	Display how EASE interacts with Eclipse, engines and java
+*/
+
+#picture_eclipse {
+	left: 280px;
+	top: 220px;
+
+	width: 340px;
+	height: 315px;
+
+	font-size: 48px;
+	
+	padding-top: 30px;
+}
+
+#picture_eclipse img {
+	margin-top: 70px;	
+	width: 40%;
+}
+
+#picture_jsdt {
+	left: 165px;
+	top: 220px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_pydev {
+	left: 165px;
+	top: 309px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_ggts {
+	left: 165px;
+	top: 397px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_rdt {
+	left: 165px;
+	top: 485px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_rhino {
+	left: 635px;
+	top: 220px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_jython {
+	left: 635px;
+	top: 309px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_groovy {
+	left: 635px;
+	top: 397px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_jruby {
+	left: 635px;
+	top: 485px;
+
+	width: 100px;
+	height: 80px;
+}
+
+#picture_java {
+	left: 20px;
+	top: 20px;
+
+	width: 860px;
+	height: 660px;
+
+	border: 1px solid #8C6C9C;
+	background: linear-gradient(to bottom, #FFFFEE, #FFFFCC);
+	color: #330066;
+	font-size: 20px;
+}
+
+#picture_java img {
+	width: 15%;
+	height: 15%;
+
+	margin-top: 550px;
+}
+
+#picture_ease {
+	left: 165px;
+	top: 120px;
+
+	width: 565px;
+	height: 80px;
+}
+
+#picture_script1 {
+	position: absolute;
+	left: 250px;
+	top: 40px;
+	width: 50px;
+		
+  transition: all 3s ease-in;
+}
+
+#picture_script2 {
+	position: absolute;
+	left: 350px;
+	top: 40px;
+	width: 50px;
+
+  transition: all 3.5s ease-in;
+}
+
+#picture_script3 {
+	position: absolute;
+	left: 450px;
+	top: 40px;
+	width: 50px;
+
+  transition: all 4s ease-in;
+}
+
+#picture_script4 {
+	position: absolute;
+	left: 550px;
+	top: 40px;
+	width: 50px;
+
+  transition: all 4.5s ease-in;
+}
+
+#picture_script5 {
+	position: absolute;
+	left: 650px;
+	top: 40px;
+	width: 50px;
+
+  transition: all 5s ease-in;
+}
+
+
+
+.blue {
+	color: blue;
+}
+
+.box {
+	display: block;
+	border-radius: 10px;
+	text-align: center;
+	position: absolute;
+}
+
+.eclipse {
+	border: 1px solid #8C6C9C;
+	background: linear-gradient(to bottom, #E1D5E7, #8C6C9C);
+	color: #330066;
+	font-size: 20px;
+}
+
+    
\ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/open slides.js b/presentations/EclipseCon Europe 2015/01 Slides/open slides.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/open slides.js
diff --git a/presentations/EclipseCon Europe 2015/02 Script Shell/01 Hello World.js b/presentations/EclipseCon Europe 2015/02 Script Shell/01 Hello World.js
new file mode 100644
index 0000000..f7ace93
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/02 Script Shell/01 Hello World.js
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:	Christian Pontesegger - initial API and implementation
+ * description: 	Hello World
+ *******************************************************************************/
+
+print("This is EclipseCon Euope 2015");
+print("-----------------------------");
+print();
+print("Thanks for being here to celebrate our 10th birthday!");
\ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/02 Script Shell/02 Java class access.js b/presentations/EclipseCon Europe 2015/02 Script Shell/02 Java class access.js
new file mode 100644
index 0000000..49828a7
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/02 Script Shell/02 Java class access.js
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:	Christian Pontesegger - initial API and implementation
+ * description: 	Access java classes
+ *******************************************************************************/
+
+// access classes from JRE
+new java.io.File("/");
+root = new java.io.File("/");
+root.exists();
+
+// access classes from eclipse
+org.eclipse.core.runtime.Platform;
+org.eclipse.core.runtime.Platform.getInstallLocation().getURL();
\ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/02 Script Shell/03 Create sample project.js b/presentations/EclipseCon Europe 2015/02 Script Shell/03 Create sample project.js
new file mode 100644
index 0000000..aefed08
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/02 Script Shell/03 Create sample project.js
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:	Christian Pontesegger - initial API and implementation
+ * description: 	Script to create a sample project, not meant for productive use
+ *******************************************************************************/
+
+var projectName = "EclipseCon 2015 Sample project";
+var files = [
+             ["Disclaimer.txt", "This is the disclaimer"], 
+             ["HowTo.txt", "TODO: write HowTo Content"], 
+             ["License.txt", "This project is licensed under the EPL."]
+            ];
+
+print("Creating sample project");
+
+// @type org.eclipse.core.resources.IWorkspaceRoot
+wsRoot = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+
+// @type org.eclipse.core.resources.IProject
+newProject = wsRoot.getProject(projectName);
+
+// create project
+if (!newProject.exists()) {
+	print("\tcreating project");
+	newProject.create(null);
+	newProject.open(null);
+} else
+	print("\tproject already exists");
+	
+
+// now create files
+for each (fileDescription in files) {
+	
+	// @type org.eclipse.core.resources.IFile
+	file = newProject.getFile(fileDescription[0]);
+	if (!file.exists()) {
+		print("\tcreating file " + fileDescription[0]);
+		fileInput = new java.io.ByteArrayInputStream(new java.lang.String(fileDescription[1]).getBytes());
+		file.create(fileInput, true, null);
+	} else
+		print("\tfile " + fileDescription[0] + " already exists");
+}
+
diff --git "a/presentations/EclipseCon Europe 2015/02 Script Shell/04 Create sample project \050using modules\051.js" "b/presentations/EclipseCon Europe 2015/02 Script Shell/04 Create sample project \050using modules\051.js"
new file mode 100644
index 0000000..da16e16
--- /dev/null
+++ "b/presentations/EclipseCon Europe 2015/02 Script Shell/04 Create sample project \050using modules\051.js"
@@ -0,0 +1,22 @@
+var files = [
+             ["Disclaimer.txt", "This is the disclaimer"], 
+             ["HowTo.txt", "TODO: write HowTo Content"], 
+             ["License.txt", "This project is licensed under the EPL."]
+            ];
+
+
+print("Creating sample project");
+
+loadModule('/System/Resources');
+loadModule('/System/UI');
+
+// create project
+projectName = showInputDialog("Please provide the name of the project to create", "EclipseCon 2015 Sample project", "Create Project");
+if (projectName != null) {
+	createProject(projectName);
+
+	// now create files
+	for each (fileDescription in files)
+		writeFile("workspace://" + projectName + "/" + fileDescription[0], fileDescription[1]);
+}
+
diff --git a/presentations/EclipseCon Europe 2015/03 External libraries/04 ASCII art.js b/presentations/EclipseCon Europe 2015/03 External libraries/04 ASCII art.js
new file mode 100644
index 0000000..f6fdcbe
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/03 External libraries/04 ASCII art.js
@@ -0,0 +1,25 @@
+var libraryURL = "http://central.maven.org/maven2/com/github/lalyos/jfiglet/0.0.7/jfiglet-0.0.7.jar";
+var libraryLocation = "project://03 External libraries/libs/jfiglet-0.0.7.jar";
+
+include("Helpers.js");
+
+// verify that external library is available
+loadModule('/System/Resources');
+if (!fileExists(libraryLocation)) {
+	downloadLibrary(libraryURL, libraryLocation);
+
+	if (!fileExists(libraryLocation)) {
+		printError("jfiglet library not available, please download from "
+				+ libraryURL);
+		exit();
+	}
+}
+
+// load external library
+loadJar(libraryLocation);
+// load directly from the web
+// loadJar(libraryURL);
+
+// draw ASCII art
+com.github.lalyos.jfiglet.FigletFont
+		.convertOneLine("I      love      scripting");
\ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/03 External libraries/Helpers.js b/presentations/EclipseCon Europe 2015/03 External libraries/Helpers.js
new file mode 100644
index 0000000..92f3c2b
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/03 External libraries/Helpers.js
@@ -0,0 +1,15 @@
+/**
+ * Download a binary file from the web.
+ * @param link URI to download from
+ * @param targetLocation workspace location to store the file to
+ */
+function downloadLibrary(link, targetLocation) {
+	target = getFile(targetLocation, false);
+	if (!target.exists()) {
+		input = new java.net.URL(link).openStream();
+		target.create(input, true, null);
+		input.close();
+
+	} else
+		printError("target library '" + targetLocation + "' already exists.");
+}
\ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/03 External libraries/libs/readme.txt b/presentations/EclipseCon Europe 2015/03 External libraries/libs/readme.txt
new file mode 100644
index 0000000..3031e8d
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/03 External libraries/libs/readme.txt
@@ -0,0 +1,3 @@
+This directory should host a file called 'jfiglet-0.0.7.jar'.
+If it is not available and the sample script cannot download the file, try to manually fetch it from
+http://central.maven.org/maven2/com/github/lalyos/jfiglet/0.0.7/jfiglet-0.0.7.jar
\ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/01 Current Time.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/01 Current Time.js
new file mode 100644
index 0000000..763c0f2
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/01 Current Time.js
@@ -0,0 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:	Christian Pontesegger - initial API and implementation
+ * description: 	Hello World
+ *******************************************************************************/
+
+var formatter = java.text.SimpleDateFormat("yyyy-MM-dd, HH:mm:ss")
+print(formatter.format(java.lang.System.currentTimeMillis()));
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/02 Title Clock.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/02 Title Clock.js
new file mode 100644
index 0000000..252680b
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/02 Title Clock.js
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:	Christian Pontesegger - initial API and implementation
+ * description: 	Hello World
+ * name:			Examples/Title Clock
+ *******************************************************************************/
+
+var formatter = java.text.SimpleDateFormat("yyyy-MM-dd, HH:mm:ss")
+time = formatter.format(java.lang.System.currentTimeMillis());
+
+// change application title
+loadModule('/System/UI');
+executeUI('getShell().setText("' + time + '")');
+
+// sleep 1s
+java.lang.Thread.sleep(1000);
+
+// restart script
+loadModule('/System/Scripting');
+fork("02 Title Clock.js");
\ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/06 Extract HTML anchors.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/06 Extract HTML anchors.js
new file mode 100644
index 0000000..6a57f03
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/06 Extract HTML anchors.js
@@ -0,0 +1,13 @@
+loadModule('/System/Resources');
+
+content = readStream(new java.net.URL("http://www.eclipse.org").openStream())
+
+// convert to JS string
+content = content + "";
+
+// find anchor tags
+anchors = content.match(/<a\s*href=".*?"\s*>/g);
+
+for each (anchor in anchors)
+	print(anchor);
+
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/Task start.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task start.js
new file mode 100644
index 0000000..973c1f0
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task start.js
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:	Christian Pontesegger - initial API and implementation
+ * description: 	Start a timer
+ * name:			Task/start
+ * toolbar:			Project Explorer
+ * image:			http://files.softicons.com/download/system-icons/crystal-project-icons-by-everaldo-coelho/png/16x16/actions/agt_start_here.png
+ *******************************************************************************/
+
+start = java.lang.System.currentTimeMillis();
+
+loadModule('/System/Scripting');
+setSharedObject("Task/start", start, true, true);
+
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/Task stop.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task stop.js
new file mode 100644
index 0000000..1fcf240
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task stop.js
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:	Christian Pontesegger - initial API and implementation
+ * description: 	Stop timer and display elapsed time
+ * name:			Task/stop
+ * toolbar:			Project Explorer
+ * image:			http://tdiv.free.fr/stop.png
+ *******************************************************************************/
+
+loadModule('/System/UI');
+loadModule('/System/Scripting');
+
+start = getSharedObject("Task/start");
+
+if (start != null) {
+	stop = java.lang.System.currentTimeMillis();
+	showInfoDialog("Your task took " + ((stop - start)/1000) + " seconds");
+	setSharedObject("Task/start", null, true, true);
+
+} else 
+	showInfoDialog("No active task available");
diff --git a/presentations/EclipseCon Europe 2015/06 Cool things/05 Charting.js b/presentations/EclipseCon Europe 2015/06 Cool things/05 Charting.js
new file mode 100644
index 0000000..ec38efa
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/06 Cool things/05 Charting.js
@@ -0,0 +1,31 @@
+loadModule('/Charting');
+loadModule('/System/Platform');
+
+var servers = ["localhost", "www.eclipse.org", "www.google.com", "www.adelaidecitycouncil.com"];
+
+figure("Ping Statistics");
+clear();
+setXLabel("Ping attempt")
+setYLabel("Time [ms]")
+
+for each (address in servers) {
+	series(address);
+	for (var count = 1; count < 20; count++) {
+
+		// run 'ping' command
+		process = runProcess("ping", [ "-c 1", address ]);
+		while (!process.isFinished())
+			;
+
+		// parse output
+		output = process.getOutput();
+		start = output.indexOf("time=");
+		if (start != -1) {
+			end = output.indexOf(" ms", start);
+			if (end != -1) {
+				time = parseFloat(output.substring(start + 5, end));
+				plotPoint(count, time);
+			}
+		}
+	}
+}
