2011-03-23

EclipseCon 11 Slides uploaded

As promised I have just uploaded my slides and related materials to the EclipseCon website.

Using Adapters to Handle Menus and Handlers in Large Scale Applications
10 Techniques to Test a Plug-in

You find all other uploaded materials on "In the Public" page.

And now I need to get back to the conference!

2011-03-18

Testing a Plug-in - an introduction

We all know, we should test our code... and if at all possible, we should write regression tests for the code as well. Just so we can make sure the functionality isn't broken as we add to the code or change the target platform. (And, of cause to make sure that we agree with the customer about the intended functionality of our code, right?)

This is even more relevant for Eclipse plug-in development. Especially since the Eclipse platform provides some very fancy - and sometimes complex - interfaces that can perform all sorts of stuff. One area of Eclipse plug-ins that really requires a special focus when testing is the use of configuration files (most notably MANIFEST.MF and plugin.xml) to specify major parts of the functionality. Here your usual junit tests require some refinements...

It is not because I just love to test... But the last 25 years as a developer have shown me time and time again that I spend more time doing fun stuff if I write a regression test the first time. As I spend all my time writing Eclipse plug-ins, this means that I have developed a large number of techniques for testing different aspects of a plug-in. Some of these are rather trivial while others have taken me a long time to get right.

I have found myself using a lot time on some specific tests... sometimes it is a bit of an intellectual challenge to test something right. This is especially true when you have to fix an odd problem from a customer and want to make sure the problem stay fixed.

As a consultant in everything Eclipse, I'm often asked about best practices for testing Eclipse based applications. Not that I can claim to know the best practices, but in the next couple of weeks, I intend to write a series of post about how I test specific aspects of a plug-in. These posts will focus on the main aspects of a plug-in as I see them.
  • MANIFEST.MF
  • User Interface
  • Everything that connects plugin.xml with the rest of the plug-in
  • Commands and Handlers
  • Expressions
  • Source Providers
  • Views and Editors
  • ...and the functionality provided by the plug-in itself
Consider these posts my best answer for the best practices.

There are still room for improvements in my testing techniques and I hope that any readers will take the time to point me towards other techniques or tricks that might be relevant. Especially if this means, it is easier to test or if we can get a better coverage of potential problems.

At EclipseCon...

At EclipseCon, I will present some of these techniques in a talk Wednesday just after lunch - though in 20 minutes, we will just have time to touch of the different techniques and not go into any sort of details.

2010-12-04

The Eclipse DemoCamp i Copenhagen

Outside it was very cold and dark last night, but inside the IBM's building on Østerbro in Copenhagen, it was warm and nice. And we had lots of coffee and sandwiches (Thanks to the Rational Software group of IBM Danmark), so everybody was content. And after all, the presentations was all pretty good too.


[You can find links to all slides at eclipse.dk]

Android Development in Eclipse by Ronni Kahalani
First, Ronni Kahalani talked about Android development in Eclipse. He went out to buy a simple and cheap phone that could just ring, for 40$, but ended up with something else, the Android 2.2 based Samsung Galaxy 9000 S - which made the start of his Android development era and life got a hole lot more interesting.
Now Ronni wanted to create some interesting applications and he described exactly what you need to do to implement a simple application for Android.

The example was a very small, yet quite impressive, a quick SMS (SMS Now) application that could send predefined SMS's (Text message) to any contact... It was quite impressive to see the code behind the application as well as how the application was debugged... (As a side note, quite a few of the participants from the demo camp would like to participate in the upcoming Android tutorial day).

UI Bindings - a UI framework for EMF based applications by Tonny Madsen
Tonny Madsen talked about an open source Java based framework used to ease the generation of the user interface (editors, views, wizards, etc) for large applications based on EMF models. The idea is to avoid all the boilerplate code to ensure a consistent and complete UI, but yet have the full power of Java available for the UI generation. Many other resent alternatives uses large amount of XML but does not have the same flexibility.

IBM Rational Team Concert by Morten Madsen
Morten Madsen presented some of the possibilities of the free edition of Jazz and Rational Team Concert. He focused on the way a developer will see the the world when using these tools. We will definitely need a shoot-out between Jazz on one side and Mylyn and Git or Mercurial on the other side... Maybe some future arrangement... For now we will arrange a Jazz tutorial day... (and a Mylyn arrangement as well in the srping...)

Developing an IDE for testing services and mainframe applications by Steen Brahe
Steen Brahe talked about a test framework, he has developed in his job at Danske Bank.
The test framework is used for unit tests of PL/1, COBOL and web services developed in the bank. No commercial tools for PL/1 or COBOL exist and only few tools for web services can be found. Steen demonstrated the tool against the live test system of the bank and it was quite impressive.

Eclipse e4 - Status and the Future by Tonny Madsen
Tonny Madsen then returned to talk about the current status of the Eclipse e4 project as well as the status of the current Eclipse 4.2M3 release. The new release is quite snappy and holds a lot of promise to future RCP applications. Whether it means anything for the IDE is a question nobody can yet answer.

Eclipse e4 and CSS styling by Ronni Kahalani
Then Ronni Kahalani returned on stage to talk about the CSS capabilities of Eclipse e4 based applications. After a small introduction to CSS technologies, Ronni illustrated how the code works in a smal sample application.

Building with Tycho by Maksim Sorokin and Johannes Serup
Last on the agenda was Maksim Sorokin and Johannes Serup to talk about how they use Maven and Tycho in their company, 3Dfacto. They first presented Maven and how Maven is traditionally used. They then introduced Tycho and told how Tycho can be used to build Eclipse plug-ins via the Maven build system. We probably have to look into Type to see whether it can help.... 

2010-12-02

Looking forward for EcliopseCon 2011

Now that Chris Aniszczyk and all his fellow program committee members have forced us to submit our ideas for the program of the next EclipseCon, I cannot help wonder..

Whether we will see the return of the chocolate fountain?
By Boris Bokowski

Whether the bar will be just as crowded as last year?
By Anne Jacko

What will ruin the night this time?
By Anne Jacko

2010-11-30

Getting ready for the democamp in Copenhagen

Check list for the Eclipse democamp in Copenhagen:

Found a suitable location? Check (IBM, Lyngbyvej 2, 2100 Østerbro)
Found a sponsor for snacks and drinks? Check
Found a date? Check (Tomorrow - December 1st)
Found a number of interesting presentation? Hope so...
Set up a sign-up page? Check
Finished presentation? Almost...

2010-11-29

Where to host and build...

I have a open source project, I would like to give a better home. Currently I use Eclipse Labs, but I do miss a number of services, so I would like to hear what other people do with similar projects.

What I like to see in the new project home is

  • Source management - Mercurial is preferred but Git could be used as well
  • Wiki pages for the documentation
  • An issue management system with a good integration with Mylyn
  • A simple way to provide continuous build based on check ins in Mercurial or Git
  • A simple way to provide a p2 repository based on the results from the builds
  • All of the above in the clouds... I don't want to host any dedicated hardware
The suite from Atlassian works be fine - I have used this in several commercial projects - but requires a dedicated host as far as I can see (until now I have managed to have all my needed services in clouds...) Bitbucket, javaforge.com and sourceforge.net are all in the clouds but all miss the good Mylyn integration and the continuous build...

I don't mind paying for hosting, but given that this is an open source project, I cannot pay a fortune every month...

So, to all the open source project maintainers out there: what do you do?

Making Slides Public

I have begun to make most of my slides public via slideshare.com.

Until now, it have just been the more relevant slides from presentations, I have held at various occasions such as EclipseCon and Eclipse Summit Europe as well as presentations from eclipse.dk and the Eclipse Banking Day in Copenhagen. You can also find some of my MDD lectures at the IT University in Copenhagen here.

I will soon also make the first part of my slides for Eclipse RCP training available via slideshare.com. It takes a little work, so stay tuned. I will try to maintain a complete list of public slides on our web.


Please note that for all the usual reasons, some of the slides and videos are in Danish :-)

2010-11-12

ESE 2010 - Getting back to work can be hard

Another Eclipse Summit Europe is over and it is time to get back to the tasks that was postponed during the event. And it is time to reflect over what was good and bad in the event. If you participated, you should also consider doing the survey... this is the best way you can help improving the event.

I really feel I have taken a lot of interesting information back home with me. There are quite few technologies and projects in the Eclipse world - both new and not so new - I will have to look into in the time to come.

If I should point at one particular technology, I will have to look much further into, it will be XText. I have used XText professionally for the last year, but some of the things that was showcased at ESE, was well beyond anything I knew about. And I even teach about XText at the IT University in Copenhagen :-) The ability to use XText with Java types is one thing I will have to check out... especially the way the XText document was part of seaches!

Another interesting technology is OCL, especially using OCL to specify live constraints in models. A well known performance problem most have experienced is the needed re-evaluation of the constraints when the data of the model changes. How do you limit the re-evaluation to just the constraints that needs to be evaluated? For a large model, the naive re-evaluation can take seconds or even minutes.

I have just three wishes for the next Summit.

First of all, I would wish the venue could be at a different location next time. I have nothing specific against Ludwigsburg, the Nestor Hotel or Forum am Schlosspark, but after four(?) years it is just time for a change of venue.


Also I miss the symposium format we had a few years back. The Modelling Technology showcase we had this year was fine and extreemely interesting, but I also feel that it was a lot easier to get involved in the longer term chances of Eclipse with the old symposium format. I really want both at the same time :-)

The last wish is for more built-with-Eclipse stories. This is where you really see what is possible with Eclipse.. where the envelope has been pushed a little further than before...

Other than that, this was a perfect Summit, and many thanks to the organizers for all their work and impossible prioritizations.

See you all next year... wherever that may be...