Eclipse Yoxos Services Downloads Blogs About
Home > Blogs >

Archive for the ‘syndicate’ Category

on Mar 8th, 2010Learn Eclipse from your boat

saba rock small Learn Eclipse from your boat

Yup, that could be you. On your boat, cruising past Saba Rock in the British Virgin Islands, learning Eclipse RCP or Equinox/OSGi.

Twice a year the Eclipse Foundation runs the Eclipse Training Series and the Spring ‘10 sessions were announced earlier today. The series has always been a great opportunity for the community to learn more about the technologies they are (or should be) using.

This year EclipseSource is very pleased to announce that we are offering a number of courses in a “virtual classroom” format. Over the past few months we have tried out this idea and found that it has worked quite well.  The courses are run largely in the same sequence as in-person classes using the same materials but using screen sharing and web conferencing facilities. Despite the lack of personal contact, participants report a solid learning experience and very much appreciate not having to travel.

We are also expanding our virtual offerings into our RAP, p2 and PDE build courses. Of course, we continue to provied in-person classes. Check out the full Eclipse training lineup.

on Mar 8th, 2010New samples for OSGi and Equinox book

Earlier today we released a new version of the sample code for the OSGi and Equinox book. This new version has many updates to the Samples Manager itself as well as updated code for several chapters. Check out all the details on the book blog.

We have also added the ability to download the whole Samples Manager software site as a zip.  See the downloads page for more details on how to get the samples.

Finally, we’ve added forums to the book site and encourage readers to share their experiences, questions and discoveries.

on Mar 6th, 2010p2 and Agile Software Development

One of the key aspects of Agile Software Development — or any iterative software development process — is keeping your customer in-the-loop. In order for customers to have a voice in the software development process they must continually consume your software, provide feedback, and witness the results of that feedback. In a small setting this might not be to hard. But when you mix in a variety of different configurations, distributed development teams, and distributed customers — delivering and updating software can become a challenge.

iterative p2 and Agile Software Development Not only do your customers need to acquire the proper configurations, and stay up-to-date as the software is developed, your development team must also be developing against the latest code base. Again, in small teams it might be practical to checkout the entire codebase from your SCM system, but does this scale to multi-million line systems?

The Equinox/p2 project provides a powerful provisioning platform that can be used to help deliver software in number of different forms. At EclipseCon this year, Kim Moir and I will be exploring how you can use p2 as a platform to help enable agile software development. While the tutorial will focus on how p2 can facilitate agile software development, the tutorial will also provide a good overview for anyone getting started with p2 and PDE/Build.

In particular, we will discuss how to:

  1. Create, publish and provision a variety of product configurations
  2. Enable automatic updates within your products
  3. Craft and manage target platforms

The hands on exercises will explore the new p2 API, PDE/Build and many of the headless p2 applications. The exercises will be based off the Hyperbola chat client from the new Eclipse RCP Book.  (We may even have a preview of the book on display at the tutorial).  If you are interested in how to streamline the deployment of your software, are looking for an update mechanism for RCP or OSGi based applications, or are just curious about p2, please feel free to attend our tutorial.

on Mar 4th, 2010Error marker for SWT table rows – easy as pie

Here’s a nice addition to Riena’s TableRidget: you can now mark a table-row as incorrect.

This is done with an RowErrorMessageMarker. When hovering over the marked row, the corresponding error message will be shown in a tooltip.

IMarker marker = new RowErrorMessageMarker("An error message...", zorro);
tableRidget.addMarker(marker);
// to remove:
tableRidget.removeMarker(marker);

Full snippet here. This is shipping with the upcoming Riena 2.0 M6.

row marker 1 Error marker for SWT table rows   easy as pie

row marker 2 Error marker for SWT table rows   easy as pie

on Mar 3rd, 2010Shared libraries with Eclipse CDT and cygwin on Windows

Can you help me use shared libraries with Eclipse CDT, managed make and cygwin?“, I was asked yesterday. Read on for a list of common pitfalls and detailed instructions.

The instructions are based on the latest CDT release (Galileo) and cygwin (make 3.81, gcc 3.4.4). They are applicable to CDT’s managed make projects (that means CDT generates a makefile to build project).

The Pitfalls

It turns out that using a shared library on Windows is not as straight forward as you think. There are several pitfalls waiting for the unaware to fall into:

1. Recent versions of cygwin’s make insist on cygwin-style paths instead of windows paths (/cygdrive/c/foo instead of c:\foo). CDT is not picky about this and will generate an incorrect makefile, if you use workspace relative paths:

make all
example.d:1: *** multiple target patterns.  Stop.

The solution is to use absolute cygwin paths, such as: /cygdrive/c/workspace/mymath

2. The compiler and linker will not find the header files / library unless you set the appropriate parameters. The compiler needs an include path (-I). The linker needs the library name (-l) and library search path (-L). These settings are scattered in two places in the project properties. Their location is not obvious for a first-time user (details below).

3. When launching, Windows will not find the shared library (.dll) and greet you with the error pictured below. Unix users might try to set the LD_LIBRARY_PATH, which has no effect on Windows. The solution is to append the directory containing the .dll to the PATH (MSDN Article). Restart Eclipse for the changed PATH to take effect.

example stopped working Shared libraries with Eclipse CDT and cygwin on Windows

The remainder of the post walks you through the process of creating and using a simple shared library with cygwin and CDT.

Creating a Shared Library with CDT

Follow these instructions to create a shared library project with CDT.

1. File > New > Project > C Project > Next. Project name: mymath. Ensure “use default location” is checked. Note the location: c:\workspace\mymath — we’ll need it later. Project type: Shared Library; Empty Project. Hit Finish.

02 lib project Shared libraries with Eclipse CDT and cygwin on Windows

2. Create a header file (mymath.h) and the corresponding implementation (mymath.c). The example below provides a trivial function that multiplies two integers:

03 mymath c Shared libraries with Eclipse CDT and cygwin on Windows

3. Afterwards save and hit Ctrl+B (or Project > Build All) to build the library. If cygwin is on your path, you should see a “Release” folder in your project containing the file “mymath.dll”.

04 mymath dll Shared libraries with Eclipse CDT and cygwin on Windows

4. For windows to find the shared library, you need to add the directory containing the .dll to your path. On Vista this can be done via: Control Panel > User Accounts > User Accounts > Change my environment variables.

05 change path Shared libraries with Eclipse CDT and cygwin on Windows

5. Exit and restart Eclipse after changing the PATH. Otherwise the changes will not be picked up.

Using a Shared Library with CDT

Follow these instructions to use a shared library in a “managed make” CDT project.

1. File > New > Project > C Project > Next. Project name: example. Project type: Executable; Empty Project. Hit Finish.

06 example project Shared libraries with Eclipse CDT and cygwin on Windows

2. In that project create a file named example.c with the following content:

07 example c Shared libraries with Eclipse CDT and cygwin on Windows

3. Save and hit Ctrl+B to build the project. The second line will have an error: “mymath.h: No such file or directory”. We now have to adjust the compiler and linker settings so that the mymath.h / mymath.dll files are found during the build.

4. Select the “example” folder in the Project Explorer. Select “Project > Properties” from the menu. A dialog comes up. In the tree on the left open: “C/C++ General > Paths and Symbols”. In the “Languages” list, pick “GNU C”. Then hit “Add”. Enter the cygwin-style path to the “mymath” project: /cygdrive/c/workspace/mymath

Caution: When entering the path, don’t use the “Workspace” or “File system” buttons because the resulting path will not be compatible with cygwin’s make.

09 include path Shared libraries with Eclipse CDT and cygwin on Windows

5. In the same dialog select: C/C++ Build > Settings in the tree on the left. In the “Tool Settings” tab find: “Cygwin C Linker > Libraries”. Hit the “+” icon in the “Libraries” section and add the name of the library: mymath

Caution: if your shared library starts with lib, omit the ‘lib’ prefix (i.e. libfoo becomes foo)

Hit the “+” icon in the “Library search path” section and add the path to the folder containing the shared library: /cygdrive/c/workspace/mymath/Debug

10 library path Shared libraries with Eclipse CDT and cygwin on Windows

Hit OK.

6. You will be asked to rebuild the project. Answer “Yes”, but for some reason this will not rebuild your project. Hit Ctrl+B to rebuild. The error will go away.

11 rebuild dialog Shared libraries with Eclipse CDT and cygwin on Windows

08 example c with warning Shared libraries with Eclipse CDT and cygwin on Windows

Note: ignore the “unresolved inclusion” warning. It seems that CDT has trouble resolving cygwin-style paths. The generated make-file however will work as expected.

7. Select “example” in the Project Explorer. Right-click > Run As > Local C/C++ Application. At this point you see the result of the multiplication on the console. That means that the shared library was found and used successfully:

12 console Shared libraries with Eclipse CDT and cygwin on Windows

Kind regards,
Elias.

on Feb 26th, 2010Upgrade to Eclipse Galileo SR2

If you haven’t seen it in the Eclipse announcements: Galileo SR2 is available for download from eclipse.org. From this page you can download the new EPP packages that are based on Galileo SR2 (Service Release) and Eclipse 3.5.2.

Or, if you don’t want to download the full packages, you can start an upgrade – that’s what I did just a few minutes ago. I started with an older working copy of Eclipse (probably something from Galileo SR1) and started the upgrade process (‘Help’ > ‘Check for Update’).

It takes a while until p2 fetches all the required metadata from several repositories. The list includes the EPP package repository with the package definitions, the main Galileo repository and the Eclipse Platform repository. A few Okay-clicks later, p2 started to download the new content and asked me some more minutes later to restart Eclipse. Et voilà – after that restart I had a brand-new Eclipse with the latest version without downloading a new package.

on Feb 22nd, 2010OSGi DevCon London 2010

As a reminder, OSGi DevCon London happens tomorrow, February 23rd. If you want to learn about OSGi from the experts and live in the area, I highly recommend you visit.

osgidevconlondon 299x126 OSGi DevCon London 2010

I’m personally excited about Kirk Knoernschild’s keynote about OSGi in the Enterprise: Agility, Modularity and Architecture’s Paradox. You can view the full program here.

I will be speaking about Eclipse, OSGi and API Evolution and also will be participating in the spicy OSGi Development Tooling Panel. As always, if you want to chat about Eclipse, OSGi or open source over frosty beverages… feel free to find me.

If you want to follow via Twitter, there are two tags you should pay attention to: #jaxlondon and #osgidclon

on Feb 20th, 2010Riena meets Eclipse RAP, goes to Browser

I’ve spend the last few days adjusting the Ridget layer in Riena, to make it work with Eclipse RAP and Eclipse RCP. We call this process “single-sourcing” (EclipseCon tutorial).

Ridgets wrap around standard SWT / RWT controls to provide additional functionality and a better API. One example that you can see below: Ridgets have “markers”, which tag a control as mandatory, wrong or read-only and change the control’s behavior accordingly.

It’s worth mentioning that all three screenshots run from the same code. The only difference is the target environment used (RAP or RCP).

rap riena 1 300x240 Riena meets Eclipse RAP, goes to Browser

Ridgets styled with RAP's "business" theme

rap riena 2 300x208 Riena meets Eclipse RAP, goes to Browser

Ridgets styled with RAP's "classic" theme

rcp riena 300x205 Riena meets Eclipse RAP, goes to Browser

Ridgets in a regular RCP application

Once this work is completed the Ridget API will be usable for RAP applications as well.

To stay informed about this effort:

on Feb 12th, 2010Agile Thoughts (Part I)

In the last few weeks i was confronted with several projects and developers, who were trying to incorporate the scrum process into their project environment. The following remarks will pinpoint some of the problems and challenges several of the projects had and what a possible solution might look like (your mileage may vary).

Upfront i have to say, that i am a strong believer in scrum and its gains. This opinion originates from the fact, that i have worked in scrum projects which turned out very well. Why did they work well? Because they applied scrum! ;-)

The Fundamentals

We all know the sentence “yeah, we are an agile team”. And next they present you their fixed road map with milestones etc. The opposite is the “no planning agility”. We just fiddle along on a daily basis. That is not agile either.

I think the sweetspot is where scrum enters the stage. The product backlog dictates your workload and the sprint backlog defines your daily work. What’s the gain? Transparency and flexibility. The two virtuoso every one wants, most people claim and the fewest projects actually have. Lets see what these two words actually mean.

Transparency - Like a glass window transparency has two sides. When looking at the team we want to know what the team is actually working on and what their progress state is. The scrum wall with its small tasks and the sprint burndown is the place to find these information. When looking at the product owner, it is his job to provide a well formed backlog. Well formed means stories with clear scope and manageable volume. From both perspectives you have the ability to intervene when necessary.

Flexibility - Flexibility allows to refocus the course of the development efforts while being way under way. Only after you have finished the current sprint you plan the next one with the stories you need the most. After your project time has elapsed you can be certain that everything that is in your project right now is what you really need. No extras. Just the right features. Admittedly we could miss a few features but that would simply require more man power or more time. Most importantly: the scope is spot on because of constant corrections of the project plan.

So that is great theory. Now on to the problems…

Oh wait. This blog post is getting to long and i have to many points on my list. So lets take a break here and discuss the above until part II is ready.

Are you applying scrum? What are the biggest gains for you?

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).

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