tag:blogger.com,1999:blog-38790445529844727332024-03-27T07:37:36.785+01:00Merks' MeanderingsThe opinions expressed here are my own, not someone else's. If they seem rational, that's purely coincidental and you are likely reading far too much between the lines.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.comBlogger181125tag:blogger.com,1999:blog-3879044552984472733.post-65969897199635259782020-08-18T09:50:00.000+02:002020-08-18T09:50:06.683+02:00No Java? No Problem!<p>For the 2020-09 Eclipse Simultaneous Release, the Eclipse IDE will require Java 11 or higher to run. If the user doesn't have that installed, Eclipse simply won't start, instead popping up this dialog: <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-0sWgK4UlI2w/XzuCCZMXseI/AAAAAAAAC3Q/2p5CYOLDLt4Az5NpyV6aCpPTGAHoNzp0gCLcBGAsYHQ/s584/IncompatibleJVM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="239" data-original-width="584" height="131" src="https://1.bp.blogspot.com/-0sWgK4UlI2w/XzuCCZMXseI/AAAAAAAAC3Q/2p5CYOLDLt4Az5NpyV6aCpPTGAHoNzp0gCLcBGAsYHQ/w320-h131/IncompatibleJVM.png" width="320" /></a></div><p></p><p>That of course begs the question, what should I do now? The Eclipse Installer itself is an Eclipse application so it too will fail to start for the same reason. At least on Windows the Eclipse Installer is distributed as a native executable, so it will open a <a href="https://download.eclipse.org/oomph/jre/?vm=1_11_0_0_64_0&pn=Eclipse%20Installer&pu=http://wiki.eclipse.org/Eclipse_Installer&pi=http://download.eclipse.org/oomph/jre/128x128.png">semi-helpful page</a> in the browser to direct the user find a suitable JRE or JDK to install rather than popping up the above dialog.</p><p>Of course we are concerned that many users will update 2020-06 to 2020-09 only to find that Eclipse fails to start afterwards because they are currently running with Java 8. But Mickael Istria has planned ahead for this as part of the 2020-06 release, adding a validation check during the update process to determine if the current JVM is suitable for the update, thereby helping prevent this particular problem.</p><p>Now that <a href="https://www.eclipse.org/justj/">JustJ</a> is available for building Eclipse products with an embedded JRE, we can do even better. Several of the Eclipse Packaging Project's products will include a JustJ JRE in the packages for 2020-09, i.e., the C/C++, Rust, and JavaScript packages. Also the Eclipse Installer for 2020-09 will provide product variants that include a JustJ JRE. So they all will simply run out of the box regardless of which version of Java is installed and of course even when Java is not installed at all.</p><p>Even better, the Eclipse Installer will provide JustJ JREs as choices in the dialogs. A user who does not have Java installed will be offered JustJ JRE 14.02 as the default JRE. <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMeq6hIe3vECxCAyzEZhIDdD42JID1ZOBx7nCwf62HsQnO4DCBUYP85j1IyQ6apbmvnyOgY9I6NgZ4L6PQDF1bmKntCUT-fzTkEA8i8bveBR5AvdS28ueBkMw5TU_Uu2svpgF3ug0-ridC/s937/EclipseInstallerJustJ.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="594" data-original-width="937" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMeq6hIe3vECxCAyzEZhIDdD42JID1ZOBx7nCwf62HsQnO4DCBUYP85j1IyQ6apbmvnyOgY9I6NgZ4L6PQDF1bmKntCUT-fzTkEA8i8bveBR5AvdS28ueBkMw5TU_Uu2svpgF3ug0-ridC/w320-h203/EclipseInstallerJustJ.png" width="320" /></a></div><p></p><p>Choices of JustJ JREs will always be available in the Eclipse Installer; it will be the default only if no suitable version of Java is currently installed on the machine.</p><p>Eclipse Installers with an embedded JustJ JRE will be available starting with 2020-09 M3 for all supported platforms. For a sneak preview, you can find them in the <a href="https://download.eclipse.org/justj/?file=oomph/products/latest">nightly builds folder</a>. The ones with "-jre" in the name contain an embedded JRE (and the ones with "-restricted" in the name will only install 2020-09 versions of the products).</p><p>It was a <b>lot of work </b>getting this all in place, both building the JREs and updating Oomph's build to consume them. Not only that, just this week I had to rework EMF's build so that it functions with the latest platform where some of the JDT bundles have incremented their BREEs to Java 11. There's always something disruptive that creates a lot of work. I should point out that no one funds this work, so I often question how this is all actually sustainable in the long term (not to mention questioning my personal sanity).</p><p>I did found a small GmbH here in Switzerland. It's very pretty here!</p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-0B499FykO6A/XzuG-sxC9xI/AAAAAAAAC3k/VUgeP9BoWc4CO-MRFireV7E9cRrNQ60hwCLcBGAsYHQ/s5184/IMG_3326.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3888" data-original-width="5184" height="240" src="https://1.bp.blogspot.com/-0B499FykO6A/XzuG-sxC9xI/AAAAAAAAC3k/VUgeP9BoWc4CO-MRFireV7E9cRrNQ60hwCLcBGAsYHQ/w320-h240/IMG_3326.JPG" width="320" /></a></div><p>If you need help, consider that <a href="https://www.macromodeling.com/">help is available</a>. If no one pays for anything, at some point you will only get what you pay for, i.e., nothing. But that's a topic for another blog...</p>Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com1tag:blogger.com,1999:blog-3879044552984472733.post-40248022548398258412020-06-25T10:18:00.001+02:002020-06-25T10:18:32.471+02:00Eclipse JustJ<div>I've recently completed the initial support for provisioning the new <a href="https://www.eclipse.org/justj/">Eclipse JustJ</a> project, complete with a logo for it.<br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/--SJ-lAj4jZU/XvRXKtFcMVI/AAAAAAAACzE/rK6Bv1AXbdgdCC8LvFBLcdfjWNjpqmQMgCK4BGAsYHg/s200/justj_title.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="69" data-original-width="200" src="https://1.bp.blogspot.com/--SJ-lAj4jZU/XvRXKtFcMVI/AAAAAAAACzE/rK6Bv1AXbdgdCC8LvFBLcdfjWNjpqmQMgCK4BGAsYHg/justj_title.png" /></a></div><div></div><div><br /></div><div>I've learned several new technologies and honed existing technology skills to make this happen. For example, I've previously used Inkscape to create nicer images for Oomph; a *.png with alpha is much better than a *.gif with a transparent pixel, particularly with the vogue, dark-theme fashion trend, which for old people like me feels more like the old days of CRT monitors than something modern, but hey, to each their own. In any case, a *.svg is cool, definitely looks great at every resolution, and can easily be rendered to a *.png.<br /></div><div><br /></div><div>By the way, did you know that artwork derivative of Eclipse artwork requires special approval? Previously the Eclipse Board of Directors had to review and approve such logos, but now our beloved, supreme leader, Mike Milinkovich, is empowered to do that personally.<br /></div><div><br /></div><div>Getting to the point where we can redistribute JREs at Eclipse has been a long and winding road. This of course required Board approval and your elected Committer Representatives helped push that to fruition last year. Speaking of which, now there is an exciting late-breaking development: the move of <a href="https://adoptopenjdk.net/" target="_blank">AdoptOpenJDK</a> to <a href="https://www.infoq.com/news/2020/06/adoptopenjdk-eclipse-adoptium/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=Eclipse" target="_blank">Eclipse Adoptium</a>. This will be an important source JREs for JustJ!<br /></div><div><br /></div><div>One of the primary goals of JustJ is to provide JREs via p2 update sites such that a product build can easily incorporate a JRE into the product. With that in place, the product runs out-of-the-box regardless of the JRE installed on the end-user's computer, which is particularly useful for products that are not Java-centric where the end-user doesn't care about the fact that Eclipse is implemented using Java. This will also enable the Eclipse Installer to run out-of-the-box and will enable the installer to create an installation that, at the user's discretion, uses a JRE provided by Eclipse. In all cases, this includes the ability to update the installation's embedded JRE as new ones are released.<br /></div><div><br /></div><div>The first stage is to build a JRE from a JDK using <a href="https://www.eclipse.org/justj/?page=index#jlink">jlink</a>. This must run natively on the JDK's actual supported operating system and hardware architecture. Of course we want to automate this step, and all the steps involved in producing a p2 repository populated with JREs. This is where I had to learn about Jenkins pipeline scripts. I'm particularly grateful to Mikaël Barbero for helping me get started with a simple example. Now I am a pipeline junkie, and of course I had to learn Groovy as well. <br /></div><div><br /></div><div>In the initial stage, we <a href="https://www.eclipse.org/justj/?page=index#jre">generate the JREs</a> themselves, and that involves using shell scripts effectively. I'm not a big fan of shell scripts, but they're a necessary evil. I authored a single script that produces JREs on all the supported operating systems; one that I can run locally on Windows and on my two virtual boxes as well. The pipeline itself needs to run certain stages on specific agents such that their steps are performed on the appropriate operating system and hardware. I'm grate to <span class="gD" data-hovercard-id="Robert.Hilbrich@dlr.de" data-hovercard-owner-id="86" name="Robert.Hilbrich@dlr.de" role="gridcell" tabindex="">Robert Hilbrich of <a href="https://www.dlr.de">DLR</a> for supporting JustJ's builds with their organization's resource packs! He's also been kind enough to be one of our first test guinea pigs building a product with a JustJ JRE. The initial stage produces a <a href="https://download.eclipse.org/justj/www/?page=download#jre-downloads">set of JREs</a>.<br /></span></div><div><span class="gD" data-hovercard-id="Robert.Hilbrich@dlr.de" data-hovercard-owner-id="86" name="Robert.Hilbrich@dlr.de" role="gridcell" tabindex=""><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-r2RYf3l1ZUk/XvRaGEkiLTI/AAAAAAAACzg/9w6Na3rjlEU7rTY_v51gFtZMRzxpibM6QCK4BGAsYHg/s5184/IMG_2959.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3888" data-original-width="5184" src="https://1.bp.blogspot.com/-r2RYf3l1ZUk/XvRaGEkiLTI/AAAAAAAACzg/9w6Na3rjlEU7rTY_v51gFtZMRzxpibM6QCK4BGAsYHg/s320/IMG_2959.JPG" width="320" /></a></div><span class="gD" data-hovercard-id="Robert.Hilbrich@dlr.de" data-hovercard-owner-id="86" name="Robert.Hilbrich@dlr.de" role="gridcell" tabindex=""><br /></span></div><div>In the next stage, JREs need to be wrapped into plugins and features to produce a p2 repository via a Maven/Tycho build. This is a huge amount of boiler plate scaffolding that is error-prone to author and challenging to maintain, especially when providing multiple JRE flavors. So of course we want to automate the generation of this scaffolding as well. Naturally if we're going to generate something, we need a model to capture the boiled-down essence of what needs to be generated. So I whipped together an <a href="https://www.eclipse.org/modeling/emf/">EMF</a> model and used JET templates to sketch out the scaffolding. With the super cool <a href="https://help.eclipse.org/2020-03/index.jsp?topic=%2Forg.eclipse.emf.doc%2Ftutorials%2Fjet%2Fjet.html&cp%3D30_1_3">JET Editor</a>, these are really easy to author and maintain. This stage is <a href="https://www.eclipse.org/justj/?page=index#jre-p2">described in the documentation</a> and produces a <a href="https://download.eclipse.org/justj/www/?page=download#p2-update-sites">p2 update site</a>. The sites are automatically maintained and the index pages are automatically generated.<br /></div><div><br /></div><div>To author nice documentation I had to learn PHP much better. It's really quite cool and very powerful, particularly for producing pages with dynamic content. For example, I used it to implement more flexible browsing support of <a href="https://download.eclipse.org/justj/?file=">download.eclipse.org</a> so that one can really see all the files present, even when there is an index.html or index.php in the folder. In any case, there is now lots of documentation for JustJ to describe everything in detail, and it was authored with the help of PHP scaffolding.<br /></div><div><br /></div><div>Last but not least, there is an <a href="https://wiki.eclipse.org/Eclipse_Oomph_Authoring">Oomph</a> setup to automate the provisioning of a full development environment along with <a href="https://www.eclipse.org/justj/?page=developer#setup">a tutorial</a> to describe in detail everything in that workspace. There's no excuse not to contribute. While authoring this tutorial, I found that creating nice, appropriately-clipped screen captures is super annoying and very time consuming, so I dropped a little goodie into Oomph to make that easier. You might want to try it. Just add "-Dorg.eclipse.oomph.ui.screenshot=<some-folder-location>" to your eclipse.ini to enable it. Then, if you hit Ctrl twice quickly, screen captures will be produced immediately based on where your application currently has focus. If you hit Shift twice quickly, screen captures will be produced after a short delay. This allows you to bring up a menu from the menu bar, from a toolbar button, or a context menu, and capture that menu. In all cases, the captures include the "simulated" mouse cursor and starts with the "focus", expanding outward to the full enclosing window.<br /></div><div><br /></div><div>The bottom line, JustJ generates <b>everything</b> given just a set of URLs to JDKs as input, and it maintains <b>everything</b> automatically. It even provides an <a href="https://www.eclipse.org/justj/?page=documentation#products">example</a> of how to build a product with an embedded JRE to get you started quickly. And thanks to some test guinea pigs, we know it really works as advertised.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-BPgLVPZJvXg/XvRatdCFZ6I/AAAAAAAACz0/lYjJuA3eyikploEn7oxbwSA05ZmksryHQCK4BGAsYHg/s5184/IMG_3029.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3888" data-original-width="5184" src="https://1.bp.blogspot.com/-BPgLVPZJvXg/XvRatdCFZ6I/AAAAAAAACz0/lYjJuA3eyikploEn7oxbwSA05ZmksryHQCK4BGAsYHg/s320/IMG_3029.JPG" width="320" /></a></div><div><br /></div><div>On the personal front, during this time period, I finished my move to Switzerland. Getting up early here is a feast for the eyes! The movers were scurrying around my apartment the same days as the 2020-06 release, which was also the same day as one of the Eclipse Board meetings. That was a little too much to juggle at once! <br /></div><div><br /></div><div>At this point, I can make anything work and I can make anything that already works work even better. Need help with something? I'm easy to find...<br /></div>Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com4tag:blogger.com,1999:blog-3879044552984472733.post-22714722527074412742019-11-08T10:04:00.000+01:002019-11-08T10:04:06.579+01:00Getting to the SourceAs a Java developer using JDT, no doubt you are intimately familiar with Ctrl-Shift-T to launch the Open Type dialog. You might not even realize this is a shortcut accessible via the Navigate menu. So you probably will not have noticed that this menu also contains Open Discovered Type: <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-JwsYn0w4HDI/XcUkFZFWfpI/AAAAAAAACuA/x-itRQnxAi4l_srTPEYvffHS6d2Px8EEwCLcBGAsYHQ/s1600/NavigateOpenDiscoveredType.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="709" data-original-width="376" height="320" src="https://1.bp.blogspot.com/-JwsYn0w4HDI/XcUkFZFWfpI/AAAAAAAACuA/x-itRQnxAi4l_srTPEYvffHS6d2Px8EEwCLcBGAsYHQ/s320/NavigateOpenDiscoveredType.png" width="169" /></a></div>
<br />
Eclipse has a huge variety of open source projects maintained in a bewildering collection of Git repositories. Many are hosted at Eclipse:<br />
<blockquote class="tr_bq">
<a href="https://git.eclipse.org/c/">https://git.eclipse.org/c/</a></blockquote>
Others are hosted at Github: <br />
<blockquote class="tr_bq">
<a href="https://github.com/eclipse/">https://github.com/eclipse/</a></blockquote>
<br />
Finding the Git repository that contains a particular Java class is like finding a needle in a haystack. This is where Open Discovered Type comes to the rescue. Once a week, Oomph indexes every *.java file in every Git repository hosted by git.eclipse.org and github.com/eclipse. The Open Discovered Type dialog loads this information to populate a tree view of all these packages and classes.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-lZXS9WRSVr8/XcUophKI66I/AAAAAAAACuM/HfMp5TN738w_cQnDTi999qN5Y8COhXNPgCLcBGAsYHQ/s1600/EmptyOpenDiscoveredDialog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="488" data-original-width="725" height="215" src="https://1.bp.blogspot.com/-lZXS9WRSVr8/XcUophKI66I/AAAAAAAACuM/HfMp5TN738w_cQnDTi999qN5Y8COhXNPgCLcBGAsYHQ/s320/EmptyOpenDiscoveredDialog.png" width="320" /></a></div>
<br />
Please read the help information the first time you use it. It was written to help you get the most out of this dialog. Also be patient the first time you launch the dialog; there's a lot of information to download.<br />
<br />
Suffice to say, you can use the dialog much like you do Open Type. So here we search for JavaCore and discover all the classes with that name:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-3Girme8m5z4/XcUrB7s2neI/AAAAAAAACuY/ISr8AMR0zuEgnlpkX5a3Vw337WNLKeiuACLcBGAsYHQ/s1600/OpenDiscoveredTypeDialogForJavaCore.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="939" data-original-width="731" height="320" src="https://1.bp.blogspot.com/-3Girme8m5z4/XcUrB7s2neI/AAAAAAAACuY/ISr8AMR0zuEgnlpkX5a3Vw337WNLKeiuACLcBGAsYHQ/s320/OpenDiscoveredTypeDialogForJavaCore.png" width="249" /></a></div>
<br />
We can select any one of them and discover all the Git repositories containing that class and we can use the context menu for each link for each repository or for the specific file in that repository to open the link where we want it opened. From that link, you can of course see the full history of the repository or specific file.<br />
<br />
As a bonus, if this repository provides an Oomph setup, you can easily use that Oomph setup to import the sources for this project into your workspace. If there is no Oomph setup, you'll have to do that manually.<br />
<br />
In any case, contributing to Eclipse open source projects has never been easier.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-42731811097974483912019-08-29T11:23:00.000+02:002019-08-29T11:23:18.877+02:00And Now for Something Completely DifferentIt's been 5 years since I last blogged, so I had to delete 500 SPAM
posts when getting started again. Much has happened over the past
years, some of them not so great. When you start to get old like me, you
must deal with the older generation gradually passing on and health
problems, such as coronary re-plumbing, can become an ugly fact of life.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-0M3QCRwIRRU/XWeKYT-JIII/AAAAAAAACrw/zhLs6JHOI_QXkVGpXNRHjSeWIpj_ZszNwCLcBGAs/s1600/OldShip.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://1.bp.blogspot.com/-0M3QCRwIRRU/XWeKYT-JIII/AAAAAAAACrw/zhLs6JHOI_QXkVGpXNRHjSeWIpj_ZszNwCLcBGAs/s320/OldShip.png" width="320" /></a></div>
<br />
I've been working with itemis for the past 11 years, but that now
draws to a close. I wish to thank them for their generous support over
all these years. Many of you might thank them as well because much of
what I've contributed is thanks to their funding. Though admittedly I
have the nasty habit of working like a maniac, beyond any reasonable
number of working hours, regardless of whether or not there is financial
reward. Cool things are just so compelling. But the worst habit then
is not bothering to document or advertise all these cool new features as
they become available, but rather to dive into the next obsession
because somehow that's more compelling. Compulsion is a bit of a Merks'
family trait, e.g., my sister has more than 20 dogs, though it's easy
to lose count...<br />
<br />
In any case, most of my obsession over the last year has been related
to working with Airbus. I don't normally talk about my customers, but
given they were gracious enough to allow me to demo at last year's
EclipseCon the software being developed at Airbus, it's common knowledge
anyway. My goodness but that was a creative and cool project!
Unfortunately that too has, as is the case for all good things, come
to an end.<br />
<br />
I immediately dove into generating a quality report for the Eclipse
SimRel p2 repository; there's no rest for the wicked nor for the
compelled. I used EMF's Java Emitter Templates (JET) for implementing
that, just as I did for generating the full site information for <a href="https://download.eclipse.org/modeling/emf/emf/builds/index.html">EMF's Update Sites</a> as part of migrating the build to Maven/Tycho.<br />
<br />
Speaking of which, did you know that you can make it trivially easy for your contributors to set up a development environment? Just have a look at <a href="https://ci.eclipse.org/emf/">EMF' build page</a>. Also, did you know that there exists such a thing for the complete <a href="https://wiki.eclipse.org/Eclipse_Platform_SDK_Provisioning">Eclipse Platform SDK</a> as well? Of course not, because I never bothered to tell you!<br />
<br />
What's really supergeil (yes, I live in Germany and speak fluent
Denglish) about the installing an environment with the full Platform
SDK, or some subset there of, is that you can easily see all the Git
history of each source file, so you can see what exactly has changed and
evolved. Also, when developing new applications, you can easily search
for how the Platform implements those things; then you can snarf and
barf out your own solutions, with all due respect for the EPL of
course. You can even find out all the places that a constant is
actually used; you cannot do that against binaries because constants get
in-lined. Also, if you see some label in the IDE, you can search for
where it comes from, some *.properties file somewhere no doubt, and then
you will know the name of that property and can easily find where
that's defined and how that's used in the code. You might even
contribute fixes via Gerrit commits!<br />
<br />
But I digress. I was using JET to generate a nice helpful web page
with information about all the problems in the SimRel repo, or in any
arbitrary repo actually, i.e., invalid licenses, unsigned content,
missing pack200 files, duplicate bundles, inappropriate providers, and
so on. But then I got frustrated that JET templates eventually get
really hard to read, especially as they become more complicated. Then,
when you need it the most, all the nice features of JDT are missing
while editing the scriplets and expressions in that template. So as I am
wont to do, I digressed further and spent the better part of the last
two months working on a rich editor for JET. I'm sorry (not!) that I
had to violate a few API rules to do so, but alas, API rights activists
is a topic for another blog because that's a long digression. The good thing is that the JET editor is finished now; it will be in
2019-09's M3. Here's a sneak preview:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-zbHtviZ7w7c/XWeOuCKpj8I/AAAAAAAACr8/BwnJL3B9rdM4kFSLl--Z7wojabe5T9OvQCLcBGAs/s1600/JETEditor.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1157" data-original-width="1600" height="231" src="https://1.bp.blogspot.com/-zbHtviZ7w7c/XWeOuCKpj8I/AAAAAAAACr8/BwnJL3B9rdM4kFSLl--Z7wojabe5T9OvQCLcBGAs/s320/JETEditor.png" width="320" /></a></div>
<br />
Yes, that's content assist, just is if were in a real Java editor! Not only that, this time I wrote documentation for it in EMF's doc bundle. And, to top that off with icing, this time I blog
about it. Perhaps only three people in the world will ever use it, but
I am one of those three people and I love it and I need it even for
working with EMF's code generation templates too. So now I can pop this off
my digression stack and go back to generating that p2 repo quality
report. I've been doing that for the past week, and it's almost ready
for prime-time.<br />
<br />
But then at this point, I must ask myself, where is the financial gain
in all this? My local neighborhood fox, I've named him Fergus, might
be trying to tell me something.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-8Rd65OT-GrM/XWeQ1fQPPjI/AAAAAAAACsI/7oRwuFKL9BcDM0ahSr-DGyTKWKuxLRT2QCLcBGAs/s1600/Fergus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="986" height="320" src="https://1.bp.blogspot.com/-8Rd65OT-GrM/XWeQ1fQPPjI/AAAAAAAACsI/7oRwuFKL9BcDM0ahSr-DGyTKWKuxLRT2QCLcBGAs/s320/Fergus.png" width="197" /></a></div>
<br />
Perhaps you should be a little more sly. Perhaps the endless free goodness too must come to an end...Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-265761208173362282014-10-06T14:42:00.001+02:002014-10-06T14:42:55.716+02:00A Floor Wax or a Dessert Topping?For those as old as I am and as influenced by American culture as most Canadians certainly are, the question "Is it a floor wax or a dessert topping?" likely <a href="http://en.wikipedia.org/wiki/List_of_Saturday_Night_Live_commercial_parodies#cite_note-252">rings a bell</a>. Unfortunately, because the internet aims to curb the exchange cultural media—I use the term "cultural media" loosely in this case—you likely can't watch the video via that Wikipedia link where you live, but there are <a href="https://screen.yahoo.com/shimmer-floor-wax-000000185.html">alternatives</a>, thanks to the wonders of Google search. How could modern society, and effective software developers, function without Google? It makes a guy dizzy just to think about it!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-oXE6HWsS9pc/VCz9tDOWLLI/AAAAAAAACPI/zP_9W3Agfxk/s1600/IMG_2140.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-oXE6HWsS9pc/VCz9tDOWLLI/AAAAAAAACPI/zP_9W3Agfxk/s1600/IMG_2140.JPG" height="240" width="320" /></a></div>
<br />
I bring this floor wax verses dessert topping question up because <a href="https://www.eclipsecon.org/europe2014/">EclipseCon</a> is just around the corner. Like a floor wax, it's a valuable utility, in this case for learning cool new things and for interacting with experts and other like-minded people. Yet like a dessert topping, it's fun, because of the social events, and fattening, because the food is so good. I'm certainly excited to attend yet another EclipseCon. Barring death or disease, I wouldn't miss it! I've been to every EclipseCon and Eclipse Summit, except one.<br />
<br />
<a href="http://thegordian.blogspot.de/">Eike</a> and I will be <a href="https://www.eclipsecon.org/europe2014/session/oomph-automatically-provision-project-specific-ide">presenting Oomph</a>, which is like a floor wax—reducing hours of tedious work to several minutes of automation— and like a dessert topping—recording your preferences and propagating them to all your workspaces. Perhaps the latter feature isn't even technically a dessert topping, not if you consider the top reasons why some people <a href="http://www.ihateeclipse.com/">hate Eclipse</a>. In particular, consider how many of those reasons relate to issues that are addressed by appropriate preferences. Of course that leads to an endless debate about what's the best default preference, i.e., surely no one wants to use Cp1252 as their default workspace encoding. We intend to address this issue with <a href="http://projects.eclipse.org/projects/tools.oomph">Oomph</a>, so come to <a href="https://www.eclipsecon.org/europe2014/session/oomph-automatically-provision-project-specific-ide">our talk</a> and find out about the grand things that are in store.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-yxr5GeBY4wc/VCz9RexJv0I/AAAAAAAACPA/mTWXqRDnCsA/s1600/IMG_1809.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-yxr5GeBY4wc/VCz9RexJv0I/AAAAAAAACPA/mTWXqRDnCsA/s1600/IMG_1809.JPG" height="240" width="320" /></a></div>
<br />
The biggest problem with Oomph right now is documentation. Which self-respecting developer wants to spend time on that? Not only is it a motivation issue, authoring help-center documentation is beyond horrible. So, being tool smiths and <a href="http://en.wikipedia.org/wiki/Obsessive%E2%80%93compulsive_disorder">OCD</a>, we've worked on making that much easier. The basic idea is that the documentation is authored as Javadoc, with numerous doclet extensions. It is processed to generate the help center HTML. The overall processing includes a preprocessor phase to produce model diagrams, screen captures, Java snippets, XML snippets, and even tree views complete with their associated properties view. All this makes the author's life simpler and the <a href="http://download.eclipse.org/oomph/help">end result</a> is way beyond cool. In particular, have a look at the Setup Resources section; <a href="http://download.eclipse.org/oomph/help/org.eclipse.oomph.setup.doc/html/Everything.html#SetupResource">this link</a> is likely to change in the coming days when we refactor the documentation using JDT.<br />
<br />
Not only have I been busy with these Oomph-related things, <a href="http://wiki.eclipse.org/Xcore">Xcore</a> has some dramatic performance improvements in the latest Luna service release thanks in large part to my <a href="http://www.itemis.com/">itemis</a> colleague, <a href="https://plus.google.com/+StefanOehme/posts">Stefan Oehme</a>, a member of the world-renowned Xtext team. And of course there was the usual service and support work associated with EMF itself, but everyone takes that for granted. I also want to thank <a href="http://eclipsesource.com/blogs/author/jhelming/">Jonas</a> for revamping the embarrassingly outdated <a href="http://www.eclipse.org/modeling/">Modeling</a> home page along with <a href="http://www.eclipse.org/emf/">EMF</a>'s home page. It's hard to keep up with all these driving factors, but it's definitely better than being bored!<br />
<br />
I hope to see you in Ludwigsburg at the end of the month. Feel free to test my much-improved German skills! Though be prepared to hear me complain about the complexities of German grammar. <span class="" id="result_box" lang="de"><span class="hps">Sollte</span><span> das ein</span> </span><span class="" id="result_box" lang="de"><span>das, </span></span><span class="" id="result_box" lang="de"><span class="hps">ein</span> <span class="hps">die</span><span>,</span> <span class="hps">oder ein</span> <span class="hps">der</span> <span class="hps">sein</span><span class="">? Translated literally to the pointless question, should that a the, a the, or a the be? Note the three gender articles and dangling verb. Don't expect to get the point of a German sentence until you get to the very end.</span></span>Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com1tag:blogger.com,1999:blog-3879044552984472733.post-21776550207359758402014-02-14T14:44:00.000+01:002014-02-14T14:44:54.221+01:00Shoes for the ShoemakerWe shoemakers are typically so busy making shoes for others that we and
our children are often out and about in shoddy shoes if not
barefoot.
There is also a strong tendency in the wider Eclipse community to find fault without taking action, looking instead to others to magically fix problems while feeling entitled to "motivate" those actions with poisonous
complaints.
We should consider carefully what's wrong with this picture.<br />
<br />
Consider for example the all-important <a href="http://www.eclipse.org/eclipse/">Eclipse Platform</a> project and the perennial concern
about the limited contributions it receives. Of course this same
concern extends to all projects<em>—</em>we'd all love high-quality
contributions associated with each and every Bugzilla report<em>—</em>but let's
just take the platform as a case in point. Suppose you would like to provision an
IDE for working with the platform SDK source so you can commit your bug fixes to
Gerrit. All you need to do to get started is follow <a href="https://wiki.eclipse.org/Platform_UI/How_to_Contribute#Setting_up_your_SDK">a few <i>simple</i> steps</a>.<br />
<br />
That's right, in the modern age of integrated development environments,
you're expected to act as an interpreter for converting human language
scripts into machine operations. Does that not strike you as
completely anachronistic? Of course you're likely already doing this each time you provision an IDE to work on your own project, and you likely don't keep up with the release train milestones because it's a royal pain to do all this work each time there's a new version.<br />
<br />
This whole problem irritates me to the extreme, not so much the
platform's specific problem, but the fact that I have the same problem
for EMF and for every project I use and to which I wish to contribute. Just so you don't think I'm throwing bricks
at the platform, have a look into my glass house, in particular at the extremely
lovely analog of the platform's wiki page for <a href="http://wiki.eclipse.org/EMF/Setting_up_a_development_environment">setting up EMF's source</a>.
Good luck getting that to work! What that heck is CVS? <br />
<br />
Not only is it
anachronistic to follow scripts manually, it's always the case that
these scripts become dated and are in need of constant maintenance, which,
as busy developers, we don't have time to do. Compound that with the fact that <a href="http://dev.eclipse.org/mhonarc/lists/e4-dev/msg08476.html">the scripts are buggy</a>, you should not be surprised that when you treat the community like monkeys, you end up mostly with a lot of hooting.
<br />
<br />
Oh well, so much for the whining, sniveling, and complaining part, this problem calls for action. <a href="http://thegordian.blogspot.de/">Eike</a>
and I, being inherently lazy, don't even want to follow these kinds of scripts
ourselves so we've worked on <a href="http://git.eclipse.org/c/cdo/cdo.git/plain/plugins/org.eclipse.emf.cdo.releng.setup/help/installer/index.html">an alternative</a> approach.
Yes, there's still <a href="https://wiki.eclipse.org/Setup-Eclipse">a script</a> for bootstrap purposes<em></em><em>—</em>you can help improve it<em>—</em>but here's the synopsis:<br />
<ul>
<li>just as you would any Eclipse
package, <a href="https://hudson.eclipse.org/cdo/job/emf-cdo-integration/lastSuccessfulBuild/artifact/zips/">download</a> the appropriate version of the
Eclipse Oomph installer<em>—</em>we need to do some brand marketing instead of just calling it the "Setup tool",</li>
<li>unzip it,</li>
<li>run it, </li>
<li>select the project you wish to set up, </li>
<li>go for
coffee, </li>
<li>and come back to enjoy your fully provisioned IDE along with that
fresh cup of Java.</li>
</ul>
Here's how you'd provision an IDE for working with the platform's SDK:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Ov9ajJ7-9rI/Uv4dANJCPdI/AAAAAAAACE8/pq1TqpDU0r4/s1600/InstallerForPlattformSDK.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJWDdsJDeHTc7_CncuQ60IHO6Y903s4ny400SlAlh64fUhEW-mb782oUpUujuppR4ZVmuB4BCVS_LhIC26mJhl4OlCXSq-vTC2vTnWsBoBTW48SuPw0y2izvbMzmXRcIvBx-nKLHGrMyDJ/s1600/InstallerForPlattformSDK.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJWDdsJDeHTc7_CncuQ60IHO6Y903s4ny400SlAlh64fUhEW-mb782oUpUujuppR4ZVmuB4BCVS_LhIC26mJhl4OlCXSq-vTC2vTnWsBoBTW48SuPw0y2izvbMzmXRcIvBx-nKLHGrMyDJ/s1600/InstallerForPlattformSDK.png" height="320" width="268" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
Here's the end result:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-s9IXw4WeSjk/Uv36hQ2_sII/AAAAAAAACEk/4mQp9MkuAac/s1600/ProvisionedPlatform.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-s9IXw4WeSjk/Uv36hQ2_sII/AAAAAAAACEk/4mQp9MkuAac/s1600/ProvisionedPlatform.png" height="189" width="320" /></a></div>
<br />
Of course a workspace with the entire Eclipse SDK as source is a bit aggressive, but it's a great proof of concept that it can be done for the entire platform. Be patient though, Rome wasn't built in a day: the platform's code base is very large, so cloning it all takes time, for me more than an hour! Try a simpler project, like the EMF Core SDK, if you want more immediate gratification, and keep in mind that this would not be any faster if you did it manually. Note that Oomph was built with EMF. Did I mention that we're inherently lazy?
<br />
<br />
It's quite easy to author an executable setup script for your own project. Here's how the platform's setup script looks:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-18Gq3dqlN6w/Uv37iChMM4I/AAAAAAAACEs/btYEkSrdqO4/s1600/PlatformSetup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-18Gq3dqlN6w/Uv37iChMM4I/AAAAAAAACEs/btYEkSrdqO4/s1600/PlatformSetup.png" height="320" width="295" /></a></div>
<br />
The platform's script is quite complex because the platform itself is complex. Not only that, there are gotchas to get the platform to build without errors, e.g., an inherent need to install several JREs, which I avoided by changing project-specific preferences to not treat an imperfect JRE match as an error. You can see there are tasks to set global preferences, a task to install additional tools, e.g., the EE profiles feature, tasks to clone the dozens of repos, a task to materialize the target platform, a task to populate reasonable <a href="http://www.bsiag.com/scout/dynamic-working-sets/">dynamic working sets</a>, and so on. Unfortunately it's apparently very hard to build all the platform's Ant jars and there appears to be a platform bug that requires an IDE "Restart" followed by a "Build All" before everything builds without errors and with less than 17,000 warnings. Note that the provisioned target platform contains only bundles from Orbit and from Jetty; I have no idea how the Jetty folks provision an IDE to work with source.<br />
<br />
Eike and I intend to maintain an index of all Eclipse project setup
scripts so that our community of contributors can enjoy one-stop shopping. In
addition, there are already folks looking to maintain indices for other
open source forges.<br />
<br />
The script-authoring documentation is a work in progress,
but of course you can look at all the working examples as a basis for creating your own; remember to turn on "Live Validation" in the editor to catch problems early. Note that if you provision the CDO Release Engineering environment using Oomph, you'll have all
of Oomph's source code and some <a href="http://git.eclipse.org/c/cdo/cdo.git/tree/plugins/org.eclipse.emf.cdo.releng.setup/setups">example scripts</a> at your fingertips. Contributions to the project are welcome; your changes can be easily committed to Gerrit.
If you have questions, please use the <a href="http://www.eclipse.org/forums/eclipse.tools.emf%E2%80%8E">EMF newsgroup</a> and prefix the
subject line with "[Oomph]". If you find problems, please report a <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMF&component=cdo.releng&version=4.3&short_desc=[Oomph]">Bugzilla</a>. And finally, if you're so inclined, come see our <a href="https://www.eclipsecon.org/na2014/session/automating-configuration-project-specific-ides">EclipseCon presentation</a>!<br />
<br />
As you might expect, we're not the only ones who recognize the need to solve this vexing problem nor the only ones with a solution for it. If you need this same type
of thing in an enterprise context, you'll want to have a look at the
cool features of <a href="http://www.itemis.de/itemis-ag/services-und-loesungen/language=de/48917/automatisches-ide-und-workspace-management">p3</a>, e.g., carefully managed inside-the-firewall p2 repositories.<br />
<br />
As a footnote, it's committer representative <a href="http://www.eclipse.org/org/elections/keydates.php">election</a> time again. How
will you decide how best to cast your vote given the 4 available
choices this year? Of course you'll want people who <b>actively</b> represent your
committer interests at Eclipse, so you might glance at <a href="http://dash.eclipse.org/dash/commits/web-app/active-committers.cgi?top=100">commit stats</a> to see who's actively committing to notice these lines-of-code-committed stats over the past 1, 3, 6, and 9 months:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-7KZeF4VxfrI/Uv3tvxmyz9I/AAAAAAAACDo/OwuZIOs1soM/s1600/CommitStats2014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-7KZeF4VxfrI/Uv3tvxmyz9I/AAAAAAAACDo/OwuZIOs1soM/s1600/CommitStats2014.png" height="112" width="320" /></a></div>
<br />
As a caveat, keep in mind that modeling is a great productivity amplifier! Not only that,
code commits are not the only significant committer activity and are mostly certainly not a good measure of who will best represent your interests.
On that note, I can only promise that, if elected, I'll continue to do my best to
make sure Eclipse is a great place to be. You can definitely count on me to take action where action is needed. Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com35tag:blogger.com,1999:blog-3879044552984472733.post-5618767163403379552013-04-25T08:05:00.000+02:002013-04-25T08:05:02.941+02:00Modeling: Eclipse Daze at JAX 2013<a href="http://thegordian.blogspot.de/2013/04/join-eclipse-modeling-day-at-jax-2013.html">Eike</a> and I (well, mostly Eike because I'm faul) have organized this year's <a href="http://jax.de/2013/sessions/?tid=2971" target="_blank">Eclipse Modeling Day</a> at the <a href="http://jax.de/2013" target="_blank">JAX</a> conference in Mainz. We hope to see you in Gutenbergsaal 2 on Friday, March 26th, at 9:00AM sharp. Eike will perform feats of magic to entertain you.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/_rFZqMGOSYY8/S-LxqmUO5ZI/AAAAAAAABn0/ZkrROT3wLKE/s1600/JumpForJoy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="209" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/S-LxqmUO5ZI/AAAAAAAABn0/ZkrROT3wLKE/s320/JumpForJoy.jpg" width="320" /></a></div>
<br />
We think you'll really enjoy the mix of technology talks from Eclipse project leads and experienced industrial users.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com1tag:blogger.com,1999:blog-3879044552984472733.post-22880533352712626322013-01-16T07:25:00.000+01:002013-01-16T07:25:48.546+01:00Decorating with EMFI recently added something totally cool to EMF. It's so cool, you might want to use it even if you don't use EMF for anything else. You're probably aware that JFace provides <a href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjface%2Fviewers%2FColumnViewerToolTipSupport.html">tool tip support</a> for column viewers and of course, as a user of JDT, you've likely made extensive use of the Java editor's Javadoc hovers which display HTML-based information that even allows hyperlink navigation. It's effectively a mini browser. With the <a href="http://git.eclipse.org/c/emf/org.eclipse.emf.git/tree/plugins/org.eclipse.emf.common.ui/src/org/eclipse/emf/common/ui/viewer/ColumnViewerInformationControlToolTipSupport.java">new feature</a> I added, you can easily display HMTL-based hover information in any column viewer. You can see that in action with the <a href="http://wiki.eclipse.org/Image:Org.eclipse.emf.example.tree.zip">sample</a> I created; you'll need the <a href="http://download.eclipse.org/modeling/emf/emf/updates/nightly">latest build</a>. It's an RCP application that looks like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDIkjQ-MIEEVCFA5b-vopb2cIHmFWiHOr6e8Y6Wvp-S3QKZQmjdRTjIxGjKzkUKr4cSORSHxRQnwGUlpS2nbnQD5WhkgCcWftE-8fh5EylZ5wiNMaCHc85TLK4WjYBrHdhNzREEuYmVOWg/s1600/TreeWithHTMLHover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDIkjQ-MIEEVCFA5b-vopb2cIHmFWiHOr6e8Y6Wvp-S3QKZQmjdRTjIxGjKzkUKr4cSORSHxRQnwGUlpS2nbnQD5WhkgCcWftE-8fh5EylZ5wiNMaCHc85TLK4WjYBrHdhNzREEuYmVOWg/s1600/TreeWithHTMLHover.png" /></a></div>
It displays a simple hand-written file system "model" where the files have links to other files. The hovers allow you to navigate those links within the tree. Note that EMF ships with many fine-grained features, so you need only depend on EMF's Common UI feature to exploit this, i.e., just two very small plug-ins, not the whole EMF runtime.<br />
<br />
I used this basic feature to implement improved validation support. You can try this out by enabling Sample Ecore Editor → Live Validation. With that enabled, whenever you change the model, the tree view will be decorated with validation results. For example, when you create a new EClass, it won't have a name, and that's invalid. The hover displays that as follows:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-137iwi80TIY/UPUPgmCpR9I/AAAAAAAAB-I/uOQI9XkydJg/s1600/EcoreValidatorLeafHover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="http://2.bp.blogspot.com/-137iwi80TIY/UPUPgmCpR9I/AAAAAAAAB-I/uOQI9XkydJg/s320/EcoreValidatorLeafHover.png" width="320" /></a></div>
Note that the validation decorations propagate up the tree. The hovers at these higher levels display a composed result which contains links to allow you to navigate directly to any child object with a problem.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-JxHhrUJp19Q/UPUPgo_ua4I/AAAAAAAAB-Q/8tD9LKSzVvM/s1600/EcoreValidatorIntermediateHover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="137" src="http://3.bp.blogspot.com/-JxHhrUJp19Q/UPUPgo_ua4I/AAAAAAAAB-Q/8tD9LKSzVvM/s320/EcoreValidatorIntermediateHover.png" width="320" /></a></div>
Also, the properties view itself is decorated, so a feature with a problematic value will be called out and selecting it provides details in the status line.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-dkkfnf-Glyo/UPUPgtct-sI/AAAAAAAAB-M/W5syHeMlIb4/s1600/EcoreValidatorProperties.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="145" src="http://4.bp.blogspot.com/-dkkfnf-Glyo/UPUPgtct-sI/AAAAAAAAB-M/W5syHeMlIb4/s320/EcoreValidatorProperties.png" width="320" /></a></div>
Pretty cool hey? And now for the best part: this has all been generated. So if you'd like to see this type of thing in your own model, just set the GenModel's Editor Decoration property to Live, regenerate the editor, and enjoy the results. Have a look at the underlying infrastructure and let your imagination run wild with creative ideas of your own.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-HBB-AlQ9KrU/UPUQI0d9KRI/AAAAAAAAB-o/bwZ8ynzj474/s1600/Meditate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="http://3.bp.blogspot.com/-HBB-AlQ9KrU/UPUQI0d9KRI/AAAAAAAAB-o/bwZ8ynzj474/s320/Meditate.png" width="320" /></a></div>
I'd like to thank <a href="http://www.itemis.com/itemis-ag/career/language=en/2645/what-s-waiting-for-you-at-itemis">itemis</a>, the generous sponsor of cool things, for funding this year's "Christmas tree decoration" effort. The benefits will definitely outlast your decorated Christmas tree.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com2tag:blogger.com,1999:blog-3879044552984472733.post-83414716866316694202013-01-09T14:13:00.000+01:002013-01-09T14:13:00.369+01:00EMF Can Do What?I've been very busy these past months implementing all kinds of cool new things. Of course I always intend to do some marketing for them, but once each problem is solved, it loses its glitter and I quickly focus on the next cool thing. I know I really should take time to make the community aware of new capabilities, because it makes those things more valuable in reality, but I still prefer to focus on development. Oh well, we all know where the <a href="http://en.wikipedia.org/wiki/The_road_to_hell_is_paved_with_good_intentions">road paved with good intentions</a> typically ends.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-aUvvuxvIky0/UO1hTt9RCzI/AAAAAAAAB9A/LvToD-u9uD4/s1600/RoadPavedWithGoodIntentions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="159" src="http://2.bp.blogspot.com/-aUvvuxvIky0/UO1hTt9RCzI/AAAAAAAAB9A/LvToD-u9uD4/s320/RoadPavedWithGoodIntentions.png" width="320" /></a></div>
As an example, I'll bet very few people are using using a <span style="font-family: "Courier New",Courier,monospace;"><a href="http://git.eclipse.org/c/emf/org.eclipse.emf.git/tree/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/resource/impl/ResourceSetImpl.java">ResourceSetImpl.ResourceLocator</a></span>, something I added in EMF 2.8, because they don't know they can. You can see how it's used in <a href="http://git.eclipse.org/c/emf/org.eclipse.emf.git/tree/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/ResourceSetMappedResourceLocatorTest.java">the unit test</a>, i.e., just create it and you're done. What does it do? It allows <span style="font-size: x-small;"><span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">ResourceSet.getResource</span></span> </span>to find the resource without searching the whole resource set. If you look closely at how it's normally implemented, you can see it uses quite an expensive linear search that is made even more costly by the need to normalize each resource's URI to do proper comparison. By adding a locator, the cost reduces to a fast mapped look-up where the performance is independent from the size of the resource set. Most importantly, the map is properly maintained, so no matter what you change, including changes to the <span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">URIConverter</span></span>'s URI mappings, you'll always find the right resource in constant time. So if your application has a large number of resources, your should consider using it.<br />
<br />
The most recent example of a cool new feature is support for reified types. You'll only notice this change if you use generics extensively and you regenerate your model, assuming I've not broken anything in the process, because then you might notice sooner! Consider the following model:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-fTd9c33qpII/UO1gqbOJ2ZI/AAAAAAAAB84/cB6NLqzMYl8/s1600/ElementModel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="http://1.bp.blogspot.com/-fTd9c33qpII/UO1gqbOJ2ZI/AAAAAAAAB84/cB6NLqzMYl8/s320/ElementModel.png" width="320" /></a></div>
Notice that in menu we know the children and selected element should be menu elements. With the latest build, the generator realizes that too, so it generates the following overrides in the menu's implementation class.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-X2Ki0sj8dS0/UO1hdkmVurI/AAAAAAAAB9I/JcS4AmgAqbo/s1600/ElementModelGeneratedCode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="http://1.bp.blogspot.com/-X2Ki0sj8dS0/UO1hdkmVurI/AAAAAAAAB9I/JcS4AmgAqbo/s320/ElementModelGeneratedCode.png" width="320" /></a></div>
<br />
In other words, the generator will ensure fail-fast, type-safe behavior. Not only that, the edit support is also enhanced. That is, you can create any type of thing in a container.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-M2q4KmTcGmY/UO1inBqPenI/AAAAAAAAB9g/ND2WC4Yd85U/s1600/ElementModelContainerChildCreation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="60" src="http://2.bp.blogspot.com/-M2q4KmTcGmY/UO1inBqPenI/AAAAAAAAB9g/ND2WC4Yd85U/s320/ElementModelContainerChildCreation.png" width="320" /></a></div>
But you can create only a menu element in a menu.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-3JCSNbncr1M/UO1inDmkAaI/AAAAAAAAB9Y/7yGcjpYmxWg/s1600/ElementModelMenuChildCreation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="60" src="http://4.bp.blogspot.com/-3JCSNbncr1M/UO1inDmkAaI/AAAAAAAAB9Y/7yGcjpYmxWg/s320/ElementModelMenuChildCreation.png" width="320" /></a></div>
<br />
Similarly, you can select any type of element in a container.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-w_eeEI9Yj10/UO1inMDNbUI/AAAAAAAAB9c/Zg9RreXenbE/s1600/ElementModelContainerSelection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-w_eeEI9Yj10/UO1inMDNbUI/AAAAAAAAB9c/Zg9RreXenbE/s320/ElementModelContainerSelection.png" width="306" /></a></div>
<br />
But you can select only a menu element in a menu.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-W1-VKS64Nrk/UO1inrMccPI/AAAAAAAAB9k/rSJ4wnwIylA/s1600/ElementModelMenuSelection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-W1-VKS64Nrk/UO1inrMccPI/AAAAAAAAB9k/rSJ4wnwIylA/s320/ElementModelMenuSelection.png" width="306" /></a></div>
<br />
How cool is that? You might ask yourself, who would model in this way? Look closely, you'll find it <a href="http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/bundles/org.eclipse.e4.ui.model.workbench/src/org/eclipse/e4/ui/model/application/ui/impl/ElementContainerImpl.java">right under your nose</a>. I have the good intention to blog about other cool things you probably didn't realize were available.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com3tag:blogger.com,1999:blog-3879044552984472733.post-49687506779022940332012-11-13T11:56:00.000+01:002012-11-13T11:56:21.606+01:00Germany: The Demo Camp Capital of the World<div wrap="">
It's the fall demo camp season. If you look at all the <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012">scheduled demo camps</a>, you'll see that more than a third are in Germany!</div>
<ol>
<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012/Hamburg">Hamburg</a></li>
<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012/Bonn">Bonn</a> </li>
<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012/Dresden">Dresden</a></li>
<li><a href="http://www.bredex.de/web/index.php/event_en/events/eclipse-stammtisch-in-braunschweig.html">Braunschweig</a></li>
<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012/Berlin">Berlin</a></li>
<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012/Kassel">Kassel</a></li>
<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012/Munich">Munich</a></li>
</ol>
<div wrap="">
If you plan to attend, I'm sure you'll hear something to perk-up your ears and learn something to squirrel away for later.</div>
<div wrap="">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-pYiyY_LZreQ/UKIkuTnVYuI/AAAAAAAAB8k/3_l2_R86pzY/s1600/squirrel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-pYiyY_LZreQ/UKIkuTnVYuI/AAAAAAAAB8k/3_l2_R86pzY/s320/squirrel.png" width="320" /></a></div>
<div wrap="">
<br /></div>
<div wrap="">
I hope to see you in the coming weeks.</div>
Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-41352460372748568442012-11-05T11:24:00.000+01:002012-11-06T17:49:12.408+01:00A Penny Saved Can Be a Penny WastedThere's an English saying, "<a href="http://www.phrases.org.uk/meanings/a-penny-saved-is-a-penny-earned.html">A penny saved is a penny earned</a>". The bean counters of the world who run companies large and small follow this religiously. Carefully managed accounting books tally every bean; the more beans left over on the bottom line, the better the result. That bottom line is the difference between the earnings and the costs and because accountants have little control over earnings, costs are the variable they carefully scrutinize and minimize. Of course earnings don't come without costs, so it's not merely a matter of minimizing costs but rather a matter of optimizing costs. Therein lies the fundamental flaw with the old saying. It may well be the case that a penny saved is a penny twice lost.<br />
<br />
Consider the money spent on marketing. It's clear that such money must be spent: without such investment, earnings will drop due to reduced market demand. So how much should be spent on marketing? That's a tough question; intelligent people are likely to differ in their opinion though it's clear that making as much market impact as possible for as little money as possible is optimal. It's always the case that making a good impression requires investment.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-qNBbFw-ru_k/UJeEapDZDEI/AAAAAAAAB78/acIJJnPphj4/s1600/StatueInVienna.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-qNBbFw-ru_k/UJeEapDZDEI/AAAAAAAAB78/acIJJnPphj4/s320/StatueInVienna.png" width="320" /></a></div>
In the <a href="http://www.phrases.org.uk/meanings/topsy-turvy.html">topsy-turvy</a> world of open source software, where money is spent on software that's given way for free, the bean counting formulas go into a tailspin. At best the open source effort can be saved by resorting to a marketing slant, that is, if we give this software away for free, we will grow the market and will increase demand, or save costs, for whatever we're producing for this market. This is what justifies spending billions on Linux (spare the expensive Window's license associated with each computer sold) and hundreds of millions on Eclipse (ensure that the Java platform is competitive with the .NET platform).<br />
<br />
I used to work for one of the largest organizations of the world, so I have a good understanding of the corporate mindset. One of my final lessons learned there is that managers really don't like it when you send notes to their managers: sending a well-intended, constructive note about how best to optimize open-source investment, i.e., essentially the content of the <a href="http://ed-merks.blogspot.de/2008/01/manufacturing-pofitable-cars-with-free.html">blog</a> I wrote at the start of 2008, proved the old adage "<a href="http://en.wikipedia.org/wiki/No_good_deed_goes_unpunished">No good deed goes unpunished</a>". So now I work closely with <a href="http://www.itemis.com/">itemis</a>, essentially doing the same thing as I did before, i.e., ensuring that Eclipse modeling technologies thrive in a growing market. To digress for a moment, for me personally, the most exciting software technology this world has to offer in this space is <a href="http://www.eclipse.org/Xtext/">Xtext</a>, driven by the experts at itemis. I fundamentally believe that the integration of concise notations with well-established software platforms, is the optimal way to improve on a good thing. <a href="http://www.eclipse.org/xtend/">Xtend</a> is a great example of what I mean, i.e., it's simply a better Java that integrates seamlessly with Java, i.e., it's evolution rather than revolution, improving on what exists rather than replacing it. My own work on <a href="http://wiki.eclipse.org/Xcore">Xcore</a> emulates that same approach. Please come to the <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2012/Bonn">Eclipse Demo Camp in Bonn</a> for a closer look.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-QMatPSXhiak/UJeFy6amwZI/AAAAAAAAB8I/6994adCMXJ4/s1600/DragonFly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-QMatPSXhiak/UJeFy6amwZI/AAAAAAAAB8I/6994adCMXJ4/s320/DragonFly.png" width="320" /></a></div>
In any case, back to the issue at hand: optimizing a company's bottom line beans. The problem in this regard at itemis is no different than anywhere else. Fortunately itemis has an enlightened view, recognizing that the cost of open source investment pays off in the end. One way that's the case is the money spent on services and that's why assembling the world's leading modeling experts into a cohesive organization has been one of their goals. A battle ground faced by all service companies is that other organizations often see a penny spent on services as a penny best saved; the cost of those savings are all too easily overlooked.<br />
<br />
Consider an example back in my earlier days. EMF is used by a lucrative web server platform as part of their start-up configuration model. EMF was one of their 's favorite scapegoats: EMF slowed down start-up performance with its bloated byte code. Of course when you have a bloated model, there's only so much you can do, but that argument goes nowhere fast. Therefore, when I caught wind of this complaint, I pointed out that they could generate much less byte code by changing package creation to load each package from its serialized form and by using dynamic feature delegation for the implementation classes. Sure, both of these generate slower code, but the important point is they generate less byte code, all of which needs to be loaded at startup, and then bloats the process when it's no longer needed after start-up. They changed these two options in the generator model, regenerated the code, and presto, sever start-up improved by more than 40% with less than a day of effort. Previous efforts to improve start-up involved man-decades of investment, yes decades. In this case, my help didn't cost them a penny. Unfortunately neither the savings nor the improved sales were ever calculated, but I did get a huge thank you for my invaluable help. Okay, that last part is just wishful thinking, I never got so much as a kind word. Oh well, it's good to help prevent fires.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-4CKF4Pk3ahM/UJeGr6PdUuI/AAAAAAAAB8U/Lab3thAUm2Q/s1600/SicilyFire.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-4CKF4Pk3ahM/UJeGr6PdUuI/AAAAAAAAB8U/Lab3thAUm2Q/s320/SicilyFire.png" width="320" /></a></div>
<br />
In any case, my message to the enlightened developers of the world is to manage their bean counters more effectively. Don't let them rule your organization. When you need expert help, demand that you get it. Spend that extra penny and earn that extra dollar. A team of unproductive developers producing inferior quality results is a cost that must be brought into focus. Demand that this be measured and that it be factored into the bean formulas. The team of experienced exerts at itemis, including me, are always available for personalized help. We do workshops too, like <a href="http://www.itemis.de/itemis-ag/weiterbildung/workshops/eclipse-modeling/language=de/taps=44405/48393/introduction-to-eclipse-and-the-eclipse-modeling-framework-with-ed-merks">the one I'm doing</a> after the Bonn Demp Camp. The Eclipse community as a whole is rife with expertise so for goodness sake, spend a penny, with the realization that in addition to your internal savings, much of that penny will go back into the development of the next generation of the free software that you know and love. It's an investment in the future, an investment in the commons, and an investment in a better way to build the word's software foundations.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-70260833772424043562012-07-25T09:08:00.001+02:002012-07-25T09:08:50.453+02:00Time Flies Like an ArrowIt's been a long time since last I blogged. Much has happened these past
months. EclipseCon was, as always, a huge highlight, providing an opportunity to spend fun times with good friends. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-iWMiB3MDPc0/UA6nofTxxFI/AAAAAAAAB6k/JLJQP8cONdg/s1600/EclipseCon2012.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="http://1.bp.blogspot.com/-iWMiB3MDPc0/UA6nofTxxFI/AAAAAAAAB6k/JLJQP8cONdg/s320/EclipseCon2012.jpg" width="320" /></a></div>
<br />
I was especially honored to receive the Eclipse Lifetime Contribution Award for 2012. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-SY7ytWlRKE0/UA6n9VAIhBI/AAAAAAAAB6s/_u5RZS9CZFY/s1600/EclipseAward.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="261" src="http://1.bp.blogspot.com/-SY7ytWlRKE0/UA6n9VAIhBI/AAAAAAAAB6s/_u5RZS9CZFY/s320/EclipseAward.png" width="320" /></a></div>
<br />
Thanks <a href="http://www.flickr.com/photos/33725200@N00/">Anne</a> for the
memorable photos! Of course I'm eagerly looking forward to <a href="http://www.eclipsecon.org/europe2012/">EclipseCon Europe</a>!<br />
<br />
Most of these past months I've been slaving away getting <a href="http://wiki.eclipse.org/Xcore">Xcore</a> ready for prime time.
Thank goodness <a href="http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/junor">Juno</a> is out the door. A particularly challenging feature
I felt was badly needed for the first release was support for rename
refactoring. Thanks to <a href="http://koehnlein.blogspot.de/">Jan's</a> help in the base <a href="http://www.eclipse.org/Xtext/">Xtext</a> framework, it's
working very well. In fact, it's totally cool. You can rename something in Xcore
and it will invoke Java rename refactoring for each and every Java
artifact derived from the thing being renamed. All hand written code
that uses the generated APIs will be refactored seamlessly in a single
step. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-9rT_kq0RNOY/UA6rJxDJsEI/AAAAAAAAB64/NQaq2vvHx-A/s1600/XcoreRefactoring.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-9rT_kq0RNOY/UA6rJxDJsEI/AAAAAAAAB64/NQaq2vvHx-A/s320/XcoreRefactoring.jpg" width="290" /></a></div>
<br />
It's gratifying to see from the newsgroup and bugzilla that there are real users of Xcore now. I'm currently working hard to fix problems in the maintenance stream. If you see a
problem, please report it so I can fix it.<br />
<br />
In my "copious" spare time, I've been nurturing a new garden.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Qp1J1qiK2Vc/UA6_5wEAB1I/AAAAAAAAB7E/DQraqdywVw4/s1600/BerlinPonds.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-Qp1J1qiK2Vc/UA6_5wEAB1I/AAAAAAAAB7E/DQraqdywVw4/s320/BerlinPonds.JPG" width="320" /></a></div>
It's not as big is my old one, but it's in Berlin, the capitol of cool things!<br />
<br />
I need to think about submitting talk proposals for EclipseCon Europe and for <a href="http://wiki.eclipse.org/Eclipse_Finance_Day_2012">Eclipse Finance Day</a>. It looks like I may have missed the <a href="http://wiki.eclipse.org/Eclipse_Day_Delft_2012">Eclipse Day Delft</a> deadline...<br />
<br />
On the sad news front, <a href="http://3.bp.blogspot.com/-FqfP3e4hBxc/Tww8zXHj9SI/AAAAAAAAB5Y/XuBT9AtueOI/s1600/Peeking.png">Amber</a> died a few weeks ago. She had a congenital heart defect that finally got the better of her. I miss her. All good things come to an end.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com1tag:blogger.com,1999:blog-3879044552984472733.post-43051627709799248992012-02-10T09:33:00.007+01:002012-02-10T10:44:23.792+01:00Xcore on Training WheelsI've quietly been making excellent progress with Xcore. After getting IP approval, the first step was to migrate the code base to be hosted at Eclipse. I decided this was also an appropriate time to migrate EMF and XSD to use Git to preserve the github history of Xcore. All the cool kids are doing it. Being cool is very important. No one wants to be left out in the cold.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjemHc-pTTrUVyBWekwbfxpnWDu1ky83_Ystt_eygF_lNAexr9f5NqV5FUtjwdYBdHw5pIQAmWIZwZCjLFm65ZwQfT-Jj-apctha-jrBJKGcLcWuIbHcW4_10OdwsP1ykXdUr0cCfxD6uIb/s1600/CoolMouse.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjemHc-pTTrUVyBWekwbfxpnWDu1ky83_Ystt_eygF_lNAexr9f5NqV5FUtjwdYBdHw5pIQAmWIZwZCjLFm65ZwQfT-Jj-apctha-jrBJKGcLcWuIbHcW4_10OdwsP1ykXdUr0cCfxD6uIb/s320/CoolMouse.jpg" alt="" id="BLOGGER_PHOTO_ID_5707428124743840674" border="0" /></a>Unfortunately, learning Eclipse's Git tools has been a bit of a nightmare. Its poor support for <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=301775">proper line feed handling</a> continues to be frustrating. I compare learning Git to being given an advanced new hammer, one without a handle, that if you just instruct it nicely to do what you want, will do the job ten times better than ever before. Only the instructional language is Gitinese. It's very hard to pronounce, with lots of German "ch"s (think hissing snake), "st"s, and "sp"s (think "sht" and "shp" where the "h" is implied), plenty of Dutch "g"s (think clearing your throat), and no end of "th"s (think "s" but with your tongue hanging way too far out; it is a very unusual sound if English is not your native language). Anyway, enough bashing Gitinese and the Germanic languages. Once you learn them, they all sound as if they were simply meant to be that way. Oh well, back to Xcore.<br /><a href="http://1.bp.blogspot.com/-7Kj_8Tx4MAQ/TzTeBSvFqEI/AAAAAAAAB6E/E2psAvrFYDc/s1600/XcorePurpleLogo.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://1.bp.blogspot.com/-7Kj_8Tx4MAQ/TzTeBSvFqEI/AAAAAAAAB6E/E2psAvrFYDc/s320/XcorePurpleLogo.png" alt="" id="BLOGGER_PHOTO_ID_5707430741575837762" border="0" /></a>Of course we needed a logo, so I whipped one up. Maybe someone will contribute a nicer one. On a more substantial front, with the help of <span class="gD">Dennis Hübner</span>, we have our first builds of Xcore available. It's been contributed to the Juno repository. (Note that he's working on making EMF and XSD 2.8 build with Eclipse 3.5 so that we'll have more permissive version ranges that are properly tested.) I also finally found time to write a <a href="http://wiki.eclipse.org/Xcore">wiki tutorial</a> for how to get started with Xcore. Lots of cool things are working rather nicely. We even have support for organizing imports. So have a look if you have the time.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-3844315793470662522012-01-10T13:00:00.011+01:002012-01-11T08:00:29.403+01:00Modeling Daze to ComeMy transition to Germany is nearing completion. I now have a three year visa to stay in Germany and I'm registered as living in Berlin. Amazingly the visa was acquired with roughly eight hours of time investment, including the four hour wait for the appointment, along with zero euros of financial investment. The best things in life are free.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE__QMah5F6GVDpOLSRzDi_MTvZ2jxudBASWw1Qk9SEyCeWlEMNSF9daLMzU8eflcXuEPj6vSVVvARFdRpJ2RWsVSJwGaa_uxkGg-c01qeFGk9APjtaBqxkDbxgIENlqXhdiU-123j6-6L/s1600/EdVisa.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 176px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE__QMah5F6GVDpOLSRzDi_MTvZ2jxudBASWw1Qk9SEyCeWlEMNSF9daLMzU8eflcXuEPj6vSVVvARFdRpJ2RWsVSJwGaa_uxkGg-c01qeFGk9APjtaBqxkDbxgIENlqXhdiU-123j6-6L/s320/EdVisa.png" alt="" id="BLOGGER_PHOTO_ID_5695988363168926562" border="0" /></a><br />The German process stands in sharp contrast to the Canadian process we followed for Frank. That cost many thousands of dollars and took the better part of a year. All I need now is a German tax number and a German bank account and I'll be ready for business in 2012. Speaking of business, there's a lot going on! Jonas recently blogged about the <a href="http://eclipsesource.com/blogs/2012/01/05/modeling-symposium/">Eclipse Modeling Symposium</a> scheduled for EclipseCon. If you'd like an opportunity to showcase Really Cool Things,™ please send in your proposal so that Jonas and I can find an appropriate slot for your facet.<br /><br /><a href="http://1.bp.blogspot.com/-nTEENCMXuSU/Tww5sSYVJHI/AAAAAAAAB4s/gwR0XFr2Lk4/s1600/Architecture.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-nTEENCMXuSU/Tww5sSYVJHI/AAAAAAAAB4s/gwR0XFr2Lk4/s320/Architecture.png" alt="" id="BLOGGER_PHOTO_ID_5695991061727749234" border="0" /></a><br />The OMG is holding an <a href="http://www.omg.org/news/meetings/tc/dc-12/special-events/Eclipse.htm">Eclipse Symposium</a> as well. It will be held the day before EclipseCon starts, i.e., Sunday, March 25th, 2012. It will focus on Eclipse technologies that implement and support OMG specifications. Ed Willink is helping organize it. If you're interested, I suggest you contact him at ed at willink dot me dot uk . You can also <a href="http://www.omg.org/registration/eclipse/index.htm">register just to attend</a>. I'm looking forward to seeing the juxtaposition of the old and the new.<br /><br /><a href="http://4.bp.blogspot.com/-f8eNr08iYEg/Tww6SFIpHdI/AAAAAAAAB44/PFt-Ub3SHOM/s1600/OldAndNew.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-f8eNr08iYEg/Tww6SFIpHdI/AAAAAAAAB44/PFt-Ub3SHOM/s320/OldAndNew.png" alt="" id="BLOGGER_PHOTO_ID_5695991711007317458" border="0" /></a><br />As you may have noticed, you simply can't have too many Modeling Days, so of course there will be <a href="http://jax.de/2012/specialdays">another modeling day at JAX this year</a>. <a href="http://blog.efftinge.de/">Sven</a>, <a href="http://thegordian.blogspot.com/">Eike</a>, and I are organizing it. If you'd like to get involved, please send your proposal to ed dot merks at gmail dot com. I expect I'll be able to understand more of the German content this year than I did last year. Maybe I'll even have plodded along far enough to speak some broken German by then.<br /><br /><a href="http://2.bp.blogspot.com/-CUS35DNRqXU/Tww7uYVCocI/AAAAAAAAB5I/RmHB6UFdn1Y/s1600/Plodding.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 282px;" src="http://2.bp.blogspot.com/-CUS35DNRqXU/Tww7uYVCocI/AAAAAAAAB5I/RmHB6UFdn1Y/s320/Plodding.png" alt="" id="BLOGGER_PHOTO_ID_5695993296707559874" border="0" /></a><br />To further round off an already well rounded event schedule, there's an <a href="http://www.rcp-vision.com/?page_id=1938&lang=en">Eclipse Day in Florence</a> on May 4th. Can you think of a lovelier place to hold a Eclipse event? We're really looking forward to having a peek at part of the community we've seen less frequently.<br /><br /><a href="http://3.bp.blogspot.com/-FqfP3e4hBxc/Tww8zXHj9SI/AAAAAAAAB5Y/XuBT9AtueOI/s1600/Peeking.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://3.bp.blogspot.com/-FqfP3e4hBxc/Tww8zXHj9SI/AAAAAAAAB5Y/XuBT9AtueOI/s320/Peeking.png" alt="" id="BLOGGER_PHOTO_ID_5695994481793561890" border="0" /></a><br />At this point you might be wondering about deadlines for submissions. All I can say is don't ask about deadlines! Do it now. There's no time like the present. Time waits for no one, and most especially not for you. If you have time, and you expect to be in Berlin, Eike and I will be at the <a href="https://www.xing.com/events/2-stammtisch-emf-user-group-berlin-852872">Eclipse User Group Stammtisch</a> on January 31st.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-60227102509656033092011-11-23T07:53:00.008+01:002011-11-23T08:45:16.094+01:00Making the Move to GermanyI haven't blogged for a quite a while, not for lack of content, but rather for lack of time. So much as happened in the past months! In August we had visitors from Germany. We took them to see Pacific Rim National Park, one of the most beautiful places on earth.<br /><br /><a href="http://4.bp.blogspot.com/-usyyRyM-QKY/TsyYzqTXwKI/AAAAAAAAB3I/g-2ZkU4pkWo/s1600/IMG_7940.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-usyyRyM-QKY/TsyYzqTXwKI/AAAAAAAAB3I/g-2ZkU4pkWo/s320/IMG_7940.JPG" alt="" id="BLOGGER_PHOTO_ID_5678081243503640738" border="0" /></a><br />During this time we also started making plans for an extended stay in Germany, which, as you know, is the home of <a href="http://ed-merks.blogspot.com/2011/07/quest-for-coolness.html">Really Cool Things</a>.™ My ThinkPad was very old and totally tired, so I finally cracked open my wallet and bought a new Dell Precision M4600; I <span style="font-weight: bold;">must </span>have a keyboard with an ultranav. My new baby is fully loaded to the hilt with every desirable feature, including 16GB of 16MHz memory, two SSD drives, an i7-2920XM Quad Core, and more. It sure was a lot of work to get it set up, but I <span style="font-weight: bold;">love </span>it.<br /><br />We've been in Germany since October 7th. Berlin is our home base. And of course we brought the girlies along! Since our arrival, I've been busier than ever with visits to itemis headquarters in Lünen, the Xtext guys in Kiel, EclipseCon Europe in Ludswigburg, as well as demo camps in Bonn and Dresden. We've even had a chance to go sightseeing in Rügen.<br /><br /><a href="http://4.bp.blogspot.com/-0YrIgwM2_IM/TsyavpwP9GI/AAAAAAAAB3Y/k-JNaMRT7rI/s1600/Ruegen.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 215px;" src="http://4.bp.blogspot.com/-0YrIgwM2_IM/TsyavpwP9GI/AAAAAAAAB3Y/k-JNaMRT7rI/s320/Ruegen.jpg" alt="" id="BLOGGER_PHOTO_ID_5678083373660107874" border="0" /></a><br />Just this past weekend I went to a friend's concert at <a href="http://en.wikipedia.org/wiki/Berlin_Cathedral">Berliner Dom</a>! I captured the experience with my brand new Nikon Coolpix S9100 with 18x wide optical zoom.<br /><br /><a href="http://2.bp.blogspot.com/-gpH6_biyn5E/TsycHbdebAI/AAAAAAAAB3o/ECR5nsa4j3w/s1600/DomeChoir.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 219px; height: 320px;" src="http://2.bp.blogspot.com/-gpH6_biyn5E/TsycHbdebAI/AAAAAAAAB3o/ECR5nsa4j3w/s320/DomeChoir.jpg" alt="" id="BLOGGER_PHOTO_ID_5678084881651756034" border="0" /></a><br />This week there's a <a href="https://www.xing.com/events/1-stammtisch-emf-user-group-berlin-839007">stammtisch in Berlin</a> on Thursday and next week <a href="http://thegordian.blogspot.com/">Eike</a> and I present at an <a href="http://www.itemis.de/40257/eclipse-based-dsl-tooling">itemis event in Bonn</a> on Tuesday. Maybe we'll see you at one of those events! Later next week, Eike and I host an itemis training session in Oldenburg; yet another place I've never been. I'm pretty sure I've seen more of Germany in the past weeks than most Germans have seen in the past years.<br /><br /><a href="http://1.bp.blogspot.com/-y8iX3UdpQJc/Tsyi53ibYoI/AAAAAAAAB4I/CbUEo_Mx_hg/s1600/NightDom.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 187px;" src="http://1.bp.blogspot.com/-y8iX3UdpQJc/Tsyi53ibYoI/AAAAAAAAB4I/CbUEo_Mx_hg/s320/NightDom.jpg" alt="" id="BLOGGER_PHOTO_ID_5678092345251947138" border="0" /></a><br />It's quite clear now that Germany is the cool place to be for us to be, so we're making long term plans to stay here. It's kind of scary, but oh so exciting too. My German comprehension improves a little bit every day though my speaking abilities lag far behind, for lack of trying I'm told. In any case, I now have a very nice home office that includes a Dell UltraSharp U3011 monitor; I kiss it every morning because I love it so much.<br /><br /><a href="http://4.bp.blogspot.com/-HtT02WiX-gw/Tsygzyom8qI/AAAAAAAAB34/mY_hx2K-Lg4/s1600/WorkStation.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 306px;" src="http://4.bp.blogspot.com/-HtT02WiX-gw/Tsygzyom8qI/AAAAAAAAB34/mY_hx2K-Lg4/s320/WorkStation.jpg" alt="" id="BLOGGER_PHOTO_ID_5678090041833222818" border="0" /></a>Life is definitely very cool and exciting. I'll have to blog more often now that things are finally settling down. <a href="http://ed-merks.blogspot.com/2011/08/xcore-coolness-reborn.html">Xcore</a> too is progressing well; stay tuned...Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-84411039897568133572011-08-09T04:56:00.007+02:002011-08-09T07:47:46.307+02:00Xcore: Coolness RebornThe quest to Kiel has proven enlightening beyond expectation. Last week, as I approached the sanctuary of the <a href="http://www.eclipse.org/Xtext/">Xtext</a> team, sun glinting from the facade, I knew deep down that I was headed for the right place.
<br /><a href="http://3.bp.blogspot.com/-Mh1VFgmQ4gA/TkBB-M1oBWI/AAAAAAAAB1I/pT7VCjBjuTw/s1600/XtextOffice.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 248px; height: 320px;" src="http://3.bp.blogspot.com/-Mh1VFgmQ4gA/TkBB-M1oBWI/AAAAAAAAB1I/pT7VCjBjuTw/s320/XtextOffice.jpg" alt="" id="BLOGGER_PHOTO_ID_5638579270321702242" border="0" /></a>
<br />Xtext is the coolest of the cool projects at Eclipse today, and that's tough competition! Three of its four custodians, <a href="http://blog.efftinge.de/">Sven</a>, <a href="http://zarnekow.blogspot.com/search/label/Eclipse">Sebastian</a>, and Moritz, were there that Monday morning. We discussed the coolest things we could collectively conceive: Xcore, progeny of <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/package-summary.html#details">Ecore</a> and <a href="http://www.eclipse.org/Xtext/#xbase">Xbase</a>. We decided to begin this new endeavor using a <a href="https://github.com/merks/Xcore">repository at github</a> so we could immediately begin working as a team. (Of course we'll host this at Eclipse after we migrate EMF itself to Git.) Time flew yet much progress was made before the sun set on a great week.
<br />
<br /><a href="http://4.bp.blogspot.com/-ENDcFX_E-C8/TkBDPp6HiLI/AAAAAAAAB1U/dv0FNzIPoao/s1600/KielSunset.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 138px;" src="http://4.bp.blogspot.com/-ENDcFX_E-C8/TkBDPp6HiLI/AAAAAAAAB1U/dv0FNzIPoao/s320/KielSunset.jpg" alt="" id="BLOGGER_PHOTO_ID_5638580669694576818" border="0" /></a>
<br />We found time to write a <a href="http://www.eclipsecon.org/europe2011/sessions/xcore-ecore-meets-xtext">proposal</a> for a session at EclipseCon Europe 2011. If ever there was a Really Cool Thing,™ this definitely is it! Before I knew, I was back on a speeding plane, admiring the majesty that is Super Natural British Columbia.
<br />
<br /><a href="http://4.bp.blogspot.com/-jhePZAbDDG4/TkBE-XB4V_I/AAAAAAAAB1g/T1XY8AWqww0/s1600/BritishColumbiaFlight.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 256px;" src="http://4.bp.blogspot.com/-jhePZAbDDG4/TkBE-XB4V_I/AAAAAAAAB1g/T1XY8AWqww0/s320/BritishColumbiaFlight.jpg" alt="" id="BLOGGER_PHOTO_ID_5638582571592341490" border="0" /></a>
<br />I got home just in time for the final display of Vancouver's <a href="http://www.vancouverfireworks.ca/">Celebration of Light</a>. I was definitely in the mood to celebrate!
<br />
<br /><a href="http://3.bp.blogspot.com/-zH6lOyIOjU4/TkBIgh9OCeI/AAAAAAAAB1s/O8g5Ted4OcU/s1600/CelebrationOfLight.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 306px;" src="http://3.bp.blogspot.com/-zH6lOyIOjU4/TkBIgh9OCeI/AAAAAAAAB1s/O8g5Ted4OcU/s320/CelebrationOfLight.jpg" alt="" id="BLOGGER_PHOTO_ID_5638586457176017378" border="0" /></a>
<br />I'm extremely happy to have embarked on this cool quest. I look forward to excellent progress in the weeks to come. That vast desert of uncool is already fading from memory. To whet your appetite, here's how the Xcore model for the standard Library example looks:
<br />
<br /><a href="http://3.bp.blogspot.com/-Zy6EgSBbe8Q/TkCpBV9zY0I/AAAAAAAAB2o/CbdP6LApWPw/s1600/LibraryXcore.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 206px; height: 320px;" src="http://3.bp.blogspot.com/-Zy6EgSBbe8Q/TkCpBV9zY0I/AAAAAAAAB2o/CbdP6LApWPw/s320/LibraryXcore.gif" alt="" id="BLOGGER_PHOTO_ID_5638692574009189186" border="0" /></a><a href="http://4.bp.blogspot.com/-fEvGwJNto3Q/TkBdPRuQxlI/AAAAAAAAB2E/WyqQyFKGNhs/s1600/LibraryXcore.gif">
<br /></a>
<br />This isn't just a pretty picture, we have a great deal that is working already! Don't just take my word for it, open source is a glass house; stay tuned. Of course all design decisions are subject to change. We look forward to feedback from the community.
<br />Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-44114849750738678722011-07-29T15:45:00.000+02:002011-07-29T15:46:43.447+02:00The Quest for CoolnessAs you know from my previous blog, I've been thinking a great deal about "Really Cool Things."™ In fact, not only have I been thinking, I've taken action: I have embarked on a great quest. While wandering the vast desert of uncoolness, with nothing of interest as far as the eye could see, I thought I heard a voice as my eyes were drawn to a sparkle in the distant horizon. Could it be the enlightenment that I seek? The voice compelled me to go forth: "That which you seek is in Kiel," it whispered quietly. Meanwhile, my faithful companion found coolness in a stick.<br /><br /><a href="http://4.bp.blogspot.com/-ALN1ALhwPrM/TjGhw-7FELI/AAAAAAAAB04/JlTOoHcw3m4/s1600/DesertElse.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 314px;" src="http://4.bp.blogspot.com/-ALN1ALhwPrM/TjGhw-7FELI/AAAAAAAAB04/JlTOoHcw3m4/s320/DesertElse.jpg" alt="" id="BLOGGER_PHOTO_ID_5634462471713788082" border="0" /></a>Being somewhat impulsive, I immediately booked a flight to Germany. It leaves this coming Saturday and arrives on Sunday. From there my quest will continue; I think I'll start fasting. I know not what I'll find, never having been to Kiel, but I am confident that I'll find that which I seek: "Really Cool Things."™Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-57791692229686707542011-06-26T19:42:00.007+02:002011-06-27T07:01:58.279+02:00All Cool ThingsWith <a href="http://www.eclipse.org/indigo/">Indigo</a> behind me and <a href="http://wiki.eclipse.org/Juno">Juno</a> in the distant horizon, it's time to chart a new course. It was with great interest that I read Mile's inspirational and timely blog about <a href="http://milesparker.blogspot.com/2011/06/indolent-programming-manifesto.html">Indolent Programming</a>. I immediately recognized that I definitely prefer to work on Really Cool Things. Moreover, like a bolt of lightning, I had a startling revelation: providing service and support for a ten year old framework like EMF is totally, absolutely uncool. Granted it was definitely cool to create and popularize EMF and most certainly it's great for the uncounted clients relying heavily on EMF that it be well supported, but one salient fact stands stark: service and support is at the far end of the coolness spectrum. As a result of this awakening, I nurtured my inner <a href="http://ed-merks.blogspot.com/2008/04/teflon-programming.html">Teflon Programmer</a>, and embarked on a renewed quest for coolness. Who will support EMF in my stead, you might ask. Ms. Else of course!<br /><br /><a href="http://2.bp.blogspot.com/-55g8AKx-22w/TggOGU6WLqI/AAAAAAAABzc/85LF7MOcWKQ/s1600/ElseService.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-55g8AKx-22w/TggOGU6WLqI/AAAAAAAABzc/85LF7MOcWKQ/s320/ElseService.jpg" alt="" id="BLOGGER_PHOTO_ID_5622759636627500706" border="0" /></a><br />She's the ultimate goat, to use Mile's enlightened terminology. She actually enjoys eating her own dog food. Not only that, if you throw her the occasional bone, she's simply beside herself. This will help free up much of my time. She'll be well qualified to hit some of my simple short cut keys. For example, the first answer to any newsgroup question will be, "Did you consult with your best friend, the debugger? She's able to answer questions far faster than me." Of course Else too has a backup, Ms. Ruby!<br /><br /><a href="http://1.bp.blogspot.com/-yFrY-k5PmC4/TggORNG2jUI/AAAAAAAABzk/Pa9P8hoYhek/s1600/RubyService.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-yFrY-k5PmC4/TggORNG2jUI/AAAAAAAABzk/Pa9P8hoYhek/s320/RubyService.jpg" alt="" id="BLOGGER_PHOTO_ID_5622759823511031106" border="0" /></a><br />What will I do with my new found freedom? That's for me to know and for you to find out. The only thing I'll reveal is that at this moment, number one on my list is <a href="http://contraptionsforprogramming.blogspot.com/2011/06/vancouver-eclipse-demo-camp-2011.html">Eclipse Demo Camp Vancouver</a>. See you there or be uncool; the choice is always yours.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-80303609942118483372011-06-13T06:16:00.000+02:002011-06-13T06:17:49.930+02:00So Much to Do, So Little TimeIt's been ages since last I blogged. Where does all the time go? EclipseCon came and went in a whirlwind of activity. There wasn't nearly as much modeling content as in previous years and I know more than a few folks were frustrated that I rejected their talks. I didn't bother explaining that this year's selection process reduced me to tears; sometimes it's best to just clam up.<br /><br /><a href="http://4.bp.blogspot.com/-MfJiNstpOdY/Te--xJmG1RI/AAAAAAAAByI/FdreC-x1yQA/s1600/clam.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 227px;" src="http://4.bp.blogspot.com/-MfJiNstpOdY/Te--xJmG1RI/AAAAAAAAByI/FdreC-x1yQA/s320/clam.jpg" alt="" id="BLOGGER_PHOTO_ID_5615917011952915730" border="0" /></a><br />You'll probably be surprised to learn that I actually spent quite a bit of time in my evil secret lair doing cool technical work in recent months. EMF's RESTful persistence framework is heavily focused on stream-based I/O, but sometimes streams are just not what you really need. To enable greater flexibility, we've added two new interfaces to URIConverter: Loadable and Saveable. These make it easy to add a URIHandler that creates facades rather than real streams and via those facades persists a resource's contents in some arbitrary manner, i.e., in a database or some other type of structured repository. If you're interested in details about how to exploit these two new pillars, Byan Hunt blogged about <a href="http://bryanhunt.wordpress.com/2011/03/15/mongo-emf/">MongoDB integration for EMF</a> not so long ago.<br /><br /><a href="http://2.bp.blogspot.com/-ulcepqQglSs/TfEKh7cvRKI/AAAAAAAAByU/XcoMvOpNztU/s1600/Pillars.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-ulcepqQglSs/TfEKh7cvRKI/AAAAAAAAByU/XcoMvOpNztU/s320/Pillars.jpg" alt="" id="BLOGGER_PHOTO_ID_5616281788317910178" border="0" /></a><br />As part of EMF's persistence flexibility enhancements, I vamped up the existing resource implementations as well. Of course they needed to detect the new stream facades in order to delegate appropriately, but more to the point, it's now also possible with a single resource implementation, i.e., XMIResourceImpl, to produce or consume binary using XMLResource.OPTION_BINARY, XML using XMIResource.OPTION_SUPPRESS_XMI, and of course XMI as usual. It's been a well hidden secret up to now, much like the <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=330988">new ODA support </a>Kenn Hussey implemented!<br /><br /><a href="http://2.bp.blogspot.com/-OPfe8_TJRYs/TfEMsAVO0DI/AAAAAAAAByg/DyfIr8S0q2M/s1600/HiddenFish.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 216px;" src="http://2.bp.blogspot.com/-OPfe8_TJRYs/TfEMsAVO0DI/AAAAAAAAByg/DyfIr8S0q2M/s320/HiddenFish.jpg" alt="" id="BLOGGER_PHOTO_ID_5616284160450547762" border="0" /></a><br />The coolest new feature though is the improved ability to record a set of changes being made to a model and from that efficiently produce a change description that can be sent elsewhere and applied to replicate those changes. It's ironic that a feature so easy to describe is so deceptively difficult to implement. As part of its Change model EMF has long supported a ChangeRecorder that produces a ChangeDescription for this purpose. The problem is that it describes how to go from the current state back to the original state, i.e., it's a reverse delta. It's possible to call applyAndReverse to produce a forward delta, but that modifies the state of the model, i.e. , it's like undo. Of course it's also possible to call applyAndReverse as second time to redo the changes, but clearly that's not very efficient nor desirable when there's a user interface updating in response to all the changes. To address that problem, we've implemented copyAndReverse so that we can produce a serializeable forward delta without changing the state of the model itself. You might want to <a href="http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.emf/org.eclipse.emf/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/change/ChangeDescriptionReverseTest.java?view=markup&revision=1.1&root=Modeling_Project">try it out</a> and help stamp out any remaining bugs.<br /><br /><a href="http://1.bp.blogspot.com/-QFsPQoK8XUM/TfEOuH2NYVI/AAAAAAAABys/Poc278tu1P8/s1600/Hopper.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://1.bp.blogspot.com/-QFsPQoK8XUM/TfEOuH2NYVI/AAAAAAAABys/Poc278tu1P8/s320/Hopper.jpg" alt="" id="BLOGGER_PHOTO_ID_5616286395850907986" border="0" /></a><br />At the beginning of May I traveled to Germany for <a href="http://jax.de/">JAX</a> and met up with a bunch of my friends for an Eclipse modeling day. The presentations and discussions were in German, so that was very tiring! Can you name all the Eclipse committers in this picture?<br /><br /><a href="http://1.bp.blogspot.com/-ub7aQnZNqYw/TfJMJulC4DI/AAAAAAAABy4/hw6EYZx9FpE/s1600/JAX2011.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 284px;" src="http://1.bp.blogspot.com/-ub7aQnZNqYw/TfJMJulC4DI/AAAAAAAABy4/hw6EYZx9FpE/s320/JAX2011.jpg" alt="" id="BLOGGER_PHOTO_ID_5616635415290372146" border="0" /></a><br />As part of the JAX trip to Europe, I spent some time in the Netherlands; I was born in Rijswijk and I took my mother long to visit with her family there while Frank and I stayed in Den Haag and then Amsterdam. I've never been to Amsterdam before and we happened to be there for <a href="http://en.wikipedia.org/wiki/Koninginnedag">Koninginnedag</a>. That was quite amazing. No one can pack more boats on a small canal than the Dutch! The fact that their raft was being pushed under by the crowding boats didn't bother these guys one bit.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe4gb8M2_XK0-WKOm9nI2tCp5jB1HHK9TVIFeHdqdjzHbMic3JuscF8sZkLX9b_OGjn0PqYoqw9c1-GDkEY8qWDgBCWxcAN_ovAHeJV0W_URVYvzwe-HR5oW8QOXHmjC79wZ0Sj-tP6V9q/s1600/AmsterdamCanal.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe4gb8M2_XK0-WKOm9nI2tCp5jB1HHK9TVIFeHdqdjzHbMic3JuscF8sZkLX9b_OGjn0PqYoqw9c1-GDkEY8qWDgBCWxcAN_ovAHeJV0W_URVYvzwe-HR5oW8QOXHmjC79wZ0Sj-tP6V9q/s320/AmsterdamCanal.jpg" alt="" id="BLOGGER_PHOTO_ID_5616638876062935986" border="0" /></a><br />Not long after getting back from that, it was time for <a href="http://www.codegeneration.net/cg2011/index.php">CodeGen 2011</a> in Cambridge where I did a keynote on the last day. That was a very interesting conference. I met lots of new people. I hope I'll be able to attend again next year. Mark Dalgarno, the conference organizer, did a great job. He even included a very memorably outing to experience punting on the Cambridge waterways.<br /><br /><a href="http://4.bp.blogspot.com/-74txgx39rfc/TfJRIcOyN_I/AAAAAAAABzQ/r9vvNFBdtCw/s1600/punting.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-74txgx39rfc/TfJRIcOyN_I/AAAAAAAABzQ/r9vvNFBdtCw/s320/punting.jpg" alt="" id="BLOGGER_PHOTO_ID_5616640890743437298" border="0" /></a>Since then, like so many of you, I've been caught up in the final frenzied daze of Indigo. With that almost behind me, I am looking forward to a trip to Raleigh, North Carolina Monday for the Eclipse Board meeting. Speaking of which, the foundation is proposing some updates to the Eclipse Bylaws, so the committer representatives took the opportunity to propose a change to how we are elected. In particular, we looking to deliver on the <a href="http://ed-merks.blogspot.com/2008/02/one-committer-one-vote.html">one committer one vote</a> principle. We're quite pleased about that and hope you are too.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-991639882479634962011-03-09T00:03:00.007+01:002011-03-09T01:34:39.576+01:00The Universe is UnfairFairness is a highly subjective thing. It's not simply about everyone being treated equal, it's about everyone being treated in a way that's proportional to need, merit, or some combination of the two. The universe is objectively blind to need and merit. It rains fortune and misfortune on the guilty and the innocent with equal abandon. Given that the universe is unfair, we must intervene to rectify the situation and be prepared that when we do, it will be, as <a href="http://intellectualcramps.wordpress.com/2011/03/07/are-projects-outpacing-the-ability-to-adapt-and-repsond/">Dave points out</a>, contentious.<br /><br /><a href="http://1.bp.blogspot.com/-naWqUxd4kDU/TXbHmMgUMjI/AAAAAAAABxM/IWiuSWR6XPE/s1600/ContentiousBoys.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 235px;" src="http://1.bp.blogspot.com/-naWqUxd4kDU/TXbHmMgUMjI/AAAAAAAABxM/IWiuSWR6XPE/s320/ContentiousBoys.jpg" alt="" id="BLOGGER_PHOTO_ID_5581868247178031666" border="0" /></a><br />So it is with divvying out the <a href="http://wiki.eclipse.org/Friends_of_Eclipse/Funds_Allocation">Friends of Eclipse</a> funds. Scott suggests we <a href="http://eclipseecf.blogspot.com/2011/03/to-be-fair-and-balanced-give-up.html">give up</a>. Just kidding; I'm distorting his words by taking them out of context. What's life without a bit of humor? He actually suggests we give up centralized control. Fortunately he doesn't mean we should have a vote each and every time. We all know how contentious voting can be and how easily one can stack the vote with all your best friends. It's more likely to resemble a popularity contest than anything else.<br /><br /><a href="http://4.bp.blogspot.com/-t3so59UDrXA/TXbIUrRhRPI/AAAAAAAABxU/utGthMw7DdE/s1600/SchoolGirls.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 250px;" src="http://4.bp.blogspot.com/-t3so59UDrXA/TXbIUrRhRPI/AAAAAAAABxU/utGthMw7DdE/s320/SchoolGirls.jpg" alt="" id="BLOGGER_PHOTO_ID_5581869045711455474" border="0" /></a><br />Concretely, in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=339239">339239</a>, Scott suggests that the individuals donating the money should make the decision. I'm not completely sure what this would entail. I think the suggestion is that the donor delegates the spending decision to a specific project's leadership, sort of like ear marking it, perhaps via a huge drop-down list of all projects. That certainly sounds very fair, at least to the donor.<br /><br /><a href="http://2.bp.blogspot.com/-u8UFCC05lWU/TXbKKbAURgI/AAAAAAAABxg/80Dom-1XzgA/s1600/FeedingCatFish.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 307px; height: 320px;" src="http://2.bp.blogspot.com/-u8UFCC05lWU/TXbKKbAURgI/AAAAAAAABxg/80Dom-1XzgA/s320/FeedingCatFish.jpg" alt="" id="BLOGGER_PHOTO_ID_5581871068568897026" border="0" /></a><br />Let's consider though just for a moment if donor earmarking is likely to be fair in the grand scheme of things. I hope the Aardvark project, being early in the list of choices, doesn't get most of the donations! I hope projects with poor documentation, builds, and testing get some money to help fix that. I hope projects that are used in the many other projects, but aren't apparent in the user interface, get lots of donations. In fact, I hope it's not just a few sexy projects that get the lion's share of the money. Simply put, I hope the donors will be fair. I doubt it though. I fear it will just be a case of the rich getting richer. Personally, I'd rather have <a href="http://borisoneclipse.blogspot.com/2011/03/dont-forget-to-vote.html">people I trust to do what's fair</a> making the decisions.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-84118569449940260112011-03-07T00:02:00.005+01:002011-03-07T22:41:47.918+01:00To be Fair and Balanced, That is the QuestionAs you may or may not be aware, your <a href="http://www.eclipse.org/org/elections/nominees.php">committer representatives</a> are responsible for the allocation of the <a href="http://wiki.eclipse.org/Friends_of_Eclipse/Funds_Allocation">Friends of Eclipse</a> fund. There's not a lot of money and we'd like to use it in a way that promotes our community. A few people have <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;component=FoE%20Disbursements;classification=Eclipse%20Foundation;product=Community">proposed ideas</a>. Some were accepted and some were not. We'd like to think our decision making process was fair and balanced, but that's been called into question, particularly with regard to a request for <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=335475">release engineering support for ECF</a>. As a group, all the people currently running to be a committer representative agreed that using the community's limited funding to scratch the admittedly nasty itch of one specific project isn't appropriate.<br /><br /><a href="http://3.bp.blogspot.com/-fOhkn77-DJE/TXVQv45sdLI/AAAAAAAABwo/oV2n3nrHsOY/s1600/ItchyMonkey.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 280px;" src="http://3.bp.blogspot.com/-fOhkn77-DJE/TXVQv45sdLI/AAAAAAAABwo/oV2n3nrHsOY/s320/ItchyMonkey.jpg" alt="" id="BLOGGER_PHOTO_ID_5581456096854045874" border="0" /></a><br />To me, that seems fair and balanced, but apparently some are inclined to see it differently. Simply put, we are doing damage to small projects like ECF by saying no, we have wasted the valuable time they spent asking for money, and we generally don't represent the interests of the community. The list of things we're doing poorly is long and we're clearly bad people. It's ironic to me how often those most skilled at dishing out critique---calling <a href="http://ekkescorner.wordpress.com/2011/02/03/why-im-not-using-a-great-eclipse-project/">Ekke an ignorant hack</a> being another good example---are the very same ones so easily offended by another's poor choice of words. I need to keep an open mind though, so if others feel we've misjudged in our decisions, please let us know your thoughts.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-12415330423784240972011-03-02T00:34:00.014+01:002011-03-02T16:25:40.681+01:00ProcrastinationNever put off until tomorrow what you can forget about forever. After all, some problems will just go away on their own if you ignore them long enough, right?<br /><br /><a href="http://2.bp.blogspot.com/-GxP3zdA80fc/TW2Z4ZNB_sI/AAAAAAAABwE/vtM7WOa9Hg8/s1600/CollapsingHouse.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 123px;" src="http://2.bp.blogspot.com/-GxP3zdA80fc/TW2Z4ZNB_sI/AAAAAAAABwE/vtM7WOa9Hg8/s320/CollapsingHouse.jpg" alt="" id="BLOGGER_PHOTO_ID_5579284707499179714" border="0" /></a><br />I've been so busy these past months that a great many things have slipped through the cracks. I'm beginning to think there are more cracks than solid ground. Last I blogged I'd just traveled to Zurich for Eclipse Enterprise Modeling Day as well as to Ludwigsburg for Eclipse Summit Europe and I was living in Maple Ridge. Three months later, I'm planning a trip to Zurich for a <a href="http://www.itemis.com/itemis-ag/portfolio/workshops/eclipse-modeling/language=en/taps=644/35032/modeling-and-creating-domain-specific-languages-with-emf-and-xtext">Modeling Workshop</a>---don't procrastinate, register immediately or miss your opportunity---as well as a trip to Santa Clara for yet another fun-filled, action-packed <a href="http://www.eclipsecon.org/2011/">EclipseCon</a> and I'm living in amazing downtown Vancouver; the Tasktop office just a five minute walk away. What happened to the house plans? A word to the wise: if you think we software engineers have trouble staying on schedule and within budget, the North American construction industry makes our industry look like a well-oiled machine. I'd rather step on a stone fish than try to design and build my own house again; it would a much quicker and far less painful death.<br /><br /><a href="http://3.bp.blogspot.com/-eswjJAsiekc/TW2aR5Fo03I/AAAAAAAABwc/5yTfjpFxGi0/s1600/StoneFish.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 291px;" src="http://3.bp.blogspot.com/-eswjJAsiekc/TW2aR5Fo03I/AAAAAAAABwc/5yTfjpFxGi0/s320/StoneFish.jpg" alt="" id="BLOGGER_PHOTO_ID_5579285145554834290" border="0" /></a><br />Don't forget, it's <a href="http://www.eclipse.org/org/elections/nominees.php">election time</a> again for the Committer Representatives of the Eclipse Board of Directors. I thought fierce mudslinging might ensue while I was off gallivanting around the far east, but apparently it's turning out to be another tame campaign. While all the candidates are very good, and obviously very nice, I'm clearly by far the best because I have the prettiest underwater photographs.<br /><br /><a href="http://1.bp.blogspot.com/-Wu9FwXETqIs/TW2aEe8IoiI/AAAAAAAABwM/wBf0MYQUobk/s1600/LionFish.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://1.bp.blogspot.com/-Wu9FwXETqIs/TW2aEe8IoiI/AAAAAAAABwM/wBf0MYQUobk/s320/LionFish.jpg" alt="" id="BLOGGER_PHOTO_ID_5579284915197354530" border="0" /></a><br />Okay, that's not terribly relevant. But I do have a proven track record when it comes to braving shark-infested waters.<br /><br /><a href="http://3.bp.blogspot.com/-CoSG-huIjoM/TW2aK2S85gI/AAAAAAAABwU/AgtBG5LFbZI/s1600/BlackTipShark.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 153px;" src="http://3.bp.blogspot.com/-CoSG-huIjoM/TW2aK2S85gI/AAAAAAAABwU/AgtBG5LFbZI/s320/BlackTipShark.jpg" alt="" id="BLOGGER_PHOTO_ID_5579285024546285058" border="0" /></a><br />That's an essential skill to be sure! If you plan to vote, you have until March 11th to procrastinate.Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-63760755616998010582010-11-08T09:15:00.006+01:002010-11-08T10:15:38.049+01:00Modeling in EuropeI've been in Europe since October 27th. The trip started with a visit to Zurich to attend the <a href="http://ianskerrett.wordpress.com/2010/10/29/is-eclipse-modeling-in-the-mainstream/">Eclipse Enterprise Modeling Day</a> hosted by UBS. It was very well organized and a great success! This was my first visit to Zurich and I was fortunate to have time for sightseeing with Frank before heading off to Ludwigsburg on October 31st. Zurich is a fantastically beautiful city!<br /><div class="moz-text-html" lang="x-unicode"><div bgcolor="#ffffff" text="#000000"><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNU85O8EBUI/AAAAAAAABrE/z7ZwG3ovLWk/s1600/Zurich.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 250px;" src="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNU85O8EBUI/AAAAAAAABrE/z7ZwG3ovLWk/s320/Zurich.jpg" alt="" id="BLOGGER_PHOTO_ID_5536398270882121026" border="0" /></a><br />The day before Eclipse Summit Europe, was the face-to-face Eclipse Board of Directors meeting, so the week was off to an interesting start. I was still organizing the content for the Modeling Symposium the following day. Agile preparation I like to call it though some might use the word procrastination.<br /><br />I think the symposium was a great success. It was a chance for a large number of presenters to demonstrate their favorite technology in action and gave the attendees a diverse overview of many topics they might not learn about otherwise. Each presenter was kind enough to write a brief abstract, which I've included in this blog.<br /><br /><div class="moz-text-html" lang="x-western"> <b>Semi-automated Model Transformations with Mitra and GEF3D</b> <div><br /></div> <div>In OMG's "MDA Guide," model transformations are described to "be done manually, with computer assistance, or automatically." Research generally focuses on automated transformations. However, fully automated transformations can not always be applied. In this mini talk, we have a closer look at computer-assisted transformations (CATs), a language for programming them (Mitra) and, as CATs require user interactions, a 3D user interface based on GEF3D. As a result, model elements can simply be dragged from one model to another model, and when dropped these elements are automatically transformed. We demonstrate CATs by means of Jacobson's robustness analysis (known from the Rational Unified Process) and a tool for adding markers to arbitrary Ecore-based models.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNVAAf9Q3BI/AAAAAAAABsE/Z831mvuw0QQ/s1600/JensVonPilgrim.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 251px;" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNVAAf9Q3BI/AAAAAAAABsE/Z831mvuw0QQ/s320/JensVonPilgrim.jpg" alt="" id="BLOGGER_PHOTO_ID_5536401694244527122" border="0" /></a><br />Jens von Pilgrim mentioned that modeling without diagrams is like Tour de France without mountains: sure you can do it, and it's maybe even easier, but it takes out all the fun. He shows how he can drag from one diagram type to another, i.e., to transform a use case diagram into a class diagram.<br /><br /><b>Advanced Features for Migrating Models with COPE </b><br /><br />When an Ecore model evolves, existing instances may need to be migrated. To automate the migration of these instances, COPE records the instance migration together with the Ecore model evolution in an explicit history model. The history model specifies the sequence of coupled operations that have been performed. A coupled operation encapsulates both Ecore model evolution and instance migration. Instance migration can be further automated by reusing recurring coupled operations. In this demo, we show the more advanced features of COPE to inspect and refactor the history model as well as to reverse engineer it from two versions of an Ecore model.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNVYecL30eI/AAAAAAAABsQ/1dQ4BPY8460/s1600/MarkusHerrmannsd%C3%B6rfer.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 251px;" src="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNVYecL30eI/AAAAAAAABsQ/1dQ4BPY8460/s320/MarkusHerrmannsd%C3%B6rfer.jpg" alt="" id="BLOGGER_PHOTO_ID_5536428596907200994" border="0" /></a><br />Markus Herrmannsdörfer demonstrated how he can use the information for transforming one Ecore model to another into a script that can transform an instance of the first model into an instance of a second model.<br /><br /><b>Modeling Eclipse Plug-in Artifacts</b><br /><div><br /></div> An Eclipse plug-in is a complex component based on heterogeneous artifacts, e.g., source code, manifest, XML files, properties files, and so on. We will demonstrate how EMF can be used to produce a homogeneous representation of these artifacts and provide a comprehensive model of an existing plug-in. We will illustrate how this model can be used to check development rules or refactor plug-ins.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNVZdOgVN7I/AAAAAAAABsY/SZq0IdK4wEA/s1600/Fr%C3%A9d%C3%A9ricMadiot.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 251px;" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNVZdOgVN7I/AAAAAAAABsY/SZq0IdK4wEA/s320/Fr%C3%A9d%C3%A9ricMadiot.jpg" alt="" id="BLOGGER_PHOTO_ID_5536429675566675890" border="0" /></a><br />It was cool to see <a href="http://fmadiot.blogspot.com/2010/11/using-emf-to-represent-eclipse-3x-plug.html">Frédéric Madiot</a> demonstrate how every last detailed aspect of an Eclipse plug-in is represented as Ecore-based model! He then proceeded to show all the things one can do with this information, e.g., implementing additional quality checks such as the need (for the Eclipse release process) for there to be an about.html file, as well transforming a plug-in from being Eclipse 3.x-based to e4-based.<br /></div><br /><b>Only One Click to an EMF Application</b><br /><br />We will demonstrate how to develop an example application with the EMF Client Platform and EMFStore. A developer only needs to define an Ecore model for the application´s entities. Based on the EMF Client Platform this already defines a basic User Interface for editing. EMFStore allows storing and distributing the instances of the model. Everything just with the click of a button, that is launching an Eclipse instance with the model plug-in.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMztjCqhB3urOvBdQQbewL31ZrfVYmB1a5HNZLBFhjml7MxRBVKFhWCJ_5ZlhQYNapw3IkSXzzE53yb5ZyD_iQyiumrUbXIDM3fhSnJOddF2yxdNJSY-tYpL-7U428WxiA-5zNG0T9jGO2/s1600/MaximilianKoegelJonasHelming.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMztjCqhB3urOvBdQQbewL31ZrfVYmB1a5HNZLBFhjml7MxRBVKFhWCJ_5ZlhQYNapw3IkSXzzE53yb5ZyD_iQyiumrUbXIDM3fhSnJOddF2yxdNJSY-tYpL-7U428WxiA-5zNG0T9jGO2/s320/MaximilianKoegelJonasHelming.jpg" alt="" id="BLOGGER_PHOTO_ID_5536431606571776434" border="0" /></a><br />Jonas Helming and Maximilian Koegel did three quick demos. The first showed how one can rapidly prototype model designs and test their capabilities with a high-quality editor, i.e., one with forms for editing properties. The next showed the CVS-like ability of their model repository. And finally they showed how they can integrate their repository-approach with SVN.<br /><br /><b>The CDO Model Repository – Being Connected and Unconnected </b><br /><br />In addition to the traditional connected mode, the Helios version of CDO comes with a sophisticated offline mode that has been inspired by distributed versioning systems like Git and is almost transparent for end user applications. If you feel uncomfortable with replicating the entire history of all branches of your master repository you may be interested in this demo. We’ll present the brand new offline workspace facility, which provides you with a more CVS/SVN-like workflow: checkout, update, commit. In combination with our new EFS implementation you can seamlessly integrate your CDO-managed object graphs with any existing Eclipse technology that is based on IFiles, while still being able to access the underlying object graphs.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWBQ4UZ3WI/AAAAAAAABsw/OHGzzs-cdHw/s1600/EikeStepper.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWBQ4UZ3WI/AAAAAAAABsw/OHGzzs-cdHw/s320/EikeStepper.jpg" alt="" id="BLOGGER_PHOTO_ID_5536473443917749602" border="0" /></a><br />One of the coolest things Eike Stepper shows is the integration with the Eclipse File System where the repository contents are surfaced as IResources.<br /><br /><b>Papyrus in Action</b><br /><br />We will introduce the Papyrus team during the session, and we will then present the MDT Papyrus project itself. The talk will focus on the UML2 abilities of the tool, full compliance towards UML2 specification, and Domain Specific Modeling Language development facilities using UML2 profiles. We will also demonstrate the various possibilities of tool customization and finally we will present the road map for the next releases.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rFZqMGOSYY8/TNWCyvSYyFI/AAAAAAAABs8/PBRqfX20FDQ/s1600/RemiSchnekenburgerPatrickTessier.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://2.bp.blogspot.com/_rFZqMGOSYY8/TNWCyvSYyFI/AAAAAAAABs8/PBRqfX20FDQ/s320/RemiSchnekenburgerPatrickTessier.jpg" alt="" id="BLOGGER_PHOTO_ID_5536475125120550994" border="0" /></a><br />Remi Schnekenburger and Patrick Tessier showed some of the Papyrus capabilities, such as customizing the diagrams based on stereotype application.<br /><br /><b>Acceleo on e4</b><br /><br />During this presentation, you will see a prototype of the modeling project Acceleo on the e4 platform. That presentation will also give you the opportunity to hear the feedback of this experimental transition to e4 with its advantages and drawbacks.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNWDgPIFWpI/AAAAAAAABtE/sAK907E1Dag/s1600/StephaneBegaudeau.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNWDgPIFWpI/AAAAAAAABtE/sAK907E1Dag/s320/StephaneBegaudeau.jpg" alt="" id="BLOGGER_PHOTO_ID_5536475906761382546" border="0" /></a><br />Stephane Begaudeau showed some of Acceleo's nice integration features, such as its own perspective with views that show things like all the objects accessed when generating a particular artifact; an important traceability feature.<br /><br /><b>Reconciling Multiple Representations for BPMN 2.0.</b><br /><br /><span lang="EN-US">The new BPMN 2.0 standard provides a good basis for interoperability between Process Modeling tools and engines from different vendors. An EMF metamodel allows one to read and write standard compliant files and offers a good API for all kinds of tools. Such a metamodel was committed to Eclipse MDT project. However it was not as simple to create as you might have thought: Unfortunately OMG defines both, a CMOF metamodel and an XML Schema, resulting in two official file formats that such an implementation must consider. Fortunately EMF provides a solution for almost everything. I’ll demo how you can merge the two sources, the EMF tricks that were used, and how finally the BPMN implementation works.<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWEug_ChBI/AAAAAAAABtQ/cs0krlmrg-M/s1600/ReinerHille-Doering.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWEug_ChBI/AAAAAAAABtQ/cs0krlmrg-M/s320/ReinerHille-Doering.jpg" alt="" id="BLOGGER_PHOTO_ID_5536477251585082386" border="0" /></a><br /><span lang="EN-US">Reiner Hille-Doering talked about the incompatibilities between CMOF, with multi-inheritance and typed references verses XML Schema which single inheritance and untyped reference. The difference between these two ways of defining the model needs to be reconciled to produce a single model capable of reading and writing the exchange format implied by each definition. Because it's a large model, he defined an automated way of merging the two to produce a single result annotated with extended metadata.<br /></span><br /><b>Dynamic Domain Models for JUnit using EMF, redView and Xtext</b><br /><br />Implementing unit tests for business applications means running the same test classes again and again with different inputs and expected outputs. This session should demo, how EMF, redView and Xtext can be used to create reusable test instances which can be configured by dynamic domain models.<br /><ul><li>Xtext defines the test case specific domain model</li><li>redView renders and binds a matching ui at runtime</li><li>EMF stores the information in a key-value-map</li></ul> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWGY2wJ7fI/AAAAAAAABtc/H66Mw3FWDLA/s1600/FlorianPirchner.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWGY2wJ7fI/AAAAAAAABtc/H66Mw3FWDLA/s320/FlorianPirchner.jpg" alt="" id="BLOGGER_PHOTO_ID_5536479078494367218" border="0" /></a><br />Florian Pirchner showed how they can use model changes to dynamically update JDT's AST to reflect those changes.<br /><br /><b>Bonita Open Solution: Leveraging Modeling Power for Customization</b><br /><br /><div>We will see how the BonitaSoft team leveraged power of Modeling to turn a simple RCP-based modeler into a highly customized and user-friendly application. I will talk about some GMF-based customization in Bonita Open Solution Studio, and show how this customization is done with repeatable code generation to ensure agility and maintainability.<br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rFZqMGOSYY8/TNWHA4gYKjI/AAAAAAAABtk/ef6lUqz03rE/s1600/AurelienPupier.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://3.bp.blogspot.com/_rFZqMGOSYY8/TNWHA4gYKjI/AAAAAAAABtk/ef6lUqz03rE/s320/AurelienPupier.jpg" alt="" id="BLOGGER_PHOTO_ID_5536479766159829554" border="0" /></a><br />Aurelien Pupier showed two of their GMF-based editors. Their editors have nice contextual palette that make creating models very easy. They've done a good job making a stylish application.<br /><br /><b>Typesystems for Xtext Languages</b><br /><br />Ever wondered about how to efficiently write the constraints for checking the correctness of non-trivial typing rules in Xtext languages? This short talk introduces the Xtext Typesystem framework which supports the declarative definition of a wide range of typing rules for Xtext languages. I will show a few slides to explain the background and how it works, and then I'll demo how to integrate a typesystem with an actual Xtext language editor.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rFZqMGOSYY8/TNWIy0TzQkI/AAAAAAAABtw/YgWeNuiLkbE/s1600/MarkusV%C3%B6lter.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://2.bp.blogspot.com/_rFZqMGOSYY8/TNWIy0TzQkI/AAAAAAAABtw/YgWeNuiLkbE/s320/MarkusV%C3%B6lter.jpg" alt="" id="BLOGGER_PHOTO_ID_5536481723538424386" border="0" /></a><br />Markus Völter showed a grammar for a simple expression language and proceeded to demonstrate how a simple type system can be constructed from that. E.g., define the types of the literals (i.e., of the leaf expressions) and then the rules for deriving the type of composite expressions.<span lang="EN-US"><br /><br /></span><b>Modeling Meets JDT: Leverage Java Types in Your Models </b><br /><br />A tight integration with the Java Types and the Java Development Tools (JDT) is a sweet spot especially, but not only, for textual modeling. That's why we developed a lightweight EMF representation of the Java VM types, their operations, and fields as part of the Xtext framework. In this short demo I'll show how we used the abstractions of EMF and the power of dependency injection by means of Google Guice to allow a seamless integration of modeling components with Java VM types. Especially interesting is the dedicated EMF resource implementation that allows clients to work transparently with the Java reflection layer or the available information from a JDT based Eclipse Java project. Furthermore, I'll give a short demo on how the Modeling Workflow Engine (MWE) leverages this feature to provide a highly extensible configuration language including advanced tool support for users.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rFZqMGOSYY8/TNWNq72PQtI/AAAAAAAABt8/YkHucYciTl0/s1600/SebastianZarnekow.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://2.bp.blogspot.com/_rFZqMGOSYY8/TNWNq72PQtI/AAAAAAAABt8/YkHucYciTl0/s320/SebastianZarnekow.jpg" alt="" id="BLOGGER_PHOTO_ID_5536487085681099474" border="0" /></a><br />Sebastian Zarnekow started with a simple DSL to show how, with the use of the JVM type model, it's possible to refer to Java classes. It seamless derives its information either from JDT or via Java reflection, depending on your environment context. Very cool and powerful stuff.<br /><br /><b>Xdoc - When Writing Documentation is Fun</b><br /><br />Xtext comes with extensive documentation published as Eclipse Help, as HTML on our website as well as PDF for printing and offline reading. The documentation is written in Xdoc, a markup language tailored for the purpose of writing documentation for Eclipse projects. This is a short demo of Xdoc and its editing features.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rFZqMGOSYY8/TNWUoZHCTqI/AAAAAAAABuQ/FV2oK6_CoFc/s1600/SvenEfftinge.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://3.bp.blogspot.com/_rFZqMGOSYY8/TNWUoZHCTqI/AAAAAAAABuQ/FV2oK6_CoFc/s320/SvenEfftinge.jpg" alt="" id="BLOGGER_PHOTO_ID_5536494738577968802" border="0" /></a><br />One of the things Sven Efftinge requested is for folks to post information on <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=328477">328477</a> about their use of Xtext. He then proceeded to demonstrate the capabilities of Xdoc, a DSL similar to wiki and TeX for writing documentation, with a simple example document.<br /><br /><b>Diagram views of Xtext Grammars</b> (5 minutes)<br /><br />The Xtext Syntax View visualizes the syntax of your Xtext language in a railroad diagram. It helps to analyze, debug, and document your Xtext based languages.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWUP9UlwAI/AAAAAAAABuI/MRHc_pFbxVY/s1600/JanK%C3%B6hnlein.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_rFZqMGOSYY8/TNWUP9UlwAI/AAAAAAAABuI/MRHc_pFbxVY/s320/JanK%C3%B6hnlein.jpg" alt="" id="BLOGGER_PHOTO_ID_5536494318801764354" border="0" /></a><br />Jan Köhnlein's very quick demonstration of his railroad diagram pet project was very cool, so much so that I neglected to get his picture! So I took his snapshot during the beer and pretzel reception right after.<br /><p class="MsoNormal"><b><span style="" lang="EN-US">Eclipse Modeling Platform</span></b><br /><span style="" lang="EN-US"><br />The Eclipse Modeling Platform (EMP) is an industrial quality integrated software platform to enable complete chains of model-centric tools in organizations focused on model driven development. The requirements for EMP are being set by some of the largest companies using model driven development. EMP will be developed as an Eclipse Industry Working Group supporting a collection of open source projects and encouraging a commercial ecosystem of value-added tools and services. The platform will be based on existing Eclipse modeling technologies but focus on better integration, quality, scalability and usability for modeling professionals.</span></p><span style="" lang="EN-US">This talk will give an insight into what is being done in the Modeling Platform Industry Working Group (MPIWG) and who is collaborating in this forum. It will also reflect the relation of the EMP to the existing Eclipse modeling projects and explain why these are promising days for getting this started.</span><br /><p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNWVWGXJZdI/AAAAAAAABuY/HopJKhA_CWw/s1600/StephanEberle.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNWVWGXJZdI/AAAAAAAABuY/HopJKhA_CWw/s320/StephanEberle.jpg" alt="" id="BLOGGER_PHOTO_ID_5536495523819251154" border="0" /></a></p> Stephan Eberle gave much the same talk as he did a the Eclipse Modeling Day in Zurich last week.<br /><br />The rest of the conference, as expected, was fantastic as well. I didn't get to attend all the talks I would have liked to attend, but face-to-face time is one of the primary reasons for traveling to these types of events, so it often takes priority. As with all good things, it came to an end all too quickly.<br /><br />Friday November 5th, the day after the conference, was a face-to-face meeting of the <a href="http://wiki.eclipse.org/ModelingPlatform">Modeling Platform Industrial Working Group</a>. It was held at the conference center. Stephan Eberle and Martin Mandischer have been doing a fantastic job gathering requirements, analyzing the gaps that need attention, and outlining a plan for making it happen. Things are progressing well.<br /><br />No trip to Germany is complete without a stop in Berlin, so that's where I headed Friday night to meet up with Frank, who had been there all that week. We even had a chance to visit Dresden on Sunday. Neither pictures nor words can do that city justice!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNe5N5gAL3I/AAAAAAAABuk/KWWc2hKG9oo/s1600/Dresden.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 140px;" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/TNe5N5gAL3I/AAAAAAAABuk/KWWc2hKG9oo/s400/Dresden.jpg" alt="" id="BLOGGER_PHOTO_ID_5537097915299802994" border="0" /></a><br />Today is our last full day in Germany before heading home to Vancouver tomorrow. It's been a great trip and I'm sure we'll be back soon.<br /></div></div> </div>Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-58335830435675153182010-10-04T15:13:00.005+02:002010-10-04T15:29:30.876+02:00Eclipse Modeling: A Smith for the Cloud<a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> is cool. In combination with <a href="http://code.google.com/appengine/">App Engine</a> and <a href="http://code.google.com/eclipse/index.html">Google Plugin for Eclipse</a>, it facilitates the rapid development of applications that run in the cloud. It exploits a familiar language, i.e., Java, as well as familiar tools, i.e., Eclipse's Java Development Tools.<span style=""> </span>As such, you can reuse a great deal of existing expertise. There's even a project wizard to get you up and running quickly.<br /><p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rFZqMGOSYY8/TKnUPS4kqRI/AAAAAAAABqs/FM6o47UOFQQ/s1600/SandPipers.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/TKnUPS4kqRI/AAAAAAAABqs/FM6o47UOFQQ/s320/SandPipers.jpg" alt="" id="BLOGGER_PHOTO_ID_5524179777178872082" border="0" /></a><br />Unfortunately, Google Plugin’s project wizard produces merely a "hello world" type application, so there remains a great deal to learn before you can do anything truly interesting following best practices. Now, where Google Plugin’s tools trail off, EMF's tools kick in. Starting with a simple description of your data structures, you can generate a fully functional application focused specifically on your domain of interest. <span style=""> </span>My demo at <a href="http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2010/Session_Abstracts#EMF_for_GWT">Google’s Eclipse Day</a> last month showed this <span style=""> </span>in action.<span style=""> </span>Now, with the help of my colleagues at Cloudsmith, we have everything nicely packaged up so you can easily try it at home.<span style=""> </span>It’s all documented in the <a href="http://wiki.eclipse.org/EMF/GWT">EMF for GWT wiki.</a><span style=""> </span><span style=""> </span>Prepare to soar into the clouds.</p><p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rFZqMGOSYY8/TKnUwjHBelI/AAAAAAAABq0/qpgec_3GZ3g/s1600/SeaGull.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 175px;" src="http://3.bp.blogspot.com/_rFZqMGOSYY8/TKnUwjHBelI/AAAAAAAABq0/qpgec_3GZ3g/s320/SeaGull.jpg" alt="" id="BLOGGER_PHOTO_ID_5524180348470131282" border="0" /></a></p> <p class="MsoNormal">Of course those of you familiar with Eclipse modeling know that EMF produces simple natural APIs of hand written quality in which complex relationships are simply expressed. <span style=""> </span>But those of you more familiar with GWT and App Engine, and with technologies like <a href="http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html">Roo</a>, will likely expect to be dealing with Data Transfer Objects that describe denormalized models which are mapped via JPA onto App Engine Datastore’s entity-based back-end. <span style=""> </span><span style=""> </span>It’s tedious, painful and stilted, not to mention totally unnecessary. <span style=""> </span><span style=""> </span>Just say no to DTO. <span style=""> </span>With EMF, you can focus on the creative task of describing your domain, rather than on the tedious task of mapping high level concepts onto low-level persistence technologies, and you can exploit REST to its fullest.<span style=""> </span>EMF is truly a smith for the cloud.</p>Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0tag:blogger.com,1999:blog-3879044552984472733.post-89358955832238918102010-09-27T12:45:00.006+02:002010-09-27T14:18:45.625+02:00A Fine DemonstrationI'm in Germany once again. Frank had his immigration interview at the Canadian Embassy in Berlin last week, so I came along. I'm glad that the flight to Germany from Vancouver isn't all that much longer than the flight from Toronto: only about 2 hours more.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rFZqMGOSYY8/TKCG0Ii4rII/AAAAAAAABqI/QnOR0W8WlYA/s1600/SeaPlaneInCoalHarbor.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 177px;" src="http://3.bp.blogspot.com/_rFZqMGOSYY8/TKCG0Ii4rII/AAAAAAAABqI/QnOR0W8WlYA/s320/SeaPlaneInCoalHarbor.jpg" alt="" id="BLOGGER_PHOTO_ID_5521561373361351810" border="0" /></a><br />The other day I went to the <a href="http://en.wikipedia.org/wiki/New_Palace_%28Potsdam%29">New Palace in Potsdam</a>; it's one of the finest demonstrations of German culture, art, and craftsmanship I've every seen, and I've seen quite a bit this past year and a half!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rFZqMGOSYY8/TKCIU8LdTKI/AAAAAAAABqU/81WYt2wUheQ/s1600/NewPalacePotsdam.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_rFZqMGOSYY8/TKCIU8LdTKI/AAAAAAAABqU/81WYt2wUheQ/s320/NewPalacePotsdam.jpg" alt="" id="BLOGGER_PHOTO_ID_5521563036489174178" border="0" /></a><br />Demonstrations of craftsmanship is exactly what we want for the <a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&id=1898">Modeling Symposium</a> at <a href="http://www.eclipsecon.org/summiteurope2010/">Eclipse Summit Europe</a> next month. If you have something cool, new, and interesting you'd like to show in action, please contact me as soon as possible at ed dot merks at gmail dot com.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rFZqMGOSYY8/TKCJ0t8cGgI/AAAAAAAABqg/SQVpbVwRJ80/s1600/FunkyCar.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 307px;" src="http://1.bp.blogspot.com/_rFZqMGOSYY8/TKCJ0t8cGgI/AAAAAAAABqg/SQVpbVwRJ80/s320/FunkyCar.jpg" alt="" id="BLOGGER_PHOTO_ID_5521564681935526402" border="0" /></a><br />As a general reminder, I'd suggest to register for ESE immediately; keep in mind too that the Nestor hotel runs out of rooms, so book now or plan for long walks. I'm really looking forward to my next trip to Europe. It will include not only <a href="http://en.wikipedia.org/wiki/Ludwigsburg">Ludwigsburg</a> and Berlin, but also a side trip to <a href="http://en.wikipedia.org/wiki/Z%C3%BCrich">Zurich</a> for <a href="http://wiki.eclipse.org/Eclipse_MDD_Day">Eclipse Enterprise Modeling Day</a>. If you're interested in that, please register. Meanwhile, I'm plodding away with the EMF for GWT infrastructure to enable those interested to play with it at home. Stay tuned for fruits of that labor. Come to ESE to see it in live!Ed Merkshttp://www.blogger.com/profile/05000982591510437551noreply@blogger.com0