Eclipse Yoxos Services Downloads Blogs About
Home > Blogs >

Archive for the ‘news’ Category

on Feb 10th, 2010redView at EclipseSource

We recently had a workshop on redView with the developers of the project, probably many of you know ekke. We wanted to evaluate it and gain a better understanding if we could use it in the context of a project in the insurance space.

redView looks pretty promising, and although personally I am not a big fan of modeling and code generation there might be a sweet spot for redView for people who have tons of forms to fill in data.

One really nice thing about redView is that they created a detailled install instruction (a yoxos profile could probably help here), and a bunch of demos to get started.

http://redview.wordpress.com/howto/examples
http://redview.wordpress.com/howto/installation/
http://sourceforge.net/projects/redview/files/

P.S: The obligatory question about single sourcing redView has been discussed, and as redView is EMF + Riena it looks feasible to get redViews working in RAP. Even the visual form designer imposes no hurdles that could not be overcome (plain SWT, no GEF).

on Feb 10th, 2010AP2 API

As I mentioned a while back, Eclipse Helios M5 was made available for Download. There are number of New and Noteworthy features, but one really big feature was omitted from the N&N. The Eclipse provisioning platform, p2, finally has API! Really, go take a look at the code… all those internal.provisional packages are now gone!  This was actually a huge milestone for the p2 team, and Pascal did a great job steering us towards the API.

api AP2 API

What does this mean to you? Well, if you are building anything on top of p2 you should grab M5 and see how the new API feels. We are going to be pushing hard to finalize the API for M6, so if there is anything missing, speak up now.

John Arthorne even started a Migration guide: http://wiki.eclipse.org/Equinox/p2/Helios_Migration_Guide

on Jan 31st, 2010Eclipse 3.6 M5 (Helios) available for download

Eclipse 3.6 M5 is now available for download. There are lots of new and exciting features, like the ability to open and file directly from the command line.  You can also use the synchronize view to compare patches:

applyPatchInSyncView Eclipse 3.6 M5 (Helios) available for download

Debug also introduced a few new features (like instance counts):

instance counts Eclipse 3.6 M5 (Helios) available for download

Check out all the new features in the New and Noteworthy.

Download the milestone:
http://download.eclipse.org/eclipse/downloads/drops/S-3.6M5-201001291300/index.php

or use p2 to upgrade to it:

http://download.eclipse.org/eclipse/updates/3.6milestones/

on Nov 29th, 2009OSGi and Equinox book available!

Over the past few days I have spoken to many different groups at the EclipseRT days, various democamps and some students in one of our Advanced RCP courses. Each time people have asked…

“when is the OSGi and Equinox book coming out?”

Most were hopeful, some were trying to get a rise out of me. Well, ask and ye shall receive!

I am very pleased to say that the full, pre-copy-edited content is available on Rough Cuts. There are a few minor differences between what is online and what will end up in print but that is mostly a bit of grammar and a few technical fixes. The early versions of all the code is available though there are a few known issues in the packaging that we are still working on.

I am really very happy with how the book has turned out.  The structure has lots of content for everyone.  Tutorials, deep-dives, reference material. As you can see by the table of contents below, we start with some history, context and concepts. Then there is a set of tutorial chapters where we build up an example fleet management application called Toast to have a funky embedded vehicle user interface with Google Earth integration, client0server connectivity as well as a back-end control center for managing the fleet.

Toast Client

The Toast system from Chapter 14, the final tutorial chapter, has been donated to Eclipse as the Toast Examples project where is has been extended to have a RAP UI for the backend, EMF and EclipseLink for data management, ECF for infrastructure bits, etc etc.

The tutorial is followed by a number of deep-dives on key topics such as Declarative Services, the HTTP service, Remote Services (RFC119) and more.  Finally there are a set of reference chapters that go even deeper and look at the grotty issues of classloading, dynamic behavior and third party code libraries. It’s a good range of the popular OSGi concepts and services. Of course, there is always room for more in a 2nd edition! (can’t believe I said that…)

Part I:   Introduction
1              OSGi and Equinox
2              Concepts

Part II :  Tutorial
3              Tutorial Introduction
4              Hello Toast
5              Services
6              Dynamic Services
7              Client/Server Interaction
8             Testing
9              Packaging
10           Pluggable Services
11            Extensible User Interfaces
12            Dynamic Configuration
13            Web Portal
14            System Deployment with p2

Part III: Deep Dives
15            Declarative Services
16            Extensions
17            Logging
18           HTTP Support
19            Server Side
20           Release Engineering

Part IV: Reference
21            Dynamic Best Practices
22           Integrating Code Libraries
23           Advanced Topics
24           Declarative Services Reference

Now for finishing up the 2nd edition of the RCP book.  Chris and I are together this week and will be plugging away at the final tweaks before the copy-editing phase. The first 13 chapters of that book have gone to the copy editors and are available on Rough Cuts.

on Nov 23rd, 2009EclipseRT & RAP around the world

We’re all looking forward to talk about EclipseRT, Equinox and RAP at the DemoCamps around the world. In case you want to catch us and talk about Eclipse and related topics, just join one of the DemoCamps near you. Besides many other interesting talks, we’ll mostly cover EclipseRT, RAP and p2.

Eclipse camp EclipseRT & RAP around the world

Ottawa, ON, Canada – November 24 – Jeff McAffer (EclipseRT)
Braunschweig/Hanover, Germany – November 25 – Benjamin Muskalla (RAP)
Stuttgart, Germany – November 26 – Jordi Boehme Lopez (p2)
Kaiserslautern, Germany – November 26 – Holger Staudacher (RAP)
Frankfurt, Germany – November 26 – Benjamin Muskalla (EclipseRT,RAP)
Vienna, Austria – November 30 – Chris Anisczcyk and Jeff McAffer (RAP,EclipseRT)
Karlsruhe, Germany – December 3 – Markus Knauer, Benjamin Muskalla (EclipseRT)
Hamburg, Germany – December 4 – Jochen Krause (RAP)

I’m really looking forward to see you at the DemoCamps, as always it tends to be a lot of fun!

on Nov 17th, 2009Spread Sheet in the RAP Incubator

I am very pleased to see that the first code arrived in the RAP incubator project. The contribution consists of the very early steps towards a spread sheet component.

spread sheet Spread Sheet in the RAP Incubator

It is still in the proof of concept phase. The goal so far was to find out whether a spread sheet that is composed of existing widgets could work with regard to performance and usability. This seems to work out rather well. As a consequence of composing the spread sheet of existing widgets the same code runs on SWT as well.

In case you whish to play around with it or even contribute, the source code can be obtained from CVS and resides in the incubator/spreadsheet module.

on Nov 16th, 2009Eclipse RAP 1.3 M3 hits the road

After another 6 weeks of working hard towards the Helios Release, we’re a step closer. RAP M3 for Eclipse 3.6 is out and can be obtained from the RAP project page. Besides another 130 bugfixes and many New and Noteworthy features, here are my personal favorites of this milestone:

Non-shared SWT resources

Finally, we decided to provide constructors and a dispose mechanism for SWT resources like fonts, images, colors and cursors. While we still recommend to use the factory-based approach, this features helps a lot when single-sourcing applications that use the resource constructors in a verbose manner.

RWT Resource constructors

Yay, it compiles!

Browser History support

You now have the possibility to interact with the client-side browser history. This allows you to set “bookmarks” (eg. when switching tabs or processing a particular workflow) and the user can jump back and forward. Thanks again to Ralf Zahn from ARS who contributed this feature.

BrowserHistory Eclipse RAP 1.3 M3 hits the road

Dispose events on session timeout

We also introduced new Listener support on the Display so you’re now able to listen for Dispose events of the Display which is triggered when the session terminates. This way you don’t need to rely on servlet-specific API but rather use the same mechanism as in SWT to clean up your session. In addition you can queue runnables via Display#disposeExec that are executed once the session dies.

I hope you all enjoy the new milestone and give as feedback as fast as possible, API and feature freeze  is approaching ;-)

on Oct 27th, 2009The Mac@ESE makes me want to stop demo’ing

This morning at the ESE EclipseRT tutorial we are having a great set of talks on Equinox, RAP, EclipseLink and Riena. The room was full and the audience asking lots of great questions. It is great to see so many people interested in EclipseRT.

Unfortunately, there was another episode in the continuing saga of me, demos and the Mac. I was to present various things about Equinox and OSGi. The discussion went fine and short of not being able to switch Mac Spaces screens using the mouse, strange, that was great. When it came to demo however, things were not so good.

Much of the tutorial is based on Toast, an example application that comes from the new OSGi and Equinox book and is now an Example project at Eclipse. The Toast client has lots of great stuff including integration with Google Earth.  Unfortunately, for some reason that only works when running on Carbon on the Mac. OK. Since I updated to Snow Leopard I had to install some retro JREs to get Carbon. Hmm, OK.  To run the with this while running the IDE on Cocoa means I have to setup my PDE Target Platform to use Carbon explicitly.  Err, sure, why not…

Well, it seems there is a bug in PDE (well, apparently the bug is in SWT) that prevents one from editing a Target Platform to set Environment values.  Seemingly my changes were just ignored despite showing in the UI.  Not so great.  The net effect was that my demo failed.  Sigh.

To work around this I had to hand edit the .target file’s XML to add

<environment>
<ws>carbon</ws>
</environment>

Now the client works! Of course it was my fault for updating my target just before the demo and believing what the UI was telling me.  Live and learn…  I’m starting to feel a bit like Steve the Uber Geek.

It seems that there are a few other issues like this in the Target Platform editor around Software Sites.  Seems that these are issues related to Cocoa. Working on the Mac still feels like using the poor cousin of Eclipse. Oh well, there is always VMware.  But then Google Earth does not run so well there either…

on Oct 23rd, 2009Take actions against sluggish desktop applications

Let me state two facts:

  1. My computer has 2 cores (there will be more in the future).
  2. My IDE feels sluggier with every version.

Applications feel fast if the time between user action and application reaction is short. Ben Galbraith suggests that this threshold is around 200 ms for web applications, for desktop applications the boundary is lower. A rule of thumb places it around 100 ms, so I there must be a yellow range in between.

performance Take actions against sluggish desktop applications

My IDE crosses this threshold more often than it should, so it’s sluggish. What’s the reason and what can be done about it?

It seems like a fundamental law in software engineering that every new version of any program executes more code than the previous version.

Java 5 introduced the java.util.concurrent API that made corse grained parallelism easier. The combination of thread pools, Futures and Barriers covered a wide range of tasks between CPU and I/O bound.

To me as UI programmer this had little consequence. For a while I could still state that Java+SWT is fast, consuming my part of that lunch that is not free any more but was cheap enough anyway in the doses I required.

This is changing. A few years ago we saw a pain barrier reached and solved in startup time of various operating systems. Today my pain barrier is reached in many of the functions that are executed as reaction to user clicks and key presses in my IDE. Undoubtedly it is only a matter of time when this will apply to smaller desktop applications, too. They must react, and using multiple cores is the solution at hand.

Other languages and frameworks already have good support for multicore programming, Java 7 will include the ForkJoin framework for Java. In the wild, it is a library known as jsr166y that can also be used with Java 6.

In the following I’ll discuss a little example that shows how to use the ForkJoin framework.

A simple easily parallelizable example is assigning random values in a large array. It’s also an example that can not be solved with raw processor power but accesses memory.

First, care must be taken where the random number comes from. Even a sequential solution using ForkJoins ThreadLocalRandom was about twice as fast than one with Math.random(). It’s also more comfortable to use.

    int[] result = new int[ARR_SIZE];
    for( int i = 0; i &lt; result.length; i++ ) {
      result[i] = ThreadLocalRandom.current().nextInt( result.length );
    }

ForkJoin provides a class named ForkJoinPool as executor service for tasks. The constructor can be configured with the parallelism (number of threads) to be used. The default constructor takes the number of available processors as returned by Runtime.availableProcessors(). The pool is then given tasks for execution.

    ForkJoinPool pool = new ForkJoinPool();
    pool.invoke( new ArrayGenerator( result, 0, result.length ) );

The ArrayGenerator is a RecursiveAction. The RecursiveAction differs from the RecursiveTask mainly in the return value of the compute() method. It’s implementation is a straightforward recursive algorithm. First, there is an exit condition that solves the remaining problem sequentially. If that is not hit yet, the remaining problem is divided for two other RecursiveActions. Those are given to invokeAll, which blocks execution in this task until all subtasks are executed. In my experiments, the definition of the exit condition didn’t matter as long as all cores where busy at least once.

public class ArrayGenerator extends RecursiveAction {
 
  private int[] nums;
  private final int start, end;
 
  public ArrayGenerator( int[] nums, int start, int end ) {
    this.nums = nums;
    this.start = start;
    this.end = end;
  }
 
  @Override
  protected void compute() {
    if( arrayIsSmallEnough() ) {
      assignSequential();
    } else {
      int middle = start + (end - start)/2;
      ArrayGenerator left = new ArrayGenerator(nums, start, middle);
      ArrayGenerator right = new ArrayGenerator(nums, middle, end);
      invokeAll( left, right );
    }
  }
 ...
}

On my machine with 2 cores I achieved a speedup of 1.24 over the sequential solution. While that’s not as good as I hoped it still is a significant improvement that has the chance to move my clicks back down into the green area. I suspect that more cores could achieve a better speedup, so there is free lunch again once I design my program for concurrent execution.

Programming with this framework seems easy enough to me to see it adopted widely. However, we must rethink our problems and search for chances to parallelize.
I implemented the same thing with ThreadPoolExecutors and Futures. While the execution time did not differ there, it took me 3 times as long to implement it.

on Oct 1st, 2009Yoxos, Galileo SR1, TÜV and a Contest

The Yoxos team has been really busy as of late. The free Yoxos OnDemand download service is getting lots of new function and with the release of Galileo SR1 last week, the OnDemand repositories have been updated to include all the latest Eclipse bundles.  Thousands of people use the free Yoxos service to reliably get and maintain their Eclipse tooling.  Now they can get the latest Eclipse and thousands of compatible components in one spot!

At the same time as doing all that, we worked to get the Yoxos SecureSource validation process certified by TÜV. Turns out that the TÜV certification is perhaps the news of biggest impact to the community. It means that you can now get thousands of OSGi and Eclipse components that have been validated as trustworthy using a process certified by an internationally recognized standards body.

Most Germans will know TÜV from the inspection they have to do for their cars every two years. TÜV engineers certify cars as roadworthy and safe. But TÜV does way more than that. It is a global organization specialized in testing, inspecting and certifying product safety, quality and usability in many areas. We looked around the office and found the all of these everyday TÜV certified things.

In addition to things impacting your physical safety, TÜV certifies all manner of software including virus checkers and now software component validation processes.

Why is this interesting?

Basically there are whole industries out there that cannot use Eclipse and open source because it’s seen as untrusted. This certification of Yoxos SecureSource means that Eclipse and OSGi can be used in security critical applications or mission critical toolchains where trust and validation are key concerns. More users of Eclipse in more domains means a bigger ecosystems and more adoption. Good news for everyone!

For fun, we looked around the office and found the all of these everyday TÜV certified things and thought it would be cool to run a contest. The first person to correctly identify 5 of the pictured TÜV certified products wins a free lifetime subscription to our new super secret Yoxos product coming out by the end of the year.

tuev certs 300x125 Yoxos, Galileo SR1, TÜV and a Contest

Submit your entry by commenting on this post.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
© EclipseSource 2008 - 2009