Talks

Keynotes

The IoT market is poised to an exponential growth, but there are still lots of barriers that prevent building a real, open, Internet of Things. Over the last years, Eclipse has been growing an ecosystem of open-source projects for IoT that are used in real-world solutions, from smart gateways bridging sensors to the cloud, to device management infrastructures or home automation systems.

Java is a key-enabler for IoT, and this talk will provide you with concrete examples on how to build end-to-end solutions with the Eclipse IoT Java stack and projects like Paho, Kura, SmartHome, Californium, OM2M, Eclipse SCADA, Concierge…

Durch Netz und Automation verliert jeder Beruf “seinen einfachen Teil”. Menschen, deren Arbeit ganz durch Computer diktiert wird, werden nur schlecht bezahlt, allen anderen bleibt nur noch das Schwierige: Verhandeln, Antreiben, Managen, Verkaufen, Kreieren, Performen. Dazu ist bei fast allen Menschen ein Upgrade fällig!

Talks

Solving production issues in live applications is always a challenge. Operational tracking is a powerful tool to overcome these difficulties.

It is a common scenario to have no access to the production environment and in some cases the application is running in a secluded network. Current cloud-based monitoring and analytic solutions might fall out of the game by not conforming to the systems of clients or by providing less detailed information than required. Producing useful log statements in your application is the best scenario you might have at your disposal.

Ghostwriter provides a remedy for these issues. With only a recompilation, your application will be instrumented with tracking capabilities that provide a way to react to various events, such as method invocations, state changes or even unhandled exceptions. Handling the events may vary from sending statements to logging frameworks to storing the information in a cloud environment. How Ghostwriter solves this is either transparent or under your control.

During the presentation we’ll talk about:
- leveraging compile time annotation processing (JSR-269) to provide automated instrumentation,
- the applied patterns and experiences with reactive programming,
- application of Hadoop ecosystem for storing and analysis of detailed tracking, with the focus on the issues faced.

To present an overview of the usage of Ghostwriter, we’ll show how Ghostwriter is bootstrapped with Ghostwriter. This allows us to track the steps that meta programming produces through the cloud, using a user interface.

http://youtu.be/eNanj3DWJU4

Squirro provides advanced analytics for unstructured data, for example Email, documents, PDFs, social media and news feeds in real-time.

Gartner calls the space we operate in “Search-Based Data Discovery” in lack of a better term that big data, and especially unstructured (i.e. textual) Big Data requires entirely novel ways to access, process and visualize the data at hand.

Key to the solution is our Concept Search technology, which intelligently connects seemingly unrelated data points.

Our road – today we serve clients in Switzerland, Germany, the UK, USA and even as far as Columbia – has not been a straight road to success. Rather the opposite.

Everyone agrees that a sea of data amounting today to 5 Zettabytes (Equals five sextillion bytes) is as big an opportunity as a threat.

The talk will share our story from the early beginnings to today an 10 things we learned the hard way building a Big Data business including pitfalls and unexpected successes.

Open API represent the leading edge of a new business model, providing innovative ways for companies to expand brand value and routes to market, and create new value chains for intellectual property. In the past, SOA strategies mostly targeted internal users. Open APIs target mostly external partners.

This session introduces the concepts of Open API, its challenges and opportunities. API Management will become important in many areas, no matter if business-to-business (B2B) or business-to-customer (B2C) communication. Several real world use cases will discuss how to gain leverage due to API Management.

The end of the session shows and compares API management products from different vendors.

Appium: Mobile Automation Made Awesome

Jonathan Lipps, Matthias Junker

The tools and practices refined over the last decade by web developers have not crossed over easily into the mobile community. Mobile devs have been without tools like continuous integration and automated testing, which enable delivery of high-quality apps more rapidly. A key piece of the solution for mobile is Appium, an open-source, cross-platform, language-agnostic mobile automation framework you can use to write automated UI tests for Android and iOS apps (native, hybrid, web), to be run on emulators or devices.

In this talk we will explore the philosophy that underlies the work behind Appium, including the open-source nature of Appium’s diverse, active and friendly community. Then, after a brief explanation of the technology that powers Appium, we’ll move into the technical portion of the talk, where attendees will see easy it is to write Appium scripts using the WebDriver protocol in their favorite language, and integrate Appium tests into a CI system using Selenium Grid or Sauce Labs.

Finally, we’ll look at some concrete examples of how Appium has been used in a large project with 20 Android Apps at Swiss Post to dramatically improve mobile QA. Ultimately, the talk provides an argument for moving from manual QA to automated testing, an understanding of the mobile automation landscape, and a solid introduction to Appium, which leading projects and companies around the world have chosen as their mobile automation framework of choice.

How can you survive a project that uses JavaScript massively on both the client and the server using node.js? The project is a set of on-line development components, such as the TypeScript playground or Visual Studio Online “Monaco”, which enables users to edit Azure web sites online. We started with JavaScript and we incrementally adopted TypeScript, reaching today more than 200k lines of TypeScript in production, and becoming one of the largest TypeScript code bases inside Microsoft. In this talk I will give a quick introduction into TypeScript and then take a deep look at how TypeScript and other technologies were used to successfully scale up a large JavaScript project that ships in some of Microsoft’s biggest products and services.
Discover SAP HANA’s advanced capabilities, such as text mining, geo-spatial processing, predictive analytics and learn how to use them to program consumer-grade and industry apps for today’s always-on, mobile, and data-driven world. Moreover, explore how to quickly build, deploy and run cloud and hybrid HANA based apps on a scalable Platform as a Service, including Database- and Application Services.
So you get DevOps. You like the idea and think it’s important. The trouble is others in your team don’t.

This talk will help you understand how to convince your team of the benefits of DevOps. Packed with facts and figures this session will work through the common challenges that teams face when moving to a DevOps mode and outline how to address them.

See real examples of the benefits that result from using DevOps and Cloud technologies to create and deliver software solutions and hear about how those who are using DevOps successfully are benefiting.

This talk will show you how to balance evangelism against pragmatism when championing DevOps in your organisation. You’ll learn how others have made the transition to DevOps and understand what mistakes to avoid when doing so.

Whether you need to know how to be a DevOps evangelist or simply want to understand why DevOps is important – this talk is for you

Visualization and interactive exploration of large amounts of data has always been challenging. In order to ensure scalability, acceptable reaction times and support for multiple devices, developers usually need to think quite a bit about efficient processing, rendering and brushing such data.

In this session we will have a look at some of the most popular open source frameworks for data visualization – D3.js, crossfilter and dc.js. Attendees will learn from real world data what challenges they may run into, and how these frameworks can be used to build scalable, interactive visualizations for dimensional data that based on HTML5 and JavaScript.

A GUI application uses an event thread for the UI and worker threads for computation. If a worker thread modifies a UI object, the application crashes! Accessing the UI from a worker thread is one of the three most common errors in GUIs.

This talk will explain why this happens and what you can do about it. We will present an approach to reasoning about threading, based on an effect system that estimates side effects (like a type system estimates values).

We will demo a new open-source tool that implements a GUI effect system in an unobtrusive way. This tool runs at compile time and guarantees the absence of these errors. It requires only a small number of annotations that mirror the documentation that programmers already write.

SQL is a powerful and highly expressive language for queries against relational databases. SQL is established, standardised and hardly challenged by alternative querying languages. Nonetheless, in the Java ecosystem, there had been few relevant steps forward since JDBC to better integrate SQL into Java. All attention was given to object-relational mapping and language abstractions on a higher level, such as OQL, HQL, JPQL, CriteriaQuery. In the meantime, these abstractions have become almost as complex as SQL itself, regardless of the headaches they’re giving to DBAs who can no longer patch the generated SQL.

jOOQ is a dual-licensed Open Source product filling this gap. It implements SQL itself as an internal domain-specific language in Java, allowing for the typesafe construction and execution of SQL statements of arbitrary complexity. This includes nested selects, derived tables, joins, semi-joins, anti-joins, self-joins, aliasing, as well as many vendor-specific extensions such as stored procedures, arrays, user-defined types, recursive SQL, grouping sets, pivot tables, window functions and many other OLAP features. jOOQ also includes a source code generator allowing you to compile queries in modern IDEs such as Eclipse very efficiently.

jOOQ is a good choice in a Java application where SQL and the specific relational database are important. It is an alternative when JPA / Hibernate abstract too much, JDBC too little. It shows, how a modern domain-specific language can greatly increase developer productivity, internalising SQL into Java.

Are you one of those that search Around the World looking for clues on how to get maven to do your bidding or do you just toss a coin and Get Lucky One More Time? Maven works OK but there’s a new tool in town that goes Beyond maven: Gradle. It’s Fresh, almost Aerodynamic. Once you get in Contact with it you’ll feel like Doin’ It Right when building a project. We kid you not, it’s an Instant Crush for those that have followed the maven path. This is The Prime Time of Your Life as a developer, make the most out of it by leveraging the best tools. Oh Yeah.
It’s hard to overstate how much has changed in the world since HTTP 1.1 went final in June of 1999. There were no smartphones, Google had not yet IPO’d, Java Swing was less than a year old… you get the idea. Yet for all that change, HTTP remains at version 1.1.

Change is finally coming. HTTP 2.0 should be complete by 2015, and with that comes the need for a new version of Servlet. It will embrace HTTP 2.0 and expose its key features to Java EE 8 applications. This session gives a peek into the progress of the Servlet spec and shares some ideas about how developers can take advantage of this exciting update to the world’s most successful application protocol on the world’s most popular programming language.

Come and see how Eclipse via the JBoss Tools team and their plugins have learned new tricks such as better JavaScript content assist and validation, Live reload of applications (no more refresh needed), Apache Cordova hybrid mobile apps development for ios and android, AngularJS with Ionic components and visual preview of html5 pages.

And all something that can be used together with OpenShift to deploy your business logic to the cloud.

All of this plus more I’ll cover plus outline how we have helped fix these issues in Eclipse and how we plan to continue improving this in the upcoming releases – hopefully with your help.

Design your own Domain Specific Languages and plug them into Java easily. Think of all the business rules, workflow definitions, structured configurations or handy language extensions that you could simplify your life with. Using purely open-source tools and without defining a parser or grammar.

JetBrains MPS gives you that and more – textual and graphical languages, non-parseable and tabular notations, tight integration with Java and full IDE assistance on top of it – the ability to edit, debug, refactor, test and analyze your DSL code right inside a Java IDE. If you’re thinking of trying something new, this session is for you.

Lambdas are the main feature introduced with Java 8 and very likely the most relevant language change since the advent of Java 20 years ago. Nevertheless the biggest part of Java developers are still not very familliar with the most common functional idioms and patterns and then aren’t able to effectively leverage the new functional capabilities of the language. The purpose of this talk is presenting with practical examples concepts like high-order functions, currying, functions composition, persistent data structures, lazy evaluation, recursion and trampolines showing how to implement them in Java and how thinking functionally can help us to design and develop more readable, reusable, performant, parallelizable and in a word better, code.

The vast majority of software code on Windows these days is developed in .NET and C#. The tools and languages provided by Microsoft are unmatched in terms of productivity to create all kinds of applications, from very rich desktop suites (with WPF) to small fluid native mobile apps (with Windows Phone). The learning curve is facilitated by the fact that you can reuse your skills, tools, language and even design on each platform.

The big sensation in the .NET world these days is Xamarin. This independent firm is allowing developers to use .NET to create fully native apps on iOS and Android. These are not hybrid apps, but are compiled to binaries that are fully indistinguishable from Objective C, respectively Java applications on these platforms. They use native UI elements and create a familiar experience for the user.

With an appropriate architecture, Xamarin allows reusing a large portion of business code and even view code across the platforms, but it does not compromise on the native look and feel. In this session, we will also talk about Xamarin Forms, an extension of the framework allowing to even share UI code for simple apps like line of business or prototypes.

Laurent Bugnion is a very experienced speaker, .NET developer since 2001, working for one of the leading firms in Windows, XAML and C# development. He is also the author of the popular MVVM Light Toolkit, an open source library for Windows and Xamarin. He is very excited about showing how best practices can be used to build cross platform native apps and provide the best possible experience to your users.

Compared to the text editors of former times, modern IDEs are very good at telling the developer what _can_ be done. However, they still lack the ability to tell the developer what _should_ be done. For instance, you certainly curse your IDE, whenever it offers you hundreds of code completion proposals for statements like “List l = new …” where it’s clear to human that it should only propose new ArrayList() or new LinkedList() in 99% of the time.

How would you feel about an IDE that does exactly that: Recommending you only those proposals that are most likely for your task at hand. Imagine how much time you could save not browsing the API documentation to learn which methods to override or call, because you IDE would just tell you what others have done before? Or how much time did you spent on Google searching for code snippets showcasing how to use a framework’s class – and how much time would you have saved if your IDE could provide you these snippets in an arm’s length?

If that sounds unrealistic to you, then this talk is for you. In this session I’ll introduce you to Eclipse Code Recommenders and Codetrails Connect, a set of software development tools that leverage the wisdom of the software engineering crowd to find common patterns in code and how developers use their IDEs and reintegrate that gained knowledge back into your IDE in form of intelligent code completions, mined API documentation, crowdsourced code snippets and much more.

We will show you how 33 million code completion events, shared by thousands of software developers world-wide, create the probably smartest development environment of the world. Welcome to the Java Wonderland…

One VM to Rule Them All

Thomas Wuerthinger

Running a multitude of programming languages is a common requirement for large scale applications. It derives from the variety aspect of big data. This talk presents a virtual machine architecture that allows to handle different programming languages and their interoperability while not sacrificing performance. It bases on partial evaluation of AST interpreters to automatically derive compiled code. A prototype of this architecture has been developed as part of the Graal OpenJDK project (http://openjdk.java.net/projects/graal/) as well as the TruffleRuby, ZipPy, and FastR open source projects. The talk will be about the general principles behind our VM, special aspects of the Ruby, Python, and R implementations, and how the language interoperability works efficiently.
Webapplications have gotten more and more interactive and fast responding. Single Page Application as architecture style has come up – with AnguarJS a framework has gotten popular to build SPAs. But it Javascript and AngularJS really ready for the old economy? In this talk I will speak about our experience at Robert Bosch using the frameworks and the technology ecosystem around. It is about technology, necessary architecture decisions, usable and missing concepts of the framework, influences on organization and more. It is possible to create modern and bigger webapplications with AngularJS!
Nowadays most web users have several user accounts. Thanks to OAuth 2.0 this is no longer necessary, since it allows for the delegation of rights and single sign-on scenarios in conjunction with OpenId Connect. In this session you will learn how to use this popular protocol – which is also supported by major players such as Google, Twitter and Facebook in JavaScript projects – whilst discovering for which scenarios it was designed and for which it is used nowadays, why authentication scenarios with OAuth 2.0 can be critical, and how OpenId Connect helps in such situations.
New IoT gadgets are hitting the market every single day so we can easily state that the Internet of Things has already revolutionised the Smart Home before it has even had any significant adoption.

Unfortunately most of them only connect to their own proprietary backend, they usually do not interact with each other. But what if you need an action on one device to be triggered by a status change of an other device? Overarching automation logic is hardly possible in those setups – this is not really smart.

The Eclipse SmartHome project seeks to overcome the challenges of interoperability and introduces a highly flexible architecture perfectly tailored to the needs of developers. This talk gives an overview of the things that are relevant in a Smart Home and shows how Eclipse SmartHome allows the creation of a personal Intranet of Things. Be prepared to see geeky hardware in the live demo of this session!

Spring Framework 4.1 is the latest release of the popular open source application framework for Java developers with continued innovation for Java SE 8 and enterprise Java. In this presentation core Spring committer Sam Brannen will provide attendees an overview of the new enterprise features in the framework as well as new programming models and testing features.

Specifically, this talk will cover support for annotation-driven JMS listeners, JMS 2.0′s shared subscriptions, JCache (JSR-107) annotations, a compiler mode for the Spring Expression Language (SpEL), flexible resolution and transformation of static web resources, and Web MVC support for Groovy markup templates.

The presentation also provides an overview of Spring 4.1′s refinements in other areas, for example: Java 8′s Optional type for injection points, declarative MVC view resolution, Jackson’s JsonView, WebSocket scope, SockJS client support, declarative SQL scripts and programmatic transactions in the TestContext framework, integration testing with Groovy scripts, and more.

I used to explain my job as a developer as being 80% grunt work and overhead of the language and frameworks and 20% of actual development and bringing value. What if there were tools that could reduce that overhead, allowing us to concentrate on writing awesome code? In this talk, we’ll see how we can be more productive building our web applications. We’ll see how we can make our code better and how we can understand and navigate through it easier. We’ll be using WebStorm to write, run and debug our code. We’ll look at Bower and npm, version control systems, GitHub and more. Affraid of tools? This talk will make you appreciate them!
Real-time systems always have an interesting architectures, and Wemlin Hub is no exception.

In this talk we will examine this particular architecture of a sub-system of Netcetera’s Wemlin portfolio, a conduit responsible for gathering real-time passenger information data from transport authorities enriching it and consequently delivering them to people’s phones as fast as possible. A data hub for real-time passenger information, in short, which we call Wemlin Hub.

The inspection of the broader context in which this sub-system operates in will uncover the key requirements on the basis of which the architectural decisions were being made. The carefully crafted restrictions and constraints eventually lead to greater freedom of change and recomposition in areas where this freedom is traditionally hard to win. We will see how this architecture allows us low cost zero-downtime system updates; graceful recovery from dependent on external system failures; horizontal and vertical scaling and most importantly, non-stop operation at low costs.

Using a DI framework/container may seem obvious, especially in web development. But *why* do you really need one? After all, “dependency injection” is just a fancy name for passing arguments to a constructor.

In the *live-coding-only* talk (no slides!) we’ll walk through some of the features of DI containers and see if we can replace (and improve!) them with pure, type-safe Scala code. We’ll start with “manual” DI, followed by using MacWire to generate the wiring code for us. This is an approach similar to Dagger; with one simple `wire[]` macro, we can save a lot of typing and still use only Scala language features for creating the object graph at runtime.

Having solved the basic problem, we’ll proceed other features of DI containers and web frameworks: scopes and interceptors. We’ll see how to implement an interceptor, and that it’s far easier than it may seem.

Finally, we’ll see what is a *“Thin Cake Pattern”*, and how to use traits to create and compose modules (similar to the module concept known from Guice, but better).

Todays IT based critical infrastructures are prone to failures either due to SW insufficiencies and unnecessary complexity, misconfigurations or attacks. Due to the fact that our present life is supported by such SW driven building blocks the physical world, such as telecom, energy and traffic, inherits and amplifies their deficiencies. Moreover, the violation of “Keep It Simple Stupid” (KISS) engineering and the shift of the product ripening process to the customer, the “banana principle”, worsens the situation considerably. Thus, the process of finding the origin of a failure becomes increasingly cumbersome and apparently impossible when IP content is not accessible, either due to encryption efforts or legal requirements. Hence, a new type of troubleshooting mind and tool set is required for the practitioner.

The talk starts with a summary of reasons why we ended in the present calamity, being actually ignored by industry for more than 10 years. After a brief description of the hands-on troubleshooting job on IP data, the underlying theory of “Traffic Mining” (TM) will be motivated by practical examples from encrypted IP traffic analysis. The talk concludes with the dangers of transferring necessary thought processes in TM to Artificial Intelligence. 20 minutes are not enough to cover the whole topic, so the talk can be seen as an appetizer for the TM Tranalyzer workshop on the following day.

The recent paradigm shift towards continuous delivery in enterprise environments calls for automatic installation and configuration of the systems. Manual installation has become a bottleneck within the IT development cycle. In addition, automation helps you reduce error rate and lead time.

There are several tools dedicated to automated installation and configuration. In this talk we focus on Ansible to confront the bottleneck in the working process.

We give a short introduction, discuss the goal of unified deployment in the continuous delivery environment and show how Ansible is employed in two different Linux environments.

Experience in software development, deployment processes and continuous delivery concepts are appreciated.

Workshops

Appium Workshop

Jonathan Lipps, Matthias Junker

Appium as an open-source, cross-platform and multi-language mobile automation framework. In this workshop we’ll focus on using Appium to write a series of functional tests for an iOS and an Android app. Beginning with a gentle introduction to Appium concepts, participants will learn about the WebDriver protocol and the mobile-specific extensions Appium has added to make automating mobile apps more effective. We’ll discuss the various library methods that are available for the workshop language (Java) and strategies for writing robust tests. Finally, we’ll employ these newly-learned skills by running our tests on iOS simulators and Android emulators hosted in the Sauce Labs test cloud.
Adoption in using Cloud-based platforms for building, managing and running apps of all types (web, mobile, big data, new smart devices etc) is rising steeply but just how easy is it to use? Come along and watch live demonstrations as we show how to create, deploy and execute simple but powerful Cloud Foundry based services.

See how easy it is to create a scalable Java application that uses MongoDB, host a Play 2.0 solution or even deploy a php app. We’ll even show how you can create a Node.js application that will send text messages to your phone without writing any code and with just your browser.

Gain some of the practical knowledge you’ll need to help you understand the value of using PaaS based solutions in the future and learn how easy it is to develop and deploy an application to the Cloud!

This session will consist of practical demonstrations followed by a hands-on section for those that want to try out PaaS.

Prereqs for the hands-on section:

1 – a laptop with wifi connectivity

2 – Cloud Foundry command line tools installed see https://github.com/cloudfoundry/cli/releases/latest

3 – An account on a Cloud Foundry based PaaS. (The demonstrations will be using IBM’s BlueMix https://ace.ng.bluemix.net but are applicable to any Cloud Foundry based offering)

This workshop will give you the opportunity to learn about iBeacons in an interactive, hands-on and fun way. iBeacon technology has frequently been in the news recently and can be used for a variety of applications, including indoor navigation and mobile payments. In the workshop, you’ll learn the basics of the technology and then get to build your own solution on a Rasberry Pi. Further components involved in your system will be the actual iBeacons and your mobile phone.

You’ll need very basic coding skills for this workshop, and please bring along a laptop (running any operating system) and a mobile phone running an up-to-date version of Android or iOS. Everything else, including Raspberry Pis and iBeacons, will be provided.

Fail fast to succeed slowly – hands on UX workshop

Adrian Heydecker, Marcel Kessler, Franco Ehrat, Bastiaan van Rooden

This workshop is an introduction to User Experience for anyone. Instead of a lot of theory, you will experience the UX process hands-on and learn from this experience.

In 3 groups, we will go through the stages of User-Centered Product Development. The stages are:
- Innovation: What is it about?
- Consolidation: What is the core workflow of the idea?
- Testing: Is the idea working?

The focus is on “build the right it before building it right” by “failing fast” and understanding that technical feasibility is not sufficient for a successful product.

The workshop is presented by the SwissICT Expert Group User Experience (http://www.swissict.ch/expertenwissen/fachgruppen/user-experience/)

The workshop is literally defined by the title, using your brain and Tranalyzer you will do a hands on job of an analyst trying to find anomalies in real IP traffic. You might get stuck in a foxhole and have to learn how to dig yourself out. Nothing is like it initially seems, or maybe it is.

It is adressed to everybody who is willing to learn a bit more detail about IP traffic and the way of flow based TM. A linux laptop and working knowledge of command line bash is required, rudimentary knowledge of AWK and gnuplot is nice to have.

For the fellows who like to play with the beast before the workshop:

Download the opensource version Tranalyzer2-0.5.8 from http://sourceforge.net/projects/tranalyzer/ and extract it. The doc is under ~/tranalyzer2/trunk/doc.

Have tcpdump or wireshark, less, GAWK and gnuplot installed. graphviz might be useful too: http://www.graphviz.org/

Content:
- Short introduction to the most important IP protocols and header features
- Exercise: Tell me everything about THIS packet
- Introduction to Tranalyzer
- Philosophy, configuration and compilation ops
- Most important plugins including config constants
- Flows and global reports
- How to write your own plugin in C
- Handson exercises in groups or alone on several PCAPs

I’ll supply data on a memory stick.

Using the free developer account of the SAP HANA Cloud Platform, you will explore the typical steps of programming a native SAP HANA application.

Having setup the development environment on your laptop, we will jump into the features of the platform and learn how to use them for building amazing apps powered by SAP HANA. We will cover the basics of laying out a data-model, touch SAP HANA features such as analyzing unstructured data and learn how to build beautiful UIs using SAPUI5.

Please remember to bring your laptop to this 3.5 hours hands-on enablement session .