<td>This demo will show a working prototype of a crowd-sourced code recommendation engine. The idea is that with every proposal you select in your code completion, you are sharing data that will make everyone’s code completion smarter. By hosting the engine in the cloud, we collect code completion data from an unlimited community of participating developers. The prototype also includes some basic statistical tools for individual users such as calculating how much time or how many keystrokes the code completion has saved the user.</td>

<td>This demo will show a working prototype of a crowd-sourced code recommendation engine. The idea is that with every proposal you select in your code completion, you are sharing data that will make everyone’s code completion smarter. By hosting the engine in the cloud, we collect code completion data from an unlimited community of participating developers. The prototype also includes some basic statistical tools for individual users such as calculating how much time or how many keystrokes the code completion has saved the user.</td>

<td>The [http://eclipse.org/gemini/ Gemini project] is all about modular implementations of Java EE technology. It is a collection of implementations of some of the OSGi Enterprise specifications. Each sub-project is a separate and standalone project that provides unique functionality. They can be used in isolation, in combination or with other OSGi bundles to compose a desired OSGi runtime.</td>

<td>The [http://eclipse.org/gemini/ Gemini project] is all about modular implementations of Java EE technology. It is a collection of implementations of some of the OSGi Enterprise specifications. Each sub-project is a separate and standalone project that provides unique functionality. They can be used in isolation, in combination or with other OSGi bundles to compose a desired OSGi runtime.</td>

<td valign="top">[http://c4j-team.github.io/C4J/ Contracts for Java (C4J)] is a Contracts framework for Java 1.6 and later. The primary goal for C4J is ease of use. Contracts are about design and quality, aspects of programming that a lot programmers don't spend enough time and energy on. Therefore a Contracts framework must be simple and painless to use. At the same time the framework must be powerful. C4J is simple and powerful. And the new [https://github.com/C4J-Team/C4J-Eclipse-Plugin C4J plugin for Eclipse] adds the power of C4J seamlessly to Java projects.</td>

<td valign="top">[http://c4j-team.github.io/C4J/ Contracts for Java (C4J)] is a Contracts framework for Java 1.6 and later. The primary goal for C4J is ease of use. Contracts are about design and quality, aspects of programming that a lot programmers don't spend enough time and energy on. Therefore a Contracts framework must be simple and painless to use. At the same time the framework must be powerful. C4J is simple and powerful. And the new [https://github.com/C4J-Team/C4J-Eclipse-Plugin C4J plugin for Eclipse] adds the power of C4J seamlessly to Java projects.</td>

<td>Mobile devices like smartphones and tablet computers became an integral part of our modern world and single-board computers like Raspberry Pi are cheaper today than at any time before. Simple and open Machine-to-Machine (M2M) protocols like MQTT enable these devices to communicate in an efficient manner, even in scenarios with unreliable und instable networks. This talk shows how Eclipse Paho - an Eclipse umbrella project for M2M protocols - can be utilized for professional and personal projects to build efficient and scalable solutions for (mobile) devices.</td>

<td>Mobile devices like smartphones and tablet computers became an integral part of our modern world and single-board computers like Raspberry Pi are cheaper today than at any time before. Simple and open Machine-to-Machine (M2M) protocols like MQTT enable these devices to communicate in an efficient manner, even in scenarios with unreliable und instable networks. This talk shows how Eclipse Paho - an Eclipse umbrella project for M2M protocols - can be utilized for professional and personal projects to build efficient and scalable solutions for (mobile) devices.</td>

<td valign="top">Currently available difference tools for models often report huge amounts of low-level model changes in an inconvenient way such that complex model changes are difficult to understand. A promising approach to overcome this problem is to tightly integrate model differencing with model editing. Edit operations have shown to form adequate building blocks for an easier understanding of complex model changes.

<td valign="top">Currently available difference tools for models often report huge amounts of low-level model changes in an inconvenient way such that complex model changes are difficult to understand. A promising approach to overcome this problem is to tightly integrate model differencing with model editing. Edit operations have shown to form adequate building blocks for an easier understanding of complex model changes.

<td>Performance tuning Java is as much an art as it is a science. Understanding the intrinsic performance characteristics of method calls, heap allocations, and casts is essential for developing efficient code at the micro level. Understanding the overall performance of applications as a whole is essential for developing efficient algorithms at the macro level. It's critically important in all cases to measure in several different ways and to double check that those measurements are consistent. It's also critical to beware of the JIT effect: many things get faster with repeated use, even to the point where some things are simply free. In this presentation I will share my experience with performance tuning EMF and EMF-based applications specifically; the insights gained have broad application.</td>

<td>Performance tuning Java is as much an art as it is a science. Understanding the intrinsic performance characteristics of method calls, heap allocations, and casts is essential for developing efficient code at the micro level. Understanding the overall performance of applications as a whole is essential for developing efficient algorithms at the macro level. It's critically important in all cases to measure in several different ways and to double check that those measurements are consistent. It's also critical to beware of the JIT effect: many things get faster with repeated use, even to the point where some things are simply free. In this presentation I will share my experience with performance tuning EMF and EMF-based applications specifically; the insights gained have broad application.</td>

This demo will show a working prototype of a crowd-sourced code recommendation engine. The idea is that with every proposal you select in your code completion, you are sharing data that will make everyone’s code completion smarter. By hosting the engine in the cloud, we collect code completion data from an unlimited community of participating developers. The prototype also includes some basic statistical tools for individual users such as calculating how much time or how many keystrokes the code completion has saved the user.

The Gemini project is all about modular implementations of Java EE technology. It is a collection of implementations of some of the OSGi Enterprise specifications. Each sub-project is a separate and standalone project that provides unique functionality. They can be used in isolation, in combination or with other OSGi bundles to compose a desired OSGi runtime.

Contracts for Java (C4J) is a Contracts framework for Java 1.6 and later. The primary goal for C4J is ease of use. Contracts are about design and quality, aspects of programming that a lot programmers don't spend enough time and energy on. Therefore a Contracts framework must be simple and painless to use. At the same time the framework must be powerful. C4J is simple and powerful. And the new C4J plugin for Eclipse adds the power of C4J seamlessly to Java projects.

Are you waiting for closures in Java 8 or hoping for more type inference in Java 9? Thinking about switching to Scala or even holding your horses for Ceylon or Kotlin?

How about keeping Java where it seems fit, but replacing just its outdated parts with a concise and modern language? What about an enhancement to Java instead of yet another attempt to hire a killer.

Xtend is an an open-source programming language hosted at Eclipse.org and built for Java developers. It reuses Java's keywords, terminology and concepts as much as possible, but abandons some dead freight at the same time. Xtend is a very powerful alternative for implementing Java classes and works great with all the existing libraries. Since the language can be seen as a little complementary add-on to Java, it offers many modern language features that you are currently missing in your daily work. Xtend comes with a variety of goodies reaching from type inference over closures and extension methods up to smart string interpolation that make development great fun, again. And of course there is powerful Eclipse IDE integration available.

18:25

Break

19:00

Components are not enough: Function oriented development for embedded systems.

Currently, the development processes for software in automotive are focused on the concept of "components".

However, due to the increasing complexity and interdependence, this approach is reaching its limits. Modern customer functions, like driving assistance, are distributed over a number of software components and ECUs. A component-oriented process does not provide a comprehensive view on a function.

OEMs see function-oriented processes as a solution to the challenge. Function orientation is an emerging strategic topic in automotive. However, in terms of methodology, tool support and organizational issues, the industry is only taking its first steps.

In the public sponsored research project "IMES" we are building an Eclipse-based toolchain for function-oriented development. Based on the open source project "EATOP", which provides a basic model-implementation of the EAST-ADL standard, the IMES tool supports the modeling of logical functions, the traceability both to requirements as well as implementation (based on Eclipse RMF). It includes editors for feature models and variant specification (an extension to Eclipse featuremodel) as well as tooling for AUTOSAR models (based on Artop) and can be connected to change management systems.

Mobile devices like smartphones and tablet computers became an integral part of our modern world and single-board computers like Raspberry Pi are cheaper today than at any time before. Simple and open Machine-to-Machine (M2M) protocols like MQTT enable these devices to communicate in an efficient manner, even in scenarios with unreliable und instable networks. This talk shows how Eclipse Paho - an Eclipse umbrella project for M2M protocols - can be utilized for professional and personal projects to build efficient and scalable solutions for (mobile) devices.

Currently available difference tools for models often report huge amounts of low-level model changes in an inconvenient way such that complex model changes are difficult to understand. A promising approach to overcome this problem is to tightly integrate model differencing with model editing. Edit operations have shown to form adequate building blocks for an easier understanding of complex model changes.
In this talk, we introduce the SiLift tool environment to flexibly specify and recognize complex changes of EMF-based models. In SiLift, edit operations are specified using EMF Henshin. A low-level difference, i.e. a matching of the models which are to be compared, is obtained using the matching engine of EMF Compare.

Performance tuning Java is as much an art as it is a science. Understanding the intrinsic performance characteristics of method calls, heap allocations, and casts is essential for developing efficient code at the micro level. Understanding the overall performance of applications as a whole is essential for developing efficient algorithms at the macro level. It's critically important in all cases to measure in several different ways and to double check that those measurements are consistent. It's also critical to beware of the JIT effect: many things get faster with repeated use, even to the point where some things are simply free. In this presentation I will share my experience with performance tuning EMF and EMF-based applications specifically; the insights gained have broad application.

20:20

Get Together

Who Is Attending

For Bloggers and Users of Twitter, Flickr, etc.

In case you plan to blog or tweet about the Eclipse DemoCamp in Stuttgart, please use the tag "#democampstuttgart" in order to make it easier to find all the comments and pictures. Thanks a lot for telling the world about the event!