EclipseCon North America 2016 Retrospective

It’s been almost a month since EclipseCon North America 2016 closed, but I figured it is not too late to write a short retrospective, so here goes.

EclipseCon is a series of conferences arranged by the Eclipse Foundation in the USA, France and Germany. In addition we have Eclipse Summit India, which is a new conference this year. The conferences in the USA and France are the smaller ones with almost half the number of visitors compared to the one in Germany. All are stretched over three or four days, but with slightly different focus.

For many, Eclipse is a Java IDE, but in reality Eclipse is an organization that hosts a number of activities. For example the Science Working Group which has teamed up to build scientific software and the IoT Group which does the same thing for the Internet of things.

This year’s EclipseCon North America (ECNA) was in Reston, Virginia from the 7th to the 10th of March. The first day was mostly tutorials, one before lunch and one after. I attended “The ins and outs of high-performance modeling and simulation with Eclipse” and the members meeting after lunch. This is a yearly thing where the organization’s financials and member numbers are presented. We also got an update on the FEEP-program where the foundation is financing development and improvements of core Eclipse components. This is a fairly new initiative to improve the platform in areas where the members are not focussing. We were also told that there are now 302 projects hosted and the number of member organizations is close to 300 – both numbers are increasing slowly.

The keynote on Tuesday was given by Tyler Jewell from Codenvy which amongst other things announce the Eclipse Che release. This is a neat browser based IDE with support for Java, Node.js, PHP and more. The presentation was supplemented by representatives from RedHat and Microsoft. The latter announced that they are joining the Eclipse Foundation as solution provider members.

Tuesday I was attending several good talks, I’d like to mention Johan Stokking from the The Things Network: These people have created (crowdsourced) a network of LoRaWAN portals around Amsterdam which lets the little things of the Internet connect in a cheap and safe way. If you’re into IoT you should definitely check this out.

New this year at ECNA was a “Science Track” with presentations related to the projects in the Eclipse Science Working Group. EclipseCon France started this track in 2015 and we also had one at EclipseCon Europe later in 2015. This time the number of talks was nearly doubled – to thirteen. There was a lot exiting talks in this track and I think it is clear that the Science Working Group is maturing – only a couple of years after it was started.

Wednesday got a unexpected start. The keynote speaker for Thursday called in sick and someone should replace her. Could the Science Working Group step up? We said yes without actually thinking about it, but as it turned out that was not a problem. Everyone helped out and I think we pulled off a decent keynote. I’ve certainly seen my share of worse ones.

This slideshow requires JavaScript.

In the evening on the same day we arranged the yearly general meeting in the Science Working Group (SWG). At the end of this we had presentations from the Canadian Space Agency that showed Apogy and Halliburton that demonstrated software for analyzing geology in relation to oil-and gas-extraction. Yours truly was re-elected as a secretary for the SWG steering committee and Jay Billings was reelected as leader for the committee.

Thursday it was my turn to do a presentation about “Mylyn Docs and how it can be a powerful tool“. The room was nearly full, so I was pleased although I did not get as many questions as expected. I was approached later on by several of the attendees so I take this as an indication that others also think working on documentation generation tools can be fun 😄. The source code with examples is on GitHub.

I should add that even after ten years of going to Eclipse Conferences I still think they are awesome. You get to meet interesting and smart people, learn new things and inspire others. Some things are the same old, while others are in the forefront of technology and new developments. The conferences are pretty intense as there is a lot going on over the four days – so doing a writeup like this is not quite doing them justice. If you don’t believe me, come see for yourself.

The next Eclipse-conference is EclipseCon France in June and we also have one event here in Trondheim, The Eclipse DemoCamp Trondheim in August.

See you there…

EPUB tools in Mylyn 3.13

I realized it’s been quite a while since I wrote about building electronic books using the tools in Mylyn Docs and figured it is about time I published an update. It’s been pretty quiet around this project. I’ve had a couple of e-mails with request for support and a few bugs reported, most by myself. So I decided to have a look at the download numbers. The Mylyn Docs EPUB tools have not been part of the Eclipse release trains, so anyone installing the feature must be doing so actively. There was a total of 7899 downloads from the Mylyn 3.12 release (June 2014) and so far 2304 downloads from the latest 3.13 release (September 2014) — which I figure is not bad at all. I guess the silence is because there is little trouble with it. Anyway, a few bugs has been fixed and some new features has been added to simplify EPUB building. Here’s the summary.

Earlier this year I did some major changes in order to future proof the code and make ready for EPUB 3 support. In short the following was done:

  • OPSPublication was moved to Publication in order to make sense for both EPUB 2 and 3.
  • OPS2Publication was moved to OPSPublication as there is no OPS in EPUB 3.
  • EPUB2Bean was moved to public API and renamed to PublicationProxy.
  • Public API was cleaned up and documentation added where lacking.

These were API breaking changes and the version number was bumped to 2.0.0.

In addition MIME type detection was been greatly improved through the use of Apache Tika. In practice this does not matter much for EPUB 2 publications as the allowed content types are quite limited. But my dodgy content detection code from earlier could be removed and this implementation is much more trustworthy.

The biggest improvement came with the 3.13 release of Mylyn. It is now possible to simply specify an Eclipse table of contents file as a source for content declaration. This allows you to single source this part of the manifest. We use this mechanism at a project I’m working on and it has turned out to be real timesaver. Here’s another example:

This is the actual Ant code used to build the Mylyn Docs EPUB tools user guide as a book at the same time as the Eclipse Help is built. The Ant script is referenced in the pom-file and called by Maven during the generate-sources phase. You’ll find a mirror of the code at GitHub if you’d like a closer look. An example of the resulting book can be downloaded from http://blog.resheim.net/files/Building_EPUBs_with_Eclipse.epub

I’m planning to add support for EPUB 3, but so far there is no real need and nobody has requested it. However one feature I’ll probably will add, is to the wiki markup to HTML generation mechanism of Mylyn Docs. At the project just mentioned we use a lot of LaTeX math in our Markdown documents, so we would like these to be converted to MathML when the HTML is generated. Many reading systems are capable of displaying MathML properly, it is an required part of implementing EPUB 2 support. So we would be able to create e-books with beautifully rendered math straight from wiki markup.

…until next time.

Building EPUBs with Apache Ant

The EPUB tools that I’ve been working on the past year or so is about to graduate and is now a part of the Mylyn Docs project. Currently it is only available in the nightly builds. If you would like to install the tooling you may do so from the p2 repository listed. You can also built it yourself from my public git repo which is a bit ahead.

As the video in one of my earlier posts demonstrates, it is easy to create EPUBs from within Eclipse using the conversion wizard. But this method is fairly limited and lack many of the features of the Ant task. The task can easily be used from within the Eclipse, but what if you want to use it in a build which does not utilize Eclipse? As it turns out, this is quite straightforward.

In order to execute the Ant task from outside of Eclipse we need the core EPUB features along with parts of EMF and the EPUB Ant task. The following bundles are those required:

  • epub-ant
  • org.eclipse.emf.common
  • org.eclipse.emf.ecore.xmi
  • org.eclipse.emf.ecore
  • org.eclipse.mylyn.docs.epub.core

Now, epub-ant.jar is a bit special. It is packaged within org.eclipse.mylyn.docs.epub.ant. So if you build the tooling yourself, or use the nightly builds you need to dissect the bundle in order to get to the jar.

Don’t feel like digging for jar files and writing Ant scripts in order to try this out? No worries. Simply clone the git repository I’ve set up for examples and execute Ant in the various sub-folders. It contains a couple of examples (more to come) and also have the binaries you need.

If you need more information on how to use the tooling you can clone both the examples and the Mylyn Docs repositories and build the documentation EPUB (the “book” example) in order to read it on your favorite device. And if you feel adventurous you may want to try out the reader building on this tooling. It still have a few issues, but is quite usable and will of course allow you to read your (computer science) books from within Eclipse. You will have to build it from source, but there are instructions.

Getting to the EPUB support in Eclipse

It has been a very hectic week since EclipeCon Europe 2011 and I have not had time to follow up on those of you that have taken contact to learn more about EPUB support in Eclipse. My apologies. In case you missed the presentation you will find it at SlideShare (sans the demos). At the time I was told that all presentations were taped and will be published at YouTube. (I’m looking forward to watching those I missed).

Anyway… A short summary of status: The EPUB API, Ant task and UI is currently in CQ and is heading towards a release published with the next Mylyn release in February. So for now you cannot find the code in the Eclipse repositories. Meanwhile it is available at GitHub. If you need a p2 repository and have trouble creating it yourself, please ping me.

The screenshot above shows the EPUB reader within Eclipse. This is currently experimental and not a part of the initial contribution to Mylyn Docs. This code is also at GitHub, just take a look in the reader branch.

Please let me know if you have any questions.

Build your EPUBs with Eclipse, and read them too.

A lot has happened in the e-book world the past couple of years. There is an abundance of hardware for reading electronic books and the state of desktop reading systems is steadily improving. There is also a large number of electronic books available. Especially novels, but also technical material such as one of my current favorites: Pro Git. And as reading systems are improving, utilizing technologies such as SVG and CSS3; Electronic books become more suitable for publications where there are tables, figures and illustrations that must be presented correctly.

In response to this development I have in the past year worked on implementing support for putting together and reading EPUBs in Eclipse. This contribution is currently being processed and will most likely be available as a part of the next Mylyn release. One of the features of this contribution is the ability to quickly generate an EPUB from wiki markup as the video below demonstrates.

If you’re interested in creating electronic publications, from wiki markup or other sources – and you’re going to the sixth European Eclipse Conference – you may want to attend my talk about the subject. In any case I’ll be happy to answer any questions you may have. Just locate me in the foyer.

And while we’re on the subject of EclipseCon Europe. I’m really looking forward to it. This is one of the highlights of the year. A rare opportunity to attend very interesting talks and meet the rest of the community over a beer or two. See you in Ludwigsburg!

Slides from my presentation at EclipseCon Europe 2011: