Eclipsecon Day 4: and in the end…

What? Now that I’m done with my talks and finally can overdrink Eclipsecon is over? Well that’s sad, but on the bright side I think that this final day was one of the best ones.

As a hudge Beatles fan, I had to finish this set of posts with a Beatles song. I chose the very last song they composed, “The end”  on the Abbey Road album http://www.youtube.com/watch?v=7a_8F6gflxQ

I think it sums up the Eclipsecon & OpenSource spirit : “And in the end, the love you take is equal to the love you make”. Take care of your community & users, and they will take care of you.

Morning Keynotes

Right before the keynote, we watched a diaporama of all picture taken by the staff, with a music that will be stuck in my head for decades: “This code is your code, this code is my code…”. 

Jim Laskey showed us Nashorn, a Javascript engine for the JVM. Jim is also in charge of dynalink, a project which purpose is to help several laguages communicating through the VM. According to Jim, bringing javascript to the VM advances the technology and atracts new developers. The nashorn javascript engine compiles javascript to byte code on demand and links the code dynamically via dynalink. Jim also created jjs, a new command line for javascript. Thanks to the javax.script api, you can interpret your javascript scripts directly inside java.

 

Agile documentation with Mylyn Intent

image

Another Intent talk, and another success :) I found the audience very interested, and had some great discussions with doc enthiusasts! Please continue the discussion on the Intent forum and I’ll be glad to answer, and of course check out the Intent M6 from Kepler.

Collaborative Design: give wings to your team!

Stephane Bonnet & Mathieu Helleboid from Thales gave a great presentation about how they used Eclipse Sirius and CDO to provide a user-friendly application allowing to collaborate in real-time around models, diagrams & tables. Thanks to an automated fine-grained lock mechanism, any time a user makes a modification the application locks the minimal set of elements to make sure that no conflict will occur.

Really interesting, and the audience asked a lot of technical questions.

Bling & Eclipse/OSGi Puzzlers

After an impresive demo of Bling allowing to make 3D UIs directly inside Eclipse (AWESOME!), Benjamin Muskalla and Holger Staudacher  made a really funny talk: we had to predict the behavior of pieces of code by raising our hands. A great and challenging moment :)

The EEF 2 talk was pretty impresive, go check the slides if you want to see how you can define full OSGI e4 based apps working on JavaFX without having to write any code, juste define some simple models.

Closing Session

image

After goodies distribution (man I wanted that black sweater), all the PMCs told us about what was going on in the Eclipse ecosystem. I was thrilled that both Intent and Sirius were mentionned as exciting projects, as I’m working on both of them :) Mike (who seems to have a dehydration issue for no reason :P) gave us the awaited (and almost non madeup) statistics about EclipseCon:

- 10 times more IP addresses used than attendees

- 1 623 GB of downloaded files

- 47 people at the Tamo Bar 1 hour after is was closed :)

image

And now… Time to drink and have fun with the eclipse community! I’m staying in Boston for a few days, hoping to find the BBB (Best Burger in Boston) and some cool bars (if you know any bar that let people play music just let me know).

See you at next EclipseCon in Toulouse, and in the meantime, stay tuned for more information about Mylyn Intent and Eclipse Sirius!

Eclipsecon Day 3: Conference Driven Drinking

Hi guys! Again, an exciting day at Boston!

Morning keynotes

image

Zack Holman from github made us laugh hard, a really great speaker. “You don’t have to be clever to succeed, I mean this is America!”, and once we acknowlegded that any developer was an horrible programmer, we saw how open source offered the opportunity to get feedback from pros and improve ourselves. Exploiting our hobbits and interests to provide a real-life service accessible to end-users is one of the awesome possibilities of Open Source. He also stressed out how project leaders should welcome oustide contributions and bring help to contributors, not only because this may be their first pull request and that can be scarry, but also because that makes your OSS alive. Zack insisted on the fact that writing doc allows you to invite people to participate without having to teach them ; ”Documentation means less work for you”: that’s exactly the Intent mantra :) The main point was to remember that Open Source is about having fun.

Jeff seilbert talked about agile delivery, and how it encourages automation as you ship your application 50 times a day. Because of the long time-to market of the apple store, mobile development got back to waterfal development. So how to make mobile dev more agile? By using a mechanism allowing to get all the crashes that occured on your app in real-time, and use more complex Agile methods (see slides for details).
 

Mylyn 4.0 - Mik Kersten
Mylyn, according to me, is a great Open Source project because it’s always thinking ahead, about the new needs and technical improvments that can benefit the community. In that context, Mik explained that the golden promise of a perfect ALM tool usable from both ends of the application lifecycle has not been fulfilled yet. The key point that lead to the creation of a new major Mylyn version was the emergence of a new set of tools for other parts of software lifecycle (for project managers, business analysts, testers…), and the need for mylyn to interface with those tools. To achieve that goal, whole information that was splitted in ui, comments, tasks… will be regrouped in a model, accessible through restful APIs so that other tools can easily get that info. Clearly an excellent idea, that made bells ringle in my head with new ideas for Intent. I’ll probably add a few slides to my Intent talk tomorrow to show what awesome things we could do if all that information was represented as a model.
 

Documentation Driven Testing
I’m not going to bore you with my own talk, that would be a bit narcissic, but I’d just like to say it went pretty well, people were interested about the approach and we only had +1 feedbacks so far :)
Slides sources are available on github and soon on Intent website.
 

Now that I’ve Got a Model, Where’s my Application? - Eike Stepper
image
Eike explained us how we can create RCP, multi-user and scalable applications for our EMF models. A clear and easy to understand overview of the EMF mechanisms (ResourceSets, Resources fragmentation, edit plugins…). By the way, Eike has created an awesome eclipse plugin for live demonstrations, go download it on cdo website.
Eike had a great way of presenting CDO: the talk was about implementing our own EMF back-end and UI, so that we can follow all the principles that lead to the CDO project creation. Very technical, but as things went step by step everyone in the audience followed. Eike even draw sketches of the UI on a piece of paper (not spoiling you but great joke during that part), I really liked this talk and I think any EMF enthusiast should see it. It is definitely the kind of talk I’m here to see: easy to understand but very technical, and just fun enough so that people keep following.
 
If you want to see how we can use the CDO technology to provide live collaboration around modelers created with Sirius and kick-ass end-user experience, don’t miss Mathieu’s talk tomorrow.
 
Mylyn BoF
Ah, the Mylyn BoFs :) Always having a great time exchanging ideas (and especialy beers) with the mylyn team. This one was especially interesting as we discussed what the Mylyn 4.0 metamodel should look like. I really like the fact that these discussions are made in public, and top-level mylyn commiters were ready to hear my ideas. This is what open-source should look like, thanks again for this passionate discussion guys.
 
Community
At every eclipsecon, I end up missing talks because I’m talking to interesting people. And that’s ok: that’s what eclipsecon is about right? Last night and today were especially great in that regards. I was thrilled to discover Michael Scharf, and not only for his keen eye on software world but also for all the things he made me think about. Please people, do not hesitate to talk to me whenever you see me, even if I’m working, or already talking, I want to hear what you have to tell me :)
Now it’s nearly time to go to bed, I really want to nail the Intent talk tomorrow and see sparkles in the audience eyes.

EclipseCon Day 2: Are you Sirius?

Hi guys, as always after only 1 day I cannot get the time to write about everything I’ve seen today, let me try to sum it up….

Morning Keynotes

image

Stephen O’Grady and Jeffrey Hammond gave us their insights on the shape of things to come in the software world, in which considering that Software business is only about selling softwares becomes a hudge mistake: without free softwares like linux, php or mysql, the market would not have evolved and no business would be possible.

The idea is to make money with software rather than from software, like Google, which built itself from free softwares. In that context, the developers are the new kingmakers, at they are the ones that pick the technology software will be based on.
Jeffrey pointed out that now that innovation in softwares costs less, the market is opened for new ideas (remember that facebook was born from a student project). Open source, agile behaviors, quick feedback collection, evolving infrastructure and quality builds then become the keys of Modern Applications. I liked the way he presented the software evolution: software are now organic, always evolving, rather than mecanic pieces you assemble.
The art of java performance tunning [Ed Merks]
 
image
Ed took us to a journey in the world of java performance tunning, which, given its  complexity (different hardwares, jvm, language versions…), takes more from art than from science. Ed insisted that we should be paranoid in regards to performance: they’re unerlyable, and the assomptions we, our friends or the expert (bu the way thanks for the photos Ed, you look outstanding in both dresses or robotic suits).
The first thing we should focus on is the algorithmic complexity, to know how our application will scale. No measure required here, just a thorough analysis of our code. Basically, basic principle like “don’t do something in a loop you can do outside a lopp” can already improve your perfs. A big issue is that the Just In Time compilation can produce very different results between runing the code in isolation and integrated in the software. VM options like -XX:-printcompilation can be useful to follow what the VM is doing.
Ed then destroyed some performance mythbusters (see the slides for more details), and showed us how EMF took advantage of JIT magic to behave with outstanding performances (EList.get() has the same perfs as list.get, EObject.eGet() is as efficient as Hashmap.get()…).
The main lesson was : write maintenable code, measure it, and try to master his peformances. Trust nothing, and focus on quality.
Requirements on the verge of a nervous breakdonw Tom Grant
 
Software development, and especially with Agile methods, is on the edge of a requirement crisis. Tom took an interesting metaphore to explain what requirements were: basically the same thing as having to quickly find a present for a person you don’t know well. 100% of ALM assessments starts with good requirement, and again having more regular feedbacks and agile deliveries was a key point of Tom’s point.
According to Tom, to be able to answer the crisis it’s tIme to  change requirements rules : 
- we must change the way we get requirements from customers, e.g. with serious games
- better requirements toolkits (Tom you should check the Mylyn Intent talk to see how can we keep software cood and requirements up-to-date). I liked the “Just in time requirements” idea: you really have to know where to get requirements and how to use them according to wether they are long, medium or short-term. The conclusion was that software world needs a new job: requirement guys. Instead of using bosses or commercials to do it, use guys with economics, computer science and anthropology skills. They can be seen as mediators between IT and Business, in order to produce the minimal viable product.
 
That’s when I started to get lazy…

Sorry about that, but my battery was running low so I did not took notes for the other talks of the day… Let me just talk about the Sirius talks, if unfortunately you did not have a chance to see the demos.
 
Sirius: a new awesome eclipse project finally making modeling easy for functional users

image
Some serious Sirius magic occured today, both at:
- the Sirius talk, during which Stephane Bonnet from Thales presented how Sirius was already deployed in many use-cases like space, aeronotics, risk management…). I saw the sparkles in the audience eyes, damn proud to be working on this project for more than 2 years now.
- the Modeling symposium, in which Cedric showed how to create diagram, table and tree-based modelers in a few clicks.
Anyway, I don’t want to seem corporate so if you’re interested in this brand new piece of eclipse technology just check the ObeoDesigner website.
 
And more beers
And as usual, I had the opportunity to meet Mylyn Intent enthusiasts around beers, like David Moreno who proved that you can be a bad-ass developer using full-OSGI apps and still care about having an up-to-date and meaningful documentation.
 
I’ll try to be a good guy and get back early tonight, still have a few work on our Documentation Driven Testing talk with Goulwen. A great story to share and a good example of how cool technologies like SWTBot, Mylyn Intent and Goulwen’s knowledge of the Modeling tools can improve your day to day life as a software developer. Imagine an SWTBot interpreter able to play SWTBot tests from a scenario described in Xtext, and just a pinch of Intent to keep the explanations of those tests up-to-date :)

Eclipsecon Day 1 (2/2) - It did rock!

Wow the least we can say is that we had quite a night here at Boston :)

After the tutorials, I had the pleasure to meet known and unknown faces, and some Mylyn Intent enthiusasts which is always a pleasure for me :)

imageThe eclipse community awards were especially great, thanks to Marcel Bunch’s game: make a developer freud game where each team was supposed to guess what were the most popular method calls for a given class! Fun, challenging, and a good opportunity to show the power of Code Recommenders (if anyone had doubt abouth that). Definitively the funiest ceremony I ever saw at eclipsecon!

imageIcing on the cake, Obeo Designer, the software I’m working on back in Nantes, won the Eclipse best modeling product award. I think it’s deserved, and you will too after having attended to the Eclipse Sirius talk tomorrow (Sirius is one of the ObeoDesigner components).
Chris Aniszczyk won the  Lifetime Contributor Award, well deserved as he mentored more than 25 eclipse projects including Intent! Thanks a lot for your advices and hard work!
Now it’s time to get to the bar, see you tomorrow for another piece of Eclipsecon magic!

Eclipsecon Day 1 (1/2) - It’s going to rock

image
I’m so excited about attending this new EclipseCon edition, so first of all let me try to share my excitment in music with a Boston band http://www.youtube.com/watch?v=x-64CaD8GXw

In this post, I’ll try to share the things I’ve lived and learned this morning.

Git tutorial - Tim Berglund [GitHub] & Kevin Sawicki

That’s the kind of tutorial you want to attend to at eclipsecon, Tim opened the tutorial by saying that he was here to answer our expectations, and  he actually changed the tutorial outline according to our specific needs.

The audience shared a laughter when we started hearing the other tutorials in the loudspeakers, and then the git magic started flowing in our veins!

Here are some of the cools things we learned:

- We actually created a git commit without using git add or git commit commands, just by creating files and using obscure commands like hash-object or update-index. Really intersesting as we learned the internals of git. In addition it made us feel like Git wizards :)

- We took a journey into merging and rebasing, with interesting discussions about what to do when you want to rebase an already shared branch.

- Tim also showed us how we can use the git reflog to retreive informations that are gone in the commit history and to go back to a previous state. That was really good info for me, now I won’t be afraid to make bald things on the repo, as I’m sure I can revert them.

- Things even became philosophical, with a discussion about APIs, oignons and porcelains :) Good abstraction principles that can be applied in our own eclipse projects.

- The audience then fighted against the network to push our test repos on github (it was almost epic), and we played with remote synchronization and submodules.

Undoubtedly the best tutorial I ever attended, mostly because Tim is really listening to our questions and is used to giving this tutorial. Thanks for your work guys !

Lunch @ econ

Althouh I did not manage to team up with people with the same badge color as me (to win a free beer), lunch was pretty great and I had the pleasure of meeting Torkild Resheim again, a great guy and a Mylyn docs enthusiast (just check out what he’s able to do with Wikitext).

Now I’m back to the hotel to work with Goulwen on our Documentation Driven Testing talk, a great story to share and a good example of how cool technologies like SWTBot, Mylyn Intent and Goulwen’s knowledge of the Modeling tools can improve your day to day life as a software developer.

Stay tuned for more infos, back to the studio!

Yes, documentation matters - Interview on JAXenter.com

Just to let you know that the JAXenter website has published an interview about Mylyn Intent and the importance of writing documentation, even (especially?) in Agile processes.

I invite you to react, do not hesitate to spam us on the Intent forum or by mail, we will be glad to answer.

A big thanks to Diana Kupfer who made a great job by asking the right questions :)

Mylyn Intent: the Shape of Things to Come

Hi guys, I know it’s been a while since I’ve talked about Intent, but don’t worry, William and I are working hard!

This post will give you an overview of some of the features that will be provided for the Kepler release.


Reminder: What the heck is Intent and why should I care?

Intent is a documentation environment providing tooling for keeping your doc synchronized with your technical artifacts (models, code, plug-in dependencies…). Any time you make a change on the code, Intent will display synchronization issues showing the sub-parts of your doc that needs to be updated, leaving you the choice to update the doc right away, or later (e.g. just before a release). By giving your doc the ability to react to changes, Intent turns your doc into a true Agile Documentation. Please find all usefull informations (tutorials to get started, talks transcripts, example videos…) on the Intent wiki. Do not hesitate to spam us with questions or remarks on Intent forum.

What are we working on and what should you expect for the next Intent release ?

Since the Eclipse Juno release, we tried to use Intent on concrete industrial use cases, to determine which features were missing to make it efficient and usable.

For example, we used Intent to document models describing Enterprise Architectures, computed through the use of the Obeo SmartEA Modeling Tool. In the Design phase, models were quickly evolving and it was a good chance to test how Intent can help us keeping the doc up-to-date with those changes.

Let’s have a look at the features we have been working on and the upcoming ones for the Kepler release.

1. Tooling to quicken documentation update

We developped additional tooling, like quick-fixes and Drag-and-Drop support, so that you’ll never have to update your model fragments manually.

This improves significantly the time needed to update a documentation when your code evolves. Now you just have to: 

- See the doc parts that are outdated in the Problem View 
- Open an Intent editor on those parts (in one click)
- Update your textual documentation
- Apply a quick-fix that says to Intent “ok, I dealt with this synchronization issue”

Want to see those quick-fixes in action? Just take a look at the demo presented during EclipseCon Europe.

2. Live collaboration around Documentation thanks to CDO

According to us, documentation is a social task, which would benefit from real-time feedbacks and reviews. Behind the scene, Intent has been created as a client/server architecture: you have a central repository, in which we store the Intent document and other useful informations (synchronization/compilation issues, traceability informations…). Around this repository, many clients communicate through a notification mechanism. The Eclipse editor is just one client among others: any time you modify the Intent document and save your editor, modifications are commited on the Intent repository, which notifies all listening clients.

As this Repository concept is totally abstract, you can use many technologies to implement it. If the default implementation uses a hidden folder inside your Intent project, we can also imagine developping a CDO-based Intent repository. If you’re not familiar with the CDO technology, go take a look on its website. In a nutshell, CDO allows several users to share the same models. If a user modifies a model element and commits, all the listening clients integrate those changes in real-time. A CDO-based Intent repository allows several users to share the same document, and any time a user updates the documentation, all other user see those changes in real-time.

Not convinced? See a video demonstration of Intent collaborative features.

This is still a work-in-progress, but the CDO integration will be fully functionnal for the Keppler release.

3. To code synchronization and beyond

Although I’ve got some really great feedbacks from the EclipseCon Europe talk about Intent, many people are waiting for code synchronization capabilities (see the questions asked during the talk) before using Intent. 

Of course, this is within Intent scope, but we decided to improve the tooling stability and performances before adding new sync. capabilities. So up until now, Intent only allowed you to synchronize your models with your code.

However, by using Ariadne, a tool that allows to represent many technical artifacts (java code, manifests file, mylyn contexts, bugzilla issues, git repositories & commits, hudson builds, projects meta data…) as models, Intent will be able to synchronize your doc with your java projects.

This is also in Kepler scope, and Stephane and I plan to present the Ariadne/Intent integration at EclipseCon Boston.

4. And don’t forget: YOU’ve got the power!

Although we have a strong vision of what we want for the Kepler release, we are willing to postpone any feature if YOU think there is something missing to answer your needs. Intent is an open-source project, and we are open to any outside contribution, whether it is a feature request or code contributions. Please, spam us on the Intent forum with questions, ideas, feedbacks… We’ll be happy to discuss with you, even if you don’t agree with some of our choices!

If you’re interested in Intent, please do not hesitate to send us contributions, and we willl gladly welcolme you as an Intent commiter. Plenty of work to do on this awesome topic! I’m convinced that Intent is the future tooling for managing our documentation. If things go well, I will have REALLY EXCITING ANNOUNCEMENTS to make in the following weeks, stay in touch…

It’s 2012 and your documentation sucks

This week is EclipseCon Europe 2012, and as always we’re going to have a great time.

Thursday, I’m going to show you why your doc sucks, and what should you do to be able to proudly say “RTFM” to your users and team members.

Here is a quick teasing, but you’ll have to attend my talk to see a full use-case showing how can Intent be used to document Enterprise Architecture Models (computed through the SmartEA tool).

1. It’s 2012, we need to be able to detect when doc gets outdated!

To do so, Intent maintains formal links between doc parts and technical artifacts (whether it’s Models, Java Code, Manifest file, C++ Code…). This allows to automatically determine which parts of the Doc have to be updated when a change occur, preventing you from a painfull manual search through the hundred of pages of your doc.

And of course, Intent leverage these formal links, providing tooling for querying your doc (“Which doc parts define/reference/contribute to this concept?”, “What are the relationships between these two concepts?”, “Which technical artifacts are related to this doc part?”…)

2. It’s 2012, we need real-time collaboration around doc!

Documenting is a social task, and real-time collaboration around doc will help you create better specifications.

Intent transcript is available - Agile ALM 2012

Last week was the Eclipse Con 2012, co-located with the Agile ALM Connect conference. I gave a talk about Intent, focusing on what Intent could bring to Agile practices. In a nutshell, Intent provides your documents with the ability to react to changes (in design or in code), turning them into true Agile Documents. You will also be able to capitalize on your work by defining high-level constraints on your projects that will be available in the future.

You can get the whole transcript of the talk just by clicking here.

The talk was a success, and a lot of people came afterward to talk about Intent and propose contributions or ideas. Please feel free to continue the discussion on the Intent forum, I’ll be glad to answer to any question, technical or not, and discuss about what could be done better.

I got really good feedbacks on the EclipseCon website, 19 +1 for 2 +0 and no negative feedback. I can’t resist to show you my 5 favorites: 

Intent feedbacks

And if you feel lazy, just take a look at these 2 demos (included inside the transcript) : 

Intent in Action - part 1 Intent in Action - part2

Intent 0.7 is waiting for your feedback

We are proud to announce that a first build of Mylyn Intent 0.7 is available. You can get it using the following update site:  http://download.eclipse.org/intent/updates/interim/0.7.

You can use the Installation Guide to help you installing Intent. 

Intent document

To get started with Intent, we advice you to start with this tutorial.

We’re planning to release Intent fast and frequently, so your feedback (technical or not) is welcome !

You can provide us feedback by : 

And while we’re talking about Intent, don’t forget that we will be at EclipseCon Europe 2011. Attend to our talk and discover how Intent can help you writing appealing, useful and up-to-date documentation, to constraint your software development, and all the cool features that we want to develop. And do not hesitate to meet and discuss with me, I’ll be really glad to get your feedbacks, good or bad.